@jsbot-tellus/core 2.6.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -4
- package/dist/core/dispatch/command.d.ts +5 -2
- package/dist/core/dispatch/command.d.ts.map +1 -1
- package/dist/core/dispatch/command.js +33 -7
- package/dist/core/dispatch/command.js.map +1 -1
- package/dist/core/dispatch/handler.d.ts +5 -3
- package/dist/core/dispatch/handler.d.ts.map +1 -1
- package/dist/core/dispatch/handler.js +6 -1
- package/dist/core/dispatch/handler.js.map +1 -1
- package/dist/core/dispatch/router.d.ts +4 -2
- package/dist/core/dispatch/router.d.ts.map +1 -1
- package/dist/core/dispatch/router.js +9 -5
- package/dist/core/dispatch/router.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/kernel.d.ts +1 -1
- package/dist/core/kernel.d.ts.map +1 -1
- package/dist/core/kernel.js +4 -1
- package/dist/core/kernel.js.map +1 -1
- package/dist/core/plugin/context.d.ts.map +1 -1
- package/dist/core/plugin/context.js +12 -0
- package/dist/core/plugin/context.js.map +1 -1
- package/dist/core/plugin/loader.d.ts +1 -1
- package/dist/core/plugin/loader.d.ts.map +1 -1
- package/dist/core/plugin/loader.js +31 -46
- package/dist/core/plugin/loader.js.map +1 -1
- package/dist/core/plugin/types.d.ts +9 -1
- package/dist/core/plugin/types.d.ts.map +1 -1
- package/dist/core/plugin/types.js.map +1 -1
- package/dist/webui/assets/ActionsView-B3Q3rh2X.js +1 -0
- package/dist/webui/assets/ConfigView-Baeqfi8s.js +1 -0
- package/dist/webui/assets/DashboardView-DLKD8DqF.js +1 -0
- package/dist/webui/assets/EventsView-CGUPPvRI.js +1 -0
- package/dist/webui/assets/KvView-CeovApuA.js +1 -0
- package/dist/webui/assets/LoginView-C2cfmXmS.js +1 -0
- package/dist/webui/assets/LogsView-K7nWoSFe.js +1 -0
- package/dist/webui/assets/MainLayout-bySbvMWB.js +1 -0
- package/dist/webui/assets/{MainLayout-glfVNbMz.css → MainLayout-qhsp--2k.css} +1 -1
- package/dist/webui/assets/PluginsView-DQZu8in1.js +1 -0
- package/dist/webui/assets/SessionsView-C0vTCqqE.js +1 -0
- package/dist/webui/assets/api-Bm2KUKXH.js +3 -0
- package/dist/webui/assets/index-CFz4VL67.js +50 -0
- package/dist/webui/assets/{index-CePlRZX6.css → index-Cs8jafCm.css} +1 -1
- package/dist/webui/index.html +3 -3
- package/docs/architecture.md +3 -3
- package/docs/configuration.md +3 -3
- package/docs/docker.md +166 -0
- package/docs/feature-parity.md +2 -2
- package/docs/migration.md +1 -1
- package/docs/plugin-api.md +20 -5
- package/docs/plugin-development.md +30 -27
- package/docs/release.md +50 -8
- package/package.json +3 -3
- package/src/core/dispatch/command.ts +53 -1
- package/src/core/dispatch/handler.ts +19 -1
- package/src/core/dispatch/router.ts +20 -3
- package/src/core/index.ts +4 -0
- package/src/core/kernel.ts +8 -1
- package/src/core/plugin/context.ts +21 -0
- package/src/core/plugin/loader.ts +41 -66
- package/src/core/plugin/types.ts +20 -0
- package/dist/webui/assets/ActionsView-BDuXBWG1.js +0 -1
- package/dist/webui/assets/ConfigView-B3Gv2uRG.js +0 -1
- package/dist/webui/assets/DashboardView-n9LGPmQL.js +0 -1
- package/dist/webui/assets/EventsView-DhO8twWb.js +0 -1
- package/dist/webui/assets/KvView-BCz_dOVC.js +0 -1
- package/dist/webui/assets/LoginView-Br3_AC5z.js +0 -1
- package/dist/webui/assets/LogsView-Ba_12frI.js +0 -1
- package/dist/webui/assets/MainLayout-D2LTc57u.js +0 -1
- package/dist/webui/assets/PluginsView-vQKBSCU8.js +0 -1
- package/dist/webui/assets/SessionsView-DSl37qpo.js +0 -1
- package/dist/webui/assets/api-CNzxhTWe.js +0 -3
- package/dist/webui/assets/index-CUvpnClx.js +0 -50
package/dist/core/kernel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/core/kernel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/core/kernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,KAAK,EAKR,YAAY,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,KAAK,EAKR,YAAY,EAEZ,aAAa,EACb,gBAAgB,EACnB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,YAAY,CAAA;IAClB,EAAE,EAAE,QAAQ,CAAA;IACZ,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,SAAS,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EACvC,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAC9C,IAAI,EAAE,iBAAiB,GACxB,aAAa,CAAC,OAAO,CAAC,CA8IxB"}
|
|
@@ -23,6 +23,9 @@ export function createPluginContext(definition, deps) {
|
|
|
23
23
|
...(options.permission !== undefined
|
|
24
24
|
? { permission: options.permission }
|
|
25
25
|
: {}),
|
|
26
|
+
...(options.messageType !== undefined
|
|
27
|
+
? { messageType: options.messageType }
|
|
28
|
+
: {}),
|
|
26
29
|
...(options.description !== undefined
|
|
27
30
|
? { description: options.description }
|
|
28
31
|
: {}),
|
|
@@ -45,6 +48,9 @@ export function createPluginContext(definition, deps) {
|
|
|
45
48
|
...(options.permission !== undefined
|
|
46
49
|
? { permission: options.permission }
|
|
47
50
|
: {}),
|
|
51
|
+
...(options.messageType !== undefined
|
|
52
|
+
? { messageType: options.messageType }
|
|
53
|
+
: {}),
|
|
48
54
|
...(options.description !== undefined
|
|
49
55
|
? { description: options.description }
|
|
50
56
|
: {}),
|
|
@@ -64,6 +70,12 @@ export function createPluginContext(definition, deps) {
|
|
|
64
70
|
onMessage(handler) {
|
|
65
71
|
return deps.router.registerMessage(id, handler);
|
|
66
72
|
},
|
|
73
|
+
onGroupMessage(handler) {
|
|
74
|
+
return deps.router.registerMessage(id, handler, 'group');
|
|
75
|
+
},
|
|
76
|
+
onPrivateMessage(handler) {
|
|
77
|
+
return deps.router.registerMessage(id, handler, 'private');
|
|
78
|
+
},
|
|
67
79
|
onNotice(options, handler) {
|
|
68
80
|
return deps.router.registerNotice({
|
|
69
81
|
pluginId: id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/plugin/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/plugin/context.ts"],"names":[],"mappings":"AA8BA,MAAM,UAAU,mBAAmB,CAC/B,UAA8C,EAC9C,IAAuB;IAEvB,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAA;IAEjC,OAAO;QACH,EAAE;QACF,MAAM,EAAE,IAAI,CAAC,MAA2B;QACxC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QAEf,QAAQ,EAAE;YACN,QAAQ,CACJ,OAAoC,EACpC,OAGC;gBAED,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;oBAC/B,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;wBAC7B,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;wBAC9B,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;wBAC9B,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;wBAChC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;wBAChC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;wBACpC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;wBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;wBACtC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;wBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;wBACtC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;wBAC5B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;wBAC5B,CAAC,CAAC,EAAE,CAAC;oBACT,OAAO;iBACV,CAAC,CAAA;YACN,CAAC;YACD,KAAK,CACD,OAAyC,EACzC,KAA6C;gBAE7C,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACnC;oBACI,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;wBAC7B,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;wBAC9B,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;wBAC9B,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;wBAChC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;wBAChC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;wBACpC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;wBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;wBACtC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;wBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;wBACtC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;wBAC5B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;wBAC5B,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;wBAC7B,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;wBAC9B,CAAC,CAAC,EAAE,CAAC;iBACZ,EACD,KAAK,CACR,CAAA;YACL,CAAC;YACD,IAAI;gBACA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;YACrC,CAAC;SACJ;QAED,MAAM,EAAE;YACJ,SAAS,CAAC,OAAO;gBACb,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YACnD,CAAC;YACD,cAAc,CAAC,OAAO;gBAClB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAC9B,EAAE,EACF,OAAyB,EACzB,OAAO,CACV,CAAA;YACL,CAAC;YACD,gBAAgB,CAAC,OAAO;gBACpB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAC9B,EAAE,EACF,OAAyB,EACzB,SAAS,CACZ,CAAA;YACL,CAAC;YACD,QAAQ,CAAC,OAAO,EAAE,OAAO;gBACrB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;oBAC9B,QAAQ,EAAE,EAAE;oBACZ,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;wBAChC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;wBACpC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;wBAC7B,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;wBAC9B,CAAC,CAAC,EAAE,CAAC;oBACT,OAAO;iBACV,CAAC,CAAA;YACN,CAAC;YACD,SAAS,CAAC,OAAO,EAAE,OAAO;gBACtB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;oBAC/B,QAAQ,EAAE,EAAE;oBACZ,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;wBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;wBACtC,CAAC,CAAC,EAAE,CAAC;oBACT,OAAO;iBACV,CAAC,CAAA;YACN,CAAC;SACJ;QAED,WAAW,EAAE;YACT,GAAG,CAAC,OAAO,EAAE,OAAO;gBAChB,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;oBAClC,QAAQ,EAAE,EAAE;oBACZ,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;wBAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;wBACxB,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;wBAChC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;wBACpC,CAAC,CAAC,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;wBAC9B,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;wBAChC,CAAC,CAAC,EAAE,CAAC;oBACT,OAAO;iBACV,CAAC,CAAA;YACN,CAAC;SACJ;KACJ,CAAA;AACL,CAAC"}
|
|
@@ -5,7 +5,7 @@ type LoaderLogger = Pick<Logger, 'warn' | 'error'> & {
|
|
|
5
5
|
info?: Logger['info'] | undefined;
|
|
6
6
|
};
|
|
7
7
|
export interface LocalPluginLoaderOptions {
|
|
8
|
-
/**
|
|
8
|
+
/** Rebuild local plugins that have a build script on every load. Defaults to true. */
|
|
9
9
|
autoBuild?: boolean | undefined;
|
|
10
10
|
/** Timeout for a single local plugin build. Defaults to 120 seconds. */
|
|
11
11
|
buildTimeoutMs?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAGlD,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,KAAK,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CACpC,CAAA;AAED,MAAM,WAAW,wBAAwB;IACrC,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAGlD,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,KAAK,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CACpC,CAAA;AAED,MAAM,WAAW,wBAAwB;IACrC,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,6CAA6C;IAC7C,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CACjC;AA+DD,wBAAsB,wBAAwB,CAC1C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,GAClC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAuDhC;AAED,wBAAsB,gBAAgB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,EACjC,OAAO,GAAE,wBAA6B,GACvC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAiEhC"}
|
|
@@ -3,7 +3,7 @@ import { join, resolve } from 'node:path';
|
|
|
3
3
|
import { pathToFileURL } from 'node:url';
|
|
4
4
|
import fg from 'fast-glob';
|
|
5
5
|
import { collectPluginExports } from './exports.js';
|
|
6
|
-
import {
|
|
6
|
+
import { readJsonFile } from './install-dir.js';
|
|
7
7
|
import { NpmCliRunner } from './npm-runner.js';
|
|
8
8
|
const DEFAULT_BUILD_TIMEOUT_MS = 120_000;
|
|
9
9
|
function isRecord(value) {
|
|
@@ -23,25 +23,12 @@ async function readBuildScript(directory) {
|
|
|
23
23
|
? build
|
|
24
24
|
: undefined;
|
|
25
25
|
}
|
|
26
|
-
async function readManagedDirectories(root) {
|
|
27
|
-
try {
|
|
28
|
-
const state = await readInstallState(root);
|
|
29
|
-
return new Set(Object.values(state.packages).map((record) => record.dir));
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
26
|
async function buildLocalPlugin(directory, name, logger, runner, timeoutMs) {
|
|
36
|
-
if ((await readBuildScript(directory)) === undefined) {
|
|
37
|
-
logger?.warn(`skipping local plugin ${name}: dist directory not found and package.json has no build script`);
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
27
|
if (!(await directoryExists(join(directory, 'node_modules')))) {
|
|
41
|
-
logger?.warn(`
|
|
42
|
-
return
|
|
28
|
+
logger?.warn(`cannot build local plugin ${name}: node_modules is missing; run npm install --prefix ${directory}`);
|
|
29
|
+
return 'missing-node-modules';
|
|
43
30
|
}
|
|
44
|
-
logger?.info?.(`building local plugin ${name}
|
|
31
|
+
logger?.info?.(`building local plugin ${name}`);
|
|
45
32
|
try {
|
|
46
33
|
await runner.run(['run', 'build'], {
|
|
47
34
|
cwd: directory,
|
|
@@ -50,11 +37,10 @@ async function buildLocalPlugin(directory, name, logger, runner, timeoutMs) {
|
|
|
50
37
|
}
|
|
51
38
|
catch (error) {
|
|
52
39
|
logger?.error(`failed to build local plugin ${name}`, error);
|
|
53
|
-
|
|
54
|
-
return false;
|
|
40
|
+
return 'failed';
|
|
55
41
|
}
|
|
56
42
|
logger?.info?.(`built local plugin ${name}`);
|
|
57
|
-
return
|
|
43
|
+
return 'built';
|
|
58
44
|
}
|
|
59
45
|
export async function loadPluginsFromDirectory(directory, logger) {
|
|
60
46
|
const absolute = resolve(directory);
|
|
@@ -73,7 +59,12 @@ export async function loadPluginsFromDirectory(directory, logger) {
|
|
|
73
59
|
for (const file of files.sort()) {
|
|
74
60
|
let imported;
|
|
75
61
|
try {
|
|
76
|
-
|
|
62
|
+
const info = await stat(file).catch(() => null);
|
|
63
|
+
const url = pathToFileURL(file);
|
|
64
|
+
if (info !== null) {
|
|
65
|
+
url.searchParams.set('v', String(info.mtimeMs));
|
|
66
|
+
}
|
|
67
|
+
imported = await import(url.href);
|
|
77
68
|
}
|
|
78
69
|
catch (error) {
|
|
79
70
|
logger?.error(`failed to import plugin file: ${file}`, error);
|
|
@@ -99,18 +90,7 @@ export async function loadLocalPlugins(root, logger, options = {}) {
|
|
|
99
90
|
return [];
|
|
100
91
|
const entries = (await readdir(absolute, { withFileTypes: true })).sort((a, b) => a.name.localeCompare(b.name));
|
|
101
92
|
const plugins = [];
|
|
102
|
-
|
|
103
|
-
let managed = new Set();
|
|
104
|
-
if (autoBuild) {
|
|
105
|
-
const directories = await readManagedDirectories(absolute);
|
|
106
|
-
if (directories === null) {
|
|
107
|
-
logger?.warn('cannot read plugin install state; automatic local plugin build is disabled');
|
|
108
|
-
autoBuild = false;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
managed = directories;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
93
|
+
const autoBuild = options.autoBuild !== false;
|
|
114
94
|
const runner = options.runner ?? new NpmCliRunner();
|
|
115
95
|
const timeoutMs = options.buildTimeoutMs ?? DEFAULT_BUILD_TIMEOUT_MS;
|
|
116
96
|
for (const entry of entries) {
|
|
@@ -120,24 +100,29 @@ export async function loadLocalPlugins(root, logger, options = {}) {
|
|
|
120
100
|
continue;
|
|
121
101
|
const directory = join(absolute, entry.name);
|
|
122
102
|
const dist = join(directory, 'dist');
|
|
103
|
+
const hasBuildScript = (await readBuildScript(directory)) !== undefined;
|
|
123
104
|
let distInfo = await stat(dist).catch(() => null);
|
|
124
|
-
if (
|
|
125
|
-
|
|
126
|
-
logger?.warn(`skipping local plugin ${entry.name}: dist directory not found`);
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
if (managed.has(entry.name)) {
|
|
130
|
-
logger?.warn(`skipping local plugin ${entry.name}: dist directory not found (installed package is expected to include dist)`);
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
const built = await buildLocalPlugin(directory, entry.name, logger, runner, timeoutMs);
|
|
134
|
-
if (!built)
|
|
135
|
-
continue;
|
|
105
|
+
if (autoBuild && hasBuildScript) {
|
|
106
|
+
const outcome = await buildLocalPlugin(directory, entry.name, logger, runner, timeoutMs);
|
|
136
107
|
distInfo = await stat(dist).catch(() => null);
|
|
137
108
|
if (!distInfo?.isDirectory()) {
|
|
138
|
-
|
|
109
|
+
const reason = outcome === 'built'
|
|
110
|
+
? 'build finished but dist directory not found'
|
|
111
|
+
: outcome === 'missing-node-modules'
|
|
112
|
+
? 'node_modules is missing and dist directory not found'
|
|
113
|
+
: 'build failed and dist directory not found';
|
|
114
|
+
logger?.warn(`skipping local plugin ${entry.name}: ${reason}`);
|
|
139
115
|
continue;
|
|
140
116
|
}
|
|
117
|
+
if (outcome !== 'built') {
|
|
118
|
+
logger?.warn(`using existing dist for local plugin ${entry.name}: rebuild failed`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else if (!distInfo?.isDirectory()) {
|
|
122
|
+
logger?.warn(hasBuildScript
|
|
123
|
+
? `skipping local plugin ${entry.name}: dist directory not found and automatic build is disabled`
|
|
124
|
+
: `skipping local plugin ${entry.name}: dist directory not found and package.json has no build script`);
|
|
125
|
+
continue;
|
|
141
126
|
}
|
|
142
127
|
plugins.push(...(await loadPluginsFromDirectory(dist, logger)));
|
|
143
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/core/plugin/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,MAAM,WAAW,CAAA;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/core/plugin/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,MAAM,WAAW,CAAA;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAA;AAgB9D,MAAM,wBAAwB,GAAG,OAAO,CAAA;AAExC,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC/E,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY;IACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAE/C,OAAO,IAAI,EAAE,WAAW,EAAE,IAAI,KAAK,CAAA;AACvC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,SAAiB;IAC5C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CACtE,GAAG,EAAE,CAAC,SAAS,CAClB,CAAA;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAA;IAE1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACvD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAA;AACnB,CAAC;AAID,KAAK,UAAU,gBAAgB,CAC3B,SAAiB,EACjB,IAAY,EACZ,MAAgC,EAChC,MAAiB,EACjB,SAAiB;IAEjB,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,EAAE,IAAI,CACR,6BAA6B,IAAI,uDAAuD,SAAS,EAAE,CACtG,CAAA;QACD,OAAO,sBAAsB,CAAA;IACjC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAA;IAE/C,IAAI,CAAC;QACD,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAC/B,GAAG,EAAE,SAAS;YACd,SAAS;SACZ,CAAC,CAAA;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,EAAE,KAAK,CAAC,gCAAgC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;QAC5D,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAA;IAE5C,OAAO,OAAO,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,SAAiB,EACjB,MAAiC;IAEjC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAEnD,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,8BAA8B,EAAE;QACnD,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,CAAC;KAC1E,CAAC,CAAA;IAEF,MAAM,OAAO,GAA0B,EAAE,CAAA;IACzC,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9B,IAAI,QAAiB,CAAA;QAErB,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;YAC/C,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YAE/B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YACnD,CAAC;YAED,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,EAAE,KAAK,CAAC,iCAAiC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;YAC7D,OAAO,CAAC,IAAI,CACR,oBAAoB,IAAI,KACpB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACzD,EAAE,CACL,CAAA;YACD,SAAQ;QACZ,CAAC;QAED,OAAO,CAAC,IAAI,CACR,GAAG,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE;YACpC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACnB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBACrB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACzB,CAAC;SACJ,CAAC,CACL,CAAA;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,OAAO,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,IAAY,EACZ,MAAiC,EACjC,OAAO,GAA6B,EAAE;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAEnD,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE;QAAE,OAAO,EAAE,CAAA;IAEnC,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CACnE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CACzC,CAAA;IACD,MAAM,OAAO,GAA0B,EAAE,CAAA;IAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAA;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,YAAY,EAAE,CAAA;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAA;IAEpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QAChE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,SAAQ;QAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACpC,MAAM,cAAc,GAAG,CAAC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,SAAS,CAAA;QACvE,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QAEjD,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAClC,SAAS,EACT,KAAK,CAAC,IAAI,EACV,MAAM,EACN,MAAM,EACN,SAAS,CACZ,CAAA;YAED,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;YAE7C,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;gBAC3B,MAAM,MAAM,GACR,OAAO,KAAK,OAAO;oBACf,CAAC,CAAC,6CAA6C;oBAC/C,CAAC,CAAC,OAAO,KAAK,sBAAsB;wBAClC,CAAC,CAAC,sDAAsD;wBACxD,CAAC,CAAC,2CAA2C,CAAA;gBAEvD,MAAM,EAAE,IAAI,CAAC,yBAAyB,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAA;gBAC9D,SAAQ;YACZ,CAAC;YAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACtB,MAAM,EAAE,IAAI,CACR,wCAAwC,KAAK,CAAC,IAAI,kBAAkB,CACvE,CAAA;YACL,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,IAAI,CACR,cAAc;gBACV,CAAC,CAAC,yBAAyB,KAAK,CAAC,IAAI,4DAA4D;gBACjG,CAAC,CAAC,yBAAyB,KAAK,CAAC,IAAI,iEAAiE,CAC7G,CAAA;YACD,SAAQ;QACZ,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,OAAO,OAAO,CAAA;AAClB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OneBotMessageEvent, OneBotNoticeEvent, OneBotRequestEvent, OutgoingMessage, SnowLumaEvent } from '@snowluma/sdk';
|
|
1
|
+
import type { OneBotGroupMessageEvent, OneBotMessageEvent, OneBotNoticeEvent, OneBotPrivateMessageEvent, OneBotRequestEvent, OutgoingMessage, SnowLumaEvent } from '@snowluma/sdk';
|
|
2
2
|
import type { z } from 'zod';
|
|
3
3
|
import type { BotApi } from '../api.js';
|
|
4
4
|
import type { TaskQueue } from '../dispatch/task-queue.js';
|
|
@@ -9,6 +9,8 @@ import type { Permission } from '../security/permission.js';
|
|
|
9
9
|
import type { SessionStore } from '../storage/session.js';
|
|
10
10
|
import type { CommandParamArgs } from './command-params.js';
|
|
11
11
|
export type EventType = 'message' | 'notice' | 'request' | 'meta';
|
|
12
|
+
export type MessageType = 'group' | 'private';
|
|
13
|
+
export type MessageTypeFilter = MessageType | readonly MessageType[];
|
|
12
14
|
export interface CommandMatch {
|
|
13
15
|
command: string;
|
|
14
16
|
prefix: string;
|
|
@@ -19,6 +21,7 @@ export interface CommandInfo {
|
|
|
19
21
|
name: string;
|
|
20
22
|
aliases: string[];
|
|
21
23
|
permission: Permission;
|
|
24
|
+
messageTypes: MessageType[];
|
|
22
25
|
description?: string | undefined;
|
|
23
26
|
usage?: string | undefined;
|
|
24
27
|
pluginId: string;
|
|
@@ -33,6 +36,8 @@ export interface EventContext<TEvent extends SnowLumaEvent = SnowLumaEvent> {
|
|
|
33
36
|
}
|
|
34
37
|
export type CommandHandler<TEvent extends OneBotMessageEvent = OneBotMessageEvent, TArgs extends unknown[] = []> = (event: TEvent, context: EventContext<TEvent>, match: CommandMatch, ...args: TArgs) => void | Promise<void>;
|
|
35
38
|
export type MessageHandler = (event: OneBotMessageEvent, context: EventContext<OneBotMessageEvent>) => void | Promise<void>;
|
|
39
|
+
export type GroupMessageHandler = (event: OneBotGroupMessageEvent, context: EventContext<OneBotGroupMessageEvent>) => void | Promise<void>;
|
|
40
|
+
export type PrivateMessageHandler = (event: OneBotPrivateMessageEvent, context: EventContext<OneBotPrivateMessageEvent>) => void | Promise<void>;
|
|
36
41
|
export type NoticeHandler = (event: OneBotNoticeEvent, context: EventContext<OneBotNoticeEvent>) => void | Promise<void>;
|
|
37
42
|
export type RequestHandler = (event: OneBotRequestEvent, context: EventContext<OneBotRequestEvent>) => void | Promise<void>;
|
|
38
43
|
export type PluginMiddleware = (event: SnowLumaEvent, context: EventContext, next: () => Promise<void>) => void | Promise<void>;
|
|
@@ -41,6 +46,7 @@ export interface CommandOptions<Declaration extends string = string> {
|
|
|
41
46
|
aliases?: string[] | undefined;
|
|
42
47
|
prefixes?: string[] | undefined;
|
|
43
48
|
permission?: Permission | undefined;
|
|
49
|
+
messageType?: MessageTypeFilter | undefined;
|
|
44
50
|
description?: string | undefined;
|
|
45
51
|
params?: Declaration | undefined;
|
|
46
52
|
}
|
|
@@ -68,6 +74,8 @@ export interface CommandRegistrar extends CommandGroupRegistrar {
|
|
|
68
74
|
}
|
|
69
75
|
export interface EventRegistrar {
|
|
70
76
|
onMessage(handler: MessageHandler): () => void;
|
|
77
|
+
onGroupMessage(handler: GroupMessageHandler): () => void;
|
|
78
|
+
onPrivateMessage(handler: PrivateMessageHandler): () => void;
|
|
71
79
|
onNotice(options: NoticeOptions, handler: NoticeHandler): () => void;
|
|
72
80
|
onRequest(options: RequestOptions, handler: RequestHandler): () => void;
|
|
73
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/plugin/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/plugin/types.ts"],"names":[],"mappings":"AA6PA,MAAM,UAAU,YAAY,CACxB,UAA6C;IAE7C,OAAO,UAAU,CAAA;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Ci as t,Ei as n,_a as r,ai as i,c as a,ci as o,d as s,f as c,li as l,ni as u,p as d,qi as f,r as p,ui as m,zi as h}from"./api-Bm2KUKXH.js";var g={class:`result`},_=c(m({__name:`ActionsView`,setup(c){let m=f(`get_login_info`),_=f(`{}`),v=f(``),y=f(!1),b=f(!0),x=async()=>{let e={};if(_.value.trim().length>0&&_.value.trim()!==`{}`)try{e=JSON.parse(_.value)}catch{d.error(`params 必须是合法 JSON`);return}y.value=!0;try{let t=await p(`/api/actions`,{action:m.value,params:e});v.value=JSON.stringify(t.result,void 0,2)}catch(e){s(e)}finally{y.value=!1}};return t(()=>{a().then(e=>{b.value=e.runtime===null}).catch(()=>{b.value=!0})}),(t,a)=>{let s=e(`el-alert`),c=e(`el-input`),d=e(`el-form-item`),f=e(`el-button`),p=e(`el-form`),S=e(`el-divider`),C=e(`el-card`);return n(),i(`div`,null,[l(s,{title:`直接向 OneBot 调用任意 action。此功能等同完全特权接口,请谨慎使用。`,type:`warning`,closable:!1,class:`block`}),l(C,{class:`block`},{default:h(()=>[l(p,{"label-width":`100px`,size:`small`},{default:h(()=>[l(d,{label:`action`},{default:h(()=>[l(c,{modelValue:m.value,"onUpdate:modelValue":a[0]||=e=>m.value=e,placeholder:`如 get_login_info / send_private_msg`,style:{width:`320px`}},null,8,[`modelValue`])]),_:1}),l(d,{label:`params (JSON)`},{default:h(()=>[l(c,{modelValue:_.value,"onUpdate:modelValue":a[1]||=e=>_.value=e,type:`textarea`,rows:5,spellcheck:`false`,placeholder:`{}`},null,8,[`modelValue`])]),_:1}),l(d,null,{default:h(()=>[l(f,{type:`primary`,loading:y.value,disabled:b.value,onClick:x},{default:h(()=>[...a[2]||=[o(` 调用 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1}),l(S,null,{default:h(()=>[...a[3]||=[o(`结果`,-1)]]),_:1}),u(`pre`,g,r(v.value),1)]),_:1})])}}}),[[`__scopeId`,`data-v-ceeaf662`]]);export{_ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Ci as t,Ei as n,Oi as r,Zr as i,_a as a,ai as o,ci as s,d as c,f as l,i as u,ii as d,li as f,n as p,ni as m,p as h,qi as g,r as _,ri as v,ui as y,zi as b}from"./api-Bm2KUKXH.js";var x={class:`block`},S={class:`issues`},C=l(y({__name:`ConfigView`,setup(l){let y=g(`form`),C=g({url:``,accessToken:``,roles:{superadmin:[],admin:[]},message:{charThreshold:50,lineThreshold:3},webui:{enabled:!1,host:`127.0.0.1`,port:8787,username:``,password:``,sessionTtlHours:12,trustProxy:!1},installer:{enabled:!1,registry:`https://registry.npmjs.org/`,allowedPackages:[],allowScripts:!1,timeoutMs:12e4}}),w=g(``),T=g({path:``,hash:``,accessTokenSet:!1,webuiPasswordSet:!1}),E=g(``),D=g([]),O=g(!1),k=()=>{let e=JSON.parse(JSON.stringify(C.value)),t=e.webui;return w.value===``?delete t.password:t.password=w.value,e.accessToken===``&&delete e.accessToken,e},A=()=>{E.value=JSON.stringify(k(),null,4)},j=()=>{try{let e=JSON.parse(E.value),t=e.webui??{};typeof t.password==`string`&&(w.value=t.password===``?``:`00000000`),typeof e.accessToken==`string`&&e.accessToken===``?e.accessToken=``:typeof e.accessToken==`string`&&(e.accessToken=`00000000`),C.value=e,h.success(`已应用到表单`)}catch(e){h.error(`JSON 格式错误`),console.warn(e)}},M=async e=>{let t=await _(`/api/config/validate`,{config:e});return D.value=t.issues,t.ok},N=async()=>{O.value=!0;try{await M(k())&&h.success(`校验通过`)}catch(e){c(e)}finally{O.value=!1}},P=async()=>{let e;try{e=JSON.parse(E.value)}catch{h.error(`JSON 格式错误`);return}await I(e,w.value)},F=async()=>{let e=k();w.value=e.webui.password,await I(e,w.value),D.value=[]},I=async(e,t)=>{O.value=!0;try{if(!await M(e)&&D.value.length>0){h.error(`校验失败`);return}let t=await u(`/api/config`,{config:e,baseHash:T.value.hash});if(!t.ok){h.error(t.error??`保存失败`);return}h.success(`已保存并重启运行时`),await L()}catch(e){c(e)}finally{O.value=!1}},L=async()=>{try{let e=await p(`/api/config`);C.value=e.config,T.value=e.meta,w.value=(e.meta.webuiPasswordSet&&e.config.webui.password,``),E.value=JSON.stringify(e.config,null,4)}catch(e){c(e)}},R=e=>e.join(`, `);function z(e,t,n,r){let i=n.split(/[,,]/).map(e=>e.trim()).filter(e=>e.length>0);e[t]=r?i.map(r):i}return t(()=>void L()),(t,c)=>{let l=e(`el-divider`),u=e(`el-input`),p=e(`el-form-item`),h=e(`el-switch`),g=e(`el-input-number`),_=e(`el-space`),k=e(`el-button`),M=e(`el-form`),I=e(`el-tab-pane`),L=e(`el-tabs`),B=e(`el-alert`);return n(),o(`div`,null,[f(L,{modelValue:y.value,"onUpdate:modelValue":c[19]||=e=>y.value=e},{default:b(()=>[f(I,{label:`常用设置`,name:`form`},{default:b(()=>[f(M,{"label-width":`140px`,size:`small`,class:`form`},{default:b(()=>[f(l,{"content-position":`left`},{default:b(()=>[...c[20]||=[s(`连接`,-1)]]),_:1}),f(p,{label:`ws url`},{default:b(()=>[f(u,{modelValue:C.value.url,"onUpdate:modelValue":c[0]||=e=>C.value.url=e},null,8,[`modelValue`])]),_:1}),f(p,{label:`accessToken`},{default:b(()=>[f(u,{modelValue:C.value.accessToken,"onUpdate:modelValue":c[1]||=e=>C.value.accessToken=e,placeholder:T.value.accessTokenSet?`留空保持不变`:`未设置`},null,8,[`modelValue`,`placeholder`])]),_:1}),f(l,{"content-position":`left`},{default:b(()=>[...c[21]||=[s(`WebUI`,-1)]]),_:1}),f(p,{label:`enabled`},{default:b(()=>[f(h,{modelValue:C.value.webui.enabled,"onUpdate:modelValue":c[2]||=e=>C.value.webui.enabled=e},null,8,[`modelValue`])]),_:1}),f(p,{label:`host / port`},{default:b(()=>[f(_,null,{default:b(()=>[f(u,{modelValue:C.value.webui.host,"onUpdate:modelValue":c[3]||=e=>C.value.webui.host=e,style:{width:`160px`}},null,8,[`modelValue`]),f(g,{modelValue:C.value.webui.port,"onUpdate:modelValue":c[4]||=e=>C.value.webui.port=e,min:1,max:65535},null,8,[`modelValue`])]),_:1})]),_:1}),f(p,{label:`username`},{default:b(()=>[f(u,{modelValue:C.value.webui.username,"onUpdate:modelValue":c[5]||=e=>C.value.webui.username=e,style:{width:`200px`}},null,8,[`modelValue`])]),_:1}),f(p,{label:`password`},{default:b(()=>[f(u,{modelValue:w.value,"onUpdate:modelValue":c[6]||=e=>w.value=e,"show-password":``,placeholder:T.value.webuiPasswordSet?`留空保持不变`:`未设置`,style:{width:`240px`}},null,8,[`modelValue`,`placeholder`])]),_:1}),f(p,{label:`sessionTtlHours`},{default:b(()=>[f(g,{modelValue:C.value.webui.sessionTtlHours,"onUpdate:modelValue":c[7]||=e=>C.value.webui.sessionTtlHours=e,min:1,max:720},null,8,[`modelValue`])]),_:1}),f(p,{label:`trustProxy`},{default:b(()=>[f(h,{modelValue:C.value.webui.trustProxy,"onUpdate:modelValue":c[8]||=e=>C.value.webui.trustProxy=e},null,8,[`modelValue`])]),_:1}),f(l,{"content-position":`left`},{default:b(()=>[...c[22]||=[s(`消息聚合`,-1)]]),_:1}),f(p,{label:`charThreshold`},{default:b(()=>[f(g,{modelValue:C.value.message.charThreshold,"onUpdate:modelValue":c[9]||=e=>C.value.message.charThreshold=e,min:1},null,8,[`modelValue`])]),_:1}),f(p,{label:`lineThreshold`},{default:b(()=>[f(g,{modelValue:C.value.message.lineThreshold,"onUpdate:modelValue":c[10]||=e=>C.value.message.lineThreshold=e,min:1},null,8,[`modelValue`])]),_:1}),f(l,{"content-position":`left`},{default:b(()=>[...c[23]||=[s(`安装器`,-1)]]),_:1}),f(p,{label:`enabled`},{default:b(()=>[f(h,{modelValue:C.value.installer.enabled,"onUpdate:modelValue":c[11]||=e=>C.value.installer.enabled=e},null,8,[`modelValue`])]),_:1}),f(p,{label:`registry`},{default:b(()=>[f(u,{modelValue:C.value.installer.registry,"onUpdate:modelValue":c[12]||=e=>C.value.installer.registry=e},null,8,[`modelValue`])]),_:1}),f(p,{label:`allowedPackages`},{default:b(()=>[f(u,{"model-value":R(C.value.installer.allowedPackages),"onUpdate:modelValue":c[13]||=e=>z(C.value.installer,`allowedPackages`,e)},null,8,[`model-value`])]),_:1}),f(p,{label:`allowScripts`},{default:b(()=>[f(h,{modelValue:C.value.installer.allowScripts,"onUpdate:modelValue":c[14]||=e=>C.value.installer.allowScripts=e},null,8,[`modelValue`])]),_:1}),f(p,{label:`timeoutMs`},{default:b(()=>[f(g,{modelValue:C.value.installer.timeoutMs,"onUpdate:modelValue":c[15]||=e=>C.value.installer.timeoutMs=e,min:1e3,max:6e5},null,8,[`modelValue`])]),_:1}),f(l,{"content-position":`left`},{default:b(()=>[...c[24]||=[s(`角色`,-1)]]),_:1}),f(p,{label:`superadmin`},{default:b(()=>[f(u,{"model-value":R(C.value.roles.superadmin),placeholder:`逗号分隔的 QQ 号`,"onUpdate:modelValue":c[16]||=e=>z(C.value.roles,`superadmin`,e,Number)},null,8,[`model-value`])]),_:1}),f(p,{label:`admin`},{default:b(()=>[f(u,{"model-value":R(C.value.roles.admin),placeholder:`逗号分隔的 QQ 号`,"onUpdate:modelValue":c[17]||=e=>z(C.value.roles,`admin`,e,Number)},null,8,[`model-value`])]),_:1}),f(p,null,{default:b(()=>[f(_,null,{default:b(()=>[f(k,{type:`primary`,loading:O.value,onClick:F},{default:b(()=>[...c[25]||=[s(` 校验并保存 `,-1)]]),_:1},8,[`loading`]),f(k,{onClick:N},{default:b(()=>[...c[26]||=[s(` 仅校验 `,-1)]]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),f(I,{label:`JSON 编辑器`,name:`json`},{default:b(()=>[f(u,{modelValue:E.value,"onUpdate:modelValue":c[18]||=e=>E.value=e,type:`textarea`,rows:24,spellcheck:`false`,class:`json-editor`},null,8,[`modelValue`]),m(`div`,x,[f(_,null,{default:b(()=>[f(k,{onClick:A},{default:b(()=>[...c[27]||=[s(`从表单生成`,-1)]]),_:1}),f(k,{onClick:j},{default:b(()=>[...c[28]||=[s(`应用到表单`,-1)]]),_:1}),f(k,{type:`primary`,loading:O.value,onClick:P},{default:b(()=>[...c[29]||=[s(` 校验并保存 `,-1)]]),_:1},8,[`loading`])]),_:1})])]),_:1})]),_:1},8,[`modelValue`]),D.value.length>0?(n(),v(B,{key:0,type:`error`,closable:!1,class:`block`},{default:b(()=>[m(`ul`,S,[(n(!0),o(i,null,r(D.value,(e,t)=>(n(),o(`li`,{key:t},a(e.path?e.path+`: `:``)+a(e.message),1))),128))])]),_:1})):d(``,!0)])}}}),[[`__scopeId`,`data-v-3e321bed`]]);export{C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,Ai as t,Ci as n,Ei as r,L as i,M as a,_a as o,a as s,ai as c,c as l,ci as u,d,f,ii as p,l as m,li as h,ni as g,qi as _,r as v,ri as y,s as b,ta as x,ti as S,u as C,ui as w,wi as T,xt as E,zi as D}from"./api-Bm2KUKXH.js";var O={class:`error-text`},ee={class:`stat`},te={class:`chip sky`},k={class:`value small`},A={class:`sub`},j={class:`stat`},M={class:`chip emerald`},N={class:`value`},P={class:`sub`},F={class:`stat`},I={class:`chip violet`},L={class:`value`},R={class:`unit`},z={class:`sub`},B={class:`stat`},V={class:`chip amber`},H={class:`value`},U={class:`unit`},W={class:`sub`},G={key:0,class:`sub warn-text`},K=f(w({__name:`DashboardView`,setup(f){let w=_(null),K=_([]),q=_([]),J=_(!1),Y=S(()=>w.value?.runtime??null),X=S(()=>Y.value?C(Y.value.uptimeMs):`-`),Z=async()=>{try{w.value=await l()}catch(e){d(e)}},ne=async()=>{J.value=!0;try{await v(`/api/runtime/restart`),await Z()}catch(e){d(e)}finally{J.value=!1}},re=async()=>{try{await v(`/api/runtime/pause`),await Z()}catch(e){d(e)}},ie=async()=>{try{await v(`/api/runtime/resume`),await Z()}catch(e){d(e)}},Q=null,$=null;return n(async()=>{await Z(),K.value=await b().catch(()=>[]),Q=s(`/api/events/stream?limit=20`,e=>{q.value.unshift(e),q.value.length>30&&q.value.pop()});let e=setInterval(()=>void Z(),1e4);$=()=>clearInterval(e)}),T(()=>{Q?.(),$?.()}),(n,s)=>{let l=t(`el-alert`),d=t(`el-icon`),f=t(`el-card`),_=t(`el-col`),v=t(`el-row`),b=t(`el-button`),S=t(`el-space`),C=t(`el-table-column`),T=t(`el-table`);return r(),c(`div`,null,[w.value?.startupError?(r(),y(l,{key:0,title:`运行时启动失败`,type:`error`,closable:!1,class:`block`},{default:D(()=>[g(`pre`,O,o(w.value.startupError),1)]),_:1})):w.value?.restarting?(r(),y(l,{key:1,title:`运行时正在重启…`,type:`warning`,closable:!1,class:`block`})):p(``,!0),h(v,{gutter:16,class:`block`},{default:D(()=>[h(_,{span:6},{default:D(()=>[h(f,{class:`stat-card`},{default:D(()=>[g(`div`,ee,[g(`div`,te,[h(d,{size:18},{default:D(()=>[h(x(e))]),_:1})]),g(`div`,null,[s[0]||=g(`p`,{class:`label`},`连接状态`,-1),g(`p`,k,o(Y.value?.connected?`已连接`:`未连接`),1),g(`p`,A,o(Y.value?.login?`${Y.value.login.nickname} · ${Y.value.login.userId}`:`—`),1)])])]),_:1})]),_:1}),h(_,{span:6},{default:D(()=>[h(f,{class:`stat-card`},{default:D(()=>[g(`div`,j,[g(`div`,M,[h(d,{size:18},{default:D(()=>[h(x(E))]),_:1})]),g(`div`,null,[s[1]||=g(`p`,{class:`label`},`运行时长`,-1),g(`p`,N,o(X.value),1),g(`p`,P,` state: `+o(Y.value?.state??`—`)+` · gen `+o(Y.value?.generation??`—`),1)])])]),_:1})]),_:1}),h(_,{span:6},{default:D(()=>[h(f,{class:`stat-card`},{default:D(()=>[g(`div`,F,[g(`div`,I,[h(d,{size:18},{default:D(()=>[h(x(a))]),_:1})]),g(`div`,null,[s[2]||=g(`p`,{class:`label`},`插件`,-1),g(`p`,L,[u(o(Y.value?.counts.loadedPlugins??`—`),1),g(`span`,R,` / `+o(Y.value?.counts.plugins??`—`)+` 已加载`,1)]),g(`p`,z,` 启用 `+o(Y.value?.counts.enabledPlugins??`—`),1)])])]),_:1})]),_:1}),h(_,{span:6},{default:D(()=>[h(f,{class:`stat-card`},{default:D(()=>[g(`div`,B,[g(`div`,V,[h(d,{size:18},{default:D(()=>[h(x(i))]),_:1})]),g(`div`,null,[s[3]||=g(`p`,{class:`label`},`会话`,-1),g(`p`,H,[u(o(Y.value?.counts.sessions??`—`),1),g(`span`,U,` · `+o(Y.value?.counts.kvPlugins??`—`)+` KV 插件`,1)]),s[4]||=g(`p`,{class:`sub`},`session 记录数`,-1)])])]),_:1})]),_:1})]),_:1}),h(f,{class:`block`},{header:D(()=>[...s[5]||=[u(`运行时控制`,-1)]]),default:D(()=>[h(S,null,{default:D(()=>[h(b,{type:`danger`,loading:J.value,onClick:ne},{default:D(()=>[...s[6]||=[u(` 重启运行时 `,-1)]]),_:1},8,[`loading`]),h(b,{onClick:re},{default:D(()=>[...s[7]||=[u(`暂停`,-1)]]),_:1}),h(b,{onClick:ie},{default:D(()=>[...s[8]||=[u(`恢复`,-1)]]),_:1})]),_:1}),g(`p`,W,` version: `+o(w.value?.version??`-`)+` · paths: `+o(w.value?.paths.config),1),w.value?.webui.requiresProcessRestart?(r(),c(`p`,G,` webui 绑定配置已修改,需要重启进程生效。 `)):p(``,!0)]),_:1}),h(f,{class:`block`},{header:D(()=>[...s[9]||=[u(`命令列表`,-1)]]),default:D(()=>[h(T,{data:K.value,size:`small`,"max-height":`320`},{default:D(()=>[h(C,{prop:`id`,label:`命令`,width:`220`}),h(C,{prop:`pluginId`,label:`插件`,width:`180`}),h(C,{prop:`description`,label:`说明`})]),_:1},8,[`data`])]),_:1}),h(f,{class:`block`},{header:D(()=>[...s[10]||=[u(`最近事件`,-1)]]),default:D(()=>[h(T,{data:q.value,size:`small`,"max-height":`320`},{default:D(()=>[h(C,{label:`时间`,width:`170`},{default:D(({row:e})=>[u(o(x(m)(e.time)),1)]),_:1}),h(C,{prop:`type`,label:`类型`,width:`100`}),h(C,{prop:`summary`,label:`摘要`})]),_:1},8,[`data`])]),_:1})])}}}),[[`__scopeId`,`data-v-5b803405`]]);export{K as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Ci as t,Ei as n,Li as r,_a as i,a,ai as o,ci as s,d as c,f as l,l as u,li as d,n as f,ni as p,qi as m,ta as h,ui as g,wi as _,zi as v}from"./api-Bm2KUKXH.js";var y={class:`json`},b=l(g({__name:`EventsView`,setup(l){let g=m(``),b=m(`on`),x=m([]),S=m(!1),C=m(``),w=async()=>{try{let e=new URLSearchParams({limit:`300`});g.value&&e.set(`type`,g.value),x.value=await f(`/api/events?${e.toString()}`)}catch(e){c(e)}},T=null,E=()=>{T?.(),T=null,b.value===`on`&&(T=a(`/api/events/stream`,e=>{let t=e;g.value&&t.type!==g.value||(x.value.unshift(t),x.value.length>500&&(x.value.length=500))}))};r(b,E),r(g,async()=>{await w(),E()});let D=e=>{C.value=JSON.stringify(e.event,void 0,2),S.value=!0};return t(async()=>{await w(),E()}),_(()=>{T?.()}),(t,r)=>{let a=e(`el-option`),c=e(`el-select`),l=e(`el-button`),f=e(`el-space`),m=e(`el-card`),_=e(`el-table-column`),T=e(`el-table`),E=e(`el-drawer`);return n(),o(`div`,null,[d(m,{class:`block`},{default:v(()=>[d(f,null,{default:v(()=>[d(c,{modelValue:g.value,"onUpdate:modelValue":r[0]||=e=>g.value=e,placeholder:`全部类型`,style:{width:`140px`},clearable:``},{default:v(()=>[d(a,{label:`message`,value:`message`}),d(a,{label:`notice`,value:`notice`}),d(a,{label:`request`,value:`request`}),d(a,{label:`meta`,value:`meta`}),d(a,{label:`other`,value:`other`})]),_:1},8,[`modelValue`]),d(c,{modelValue:b.value,"onUpdate:modelValue":r[1]||=e=>b.value=e,style:{width:`90px`}},{default:v(()=>[d(a,{label:`实时`,value:`on`}),d(a,{label:`暂停`,value:`off`})]),_:1},8,[`modelValue`]),d(l,{type:`primary`,onClick:w},{default:v(()=>[...r[3]||=[s(`刷新`,-1)]]),_:1})]),_:1})]),_:1}),d(m,null,{default:v(()=>[d(T,{data:x.value,size:`small`,"max-height":`640`},{default:v(()=>[d(_,{label:`时间`,width:`170`},{default:v(({row:e})=>[s(i(h(u)(e.time)),1)]),_:1}),d(_,{prop:`type`,label:`类型`,width:`100`}),d(_,{prop:`summary`,label:`摘要`,"show-overflow-tooltip":``}),d(_,{label:`详情`,width:`90`},{default:v(({row:e})=>[d(l,{size:`small`,onClick:t=>D(e)},{default:v(()=>[...r[4]||=[s(` 查看 `,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])]),_:1}),d(E,{modelValue:S.value,"onUpdate:modelValue":r[2]||=e=>S.value=e,title:`事件详情`,size:`50%`},{default:v(()=>[p(`pre`,y,i(C.value),1)]),_:1},8,[`modelValue`])])}}}),[[`__scopeId`,`data-v-ffa9bb28`]]);export{b as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Bi as t,Ci as n,Ei as r,Jr as i,Oi as a,Zr as o,_a as s,ai as c,ci as l,d as u,f as d,i as f,ii as p,ji as m,l as h,li as g,n as _,p as v,qi as y,ri as b,t as x,ta as S,ui as C,zi as w}from"./api-Bm2KUKXH.js";var T=50,E=d(C({__name:`KvView`,setup(d){let C=y([]),E=y(``),D=y(``),O=y([]),k=y(0),A=y(1),j=y(!1),M=y(!1),N=y(``),P=y(``),F=y(`create`),I=async()=>{if(E.value){j.value=!0;try{let e=(A.value-1)*T,t=new URLSearchParams({pluginId:E.value,limit:String(T),offset:String(e)});D.value&&t.set(`prefix`,D.value);let n=await _(`/api/kv?${t.toString()}`);O.value=n.items,k.value=n.total}catch(e){u(e)}finally{j.value=!1}}},L=e=>{A.value=e,I()},R=()=>{F.value=`create`,N.value=``,P.value=`null`,M.value=!0},z=e=>{F.value=`update`,N.value=e.key,P.value=JSON.stringify(e.value,void 0,2),M.value=!0},B=async()=>{let e;try{e=JSON.parse(P.value)}catch{v.error(`不是合法的 JSON`);return}try{await f(`/api/kv`,{pluginId:E.value,key:N.value,value:e}),M.value=!1,await I()}catch(e){u(e)}},V=async e=>{try{await x(`/api/kv?pluginId=${encodeURIComponent(E.value)}&key=${encodeURIComponent(e.key)}`),await I()}catch(e){u(e)}},H=e=>typeof e==`string`?e.length>120?e.slice(0,120)+`…`:e:JSON.stringify(e)?.slice(0,120)??``;return n(async()=>{try{C.value=await _(`/api/kv/plugins`),C.value.length>0&&(E.value=C.value[0]?.pluginId??``,await I())}catch(e){u(e)}}),(n,u)=>{let d=e(`el-option`),f=e(`el-select`),_=e(`el-card`),v=e(`el-input`),y=e(`el-button`),x=e(`el-space`),U=e(`el-table-column`),W=e(`el-table`),G=e(`el-pagination`),K=e(`el-form-item`),q=e(`el-form`),J=e(`el-dialog`),Y=m(`loading`);return r(),c(`div`,null,[g(_,{class:`block`},{default:w(()=>[g(f,{modelValue:E.value,"onUpdate:modelValue":u[0]||=e=>E.value=e,placeholder:`选择插件`,style:{width:`240px`},onChange:I},{default:w(()=>[(r(!0),c(o,null,a(C.value,e=>(r(),b(d,{key:e.pluginId,label:`${e.pluginId} (${e.count})`,value:e.pluginId},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),E.value?(r(),b(_,{key:0},{default:w(()=>[g(x,{class:`block`},{default:w(()=>[g(v,{modelValue:D.value,"onUpdate:modelValue":u[1]||=e=>D.value=e,placeholder:`key 前缀过滤`,style:{width:`200px`},onKeyup:i(I,[`enter`])},null,8,[`modelValue`]),g(y,{onClick:I},{default:w(()=>[...u[6]||=[l(`过滤`,-1)]]),_:1}),g(y,{type:`primary`,onClick:R},{default:w(()=>[...u[7]||=[l(`新增 KV`,-1)]]),_:1})]),_:1}),t((r(),b(W,{data:O.value,size:`small`},{default:w(()=>[g(U,{prop:`key`,label:`Key`,"show-overflow-tooltip":``}),g(U,{label:`Value`,"show-overflow-tooltip":``},{default:w(({row:e})=>[l(s(H(e.value)),1)]),_:1}),g(U,{label:`更新时间`,width:`180`},{default:w(({row:e})=>[l(s(S(h)(e.updatedAt)),1)]),_:1}),g(U,{label:`操作`,width:`150`},{default:w(({row:e})=>[g(y,{size:`small`,onClick:t=>z(e)},{default:w(()=>[...u[8]||=[l(`编辑`,-1)]]),_:1},8,[`onClick`]),g(y,{size:`small`,type:`danger`,onClick:t=>V(e)},{default:w(()=>[...u[9]||=[l(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[Y,j.value]]),g(G,{class:`pager`,layout:`total, prev, pager, next`,total:k.value,"page-size":T,"current-page":A.value,onCurrentChange:L},null,8,[`total`,`current-page`])]),_:1})):p(``,!0),g(J,{modelValue:M.value,"onUpdate:modelValue":u[5]||=e=>M.value=e,title:`KV 编辑`,width:`560px`},{footer:w(()=>[g(y,{onClick:u[4]||=e=>M.value=!1},{default:w(()=>[...u[10]||=[l(`取消`,-1)]]),_:1}),g(y,{type:`primary`,onClick:B},{default:w(()=>[...u[11]||=[l(`保存`,-1)]]),_:1})]),default:w(()=>[g(q,{"label-width":`80px`},{default:w(()=>[g(K,{label:`key`},{default:w(()=>[g(v,{modelValue:N.value,"onUpdate:modelValue":u[2]||=e=>N.value=e,disabled:F.value===`update`},null,8,[`modelValue`,`disabled`])]),_:1}),g(K,{label:`value (JSON)`},{default:w(()=>[g(v,{modelValue:P.value,"onUpdate:modelValue":u[3]||=e=>P.value=e,type:`textarea`,rows:6,spellcheck:`false`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])])}}}),[[`__scopeId`,`data-v-6e1ecb0b`]]);export{E as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Ei as t,Jr as n,Yr as r,ai as i,ci as a,d as o,f as s,li as c,ni as l,qi as u,r as d,si as f,ui as p,zi as m}from"./api-Bm2KUKXH.js";import{n as h}from"./index-CFz4VL67.js";var g={class:`login-page`},_=s(p({__name:`LoginView`,setup(s){let p=h(),_=u(``),v=u(``),y=u(!1),b=async()=>{if(!y.value){y.value=!0;try{await d(`/api/auth/login`,{username:_.value,password:v.value}),await p.push({name:`dashboard`})}catch(e){o(e)}finally{y.value=!1}}};return(o,s)=>{let u=e(`el-input`),d=e(`el-form-item`),p=e(`el-button`),h=e(`el-form`),x=e(`el-card`);return t(),i(`div`,g,[s[5]||=f(`<svg class="login-waves" viewBox="0 0 1440 900" preserveAspectRatio="xMidYMid slice" aria-hidden="true" data-v-57590040><path d="M-40 250 C 180 180, 360 320, 620 250 S 1080 180, 1480 260" data-v-57590040></path><path d="M-40 420 C 200 340, 420 480, 700 410 S 1120 330, 1480 430" data-v-57590040></path><path d="M-40 580 C 220 500, 400 640, 660 570 S 1100 490, 1480 590" data-v-57590040></path><path d="M-40 730 C 180 660, 380 790, 640 725 S 1080 650, 1480 740" data-v-57590040></path><path d="M-40 130 C 240 70, 440 190, 720 125 S 1120 40, 1480 140" data-v-57590040></path></svg>`,1),c(x,{class:`login-card`,"body-style":{padding:`36px 32px 32px`}},{default:m(()=>[s[4]||=l(`div`,{class:`brand`},[l(`div`,{class:`logo`},`J`),l(`h2`,null,`JsBot 控制台`),l(`p`,null,`Tellus 管理后台`)],-1),c(h,{"label-position":`top`,size:`large`,onSubmit:s[2]||=r(()=>{},[`prevent`])},{default:m(()=>[c(d,{label:`用户名`},{default:m(()=>[c(u,{modelValue:_.value,"onUpdate:modelValue":s[0]||=e=>_.value=e,autocomplete:`username`},null,8,[`modelValue`])]),_:1}),c(d,{label:`密码`},{default:m(()=>[c(u,{modelValue:v.value,"onUpdate:modelValue":s[1]||=e=>v.value=e,type:`password`,autocomplete:`current-password`,"show-password":``,onKeyup:n(b,[`enter`])},null,8,[`modelValue`])]),_:1}),c(p,{type:`primary`,size:`large`,class:`submit`,loading:y.value,onClick:b},{default:m(()=>[...s[3]||=[a(` 登 录 `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-57590040`]]);export{_ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Br as t,Ci as n,Ei as r,Jr as i,Li as a,Oi as o,Zr as s,_a as c,_i as l,a as u,ai as d,ci as f,d as p,f as m,ii as h,li as g,ma as _,n as v,ni as y,qi as b,ta as x,ti as S,ui as C,ut as w,wi as T,zi as E}from"./api-Bm2KUKXH.js";var D={class:`term container`},O={class:`term-content`},k={class:`term-bar`},A={class:`term-title`},ee={class:`dim`},te={key:0,class:`term-empty`},ne={class:`lt`},re={class:`lv`},j={key:0,class:`ls`},M={class:`lm`},N=500,P=30,F=m(C({__name:`LogsView`,setup(m){let C=b(``),F=b(``),I=b(``),L=b(`on`),R=b([]),z=b(null),B=b(!0),V=e=>({key:`${e.time}|${e.scope}|${e.level}|${e.message}`,time:e.time,level:e.level,scope:e.scope,text:e.message+(e.args.length>0?` `+e.args.join(` `):``),fresh:!1}),H=S(()=>R.value.slice(-500)),U=S(()=>Math.max(0,R.value.length-N)),W=()=>{let e=new URLSearchParams({limit:`500`});return C.value&&e.set(`level`,C.value),F.value&&e.set(`scope`,F.value),I.value&&e.set(`query`,I.value),`/api/logs?${e.toString()}`},G=e=>Number.isNaN(e)?`--:--:--`:new Date(e).toTimeString().slice(0,8),K=()=>{let e=z.value;e!==null&&(e.scrollTop=e.scrollHeight)},q=()=>{let e=z.value;return e===null||e.scrollHeight-e.scrollTop-e.clientHeight<32},J=()=>{B.value=q()},Y=()=>{B.value=!0,K()},X=e=>{let t=new Set(R.value.map(e=>e.key)),n=new Map,r=e.slice(-500).map(e=>{let t=V(e),r=n.get(t.key)??0;return n.set(t.key,r+1),t.key=r>0?`${t.key}#${r}`:t.key,t}),i=r.length;for(let e=r.length-1;e>=0;--e)if(t.has(r[e]?.key??``)){i=e+1;break}for(let e=0;e<r.length;e+=1)r[e]={...r[e],fresh:e>=i&&e>=r.length-P};R.value=r,B.value&&l(K)},Z=async()=>{try{let e=await v(W());X(e)}catch(e){p(e)}},Q=null,$=()=>{Q?.(),Q=null,L.value===`on`&&(Q=u(`/api/logs/stream`,()=>{v(W()).then(e=>{X(e)}).catch(()=>{})}))};return a(L,$),n(async()=>{await Z(),K(),$()}),T(()=>{Q?.()}),(n,a)=>{let l=e(`el-option`),u=e(`el-select`),p=e(`el-input`),m=e(`el-button`);return r(),d(`div`,D,[y(`section`,O,[y(`header`,k,[a[6]||=y(`div`,{class:`term-traffic`},[y(`span`,{class:`dot`}),y(`span`,{class:`dot`}),y(`span`,{class:`dot`})],-1),y(`span`,A,[a[4]||=f(` bot://console`,-1),y(`span`,ee,` · `+c(L.value===`on`?`streaming`:`paused`),1)]),a[7]||=y(`span`,{class:`term-spacer`},null,-1),g(u,{modelValue:C.value,"onUpdate:modelValue":a[0]||=e=>C.value=e,placeholder:`级别`,clearable:``,class:`ctl sel-level`,onChange:Z},{default:E(()=>[g(l,{label:`all`,value:``}),g(l,{label:`debug`,value:`debug`}),g(l,{label:`info`,value:`info`}),g(l,{label:`warn`,value:`warn`}),g(l,{label:`error`,value:`error`})]),_:1},8,[`modelValue`]),g(p,{modelValue:F.value,"onUpdate:modelValue":a[1]||=e=>F.value=e,placeholder:`scope`,class:`ctl`,onKeyup:i(Z,[`enter`])},null,8,[`modelValue`]),g(p,{modelValue:I.value,"onUpdate:modelValue":a[2]||=e=>I.value=e,placeholder:`关键字`,class:`ctl`,onKeyup:i(Z,[`enter`])},null,8,[`modelValue`]),g(u,{modelValue:L.value,"onUpdate:modelValue":a[3]||=e=>L.value=e,class:`ctl sel-live`},{default:E(()=>[g(l,{label:`stream`,value:`on`}),g(l,{label:`paused`,value:`off`})]),_:1},8,[`modelValue`]),g(m,{class:`ctl refresh`,text:``,icon:x(w),onClick:Z},{default:E(()=>[...a[5]||=[f(` 查询 `,-1)]]),_:1},8,[`icon`])]),y(`main`,{ref_key:`scrollEl`,ref:z,class:`term-body log-fade-both`,onScroll:J},[R.value.length===0?(r(),d(`div`,te,` — 暂无日志:试试调整筛选或点击「查询」 — `)):h(``,!0),(r(!0),d(s,null,o(H.value,(e,t)=>(r(),d(`div`,{key:e.key,class:_([`log-row`,[`l-${e.level}`,e.fresh?`rowIn`:``]])},[y(`span`,ne,c(G(e.time)),1),y(`span`,re,c(e.level.toUpperCase()),1),e.scope?(r(),d(`span`,j,`[`+c(e.scope)+`]`,1)):h(``,!0),y(`span`,M,c(e.text),1)],2))),128))],544),g(t,{name:`pill`},{default:E(()=>[!B.value&&R.value.length>0?(r(),d(`button`,{key:0,class:`jump-latest`,onClick:Y},` ↓ 回到最新`+c(U.value>0?`(+${U.value})`:``),1)):h(``,!0)]),_:1})])])}}}),[[`__scopeId`,`data-v-c504421e`]]);export{F as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Br as t,Ci as n,Ei as r,Fi as i,G as a,Gi as o,L as s,Li as c,M as l,Mi as u,N as d,Oi as f,Y as p,Zr as m,_a as h,ai as g,bt as _,c as v,ci as y,f as b,ht as x,ii as S,it as C,j as w,li as T,ma as E,n as D,ni as O,o as k,qi as A,r as j,ri as M,rt as ee,ta as N,ti as P,tt as te,ui as F,wi as I,zi as L}from"./api-Bm2KUKXH.js";import{a as R,c as z,i as B,n as V,o as H,r as U,s as ne,t as re}from"./index-CFz4VL67.js";var W={class:`panel`},G={class:`group`},K={key:0,class:`group`},q={class:`group`},J={class:`group`},Y={class:`group`},X={class:`slider-row`},Z={class:`slider-value`},Q={class:`group`},$={class:`slider-row`},ie={class:`slider-value`},ae={class:`group`},oe=b(F({__name:`AppearanceDrawer`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(t){let n=i(t,`modelValue`),a=B(),s=o({modeKey:a.mode??`system`,intensity:a.darkIntensity??`soft`,density:a.density??`cozy`,sidebarStyle:a.sidebarStyle??`follow`,uiScale:a.uiScale??1,radius:a.radius??.75,highContrast:a.highContrast===!0,reduceMotion:a.reduceMotion===!0,disableMotion:a.disableMotion===!0}),l=P(()=>s.modeKey===`light`);c(n,e=>{if(!e)return;let t=B();s.modeKey=t.mode??`system`,s.intensity=t.darkIntensity??`soft`,s.density=t.density??`cozy`,s.sidebarStyle=t.sidebarStyle??`follow`,s.uiScale=t.uiScale??1,s.radius=t.radius??.75,s.highContrast=t.highContrast===!0,s.reduceMotion=t.reduceMotion===!0,s.disableMotion=t.disableMotion===!0});let u=[{label:`跟随系统`,value:`system`},{label:`亮色`,value:`light`},{label:`暗色`,value:`dark`}],d=[{label:`柔和`,value:`soft`},{label:`纯黑`,value:`black`}],f=[{label:`默认`,value:`cozy`},{label:`紧凑`,value:`compact`}],p=[{label:`跟随画布`,value:`follow`},{label:`独立面板`,value:`panel`},{label:`带品牌色`,value:`accent`}],m={1:`100%`},_=()=>{H({mode:s.modeKey===`system`?void 0:s.modeKey})},v=()=>{H({darkIntensity:s.modeKey===`dark`?s.intensity:void 0})},b=()=>{H({density:s.density})},x=()=>{H({sidebarStyle:s.sidebarStyle})},C=()=>{H({uiScale:s.uiScale})},w=()=>{H({radius:s.radius})},E=()=>{H({mode:s.modeKey===`system`?void 0:s.modeKey,darkIntensity:s.modeKey===`dark`?s.intensity:void 0,density:s.density,sidebarStyle:s.sidebarStyle,uiScale:s.uiScale,radius:s.radius,highContrast:s.highContrast,reduceMotion:s.reduceMotion,disableMotion:s.disableMotion})},D=()=>{R()};return(t,i)=>{let a=e(`el-segmented`),o=e(`el-slider`),c=e(`el-switch`),k=e(`el-button`),A=e(`el-drawer`);return r(),M(A,{modelValue:n.value,"onUpdate:modelValue":i[9]||=e=>n.value=e,title:`外观`,size:`336px`,class:`appearance-drawer`,"append-to-body":!0},{default:L(()=>[O(`div`,W,[O(`section`,G,[i[10]||=O(`h4`,null,`模式`,-1),T(a,{modelValue:s.modeKey,"onUpdate:modelValue":i[0]||=e=>s.modeKey=e,options:u,block:``,onChange:_},null,8,[`modelValue`])]),l.value?S(``,!0):(r(),g(`section`,K,[i[11]||=O(`h4`,null,`暗色强度`,-1),T(a,{modelValue:s.intensity,"onUpdate:modelValue":i[1]||=e=>s.intensity=e,options:d,block:``,onChange:v},null,8,[`modelValue`])])),O(`section`,q,[i[12]||=O(`h4`,null,`密度`,-1),T(a,{modelValue:s.density,"onUpdate:modelValue":i[2]||=e=>s.density=e,options:f,block:``,onChange:b},null,8,[`modelValue`])]),O(`section`,J,[i[13]||=O(`h4`,null,`侧边栏`,-1),T(a,{modelValue:s.sidebarStyle,"onUpdate:modelValue":i[3]||=e=>s.sidebarStyle=e,options:p,block:``,onChange:x},null,8,[`modelValue`])]),O(`section`,Y,[O(`div`,X,[i[14]||=O(`h4`,null,`界面缩放`,-1),O(`span`,Z,h(Math.round(s.uiScale*100))+`% `,1)]),T(o,{modelValue:s.uiScale,"onUpdate:modelValue":i[4]||=e=>s.uiScale=e,min:.5,max:2,step:.05,marks:m,onInput:C,onChange:E},null,8,[`modelValue`])]),O(`section`,Q,[O(`div`,$,[i[15]||=O(`h4`,null,`圆角`,-1),O(`span`,ie,h(s.radius.toFixed(2))+`rem `,1)]),T(o,{modelValue:s.radius,"onUpdate:modelValue":i[5]||=e=>s.radius=e,min:0,max:2,step:.125,onInput:w},null,8,[`modelValue`])]),O(`section`,ae,[T(c,{modelValue:s.highContrast,"onUpdate:modelValue":i[6]||=e=>s.highContrast=e,"active-text":`高对比度`,onChange:E},null,8,[`modelValue`]),T(c,{modelValue:s.reduceMotion,"onUpdate:modelValue":i[7]||=e=>s.reduceMotion=e,"active-text":`减少动效`,onChange:E},null,8,[`modelValue`]),T(c,{modelValue:s.disableMotion,"onUpdate:modelValue":i[8]||=e=>s.disableMotion=e,"active-text":`关闭全部动效`,onChange:E},null,8,[`modelValue`])]),T(k,{class:`reset`,text:``,onClick:D},{default:L(()=>[...i[16]||=[y(` 恢复默认外观 `,-1)]]),_:1})])]),_:1},8,[`modelValue`])}}}),[[`__scopeId`,`data-v-3773df04`]]),se={class:`brand`},ce={class:`brand-text`},le={class:`nav`},ue={class:`sidebar-footer`},de={class:`title`},fe={class:`user`,"data-cursor-target":``},pe={class:`avatar`},me={class:`username`},he=b(F({__name:`MainLayout`,setup(i){let o=re(),c=V(),b=[{key:`dashboard`,label:`概览`,icon:ee},{key:`sessions`,label:`会话`,icon:s},{key:`plugins`,label:`插件`,icon:l},{key:`config`,label:`配置`,icon:x},{key:`kv`,label:`KV 存储`,icon:a},{key:`logs`,label:`日志`,icon:p},{key:`events`,label:`事件`,icon:w},{key:`actions`,label:`调试 Action`,icon:te}],S={dashboard:`概览`,sessions:`会话`,plugins:`插件`,config:`配置`,kv:`KV 存储`,logs:`日志`,events:`事件`,actions:`调试 Action`},F=A(``),R=A(`0.0.0`),B=A(!1),H=A(U()),W=A(!1),G=e=>{H.value=z({x:e.clientX,y:e.clientY})},K=()=>{H.value=U()},q=null,J=P(()=>S[o.name]??S[o.path]??`JsBot`),Y=P(()=>F.value?F.value.slice(0,1).toUpperCase():`?`),X=null;n(()=>{D(`/api/auth/me`).then(e=>{F.value=e.username}),Z(),X=setInterval(()=>void Z(),1e4),q=ne(K),H.value=U()}),I(()=>{X!==null&&clearInterval(X),q!==null&&q()});let Z=async()=>{try{let e=await v();R.value=e.version,B.value=e.runtime?.connected??!1}catch{B.value=!1}},Q=e=>{e===`logout`&&$()},$=async()=>{try{await j(`/api/auth/logout`)}catch(e){console.warn(`logout failed:`,k(e))}await c.push({name:`login`})};return(n,i)=>{let a=e(`el-icon`),s=e(`router-link`),c=e(`el-aside`),l=e(`el-button`),p=e(`el-tooltip`),v=e(`el-dropdown-item`),x=e(`el-dropdown-menu`),S=e(`el-dropdown`),w=e(`el-header`),D=e(`router-view`),k=e(`el-main`),A=e(`el-container`);return r(),M(A,{class:`layout`},{default:L(()=>[T(c,{width:`232px`,class:`sidebar`},{default:L(()=>[O(`div`,se,[i[4]||=O(`div`,{class:`logo`},`J`,-1),O(`div`,ce,[i[3]||=O(`h2`,null,`JsBot 控制台`,-1),O(`p`,null,`Tellus · `+h(N(R)),1)])]),O(`nav`,le,[(r(),g(m,null,f(b,e=>T(s,{key:e.key,to:{name:e.key},class:E([`nav-item`,{active:N(o).name===e.key}])},{default:L(()=>[T(a,{size:17},{default:L(()=>[(r(),M(u(e.icon)))]),_:2},1024),O(`span`,null,h(e.label),1)]),_:2},1032,[`to`,`class`])),64))]),O(`div`,ue,[O(`span`,{class:E([`status-dot`,N(B)?`ok`:`off`])},null,2),O(`span`,null,h(N(B)?`运行时在线`:`运行时离线`),1)])]),_:1}),T(A,null,{default:L(()=>[T(w,{class:`header`},{default:L(()=>[O(`span`,de,h(J.value),1),i[6]||=O(`span`,{class:`spacer`},null,-1),T(p,{content:H.value?`切换到亮色模式`:`切换到暗色模式`,placement:`bottom`},{default:L(()=>[T(l,{text:``,circle:``,class:`theme-toggle`,onClick:i[0]||=e=>G(e)},{default:L(()=>[T(a,{size:17},{default:L(()=>[H.value?(r(),M(N(_),{key:0})):(r(),M(N(C),{key:1}))]),_:1})]),_:1})]),_:1},8,[`content`]),T(p,{content:`外观设置`,placement:`bottom`},{default:L(()=>[T(l,{text:``,circle:``,class:`theme-toggle`,onClick:i[1]||=e=>W.value=!0},{default:L(()=>[T(a,{size:17},{default:L(()=>[T(N(d))]),_:1})]),_:1})]),_:1}),T(S,{trigger:`click`,onCommand:Q},{dropdown:L(()=>[T(x,null,{default:L(()=>[T(v,{command:`logout`},{default:L(()=>[...i[5]||=[y(` 退出登录 `,-1)]]),_:1})]),_:1})]),default:L(()=>[O(`span`,fe,[O(`span`,pe,h(Y.value),1),O(`span`,me,h(N(F)),1)])]),_:1})]),_:1}),T(k,{class:`main`},{default:L(()=>[T(D,null,{default:L(({Component:e})=>[T(t,{name:`route-fade`,mode:`out-in`},{default:L(()=>[(r(),M(u(e)))]),_:2},1024)]),_:1})]),_:1})]),_:1}),T(oe,{modelValue:W.value,"onUpdate:modelValue":i[2]||=e=>W.value=e},null,8,[`modelValue`])]),_:1})}}}),[[`__scopeId`,`data-v-be073727`]]);export{he as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.panel[data-v-3773df04]{flex-direction:column;gap:20px;display:flex}.group[data-v-3773df04]{flex-direction:column;gap:10px;display:flex}.group h4[data-v-3773df04]{color:var(--app-muted);letter-spacing:.02em;margin:0;font-size:12.5px;font-weight:600}.slider-row[data-v-3773df04]{justify-content:space-between;align-items:center;display:flex}.slider-value[data-v-3773df04]{font-variant-numeric:tabular-nums;color:var(--app-accent);font-size:12.5px}.group .el-switch[data-v-3773df04]{width:fit-content}.reset[data-v-3773df04]{color:var(--app-muted);align-self:flex-start}.layout[data-v-
|
|
1
|
+
.panel[data-v-3773df04]{flex-direction:column;gap:20px;display:flex}.group[data-v-3773df04]{flex-direction:column;gap:10px;display:flex}.group h4[data-v-3773df04]{color:var(--app-muted);letter-spacing:.02em;margin:0;font-size:12.5px;font-weight:600}.slider-row[data-v-3773df04]{justify-content:space-between;align-items:center;display:flex}.slider-value[data-v-3773df04]{font-variant-numeric:tabular-nums;color:var(--app-accent);font-size:12.5px}.group .el-switch[data-v-3773df04]{width:fit-content}.reset[data-v-3773df04]{color:var(--app-muted);align-self:flex-start}.layout[data-v-be073727]{background:var(--app-bg);height:100%}.sidebar[data-v-be073727]{background:var(--app-side-bg);border-right:1px solid var(--app-border);color:var(--app-muted);flex-direction:column;transition:background .2s;display:flex}.brand[data-v-be073727]{align-items:center;gap:12px;padding:22px 20px 18px;display:flex}.logo[data-v-be073727]{color:#fff;width:36px;height:36px;box-shadow:0 8px 20px color-mix(in oklab, var(--app-accent) 35%, transparent);background:linear-gradient(135deg,oklch(68.5% .155 230),oklch(56% .15 250));border-radius:10px;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.brand-text h2[data-v-be073727]{color:var(--app-text);letter-spacing:.02em;margin:0;font-size:14.5px}.brand-text p[data-v-be073727]{color:var(--app-muted);margin:3px 0 0;font-size:11px}.nav[data-v-be073727]{flex-direction:column;flex:1;gap:2px;margin-top:4px;padding:6px 12px;display:flex}.nav-item[data-v-be073727]{border-radius:9px;align-items:center;gap:10px;padding:9px 13px;font-size:13.5px;text-decoration:none;transition:background .14s,color .14s;display:flex;position:relative;color:var(--app-muted)!important}.nav-item[data-v-be073727]:hover{background:var(--app-nav-hover);color:var(--app-text)!important}.nav-item.active[data-v-be073727]{background:color-mix(in oklab, var(--app-accent) 12%, transparent);color:var(--app-accent)!important}.nav-item.active[data-v-be073727]:before{content:"";background:linear-gradient(oklch(68.5% .155 230),oklch(56% .15 250));border-radius:999px;width:3px;position:absolute;top:20%;bottom:20%;left:-12px}.sidebar-footer[data-v-be073727]{border-top:1px solid var(--app-border);align-items:center;gap:8px;padding:14px 20px;font-size:12px;display:flex}.status-dot[data-v-be073727]{border-radius:999px;width:8px;height:8px}.status-dot.ok[data-v-be073727]{background:var(--app-ok);box-shadow:0 0 10px color-mix(in oklab, var(--app-ok) 70%, transparent)}.status-dot.off[data-v-be073727]{background:var(--app-dot-off)}.header[data-v-be073727]{background:var(--app-glass);border-bottom:1px solid var(--app-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;height:58px;padding:0 24px;display:flex}.title[data-v-be073727]{color:var(--app-text);font-size:14.5px;font-weight:600}.spacer[data-v-be073727]{flex:1}.theme-toggle[data-v-be073727]{color:var(--app-muted);margin-right:6px}.user[data-v-be073727]{color:var(--app-text);cursor:pointer;border-radius:999px;align-items:center;gap:9px;padding:4px 6px 4px 4px;transition:background .14s;display:flex}.user[data-v-be073727]:hover{background:var(--app-nav-hover)}.avatar[data-v-be073727]{color:#fff;background:linear-gradient(135deg,oklch(68.5% .155 230),oklch(56% .15 250));border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;font-size:12.5px;font-weight:700;display:flex}.username[data-v-be073727]{font-size:13px}.main[data-v-be073727]{padding:22px 24px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Bi as t,Ci as n,Ei as r,Gi as i,J as a,Li as o,Oi as s,Zr as c,_a as l,ai as u,ci as d,ct as f,d as p,f as m,i as h,ii as g,ji as _,li as v,ma as y,n as b,ni as x,p as S,qi as C,r as w,ri as T,ta as E,ti as D,ui as O,zi as k}from"./api-Bm2KUKXH.js";var A={class:`opts-form`},j={key:0,class:`empty`},M={class:`value`},N={key:3,class:`null-mark`},P=m(O({__name:`PluginOptionsForm`,props:{options:{}},setup(t,{expose:n}){let p=t,m=C(`form`),h=i([]),_=C(``),b=e=>{let t={key:``,type:`json`,text:``,num:void 0,bool:!1,raw:``};return e===null?t.type=`null`:typeof e==`string`?(t.type=`string`,t.text=e):typeof e==`number`?(t.type=`number`,t.num=e):typeof e==`boolean`?(t.type=`boolean`,t.bool=e):(t.type=`json`,t.raw=JSON.stringify(e,null,4)),t};o(()=>p.options,()=>{h.length=0;for(let[e,t]of Object.entries(p.options??{})){let n=b(t);n.key=e,h.push(n)}_.value=JSON.stringify(p.options??{},null,4)},{immediate:!0,deep:!1});let S=e=>h.filter(t=>t.key===h[e]?.key).length>1,w=()=>{let e=1;for(;h.some(t=>t.key===`新字段${e}`);)e+=1;h.push({key:`新字段${e}`,type:`string`,text:``,num:void 0,bool:!1,raw:``})},O=e=>{if(e.type!==`json`)return!1;try{JSON.parse(e.raw)}catch{return!0}return!1},P=e=>e.trim().length===0?null:JSON.parse(e),F=()=>{let e={};for(let t of h)t.key.trim().length!==0&&(e[t.key]=I(t));return e},I=e=>e.type===`null`?null:e.type===`json`?P(e.raw):e.type===`number`?e.num??0:e.type===`boolean`?e.bool:e.text,L=D(()=>{try{P(_.value);let e=JSON.parse(_.value);return!(typeof e==`object`&&e)}catch{return!0}});return n({collect:()=>{if(m.value===`json`)return L.value?{ok:!1,message:`JSON 格式错误`}:{ok:!0,options:JSON.parse(_.value)};let e=new Map;for(let t of h){if(t.key.trim().length===0)return{ok:!1,message:`有字段没有名字,请为每个字段命名`};if(e.set(t.key,(e.get(t.key)??0)+1),t.type===`json`&&O(t))return{ok:!1,message:`字段「${t.key}」的 JSON 有格式错误`}}let t=[...e.entries()].find(([,e])=>e>1);return t===void 0?{ok:!0,options:F()}:{ok:!1,message:`字段名「${t[0]}」重复,请先改名`}},mode:m,switchMode:e=>{if(e===m.value)return{ok:!0};if(e===`json`){for(let e of h)if(e.type===`json`&&O(e))return{ok:!1,message:`字段「${e.key}」的 JSON 有格式错误,无法切到 JSON 模式`};return _.value=JSON.stringify(F(),null,4),m.value=`json`,{ok:!0}}if(L.value)return{ok:!1,message:`JSON 里有格式错误,修好了才能切回表单`};let t=JSON.parse(_.value);if(Array.isArray(t))return{ok:!1,message:`数组根无法用表单呈现,请继续用 JSON 编辑`};h.length=0;for(let[e,n]of Object.entries(t)){let t=b(n);t.key=e,h.push(t)}return m.value=`form`,{ok:!0}}}),(t,n)=>{let i=e(`el-input`),o=e(`el-option`),p=e(`el-select`),b=e(`el-input-number`),C=e(`el-switch`),D=e(`el-button`);return r(),u(`div`,A,[m.value===`form`?(r(),u(c,{key:0},[h.length===0?(r(),u(`div`,j,` 该插件暂无配置。点「添加字段」创建第一个,或切到 JSON 直接编辑。 `)):g(``,!0),(r(!0),u(c,null,s(h,(e,t)=>(r(),u(`div`,{key:t,class:`row`},[v(i,{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,class:y([`key`,{dup:S(t)}]),placeholder:`字段名`},null,8,[`modelValue`,`onUpdate:modelValue`,`class`]),v(p,{modelValue:e.type,"onUpdate:modelValue":t=>e.type=t,class:`type`},{default:k(()=>[v(o,{label:`字符串`,value:`string`}),v(o,{label:`数字`,value:`number`}),v(o,{label:`开关`,value:`boolean`}),v(o,{label:`JSON`,value:`json`}),v(o,{label:`null`,value:`null`})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),x(`div`,M,[e.type===`string`?(r(),T(i,{key:0,modelValue:e.text,"onUpdate:modelValue":t=>e.text=t,placeholder:`字符串`},null,8,[`modelValue`,`onUpdate:modelValue`])):e.type===`number`?(r(),T(b,{key:1,modelValue:e.num,"onUpdate:modelValue":t=>e.num=t,step:1,class:`num`},null,8,[`modelValue`,`onUpdate:modelValue`])):e.type===`boolean`?(r(),T(C,{key:2,modelValue:e.bool,"onUpdate:modelValue":t=>e.bool=t},null,8,[`modelValue`,`onUpdate:modelValue`])):e.type===`null`?(r(),u(`span`,N,`null`)):(r(),T(i,{key:4,modelValue:e.raw,"onUpdate:modelValue":t=>e.raw=t,type:`textarea`,rows:3,spellcheck:`false`,class:y([`raw`,O(e)?`bad`:``]),placeholder:`数组或对象,JSON 格式`},null,8,[`modelValue`,`onUpdate:modelValue`,`class`]))]),v(D,{class:`drop`,text:``,icon:E(a),onClick:e=>h.splice(t,1)},null,8,[`icon`,`onClick`])]))),128)),v(D,{class:`add`,text:``,icon:E(f),onClick:w},{default:k(()=>[...n[1]||=[d(` 添加字段 `,-1)]]),_:1},8,[`icon`])],64)):(r(),u(c,{key:1},[v(i,{modelValue:_.value,"onUpdate:modelValue":n[0]||=e=>_.value=e,type:`textarea`,rows:14,spellcheck:`false`,class:y([`mono`,L.value?`bad`:``]),placeholder:`{}`},null,8,[`modelValue`,`class`]),x(`p`,{class:y([`hint`,{bad:L.value}])},l(L.value?`JSON 格式错误,顶层必须是对象或数组`:`JSON 校验通过——保存时会以这份 JSON 为准`),3)],64))])}}}),[[`__scopeId`,`data-v-cabdd1c5`]]),F={class:`card-header`},I={class:`card-header`},L={class:`cfg-mode`},R=m(O({__name:`PluginsView`,setup(i){let a=C([]),o=C([]),s=C(!0),c=C(!1),f=C(``),m=C(!1),y=C(`form`),E=C(``),D=C(``),O=C({}),A=C(null),j=async()=>{c.value=!0;try{let e=await b(`/api/plugins`);a.value=e.plugins,o.value=e.installed,s.value=e.installerEnabled,D.value=e.configHash}catch(e){p(e)}finally{c.value=!1}},M=async(e,t)=>{try{await h(`/api/plugins/${encodeURIComponent(e.id)}/config`,{enabled:!!t}),await j()}catch(e){p(e)}},N=e=>{E.value=e.id,O.value=e.options??{},y.value=`form`,m.value=!0},R=e=>{let t=A.value;if(t===null)return;let n=e===`json`?`json`:`form`,r=t.switchMode(n);r.ok?y.value=n:S.warning(r.message??`无法切换模式`)},z=async()=>{if(c.value)return;let e=A.value;if(e===null)return;let t=e.collect();if(!t.ok)S.warning(t.message??`配置未能通过校验`);else{c.value=!0;try{await h(`/api/plugins/${encodeURIComponent(E.value)}/config`,{options:t.options??{},baseHash:D.value}),m.value=!1,S.success(`配置已保存`),await j()}catch(e){p(e)}finally{c.value=!1}}},B=async()=>{if(f.value){c.value=!0;try{await w(`/api/plugins/install`,{spec:f.value}),S.success(`安装完成,请自行重启运行时使其生效`),f.value=``,await j()}catch(e){p(e)}finally{c.value=!1}}},V=async()=>{c.value=!0;try{await w(`/api/plugins/update`,{}),await j()}catch(e){p(e)}finally{c.value=!1}},H=async e=>{c.value=!0;try{await w(`/api/plugins/remove`,{target:e.packageName}),await j()}catch(e){p(e)}finally{c.value=!1}};return n(()=>void j()),(n,i)=>{let p=e(`el-alert`),h=e(`el-button`),b=e(`el-table-column`),S=e(`el-tag`),C=e(`el-switch`),w=e(`el-table`),D=e(`el-card`),U=e(`el-space`),W=e(`el-input`),G=e(`el-radio-button`),K=e(`el-radio-group`),q=e(`el-drawer`),J=_(`loading`);return r(),u(`div`,null,[s.value?g(``,!0):(r(),T(p,{key:0,title:`插件安装器未启用(installer.enabled = false)`,type:`info`,closable:!1,class:`block`})),v(D,{class:`block`},{header:k(()=>[x(`div`,F,[i[4]||=x(`span`,null,`已加载插件`,-1),v(h,{size:`small`,onClick:j},{default:k(()=>[...i[3]||=[d(`刷新`,-1)]]),_:1})])]),default:k(()=>[t((r(),T(w,{data:a.value,size:`small`},{default:k(()=>[v(b,{prop:`id`,label:`ID`,width:`160`}),v(b,{prop:`version`,label:`版本`,width:`100`}),v(b,{prop:`description`,label:`说明`}),v(b,{label:`状态`,width:`110`},{default:k(({row:e})=>[v(S,{size:`small`,type:e.loaded?`success`:`info`},{default:k(()=>[d(l(e.loaded?`已加载`:`未加载`),1)]),_:2},1032,[`type`])]),_:1}),v(b,{label:`启用`,width:`80`},{default:k(({row:e})=>[v(C,{"model-value":e.enabled,onChange:t=>M(e,!!t)},null,8,[`model-value`,`onChange`])]),_:1}),v(b,{label:`操作`,width:`190`},{default:k(({row:e})=>[v(h,{size:`small`,onClick:t=>N(e)},{default:k(()=>[...i[5]||=[d(` 配置 `,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[J,c.value]])]),_:1}),v(D,null,{header:k(()=>[x(`div`,I,[i[7]||=x(`span`,null,`已安装 npm 包`,-1),v(U,null,{default:k(()=>[v(h,{size:`small`,onClick:V},{default:k(()=>[...i[6]||=[d(` 全部更新 `,-1)]]),_:1})]),_:1})])]),default:k(()=>[v(w,{data:o.value,size:`small`},{default:k(()=>[v(b,{prop:`packageName`,label:`包名`}),v(b,{prop:`version`,label:`版本`,width:`110`}),v(b,{label:`插件 ID`,width:`200`},{default:k(({row:e})=>[d(l((e.pluginIds??[]).join(`, `)),1)]),_:1}),v(b,{label:`卸载`,width:`110`},{default:k(({row:e})=>[v(h,{size:`small`,type:`danger`,onClick:t=>H(e)},{default:k(()=>[...i[8]||=[d(` 卸载 `,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])]),_:1}),v(D,{class:`block`},{default:k(()=>[v(U,null,{default:k(()=>[v(W,{modelValue:f.value,"onUpdate:modelValue":i[0]||=e=>f.value=e,placeholder:`包名,如 @scope/jsbot-plugin-xxx`,style:{width:`320px`}},null,8,[`modelValue`]),v(h,{type:`primary`,loading:c.value,onClick:B},{default:k(()=>[...i[9]||=[d(` 安装 `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1}),v(q,{modelValue:m.value,"onUpdate:modelValue":i[2]||=e=>m.value=e,size:`620px`,title:`插件配置 · `+E.value},{footer:k(()=>[v(h,{onClick:i[1]||=e=>m.value=!1},{default:k(()=>[...i[12]||=[d(`取消`,-1)]]),_:1}),v(h,{type:`primary`,loading:c.value,onClick:z},{default:k(()=>[...i[13]||=[d(` 保存 `,-1)]]),_:1},8,[`loading`])]),default:k(()=>[x(`div`,L,[v(K,{"model-value":y.value,size:`small`,onChange:R},{default:k(()=>[v(G,{value:`form`},{default:k(()=>[...i[10]||=[d(`表单`,-1)]]),_:1}),v(G,{value:`json`},{default:k(()=>[...i[11]||=[d(`JSON`,-1)]]),_:1})]),_:1},8,[`model-value`])]),v(P,{ref_key:`formRef`,ref:A,options:O.value},null,8,[`options`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-c65df5c0`]]);export{R as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ai as e,Bi as t,Ci as n,Ei as r,Jr as i,Oi as a,Yr as o,Zr as ee,_a as s,ai as c,ci as l,d as u,f as d,i as f,ii as p,ji as m,l as h,li as g,n as _,ni as v,p as y,qi as b,r as x,ri as S,t as C,ta as w,ui as T,zi as E}from"./api-Bm2KUKXH.js";var D={key:0},O={class:`message-content`},k={key:0,class:`sub`},A=20,j=d(T({__name:`SessionsView`,setup(d){let T=b([]),j=b(0),M=b(1),N=b(``),P=b(!1),F=b(!1),I=b(null),L=b(``),R=b({provider:``,model:``,persona:``}),z=b(``),B=b(``),V=b(!0),H=b(!1),U=async()=>{P.value=!0;try{let e=(M.value-1)*A,t=new URLSearchParams({limit:String(A),offset:String(e)});N.value&&t.set(`query`,N.value);let n=await _(`/api/sessions?${t.toString()}`);T.value=n.items,j.value=n.total}catch(e){u(e)}finally{P.value=!1}},W=e=>{M.value=e,U()},G=async e=>{try{let t=await _(`/api/sessions/${encodeURIComponent(e.sessionId)}`);I.value=t,L.value=e.sessionId,R.value={provider:t.provider??``,model:t.model??``,persona:t.persona??``},F.value=!0}catch(e){u(e)}},K=async()=>{if(I.value!==null)try{I.value=await f(`/api/sessions/${encodeURIComponent(L.value)}`,{provider:R.value.provider||null,model:R.value.model||null,persona:R.value.persona||null}),y.success(`已保存`),await U()}catch(e){u(e)}},q=async()=>{if(I.value!==null&&z.value)try{I.value=await x(`/api/sessions/${encodeURIComponent(L.value)}/messages`,{role:`user`,content:z.value}),z.value=``}catch(e){u(e)}},J=async()=>{if(B.value){H.value=!0;try{await x(`/api/sessions/${encodeURIComponent(L.value)}/send`,{message:B.value,autoEscape:V.value}),y.success(`已发送`),B.value=``}catch(e){u(e)}finally{H.value=!1}}},Y=async()=>{try{await C(`/api/sessions/${encodeURIComponent(L.value)}`),I.value=null,F.value=!1,await U()}catch(e){u(e)}},X=async e=>{try{await C(`/api/sessions/${encodeURIComponent(e.sessionId)}`),await U()}catch(e){u(e)}},Z=e=>e===`assistant`?`success`:e===`system`?`warning`:`primary`;return n(()=>void U()),(n,u)=>{let d=e(`el-input`),f=e(`el-button`),_=e(`el-space`),y=e(`el-card`),b=e(`el-table-column`),x=e(`el-table`),C=e(`el-pagination`),Q=e(`el-form-item`),te=e(`el-form`),$=e(`el-divider`),ne=e(`el-tag`),re=e(`el-checkbox`),ie=e(`el-drawer`),ae=m(`loading`);return r(),c(`div`,null,[g(y,{class:`block`},{default:E(()=>[g(_,null,{default:E(()=>[g(d,{modelValue:N.value,"onUpdate:modelValue":u[0]||=e=>N.value=e,placeholder:`搜索 session id`,clearable:``,style:{width:`260px`},onKeyup:i(U,[`enter`])},null,8,[`modelValue`]),g(f,{type:`primary`,onClick:U},{default:E(()=>[...u[8]||=[l(`搜索`,-1)]]),_:1})]),_:1})]),_:1}),g(y,null,{default:E(()=>[t((r(),S(x,{data:T.value,size:`small`,onRowClick:G},{default:E(()=>[g(b,{prop:`sessionId`,label:`Session ID`,"show-overflow-tooltip":``}),g(b,{label:`消息数`,width:`90`},{default:E(({row:e})=>[l(s(e.messageCount),1)]),_:1}),g(b,{label:`更新时间`,width:`180`},{default:E(({row:e})=>[l(s(w(h)(e.updatedAt)),1)]),_:1}),g(b,{label:`操作`,width:`160`},{default:E(({row:e})=>[g(f,{size:`small`,onClick:o(t=>G(e),[`stop`])},{default:E(()=>[...u[9]||=[l(` 详情 `,-1)]]),_:1},8,[`onClick`]),g(f,{size:`small`,type:`danger`,onClick:o(t=>X(e),[`stop`])},{default:E(()=>[...u[10]||=[l(` 清空 `,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[ae,P.value]]),g(C,{class:`pager`,layout:`total, prev, pager, next`,total:j.value,"page-size":A,"current-page":M.value,onCurrentChange:W},null,8,[`total`,`current-page`])]),_:1}),g(ie,{modelValue:F.value,"onUpdate:modelValue":u[7]||=e=>F.value=e,size:`45%`,title:`会话 `+L.value},{default:E(()=>[I.value?(r(),c(`div`,D,[g(te,{"label-width":`90px`,size:`small`},{default:E(()=>[g(Q,{label:`provider`},{default:E(()=>[g(d,{modelValue:R.value.provider,"onUpdate:modelValue":u[1]||=e=>R.value.provider=e},null,8,[`modelValue`])]),_:1}),g(Q,{label:`model`},{default:E(()=>[g(d,{modelValue:R.value.model,"onUpdate:modelValue":u[2]||=e=>R.value.model=e},null,8,[`modelValue`])]),_:1}),g(Q,{label:`persona`},{default:E(()=>[g(d,{modelValue:R.value.persona,"onUpdate:modelValue":u[3]||=e=>R.value.persona=e,type:`textarea`,rows:3},null,8,[`modelValue`])]),_:1}),g(Q,null,{default:E(()=>[g(f,{type:`primary`,onClick:K},{default:E(()=>[...u[11]||=[l(` 保存 `,-1)]]),_:1})]),_:1})]),_:1}),g($,null,{default:E(()=>[...u[12]||=[l(`LLM 消息`,-1)]]),_:1}),(r(!0),c(ee,null,a(I.value.messages,(e,t)=>(r(),c(`div`,{key:t,class:`message`},[g(ne,{size:`small`,type:Z(e.role)},{default:E(()=>[l(s(e.role),1)]),_:2},1032,[`type`]),v(`pre`,O,s(e.content),1)]))),128)),I.value.messages.length===0?(r(),c(`p`,k,`无消息`)):p(``,!0),g(d,{modelValue:z.value,"onUpdate:modelValue":u[4]||=e=>z.value=e,type:`textarea`,rows:3,placeholder:`追加 role=user 消息`,class:`block`},null,8,[`modelValue`]),g(f,{size:`small`,onClick:q},{default:E(()=>[...u[13]||=[l(`追加`,-1)]]),_:1}),g($,null,{default:E(()=>[...u[14]||=[l(`发送 QQ 消息`,-1)]]),_:1}),g(d,{modelValue:B.value,"onUpdate:modelValue":u[5]||=e=>B.value=e,type:`textarea`,rows:3,placeholder:`发送到此 session(等同机器人回复)`,class:`block`},null,8,[`modelValue`]),g(_,null,{default:E(()=>[g(f,{type:`primary`,size:`small`,loading:H.value,onClick:J},{default:E(()=>[...u[15]||=[l(` 发送 `,-1)]]),_:1},8,[`loading`]),g(re,{modelValue:V.value,"onUpdate:modelValue":u[6]||=e=>V.value=e},{default:E(()=>[...u[16]||=[l(`autoEscape`,-1)]]),_:1},8,[`modelValue`]),g(f,{type:`danger`,size:`small`,onClick:Y},{default:E(()=>[...u[17]||=[l(` 清空会话 `,-1)]]),_:1})]),_:1})])):p(``,!0)]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-6382784b`]]);export{j as default};
|