@xpert-ai/plugin-drawio 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/package.json +4 -4
  2. package/dist/index.js +0 -153
  3. package/dist/index.js.map +0 -1
  4. package/dist/lib/constants.js +0 -43
  5. package/dist/lib/constants.js.map +0 -1
  6. package/dist/lib/drawio-view.provider.js +0 -435
  7. package/dist/lib/drawio-view.provider.js.map +0 -1
  8. package/dist/lib/drawio.middleware.js +0 -159
  9. package/dist/lib/drawio.middleware.js.map +0 -1
  10. package/dist/lib/drawio.plugin.js +0 -27
  11. package/dist/lib/drawio.plugin.js.map +0 -1
  12. package/dist/lib/drawio.service.js +0 -415
  13. package/dist/lib/drawio.service.js.map +0 -1
  14. package/dist/lib/drawio.templates.js +0 -78
  15. package/dist/lib/drawio.templates.js.map +0 -1
  16. package/dist/lib/entities/drawio-action-log.entity.js +0 -69
  17. package/dist/lib/entities/drawio-action-log.entity.js.map +0 -1
  18. package/dist/lib/entities/drawio-drawing-version.entity.js +0 -86
  19. package/dist/lib/entities/drawio-drawing-version.entity.js.map +0 -1
  20. package/dist/lib/entities/drawio-drawing.entity.js +0 -94
  21. package/dist/lib/entities/drawio-drawing.entity.js.map +0 -1
  22. package/dist/lib/entities/index.js +0 -4
  23. package/dist/lib/entities/index.js.map +0 -1
  24. package/dist/lib/remote-components/drawio-workbench/src/i18n.js +0 -95
  25. package/dist/lib/remote-components/drawio-workbench/src/i18n.js.map +0 -1
  26. package/dist/lib/remote-components/drawio-workbench/src/react-dom-client-shim.js +0 -4
  27. package/dist/lib/remote-components/drawio-workbench/src/react-dom-client-shim.js.map +0 -1
  28. package/dist/lib/remote-components/drawio-workbench/src/react-dom-shim.js +0 -11
  29. package/dist/lib/remote-components/drawio-workbench/src/react-dom-shim.js.map +0 -1
  30. package/dist/lib/remote-components/drawio-workbench/src/react-jsx-runtime-shim.js +0 -8
  31. package/dist/lib/remote-components/drawio-workbench/src/react-jsx-runtime-shim.js.map +0 -1
  32. package/dist/lib/remote-components/drawio-workbench/src/react-shim.js +0 -36
  33. package/dist/lib/remote-components/drawio-workbench/src/react-shim.js.map +0 -1
  34. package/dist/lib/remote-components/drawio-workbench/src/runtime.js +0 -198
  35. package/dist/lib/remote-components/drawio-workbench/src/runtime.js.map +0 -1
  36. package/dist/lib/remote-components/drawio-workbench/src/styles.js +0 -290
  37. package/dist/lib/remote-components/drawio-workbench/src/styles.js.map +0 -1
  38. package/dist/lib/remote-components/drawio-workbench/src/vendor.js +0 -4
  39. package/dist/lib/remote-components/drawio-workbench/src/vendor.js.map +0 -1
  40. package/dist/lib/types.js +0 -2
  41. package/dist/lib/types.js.map +0 -1
@@ -1,435 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@nestjs/common';
3
- import { existsSync } from 'node:fs';
4
- import { readFile } from 'node:fs/promises';
5
- import { createRequire } from 'node:module';
6
- import { dirname, join } from 'node:path';
7
- import { fileURLToPath } from 'node:url';
8
- import { renderRemoteReactIframeHtml, ViewExtensionProvider } from '@xpert-ai/plugin-sdk';
9
- import { AGENT_WORKBENCH_FIXED_SLOT, AGENT_WORKBENCH_MAIN_SLOT, ASSISTANT_CHAT_SEND_MESSAGE_COMMAND, DRAWIO_FEATURE, DRAWIO_ICON, DRAWIO_MIDDLEWARE_TOOL_NAMES, DRAWIO_PLUGIN_NAME, DRAWIO_PROVIDER_KEY, DRAWIO_REMOTE_ENTRY_KEY, DRAWIO_WORKBENCH_VIEW_KEY } from './constants.js';
10
- import { DrawioService } from './drawio.service.js';
11
- const __filename = fileURLToPath(import.meta.url);
12
- const __dirname = dirname(__filename);
13
- const requireFromHere = createRequire(__filename);
14
- const text = (en_US, zh_Hans) => ({ en_US, zh_Hans });
15
- let DrawioViewProvider = class DrawioViewProvider {
16
- constructor(service) {
17
- this.service = service;
18
- }
19
- supports(context) {
20
- return context.hostType === 'agent';
21
- }
22
- getViewManifests(context, slot) {
23
- if (context.hostType !== 'agent' || (slot !== AGENT_WORKBENCH_MAIN_SLOT && slot !== AGENT_WORKBENCH_FIXED_SLOT)) {
24
- return [];
25
- }
26
- const fixed = slot === AGENT_WORKBENCH_FIXED_SLOT;
27
- return [
28
- {
29
- key: DRAWIO_WORKBENCH_VIEW_KEY,
30
- title: text('draw.io Workbench', 'draw.io 绘图工作台'),
31
- description: text('Create, review, edit, version, import, export, and convert Agent-generated diagrams.', '创建、审核、编辑、版本化、导入导出并转换 Agent 生成的图形。'),
32
- icon: {
33
- type: 'svg',
34
- value: DRAWIO_ICON,
35
- color: '#f59e0b',
36
- alt: 'draw.io'
37
- },
38
- hostType: 'agent',
39
- slot,
40
- order: 40,
41
- refreshable: true,
42
- activation: {
43
- requiredFeatures: [DRAWIO_FEATURE]
44
- },
45
- ...(fixed
46
- ? {
47
- workbench: {
48
- fixed: true,
49
- menu: {
50
- enabled: true,
51
- label: text('draw.io', 'draw.io 绘图'),
52
- order: 40,
53
- icon: {
54
- type: 'svg',
55
- value: DRAWIO_ICON,
56
- alt: 'draw.io'
57
- }
58
- }
59
- }
60
- }
61
- : {}),
62
- source: {
63
- provider: DRAWIO_PROVIDER_KEY,
64
- plugin: DRAWIO_PLUGIN_NAME
65
- },
66
- view: {
67
- type: 'remote_component',
68
- runtime: 'react',
69
- protocolVersion: 1,
70
- component: {
71
- isolation: 'iframe',
72
- entry: DRAWIO_REMOTE_ENTRY_KEY
73
- },
74
- dataSource: {
75
- mode: 'platform'
76
- }
77
- },
78
- dataSource: {
79
- mode: 'platform',
80
- querySchema: {
81
- supportsPagination: true,
82
- supportsSearch: true,
83
- supportsParameters: true,
84
- defaultPageSize: 20
85
- },
86
- cache: {
87
- enabled: false
88
- }
89
- },
90
- hostEvents: {
91
- subscriptions: [
92
- {
93
- key: 'drawio-tool-completed',
94
- event: 'assistant.tool.completed',
95
- filter: {
96
- sources: ['chatkit'],
97
- toolNames: [...DRAWIO_MIDDLEWARE_TOOL_NAMES]
98
- },
99
- action: {
100
- type: 'forward',
101
- debounceMs: 1000
102
- }
103
- }
104
- ]
105
- },
106
- clientCommands: [
107
- {
108
- key: ASSISTANT_CHAT_SEND_MESSAGE_COMMAND,
109
- label: text('Send to Assistant Chat', '发送到 Assistant 对话')
110
- }
111
- ],
112
- actions: [
113
- { key: 'refresh', label: text('Refresh', '刷新'), icon: 'ri-refresh-line', placement: 'toolbar', actionType: 'refresh' },
114
- { key: 'create_drawing', label: text('New Drawing', '新建图形'), icon: 'ri-add-line', placement: 'toolbar', actionType: 'invoke' },
115
- { key: 'save_scene_version', label: text('Save Version', '保存版本'), icon: 'ri-save-line', placement: 'toolbar', actionType: 'invoke' },
116
- { key: 'restore_version', label: text('Restore Version', '恢复版本'), icon: 'ri-history-line', actionType: 'invoke' },
117
- { key: 'mark_reviewed', label: text('Mark Reviewed', '标记已审核'), icon: 'ri-check-line', actionType: 'invoke' },
118
- { key: 'mark_draft', label: text('Move Back to Draft', '退回草稿'), icon: 'ri-edit-line', actionType: 'invoke' },
119
- { key: 'archive_drawing', label: text('Archive Drawing', '归档图形'), icon: 'ri-archive-line', actionType: 'invoke' },
120
- {
121
- key: 'import_scene_file',
122
- label: text('Import draw.io File', '导入 draw.io 文件'),
123
- icon: 'ri-upload-cloud-line',
124
- placement: 'toolbar',
125
- actionType: 'invoke',
126
- transport: 'file'
127
- },
128
- {
129
- key: 'save_converted_mermaid_scene',
130
- label: text('Save Converted Mermaid Scene', '保存 Mermaid 转换结果'),
131
- icon: 'ri-git-branch-line',
132
- actionType: 'invoke'
133
- },
134
- {
135
- key: 'prepare_agent_draw_message',
136
- label: text('Ask Assistant to Draw', '让 Assistant 绘图'),
137
- icon: 'ri-send-plane-line',
138
- placement: 'toolbar',
139
- actionType: 'invoke'
140
- }
141
- ]
142
- }
143
- ];
144
- }
145
- async getRemoteComponentEntry(_context, viewKey, component) {
146
- if (viewKey !== DRAWIO_WORKBENCH_VIEW_KEY || component.entry !== DRAWIO_REMOTE_ENTRY_KEY) {
147
- return {
148
- html: '<!doctype html><html><body>Unsupported draw.io component.</body></html>',
149
- contentType: 'text/html; charset=utf-8'
150
- };
151
- }
152
- const componentDir = join(__dirname, 'remote-components', DRAWIO_REMOTE_ENTRY_KEY);
153
- const appScript = await readFile(join(componentDir, 'app.js'), 'utf8');
154
- const appCssPath = join(componentDir, 'app.css');
155
- const appCss = existsSync(appCssPath) ? await readFile(appCssPath, 'utf8') : '';
156
- const react = await readPackageFile('react', 'umd/react.production.min.js');
157
- const reactDom = await readPackageFile('react-dom', 'umd/react-dom.production.min.js');
158
- return {
159
- html: renderRemoteReactIframeHtml({
160
- title: 'draw.io Workbench',
161
- lang: 'zh-Hans',
162
- reactUmd: react,
163
- reactDomUmd: reactDom,
164
- appScript,
165
- appCss
166
- }),
167
- contentType: 'text/html; charset=utf-8'
168
- };
169
- }
170
- async getViewData(context, viewKey, query) {
171
- if (viewKey !== DRAWIO_WORKBENCH_VIEW_KEY) {
172
- return {};
173
- }
174
- return this.service.getWorkbenchData(scopeFromContext(context), {
175
- drawingId: getStringParameter(query.parameters, 'drawingId') ?? query.selectionId,
176
- status: getStringParameter(query.parameters, 'status'),
177
- kind: getStringParameter(query.parameters, 'kind'),
178
- search: query.search,
179
- page: query.page,
180
- pageSize: query.pageSize
181
- });
182
- }
183
- async executeViewAction(context, viewKey, actionKey, request) {
184
- if (viewKey !== DRAWIO_WORKBENCH_VIEW_KEY) {
185
- return failure('Unsupported view', '不支持的视图');
186
- }
187
- try {
188
- const scope = scopeFromContext(context);
189
- if (actionKey === 'refresh') {
190
- return success('draw.io view refreshed', 'draw.io 视图已刷新');
191
- }
192
- if (actionKey === 'create_drawing') {
193
- const result = await this.service.createDrawing(scope, {
194
- title: requireStringInput(request.input, 'title', 'Diagram title is required.'),
195
- description: getStringInput(request.input, 'description'),
196
- kind: getStringInput(request.input, 'kind'),
197
- tags: getStringArrayInput(request.input, 'tags'),
198
- source: 'workbench'
199
- });
200
- return {
201
- ...success('Diagram created', '图形已创建'),
202
- data: result
203
- };
204
- }
205
- if (actionKey === 'save_scene_version' || actionKey === 'save_converted_mermaid_scene') {
206
- const drawingId = requireDrawingId(request);
207
- const result = await this.service.saveSceneVersion(scope, {
208
- drawingId,
209
- xml: getStringInput(request.input, 'xml'),
210
- mermaidSource: getStringInput(request.input, 'mermaidSource'),
211
- previewSvg: getStringInput(request.input, 'previewSvg'),
212
- previewPng: getStringInput(request.input, 'previewPng'),
213
- descriptor: getRecordInput(request.input, 'descriptor'),
214
- sourceType: actionKey === 'save_converted_mermaid_scene' ? 'workbench_mermaid' : 'workbench',
215
- changeSummary: getStringInput(request.input, 'changeSummary')
216
- });
217
- return {
218
- ...success('Diagram version saved', '图形版本已保存'),
219
- data: result
220
- };
221
- }
222
- if (actionKey === 'restore_version') {
223
- const result = await this.service.restoreVersion(scope, requireDrawingId(request), requireStringInput(request.input, 'versionId', 'Version id is required.'), getStringInput(request.input, 'changeSummary'));
224
- return {
225
- ...success('Diagram version restored', '图形版本已恢复'),
226
- data: result
227
- };
228
- }
229
- if (actionKey === 'archive_drawing') {
230
- const result = await this.service.updateDrawingStatus(scope, {
231
- drawingId: requireDrawingId(request),
232
- status: 'archived',
233
- reason: getStringInput(request.input, 'reason')
234
- });
235
- return {
236
- ...success('Diagram archived', '图形已归档'),
237
- data: result
238
- };
239
- }
240
- if (actionKey === 'mark_reviewed' || actionKey === 'mark_draft') {
241
- const status = actionKey === 'mark_reviewed' ? 'reviewed' : 'draft';
242
- const result = await this.service.updateDrawingStatus(scope, {
243
- drawingId: requireDrawingId(request),
244
- status,
245
- reason: getStringInput(request.input, 'reason')
246
- });
247
- return {
248
- ...success(status === 'reviewed' ? 'Diagram marked as reviewed' : 'Diagram moved back to draft', status === 'reviewed' ? '图形已标记为已审核' : '图形已退回草稿'),
249
- data: result
250
- };
251
- }
252
- if (actionKey === 'prepare_agent_draw_message') {
253
- const prompt = requireStringInput(request.input, 'prompt', 'Drawing request is required.');
254
- return {
255
- ...success('Assistant draw request prepared', 'Assistant 绘图请求已准备'),
256
- data: {
257
- commandKey: ASSISTANT_CHAT_SEND_MESSAGE_COMMAND,
258
- payload: {
259
- text: buildAgentDrawPrompt(prompt, getStringInput(request.input, 'drawingId'))
260
- }
261
- },
262
- refresh: false
263
- };
264
- }
265
- return failure('Unsupported action', '不支持的操作');
266
- }
267
- catch (error) {
268
- const message = getActionErrorMessage(error, 'draw.io action failed');
269
- return {
270
- success: false,
271
- message: text(message, message)
272
- };
273
- }
274
- }
275
- async executeViewFileAction(context, viewKey, actionKey, request, file) {
276
- if (viewKey !== DRAWIO_WORKBENCH_VIEW_KEY) {
277
- return failure('Unsupported view', '不支持的视图');
278
- }
279
- if (actionKey !== 'import_scene_file') {
280
- return failure('Unsupported file action', '不支持的文件操作');
281
- }
282
- try {
283
- const scene = parseDrawioFile(file);
284
- const drawingId = getStringInput(request.input, 'drawingId') ?? getStringParameter(request.parameters, 'drawingId');
285
- const scope = scopeFromContext(context);
286
- const result = drawingId
287
- ? await this.service.saveSceneVersion(scope, {
288
- drawingId,
289
- xml: scene.xml,
290
- mermaidSource: scene.mermaidSource,
291
- previewSvg: scene.previewSvg,
292
- previewPng: scene.previewPng,
293
- descriptor: scene.descriptor,
294
- sourceType: 'import',
295
- changeSummary: `Imported ${file.originalname ?? 'draw.io file'}`
296
- })
297
- : await this.service.createDrawing(scope, {
298
- title: getStringInput(request.input, 'title') ?? removeDrawioExtension(file.originalname) ?? 'Imported draw.io Diagram',
299
- description: getStringInput(request.input, 'description'),
300
- kind: 'diagram',
301
- source: 'import',
302
- xml: scene.xml,
303
- mermaidSource: scene.mermaidSource,
304
- previewSvg: scene.previewSvg,
305
- previewPng: scene.previewPng,
306
- descriptor: scene.descriptor,
307
- changeSummary: `Imported ${file.originalname ?? 'draw.io file'}`
308
- });
309
- return {
310
- ...success('draw.io file imported', 'draw.io 文件已导入'),
311
- data: result
312
- };
313
- }
314
- catch (error) {
315
- const message = getActionErrorMessage(error, 'Failed to import draw.io file');
316
- return {
317
- success: false,
318
- message: text(message, message)
319
- };
320
- }
321
- }
322
- };
323
- DrawioViewProvider = __decorate([
324
- Injectable(),
325
- ViewExtensionProvider(DRAWIO_PROVIDER_KEY),
326
- __metadata("design:paramtypes", [DrawioService])
327
- ], DrawioViewProvider);
328
- export { DrawioViewProvider };
329
- async function readPackageFile(packageName, relativePath) {
330
- const packageRoot = dirname(requireFromHere.resolve(`${packageName}/package.json`));
331
- return readFile(join(packageRoot, relativePath), 'utf8');
332
- }
333
- function scopeFromContext(context) {
334
- return {
335
- tenantId: context.tenantId,
336
- organizationId: context.organizationId ?? null,
337
- workspaceId: context.workspaceId ?? null,
338
- projectId: null,
339
- userId: context.userId,
340
- assistantId: context.hostType === 'agent' ? context.hostId : null
341
- };
342
- }
343
- function success(en_US, zh_Hans) {
344
- return {
345
- success: true,
346
- message: text(en_US, zh_Hans),
347
- refresh: true
348
- };
349
- }
350
- function failure(en_US, zh_Hans) {
351
- return {
352
- success: false,
353
- message: text(en_US, zh_Hans)
354
- };
355
- }
356
- function requireDrawingId(request) {
357
- return (getStringInput(request.input, 'drawingId') ??
358
- getStringParameter(request.parameters, 'drawingId') ??
359
- requireString(request.targetId, 'Drawing id is required.'));
360
- }
361
- function requireStringInput(input, key, message) {
362
- return requireString(getStringInput(input, key), message);
363
- }
364
- function requireString(value, message) {
365
- const normalized = value?.trim();
366
- if (!normalized) {
367
- throw new Error(message);
368
- }
369
- return normalized;
370
- }
371
- function getStringInput(input, key) {
372
- const value = input?.[key];
373
- return typeof value === 'string' && value.trim() ? value.trim() : undefined;
374
- }
375
- function getStringArrayInput(input, key) {
376
- const value = input?.[key];
377
- if (!Array.isArray(value)) {
378
- return undefined;
379
- }
380
- return value.filter((item) => typeof item === 'string' && item.trim().length > 0).map((item) => item.trim());
381
- }
382
- function getRecordInput(input, key) {
383
- const value = input?.[key];
384
- return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
385
- }
386
- function getStringParameter(parameters, key) {
387
- const value = parameters?.[key];
388
- if (typeof value === 'string' && value.trim()) {
389
- return value.trim();
390
- }
391
- return undefined;
392
- }
393
- function getActionErrorMessage(error, fallback) {
394
- return error instanceof Error && error.message ? error.message : fallback;
395
- }
396
- function parseDrawioFile(file) {
397
- const raw = file.buffer.toString('utf8');
398
- const trimmed = raw.trim();
399
- if (trimmed.startsWith('{')) {
400
- const parsed = JSON.parse(trimmed);
401
- return {
402
- xml: typeof parsed.xml === 'string' ? parsed.xml : null,
403
- mermaidSource: typeof parsed.mermaidSource === 'string' ? parsed.mermaidSource : null,
404
- previewSvg: typeof parsed.previewSvg === 'string' ? parsed.previewSvg : null,
405
- previewPng: typeof parsed.previewPng === 'string' ? parsed.previewPng : null,
406
- descriptor: parsed.descriptor && typeof parsed.descriptor === 'object' && !Array.isArray(parsed.descriptor)
407
- ? parsed.descriptor
408
- : {}
409
- };
410
- }
411
- return {
412
- xml: trimmed,
413
- mermaidSource: null,
414
- previewSvg: trimmed.startsWith('<svg') ? trimmed : null,
415
- previewPng: null,
416
- descriptor: {}
417
- };
418
- }
419
- function removeDrawioExtension(name) {
420
- const normalized = name?.trim();
421
- if (!normalized) {
422
- return undefined;
423
- }
424
- return normalized.replace(/\.(drawio|diagram|xml)(?:\.json)?$/i, '').replace(/\.json$/i, '') || normalized;
425
- }
426
- function buildAgentDrawPrompt(prompt, drawingId) {
427
- const context = drawingId ? `请更新当前 draw.io 图形 drawingId=${drawingId}。` : '请创建一张新的 draw.io 图形。';
428
- return `${context}
429
-
430
- 用户绘图需求:
431
- ${prompt}
432
-
433
- 请优先判断是否适合 Mermaid 草稿;流程图、架构流、状态流可调用 drawio_save_mermaid_draft。需要精确布局或自由图形时,生成 diagrams.net/draw.io XML 并调用 drawio_create_diagram、drawio_save_scene_version 或 drawio_patch_scene。更新已有图形前先调用 drawio_get_diagram。`;
434
- }
435
- //# sourceMappingURL=drawio-view.provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawio-view.provider.js","sourceRoot":"","sources":["../../src/lib/drawio-view.provider.ts"],"names":[],"mappings":"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"}
@@ -1,159 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@nestjs/common';
3
- import { tool } from '@langchain/core/tools';
4
- import { AgentMiddlewareStrategy, RequestContext } from '@xpert-ai/plugin-sdk';
5
- import { z } from 'zod/v3';
6
- import { DRAWIO_CREATE_DRAWING_TOOL_NAME, DRAWIO_FEATURE, DRAWIO_GET_DRAWING_TOOL_NAME, DRAWIO_ICON, DRAWIO_MIDDLEWARE_NAME, DRAWIO_PATCH_SCENE_TOOL_NAME, DRAWIO_REPORT_FAILURE_TOOL_NAME, DRAWIO_SAVE_MERMAID_DRAFT_TOOL_NAME, DRAWIO_SAVE_SCENE_VERSION_TOOL_NAME, DRAWIO_SEARCH_DRAWINGS_TOOL_NAME, DRAWIO_UPDATE_DRAWING_STATUS_TOOL_NAME } from './constants.js';
7
- import { DrawioService } from './drawio.service.js';
8
- const drawingKindSchema = z.enum(['diagram', 'flowchart', 'architecture', 'network', 'wireframe', 'sequence', 'other']);
9
- const drawingStatusSchema = z.enum(['draft', 'reviewed', 'archived']);
10
- const versionSourceSchema = z.enum(['agent_xml', 'agent_patch', 'agent_mermaid', 'workbench', 'workbench_mermaid', 'import', 'restore']);
11
- const recordSchema = z.record(z.unknown());
12
- const sceneSchema = z.object({
13
- xml: z.string().optional().describe('draw.io XML, usually an <mxfile> or <mxGraphModel> document.'),
14
- mermaidSource: z.string().optional().describe('Original Mermaid source when this diagram came from Mermaid.'),
15
- previewSvg: z.string().optional().describe('Optional SVG preview exported from diagrams.net.'),
16
- previewPng: z.string().optional().describe('Optional PNG data URI preview exported from diagrams.net.'),
17
- descriptor: recordSchema.optional().describe('Optional diagrams.net JSON protocol descriptor, such as {format:"mermaid",data:"..."}')
18
- });
19
- const createDrawingSchema = sceneSchema.extend({
20
- title: z.string().min(1).describe('Human-readable diagram title.'),
21
- description: z.string().optional(),
22
- kind: drawingKindSchema.optional(),
23
- tags: z.array(z.string()).optional(),
24
- source: z.string().optional().describe('Short source label, such as user_request, agent_plan, or imported_file.'),
25
- changeSummary: z.string().optional().describe('Short summary for the initial version.')
26
- });
27
- const saveSceneVersionSchema = sceneSchema.extend({
28
- drawingId: z.string().min(1).describe('Existing draw.io diagram id.'),
29
- sourceType: versionSourceSchema.optional().describe('Where this version came from. Agent-created XML should use agent_xml.'),
30
- changeSummary: z.string().optional()
31
- });
32
- const patchSceneSchema = sceneSchema.extend({
33
- drawingId: z.string().min(1).describe('Existing draw.io diagram id.'),
34
- changeSummary: z.string().optional()
35
- });
36
- const saveMermaidDraftSchema = z.object({
37
- drawingId: z.string().optional().describe('Existing diagram id. Omit to create a new diagram for this Mermaid draft.'),
38
- title: z.string().optional().describe('Required when drawingId is omitted; otherwise used only as context.'),
39
- description: z.string().optional(),
40
- kind: drawingKindSchema.optional(),
41
- mermaidSource: z.string().min(1).describe('Mermaid diagram source. The Workbench loads it via diagrams.net descriptor import.'),
42
- changeSummary: z.string().optional()
43
- });
44
- const searchDrawingsSchema = z.object({
45
- status: drawingStatusSchema.optional(),
46
- kind: drawingKindSchema.optional(),
47
- search: z.string().optional(),
48
- page: z.number().int().min(1).optional(),
49
- pageSize: z.number().int().min(1).max(100).optional()
50
- });
51
- const getDrawingSchema = z.object({
52
- drawingId: z.string().min(1)
53
- });
54
- const updateDrawingStatusSchema = z.object({
55
- drawingId: z.string().min(1),
56
- status: drawingStatusSchema,
57
- reason: z.string().optional()
58
- });
59
- const reportFailureSchema = z.object({
60
- drawingId: z.string().optional(),
61
- versionId: z.string().optional(),
62
- operation: z.string().min(1),
63
- errorMessage: z.string().min(1),
64
- recoverable: z.boolean().optional(),
65
- evidence: z.unknown().optional()
66
- });
67
- let DrawioMiddleware = class DrawioMiddleware {
68
- constructor(service) {
69
- this.service = service;
70
- this.meta = {
71
- name: DRAWIO_MIDDLEWARE_NAME,
72
- label: {
73
- en_US: 'draw.io',
74
- zh_Hans: 'draw.io 绘图'
75
- },
76
- description: {
77
- en_US: 'Create, update, version, search, and recover draw.io diagrams from an Agent.',
78
- zh_Hans: '让 Agent 创建、更新、版本化、检索和恢复 draw.io 图形。'
79
- },
80
- icon: {
81
- type: 'svg',
82
- value: DRAWIO_ICON,
83
- color: '#f59e0b'
84
- },
85
- features: [DRAWIO_FEATURE],
86
- configSchema: {
87
- type: 'object',
88
- properties: {},
89
- required: []
90
- }
91
- };
92
- }
93
- createMiddleware(_options, context) {
94
- const scope = scopeFromContext(context);
95
- return {
96
- name: DRAWIO_MIDDLEWARE_NAME,
97
- tools: [
98
- tool(async (input) => JSON.stringify(await this.service.createDrawing(scope, input), null, 2), {
99
- name: DRAWIO_CREATE_DRAWING_TOOL_NAME,
100
- description: 'Create a reviewable draw.io diagram. Include initial XML when you can produce valid diagrams.net XML; otherwise create a diagram and save a Mermaid draft.',
101
- schema: createDrawingSchema
102
- }),
103
- tool(async (input) => JSON.stringify(await this.service.saveSceneVersion(scope, input), null, 2), {
104
- name: DRAWIO_SAVE_SCENE_VERSION_TOOL_NAME,
105
- description: 'Save a complete draw.io XML scene as a new version for an existing diagram. Call drawio_get_diagram first when updating a user-edited diagram.',
106
- schema: saveSceneVersionSchema
107
- }),
108
- tool(async (input) => JSON.stringify(await this.service.patchScene(scope, input), null, 2), {
109
- name: DRAWIO_PATCH_SCENE_TOOL_NAME,
110
- description: 'Save a targeted replacement of the current draw.io XML, Mermaid source, descriptor, or preview fields as a new version.',
111
- schema: patchSceneSchema
112
- }),
113
- tool(async (input) => JSON.stringify(await this.service.saveMermaidDraft(scope, input), null, 2), {
114
- name: DRAWIO_SAVE_MERMAID_DRAFT_TOOL_NAME,
115
- description: 'Save Mermaid source for conversion in the draw.io workbench. Use this for flowcharts, architecture flows, state diagrams, and sequence-style drafts.',
116
- schema: saveMermaidDraftSchema
117
- }),
118
- tool(async (input) => JSON.stringify(await this.service.searchDrawings(scope, input), null, 2), {
119
- name: DRAWIO_SEARCH_DRAWINGS_TOOL_NAME,
120
- description: 'Search existing draw.io diagrams by status, kind, keyword, and pagination.',
121
- schema: searchDrawingsSchema
122
- }),
123
- tool(async (input) => JSON.stringify(await this.service.getDrawing(scope, input.drawingId), null, 2), {
124
- name: DRAWIO_GET_DRAWING_TOOL_NAME,
125
- description: 'Get a diagram with current XML version, Mermaid source, version history, and recent action logs.',
126
- schema: getDrawingSchema
127
- }),
128
- tool(async (input) => JSON.stringify(await this.service.updateDrawingStatus(scope, input), null, 2), {
129
- name: DRAWIO_UPDATE_DRAWING_STATUS_TOOL_NAME,
130
- description: 'Update a draw.io diagram status to draft, reviewed, or archived after user confirmation.',
131
- schema: updateDrawingStatusSchema
132
- }),
133
- tool(async (input) => JSON.stringify(await this.service.reportFailure(scope, input), null, 2), {
134
- name: DRAWIO_REPORT_FAILURE_TOOL_NAME,
135
- description: 'Record a failed draw.io generation, XML import, Mermaid conversion, or export attempt with recoverability and evidence.',
136
- schema: reportFailureSchema
137
- })
138
- ]
139
- };
140
- }
141
- };
142
- DrawioMiddleware = __decorate([
143
- Injectable(),
144
- AgentMiddlewareStrategy(DRAWIO_MIDDLEWARE_NAME),
145
- __metadata("design:paramtypes", [DrawioService])
146
- ], DrawioMiddleware);
147
- export { DrawioMiddleware };
148
- function scopeFromContext(context) {
149
- return {
150
- tenantId: context.tenantId,
151
- organizationId: context.organizationId === undefined ? RequestContext.getOrganizationId() : context.organizationId,
152
- workspaceId: context.workspaceId ?? null,
153
- projectId: context.projectId ?? null,
154
- userId: context.userId,
155
- conversationId: context.conversationId ?? null,
156
- assistantId: context.xpertId ?? null
157
- };
158
- }
159
- //# sourceMappingURL=drawio.middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawio.middleware.js","sourceRoot":"","sources":["../../src/lib/drawio.middleware.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE5C,OAAO,EAEL,uBAAuB,EAIvB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EACL,+BAA+B,EAC/B,cAAc,EACd,4BAA4B,EAC5B,WAAW,EACX,sBAAsB,EACtB,4BAA4B,EAC5B,+BAA+B,EAC/B,mCAAmC,EACnC,mCAAmC,EACnC,gCAAgC,EAChC,sCAAsC,EACvC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;AACvH,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA;AACrE,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;AACxI,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAC1C,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IACnG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC7G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IAC9F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACvG,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uFAAuF,CAAC;CACtI,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IACjH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CACxF,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,WAAW,CAAC,MAAM,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACrE,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IAC5H,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACrE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;IACtH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAC5G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oFAAoF,CAAC;IAC/H,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAA;AAEF,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAA;AAIK,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAwB3B,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;QAvB1C,SAAI,GAAyB;YACpC,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE;gBACL,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,YAAY;aACtB;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,8EAA8E;gBACrF,OAAO,EAAE,qCAAqC;aAC/C;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,SAAS;aACjB;YACD,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;aACb;SACF,CAAA;IAEqD,CAAC;IAEvD,gBAAgB,CAAC,QAA+B,EAAE,OAAgC;QAChF,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAEvC,OAAO;YACL,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE;gBACL,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACxF;oBACE,IAAI,EAAE,+BAA+B;oBACrC,WAAW,EACT,4JAA4J;oBAC9J,MAAM,EAAE,mBAAmB;iBAC5B,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAC3F;oBACE,IAAI,EAAE,mCAAmC;oBACzC,WAAW,EACT,gJAAgJ;oBAClJ,MAAM,EAAE,sBAAsB;iBAC/B,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACrF;oBACE,IAAI,EAAE,4BAA4B;oBAClC,WAAW,EACT,yHAAyH;oBAC3H,MAAM,EAAE,gBAAgB;iBACzB,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAC3F;oBACE,IAAI,EAAE,mCAAmC;oBACzC,WAAW,EACT,sJAAsJ;oBACxJ,MAAM,EAAE,sBAAsB;iBAC/B,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACzF;oBACE,IAAI,EAAE,gCAAgC;oBACtC,WAAW,EAAE,4EAA4E;oBACzF,MAAM,EAAE,oBAAoB;iBAC7B,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAC/F;oBACE,IAAI,EAAE,4BAA4B;oBAClC,WAAW,EAAE,kGAAkG;oBAC/G,MAAM,EAAE,gBAAgB;iBACzB,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAC9F;oBACE,IAAI,EAAE,sCAAsC;oBAC5C,WAAW,EAAE,0FAA0F;oBACvG,MAAM,EAAE,yBAAyB;iBAClC,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACxF;oBACE,IAAI,EAAE,+BAA+B;oBACrC,WAAW,EACT,yHAAyH;oBAC3H,MAAM,EAAE,mBAAmB;iBAC5B,CACF;aACF;SACF,CAAA;IACH,CAAC;CACF,CAAA;AAxGY,gBAAgB;IAF5B,UAAU,EAAE;IACZ,uBAAuB,CAAC,sBAAsB,CAAC;qCAyBR,aAAa;GAxBxC,gBAAgB,CAwG5B;;AAED,SAAS,gBAAgB,CAAC,OAAgC;IACxD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,cAAc,EAAE,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;QAClH,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;QAC9C,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;KACrC,CAAA;AACH,CAAC"}