@dungsil/dsh-plugin-ui-vcs 0.4.0 → 0.4.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/dist/client.js +101 -64
- package/dist/index.js +24 -12
- package/package.json +36 -33
package/dist/client.js
CHANGED
|
@@ -23,6 +23,10 @@ var git_pull_request_draft_default = "<svg xmlns=\"http://www.w3.org/2000/svg\"
|
|
|
23
23
|
var git_pull_request_closed_default = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"5\" cy=\"5\" r=\"2\"/>\n <circle cx=\"5\" cy=\"19\" r=\"2\"/>\n <circle cx=\"19\" cy=\"19\" r=\"2\"/>\n <path d=\"M5 7v10M19 17v-5M16 3l6 6m0-6-6 6\"/>\n</svg>\n";
|
|
24
24
|
// ../../tools/ui/src/icons/git-merge.svg
|
|
25
25
|
var git_merge_default = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"5\" cy=\"5\" r=\"2\"/>\n <circle cx=\"5\" cy=\"19\" r=\"2\"/>\n <circle cx=\"19\" cy=\"19\" r=\"2\"/>\n <path d=\"M5 7v10M5 7a12 12 0 0 0 12 12\"/>\n</svg>\n";
|
|
26
|
+
// ../../tools/ui/src/icons/circle-x.svg
|
|
27
|
+
var circle_x_default = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"9\"/>\n <path d=\"m9 9 6 6m0-6-6 6\"/>\n</svg>\n";
|
|
28
|
+
// ../../tools/ui/src/icons/circle-minus.svg
|
|
29
|
+
var circle_minus_default = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"9\"/>\n <path d=\"M9 12h6\"/>\n</svg>\n";
|
|
26
30
|
// ../../tools/ui/src/client.ts
|
|
27
31
|
function useLocaleSnapshot(locale) {
|
|
28
32
|
const subscribe = (0, react.useCallback)((listener) => locale.subscribe(listener), [locale]);
|
|
@@ -57,6 +61,37 @@ function SettingsRow({ label, children }) {
|
|
|
57
61
|
}), children]
|
|
58
62
|
});
|
|
59
63
|
}
|
|
64
|
+
// ../../tools/ui/src/button-picker.tsx
|
|
65
|
+
function ButtonPicker({ label, value, items, onChange, disabled = false, menuClassName, compact, ...buttonProps }) {
|
|
66
|
+
const [open, setOpen] = (0, react.useState)(false);
|
|
67
|
+
(0, react.useEffect)(() => {
|
|
68
|
+
if (disabled) setOpen(false);
|
|
69
|
+
}, [disabled]);
|
|
70
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, {
|
|
71
|
+
open: open && !disabled,
|
|
72
|
+
portal: true,
|
|
73
|
+
compact,
|
|
74
|
+
className: menuClassName,
|
|
75
|
+
selectedId: value,
|
|
76
|
+
items,
|
|
77
|
+
onClose: () => setOpen(false),
|
|
78
|
+
onSelect: (id) => {
|
|
79
|
+
setOpen(false);
|
|
80
|
+
const item = items.find((item) => item.id === id && !item.disabled);
|
|
81
|
+
if (!disabled && item) onChange(item.id);
|
|
82
|
+
},
|
|
83
|
+
anchor: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
84
|
+
...buttonProps,
|
|
85
|
+
type: "button",
|
|
86
|
+
"aria-label": label,
|
|
87
|
+
"aria-haspopup": "menu",
|
|
88
|
+
"aria-expanded": open && !disabled,
|
|
89
|
+
disabled,
|
|
90
|
+
onClick: () => setOpen((current) => !current),
|
|
91
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: items.find((item) => item.id === value)?.label }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { "aria-hidden": "true" })]
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
}
|
|
60
95
|
// locale/en.json
|
|
61
96
|
var en_default = {
|
|
62
97
|
meta: {
|
|
@@ -10050,23 +10085,22 @@ function attentionDelete() {
|
|
|
10050
10085
|
function peekDelete() {
|
|
10051
10086
|
return "~";
|
|
10052
10087
|
}
|
|
10053
|
-
// ../../node_modules/.pnpm/mdast-util-gfm-table@2.0.
|
|
10088
|
+
// ../../node_modules/.pnpm/mdast-util-gfm-table@2.0.1/node_modules/mdast-util-gfm-table/lib/index.js
|
|
10054
10089
|
/**
|
|
10055
|
-
* @
|
|
10056
|
-
* @
|
|
10057
|
-
* @
|
|
10058
|
-
*
|
|
10059
|
-
*
|
|
10060
|
-
*
|
|
10061
|
-
*
|
|
10062
|
-
* @
|
|
10063
|
-
*
|
|
10064
|
-
*
|
|
10065
|
-
*
|
|
10066
|
-
*
|
|
10067
|
-
*
|
|
10068
|
-
*
|
|
10069
|
-
* @typedef {import('mdast-util-to-markdown').Info} Info
|
|
10090
|
+
* @import {Heading, InlineCode, Table, TableCell, TableRow} from 'mdast'
|
|
10091
|
+
* @import {Options as MarkdownTableOptions} from 'markdown-table'
|
|
10092
|
+
* @import {
|
|
10093
|
+
* CompileContext,
|
|
10094
|
+
* Extension as FromMarkdownExtension,
|
|
10095
|
+
* Handle as FromMarkdownHandle,
|
|
10096
|
+
* } from 'mdast-util-from-markdown'
|
|
10097
|
+
* @import {
|
|
10098
|
+
* Options as ToMarkdownExtension,
|
|
10099
|
+
* Handle as ToMarkdownHandle,
|
|
10100
|
+
* Info,
|
|
10101
|
+
* Join,
|
|
10102
|
+
* State
|
|
10103
|
+
* } from 'mdast-util-to-markdown'
|
|
10070
10104
|
*/
|
|
10071
10105
|
/**
|
|
10072
10106
|
* @typedef Options
|
|
@@ -10105,6 +10139,8 @@ function gfmTableFromMarkdown() {
|
|
|
10105
10139
|
};
|
|
10106
10140
|
}
|
|
10107
10141
|
/**
|
|
10142
|
+
* Enter a table.
|
|
10143
|
+
*
|
|
10108
10144
|
* @this {CompileContext}
|
|
10109
10145
|
* @type {FromMarkdownHandle}
|
|
10110
10146
|
*/
|
|
@@ -10115,11 +10151,14 @@ function enterTable(token) {
|
|
|
10115
10151
|
align: align.map(function(d) {
|
|
10116
10152
|
return d === "none" ? null : d;
|
|
10117
10153
|
}),
|
|
10118
|
-
children: []
|
|
10154
|
+
children: [],
|
|
10155
|
+
position: void 0
|
|
10119
10156
|
}, token);
|
|
10120
10157
|
this.data.inTable = true;
|
|
10121
10158
|
}
|
|
10122
10159
|
/**
|
|
10160
|
+
* Exit a table.
|
|
10161
|
+
*
|
|
10123
10162
|
* @this {CompileContext}
|
|
10124
10163
|
* @type {FromMarkdownHandle}
|
|
10125
10164
|
*/
|
|
@@ -10128,16 +10167,21 @@ function exitTable(token) {
|
|
|
10128
10167
|
this.data.inTable = void 0;
|
|
10129
10168
|
}
|
|
10130
10169
|
/**
|
|
10170
|
+
* Enter a row.
|
|
10171
|
+
*
|
|
10131
10172
|
* @this {CompileContext}
|
|
10132
10173
|
* @type {FromMarkdownHandle}
|
|
10133
10174
|
*/
|
|
10134
10175
|
function enterRow(token) {
|
|
10135
10176
|
this.enter({
|
|
10136
10177
|
type: "tableRow",
|
|
10137
|
-
children: []
|
|
10178
|
+
children: [],
|
|
10179
|
+
position: void 0
|
|
10138
10180
|
}, token);
|
|
10139
10181
|
}
|
|
10140
10182
|
/**
|
|
10183
|
+
* Exit a row or cell.
|
|
10184
|
+
*
|
|
10141
10185
|
* @this {CompileContext}
|
|
10142
10186
|
* @type {FromMarkdownHandle}
|
|
10143
10187
|
*/
|
|
@@ -10145,16 +10189,24 @@ function exit(token) {
|
|
|
10145
10189
|
this.exit(token);
|
|
10146
10190
|
}
|
|
10147
10191
|
/**
|
|
10192
|
+
* Enter a cell.
|
|
10193
|
+
*
|
|
10148
10194
|
* @this {CompileContext}
|
|
10149
10195
|
* @type {FromMarkdownHandle}
|
|
10150
10196
|
*/
|
|
10151
10197
|
function enterCell(token) {
|
|
10152
10198
|
this.enter({
|
|
10153
10199
|
type: "tableCell",
|
|
10154
|
-
children: []
|
|
10200
|
+
children: [],
|
|
10201
|
+
position: void 0
|
|
10155
10202
|
}, token);
|
|
10156
10203
|
}
|
|
10157
10204
|
/**
|
|
10205
|
+
* Exit code (text).
|
|
10206
|
+
*
|
|
10207
|
+
* Overwrites the default code text data handler to unescape escaped pipes
|
|
10208
|
+
* when they are in tables.
|
|
10209
|
+
*
|
|
10158
10210
|
* @this {CompileContext}
|
|
10159
10211
|
* @type {FromMarkdownHandle}
|
|
10160
10212
|
*/
|
|
@@ -10167,9 +10219,14 @@ function exitCodeText(token) {
|
|
|
10167
10219
|
this.exit(token);
|
|
10168
10220
|
}
|
|
10169
10221
|
/**
|
|
10222
|
+
* Unescape an escaped pipe.
|
|
10223
|
+
*
|
|
10170
10224
|
* @param {string} $0
|
|
10225
|
+
* Whole match.
|
|
10171
10226
|
* @param {string} $1
|
|
10227
|
+
* Escaped character.
|
|
10172
10228
|
* @returns {string}
|
|
10229
|
+
* Replacement.
|
|
10173
10230
|
*/
|
|
10174
10231
|
function replace($0, $1) {
|
|
10175
10232
|
return $1 === "|" ? $1 : $0;
|
|
@@ -13235,8 +13292,15 @@ const styles = `
|
|
|
13235
13292
|
.dsh-pr-loading{display:inline-flex;flex-shrink:0;width:16px;height:16px;vertical-align:middle;color:var(--dsw-alias-label-secondary)}
|
|
13236
13293
|
.dsh-pr-loading svg{width:100%;height:100%;animation:dsh-pr-spin .8s linear infinite}
|
|
13237
13294
|
.dsh-pr-initial-loading{display:flex;justify-content:center;padding:24px 16px}
|
|
13295
|
+
.dsh-vcs-check-status{display:inline-flex;flex:none;width:14px;height:14px;align-items:center;justify-content:center;vertical-align:middle;color:var(--dsw-alias-label-tertiary)}
|
|
13296
|
+
.dsh-vcs-check-status>span{display:contents}
|
|
13297
|
+
.dsh-vcs-check-status svg{width:100%;height:100%}
|
|
13298
|
+
.dsh-vcs-check-status[data-state=done]{color:var(--dsw-alias-state-success-primary)}
|
|
13299
|
+
.dsh-vcs-check-status[data-state=error]{color:var(--dsw-alias-state-error-primary)}
|
|
13300
|
+
.dsh-vcs-check-status:is([data-state=ongoing],[data-state=warning]){color:var(--dsw-alias-state-warn-primary)}
|
|
13301
|
+
.dsh-vcs-check-status[data-state=ongoing] svg{animation:dsh-pr-spin 1.5s linear infinite}
|
|
13238
13302
|
@keyframes dsh-pr-spin{to{transform:rotate(360deg)}}
|
|
13239
|
-
@media(prefers-reduced-motion:reduce){.dsh-pr-loading svg{animation:none}}
|
|
13303
|
+
@media(prefers-reduced-motion:reduce){.dsh-pr-loading svg,.dsh-vcs-check-status[data-state=ongoing] svg{animation:none}}
|
|
13240
13304
|
.dsh-pr-panel :is(a,textarea,summary,[role=tabpanel]):focus-visible{outline:2px solid var(--dsw-focus-ring-color);outline-offset:-2px}
|
|
13241
13305
|
.dsh-pr-content{overflow:auto;flex:1;min-height:0}
|
|
13242
13306
|
.dsh-pr-content>p{padding:20px 16px;color:var(--dsw-alias-label-secondary);line-height:1.6}
|
|
@@ -13356,6 +13420,7 @@ function bindPullRequestLinks(root, open) {
|
|
|
13356
13420
|
}
|
|
13357
13421
|
// src/pull-requests-client.tsx
|
|
13358
13422
|
var pull_requests_client_exports = /* @__PURE__ */ __exportAll({
|
|
13423
|
+
CheckStatusIcon: () => CheckStatusIcon,
|
|
13359
13424
|
apply: () => apply$2,
|
|
13360
13425
|
checksState: () => checksState,
|
|
13361
13426
|
inject: () => inject$1,
|
|
@@ -13398,6 +13463,14 @@ function checksState(item) {
|
|
|
13398
13463
|
].includes(state))) return "ongoing";
|
|
13399
13464
|
return states.every((state) => ["success", "passed"].includes(state)) ? "done" : "idle";
|
|
13400
13465
|
}
|
|
13466
|
+
function CheckStatusIcon({ state }) {
|
|
13467
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13468
|
+
className: "dsh-vcs-check-status",
|
|
13469
|
+
"data-state": state,
|
|
13470
|
+
"aria-hidden": "true",
|
|
13471
|
+
children: state === "done" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckCircleOutlineRegular, {}) : state === "ongoing" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconLoadingOutlineRegular, {}) : state === "warning" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconQuestionOutlineRegular, {}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: state === "error" ? circle_x_default : circle_minus_default } })
|
|
13472
|
+
});
|
|
13473
|
+
}
|
|
13401
13474
|
function Loading({ label }) {
|
|
13402
13475
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13403
13476
|
className: "dsh-pr-loading",
|
|
@@ -13430,37 +13503,6 @@ function Description({ text, labels }) {
|
|
|
13430
13503
|
variant: "compact"
|
|
13431
13504
|
}), render(sections)] });
|
|
13432
13505
|
}
|
|
13433
|
-
function Choice({ label, value, items, onChange, disabled }) {
|
|
13434
|
-
const [open, setOpen] = (0, react.useState)(false);
|
|
13435
|
-
(0, react.useEffect)(() => {
|
|
13436
|
-
if (disabled) setOpen(false);
|
|
13437
|
-
}, [disabled]);
|
|
13438
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, {
|
|
13439
|
-
open,
|
|
13440
|
-
portal: true,
|
|
13441
|
-
compact: true,
|
|
13442
|
-
className: "dsh-pr-choice",
|
|
13443
|
-
selectedId: value,
|
|
13444
|
-
items,
|
|
13445
|
-
onClose: () => setOpen(false),
|
|
13446
|
-
onSelect: (id) => {
|
|
13447
|
-
const item = items.find((item) => item.id === id && !item.disabled);
|
|
13448
|
-
if (item) onChange(item.id);
|
|
13449
|
-
setOpen(false);
|
|
13450
|
-
},
|
|
13451
|
-
anchor: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
13452
|
-
type: "button",
|
|
13453
|
-
size: "sm",
|
|
13454
|
-
className: "dsh-pr-picker",
|
|
13455
|
-
"aria-label": label,
|
|
13456
|
-
"aria-haspopup": "menu",
|
|
13457
|
-
"aria-expanded": open,
|
|
13458
|
-
disabled,
|
|
13459
|
-
onClick: () => setOpen(!open),
|
|
13460
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: items.find((item) => item.id === value)?.label }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { "aria-hidden": "true" })]
|
|
13461
|
-
})
|
|
13462
|
-
});
|
|
13463
|
-
}
|
|
13464
13506
|
function apply$2(ctx) {
|
|
13465
13507
|
const connection = ctx.get("connection");
|
|
13466
13508
|
const sessions = ctx.get("sessions");
|
|
@@ -13910,10 +13952,7 @@ function apply$2(ctx) {
|
|
|
13910
13952
|
onClick: () => setChecksOpen(!checksOpen),
|
|
13911
13953
|
"aria-busy": loading,
|
|
13912
13954
|
children: [
|
|
13913
|
-
loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Loading, { label: copy.loading }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
13914
|
-
state,
|
|
13915
|
-
appearance: "step"
|
|
13916
|
-
}),
|
|
13955
|
+
loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Loading, { label: copy.loading }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CheckStatusIcon, { state }),
|
|
13917
13956
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: item.headSha ? checksSummary : copy.checks }),
|
|
13918
13957
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { "aria-hidden": "true" })
|
|
13919
13958
|
]
|
|
@@ -13929,10 +13968,7 @@ function apply$2(ctx) {
|
|
|
13929
13968
|
className: "dsh-pr-checks",
|
|
13930
13969
|
children: item.checks.map((check, index) => {
|
|
13931
13970
|
const status = checkStatus(check.status);
|
|
13932
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
13933
|
-
state: status.state,
|
|
13934
|
-
appearance: "step"
|
|
13935
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
13971
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CheckStatusIcon, { state: status.state }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
13936
13972
|
className: "dsh-pr-check-name",
|
|
13937
13973
|
children: [check.url ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
|
|
13938
13974
|
href: check.url,
|
|
@@ -14090,7 +14126,11 @@ function apply$2(ctx) {
|
|
|
14090
14126
|
})] }),
|
|
14091
14127
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
14092
14128
|
className: "dsh-pr-actions",
|
|
14093
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
14129
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ButtonPicker, {
|
|
14130
|
+
size: "sm",
|
|
14131
|
+
className: "dsh-pr-picker",
|
|
14132
|
+
menuClassName: "dsh-pr-choice",
|
|
14133
|
+
compact: true,
|
|
14094
14134
|
label: copy.review,
|
|
14095
14135
|
value: reviewAction,
|
|
14096
14136
|
disabled: pending,
|
|
@@ -14823,10 +14863,7 @@ function apply(ctx) {
|
|
|
14823
14863
|
className: "dsh-vcs-trigger",
|
|
14824
14864
|
title: `${labels.checks}: ${ciLabel}`,
|
|
14825
14865
|
onClick: () => ctx.sidebarRight.openTab("dungsil-vcs-pull-requests", { params: { section: "checks" } }),
|
|
14826
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
14827
|
-
state: ciState,
|
|
14828
|
-
appearance: "step"
|
|
14829
|
-
}), `${labels.checks}: ${ciLabel}`]
|
|
14866
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CheckStatusIcon, { state: ciState }), `${labels.checks}: ${ciLabel}`]
|
|
14830
14867
|
})]
|
|
14831
14868
|
});
|
|
14832
14869
|
}
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ var __exportAll = (all, no_symbols) => {
|
|
|
16
16
|
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
17
17
|
return target;
|
|
18
18
|
};
|
|
19
|
-
// ../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.
|
|
19
|
+
// ../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.9.0/node_modules/@deepseek-ai/cosmokit/lib/index.js
|
|
20
20
|
/** Return true when a value is `null` or `undefined`. */
|
|
21
21
|
function isNullable(value) {
|
|
22
22
|
return value === null || value === void 0;
|
|
@@ -269,7 +269,7 @@ var Time;
|
|
|
269
269
|
}
|
|
270
270
|
Time.template = template;
|
|
271
271
|
})(Time || (Time = {}));
|
|
272
|
-
// ../../node_modules/.pnpm/@deepseek-ai+schemastery@3.
|
|
272
|
+
// ../../node_modules/.pnpm/@deepseek-ai+schemastery@3.19.0/node_modules/@deepseek-ai/schemastery/lib/index.mjs
|
|
273
273
|
const kSchema = Symbol.for("schemastery");
|
|
274
274
|
const kValidationError = Symbol.for("ValidationError");
|
|
275
275
|
globalThis.__schemastery_index__ ??= 0;
|
|
@@ -906,9 +906,14 @@ async function inspectSession(ctx, id, signal) {
|
|
|
906
906
|
signal.throwIfAborted();
|
|
907
907
|
const live = ctx.get("agents")?.get(id);
|
|
908
908
|
if (live) return live.session;
|
|
909
|
-
const
|
|
910
|
-
|
|
911
|
-
|
|
909
|
+
const handle = await ctx.sessionPersistence.open(id, "read", { signal });
|
|
910
|
+
try {
|
|
911
|
+
const { events } = await handle.read(void 0, void 0, { signal });
|
|
912
|
+
signal.throwIfAborted();
|
|
913
|
+
return Session.create(id, events, handle.header, handle.inheritedEventCount);
|
|
914
|
+
} finally {
|
|
915
|
+
await handle.close();
|
|
916
|
+
}
|
|
912
917
|
}
|
|
913
918
|
// ../../tools/async/src/index.ts
|
|
914
919
|
function createTaskQueue({ concurrency, maxPending }) {
|
|
@@ -979,6 +984,7 @@ const name$3 = "dungsil-vcs-pull-requests";
|
|
|
979
984
|
const inject$3 = [
|
|
980
985
|
"connection",
|
|
981
986
|
"sessionController",
|
|
987
|
+
"sessionPersistence",
|
|
982
988
|
"workingDirectory",
|
|
983
989
|
"subprocess",
|
|
984
990
|
"sandbox",
|
|
@@ -2165,7 +2171,7 @@ async function updateReview(run, context, texts) {
|
|
|
2165
2171
|
context.existingReview = updated;
|
|
2166
2172
|
return { url: updated.url };
|
|
2167
2173
|
}
|
|
2168
|
-
// ../../node_modules/.pnpm/@deepseek-ai+dsh-typert-protocol@0.2.
|
|
2174
|
+
// ../../node_modules/.pnpm/@deepseek-ai+dsh-typert-protocol@0.2.2-rc.1_@deepseek-ai+cordis@4.1.0/node_modules/@deepseek-ai/dsh-typert-protocol/lib/index.js
|
|
2169
2175
|
/** The one Remote failure class shared by owners, the Gateway, and consumers. */
|
|
2170
2176
|
/**
|
|
2171
2177
|
* One Remote call failure: a real Error carrying its stable code and typed
|
|
@@ -2346,7 +2352,7 @@ function sameInvocation(left, right) {
|
|
|
2346
2352
|
function validateName(subject, value) {
|
|
2347
2353
|
if (!isTypertRemoteSegment(value)) throw new TypeError(`typert-protocol: ${subject} must contain only RPC endpoint segment characters`);
|
|
2348
2354
|
}
|
|
2349
|
-
// ../../node_modules/.pnpm/@deepseek-ai+dsh-util-values@0.2.
|
|
2355
|
+
// ../../node_modules/.pnpm/@deepseek-ai+dsh-util-values@0.2.2-rc.1_@deepseek-ai+cordis@4.1.0/node_modules/@deepseek-ai/dsh-util-values/lib/index.js
|
|
2350
2356
|
/**
|
|
2351
2357
|
* Lazily scanned view of one JSON object's top-level fields, built from text
|
|
2352
2358
|
* that may still be streaming or from an already parsed object. Nothing is
|
|
@@ -3022,7 +3028,7 @@ function deepFreeze(value) {
|
|
|
3022
3028
|
}
|
|
3023
3029
|
return value;
|
|
3024
3030
|
}
|
|
3025
|
-
// ../../node_modules/.pnpm/@deepseek-ai+dsh-util-crypto@0.2.
|
|
3031
|
+
// ../../node_modules/.pnpm/@deepseek-ai+dsh-util-crypto@0.2.2-rc.1_@deepseek-ai+cordis@4.1.0/node_modules/@deepseek-ai/dsh-util-crypto/lib/index.js
|
|
3026
3032
|
/**
|
|
3027
3033
|
* Random v4 UUID, minted from `crypto.getRandomValues`.
|
|
3028
3034
|
* @returns the UUID string.
|
|
@@ -3034,7 +3040,7 @@ function randomUUID() {
|
|
|
3034
3040
|
}).join("");
|
|
3035
3041
|
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
3036
3042
|
}
|
|
3037
|
-
// ../../node_modules/.pnpm/@deepseek-ai+dsh-brand@0.2.
|
|
3043
|
+
// ../../node_modules/.pnpm/@deepseek-ai+dsh-brand@0.2.2-rc.1_@deepseek-ai+cordis@4.1.0/node_modules/@deepseek-ai/dsh-brand/lib/index.js
|
|
3038
3044
|
/**
|
|
3039
3045
|
* Duplicate-install-safe nominal primitive helpers.
|
|
3040
3046
|
*
|
|
@@ -3056,10 +3062,10 @@ function randomUUID() {
|
|
|
3056
3062
|
function brandString(value) {
|
|
3057
3063
|
return value;
|
|
3058
3064
|
}
|
|
3059
|
-
// ../../node_modules/.pnpm/@deepseek-ai+dsh-timeout@0.2.
|
|
3065
|
+
// ../../node_modules/.pnpm/@deepseek-ai+dsh-timeout@0.2.2-rc.1_@deepseek-ai+cordis@4.1.0/node_modules/@deepseek-ai/dsh-timeout/lib/index.js
|
|
3060
3066
|
/** Largest delay Node schedules without clamping it to one millisecond. */
|
|
3061
3067
|
const MAX_TIMER_DELAY_MS = 2147483647;
|
|
3062
|
-
// ../../node_modules/.pnpm/@deepseek-ai+dsh-llm@0.2.
|
|
3068
|
+
// ../../node_modules/.pnpm/@deepseek-ai+dsh-llm@0.2.2-rc.1_@deepseek-ai+cordis@4.1.0/node_modules/@deepseek-ai/dsh-llm/lib/index.js
|
|
3063
3069
|
/**
|
|
3064
3070
|
* Detach and deep-freeze a message whose identity already exists.
|
|
3065
3071
|
* @param message - complete message, including its stable identity.
|
|
@@ -4128,12 +4134,17 @@ var LlmError = class extends HarnessError {
|
|
|
4128
4134
|
if (typeof model.provider !== "string" || model.provider !== provider || typeof model.id !== "string" || model.id.length === 0 || typeof model.name !== "string" || model.name.length === 0 || model.description !== void 0 && typeof model.description !== "string" || seen.has(model.id)) throw new LlmError(`adapter returned invalid or duplicate model metadata for provider "${provider}"`, "INVALID_CATALOG");
|
|
4129
4135
|
seen.add(model.id);
|
|
4130
4136
|
const inputModalities = this.detachedModalities(model.inputModalities);
|
|
4137
|
+
const badge = model.badge;
|
|
4131
4138
|
return {
|
|
4132
4139
|
provider: model.provider,
|
|
4133
4140
|
id: model.id,
|
|
4134
4141
|
name: model.name,
|
|
4135
4142
|
...model.description === void 0 ? {} : { description: model.description },
|
|
4136
|
-
...inputModalities === void 0 ? {} : { inputModalities }
|
|
4143
|
+
...inputModalities === void 0 ? {} : { inputModalities },
|
|
4144
|
+
...badge === void 0 ? {} : { badge: {
|
|
4145
|
+
text: typeof badge.text === "string" ? badge.text : { ...badge.text },
|
|
4146
|
+
tone: badge.tone
|
|
4147
|
+
} }
|
|
4137
4148
|
};
|
|
4138
4149
|
});
|
|
4139
4150
|
}
|
|
@@ -5301,6 +5312,7 @@ const name = "dungsil-ui-vcs";
|
|
|
5301
5312
|
const inject = [
|
|
5302
5313
|
"connection",
|
|
5303
5314
|
"sessionController",
|
|
5315
|
+
"sessionPersistence",
|
|
5304
5316
|
"subprocess",
|
|
5305
5317
|
"sandbox",
|
|
5306
5318
|
"sandboxPolicy",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dungsil/dsh-plugin-ui-vcs",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Git actions and PR/MR review for GitHub, GitLab, Gitea and Forgejo.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -25,33 +25,35 @@
|
|
|
25
25
|
"access": "public"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@deepseek-ai/cordis": "4.0
|
|
29
|
-
"@deepseek-ai/dsh-agent": "0.2.
|
|
30
|
-
"@deepseek-ai/dsh-agent-loop-testkit": "0.2.
|
|
31
|
-
"@deepseek-ai/dsh-api-session-controller": "0.2.
|
|
32
|
-
"@deepseek-ai/dsh-app-boot": "0.2.
|
|
33
|
-
"@deepseek-ai/dsh-client-connection": "0.2.
|
|
34
|
-
"@deepseek-ai/dsh-client-locale": "0.2.
|
|
35
|
-
"@deepseek-ai/dsh-client-store": "0.2.
|
|
36
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.2.
|
|
37
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.2.
|
|
38
|
-
"@deepseek-ai/dsh-client-ui-session": "0.2.
|
|
39
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.2.
|
|
40
|
-
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.2.
|
|
41
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.2.
|
|
42
|
-
"@deepseek-ai/dsh-client-ui-workspace": "0.2.
|
|
43
|
-
"@deepseek-ai/dsh-config-editor": "0.2.
|
|
44
|
-
"@deepseek-ai/dsh-credentials-local": "0.2.
|
|
45
|
-
"@deepseek-ai/dsh-fs": "0.2.
|
|
46
|
-
"@deepseek-ai/dsh-llm": "0.2.
|
|
47
|
-
"@deepseek-ai/dsh-sandbox": "0.2.
|
|
48
|
-
"@deepseek-ai/dsh-sandbox-local": "0.2.
|
|
49
|
-
"@deepseek-ai/dsh-sandbox-policy": "0.2.
|
|
50
|
-
"@deepseek-ai/dsh-session": "0.2.
|
|
51
|
-
"@deepseek-ai/dsh-
|
|
52
|
-
"@deepseek-ai/dsh-
|
|
53
|
-
"@deepseek-ai/dsh-
|
|
54
|
-
"@deepseek-ai/
|
|
28
|
+
"@deepseek-ai/cordis": "4.1.0",
|
|
29
|
+
"@deepseek-ai/dsh-agent": "0.2.2-rc.1",
|
|
30
|
+
"@deepseek-ai/dsh-agent-loop-testkit": "0.2.2-rc.1",
|
|
31
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.2-rc.1",
|
|
32
|
+
"@deepseek-ai/dsh-app-boot": "0.2.2-rc.1",
|
|
33
|
+
"@deepseek-ai/dsh-client-connection": "0.2.2-rc.1",
|
|
34
|
+
"@deepseek-ai/dsh-client-locale": "0.2.2-rc.1",
|
|
35
|
+
"@deepseek-ai/dsh-client-store": "0.2.2-rc.1",
|
|
36
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.2-rc.1",
|
|
37
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.2-rc.1",
|
|
38
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.2-rc.1",
|
|
39
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.2.2-rc.1",
|
|
40
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.2.2-rc.1",
|
|
41
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.2-rc.1",
|
|
42
|
+
"@deepseek-ai/dsh-client-ui-workspace": "0.2.2-rc.1",
|
|
43
|
+
"@deepseek-ai/dsh-config-editor": "0.2.2-rc.1",
|
|
44
|
+
"@deepseek-ai/dsh-credentials-local": "0.2.2-rc.1",
|
|
45
|
+
"@deepseek-ai/dsh-fs": "0.2.2-rc.1",
|
|
46
|
+
"@deepseek-ai/dsh-llm": "0.2.2-rc.1",
|
|
47
|
+
"@deepseek-ai/dsh-sandbox": "0.2.2-rc.1",
|
|
48
|
+
"@deepseek-ai/dsh-sandbox-local": "0.2.2-rc.1",
|
|
49
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.2-rc.1",
|
|
50
|
+
"@deepseek-ai/dsh-session": "0.2.2-rc.1",
|
|
51
|
+
"@deepseek-ai/dsh-session-persistence": "0.2.2-rc.1",
|
|
52
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "0.2.2-rc.1",
|
|
53
|
+
"@deepseek-ai/dsh-subprocess": "0.2.2-rc.1",
|
|
54
|
+
"@deepseek-ai/dsh-subprocess-local": "0.2.2-rc.1",
|
|
55
|
+
"@deepseek-ai/dsh-working-directory": "0.2.2-rc.1",
|
|
56
|
+
"@deepseek-ai/schemastery": "3.19.0",
|
|
55
57
|
"@dungsil/dsh-async": "0.0.0",
|
|
56
58
|
"@dungsil/dsh-tsconfig": "0.0.0",
|
|
57
59
|
"@dungsil/dsh-ui": "0.0.0",
|
|
@@ -68,13 +70,14 @@
|
|
|
68
70
|
},
|
|
69
71
|
"peerDependencies": {
|
|
70
72
|
"@deepseek-ai/cordis": "^4.0.5",
|
|
71
|
-
"@deepseek-ai/dsh-client-connection": "^0.2.1-rc.5",
|
|
72
|
-
"@deepseek-ai/dsh-client-ui-primitives": "^0.2.1-rc.5",
|
|
73
|
-
"@deepseek-ai/dsh-config-editor": "0.2.1-rc.5",
|
|
74
|
-
"@deepseek-ai/dsh-session": "^0.2.1-rc.5"
|
|
73
|
+
"@deepseek-ai/dsh-client-connection": "^0.2.1-rc.5 || ^0.2.2-rc.1",
|
|
74
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.2.1-rc.5 || ^0.2.2-rc.1",
|
|
75
|
+
"@deepseek-ai/dsh-config-editor": "0.2.1-rc.5 || ^0.2.2-rc.1",
|
|
76
|
+
"@deepseek-ai/dsh-session": "^0.2.1-rc.5 || ^0.2.2-rc.1",
|
|
77
|
+
"@deepseek-ai/dsh-session-persistence": "^0.2.1-rc.5 || ^0.2.2-rc.1"
|
|
75
78
|
},
|
|
76
79
|
"engines": {
|
|
77
|
-
"dsh": "^0.2.1-rc.5",
|
|
80
|
+
"dsh": "^0.2.1-rc.5 || ^0.2.2-rc.1",
|
|
78
81
|
"node": ">=24.9.0"
|
|
79
82
|
},
|
|
80
83
|
"dsh": {
|