@lemoncat7/dsh-partner 2.7.0 → 2.7.2
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/README.md +1 -1
- package/docs/releases/2.7.1.md +10 -0
- package/docs/releases/2.7.2.md +12 -0
- package/lib/channels/direct/message-format.js +127 -127
- package/lib/channels/direct/message-format.js.map +1 -1
- package/lib/client.js +205 -139
- package/lib/client.js.map +4 -4
- package/lib/collaboration/service.d.ts.map +1 -1
- package/lib/collaboration/service.js +9 -1
- package/lib/collaboration/service.js.map +1 -1
- package/lib/pendant/renderer.d.ts.map +1 -1
- package/lib/pendant/renderer.js +18 -2
- package/lib/pendant/renderer.js.map +1 -1
- package/lib/pendant/startup.d.ts +4 -0
- package/lib/pendant/startup.d.ts.map +1 -0
- package/lib/pendant/startup.js +64 -0
- package/lib/pendant/startup.js.map +1 -0
- package/lib/pendant/widget.d.ts.map +1 -1
- package/lib/pendant/widget.js +2 -1
- package/lib/pendant/widget.js.map +1 -1
- package/lib/pendant-renderer.js +169 -169
- package/lib/scheduler/continuations.d.ts.map +1 -1
- package/lib/scheduler/continuations.js +18 -3
- package/lib/scheduler/continuations.js.map +1 -1
- package/lib/ui/capability-resources.d.ts +1 -1
- package/lib/ui/capability-resources.d.ts.map +1 -1
- package/lib/ui/capability-resources.js +5 -27
- package/lib/ui/capability-resources.js.map +1 -1
- package/lib/ui/schedule-panel.d.ts.map +1 -1
- package/lib/ui/schedule-panel.js +2 -1
- package/lib/ui/schedule-panel.js.map +1 -1
- package/lib/ui/skills-panel.d.ts.map +1 -1
- package/lib/ui/skills-panel.js +46 -16
- package/lib/ui/skills-panel.js.map +1 -1
- package/lib/ui/storage-settings.js +1 -1
- package/lib/ui/storage-settings.js.map +1 -1
- package/package.json +3 -2
- package/docs/releases/2.7.0.md +0 -21
package/lib/client.js
CHANGED
|
@@ -56,7 +56,7 @@ function observePluginWorkspace(pluginId, close) {
|
|
|
56
56
|
// src/client.tsx
|
|
57
57
|
var import_dsh_client_ui_primitives24 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
58
58
|
|
|
59
|
-
//
|
|
59
|
+
// node_modules/qrcode.react/lib/esm/index.js
|
|
60
60
|
var import_react = __toESM(require("react"), 1);
|
|
61
61
|
var __defProp2 = Object.defineProperty;
|
|
62
62
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
@@ -1803,8 +1803,12 @@ body[data-ds-dark-theme] .dsh-partner-workspace {
|
|
|
1803
1803
|
.dsh-partner-general-settings { padding: 16px clamp(20px, 4vw, 46px); color: var(--partner-text); }
|
|
1804
1804
|
.dsh-partner-general-settings h2 { font-size: 18px; }
|
|
1805
1805
|
.dsh-partner-general-settings p { color: var(--partner-text-secondary); line-height: 1.7; overflow-wrap: anywhere; }
|
|
1806
|
-
.dsh-partner-migration
|
|
1807
|
-
.dsh-partner-migration
|
|
1806
|
+
.dsh-partner-feature-block.is-storage-migration { gap: 10px; padding: 16px 18px; }
|
|
1807
|
+
.dsh-partner-feature-block.is-storage-migration > :is(p, details) { margin-block: 0; }
|
|
1808
|
+
.dsh-partner-feature-block.is-storage-migration p { margin-block: 0; line-height: 1.55; }
|
|
1809
|
+
.dsh-partner-feature-block.is-storage-migration details > p { margin-top: 6px; }
|
|
1810
|
+
.dsh-partner-migration-paths { display: grid; gap: 8px; margin-top: 6px; min-width: 0; }
|
|
1811
|
+
.dsh-partner-migration-paths > div { display: grid; gap: 3px; padding: 10px; border: 1px solid var(--partner-border); border-radius: 10px; min-width: 0; }
|
|
1808
1812
|
.dsh-partner-migration-paths code { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; }
|
|
1809
1813
|
.dsh-partner-general-settings :is(summary,button) { min-height: 44px; }
|
|
1810
1814
|
.dsh-partner-general-settings [role="alert"] { color: var(--partner-danger); overflow-wrap: anywhere; }
|
|
@@ -5775,7 +5779,7 @@ var import_dsh_client_ui_primitives9 = require("@deepseek-ai/dsh-client-ui-primi
|
|
|
5775
5779
|
// src/pendant/markdown.tsx
|
|
5776
5780
|
var import_react23 = __toESM(require("react"), 1);
|
|
5777
5781
|
|
|
5778
|
-
//
|
|
5782
|
+
// node_modules/mdast-util-to-string/lib/index.js
|
|
5779
5783
|
var emptyOptions = {};
|
|
5780
5784
|
function toString(value, options) {
|
|
5781
5785
|
const settings = options || emptyOptions;
|
|
@@ -5812,7 +5816,7 @@ function node(value) {
|
|
|
5812
5816
|
return Boolean(value && typeof value === "object");
|
|
5813
5817
|
}
|
|
5814
5818
|
|
|
5815
|
-
//
|
|
5819
|
+
// node_modules/decode-named-character-reference/index.dom.js
|
|
5816
5820
|
var element = document.createElement("i");
|
|
5817
5821
|
function decodeNamedCharacterReference(value) {
|
|
5818
5822
|
const characterReference2 = "&" + value + ";";
|
|
@@ -5824,7 +5828,7 @@ function decodeNamedCharacterReference(value) {
|
|
|
5824
5828
|
return character === characterReference2 ? false : character;
|
|
5825
5829
|
}
|
|
5826
5830
|
|
|
5827
|
-
//
|
|
5831
|
+
// node_modules/micromark-util-chunked/index.js
|
|
5828
5832
|
function splice(list2, start, remove, items) {
|
|
5829
5833
|
const end = list2.length;
|
|
5830
5834
|
let chunkStart = 0;
|
|
@@ -5858,7 +5862,7 @@ function push(list2, items) {
|
|
|
5858
5862
|
return items;
|
|
5859
5863
|
}
|
|
5860
5864
|
|
|
5861
|
-
//
|
|
5865
|
+
// node_modules/micromark-util-combine-extensions/index.js
|
|
5862
5866
|
var hasOwnProperty = {}.hasOwnProperty;
|
|
5863
5867
|
function combineExtensions(extensions) {
|
|
5864
5868
|
const all2 = {};
|
|
@@ -5898,7 +5902,7 @@ function constructs(existing, list2) {
|
|
|
5898
5902
|
splice(existing, 0, 0, before);
|
|
5899
5903
|
}
|
|
5900
5904
|
|
|
5901
|
-
//
|
|
5905
|
+
// node_modules/micromark-util-decode-numeric-character-reference/index.js
|
|
5902
5906
|
function decodeNumericCharacterReference(value, base) {
|
|
5903
5907
|
const code2 = Number.parseInt(value, base);
|
|
5904
5908
|
if (
|
|
@@ -5916,12 +5920,12 @@ function decodeNumericCharacterReference(value, base) {
|
|
|
5916
5920
|
return String.fromCodePoint(code2);
|
|
5917
5921
|
}
|
|
5918
5922
|
|
|
5919
|
-
//
|
|
5923
|
+
// node_modules/micromark-util-normalize-identifier/index.js
|
|
5920
5924
|
function normalizeIdentifier(value) {
|
|
5921
5925
|
return value.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase();
|
|
5922
5926
|
}
|
|
5923
5927
|
|
|
5924
|
-
//
|
|
5928
|
+
// node_modules/micromark-util-character/index.js
|
|
5925
5929
|
var asciiAlpha = regexCheck(/[A-Za-z]/);
|
|
5926
5930
|
var asciiAlphanumeric = regexCheck(/[\dA-Za-z]/);
|
|
5927
5931
|
var asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/);
|
|
@@ -5953,7 +5957,7 @@ function regexCheck(regex) {
|
|
|
5953
5957
|
}
|
|
5954
5958
|
}
|
|
5955
5959
|
|
|
5956
|
-
//
|
|
5960
|
+
// node_modules/micromark-factory-space/index.js
|
|
5957
5961
|
function factorySpace(effects, ok3, type, max) {
|
|
5958
5962
|
const limit = max ? max - 1 : Infinity;
|
|
5959
5963
|
let size2 = 0;
|
|
@@ -5998,7 +6002,7 @@ function factorySpaceMinMax(effects, ok3, nok, type, min, max) {
|
|
|
5998
6002
|
}
|
|
5999
6003
|
}
|
|
6000
6004
|
|
|
6001
|
-
//
|
|
6005
|
+
// node_modules/micromark/lib/initialize/content.js
|
|
6002
6006
|
var content = {
|
|
6003
6007
|
tokenize: initializeContent
|
|
6004
6008
|
};
|
|
@@ -6048,7 +6052,7 @@ function initializeContent(effects) {
|
|
|
6048
6052
|
}
|
|
6049
6053
|
}
|
|
6050
6054
|
|
|
6051
|
-
//
|
|
6055
|
+
// node_modules/micromark-util-edit-map/index.js
|
|
6052
6056
|
var EditMap = class {
|
|
6053
6057
|
/**
|
|
6054
6058
|
* Create a new edit map.
|
|
@@ -6146,7 +6150,7 @@ function addImplementation(editMap, at, remove, add, before) {
|
|
|
6146
6150
|
editMap.index.set(at, change);
|
|
6147
6151
|
}
|
|
6148
6152
|
|
|
6149
|
-
//
|
|
6153
|
+
// node_modules/micromark/lib/initialize/document.js
|
|
6150
6154
|
var document2 = {
|
|
6151
6155
|
tokenize: initializeDocument
|
|
6152
6156
|
};
|
|
@@ -6340,7 +6344,7 @@ function tokenizeContainer(effects, ok3, nok) {
|
|
|
6340
6344
|
return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok3, nok), "linePrefix", this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
|
|
6341
6345
|
}
|
|
6342
6346
|
|
|
6343
|
-
//
|
|
6347
|
+
// node_modules/micromark-util-classify-character/index.js
|
|
6344
6348
|
function classifyCharacter(code2) {
|
|
6345
6349
|
if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {
|
|
6346
6350
|
return 1;
|
|
@@ -6350,7 +6354,7 @@ function classifyCharacter(code2) {
|
|
|
6350
6354
|
}
|
|
6351
6355
|
}
|
|
6352
6356
|
|
|
6353
|
-
//
|
|
6357
|
+
// node_modules/micromark-util-resolve-all/index.js
|
|
6354
6358
|
function resolveAll(constructs2, events, context) {
|
|
6355
6359
|
const called = [];
|
|
6356
6360
|
let index2 = -1;
|
|
@@ -6364,7 +6368,7 @@ function resolveAll(constructs2, events, context) {
|
|
|
6364
6368
|
return events;
|
|
6365
6369
|
}
|
|
6366
6370
|
|
|
6367
|
-
//
|
|
6371
|
+
// node_modules/micromark-core-commonmark/lib/attention.js
|
|
6368
6372
|
var attention = {
|
|
6369
6373
|
name: "attention",
|
|
6370
6374
|
resolveAll: resolveAllAttention,
|
|
@@ -6487,7 +6491,7 @@ function movePoint(point4, offset) {
|
|
|
6487
6491
|
point4._bufferIndex += offset;
|
|
6488
6492
|
}
|
|
6489
6493
|
|
|
6490
|
-
//
|
|
6494
|
+
// node_modules/micromark-core-commonmark/lib/autolink.js
|
|
6491
6495
|
var autolink = {
|
|
6492
6496
|
name: "autolink",
|
|
6493
6497
|
tokenize: tokenizeAutolink
|
|
@@ -6588,7 +6592,7 @@ function tokenizeAutolink(effects, ok3, nok) {
|
|
|
6588
6592
|
}
|
|
6589
6593
|
}
|
|
6590
6594
|
|
|
6591
|
-
//
|
|
6595
|
+
// node_modules/micromark-core-commonmark/lib/blank-line.js
|
|
6592
6596
|
var blankLine = {
|
|
6593
6597
|
partial: true,
|
|
6594
6598
|
tokenize: tokenizeBlankLine
|
|
@@ -6603,7 +6607,7 @@ function tokenizeBlankLine(effects, ok3, nok) {
|
|
|
6603
6607
|
}
|
|
6604
6608
|
}
|
|
6605
6609
|
|
|
6606
|
-
//
|
|
6610
|
+
// node_modules/micromark-core-commonmark/lib/block-quote.js
|
|
6607
6611
|
var blockQuote = {
|
|
6608
6612
|
continuation: {
|
|
6609
6613
|
tokenize: tokenizeBlockQuoteContinuation
|
|
@@ -6661,7 +6665,7 @@ function exit(effects) {
|
|
|
6661
6665
|
effects.exit("blockQuote");
|
|
6662
6666
|
}
|
|
6663
6667
|
|
|
6664
|
-
//
|
|
6668
|
+
// node_modules/micromark-core-commonmark/lib/character-escape.js
|
|
6665
6669
|
var characterEscape = {
|
|
6666
6670
|
name: "characterEscape",
|
|
6667
6671
|
tokenize: tokenizeCharacterEscape
|
|
@@ -6687,7 +6691,7 @@ function tokenizeCharacterEscape(effects, ok3, nok) {
|
|
|
6687
6691
|
}
|
|
6688
6692
|
}
|
|
6689
6693
|
|
|
6690
|
-
//
|
|
6694
|
+
// node_modules/micromark-core-commonmark/lib/character-reference.js
|
|
6691
6695
|
var characterReference = {
|
|
6692
6696
|
name: "characterReference",
|
|
6693
6697
|
tokenize: tokenizeCharacterReference
|
|
@@ -6752,7 +6756,7 @@ function tokenizeCharacterReference(effects, ok3, nok) {
|
|
|
6752
6756
|
}
|
|
6753
6757
|
}
|
|
6754
6758
|
|
|
6755
|
-
//
|
|
6759
|
+
// node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js
|
|
6756
6760
|
var nonLazyContinuation = {
|
|
6757
6761
|
partial: true,
|
|
6758
6762
|
tokenize: tokenizeNonLazyContinuation
|
|
@@ -6774,7 +6778,7 @@ function tokenizeNonLazyContinuation(effects, ok3, nok) {
|
|
|
6774
6778
|
}
|
|
6775
6779
|
}
|
|
6776
6780
|
|
|
6777
|
-
//
|
|
6781
|
+
// node_modules/micromark-core-commonmark/lib/code-fenced.js
|
|
6778
6782
|
var codeFenced = {
|
|
6779
6783
|
concrete: true,
|
|
6780
6784
|
name: "codeFenced",
|
|
@@ -6937,7 +6941,7 @@ function tokenizeCodeFenced(effects, ok3, nok) {
|
|
|
6937
6941
|
}
|
|
6938
6942
|
}
|
|
6939
6943
|
|
|
6940
|
-
//
|
|
6944
|
+
// node_modules/micromark-core-commonmark/lib/code-indented.js
|
|
6941
6945
|
var codeIndented = {
|
|
6942
6946
|
name: "codeIndented",
|
|
6943
6947
|
tokenize: tokenizeCodeIndented
|
|
@@ -6995,7 +6999,7 @@ function tokenizeFurtherStart(effects, ok3, nok) {
|
|
|
6995
6999
|
}
|
|
6996
7000
|
}
|
|
6997
7001
|
|
|
6998
|
-
//
|
|
7002
|
+
// node_modules/micromark-core-commonmark/lib/code-text.js
|
|
6999
7003
|
var codeText = {
|
|
7000
7004
|
name: "codeText",
|
|
7001
7005
|
previous,
|
|
@@ -7110,7 +7114,7 @@ function tokenizeCodeText(effects, ok3, nok) {
|
|
|
7110
7114
|
}
|
|
7111
7115
|
}
|
|
7112
7116
|
|
|
7113
|
-
//
|
|
7117
|
+
// node_modules/micromark-util-subtokenize/lib/splice-buffer.js
|
|
7114
7118
|
var SpliceBuffer = class {
|
|
7115
7119
|
/**
|
|
7116
7120
|
* @param {ReadonlyArray<T> | null | undefined} [initial]
|
|
@@ -7303,7 +7307,7 @@ function chunkedPush(list2, right) {
|
|
|
7303
7307
|
}
|
|
7304
7308
|
}
|
|
7305
7309
|
|
|
7306
|
-
//
|
|
7310
|
+
// node_modules/micromark-util-subtokenize/index.js
|
|
7307
7311
|
function subtokenize(eventsArray) {
|
|
7308
7312
|
const jumps = {};
|
|
7309
7313
|
let index2 = -1;
|
|
@@ -7456,7 +7460,7 @@ function subcontent(events, eventIndex) {
|
|
|
7456
7460
|
return gaps;
|
|
7457
7461
|
}
|
|
7458
7462
|
|
|
7459
|
-
//
|
|
7463
|
+
// node_modules/micromark-core-commonmark/lib/content.js
|
|
7460
7464
|
var content2 = {
|
|
7461
7465
|
resolve: resolveContent,
|
|
7462
7466
|
tokenize: tokenizeContent
|
|
@@ -7527,7 +7531,7 @@ function tokenizeContinuation(effects, ok3, nok) {
|
|
|
7527
7531
|
}
|
|
7528
7532
|
}
|
|
7529
7533
|
|
|
7530
|
-
//
|
|
7534
|
+
// node_modules/micromark-factory-destination/index.js
|
|
7531
7535
|
function factoryDestination(effects, ok3, nok, type, literalType, literalMarkerType, rawType, stringType, max) {
|
|
7532
7536
|
const limit = max || Number.POSITIVE_INFINITY;
|
|
7533
7537
|
let balance = 0;
|
|
@@ -7619,7 +7623,7 @@ function factoryDestination(effects, ok3, nok, type, literalType, literalMarkerT
|
|
|
7619
7623
|
}
|
|
7620
7624
|
}
|
|
7621
7625
|
|
|
7622
|
-
//
|
|
7626
|
+
// node_modules/micromark-factory-label/index.js
|
|
7623
7627
|
function factoryLabel(effects, ok3, nok, type, markerType, stringType) {
|
|
7624
7628
|
const self = this;
|
|
7625
7629
|
let size2 = 0;
|
|
@@ -7680,7 +7684,7 @@ function factoryLabel(effects, ok3, nok, type, markerType, stringType) {
|
|
|
7680
7684
|
}
|
|
7681
7685
|
}
|
|
7682
7686
|
|
|
7683
|
-
//
|
|
7687
|
+
// node_modules/micromark-factory-title/index.js
|
|
7684
7688
|
function factoryTitle(effects, ok3, nok, type, markerType, stringType) {
|
|
7685
7689
|
let marker;
|
|
7686
7690
|
return start;
|
|
@@ -7742,7 +7746,7 @@ function factoryTitle(effects, ok3, nok, type, markerType, stringType) {
|
|
|
7742
7746
|
}
|
|
7743
7747
|
}
|
|
7744
7748
|
|
|
7745
|
-
//
|
|
7749
|
+
// node_modules/micromark-factory-whitespace/index.js
|
|
7746
7750
|
function factoryWhitespace(effects, ok3) {
|
|
7747
7751
|
let seen;
|
|
7748
7752
|
return start;
|
|
@@ -7761,7 +7765,7 @@ function factoryWhitespace(effects, ok3) {
|
|
|
7761
7765
|
}
|
|
7762
7766
|
}
|
|
7763
7767
|
|
|
7764
|
-
//
|
|
7768
|
+
// node_modules/micromark-core-commonmark/lib/definition.js
|
|
7765
7769
|
var definition = {
|
|
7766
7770
|
name: "definition",
|
|
7767
7771
|
tokenize: tokenizeDefinition
|
|
@@ -7847,7 +7851,7 @@ function tokenizeTitleBefore(effects, ok3, nok) {
|
|
|
7847
7851
|
}
|
|
7848
7852
|
}
|
|
7849
7853
|
|
|
7850
|
-
//
|
|
7854
|
+
// node_modules/micromark-core-commonmark/lib/hard-break-escape.js
|
|
7851
7855
|
var hardBreakEscape = {
|
|
7852
7856
|
name: "hardBreakEscape",
|
|
7853
7857
|
tokenize: tokenizeHardBreakEscape
|
|
@@ -7868,7 +7872,7 @@ function tokenizeHardBreakEscape(effects, ok3, nok) {
|
|
|
7868
7872
|
}
|
|
7869
7873
|
}
|
|
7870
7874
|
|
|
7871
|
-
//
|
|
7875
|
+
// node_modules/micromark-core-commonmark/lib/heading-atx.js
|
|
7872
7876
|
var headingAtx = {
|
|
7873
7877
|
name: "headingAtx",
|
|
7874
7878
|
resolve: resolveHeadingAtx,
|
|
@@ -7957,7 +7961,7 @@ function tokenizeHeadingAtx(effects, ok3, nok) {
|
|
|
7957
7961
|
}
|
|
7958
7962
|
}
|
|
7959
7963
|
|
|
7960
|
-
//
|
|
7964
|
+
// node_modules/micromark-util-html-tag-name/index.js
|
|
7961
7965
|
var htmlBlockNames = [
|
|
7962
7966
|
"address",
|
|
7963
7967
|
"article",
|
|
@@ -8024,7 +8028,7 @@ var htmlBlockNames = [
|
|
|
8024
8028
|
];
|
|
8025
8029
|
var htmlRawNames = ["pre", "script", "style", "textarea"];
|
|
8026
8030
|
|
|
8027
|
-
//
|
|
8031
|
+
// node_modules/micromark-core-commonmark/lib/html-flow.js
|
|
8028
8032
|
var htmlFlow = {
|
|
8029
8033
|
concrete: true,
|
|
8030
8034
|
name: "htmlFlow",
|
|
@@ -8383,7 +8387,7 @@ function tokenizeBlankLineBefore(effects, ok3, nok) {
|
|
|
8383
8387
|
}
|
|
8384
8388
|
}
|
|
8385
8389
|
|
|
8386
|
-
//
|
|
8390
|
+
// node_modules/micromark-core-commonmark/lib/html-text.js
|
|
8387
8391
|
var htmlText = {
|
|
8388
8392
|
name: "htmlText",
|
|
8389
8393
|
tokenize: tokenizeHtmlText
|
|
@@ -8689,7 +8693,7 @@ function tokenizeHtmlText(effects, ok3, nok) {
|
|
|
8689
8693
|
}
|
|
8690
8694
|
}
|
|
8691
8695
|
|
|
8692
|
-
//
|
|
8696
|
+
// node_modules/micromark-core-commonmark/lib/label-end.js
|
|
8693
8697
|
var labelEnd = {
|
|
8694
8698
|
name: "labelEnd",
|
|
8695
8699
|
resolveAll: resolveAllLabelEnd,
|
|
@@ -8915,7 +8919,7 @@ function tokenizeReferenceCollapsed(effects, ok3, nok) {
|
|
|
8915
8919
|
}
|
|
8916
8920
|
}
|
|
8917
8921
|
|
|
8918
|
-
//
|
|
8922
|
+
// node_modules/micromark-core-commonmark/lib/label-start-image.js
|
|
8919
8923
|
var labelStartImage = {
|
|
8920
8924
|
name: "labelStartImage",
|
|
8921
8925
|
resolveAll: labelEnd.resolveAll,
|
|
@@ -8952,7 +8956,7 @@ function tokenizeLabelStartImage(effects, ok3, nok) {
|
|
|
8952
8956
|
}
|
|
8953
8957
|
}
|
|
8954
8958
|
|
|
8955
|
-
//
|
|
8959
|
+
// node_modules/micromark-core-commonmark/lib/label-start-link.js
|
|
8956
8960
|
var labelStartLink = {
|
|
8957
8961
|
name: "labelStartLink",
|
|
8958
8962
|
resolveAll: labelEnd.resolveAll,
|
|
@@ -8980,7 +8984,7 @@ function tokenizeLabelStartLink(effects, ok3, nok) {
|
|
|
8980
8984
|
}
|
|
8981
8985
|
}
|
|
8982
8986
|
|
|
8983
|
-
//
|
|
8987
|
+
// node_modules/micromark-core-commonmark/lib/line-ending.js
|
|
8984
8988
|
var lineEnding = {
|
|
8985
8989
|
name: "lineEnding",
|
|
8986
8990
|
tokenize: tokenizeLineEnding
|
|
@@ -8995,7 +8999,7 @@ function tokenizeLineEnding(effects, ok3) {
|
|
|
8995
8999
|
}
|
|
8996
9000
|
}
|
|
8997
9001
|
|
|
8998
|
-
//
|
|
9002
|
+
// node_modules/micromark-core-commonmark/lib/thematic-break.js
|
|
8999
9003
|
var thematicBreak = {
|
|
9000
9004
|
name: "thematicBreak",
|
|
9001
9005
|
tokenize: tokenizeThematicBreak
|
|
@@ -9034,7 +9038,7 @@ function tokenizeThematicBreak(effects, ok3, nok) {
|
|
|
9034
9038
|
}
|
|
9035
9039
|
}
|
|
9036
9040
|
|
|
9037
|
-
//
|
|
9041
|
+
// node_modules/micromark-core-commonmark/lib/list.js
|
|
9038
9042
|
var list = {
|
|
9039
9043
|
continuation: {
|
|
9040
9044
|
tokenize: tokenizeListContinuation
|
|
@@ -9164,7 +9168,7 @@ function tokenizeListItemPrefixWhitespace(effects, ok3, nok) {
|
|
|
9164
9168
|
}
|
|
9165
9169
|
}
|
|
9166
9170
|
|
|
9167
|
-
//
|
|
9171
|
+
// node_modules/micromark-core-commonmark/lib/setext-underline.js
|
|
9168
9172
|
var setextUnderline = {
|
|
9169
9173
|
name: "setextUnderline",
|
|
9170
9174
|
resolveTo: resolveToSetextUnderline,
|
|
@@ -9258,7 +9262,7 @@ function tokenizeSetextUnderline(effects, ok3, nok) {
|
|
|
9258
9262
|
}
|
|
9259
9263
|
}
|
|
9260
9264
|
|
|
9261
|
-
//
|
|
9265
|
+
// node_modules/micromark/lib/initialize/flow.js
|
|
9262
9266
|
var flow = {
|
|
9263
9267
|
tokenize: initializeFlow
|
|
9264
9268
|
};
|
|
@@ -9296,7 +9300,7 @@ function initializeFlow(effects) {
|
|
|
9296
9300
|
}
|
|
9297
9301
|
}
|
|
9298
9302
|
|
|
9299
|
-
//
|
|
9303
|
+
// node_modules/micromark/lib/initialize/text.js
|
|
9300
9304
|
var resolver = {
|
|
9301
9305
|
resolveAll: createResolver()
|
|
9302
9306
|
};
|
|
@@ -9438,7 +9442,7 @@ function resolveAllLineSuffixes(events, context) {
|
|
|
9438
9442
|
return events;
|
|
9439
9443
|
}
|
|
9440
9444
|
|
|
9441
|
-
//
|
|
9445
|
+
// node_modules/micromark/lib/constructs.js
|
|
9442
9446
|
var constructs_exports = {};
|
|
9443
9447
|
__export(constructs_exports, {
|
|
9444
9448
|
attentionMarkers: () => attentionMarkers,
|
|
@@ -9513,7 +9517,7 @@ var disable = {
|
|
|
9513
9517
|
null: []
|
|
9514
9518
|
};
|
|
9515
9519
|
|
|
9516
|
-
//
|
|
9520
|
+
// node_modules/micromark/lib/create-tokenizer.js
|
|
9517
9521
|
function createTokenizer(parser, initialize, from) {
|
|
9518
9522
|
let point4 = {
|
|
9519
9523
|
_bufferIndex: -1,
|
|
@@ -9839,7 +9843,7 @@ function serializeChunks(chunks, expandTabs) {
|
|
|
9839
9843
|
return result.join("");
|
|
9840
9844
|
}
|
|
9841
9845
|
|
|
9842
|
-
//
|
|
9846
|
+
// node_modules/micromark/lib/parse.js
|
|
9843
9847
|
function parse(options) {
|
|
9844
9848
|
const settings = options || {};
|
|
9845
9849
|
const constructs2 = (
|
|
@@ -9865,14 +9869,14 @@ function parse(options) {
|
|
|
9865
9869
|
}
|
|
9866
9870
|
}
|
|
9867
9871
|
|
|
9868
|
-
//
|
|
9872
|
+
// node_modules/micromark/lib/postprocess.js
|
|
9869
9873
|
function postprocess(events) {
|
|
9870
9874
|
while (!subtokenize(events)) {
|
|
9871
9875
|
}
|
|
9872
9876
|
return events;
|
|
9873
9877
|
}
|
|
9874
9878
|
|
|
9875
|
-
//
|
|
9879
|
+
// node_modules/micromark/lib/preprocess.js
|
|
9876
9880
|
var search = /[\0\t\n\r]/g;
|
|
9877
9881
|
function preprocess() {
|
|
9878
9882
|
let column = 1;
|
|
@@ -9952,7 +9956,7 @@ function preprocess() {
|
|
|
9952
9956
|
}
|
|
9953
9957
|
}
|
|
9954
9958
|
|
|
9955
|
-
//
|
|
9959
|
+
// node_modules/micromark-util-decode-string/index.js
|
|
9956
9960
|
var characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
|
|
9957
9961
|
function decodeString(value) {
|
|
9958
9962
|
return value.replace(characterEscapeOrReference, decode);
|
|
@@ -9970,7 +9974,7 @@ function decode($0, $1, $2) {
|
|
|
9970
9974
|
return decodeNamedCharacterReference($2) || $0;
|
|
9971
9975
|
}
|
|
9972
9976
|
|
|
9973
|
-
//
|
|
9977
|
+
// node_modules/unist-util-stringify-position/lib/index.js
|
|
9974
9978
|
function stringifyPosition(value) {
|
|
9975
9979
|
if (!value || typeof value !== "object") {
|
|
9976
9980
|
return "";
|
|
@@ -9996,7 +10000,7 @@ function index(value) {
|
|
|
9996
10000
|
return value && typeof value === "number" ? value : 1;
|
|
9997
10001
|
}
|
|
9998
10002
|
|
|
9999
|
-
//
|
|
10003
|
+
// node_modules/mdast-util-from-markdown/lib/index.js
|
|
10000
10004
|
var own = {}.hasOwnProperty;
|
|
10001
10005
|
function fromMarkdown(value, encoding, options) {
|
|
10002
10006
|
if (encoding && typeof encoding === "object") {
|
|
@@ -10705,7 +10709,7 @@ function defaultOnError(left, right) {
|
|
|
10705
10709
|
}
|
|
10706
10710
|
}
|
|
10707
10711
|
|
|
10708
|
-
//
|
|
10712
|
+
// node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js
|
|
10709
10713
|
var wwwPrefix = {
|
|
10710
10714
|
tokenize: tokenizeWwwPrefix,
|
|
10711
10715
|
partial: true
|
|
@@ -11047,7 +11051,7 @@ function previousUnbalanced(events) {
|
|
|
11047
11051
|
return result;
|
|
11048
11052
|
}
|
|
11049
11053
|
|
|
11050
|
-
//
|
|
11054
|
+
// node_modules/micromark-extension-gfm-footnote/lib/syntax.js
|
|
11051
11055
|
var indent = {
|
|
11052
11056
|
tokenize: tokenizeIndent2,
|
|
11053
11057
|
partial: true
|
|
@@ -11322,7 +11326,7 @@ function tokenizeIndent2(effects, ok3, nok) {
|
|
|
11322
11326
|
}
|
|
11323
11327
|
}
|
|
11324
11328
|
|
|
11325
|
-
//
|
|
11329
|
+
// node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
|
|
11326
11330
|
function gfmStrikethrough(options) {
|
|
11327
11331
|
const options_ = options || {};
|
|
11328
11332
|
let single = options_.singleTilde;
|
|
@@ -11416,7 +11420,7 @@ function gfmStrikethrough(options) {
|
|
|
11416
11420
|
}
|
|
11417
11421
|
}
|
|
11418
11422
|
|
|
11419
|
-
//
|
|
11423
|
+
// node_modules/micromark-extension-gfm-table/lib/edit-map.js
|
|
11420
11424
|
var EditMap2 = class {
|
|
11421
11425
|
/**
|
|
11422
11426
|
* Create a new edit map.
|
|
@@ -11502,7 +11506,7 @@ function addImplementation2(editMap, at, remove, add) {
|
|
|
11502
11506
|
editMap.index.set(at, change);
|
|
11503
11507
|
}
|
|
11504
11508
|
|
|
11505
|
-
//
|
|
11509
|
+
// node_modules/micromark-extension-gfm-table/lib/infer.js
|
|
11506
11510
|
function gfmTableAlign(events, index2) {
|
|
11507
11511
|
let inDelimiterRow = false;
|
|
11508
11512
|
const align = [];
|
|
@@ -11529,7 +11533,7 @@ function gfmTableAlign(events, index2) {
|
|
|
11529
11533
|
return align;
|
|
11530
11534
|
}
|
|
11531
11535
|
|
|
11532
|
-
//
|
|
11536
|
+
// node_modules/micromark-extension-gfm-table/lib/syntax.js
|
|
11533
11537
|
function gfmTable() {
|
|
11534
11538
|
return {
|
|
11535
11539
|
flow: {
|
|
@@ -11920,7 +11924,7 @@ function getPoint(events, index2) {
|
|
|
11920
11924
|
return event[1][side];
|
|
11921
11925
|
}
|
|
11922
11926
|
|
|
11923
|
-
//
|
|
11927
|
+
// node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js
|
|
11924
11928
|
var tasklistCheck = {
|
|
11925
11929
|
name: "tasklistCheck",
|
|
11926
11930
|
tokenize: tokenizeTasklistCheck
|
|
@@ -11994,7 +11998,7 @@ function spaceThenNonSpace(effects, ok3, nok) {
|
|
|
11994
11998
|
}
|
|
11995
11999
|
}
|
|
11996
12000
|
|
|
11997
|
-
//
|
|
12001
|
+
// node_modules/micromark-extension-gfm/index.js
|
|
11998
12002
|
function gfm(options) {
|
|
11999
12003
|
return combineExtensions([
|
|
12000
12004
|
gfmAutolinkLiteral(),
|
|
@@ -12005,7 +12009,7 @@ function gfm(options) {
|
|
|
12005
12009
|
]);
|
|
12006
12010
|
}
|
|
12007
12011
|
|
|
12008
|
-
//
|
|
12012
|
+
// node_modules/ccount/index.js
|
|
12009
12013
|
function ccount(value, character) {
|
|
12010
12014
|
const source = String(value);
|
|
12011
12015
|
if (typeof character !== "string") {
|
|
@@ -12020,11 +12024,11 @@ function ccount(value, character) {
|
|
|
12020
12024
|
return count;
|
|
12021
12025
|
}
|
|
12022
12026
|
|
|
12023
|
-
//
|
|
12027
|
+
// node_modules/devlop/lib/default.js
|
|
12024
12028
|
function ok() {
|
|
12025
12029
|
}
|
|
12026
12030
|
|
|
12027
|
-
//
|
|
12031
|
+
// node_modules/escape-string-regexp/index.js
|
|
12028
12032
|
function escapeStringRegexp(string3) {
|
|
12029
12033
|
if (typeof string3 !== "string") {
|
|
12030
12034
|
throw new TypeError("Expected a string");
|
|
@@ -12032,7 +12036,7 @@ function escapeStringRegexp(string3) {
|
|
|
12032
12036
|
return string3.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
|
|
12033
12037
|
}
|
|
12034
12038
|
|
|
12035
|
-
//
|
|
12039
|
+
// node_modules/unist-util-is/lib/index.js
|
|
12036
12040
|
var convert = (
|
|
12037
12041
|
// Note: overloads in JSDoc can’t yet use different `@template`s.
|
|
12038
12042
|
/**
|
|
@@ -12131,12 +12135,12 @@ function looksLikeANode(value) {
|
|
|
12131
12135
|
return value !== null && typeof value === "object" && "type" in value;
|
|
12132
12136
|
}
|
|
12133
12137
|
|
|
12134
|
-
//
|
|
12138
|
+
// node_modules/unist-util-visit-parents/lib/color.js
|
|
12135
12139
|
function color(d) {
|
|
12136
12140
|
return d;
|
|
12137
12141
|
}
|
|
12138
12142
|
|
|
12139
|
-
//
|
|
12143
|
+
// node_modules/unist-util-visit-parents/lib/index.js
|
|
12140
12144
|
var empty = [];
|
|
12141
12145
|
var CONTINUE = true;
|
|
12142
12146
|
var EXIT = false;
|
|
@@ -12213,7 +12217,7 @@ function toResult(value) {
|
|
|
12213
12217
|
return value === null || value === void 0 ? empty : [value];
|
|
12214
12218
|
}
|
|
12215
12219
|
|
|
12216
|
-
//
|
|
12220
|
+
// node_modules/mdast-util-find-and-replace/lib/index.js
|
|
12217
12221
|
function findAndReplace(tree, list2, options) {
|
|
12218
12222
|
const settings = options || {};
|
|
12219
12223
|
const ignored = convert(settings.ignore || []);
|
|
@@ -12318,7 +12322,7 @@ function toFunction(replace2) {
|
|
|
12318
12322
|
};
|
|
12319
12323
|
}
|
|
12320
12324
|
|
|
12321
|
-
//
|
|
12325
|
+
// node_modules/mdast-util-gfm-autolink-literal/lib/index.js
|
|
12322
12326
|
function gfmAutolinkLiteralFromMarkdown() {
|
|
12323
12327
|
return {
|
|
12324
12328
|
transforms: [transformGfmAutolinkLiterals],
|
|
@@ -12439,7 +12443,7 @@ function previous2(match, email) {
|
|
|
12439
12443
|
(!email || code2 !== 47);
|
|
12440
12444
|
}
|
|
12441
12445
|
|
|
12442
|
-
//
|
|
12446
|
+
// node_modules/mdast-util-gfm-footnote/lib/index.js
|
|
12443
12447
|
footnoteReference.peek = footnoteReferencePeek;
|
|
12444
12448
|
function enterFootnoteCallString() {
|
|
12445
12449
|
this.buffer();
|
|
@@ -12513,7 +12517,7 @@ function gfmFootnoteFromMarkdown() {
|
|
|
12513
12517
|
};
|
|
12514
12518
|
}
|
|
12515
12519
|
|
|
12516
|
-
//
|
|
12520
|
+
// node_modules/mdast-util-gfm-strikethrough/lib/index.js
|
|
12517
12521
|
handleDelete.attention = attentionDelete;
|
|
12518
12522
|
handleDelete.peek = peekDelete;
|
|
12519
12523
|
function gfmStrikethroughFromMarkdown() {
|
|
@@ -12550,7 +12554,7 @@ function peekDelete() {
|
|
|
12550
12554
|
return "~";
|
|
12551
12555
|
}
|
|
12552
12556
|
|
|
12553
|
-
//
|
|
12557
|
+
// node_modules/mdast-util-gfm-table/lib/index.js
|
|
12554
12558
|
function gfmTableFromMarkdown() {
|
|
12555
12559
|
return {
|
|
12556
12560
|
enter: {
|
|
@@ -12610,7 +12614,7 @@ function replace($0, $1) {
|
|
|
12610
12614
|
return $1 === "|" ? $1 : $0;
|
|
12611
12615
|
}
|
|
12612
12616
|
|
|
12613
|
-
//
|
|
12617
|
+
// node_modules/mdast-util-gfm-task-list-item/lib/index.js
|
|
12614
12618
|
function gfmTaskListItemFromMarkdown() {
|
|
12615
12619
|
return {
|
|
12616
12620
|
exit: {
|
|
@@ -12657,7 +12661,7 @@ function exitParagraphWithTaskListItem(token) {
|
|
|
12657
12661
|
this.exit(token);
|
|
12658
12662
|
}
|
|
12659
12663
|
|
|
12660
|
-
//
|
|
12664
|
+
// node_modules/mdast-util-gfm/lib/index.js
|
|
12661
12665
|
function gfmFromMarkdown() {
|
|
12662
12666
|
return [
|
|
12663
12667
|
gfmAutolinkLiteralFromMarkdown(),
|
|
@@ -12856,6 +12860,63 @@ function PendantReader({ inbox, selected, error, anchor, onSelect, onClose, onVi
|
|
|
12856
12860
|
] });
|
|
12857
12861
|
}
|
|
12858
12862
|
|
|
12863
|
+
// src/pendant/startup.ts
|
|
12864
|
+
function waitForPendantStartup(signal, doc = document) {
|
|
12865
|
+
return new Promise((resolve, reject) => {
|
|
12866
|
+
const win = doc.defaultView;
|
|
12867
|
+
let timer2 = 0, idle = 0;
|
|
12868
|
+
const started = Date.now();
|
|
12869
|
+
const cleanup = () => {
|
|
12870
|
+
win.clearTimeout(timer2);
|
|
12871
|
+
if (idle) win.cancelIdleCallback?.(idle);
|
|
12872
|
+
doc.removeEventListener("visibilitychange", schedule);
|
|
12873
|
+
doc.removeEventListener("pointerdown", schedule);
|
|
12874
|
+
doc.removeEventListener("keydown", schedule);
|
|
12875
|
+
signal.removeEventListener("abort", abort);
|
|
12876
|
+
};
|
|
12877
|
+
const abort = () => {
|
|
12878
|
+
cleanup();
|
|
12879
|
+
reject(signal.reason ?? new DOMException("Aborted", "AbortError"));
|
|
12880
|
+
};
|
|
12881
|
+
const run = () => {
|
|
12882
|
+
idle = 0;
|
|
12883
|
+
if (signal.aborted) {
|
|
12884
|
+
abort();
|
|
12885
|
+
return;
|
|
12886
|
+
}
|
|
12887
|
+
if (doc.hidden) {
|
|
12888
|
+
schedule();
|
|
12889
|
+
return;
|
|
12890
|
+
}
|
|
12891
|
+
cleanup();
|
|
12892
|
+
resolve();
|
|
12893
|
+
};
|
|
12894
|
+
function schedule() {
|
|
12895
|
+
win.clearTimeout(timer2);
|
|
12896
|
+
if (idle) {
|
|
12897
|
+
win.cancelIdleCallback?.(idle);
|
|
12898
|
+
idle = 0;
|
|
12899
|
+
}
|
|
12900
|
+
if (doc.hidden) return;
|
|
12901
|
+
const elapsed = Date.now() - started;
|
|
12902
|
+
timer2 = win.setTimeout(() => {
|
|
12903
|
+
timer2 = 0;
|
|
12904
|
+
if (win.requestIdleCallback) idle = win.requestIdleCallback(run, { timeout: 1500 });
|
|
12905
|
+
else run();
|
|
12906
|
+
}, Math.max(0, 2e3 - elapsed, Math.min(600, 6e3 - elapsed)));
|
|
12907
|
+
}
|
|
12908
|
+
if (signal.aborted) {
|
|
12909
|
+
abort();
|
|
12910
|
+
return;
|
|
12911
|
+
}
|
|
12912
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
12913
|
+
doc.addEventListener("visibilitychange", schedule);
|
|
12914
|
+
doc.addEventListener("pointerdown", schedule, { passive: true });
|
|
12915
|
+
doc.addEventListener("keydown", schedule);
|
|
12916
|
+
schedule();
|
|
12917
|
+
});
|
|
12918
|
+
}
|
|
12919
|
+
|
|
12859
12920
|
// src/pendant/widget.tsx
|
|
12860
12921
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
12861
12922
|
function messageLabel(notice) {
|
|
@@ -12904,10 +12965,10 @@ function ActivePendant({ controller, settings }) {
|
|
|
12904
12965
|
(0, import_react25.useEffect)(() => {
|
|
12905
12966
|
const abort = new AbortController();
|
|
12906
12967
|
const url = `${PARTNER_API}/pendant/renderer.js`;
|
|
12907
|
-
void import(
|
|
12968
|
+
void waitForPendantStartup(abort.signal).then(() => import(
|
|
12908
12969
|
/* @vite-ignore */
|
|
12909
12970
|
url
|
|
12910
|
-
).then(async (module2) => {
|
|
12971
|
+
)).then(async (module2) => {
|
|
12911
12972
|
if (abort.signal.aborted || !canvas.current || !hit.current) return;
|
|
12912
12973
|
const instance = await module2.createLanyard(canvas.current, hit.current, {
|
|
12913
12974
|
signal: abort.signal,
|
|
@@ -13404,8 +13465,12 @@ function SkillsPanel() {
|
|
|
13404
13465
|
const [query, setQuery] = (0, import_react30.useState)("");
|
|
13405
13466
|
const [activeSource, setActiveSource] = (0, import_react30.useState)("market-clawhub");
|
|
13406
13467
|
const [busy, setBusy] = (0, import_react30.useState)();
|
|
13407
|
-
const [
|
|
13408
|
-
const [
|
|
13468
|
+
const [catalogLoading, setCatalogLoading] = (0, import_react30.useState)(true);
|
|
13469
|
+
const [marketLoading, setMarketLoading] = (0, import_react30.useState)(true);
|
|
13470
|
+
const [networkLoading, setNetworkLoading] = (0, import_react30.useState)(true);
|
|
13471
|
+
const [catalogError, setCatalogError] = (0, import_react30.useState)();
|
|
13472
|
+
const [marketError, setMarketError] = (0, import_react30.useState)();
|
|
13473
|
+
const [networkError, setNetworkError] = (0, import_react30.useState)();
|
|
13409
13474
|
const [actionError, setActionError] = (0, import_react30.useState)();
|
|
13410
13475
|
const [addingSource, setAddingSource] = (0, import_react30.useState)(false);
|
|
13411
13476
|
const [creatingSkill, setCreatingSkill] = (0, import_react30.useState)(false);
|
|
@@ -13413,26 +13478,46 @@ function SkillsPanel() {
|
|
|
13413
13478
|
const [editingNetwork, setEditingNetwork] = (0, import_react30.useState)(false);
|
|
13414
13479
|
const [showAllInstalled, setShowAllInstalled] = (0, import_react30.useState)(false);
|
|
13415
13480
|
const [network, setNetwork] = (0, import_react30.useState)({});
|
|
13416
|
-
const
|
|
13481
|
+
const loadCatalog = (0, import_react30.useCallback)(async () => {
|
|
13482
|
+
setCatalogLoading(true);
|
|
13417
13483
|
try {
|
|
13418
|
-
|
|
13419
|
-
|
|
13420
|
-
api(`/skills/market${refresh ? "?refresh=1" : ""}`),
|
|
13421
|
-
api("/skill-markets/network")
|
|
13422
|
-
]);
|
|
13423
|
-
setCatalog(nextCatalog);
|
|
13424
|
-
setMarket(nextMarket);
|
|
13425
|
-
setNetwork(nextNetwork);
|
|
13426
|
-
setError(void 0);
|
|
13484
|
+
setCatalog(await api("/skills"));
|
|
13485
|
+
setCatalogError(void 0);
|
|
13427
13486
|
} catch (reason) {
|
|
13428
|
-
|
|
13487
|
+
setCatalogError(errorMessage(reason));
|
|
13429
13488
|
} finally {
|
|
13430
|
-
|
|
13489
|
+
setCatalogLoading(false);
|
|
13431
13490
|
}
|
|
13432
13491
|
}, []);
|
|
13492
|
+
const loadMarket = (0, import_react30.useCallback)(async (refresh = false) => {
|
|
13493
|
+
setMarketLoading(true);
|
|
13494
|
+
try {
|
|
13495
|
+
setMarket(await api(`/skills/market${refresh ? "?refresh=1" : ""}`));
|
|
13496
|
+
setMarketError(void 0);
|
|
13497
|
+
} catch (reason) {
|
|
13498
|
+
setMarketError(errorMessage(reason));
|
|
13499
|
+
} finally {
|
|
13500
|
+
setMarketLoading(false);
|
|
13501
|
+
}
|
|
13502
|
+
}, []);
|
|
13503
|
+
const loadNetwork = (0, import_react30.useCallback)(async () => {
|
|
13504
|
+
setNetworkLoading(true);
|
|
13505
|
+
try {
|
|
13506
|
+
setNetwork(await api("/skill-markets/network"));
|
|
13507
|
+
setNetworkError(void 0);
|
|
13508
|
+
} catch (reason) {
|
|
13509
|
+
setNetworkError(errorMessage(reason));
|
|
13510
|
+
} finally {
|
|
13511
|
+
setNetworkLoading(false);
|
|
13512
|
+
}
|
|
13513
|
+
}, []);
|
|
13514
|
+
const load2 = (0, import_react30.useCallback)(async (refresh = false) => {
|
|
13515
|
+
await Promise.all([loadCatalog(), loadMarket(refresh), loadNetwork()]);
|
|
13516
|
+
}, [loadCatalog, loadMarket, loadNetwork]);
|
|
13433
13517
|
(0, import_react30.useEffect)(() => {
|
|
13434
13518
|
void load2();
|
|
13435
13519
|
}, [load2]);
|
|
13520
|
+
const loading = catalogLoading || marketLoading || networkLoading;
|
|
13436
13521
|
const installed = new Map(catalog.installed.map((item) => [item.id, item]));
|
|
13437
13522
|
const visibleInstalled = showAllInstalled ? catalog.installed : catalog.installed.slice(0, 4);
|
|
13438
13523
|
const visible = (0, import_react30.useMemo)(() => {
|
|
@@ -13449,7 +13534,7 @@ function SkillsPanel() {
|
|
|
13449
13534
|
setActionError(void 0);
|
|
13450
13535
|
try {
|
|
13451
13536
|
await api("/skills/market/install", { method: "POST", body: JSON.stringify({ sourceId: entry.sourceId, entryId: entry.id }) });
|
|
13452
|
-
await
|
|
13537
|
+
await loadCatalog();
|
|
13453
13538
|
} catch (reason) {
|
|
13454
13539
|
setActionError({ kind: "install", id: entry.id, message: errorMessage(reason) });
|
|
13455
13540
|
} finally {
|
|
@@ -13461,7 +13546,7 @@ function SkillsPanel() {
|
|
|
13461
13546
|
setActionError(void 0);
|
|
13462
13547
|
try {
|
|
13463
13548
|
await api(`/skills/${encodeURIComponent(id)}`, { method: "DELETE" });
|
|
13464
|
-
await
|
|
13549
|
+
await loadCatalog();
|
|
13465
13550
|
} catch (reason) {
|
|
13466
13551
|
setActionError({ kind: "uninstall", id, message: errorMessage(reason) });
|
|
13467
13552
|
} finally {
|
|
@@ -13475,12 +13560,23 @@ function SkillsPanel() {
|
|
|
13475
13560
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_dsh_client_ui_primitives11.IconRefreshOutlineRegular, { size: 15 }),
|
|
13476
13561
|
loading ? "\u540C\u6B65\u4E2D\u2026" : "\u5237\u65B0\u5E02\u573A"
|
|
13477
13562
|
] }) }),
|
|
13478
|
-
|
|
13479
|
-
|
|
13480
|
-
|
|
13563
|
+
catalogError && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(WorkspaceNotice, { children: [
|
|
13564
|
+
"\u5DF2\u5B89\u88C5 Skill \u8BFB\u53D6\u5931\u8D25\uFF1A",
|
|
13565
|
+
catalogError
|
|
13566
|
+
] }),
|
|
13567
|
+
marketError && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(WorkspaceNotice, { children: [
|
|
13568
|
+
"\u5E02\u573A\u76EE\u5F55\u8BFB\u53D6\u5931\u8D25\uFF1A",
|
|
13569
|
+
marketError
|
|
13570
|
+
] }),
|
|
13571
|
+
networkError && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(WorkspaceNotice, { children: [
|
|
13572
|
+
"\u5E02\u573A\u7F51\u7EDC\u8BBE\u7F6E\u8BFB\u53D6\u5931\u8D25\uFF1A",
|
|
13573
|
+
networkError
|
|
13574
|
+
] }),
|
|
13575
|
+
importingSkill && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SkillImportDialog, { close: () => setImportingSkill(false), changed: loadCatalog }),
|
|
13576
|
+
creatingSkill && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(WorkspaceDialog, { title: "\u65B0\u5EFA Skill", detail: "\u521B\u5EFA\u4E00\u4E2A\u53EF\u590D\u7528\u7684\u5DE5\u4F5C\u6D41\u7A0B\uFF0C\u5E76\u660E\u786E\u6267\u884C\u4E0A\u4E0B\u6587\u3001\u5DE5\u5177\u8FB9\u754C\u548C\u9A8C\u6536\u6307\u4EE4\u3002", close: () => setCreatingSkill(false), width: "wide", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(NewSkillForm, { existingIds: catalog.installed.map((skill) => skill.id), close: () => setCreatingSkill(false), changed: loadCatalog }) }),
|
|
13481
13577
|
editingNetwork && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(WorkspaceDialog, { title: "\u5E02\u573A\u7F51\u7EDC\u8BBE\u7F6E", detail: "\u914D\u7F6E Skill \u7D22\u5F15\u548C\u5B89\u88C5\u5305\u4E0B\u8F7D\u5171\u7528\u7684 HTTP \u4EE3\u7406\uFF0C\u5E76\u5728\u4FDD\u5B58\u524D\u6D4B\u8BD5\u8FDE\u901A\u6027\u3002", close: () => setEditingNetwork(false), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(NetworkSettingsForm, { value: network, close: () => setEditingNetwork(false), changed: async (next) => {
|
|
13482
13578
|
setNetwork(next);
|
|
13483
|
-
await
|
|
13579
|
+
await loadMarket(true);
|
|
13484
13580
|
} }) }),
|
|
13485
13581
|
addingSource && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(WorkspaceDialog, { title: "\u6DFB\u52A0\u5E02\u573A\u6765\u6E90", detail: "\u63A5\u5165\u56E2\u961F\u6216\u4E2A\u4EBA\u7EF4\u62A4\u7684 Skill \u7D22\u5F15\u3002\u81EA\u5B9A\u4E49\u6765\u6E90\u9ED8\u8BA4\u6309\u4E0D\u53EF\u4FE1\u6765\u6E90\u9694\u79BB\u6267\u884C\u3002", close: () => setAddingSource(false), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(MarketSourceForm, { close: () => setAddingSource(false), changed: () => load2(true) }) }),
|
|
13486
13582
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(WorkspaceBlock, { title: "\u5DF2\u5B89\u88C5", detail: `${catalog.installed.length} \u4E2A\u53EF\u4F9B\u4F19\u4F34\u4F7F\u7528`, actions: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
|
|
@@ -13489,7 +13585,7 @@ function SkillsPanel() {
|
|
|
13489
13585
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_dsh_client_ui_primitives11.IconPlusOutlineRegular, { size: 14 }),
|
|
13490
13586
|
"\u65B0\u5EFA Skill"
|
|
13491
13587
|
] })
|
|
13492
|
-
] }), children:
|
|
13588
|
+
] }), children: catalogLoading ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CollectionSkeleton, { rows: 2 }) : catalog.installed.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CollectionEmpty, { title: "\u8FD8\u6CA1\u6709\u5B89\u88C5 Skill", detail: "\u53EF\u4EE5\u521B\u5EFA\u81EA\u5DF1\u7684 Skill\uFF0C\u6216\u4ECE\u4E0B\u65B9\u5E02\u573A\u9009\u62E9\u3002", action: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("button", { type: "button", onClick: () => setCreatingSkill(true), children: [
|
|
13493
13589
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_dsh_client_ui_primitives11.IconPlusOutlineRegular, { size: 14 }),
|
|
13494
13590
|
"\u65B0\u5EFA\u7B2C\u4E00\u4E2A Skill"
|
|
13495
13591
|
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
|
|
@@ -13527,14 +13623,14 @@ function SkillsPanel() {
|
|
|
13527
13623
|
] })
|
|
13528
13624
|
] }), children: [
|
|
13529
13625
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "dsh-partner-market-toolbar", children: [
|
|
13530
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SkillSearch, { value: query, change: setQuery, count: visible.length, label: "\u641C\u7D22 Skill \u5E02\u573A", placeholder: "\u641C\u7D22\u540D\u79F0\u3001\u8BF4\u660E\u6216\u6807\u7B7E", loading }),
|
|
13626
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SkillSearch, { value: query, change: setQuery, count: visible.length, label: "\u641C\u7D22 Skill \u5E02\u573A", placeholder: "\u641C\u7D22\u540D\u79F0\u3001\u8BF4\u660E\u6216\u6807\u7B7E", loading: marketLoading }),
|
|
13531
13627
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("nav", { className: "dsh-partner-market-sources", "aria-label": "Skill \u5E02\u573A\u6765\u6E90", children: sources.map((source) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("button", { type: "button", className: activeSource === source.id ? "is-active" : "", "aria-pressed": activeSource === source.id, onClick: () => setActiveSource(source.id), children: [
|
|
13532
13628
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { children: source.name }),
|
|
13533
13629
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("small", { children: sourceCounts.get(source.id) ?? 0 })
|
|
13534
13630
|
] }, source.id)) })
|
|
13535
13631
|
] }),
|
|
13536
13632
|
market.errors.some((item) => item.sourceId === activeSource) && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "dsh-partner-inline-warning", children: market.errors.filter((item) => item.sourceId === activeSource).map((item) => item.error).join("\uFF1B") }),
|
|
13537
|
-
|
|
13633
|
+
marketLoading ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CollectionSkeleton, { rows: 4 }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "dsh-partner-market-grid", children: visible.map((entry) => {
|
|
13538
13634
|
const current2 = installed.get(entry.id);
|
|
13539
13635
|
const cardError = actionError?.kind === "install" && actionError.id === entry.id ? actionError.message : void 0;
|
|
13540
13636
|
const errorId = cardError ? `dsh-partner-skill-error-${entry.id}` : void 0;
|
|
@@ -13562,7 +13658,7 @@ function SkillsPanel() {
|
|
|
13562
13658
|
] })
|
|
13563
13659
|
] }, `${entry.sourceId}:${entry.id}`);
|
|
13564
13660
|
}) }),
|
|
13565
|
-
!
|
|
13661
|
+
!marketLoading && visible.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CollectionEmpty, { title: query ? "\u6CA1\u6709\u5339\u914D\u7684 Skill" : "\u5F53\u524D\u6765\u6E90\u6682\u65F6\u4E0D\u53EF\u7528", detail: query ? "\u6362\u4E00\u4E2A\u5173\u952E\u8BCD\uFF0C\u6216\u5207\u6362\u5E02\u573A\u6765\u6E90\u3002" : "\u5237\u65B0\u5E02\u573A\uFF0C\u6216\u68C0\u67E5\u4EE3\u7406\u4E0E\u6765\u6E90\u914D\u7F6E\u3002" })
|
|
13566
13662
|
] })
|
|
13567
13663
|
] });
|
|
13568
13664
|
}
|
|
@@ -15184,6 +15280,7 @@ function SchedulePanel({ companions }) {
|
|
|
15184
15280
|
const [loading, setLoading] = (0, import_react38.useState)(true);
|
|
15185
15281
|
const [error, setError] = (0, import_react38.useState)();
|
|
15186
15282
|
const eligible = companions.filter((c) => c.capabilities.includes("schedules"));
|
|
15283
|
+
const visibleSchedules = schedules.filter((item) => item.schedule.kind !== "once" || !item.continuation || !["completed", "cancelled"].includes(item.continuation.state));
|
|
15187
15284
|
const load2 = (0, import_react38.useCallback)(async () => {
|
|
15188
15285
|
try {
|
|
15189
15286
|
const value = await api("/schedules");
|
|
@@ -15259,10 +15356,10 @@ function SchedulePanel({ companions }) {
|
|
|
15259
15356
|
eligible.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(WorkspaceNotice, { children: "\u8BF7\u5148\u5728\u4F19\u4F34\u80FD\u529B\u4E2D\u52FE\u9009\u201C\u5B9A\u65F6\u4EFB\u52A1\u201D\u3002\u5173\u95ED\u80FD\u529B\u540E\uFF0C\u5DF2\u6709\u8BA1\u5212\u4E0D\u4F1A\u7EE7\u7EED\u6267\u884C\u3002" }),
|
|
15260
15357
|
error && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(WorkspaceNotice, { children: error }),
|
|
15261
15358
|
creating && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(WorkspaceDialog, { title: "\u65B0\u5EFA\u5B9A\u65F6\u4EFB\u52A1", detail: "\u9009\u62E9\u6267\u884C\u4F19\u4F34\u3001\u8FD0\u884C\u9891\u7387\u548C\u4F1A\u8BDD\u4FDD\u7559\u7B56\u7565\u3002\u957F\u4EFB\u52A1\u7EED\u63A5\u7531\u4F19\u4F34\u901A\u8FC7\u5DE5\u5177\u9884\u7EA6\uFF0C\u65E0\u9700\u5728\u8FD9\u91CC\u624B\u52A8\u521B\u5EFA\u3002", close: () => setCreating(false), width: "wide", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ScheduleForm, { companions: eligible, close: () => setCreating(false), changed: load2 }) }),
|
|
15262
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(WorkspaceBlock, { title: "\u6267\u884C\u8BA1\u5212", detail: `${
|
|
15359
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(WorkspaceBlock, { title: "\u6267\u884C\u8BA1\u5212", detail: `${visibleSchedules.filter((item) => item.enabled && eligible.some((c) => c.id === item.companionId)).length} \u4E2A\u542F\u7528`, children: loading ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(CollectionSkeleton, { rows: 3 }) : visibleSchedules.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(CollectionEmpty, { title: "\u8FD8\u6CA1\u6709\u5B9A\u65F6\u4EFB\u52A1", detail: "\u5468\u671F\u8BA1\u5212\u548C\u7B49\u5F85\u5904\u7406\u7684\u957F\u4EFB\u52A1\u7EED\u63A5\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002", action: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("button", { type: "button", disabled: eligible.length === 0, onClick: () => setCreating(true), children: [
|
|
15263
15360
|
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_dsh_client_ui_primitives17.IconPlusOutlineRegular, { size: 14 }),
|
|
15264
15361
|
"\u521B\u5EFA\u7B2C\u4E00\u4E2A\u8BA1\u5212"
|
|
15265
|
-
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "dsh-partner-schedule-list", children:
|
|
15362
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "dsh-partner-schedule-list", children: visibleSchedules.map((entry) => {
|
|
15266
15363
|
const wake = entry.continuation, allowed = eligible.some((c) => c.id === entry.companionId);
|
|
15267
15364
|
const terminal = wake && ["completed", "blocked", "cancelled"].includes(wake.state);
|
|
15268
15365
|
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("article", { children: [
|
|
@@ -15648,47 +15745,16 @@ var titles = { skills: "Skill", access: "\u53EF\u8BBF\u95EE\u4F19\u4F34", mcp: "
|
|
|
15648
15745
|
function CapabilityResources({ companionId, capabilities, disabled, children }) {
|
|
15649
15746
|
const [opened, setOpened] = (0, import_react41.useState)();
|
|
15650
15747
|
const [busy, setBusy] = (0, import_react41.useState)(false);
|
|
15651
|
-
const [revision, setRevision] = (0, import_react41.useState)(0);
|
|
15652
|
-
const [counts, setCounts] = (0, import_react41.useState)({});
|
|
15653
|
-
const [failed, setFailed] = (0, import_react41.useState)(false);
|
|
15654
|
-
(0, import_react41.useEffect)(() => {
|
|
15655
|
-
let live = true;
|
|
15656
|
-
setFailed(false);
|
|
15657
|
-
const requests = [
|
|
15658
|
-
["access", api(`/companions/${encodeURIComponent(companionId)}/access`).then((v) => v.targetIds.length)]
|
|
15659
|
-
];
|
|
15660
|
-
if (capabilities.includes("skills")) requests.push(["skills", api("/skills").then((v) => v.installed.filter((s) => v.bindings.some((b) => b.companionId === companionId && b.skillId === s.id && b.enabled)).length)]);
|
|
15661
|
-
if (capabilities.includes("mcp")) requests.push(["mcp", api("/mcp").then((v) => v.servers.filter((s) => v.bindings.some((b) => b.companionId === companionId && b.serverId === s.id)).length)]);
|
|
15662
|
-
for (const [key, request] of requests) void request.then((count) => {
|
|
15663
|
-
if (live) setCounts((v) => ({ ...v, [key]: count }));
|
|
15664
|
-
}).catch(() => {
|
|
15665
|
-
if (live) {
|
|
15666
|
-
setCounts((v) => ({ ...v, [key]: void 0 }));
|
|
15667
|
-
setFailed(true);
|
|
15668
|
-
}
|
|
15669
|
-
});
|
|
15670
|
-
return () => {
|
|
15671
|
-
live = false;
|
|
15672
|
-
};
|
|
15673
|
-
}, [companionId, capabilities, revision]);
|
|
15674
15748
|
const close = () => {
|
|
15675
15749
|
if (busy) return;
|
|
15676
15750
|
setOpened(void 0);
|
|
15677
|
-
setRevision((v) => v + 1);
|
|
15678
15751
|
};
|
|
15679
|
-
const manage = (key) => /* @__PURE__ */ (0, import_jsx_runtime38.
|
|
15752
|
+
const manage = (key) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("button", { className: "dsh-partner-capability-manage", type: "button", disabled: disabled || key !== "access" && !capabilities.includes(key), "aria-haspopup": "dialog", "aria-label": `\u7BA1\u7406${titles[key]}`, onClick: () => {
|
|
15680
15753
|
setBusy(false);
|
|
15681
15754
|
setOpened(key);
|
|
15682
|
-
}, children:
|
|
15683
|
-
"\u7BA1\u7406",
|
|
15684
|
-
counts[key] !== void 0 ? ` \xB7 ${counts[key]}` : ""
|
|
15685
|
-
] });
|
|
15755
|
+
}, children: "\u7BA1\u7406" });
|
|
15686
15756
|
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
|
|
15687
15757
|
children(manage),
|
|
15688
|
-
failed && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: "dsh-partner-inline-note", children: [
|
|
15689
|
-
"\u90E8\u5206\u6570\u91CF\u8BFB\u53D6\u5931\u8D25\uFF0C\u53EF\u6253\u5F00\u7BA1\u7406\u91CD\u8BD5\u3002",
|
|
15690
|
-
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("button", { type: "button", onClick: () => setRevision((v) => v + 1), children: "\u5237\u65B0\u6570\u91CF" })
|
|
15691
|
-
] }),
|
|
15692
15758
|
opened && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(WorkspaceDialog, { className: "is-capability-resources", eyebrow: "", title: `\u7BA1\u7406${titles[opened]}`, detail: opened === "access" ? "\u9009\u62E9\u6B64\u4F19\u4F34\u53EF\u4EE5\u8BBF\u95EE\u548C\u59D4\u6D3E\u7684\u4F19\u4F34\uFF0C\u5355\u5411\u6388\u6743\u3002" : "\u9009\u62E9\u9700\u8981\u542F\u7528\u7684\u80FD\u529B\uFF0C\u4FEE\u6539\u81EA\u52A8\u4FDD\u5B58\uFF0C\u4E0B\u4E00\u8F6E\u751F\u6548\u3002", close, children: [
|
|
15693
15759
|
busy && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { role: "status", className: "dsh-partner-inline-note", children: "\u6B63\u5728\u4FDD\u5B58\uFF0C\u8BF7\u7A0D\u5019\u2026" }),
|
|
15694
15760
|
opened === "skills" && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(CompanionSkillSettings, { companionId, onBusyChange: setBusy }),
|
|
@@ -16917,7 +16983,7 @@ function GeneralSettingsPanel() {
|
|
|
16917
16983
|
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("section", { className: "dsh-partner-general-settings", "aria-busy": busy, children: [
|
|
16918
16984
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("h2", { children: "\u57FA\u672C\u8BBE\u7F6E" }),
|
|
16919
16985
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(AttachmentStoragePanel, {}),
|
|
16920
|
-
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(WorkspaceBlock, { title: "\u5347\u7EA7\u8FC1\u79FB", detail: "\u624B\u52A8\u6574\u7406\u516C\u5171\u6570\u636E\u548C\u6BCF\u4F4D\u4F19\u4F34\u7684\u79C1\u6709\u76EE\u5F55\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u6267\u884C\u3002", actions: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("button", { type: "button", disabled: busy, onClick: () => void inspect(), children: busy ? "\u5904\u7406\u4E2D\u2026" : "\u68C0\u67E5\u8FC1\u79FB" }), children: [
|
|
16986
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(WorkspaceBlock, { className: "is-storage-migration", title: "\u5347\u7EA7\u8FC1\u79FB", detail: "\u624B\u52A8\u6574\u7406\u516C\u5171\u6570\u636E\u548C\u6BCF\u4F4D\u4F19\u4F34\u7684\u79C1\u6709\u76EE\u5F55\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u6267\u884C\u3002", actions: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("button", { type: "button", disabled: busy, onClick: () => void inspect(), children: busy ? "\u5904\u7406\u4E2D\u2026" : "\u68C0\u67E5\u8FC1\u79FB" }), children: [
|
|
16921
16987
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("p", { children: [
|
|
16922
16988
|
"\u6570\u636E\u5B58\u50A8\u7248\u672C\uFF1A",
|
|
16923
16989
|
version === void 0 ? "\u6B63\u5728\u8BFB\u53D6\u2026" : `v${version}${version === 0 ? " \xB7 \u5F85\u8FC1\u79FB" : " \xB7 \u5DF2\u5347\u7EA7"}`
|