@kvman/kvcoder 0.1.7 → 0.1.9
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/api.d.ts +38 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/connectors/artifact.d.ts.map +1 -1
- package/dist/connectors/artifact.js +3 -1
- package/dist/connectors/artifact.js.map +1 -1
- package/dist/connectors/execution-map.d.ts +1 -1
- package/dist/connectors/execution-map.d.ts.map +1 -1
- package/dist/connectors/execution-map.js +1 -1
- package/dist/connectors/execution-map.js.map +1 -1
- package/dist/prompt/build-prompt.d.ts +6 -1
- package/dist/prompt/build-prompt.d.ts.map +1 -1
- package/dist/prompt/build-prompt.js +2 -2
- package/dist/prompt/build-prompt.js.map +1 -1
- package/dist/prompt/session-grants.d.ts +2 -0
- package/dist/prompt/session-grants.d.ts.map +1 -1
- package/dist/prompt/session-prompt.d.ts.map +1 -1
- package/dist/prompt/session-prompt.js +9 -4
- package/dist/prompt/session-prompt.js.map +1 -1
- package/dist/prompt/working-method.d.ts +6 -4
- package/dist/prompt/working-method.d.ts.map +1 -1
- package/dist/prompt/working-method.js +35 -20
- package/dist/prompt/working-method.js.map +1 -1
- package/dist/register-settings.d.ts +15 -1
- package/dist/register-settings.d.ts.map +1 -1
- package/dist/register-settings.js +19 -2
- package/dist/register-settings.js.map +1 -1
- package/dist/registry/register-connectors.d.ts +2 -0
- package/dist/registry/register-connectors.d.ts.map +1 -1
- package/dist/registry/register-connectors.js +15 -11
- package/dist/registry/register-connectors.js.map +1 -1
- package/dist/schemas/registry.d.ts +9 -1
- package/dist/schemas/registry.d.ts.map +1 -1
- package/dist/schemas/registry.js +6 -2
- package/dist/schemas/registry.js.map +1 -1
- package/dist/store/collections.d.ts +4 -0
- package/dist/store/collections.d.ts.map +1 -1
- package/dist/turns/read-only.d.ts +7 -2
- package/dist/turns/read-only.d.ts.map +1 -1
- package/dist/turns/read-only.js +7 -4
- package/dist/turns/read-only.js.map +1 -1
- package/dist/turns/run-calls.js +1 -1
- package/dist/turns/run-calls.js.map +1 -1
- package/dist/turns/run-command.d.ts +2 -0
- package/dist/turns/run-command.d.ts.map +1 -1
- package/dist/turns/run-command.js +4 -2
- package/dist/turns/run-command.js.map +1 -1
- package/dist/web/components/approval.css +1 -1
- package/dist/web/components/approval.js +18 -31
- package/dist/web/components/call.css +1 -1
- package/dist/web/components/call.js +281 -251
- package/dist/web/components/connectors.css +1 -1
- package/dist/web/components/conversation.css +1 -1
- package/dist/web/components/conversation.js +943 -892
- package/dist/web/components/mcp-sign-in.css +1 -1
- package/dist/web/components/model.css +1 -1
- package/dist/web/components/question.css +1 -1
- package/dist/web/components/sessions.css +1 -1
- package/docs/connectors.md +13 -1
- package/docs/sections.md +2 -0
- package/locales/ar.json +15 -2
- package/locales/en.json +15 -2
- package/package.json +3 -3
|
@@ -53,60 +53,60 @@ function S(e, t = {}) {
|
|
|
53
53
|
var C = (e) => {
|
|
54
54
|
for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
|
|
55
55
|
return !1;
|
|
56
|
-
}, w = (e) => e === "", T = (e) => e?.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(),
|
|
57
|
-
function
|
|
58
|
-
return u(
|
|
56
|
+
}, w = (e) => e === "", T = (e) => e?.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), ee = /* @__PURE__ */ Symbol("lucide-icons");
|
|
57
|
+
function te() {
|
|
58
|
+
return u(ee, {});
|
|
59
59
|
}
|
|
60
60
|
//#endregion
|
|
61
61
|
//#region ../../node_modules/.pnpm/@lucide+vue@1.49.0_vue@3.5.43_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs
|
|
62
|
-
var
|
|
62
|
+
var ne = ({ name: e, iconNode: t, "icon-node": n, icon: r = {
|
|
63
63
|
name: e && T(e),
|
|
64
64
|
node: t ?? n ?? [],
|
|
65
65
|
size: 24,
|
|
66
66
|
aliases: []
|
|
67
67
|
}, absoluteStrokeWidth: i, "absolute-stroke-width": a, nonScalingStroke: o, "non-scaling-stroke": s, strokeWidth: c, "stroke-width": u, size: d, width: f = d, height: p = d, color: m, ...h }, { slots: g }) => {
|
|
68
|
-
let { size: _, color: v, strokeWidth: y = 2, absoluteStrokeWidth: b = !1, nonScalingStroke: x = !1, class:
|
|
68
|
+
let { size: _, color: v, strokeWidth: y = 2, absoluteStrokeWidth: b = !1, nonScalingStroke: x = !1, class: ee = "" } = te(), ne = w(i) || w(a) || i === !0 || a === !0 || b === !0, E = w(o) || w(s) || o === !0 || s === !0 || x === !0;
|
|
69
69
|
delete h.class;
|
|
70
|
-
let
|
|
70
|
+
let D = g.default?.(), [, O, k = []] = S(r, {
|
|
71
71
|
color: m ?? v,
|
|
72
72
|
width: f ?? d ?? _,
|
|
73
73
|
height: p ?? d ?? _,
|
|
74
74
|
strokeWidth: c ?? u ?? y,
|
|
75
|
-
absoluteStrokeWidth:
|
|
76
|
-
nonScalingStroke:
|
|
77
|
-
className:
|
|
78
|
-
hasA11yProp:
|
|
75
|
+
absoluteStrokeWidth: ne,
|
|
76
|
+
nonScalingStroke: E,
|
|
77
|
+
className: ee,
|
|
78
|
+
hasA11yProp: D != null && D.length > 0 || C(h),
|
|
79
79
|
attributes: h
|
|
80
80
|
});
|
|
81
|
-
return l("svg",
|
|
81
|
+
return l("svg", O, [...k.map(([e, t]) => l(e, t)), ...D ?? []]);
|
|
82
82
|
};
|
|
83
83
|
//#endregion
|
|
84
84
|
//#region ../../node_modules/.pnpm/@lucide+vue@1.49.0_vue@3.5.43_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/createLucideIcon.mjs
|
|
85
|
-
function
|
|
85
|
+
function E(e, t = []) {
|
|
86
86
|
let n = typeof e == "string" ? {
|
|
87
87
|
name: e,
|
|
88
88
|
node: t
|
|
89
89
|
} : e;
|
|
90
|
-
return (e, { slots: t }) => l(
|
|
90
|
+
return (e, { slots: t }) => l(ne, {
|
|
91
91
|
...e,
|
|
92
92
|
icon: n
|
|
93
93
|
}, t.default ? { default: t.default } : void 0);
|
|
94
94
|
}
|
|
95
|
-
var
|
|
95
|
+
var D = E({
|
|
96
96
|
name: "chevron-down",
|
|
97
97
|
size: 24,
|
|
98
98
|
node: [["path", {
|
|
99
99
|
d: "m6 9 6 6 6-6",
|
|
100
100
|
key: "qrunsl"
|
|
101
101
|
}]]
|
|
102
|
-
}),
|
|
102
|
+
}), O = E({
|
|
103
103
|
name: "chevron-right",
|
|
104
104
|
size: 24,
|
|
105
105
|
node: [["path", {
|
|
106
106
|
d: "m9 18 6-6-6-6",
|
|
107
107
|
key: "mthhwq"
|
|
108
108
|
}]]
|
|
109
|
-
}),
|
|
109
|
+
}), k = E({
|
|
110
110
|
name: "file",
|
|
111
111
|
size: 24,
|
|
112
112
|
node: [["path", {
|
|
@@ -116,58 +116,73 @@ var O = D({
|
|
|
116
116
|
d: "M14 2v5a1 1 0 0 0 1 1h5",
|
|
117
117
|
key: "wfsgrz"
|
|
118
118
|
}]]
|
|
119
|
-
}),
|
|
119
|
+
}), re = E({
|
|
120
120
|
name: "folder",
|
|
121
121
|
size: 24,
|
|
122
122
|
node: [["path", {
|
|
123
123
|
d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
|
|
124
124
|
key: "1kt360"
|
|
125
125
|
}]]
|
|
126
|
-
})
|
|
126
|
+
}), ie = 160, ae = /^error ([A-Za-z0-9_/-]+): ?(.*)/;
|
|
127
|
+
function oe(e) {
|
|
128
|
+
let t = (e.split("\n", 1)[0] ?? "").trim();
|
|
129
|
+
return t.length > ie ? `${t.slice(0, ie)}…` : t;
|
|
130
|
+
}
|
|
131
|
+
function se(e) {
|
|
132
|
+
if (e.startsWith("denied by the user")) return { kind: "denied" };
|
|
133
|
+
let t = ae.exec(e);
|
|
134
|
+
return t?.[1] === "VALIDATION_FAILED" ? { kind: "invalid" } : t === null ? /\[exit code \d+\]\s*$/.test(e) ? { kind: "command" } : {
|
|
135
|
+
kind: "error",
|
|
136
|
+
message: oe(e)
|
|
137
|
+
} : {
|
|
138
|
+
kind: "error",
|
|
139
|
+
message: oe(t[2] ?? "")
|
|
140
|
+
};
|
|
141
|
+
}
|
|
127
142
|
//#endregion
|
|
128
143
|
//#region web/src/kvman.ts
|
|
129
|
-
function
|
|
144
|
+
function A() {
|
|
130
145
|
let e = u("kvman");
|
|
131
146
|
if (e === void 0) throw Error("kvcoder components run inside kvwebui, which provides kvman.");
|
|
132
147
|
return e;
|
|
133
148
|
}
|
|
134
|
-
function
|
|
149
|
+
function j(e) {
|
|
135
150
|
return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : {};
|
|
136
151
|
}
|
|
137
152
|
//#endregion
|
|
138
153
|
//#region web/src/call-results.ts
|
|
139
|
-
function
|
|
140
|
-
let { replacements: t, firstChangedLine: n } =
|
|
154
|
+
function ce(e) {
|
|
155
|
+
let { replacements: t, firstChangedLine: n } = j(e);
|
|
141
156
|
return typeof t == "number" && typeof n == "number" ? {
|
|
142
157
|
replacements: t,
|
|
143
158
|
firstChangedLine: n
|
|
144
159
|
} : void 0;
|
|
145
160
|
}
|
|
146
|
-
function
|
|
147
|
-
let { fromLine: t, content: n } =
|
|
161
|
+
function le(e) {
|
|
162
|
+
let { fromLine: t, content: n } = j(e);
|
|
148
163
|
return typeof t == "number" && typeof n == "string" ? {
|
|
149
164
|
fromLine: t,
|
|
150
165
|
content: n
|
|
151
166
|
} : void 0;
|
|
152
167
|
}
|
|
153
|
-
function
|
|
154
|
-
let { name: t, kind: n, bytes: r } =
|
|
168
|
+
function ue(e) {
|
|
169
|
+
let { name: t, kind: n, bytes: r } = j(e);
|
|
155
170
|
return typeof t == "string" && (n === "file" || n === "folder") && typeof r == "number" ? [{
|
|
156
171
|
name: t,
|
|
157
172
|
kind: n,
|
|
158
173
|
bytes: r
|
|
159
174
|
}] : [];
|
|
160
175
|
}
|
|
161
|
-
function
|
|
162
|
-
let t =
|
|
163
|
-
return Array.isArray(t) ? t.flatMap(
|
|
176
|
+
function de(e) {
|
|
177
|
+
let t = j(e).entries;
|
|
178
|
+
return Array.isArray(t) ? t.flatMap(ue) : void 0;
|
|
164
179
|
}
|
|
165
|
-
function
|
|
166
|
-
let { path: t, matches: n } =
|
|
180
|
+
function fe(e) {
|
|
181
|
+
let { path: t, matches: n } = j(e);
|
|
167
182
|
return typeof t != "string" || !Array.isArray(n) ? [] : [{
|
|
168
183
|
path: t,
|
|
169
184
|
matches: n.flatMap((e) => {
|
|
170
|
-
let { line: t, text: n } =
|
|
185
|
+
let { line: t, text: n } = j(e);
|
|
171
186
|
return typeof t == "number" && typeof n == "string" ? [{
|
|
172
187
|
line: t,
|
|
173
188
|
text: n
|
|
@@ -175,18 +190,18 @@ function se(e) {
|
|
|
175
190
|
})
|
|
176
191
|
}];
|
|
177
192
|
}
|
|
178
|
-
var
|
|
193
|
+
var pe = [
|
|
179
194
|
"running",
|
|
180
195
|
"succeeded",
|
|
181
196
|
"failed",
|
|
182
197
|
"cancelled",
|
|
183
198
|
"interrupted"
|
|
184
199
|
];
|
|
185
|
-
function
|
|
186
|
-
return
|
|
200
|
+
function M(e, t) {
|
|
201
|
+
return pe.some((e) => e === t) ? e(`kvcoder.ui.jobs.status.${t}`) : t;
|
|
187
202
|
}
|
|
188
203
|
function N(e) {
|
|
189
|
-
let { kind: t, call: n, status: r, startedAt: i, endedAt: a, exitCode: o, output: s, problem: c } =
|
|
204
|
+
let { kind: t, call: n, status: r, startedAt: i, endedAt: a, exitCode: o, output: s, problem: c } = j(e);
|
|
190
205
|
if (typeof n != "string" || typeof r != "string") return;
|
|
191
206
|
let l = typeof i == "string" && typeof a == "string" ? Date.parse(a) - Date.parse(i) : NaN;
|
|
192
207
|
return {
|
|
@@ -199,9 +214,9 @@ function N(e) {
|
|
|
199
214
|
...c === void 0 ? {} : { problem: c }
|
|
200
215
|
};
|
|
201
216
|
}
|
|
202
|
-
function
|
|
203
|
-
let t =
|
|
204
|
-
return Array.isArray(t) ? t.flatMap(
|
|
217
|
+
function me(e) {
|
|
218
|
+
let t = j(e).files;
|
|
219
|
+
return Array.isArray(t) ? t.flatMap(fe) : void 0;
|
|
205
220
|
}
|
|
206
221
|
//#endregion
|
|
207
222
|
//#region web/src/edit-diff.ts
|
|
@@ -228,7 +243,7 @@ function L(e, t) {
|
|
|
228
243
|
...o("context", n.slice(n.length - a, n.length - a + P))
|
|
229
244
|
];
|
|
230
245
|
}
|
|
231
|
-
function
|
|
246
|
+
function he(e) {
|
|
232
247
|
return {
|
|
233
248
|
added: e.filter((e) => e.kind === "added").length,
|
|
234
249
|
removed: e.filter((e) => e.kind === "removed").length
|
|
@@ -236,7 +251,7 @@ function de(e) {
|
|
|
236
251
|
}
|
|
237
252
|
//#endregion
|
|
238
253
|
//#region web/src/call-summary.ts
|
|
239
|
-
function
|
|
254
|
+
function ge(e) {
|
|
240
255
|
if (e !== void 0 && /^\s*[[{]/.test(e)) try {
|
|
241
256
|
return JSON.parse(e);
|
|
242
257
|
} catch (e) {
|
|
@@ -252,21 +267,21 @@ var B = (e) => typeof e == "string" && e !== "" ? e : void 0;
|
|
|
252
267
|
function V(e) {
|
|
253
268
|
let t = e.edits;
|
|
254
269
|
return Array.isArray(t) ? t.flatMap((e) => {
|
|
255
|
-
let { oldText: t, newText: n } =
|
|
270
|
+
let { oldText: t, newText: n } = j(e);
|
|
256
271
|
return typeof t == "string" && typeof n == "string" ? [{
|
|
257
272
|
oldText: t,
|
|
258
273
|
newText: n
|
|
259
274
|
}] : [];
|
|
260
275
|
}) : [];
|
|
261
276
|
}
|
|
262
|
-
function
|
|
263
|
-
let t = V(e).map((e) =>
|
|
277
|
+
function _e(e) {
|
|
278
|
+
let t = V(e).map((e) => he(L(e.oldText, e.newText)));
|
|
264
279
|
return `+${t.reduce((e, t) => e + t.added, 0)} −${t.reduce((e, t) => e + t.removed, 0)}`;
|
|
265
280
|
}
|
|
266
|
-
function
|
|
281
|
+
function ve(e, t) {
|
|
267
282
|
if (typeof t.bytes == "number" && typeof t.created == "boolean") return e(t.created ? "kvcoder.ui.call.created" : "kvcoder.ui.call.replaced", { size: z(e, t.bytes) });
|
|
268
283
|
}
|
|
269
|
-
function
|
|
284
|
+
function ye(e, t) {
|
|
270
285
|
let { fromLine: n, totalLines: r, content: i } = t;
|
|
271
286
|
if (typeof n != "number" || typeof r != "number" || typeof i != "string") return;
|
|
272
287
|
let a = F(i).length;
|
|
@@ -276,15 +291,15 @@ function he(e, t) {
|
|
|
276
291
|
total: r
|
|
277
292
|
});
|
|
278
293
|
}
|
|
279
|
-
function
|
|
294
|
+
function be(e, t) {
|
|
280
295
|
let n = t.entries;
|
|
281
296
|
if (Array.isArray(n)) return e(t.truncated === !0 ? "kvcoder.ui.call.entriesFirst" : "kvcoder.ui.call.entries", { count: n.length });
|
|
282
297
|
}
|
|
283
|
-
function
|
|
298
|
+
function xe(e, t) {
|
|
284
299
|
let n = t.files;
|
|
285
300
|
if (!Array.isArray(n)) return;
|
|
286
301
|
let r = n.reduce((e, t) => {
|
|
287
|
-
let n =
|
|
302
|
+
let n = j(t).matches;
|
|
288
303
|
return e + (Array.isArray(n) ? n.length : 0);
|
|
289
304
|
}, 0);
|
|
290
305
|
return e(t.truncated === !0 ? "kvcoder.ui.call.matchesFirst" : "kvcoder.ui.call.matches", {
|
|
@@ -292,82 +307,82 @@ function _e(e, t) {
|
|
|
292
307
|
files: n.length
|
|
293
308
|
});
|
|
294
309
|
}
|
|
295
|
-
var
|
|
296
|
-
function
|
|
310
|
+
var Se = (e, t, n) => Array.isArray(n) ? e(t, { count: n.length }) : void 0;
|
|
311
|
+
function H(e, t, n) {
|
|
297
312
|
return {
|
|
298
313
|
...e === void 0 ? {} : { words: e },
|
|
299
314
|
...t === void 0 ? {} : { subject: t },
|
|
300
315
|
...n === void 0 ? {} : { outcome: n }
|
|
301
316
|
};
|
|
302
317
|
}
|
|
303
|
-
function
|
|
304
|
-
let i = r === void 0 ? void 0 :
|
|
305
|
-
if (t === "edit") return
|
|
306
|
-
if (t === "write") return
|
|
307
|
-
if (t === "read") return
|
|
308
|
-
if (t === "list") return
|
|
309
|
-
if (t === "search") return
|
|
318
|
+
function Ce(e, t, n, r) {
|
|
319
|
+
let i = r === void 0 ? void 0 : j(r), a = B(n.path);
|
|
320
|
+
if (t === "edit") return H(e("kvcoder.ui.call.edit"), a, i === void 0 ? void 0 : _e(n));
|
|
321
|
+
if (t === "write") return H(e("kvcoder.ui.call.write"), a, i === void 0 ? void 0 : ve(e, i));
|
|
322
|
+
if (t === "read") return H(e("kvcoder.ui.call.read"), a, i === void 0 ? void 0 : ye(e, i));
|
|
323
|
+
if (t === "list") return H(e("kvcoder.ui.call.list"), a ?? ".", i === void 0 ? void 0 : be(e, i));
|
|
324
|
+
if (t === "search") return H(e("kvcoder.ui.call.search"), B(n.pattern), i === void 0 ? void 0 : xe(e, i));
|
|
310
325
|
}
|
|
311
|
-
function
|
|
326
|
+
function we(e, t, n, r) {
|
|
312
327
|
let i = B(n.server), a = [i, B(n.tool)].filter((e) => e !== void 0).join(" · ");
|
|
313
|
-
if (t === "call") return
|
|
328
|
+
if (t === "call") return H(void 0, a === "" ? void 0 : a);
|
|
314
329
|
if (t === "run") {
|
|
315
330
|
let e = n.steps;
|
|
316
|
-
return
|
|
331
|
+
return H(void 0, [i, (Array.isArray(e) ? e.flatMap((e) => B(j(e).tool) === void 0 ? [] : [String(j(e).tool)]) : []).join(", ")].filter((e) => e !== void 0 && e !== "").join(" · "));
|
|
317
332
|
}
|
|
318
|
-
if (t === "tools") return
|
|
333
|
+
if (t === "tools") return H(e("kvcoder.ui.call.tools"), a === "" ? void 0 : a, Se(e, "kvcoder.ui.call.toolCount", j(r).tools));
|
|
319
334
|
}
|
|
320
|
-
function
|
|
321
|
-
if (t === "list") return
|
|
335
|
+
function Te(e, t, n, r) {
|
|
336
|
+
if (t === "list") return H(e("kvcoder.ui.call.backgroundRuns"), void 0, Se(e, "kvcoder.ui.call.runCount", r));
|
|
322
337
|
if (t === "output" || t === "wait") {
|
|
323
338
|
let i = N(r);
|
|
324
|
-
return
|
|
339
|
+
return H(e(`kvcoder.ui.call.${t}`), B(n.id), i === void 0 ? void 0 : M(e, i.status));
|
|
325
340
|
}
|
|
326
|
-
if (t === "stop") return
|
|
341
|
+
if (t === "stop") return H(e("kvcoder.ui.call.stop"), B(n.id));
|
|
327
342
|
}
|
|
328
|
-
function
|
|
329
|
-
let i = B(
|
|
330
|
-
return t === "set" ?
|
|
343
|
+
function Ee(e, t, n, r) {
|
|
344
|
+
let i = B(j(r).progress), a = n.steps, o = Array.isArray(a) ? a.flatMap((e) => B(j(e).id) === void 0 ? [] : [String(j(e).id)]).join(", ") : void 0;
|
|
345
|
+
return t === "set" ? H(e("kvcoder.ui.call.mapSet"), B(n.goal), i) : t === "update" ? H(e("kvcoder.ui.call.mapUpdate"), o === "" ? void 0 : o, i) : t === "note" ? H(e("kvcoder.ui.call.mapNote"), B(n.text)) : t === "get" ? H(e("kvcoder.ui.call.mapGet"), void 0, i) : void 0;
|
|
331
346
|
}
|
|
332
|
-
function
|
|
347
|
+
function De(e, t, n) {
|
|
333
348
|
let { connector: r, command: i } = t, a = t.fields ?? {};
|
|
334
349
|
if (r !== void 0 && i !== void 0) {
|
|
335
350
|
if (t.line !== void 0) return { subject: `$ ${t.line}` };
|
|
336
|
-
if (r === "fs") return
|
|
337
|
-
if (r === "mcp") return
|
|
338
|
-
if (r === "background") return
|
|
339
|
-
if (r === "execution-map") return
|
|
340
|
-
if (r === "delegate" && i === "run") return
|
|
341
|
-
if (r === "artifact" && i === "get") return
|
|
351
|
+
if (r === "fs") return Ce(e, i, a, n);
|
|
352
|
+
if (r === "mcp") return we(e, i, a, n);
|
|
353
|
+
if (r === "background") return Te(e, i, a, n);
|
|
354
|
+
if (r === "execution-map") return Ee(e, i, a, n);
|
|
355
|
+
if (r === "delegate" && i === "run") return H(e("kvcoder.ui.call.delegate"), [B(a.worker), B(a.title)].filter((e) => e !== void 0).join(" · "));
|
|
356
|
+
if (r === "artifact" && i === "get") return H(e("kvcoder.ui.call.readArtifact"), B(a.id));
|
|
342
357
|
}
|
|
343
358
|
}
|
|
344
359
|
//#endregion
|
|
345
360
|
//#region web/src/call-view.ts
|
|
346
|
-
var
|
|
361
|
+
var Oe = 200, ke = [
|
|
347
362
|
"text",
|
|
348
363
|
"choice",
|
|
349
364
|
"confirm"
|
|
350
365
|
];
|
|
351
|
-
function
|
|
366
|
+
function Ae(e) {
|
|
352
367
|
return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : void 0;
|
|
353
368
|
}
|
|
354
|
-
var
|
|
355
|
-
function
|
|
356
|
-
let n =
|
|
357
|
-
return
|
|
369
|
+
var U = (e) => typeof e == "string" && e.trim() !== "" ? e : void 0;
|
|
370
|
+
function je(e, t) {
|
|
371
|
+
let n = U(t.args);
|
|
372
|
+
return U(t.line) ?? (n === void 0 ? e : `${e} ${n}`);
|
|
358
373
|
}
|
|
359
|
-
function
|
|
360
|
-
let t =
|
|
374
|
+
function Me(e) {
|
|
375
|
+
let t = U(e.title) ?? U(e.description), n = U(e.command);
|
|
361
376
|
return {
|
|
362
377
|
...t === void 0 ? {} : { description: t },
|
|
363
378
|
...n === void 0 ? {} : { line: n },
|
|
364
379
|
...e.mode === "async" ? { background: !0 } : {}
|
|
365
380
|
};
|
|
366
381
|
}
|
|
367
|
-
function
|
|
368
|
-
let t =
|
|
369
|
-
if (t === void 0) return
|
|
370
|
-
let r =
|
|
382
|
+
function Ne(e) {
|
|
383
|
+
let t = U(e.connector), n = U(e.command);
|
|
384
|
+
if (t === void 0) return Me(e);
|
|
385
|
+
let r = U(e.description), i = Ae(typeof e.payload == "string" ? void 0 : e.payload) ?? {}, a = t === "ask" ? ke.find((e) => e === n) : void 0;
|
|
371
386
|
return {
|
|
372
387
|
...r === void 0 ? {} : { description: r },
|
|
373
388
|
connector: t,
|
|
@@ -375,7 +390,7 @@ function Oe(e) {
|
|
|
375
390
|
command: n,
|
|
376
391
|
label: `${t} · ${n}`
|
|
377
392
|
},
|
|
378
|
-
...n === "exec" ? { line:
|
|
393
|
+
...n === "exec" ? { line: je(t, i) } : {},
|
|
379
394
|
fields: i,
|
|
380
395
|
...i.risky === !0 ? { risky: !0 } : {},
|
|
381
396
|
...i.background === !0 ? { background: !0 } : {},
|
|
@@ -385,60 +400,60 @@ function Oe(e) {
|
|
|
385
400
|
} }
|
|
386
401
|
};
|
|
387
402
|
}
|
|
388
|
-
var
|
|
403
|
+
var Pe = [
|
|
389
404
|
"edit",
|
|
390
405
|
"write",
|
|
391
406
|
"read",
|
|
392
407
|
"list",
|
|
393
408
|
"search"
|
|
394
409
|
];
|
|
395
|
-
function
|
|
396
|
-
return e.line === void 0 ? e.connector === "fs" ?
|
|
410
|
+
function W(e) {
|
|
411
|
+
return e.line === void 0 ? e.connector === "fs" ? Pe.find((t) => t === e.command) ?? "fields" : e.connector === "mcp" && e.command === "call" ? "mcp-call" : e.connector === "background" && (e.command === "output" || e.command === "wait") ? "run-output" : e.connector === "delegate" && e.command === "run" ? "delegate" : "fields" : "line";
|
|
397
412
|
}
|
|
398
|
-
function
|
|
413
|
+
function G(e) {
|
|
399
414
|
let t = e.replace(/\s+/g, " ");
|
|
400
|
-
return t.length >
|
|
415
|
+
return t.length > Oe ? `${t.slice(0, Oe)}…` : t;
|
|
401
416
|
}
|
|
402
417
|
//#endregion
|
|
403
418
|
//#region web/src/field-rows.ts
|
|
404
|
-
var
|
|
405
|
-
function
|
|
419
|
+
var Fe = "—", Ie = (e) => e === null || typeof e == "string" || typeof e == "number" || typeof e == "boolean", Le = (e) => e === null ? Fe : String(e);
|
|
420
|
+
function Re(e) {
|
|
406
421
|
return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : void 0;
|
|
407
422
|
}
|
|
408
|
-
function
|
|
409
|
-
let t =
|
|
423
|
+
function ze(e) {
|
|
424
|
+
let t = Re(e);
|
|
410
425
|
if (t === void 0) return;
|
|
411
426
|
let n = {};
|
|
412
427
|
for (let [e, r] of Object.entries(t)) {
|
|
413
|
-
if (!
|
|
428
|
+
if (!Ie(r)) return;
|
|
414
429
|
n[e] = r;
|
|
415
430
|
}
|
|
416
431
|
return n;
|
|
417
432
|
}
|
|
418
|
-
function
|
|
433
|
+
function Be(e) {
|
|
419
434
|
let t = [...new Set(e.flatMap((e) => Object.keys(e)))];
|
|
420
435
|
return {
|
|
421
436
|
kind: "table",
|
|
422
437
|
columns: t,
|
|
423
|
-
rows: e.map((e) => t.map((t) => t in e ?
|
|
438
|
+
rows: e.map((e) => t.map((t) => t in e ? Le(e[t] ?? null) : ""))
|
|
424
439
|
};
|
|
425
440
|
}
|
|
426
|
-
function
|
|
441
|
+
function Ve(e) {
|
|
427
442
|
if (e.length === 0) return { kind: "empty" };
|
|
428
|
-
if (e.every(
|
|
443
|
+
if (e.every(Ie)) return {
|
|
429
444
|
kind: "items",
|
|
430
|
-
items: e.map(
|
|
445
|
+
items: e.map(Le)
|
|
431
446
|
};
|
|
432
|
-
let t = e.map(
|
|
433
|
-
return t.length === e.length ?
|
|
447
|
+
let t = e.map(ze).filter((e) => e !== void 0);
|
|
448
|
+
return t.length === e.length ? Be(t) : {
|
|
434
449
|
kind: "rows",
|
|
435
450
|
rows: e.map((e, t) => ({
|
|
436
451
|
name: String(t + 1),
|
|
437
|
-
value:
|
|
452
|
+
value: K(e)
|
|
438
453
|
}))
|
|
439
454
|
};
|
|
440
455
|
}
|
|
441
|
-
function
|
|
456
|
+
function K(e) {
|
|
442
457
|
if (typeof e == "string") return e.includes("\n") ? {
|
|
443
458
|
kind: "block",
|
|
444
459
|
text: e
|
|
@@ -450,27 +465,27 @@ function q(e) {
|
|
|
450
465
|
kind: "text",
|
|
451
466
|
text: String(e)
|
|
452
467
|
};
|
|
453
|
-
if (Array.isArray(e)) return
|
|
454
|
-
let t =
|
|
468
|
+
if (Array.isArray(e)) return Ve(e);
|
|
469
|
+
let t = Re(e);
|
|
455
470
|
return t === void 0 || Object.keys(t).length === 0 ? { kind: "empty" } : {
|
|
456
471
|
kind: "rows",
|
|
457
|
-
rows:
|
|
472
|
+
rows: He(t)
|
|
458
473
|
};
|
|
459
474
|
}
|
|
460
|
-
function
|
|
475
|
+
function He(e) {
|
|
461
476
|
return Object.entries(e).map(([e, t]) => ({
|
|
462
477
|
name: e,
|
|
463
|
-
value:
|
|
478
|
+
value: K(t)
|
|
464
479
|
}));
|
|
465
480
|
}
|
|
466
|
-
function
|
|
481
|
+
function q(e, t) {
|
|
467
482
|
return t || e.length <= 12 ? e : e.slice(0, 12);
|
|
468
483
|
}
|
|
469
|
-
var
|
|
484
|
+
var Ue = (e) => F(e).map((e) => ({ text: e })), We = (e, t) => F(e).map((e, n) => ({
|
|
470
485
|
text: e,
|
|
471
486
|
number: t + n
|
|
472
487
|
}));
|
|
473
|
-
function
|
|
488
|
+
function Ge(e, t) {
|
|
474
489
|
return t || e.length <= 17 ? e : [
|
|
475
490
|
...e.slice(0, 12),
|
|
476
491
|
"⋯",
|
|
@@ -479,7 +494,7 @@ function Be(e, t) {
|
|
|
479
494
|
}
|
|
480
495
|
//#endregion
|
|
481
496
|
//#region web/src/FoldButton.vue?vue&type=script&setup=true&lang.ts
|
|
482
|
-
var
|
|
497
|
+
var Ke = ["aria-expanded"], J = /* @__PURE__ */ c({
|
|
483
498
|
__name: "FoldButton",
|
|
484
499
|
props: {
|
|
485
500
|
count: {},
|
|
@@ -488,7 +503,7 @@ var Ve = ["aria-expanded"], Y = /* @__PURE__ */ c({
|
|
|
488
503
|
},
|
|
489
504
|
emits: ["toggle"],
|
|
490
505
|
setup(e, { emit: t }) {
|
|
491
|
-
let n = e, a = t, o =
|
|
506
|
+
let n = e, a = t, o = A();
|
|
492
507
|
return (e, t) => n.count > (n.over ?? v(12)) ? (f(), i("button", {
|
|
493
508
|
key: 0,
|
|
494
509
|
type: "button",
|
|
@@ -496,13 +511,13 @@ var Ve = ["aria-expanded"], Y = /* @__PURE__ */ c({
|
|
|
496
511
|
"aria-expanded": n.open,
|
|
497
512
|
"data-test": "show-all",
|
|
498
513
|
onClick: t[0] ||= (e) => a("toggle")
|
|
499
|
-
}, _(n.open ? v(o).t("kvcoder.ui.call.showFewer") : v(o).t("kvcoder.ui.call.showAll", { count: n.count })), 9,
|
|
514
|
+
}, _(n.open ? v(o).t("kvcoder.ui.call.showFewer") : v(o).t("kvcoder.ui.call.showAll", { count: n.count })), 9, Ke)) : r("v-if", !0);
|
|
500
515
|
}
|
|
501
|
-
}),
|
|
502
|
-
function
|
|
516
|
+
}), qe = /http:\/\/(?:127\.0\.0\.1|localhost):\d+[^\s"'`<>()[\]{}]*/g, Je = /[.,;:!?]+$/;
|
|
517
|
+
function Ye(e) {
|
|
503
518
|
let t = [], n = 0;
|
|
504
|
-
for (let r of e.matchAll(
|
|
505
|
-
let i = r[0].replace(
|
|
519
|
+
for (let r of e.matchAll(qe)) {
|
|
520
|
+
let i = r[0].replace(Je, "");
|
|
506
521
|
r.index > n && t.push({
|
|
507
522
|
kind: "text",
|
|
508
523
|
text: e.slice(n, r.index)
|
|
@@ -518,130 +533,130 @@ function We(e) {
|
|
|
518
533
|
}
|
|
519
534
|
//#endregion
|
|
520
535
|
//#region web/src/LinkedText.vue?vue&type=script&setup=true&lang.ts
|
|
521
|
-
var
|
|
536
|
+
var Xe = ["href"], Y = /* @__PURE__ */ c({
|
|
522
537
|
__name: "LinkedText",
|
|
523
538
|
props: { text: {} },
|
|
524
539
|
setup(n) {
|
|
525
|
-
let r = n, a = t(() =>
|
|
540
|
+
let r = n, a = t(() => Ye(r.text));
|
|
526
541
|
return (t, n) => (f(!0), i(e, null, m(a.value, (t, n) => (f(), i(e, { key: n }, [t.kind === "link" ? (f(), i("a", {
|
|
527
542
|
key: 0,
|
|
528
543
|
href: t.href,
|
|
529
544
|
target: "_blank",
|
|
530
545
|
rel: "noopener noreferrer",
|
|
531
546
|
class: "kvc-link"
|
|
532
|
-
}, _(t.href), 9,
|
|
547
|
+
}, _(t.href), 9, Xe)) : (f(), i(e, { key: 1 }, [o(_(t.text), 1)], 64))], 64))), 128));
|
|
533
548
|
}
|
|
534
|
-
}),
|
|
549
|
+
}), Ze = { class: "kvc-code-lines" }, Qe = ["dir", "data-kind"], $e = {
|
|
535
550
|
key: 0,
|
|
536
551
|
class: "kvc-line-number",
|
|
537
552
|
"data-test": "call-line-number"
|
|
538
|
-
},
|
|
553
|
+
}, et = {
|
|
539
554
|
key: 1,
|
|
540
555
|
class: "kvc-line-mark",
|
|
541
556
|
"aria-hidden": "true"
|
|
542
|
-
},
|
|
557
|
+
}, tt = {
|
|
543
558
|
class: "kvc-line-text",
|
|
544
559
|
dir: "auto",
|
|
545
560
|
"data-test": "call-line-text"
|
|
546
|
-
},
|
|
561
|
+
}, X = /* @__PURE__ */ c({
|
|
547
562
|
__name: "FoldedLines",
|
|
548
563
|
props: { lines: {} },
|
|
549
564
|
setup(n) {
|
|
550
|
-
let o = n, c = p(!1), l = t(() =>
|
|
565
|
+
let o = n, c = p(!1), l = t(() => q(o.lines, c.value)), u = t(() => o.lines.some((e) => e.number !== void 0)), d = t(() => o.lines.some((e) => e.kind !== void 0)), h = {
|
|
551
566
|
context: " ",
|
|
552
567
|
removed: "−",
|
|
553
568
|
added: "+"
|
|
554
569
|
};
|
|
555
|
-
return (t, n) => (f(), i("div",
|
|
570
|
+
return (t, n) => (f(), i("div", Ze, [(f(!0), i(e, null, m(l.value, (e, t) => (f(), i("div", {
|
|
556
571
|
key: t,
|
|
557
572
|
class: "kvc-code-line",
|
|
558
573
|
dir: u.value || d.value ? "ltr" : void 0,
|
|
559
574
|
"data-kind": e.kind,
|
|
560
575
|
"data-test": "call-line-row"
|
|
561
576
|
}, [
|
|
562
|
-
u.value ? (f(), i("span",
|
|
563
|
-
d.value ? (f(), i("span",
|
|
564
|
-
a("span",
|
|
565
|
-
], 8,
|
|
577
|
+
u.value ? (f(), i("span", $e, _(e.number), 1)) : r("v-if", !0),
|
|
578
|
+
d.value ? (f(), i("span", et, _(h[e.kind ?? "context"]), 1)) : r("v-if", !0),
|
|
579
|
+
a("span", tt, [s(Y, { text: e.text }, null, 8, ["text"])])
|
|
580
|
+
], 8, Qe))), 128)), s(J, {
|
|
566
581
|
count: o.lines.length,
|
|
567
582
|
open: c.value,
|
|
568
583
|
onToggle: n[0] ||= (e) => c.value = !c.value
|
|
569
584
|
}, null, 8, ["count", "open"])]));
|
|
570
585
|
}
|
|
571
|
-
}),
|
|
586
|
+
}), nt = {
|
|
572
587
|
key: 0,
|
|
573
588
|
dir: "auto",
|
|
574
589
|
"data-test": "field-text"
|
|
575
|
-
},
|
|
590
|
+
}, rt = {
|
|
576
591
|
key: 1,
|
|
577
592
|
class: "kvc-muted",
|
|
578
593
|
"data-test": "field-empty"
|
|
579
|
-
},
|
|
594
|
+
}, it = {
|
|
580
595
|
key: 3,
|
|
581
596
|
class: "kvc-field-table"
|
|
582
|
-
},
|
|
597
|
+
}, at = { "data-test": "field-table" }, ot = {
|
|
583
598
|
key: 4,
|
|
584
599
|
class: "kvc-field-items",
|
|
585
600
|
"data-test": "field-items"
|
|
586
|
-
},
|
|
601
|
+
}, st = {
|
|
587
602
|
key: 5,
|
|
588
603
|
class: "kvc-fields",
|
|
589
604
|
"data-test": "call-fields"
|
|
590
|
-
},
|
|
605
|
+
}, ct = ["data-name"], lt = {
|
|
591
606
|
class: "kvc-muted",
|
|
592
607
|
dir: "ltr"
|
|
593
|
-
},
|
|
608
|
+
}, ut = { "data-test": "field-value" }, Z = /* @__PURE__ */ c({
|
|
594
609
|
__name: "FieldsView",
|
|
595
610
|
props: { value: {} },
|
|
596
611
|
setup(r) {
|
|
597
|
-
let o = r, c = p(!1), l = t(() => o.value.kind === "table" ?
|
|
612
|
+
let o = r, c = p(!1), l = t(() => o.value.kind === "table" ? q(o.value.rows, c.value) : []), u = t(() => o.value.kind === "items" ? q(o.value.items, c.value) : []);
|
|
598
613
|
return (t, r) => {
|
|
599
614
|
let d = h("FieldsView", !0);
|
|
600
|
-
return o.value.kind === "text" ? (f(), i("span",
|
|
615
|
+
return o.value.kind === "text" ? (f(), i("span", nt, [s(Y, { text: o.value.text }, null, 8, ["text"])])) : o.value.kind === "empty" ? (f(), i("span", rt, "—")) : o.value.kind === "block" ? (f(), n(X, {
|
|
601
616
|
key: 2,
|
|
602
617
|
class: "kvc-field-block",
|
|
603
|
-
lines: v(
|
|
618
|
+
lines: v(Ue)(o.value.text),
|
|
604
619
|
"data-test": "field-block"
|
|
605
|
-
}, null, 8, ["lines"])) : o.value.kind === "table" ? (f(), i("div",
|
|
620
|
+
}, null, 8, ["lines"])) : o.value.kind === "table" ? (f(), i("div", it, [a("table", at, [a("thead", null, [a("tr", null, [(f(!0), i(e, null, m(o.value.columns, (e) => (f(), i("th", {
|
|
606
621
|
key: e,
|
|
607
622
|
scope: "col",
|
|
608
623
|
dir: "ltr"
|
|
609
624
|
}, _(e), 1))), 128))])]), a("tbody", null, [(f(!0), i(e, null, m(l.value, (t, n) => (f(), i("tr", { key: n }, [(f(!0), i(e, null, m(t, (e, t) => (f(), i("td", {
|
|
610
625
|
key: t,
|
|
611
626
|
dir: "auto"
|
|
612
|
-
}, [s(
|
|
627
|
+
}, [s(Y, { text: e }, null, 8, ["text"])]))), 128))]))), 128))])]), s(J, {
|
|
613
628
|
count: o.value.rows.length,
|
|
614
629
|
open: c.value,
|
|
615
630
|
onToggle: r[0] ||= (e) => c.value = !c.value
|
|
616
|
-
}, null, 8, ["count", "open"])])) : o.value.kind === "items" ? (f(), i("div",
|
|
631
|
+
}, null, 8, ["count", "open"])])) : o.value.kind === "items" ? (f(), i("div", ot, [(f(!0), i(e, null, m(u.value, (e, t) => (f(), i("div", {
|
|
617
632
|
key: t,
|
|
618
633
|
dir: "auto"
|
|
619
|
-
}, [s(
|
|
634
|
+
}, [s(Y, { text: e }, null, 8, ["text"])]))), 128)), s(J, {
|
|
620
635
|
count: o.value.items.length,
|
|
621
636
|
open: c.value,
|
|
622
637
|
onToggle: r[1] ||= (e) => c.value = !c.value
|
|
623
|
-
}, null, 8, ["count", "open"])])) : (f(), i("dl",
|
|
638
|
+
}, null, 8, ["count", "open"])])) : (f(), i("dl", st, [(f(!0), i(e, null, m(o.value.rows, (e) => (f(), i("div", {
|
|
624
639
|
key: e.name,
|
|
625
640
|
class: "kvc-field-row",
|
|
626
641
|
"data-name": e.name,
|
|
627
642
|
"data-test": "field-row"
|
|
628
|
-
}, [a("dt",
|
|
643
|
+
}, [a("dt", lt, _(e.name), 1), a("dd", ut, [s(d, { value: e.value }, null, 8, ["value"])])], 8, ct))), 128))]));
|
|
629
644
|
};
|
|
630
645
|
}
|
|
631
|
-
}),
|
|
646
|
+
}), dt = ["aria-label"], ft = ["aria-label"], pt = /* @__PURE__ */ c({
|
|
632
647
|
__name: "CallRequest",
|
|
633
648
|
props: { view: {} },
|
|
634
649
|
setup(a) {
|
|
635
|
-
let o = a, c =
|
|
636
|
-
return (t, a) => l.value === "edit" ? (f(!0), i(e, { key: 0 }, m(d.value, (e, t) => (f(), n(
|
|
650
|
+
let o = a, c = A(), l = t(() => W(o.view)), u = t(() => o.view.fields ?? {}), d = t(() => V(u.value).map((e) => L(e.oldText, e.newText))), p = t(() => typeof u.value.content == "string" ? u.value.content : ""), h = t(() => typeof u.value.task == "string" ? u.value.task : ""), g = t(() => l.value === "mcp-call" ? j(u.value.arguments) : l.value === "fields" ? u.value : {});
|
|
651
|
+
return (t, a) => l.value === "edit" ? (f(!0), i(e, { key: 0 }, m(d.value, (e, t) => (f(), n(X, {
|
|
637
652
|
key: t,
|
|
638
653
|
class: "kvc-block",
|
|
639
654
|
lines: e,
|
|
640
655
|
"data-test": "call-diff"
|
|
641
|
-
}, null, 8, ["lines"]))), 128)) : l.value === "write" ? (f(), n(
|
|
656
|
+
}, null, 8, ["lines"]))), 128)) : l.value === "write" ? (f(), n(X, {
|
|
642
657
|
key: 1,
|
|
643
658
|
class: "kvc-block",
|
|
644
|
-
lines: v(
|
|
659
|
+
lines: v(We)(p.value, 1),
|
|
645
660
|
"data-test": "call-content"
|
|
646
661
|
}, null, 8, ["lines"])) : l.value === "line" ? (f(), i("pre", {
|
|
647
662
|
key: 2,
|
|
@@ -649,10 +664,10 @@ var Ge = ["href"], X = /* @__PURE__ */ c({
|
|
|
649
664
|
dir: "ltr",
|
|
650
665
|
"aria-label": v(c).t("kvcoder.ui.command"),
|
|
651
666
|
"data-test": "call-payload"
|
|
652
|
-
}, "$ " + _(o.view.line), 9,
|
|
667
|
+
}, "$ " + _(o.view.line), 9, dt)) : l.value === "delegate" ? (f(), n(X, {
|
|
653
668
|
key: 3,
|
|
654
669
|
class: "kvc-block kvc-prose-lines",
|
|
655
|
-
lines: v(
|
|
670
|
+
lines: v(Ue)(h.value),
|
|
656
671
|
"aria-label": v(c).t("kvcoder.ui.call.task"),
|
|
657
672
|
"data-test": "call-task"
|
|
658
673
|
}, null, 8, ["lines", "aria-label"])) : Object.keys(g.value).length > 0 ? (f(), i("div", {
|
|
@@ -660,19 +675,19 @@ var Ge = ["href"], X = /* @__PURE__ */ c({
|
|
|
660
675
|
class: "kvc-block",
|
|
661
676
|
"aria-label": v(c).t("kvcoder.ui.call.payload"),
|
|
662
677
|
"data-test": "call-payload-fields"
|
|
663
|
-
}, [s(
|
|
678
|
+
}, [s(Z, { value: v(K)(g.value) }, null, 8, ["value"])], 8, ft)) : r("v-if", !0);
|
|
664
679
|
}
|
|
665
|
-
}),
|
|
680
|
+
}), mt = { class: "kvc-output-block" }, ht = ["aria-label"], Q = /* @__PURE__ */ c({
|
|
666
681
|
__name: "FoldedOutput",
|
|
667
682
|
props: { output: {} },
|
|
668
683
|
setup(e) {
|
|
669
|
-
let n = e, r =
|
|
670
|
-
return (e, t) => (f(), i("div",
|
|
684
|
+
let n = e, r = A(), o = p(!1), c = t(() => n.output.split("\n")), l = t(() => Ge(c.value, o.value).join("\n"));
|
|
685
|
+
return (e, t) => (f(), i("div", mt, [a("pre", {
|
|
671
686
|
class: "kvc-output",
|
|
672
687
|
dir: "auto",
|
|
673
688
|
"aria-label": v(r).t("kvcoder.ui.output"),
|
|
674
689
|
"data-test": "call-output"
|
|
675
|
-
}, [s(
|
|
690
|
+
}, [s(Y, { text: l.value }, null, 8, ["text"])], 8, ht), s(J, {
|
|
676
691
|
count: c.value.length,
|
|
677
692
|
open: o.value,
|
|
678
693
|
over: v(12) + v(5),
|
|
@@ -697,83 +712,83 @@ function $(e, t) {
|
|
|
697
712
|
}
|
|
698
713
|
//#endregion
|
|
699
714
|
//#region web/src/RunOutput.vue?vue&type=script&setup=true&lang.ts
|
|
700
|
-
var
|
|
715
|
+
var gt = {
|
|
701
716
|
class: "kvc-block kvc-run-row",
|
|
702
717
|
"data-test": "run-row"
|
|
703
|
-
},
|
|
718
|
+
}, _t = {
|
|
704
719
|
class: "kvc-run-call",
|
|
705
720
|
dir: "auto",
|
|
706
721
|
"data-test": "run-call"
|
|
707
|
-
},
|
|
722
|
+
}, vt = {
|
|
708
723
|
class: "kvc-chip",
|
|
709
724
|
"data-test": "run-status"
|
|
710
|
-
},
|
|
725
|
+
}, yt = {
|
|
711
726
|
key: 0,
|
|
712
727
|
class: "kvc-muted",
|
|
713
728
|
"data-test": "run-time"
|
|
714
|
-
},
|
|
729
|
+
}, bt = ["aria-label"], xt = ["aria-label"], St = ["aria-label"], Ct = ["aria-label"], wt = /* @__PURE__ */ c({
|
|
715
730
|
__name: "RunOutput",
|
|
716
731
|
props: { run: {} },
|
|
717
732
|
setup(c) {
|
|
718
|
-
let l = c, u =
|
|
733
|
+
let l = c, u = A(), d = (e) => typeof e == "string" ? e : void 0, p = t(() => d(l.run.output)), m = t(() => d(l.run.problem)), h = t(() => ({
|
|
719
734
|
type: "markdown",
|
|
720
735
|
text: "kvcoder.markdown",
|
|
721
736
|
params: { text: p.value ?? "" }
|
|
722
737
|
}));
|
|
723
738
|
return (t, c) => (f(), i(e, null, [
|
|
724
|
-
a("div",
|
|
725
|
-
a("span",
|
|
726
|
-
a("span",
|
|
727
|
-
l.run.ranMs === void 0 ? r("v-if", !0) : (f(), i("span",
|
|
739
|
+
a("div", gt, [
|
|
740
|
+
a("span", _t, _(l.run.call), 1),
|
|
741
|
+
a("span", vt, [o(_(v(M)(v(u).t, l.run.status)), 1), l.run.exitCode === void 0 ? r("v-if", !0) : (f(), i(e, { key: 0 }, [o(" · " + _(v(u).t("kvcoder.ui.exitCode", { code: l.run.exitCode })), 1)], 64))]),
|
|
742
|
+
l.run.ranMs === void 0 ? r("v-if", !0) : (f(), i("span", yt, _(v($)(v(u).t, l.run.ranMs)), 1))
|
|
728
743
|
]),
|
|
729
744
|
m.value === void 0 ? l.run.problem === void 0 ? r("v-if", !0) : (f(), i("div", {
|
|
730
745
|
key: 1,
|
|
731
746
|
class: "kvc-block kvc-error",
|
|
732
747
|
"aria-label": v(u).t("kvcoder.ui.call.error"),
|
|
733
748
|
"data-test": "run-problem"
|
|
734
|
-
}, [s(
|
|
749
|
+
}, [s(Z, { value: v(K)(l.run.problem) }, null, 8, ["value"])], 8, xt)) : (f(), i("pre", {
|
|
735
750
|
key: 0,
|
|
736
751
|
class: "kvc-block kvc-error",
|
|
737
752
|
dir: "auto",
|
|
738
753
|
"aria-label": v(u).t("kvcoder.ui.call.error"),
|
|
739
754
|
"data-test": "run-problem"
|
|
740
|
-
}, [s(
|
|
755
|
+
}, [s(Y, { text: m.value }, null, 8, ["text"])], 8, bt)),
|
|
741
756
|
p.value === void 0 && l.run.output !== void 0 ? (f(), i("div", {
|
|
742
757
|
key: 2,
|
|
743
758
|
class: "kvc-block",
|
|
744
759
|
"aria-label": v(u).t("kvcoder.ui.output"),
|
|
745
760
|
"data-test": "call-result-fields"
|
|
746
|
-
}, [s(
|
|
761
|
+
}, [s(Z, { value: v(K)(l.run.output) }, null, 8, ["value"])], 8, St)) : l.run.answer && p.value ? (f(), i("div", {
|
|
747
762
|
key: 3,
|
|
748
763
|
class: "kvc-block",
|
|
749
764
|
"aria-label": v(u).t("kvcoder.ui.call.answer"),
|
|
750
765
|
"data-test": "call-answer"
|
|
751
|
-
}, [(f(), n(g(v(u).View), { view: h.value }, null, 8, ["view"]))], 8,
|
|
766
|
+
}, [(f(), n(g(v(u).View), { view: h.value }, null, 8, ["view"]))], 8, Ct)) : p.value ? (f(), n(Q, {
|
|
752
767
|
key: 4,
|
|
753
768
|
output: p.value
|
|
754
769
|
}, null, 8, ["output"])) : r("v-if", !0)
|
|
755
770
|
], 64));
|
|
756
771
|
}
|
|
757
|
-
}),
|
|
772
|
+
}), Tt = {
|
|
758
773
|
key: 0,
|
|
759
774
|
class: "kvc-muted kvc-call-parts",
|
|
760
775
|
"data-test": "call-replacements"
|
|
761
|
-
},
|
|
776
|
+
}, Et = {
|
|
762
777
|
key: 2,
|
|
763
778
|
class: "kvc-block kvc-entries",
|
|
764
779
|
"data-test": "call-entries"
|
|
765
|
-
},
|
|
780
|
+
}, Dt = ["data-kind"], Ot = {
|
|
766
781
|
class: "kvc-mono",
|
|
767
782
|
dir: "auto",
|
|
768
783
|
"data-test": "call-entry-name"
|
|
769
|
-
},
|
|
784
|
+
}, kt = {
|
|
770
785
|
key: 0,
|
|
771
786
|
class: "kvc-muted",
|
|
772
787
|
"data-test": "call-entry-size"
|
|
773
|
-
},
|
|
788
|
+
}, At = {
|
|
774
789
|
class: "kvc-mono kvc-file-path",
|
|
775
790
|
"data-test": "call-file-path"
|
|
776
|
-
},
|
|
791
|
+
}, jt = ["aria-label"], Mt = ["aria-label"], Nt = /* @__PURE__ */ c({
|
|
777
792
|
__name: "CallResult",
|
|
778
793
|
props: {
|
|
779
794
|
view: {},
|
|
@@ -781,7 +796,7 @@ var ft = {
|
|
|
781
796
|
result: {}
|
|
782
797
|
},
|
|
783
798
|
setup(o) {
|
|
784
|
-
let c = o, l =
|
|
799
|
+
let c = o, l = A(), u = t(() => W(c.view)), d = t(() => u.value === "edit" ? ce(c.result) : void 0), h = t(() => u.value === "read" ? le(c.result) : void 0), y = t(() => u.value === "list" ? de(c.result) : void 0), b = t(() => u.value === "search" ? me(c.result) : void 0), x = t(() => u.value === "run-output" ? N(c.result) : void 0), S = p(!1), C = t(() => q(y.value ?? [], S.value)), w = t(() => ({
|
|
785
800
|
type: "markdown",
|
|
786
801
|
text: "kvcoder.markdown",
|
|
787
802
|
params: { text: c.output }
|
|
@@ -791,68 +806,68 @@ var ft = {
|
|
|
791
806
|
class: "kvc-block",
|
|
792
807
|
"aria-label": v(l).t("kvcoder.ui.call.answer"),
|
|
793
808
|
"data-test": "call-answer"
|
|
794
|
-
}, [(f(), n(g(v(l).View), { view: w.value }, null, 8, ["view"]))], 8,
|
|
809
|
+
}, [(f(), n(g(v(l).View), { view: w.value }, null, 8, ["view"]))], 8, jt)) : T.value ? (f(), i("div", {
|
|
795
810
|
key: 7,
|
|
796
811
|
class: "kvc-block",
|
|
797
812
|
"aria-label": v(l).t("kvcoder.ui.output"),
|
|
798
813
|
"data-test": "call-result-fields"
|
|
799
|
-
}, [s(
|
|
814
|
+
}, [s(Z, { value: v(K)(c.result) }, null, 8, ["value"])], 8, Mt)) : c.output === "" ? r("v-if", !0) : (f(), n(Q, {
|
|
800
815
|
key: 8,
|
|
801
816
|
output: c.output
|
|
802
|
-
}, null, 8, ["output"])) : (f(), n(
|
|
817
|
+
}, null, 8, ["output"])) : (f(), n(wt, {
|
|
803
818
|
key: 5,
|
|
804
819
|
run: x.value
|
|
805
820
|
}, null, 8, ["run"])) : (f(!0), i(e, { key: 3 }, m(b.value, (e) => (f(), i("div", {
|
|
806
821
|
key: e.path,
|
|
807
822
|
class: "kvc-block",
|
|
808
823
|
"data-test": "call-file"
|
|
809
|
-
}, [a("div",
|
|
824
|
+
}, [a("div", At, _(e.path), 1), s(X, { lines: e.matches.map((e) => ({
|
|
810
825
|
text: e.text,
|
|
811
826
|
number: e.line
|
|
812
|
-
})) }, null, 8, ["lines"])]))), 128)) : (f(), i("div",
|
|
827
|
+
})) }, null, 8, ["lines"])]))), 128)) : (f(), i("div", Et, [(f(!0), i(e, null, m(C.value, (e) => (f(), i("div", {
|
|
813
828
|
key: e.name,
|
|
814
829
|
class: "kvc-entry",
|
|
815
830
|
"data-kind": e.kind,
|
|
816
831
|
"data-test": "call-entry"
|
|
817
832
|
}, [
|
|
818
|
-
(f(), n(g(e.kind === "folder" ? v(
|
|
833
|
+
(f(), n(g(e.kind === "folder" ? v(re) : v(k)), {
|
|
819
834
|
size: 14,
|
|
820
835
|
"aria-hidden": "true"
|
|
821
836
|
})),
|
|
822
|
-
a("span",
|
|
823
|
-
e.kind === "file" ? (f(), i("span",
|
|
824
|
-
], 8,
|
|
837
|
+
a("span", Ot, _(e.name), 1),
|
|
838
|
+
e.kind === "file" ? (f(), i("span", kt, _(v(z)(v(l).t, e.bytes)), 1)) : r("v-if", !0)
|
|
839
|
+
], 8, Dt))), 128)), s(J, {
|
|
825
840
|
count: y.value.length,
|
|
826
841
|
open: S.value,
|
|
827
842
|
onToggle: o[0] ||= (e) => S.value = !S.value
|
|
828
|
-
}, null, 8, ["count", "open"])])) : (f(), n(
|
|
843
|
+
}, null, 8, ["count", "open"])])) : (f(), n(X, {
|
|
829
844
|
key: 1,
|
|
830
845
|
class: "kvc-block",
|
|
831
|
-
lines: v(
|
|
846
|
+
lines: v(We)(h.value.content, h.value.fromLine),
|
|
832
847
|
"data-test": "call-content"
|
|
833
|
-
}, null, 8, ["lines"])) : (f(), i("p",
|
|
848
|
+
}, null, 8, ["lines"])) : (f(), i("p", Tt, _(v(l).t("kvcoder.ui.call.replacements", {
|
|
834
849
|
count: d.value.replacements,
|
|
835
850
|
line: d.value.firstChangedLine
|
|
836
851
|
})), 1));
|
|
837
852
|
}
|
|
838
|
-
}),
|
|
853
|
+
}), Pt = {
|
|
839
854
|
key: 0,
|
|
840
855
|
class: "kvc-summary",
|
|
841
856
|
"data-test": "call-summary"
|
|
842
|
-
},
|
|
857
|
+
}, Ft = {
|
|
843
858
|
key: 0,
|
|
844
859
|
"data-test": "call-words"
|
|
845
|
-
},
|
|
860
|
+
}, It = {
|
|
846
861
|
key: 1,
|
|
847
862
|
class: "kvc-mono",
|
|
848
863
|
"data-test": "call-subject"
|
|
849
|
-
},
|
|
864
|
+
}, Lt = ["dir"], Rt = {
|
|
850
865
|
key: 1,
|
|
851
866
|
class: "kvc-muted",
|
|
852
867
|
dir: "ltr",
|
|
853
868
|
style: { "align-self": "flex-start" },
|
|
854
869
|
"data-test": "call-label"
|
|
855
|
-
},
|
|
870
|
+
}, zt = /* @__PURE__ */ c({
|
|
856
871
|
__name: "CallSummaryLine",
|
|
857
872
|
props: {
|
|
858
873
|
view: {},
|
|
@@ -860,46 +875,50 @@ var ft = {
|
|
|
860
875
|
whole: { type: Boolean }
|
|
861
876
|
},
|
|
862
877
|
setup(e) {
|
|
863
|
-
let n = e, a =
|
|
864
|
-
return (e, t) => o.value === void 0 ? n.view.label ? (f(), i("span",
|
|
865
|
-
o.value.words ? (f(), i("span",
|
|
866
|
-
c.value ? (f(), i("span",
|
|
878
|
+
let n = e, a = A(), o = t(() => De(a.t, n.view, n.result)), s = t(() => /\p{L}/u.test(o.value?.outcome ?? "") ? void 0 : "ltr"), c = t(() => o.value?.subject === void 0 || n.whole === !0 ? o.value?.subject : G(o.value.subject));
|
|
879
|
+
return (e, t) => o.value === void 0 ? n.view.label ? (f(), i("span", Rt, _(n.view.label), 1)) : r("v-if", !0) : (f(), i("span", Pt, [
|
|
880
|
+
o.value.words ? (f(), i("span", Ft, _(o.value.words), 1)) : r("v-if", !0),
|
|
881
|
+
c.value ? (f(), i("span", It, _(c.value), 1)) : r("v-if", !0),
|
|
867
882
|
o.value.outcome ? (f(), i("span", {
|
|
868
883
|
key: 2,
|
|
869
884
|
class: "kvc-muted",
|
|
870
885
|
dir: s.value,
|
|
871
886
|
"data-test": "call-outcome"
|
|
872
|
-
}, _(o.value.outcome), 9,
|
|
887
|
+
}, _(o.value.outcome), 9, Lt)) : r("v-if", !0)
|
|
873
888
|
]));
|
|
874
889
|
}
|
|
875
|
-
}),
|
|
890
|
+
}), Bt = ["aria-expanded", "disabled"], Vt = ["aria-label"], Ht = { class: "kvc-lines" }, Ut = {
|
|
876
891
|
key: 0,
|
|
877
892
|
style: { "font-weight": "600" },
|
|
878
893
|
"data-test": "call-description"
|
|
879
|
-
},
|
|
894
|
+
}, Wt = {
|
|
880
895
|
key: 1,
|
|
881
896
|
class: "kvc-oneline",
|
|
882
897
|
"data-test": "call-line"
|
|
883
|
-
},
|
|
898
|
+
}, Gt = { class: "kvc-mono" }, Kt = {
|
|
884
899
|
key: 2,
|
|
885
900
|
class: "kvc-chip kvc-warn",
|
|
886
901
|
"data-test": "call-risky"
|
|
887
|
-
},
|
|
902
|
+
}, qt = {
|
|
888
903
|
key: 3,
|
|
889
904
|
class: "kvc-chip",
|
|
890
905
|
"data-test": "call-background"
|
|
891
|
-
},
|
|
906
|
+
}, Jt = {
|
|
892
907
|
key: 4,
|
|
908
|
+
class: "kvc-chip",
|
|
909
|
+
"data-test": "call-not-run"
|
|
910
|
+
}, Yt = {
|
|
911
|
+
key: 5,
|
|
893
912
|
class: "kvc-chip kvc-danger",
|
|
894
913
|
"data-test": "call-failed"
|
|
895
|
-
},
|
|
914
|
+
}, Xt = {
|
|
896
915
|
class: "kvc-muted",
|
|
897
916
|
"data-test": "call-time"
|
|
898
|
-
},
|
|
917
|
+
}, Zt = {
|
|
899
918
|
key: 0,
|
|
900
919
|
class: "kvc-muted kvc-call-parts",
|
|
901
920
|
"data-test": "call-parts"
|
|
902
|
-
},
|
|
921
|
+
}, Qt = ["aria-expanded"], $t = ["aria-label"], en = /* @__PURE__ */ c({
|
|
903
922
|
__name: "CallCard",
|
|
904
923
|
props: {
|
|
905
924
|
view: {},
|
|
@@ -909,7 +928,10 @@ var ft = {
|
|
|
909
928
|
running: { type: Boolean }
|
|
910
929
|
},
|
|
911
930
|
setup(o) {
|
|
912
|
-
let c = o, l =
|
|
931
|
+
let c = o, l = A(), u = t(() => W(c.view)), m = p(c.output !== void 0 && c.failed !== !0 && (u.value === "edit" || u.value === "write")), h = p(!1), y = t(() => c.failed === !0 && c.output !== void 0 ? se(c.output) : void 0), b = t(() => y.value?.kind === "invalid"), x = t(() => {
|
|
932
|
+
let e = y.value;
|
|
933
|
+
return e === void 0 ? "" : e.kind === "error" ? e.message : l.t(`kvcoder.ui.failure.${e.kind}`);
|
|
934
|
+
}), S = t(() => c.failed === !0 ? void 0 : ge(c.output)), C = t(() => c.failed === !0 && u.value !== "line"), w = t(() => c.durationMs === void 0 ? "" : $(l.t, (c.view.writtenMs ?? 0) + c.durationMs)), T = t(() => {
|
|
913
935
|
if (c.durationMs === void 0) return "";
|
|
914
936
|
let e = $(l.t, c.durationMs);
|
|
915
937
|
return c.view.writtenMs === void 0 ? l.t("kvcoder.ui.callRan", { ran: e }) : l.t("kvcoder.ui.callParts", {
|
|
@@ -918,7 +940,7 @@ var ft = {
|
|
|
918
940
|
});
|
|
919
941
|
});
|
|
920
942
|
return (t, o) => (f(), i("div", {
|
|
921
|
-
class: d(["kvc-card", { "kvc-failed": c.failed }]),
|
|
943
|
+
class: d(["kvc-card", { "kvc-failed": c.failed && !b.value }]),
|
|
922
944
|
"data-test": "call-card"
|
|
923
945
|
}, [a("button", {
|
|
924
946
|
type: "button",
|
|
@@ -935,42 +957,50 @@ var ft = {
|
|
|
935
957
|
key: 0,
|
|
936
958
|
class: "kvc-spin",
|
|
937
959
|
"aria-label": v(l).t("kvcoder.ui.running")
|
|
938
|
-
}, null, 8,
|
|
960
|
+
}, null, 8, Vt)) : (f(), n(g(m.value ? v(D) : v(O)), {
|
|
939
961
|
key: 1,
|
|
940
962
|
size: 16,
|
|
941
963
|
"aria-hidden": "true"
|
|
942
964
|
})),
|
|
943
|
-
a("span",
|
|
944
|
-
view: c.view,
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
], 64)) : r("v-if", !0)], 2)
|
|
965
|
+
a("span", Ht, [
|
|
966
|
+
c.view.description ? (f(), i("span", Ut, _(c.view.description), 1)) : c.view.connector === void 0 && c.view.line ? (f(), i("span", Wt, [a("span", Gt, _(v(G)(c.view.line)), 1)])) : r("v-if", !0),
|
|
967
|
+
s(zt, {
|
|
968
|
+
view: c.view,
|
|
969
|
+
result: S.value
|
|
970
|
+
}, null, 8, ["view", "result"]),
|
|
971
|
+
x.value === "" ? r("v-if", !0) : (f(), i("span", {
|
|
972
|
+
key: 2,
|
|
973
|
+
class: d(["kvc-oneline", b.value ? "kvc-muted" : "kvc-danger"]),
|
|
974
|
+
dir: "auto",
|
|
975
|
+
"data-test": "call-reason"
|
|
976
|
+
}, _(x.value), 3))
|
|
977
|
+
]),
|
|
978
|
+
c.view.risky ? (f(), i("span", Kt, _(v(l).t("kvcoder.ui.call.risky")), 1)) : r("v-if", !0),
|
|
979
|
+
c.view.background ? (f(), i("span", qt, _(v(l).t("kvcoder.ui.jobs.background")), 1)) : r("v-if", !0),
|
|
980
|
+
b.value ? (f(), i("span", Jt, _(v(l).t("kvcoder.ui.callNotRun")), 1)) : c.failed ? (f(), i("span", Yt, _(v(l).t("kvcoder.ui.callFailed")), 1)) : r("v-if", !0),
|
|
981
|
+
a("span", Xt, _(w.value), 1)
|
|
982
|
+
], 8, Bt), m.value && c.output !== void 0 ? (f(), i(e, { key: 0 }, [T.value === "" ? r("v-if", !0) : (f(), i("p", Zt, _(T.value), 1)), C.value ? (f(), i(e, { key: 1 }, [a("button", {
|
|
983
|
+
type: "button",
|
|
984
|
+
class: "kvc-text-button kvc-fold",
|
|
985
|
+
"aria-expanded": h.value,
|
|
986
|
+
"data-test": "call-details",
|
|
987
|
+
onClick: o[1] ||= (e) => h.value = !h.value
|
|
988
|
+
}, _(v(l).t(h.value ? "kvcoder.ui.call.hideDetails" : "kvcoder.ui.call.showDetails")), 9, Qt), h.value ? (f(), i(e, { key: 0 }, [a("pre", {
|
|
989
|
+
class: "kvc-block kvc-error",
|
|
990
|
+
dir: "auto",
|
|
991
|
+
"aria-label": v(l).t("kvcoder.ui.call.error"),
|
|
992
|
+
"data-test": "call-error"
|
|
993
|
+
}, [s(Y, { text: c.output }, null, 8, ["text"])], 8, $t), s(pt, { view: c.view }, null, 8, ["view"])], 64)) : r("v-if", !0)], 64)) : (f(), i(e, { key: 2 }, [s(pt, { view: c.view }, null, 8, ["view"]), s(Nt, {
|
|
994
|
+
view: c.view,
|
|
995
|
+
output: c.output,
|
|
996
|
+
result: S.value
|
|
997
|
+
}, null, 8, [
|
|
998
|
+
"view",
|
|
999
|
+
"output",
|
|
1000
|
+
"result"
|
|
1001
|
+
])], 64))], 64)) : r("v-if", !0)], 2));
|
|
972
1002
|
}
|
|
973
|
-
}),
|
|
1003
|
+
}), tn = /* @__PURE__ */ c({
|
|
974
1004
|
__name: "call",
|
|
975
1005
|
props: {
|
|
976
1006
|
description: {},
|
|
@@ -986,13 +1016,13 @@ var ft = {
|
|
|
986
1016
|
let r = e, i = t(() => r.connector === void 0 ? {
|
|
987
1017
|
...r.description === void 0 ? {} : { description: r.description },
|
|
988
1018
|
...r.line === void 0 ? {} : { line: r.line }
|
|
989
|
-
} :
|
|
1019
|
+
} : Ne({
|
|
990
1020
|
description: r.description,
|
|
991
1021
|
connector: r.connector,
|
|
992
1022
|
command: r.command,
|
|
993
1023
|
payload: r.payload ?? {}
|
|
994
1024
|
}));
|
|
995
|
-
return (e, t) => (f(), n(
|
|
1025
|
+
return (e, t) => (f(), n(en, {
|
|
996
1026
|
view: i.value,
|
|
997
1027
|
failed: r.failed,
|
|
998
1028
|
"duration-ms": r.durationMs,
|
|
@@ -1006,4 +1036,4 @@ var ft = {
|
|
|
1006
1036
|
}
|
|
1007
1037
|
});
|
|
1008
1038
|
//#endregion
|
|
1009
|
-
export {
|
|
1039
|
+
export { tn as default };
|