@xpert-ai/plugin-canvas 0.1.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.
Files changed (109) hide show
  1. package/.xpertai-plugin/plugin.json +121 -0
  2. package/README.md +14 -0
  3. package/assets/composerIcon.svg +8 -0
  4. package/assets/logo.svg +47 -0
  5. package/dist/index.d.ts +15 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +144 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/lib/canvas-agent-response.d.ts +40 -0
  10. package/dist/lib/canvas-agent-response.d.ts.map +1 -0
  11. package/dist/lib/canvas-agent-response.js +54 -0
  12. package/dist/lib/canvas-agent-response.js.map +1 -0
  13. package/dist/lib/canvas-snapshot.validation.d.ts +52 -0
  14. package/dist/lib/canvas-snapshot.validation.d.ts.map +1 -0
  15. package/dist/lib/canvas-snapshot.validation.js +223 -0
  16. package/dist/lib/canvas-snapshot.validation.js.map +1 -0
  17. package/dist/lib/canvas-view.provider.d.ts +14 -0
  18. package/dist/lib/canvas-view.provider.d.ts.map +1 -0
  19. package/dist/lib/canvas-view.provider.js +529 -0
  20. package/dist/lib/canvas-view.provider.js.map +1 -0
  21. package/dist/lib/canvas.middleware.d.ts +10 -0
  22. package/dist/lib/canvas.middleware.d.ts.map +1 -0
  23. package/dist/lib/canvas.middleware.js +277 -0
  24. package/dist/lib/canvas.middleware.js.map +1 -0
  25. package/dist/lib/canvas.plugin.d.ts +8 -0
  26. package/dist/lib/canvas.plugin.d.ts.map +1 -0
  27. package/dist/lib/canvas.plugin.js +27 -0
  28. package/dist/lib/canvas.plugin.js.map +1 -0
  29. package/dist/lib/canvas.service.d.ts +1514 -0
  30. package/dist/lib/canvas.service.d.ts.map +1 -0
  31. package/dist/lib/canvas.service.js +1290 -0
  32. package/dist/lib/canvas.service.js.map +1 -0
  33. package/dist/lib/canvas.templates.d.ts +3 -0
  34. package/dist/lib/canvas.templates.d.ts.map +1 -0
  35. package/dist/lib/canvas.templates.js +79 -0
  36. package/dist/lib/canvas.templates.js.map +1 -0
  37. package/dist/lib/constants.d.ts +26 -0
  38. package/dist/lib/constants.d.ts.map +1 -0
  39. package/dist/lib/constants.js +44 -0
  40. package/dist/lib/constants.js.map +1 -0
  41. package/dist/lib/entities/canvas-action-log.entity.d.ts +18 -0
  42. package/dist/lib/entities/canvas-action-log.entity.d.ts.map +1 -0
  43. package/dist/lib/entities/canvas-action-log.entity.js +69 -0
  44. package/dist/lib/entities/canvas-action-log.entity.js.map +1 -0
  45. package/dist/lib/entities/canvas-document-version.entity.d.ts +27 -0
  46. package/dist/lib/entities/canvas-document-version.entity.d.ts.map +1 -0
  47. package/dist/lib/entities/canvas-document-version.entity.js +106 -0
  48. package/dist/lib/entities/canvas-document-version.entity.js.map +1 -0
  49. package/dist/lib/entities/canvas-document.entity.d.ts +36 -0
  50. package/dist/lib/entities/canvas-document.entity.d.ts.map +1 -0
  51. package/dist/lib/entities/canvas-document.entity.js +142 -0
  52. package/dist/lib/entities/canvas-document.entity.js.map +1 -0
  53. package/dist/lib/entities/index.d.ts +4 -0
  54. package/dist/lib/entities/index.d.ts.map +1 -0
  55. package/dist/lib/entities/index.js +4 -0
  56. package/dist/lib/entities/index.js.map +1 -0
  57. package/dist/lib/remote-components/canvas-workbench/app.css +1 -0
  58. package/dist/lib/remote-components/canvas-workbench/app.js +1707 -0
  59. package/dist/lib/remote-components/canvas-workbench/src/autosave.d.ts +39 -0
  60. package/dist/lib/remote-components/canvas-workbench/src/autosave.d.ts.map +1 -0
  61. package/dist/lib/remote-components/canvas-workbench/src/autosave.js +155 -0
  62. package/dist/lib/remote-components/canvas-workbench/src/autosave.js.map +1 -0
  63. package/dist/lib/remote-components/canvas-workbench/src/i18n.d.ts +3 -0
  64. package/dist/lib/remote-components/canvas-workbench/src/i18n.d.ts.map +1 -0
  65. package/dist/lib/remote-components/canvas-workbench/src/i18n.js +79 -0
  66. package/dist/lib/remote-components/canvas-workbench/src/i18n.js.map +1 -0
  67. package/dist/lib/remote-components/canvas-workbench/src/react-dom-client-shim.d.ts +4 -0
  68. package/dist/lib/remote-components/canvas-workbench/src/react-dom-client-shim.d.ts.map +1 -0
  69. package/dist/lib/remote-components/canvas-workbench/src/react-dom-client-shim.js +7 -0
  70. package/dist/lib/remote-components/canvas-workbench/src/react-dom-client-shim.js.map +1 -0
  71. package/dist/lib/remote-components/canvas-workbench/src/react-dom-shim.d.ts +14 -0
  72. package/dist/lib/remote-components/canvas-workbench/src/react-dom-shim.d.ts.map +1 -0
  73. package/dist/lib/remote-components/canvas-workbench/src/react-dom-shim.js +14 -0
  74. package/dist/lib/remote-components/canvas-workbench/src/react-dom-shim.js.map +1 -0
  75. package/dist/lib/remote-components/canvas-workbench/src/react-jsx-runtime-shim.d.ts +7 -0
  76. package/dist/lib/remote-components/canvas-workbench/src/react-jsx-runtime-shim.d.ts.map +1 -0
  77. package/dist/lib/remote-components/canvas-workbench/src/react-jsx-runtime-shim.js +26 -0
  78. package/dist/lib/remote-components/canvas-workbench/src/react-jsx-runtime-shim.js.map +1 -0
  79. package/dist/lib/remote-components/canvas-workbench/src/react-shim.d.ts +47 -0
  80. package/dist/lib/remote-components/canvas-workbench/src/react-shim.d.ts.map +1 -0
  81. package/dist/lib/remote-components/canvas-workbench/src/react-shim.js +39 -0
  82. package/dist/lib/remote-components/canvas-workbench/src/react-shim.js.map +1 -0
  83. package/dist/lib/remote-components/canvas-workbench/src/runtime.d.ts +45 -0
  84. package/dist/lib/remote-components/canvas-workbench/src/runtime.d.ts.map +1 -0
  85. package/dist/lib/remote-components/canvas-workbench/src/runtime.js +199 -0
  86. package/dist/lib/remote-components/canvas-workbench/src/runtime.js.map +1 -0
  87. package/dist/lib/remote-components/canvas-workbench/src/selection-context.d.ts +55 -0
  88. package/dist/lib/remote-components/canvas-workbench/src/selection-context.d.ts.map +1 -0
  89. package/dist/lib/remote-components/canvas-workbench/src/selection-context.js +49 -0
  90. package/dist/lib/remote-components/canvas-workbench/src/selection-context.js.map +1 -0
  91. package/dist/lib/remote-components/canvas-workbench/src/styles.d.ts +2 -0
  92. package/dist/lib/remote-components/canvas-workbench/src/styles.d.ts.map +1 -0
  93. package/dist/lib/remote-components/canvas-workbench/src/styles.js +333 -0
  94. package/dist/lib/remote-components/canvas-workbench/src/styles.js.map +1 -0
  95. package/dist/lib/remote-components/canvas-workbench/src/tool-event-refresh.d.ts +14 -0
  96. package/dist/lib/remote-components/canvas-workbench/src/tool-event-refresh.d.ts.map +1 -0
  97. package/dist/lib/remote-components/canvas-workbench/src/tool-event-refresh.js +19 -0
  98. package/dist/lib/remote-components/canvas-workbench/src/tool-event-refresh.js.map +1 -0
  99. package/dist/lib/remote-components/canvas-workbench/src/vendor.d.ts +9 -0
  100. package/dist/lib/remote-components/canvas-workbench/src/vendor.d.ts.map +1 -0
  101. package/dist/lib/remote-components/canvas-workbench/src/vendor.js +7 -0
  102. package/dist/lib/remote-components/canvas-workbench/src/vendor.js.map +1 -0
  103. package/dist/lib/types.d.ts +180 -0
  104. package/dist/lib/types.d.ts.map +1 -0
  105. package/dist/lib/types.js +2 -0
  106. package/dist/lib/types.js.map +1 -0
  107. package/dist/xpert-canvas-assistant.yaml +168 -0
  108. package/package.json +91 -0
  109. package/skills/canvas-agent-skill/SKILL.md +144 -0
@@ -0,0 +1,223 @@
1
+ import { createTLStore } from 'tldraw';
2
+ export class CanvasSnapshotValidationError extends Error {
3
+ constructor(issues) {
4
+ super(issues.map((issue) => `${issue.id}: ${issue.reason}`).join('; '));
5
+ this.issues = issues;
6
+ this.name = 'CanvasSnapshotValidationError';
7
+ }
8
+ }
9
+ export function isCanvasSnapshot(value) {
10
+ return Boolean(isPlainObject(value) && isPlainObject(value.store) && value.schema !== undefined);
11
+ }
12
+ export function createEmptyCanvasSnapshot() {
13
+ const store = createTLStore();
14
+ const snapshot = store.getStoreSnapshot();
15
+ return normalizeCanvasSnapshot({
16
+ schema: snapshot.schema,
17
+ store: snapshot.store
18
+ });
19
+ }
20
+ export function normalizeCanvasSnapshot(snapshot) {
21
+ const result = sanitizeCanvasSnapshot(snapshot);
22
+ if (!result.snapshot) {
23
+ throw new CanvasSnapshotValidationError(result.skippedRecords.length ? result.skippedRecords : [issueFor(snapshot, 'Invalid tldraw snapshot.')]);
24
+ }
25
+ return result.snapshot;
26
+ }
27
+ export function sanitizeCanvasSnapshot(snapshot) {
28
+ if (!isCanvasSnapshot(snapshot)) {
29
+ return { snapshot: null, skippedRecords: [] };
30
+ }
31
+ const validationStore = createTLStore();
32
+ const migrationStore = validationStore;
33
+ const skippedRecords = [];
34
+ let migratedSnapshot;
35
+ try {
36
+ const migrationResult = typeof migrationStore.migrateSnapshot === 'function' ? migrationStore.migrateSnapshot(snapshot) : snapshot;
37
+ migratedSnapshot = toCanvasSnapshotData(migrationResult);
38
+ }
39
+ catch (error) {
40
+ return {
41
+ snapshot: null,
42
+ skippedRecords: [
43
+ {
44
+ id: '(snapshot)',
45
+ typeName: 'snapshot',
46
+ type: null,
47
+ reason: firstErrorLine(error instanceof Error ? error : String(error))
48
+ }
49
+ ]
50
+ };
51
+ }
52
+ const validStore = {};
53
+ for (const record of Object.values(migratedSnapshot.store ?? {})) {
54
+ if (!isCanvasRecord(record)) {
55
+ skippedRecords.push(issueFor(record, 'Record must be an object.'));
56
+ continue;
57
+ }
58
+ try {
59
+ validationStore.put([record], 'initialize');
60
+ const storedRecord = validationStore.get(record.id);
61
+ if (storedRecord && isCanvasRecord(storedRecord)) {
62
+ validStore[record.id] = storedRecord;
63
+ }
64
+ }
65
+ catch (error) {
66
+ skippedRecords.push(issueFor(record, error instanceof Error ? error : String(error)));
67
+ }
68
+ }
69
+ const prunedStore = pruneRecordsWithMissingDependencies(validStore, skippedRecords);
70
+ return {
71
+ snapshot: {
72
+ schema: migratedSnapshot.schema,
73
+ store: prunedStore
74
+ },
75
+ skippedRecords
76
+ };
77
+ }
78
+ export function summarizeSnapshot(snapshot) {
79
+ if (!isCanvasSnapshot(snapshot)) {
80
+ return {
81
+ recordCount: 0,
82
+ pageCount: 0,
83
+ shapeCount: 0,
84
+ assetCount: 0
85
+ };
86
+ }
87
+ const records = Object.values(snapshot.store ?? {});
88
+ return {
89
+ recordCount: records.length,
90
+ pageCount: records.filter((record) => record.typeName === 'page').length,
91
+ shapeCount: records.filter((record) => record.typeName === 'shape').length,
92
+ assetCount: records.filter((record) => record.typeName === 'asset').length
93
+ };
94
+ }
95
+ export function compactSnapshotForAgent(snapshot) {
96
+ if (!isCanvasSnapshot(snapshot)) {
97
+ return null;
98
+ }
99
+ const records = Object.values(snapshot.store ?? {});
100
+ return {
101
+ ...summarizeSnapshot(snapshot),
102
+ pages: records
103
+ .filter((record) => record.typeName === 'page')
104
+ .map((record) => ({ id: record.id, name: record.name, index: record.index })),
105
+ shapes: records
106
+ .filter((record) => record.typeName === 'shape')
107
+ .slice(0, 200)
108
+ .map((record) => compactShapeRecord(record))
109
+ };
110
+ }
111
+ export function compactRecordForAgent(record) {
112
+ if (!isPlainObject(record)) {
113
+ return record;
114
+ }
115
+ if (!isCanvasRecord(record)) {
116
+ return record;
117
+ }
118
+ if (record.typeName === 'asset' && record.type === 'image') {
119
+ const props = isPlainObject(record.props) ? record.props : {};
120
+ const src = typeof props.src === 'string' ? props.src : '';
121
+ return {
122
+ ...record,
123
+ props: {
124
+ ...props,
125
+ src: src.startsWith('data:') ? `[data-url:${src.length}]` : src
126
+ }
127
+ };
128
+ }
129
+ if (record.typeName === 'shape') {
130
+ return compactShapeRecord(record);
131
+ }
132
+ return record;
133
+ }
134
+ function compactShapeRecord(record) {
135
+ const props = isPlainObject(record.props) ? record.props : {};
136
+ return {
137
+ id: record.id,
138
+ typeName: record.typeName,
139
+ type: record.type,
140
+ parentId: record.parentId,
141
+ index: record.index,
142
+ x: record.x,
143
+ y: record.y,
144
+ rotation: record.rotation,
145
+ meta: record.meta,
146
+ props: compactShapeProps(props)
147
+ };
148
+ }
149
+ function compactShapeProps(props) {
150
+ const compact = {};
151
+ for (const key of ['w', 'h', 'name', 'text', 'richText', 'assetId', 'url', 'altText', 'color', 'size', 'dash', 'fill', 'start', 'end']) {
152
+ if (props[key] !== undefined) {
153
+ compact[key] = props[key];
154
+ }
155
+ }
156
+ return compact;
157
+ }
158
+ function getRecordDependencies(record) {
159
+ const dependencies = [];
160
+ if (record.typeName === 'shape') {
161
+ if (typeof record.parentId === 'string') {
162
+ dependencies.push(record.parentId);
163
+ }
164
+ if (record.type === 'image' && isPlainObject(record.props) && typeof record.props.assetId === 'string') {
165
+ dependencies.push(record.props.assetId);
166
+ }
167
+ }
168
+ if (record.typeName === 'binding') {
169
+ const props = isPlainObject(record.props) ? record.props : {};
170
+ const fromId = typeof record.fromId === 'string' ? record.fromId : props.fromId;
171
+ const toId = typeof record.toId === 'string' ? record.toId : props.toId;
172
+ if (typeof fromId === 'string') {
173
+ dependencies.push(fromId);
174
+ }
175
+ if (typeof toId === 'string') {
176
+ dependencies.push(toId);
177
+ }
178
+ }
179
+ return dependencies;
180
+ }
181
+ function pruneRecordsWithMissingDependencies(store, skippedRecords) {
182
+ const prunedStore = { ...store };
183
+ let changed = true;
184
+ while (changed) {
185
+ changed = false;
186
+ for (const record of Object.values(prunedStore)) {
187
+ const missingDependency = getRecordDependencies(record).find((id) => !prunedStore[id]);
188
+ if (!missingDependency) {
189
+ continue;
190
+ }
191
+ delete prunedStore[String(record.id)];
192
+ skippedRecords.push(issueFor(record, `Missing dependent record: ${missingDependency}`));
193
+ changed = true;
194
+ }
195
+ }
196
+ return prunedStore;
197
+ }
198
+ function issueFor(record, reason) {
199
+ const object = isPlainObject(record) ? record : {};
200
+ return {
201
+ id: typeof object.id === 'string' ? object.id : '(missing id)',
202
+ typeName: typeof object.typeName === 'string' ? object.typeName : '(missing typeName)',
203
+ type: typeof object.type === 'string' ? object.type : null,
204
+ reason: firstErrorLine(reason)
205
+ };
206
+ }
207
+ function firstErrorLine(error) {
208
+ return error instanceof Error ? error.message.split('\n')[0] : String(error).split('\n')[0];
209
+ }
210
+ function isPlainObject(value) {
211
+ return Boolean(value && typeof value === 'object' && !Array.isArray(value));
212
+ }
213
+ function isCanvasRecord(value) {
214
+ return isPlainObject(value) && typeof value.id === 'string';
215
+ }
216
+ function toCanvasSnapshotData(value) {
217
+ const object = isPlainObject(value) ? value : {};
218
+ return {
219
+ schema: (object.schema ?? {}),
220
+ store: isPlainObject(object.store) ? object.store : {}
221
+ };
222
+ }
223
+ //# sourceMappingURL=canvas-snapshot.validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-snapshot.validation.js","sourceRoot":"","sources":["../../src/lib/canvas-snapshot.validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { XpertExtensionViewManifest, XpertRemoteComponentEntry, XpertRemoteComponentViewSchema, XpertResolvedViewHostContext, XpertViewActionRequest, XpertViewActionResult, XpertViewDataResult, XpertViewQuery } from '@xpert-ai/contracts';
2
+ import { IXpertViewExtensionProvider, XpertViewFileActionFile } from '@xpert-ai/plugin-sdk';
3
+ import { CanvasService } from './canvas.service.js';
4
+ export declare class CanvasViewProvider implements IXpertViewExtensionProvider {
5
+ private readonly service;
6
+ constructor(service: CanvasService);
7
+ supports(context: XpertResolvedViewHostContext): boolean;
8
+ getViewManifests(context: XpertResolvedViewHostContext, slot: string): XpertExtensionViewManifest[];
9
+ getRemoteComponentEntry(context: XpertResolvedViewHostContext, viewKey: string, component: XpertRemoteComponentViewSchema['component']): Promise<XpertRemoteComponentEntry>;
10
+ getViewData(context: XpertResolvedViewHostContext, viewKey: string, query: XpertViewQuery): Promise<XpertViewDataResult>;
11
+ executeViewAction(context: XpertResolvedViewHostContext, viewKey: string, actionKey: string, request: XpertViewActionRequest): Promise<XpertViewActionResult>;
12
+ executeViewFileAction(context: XpertResolvedViewHostContext, viewKey: string, actionKey: string, request: XpertViewActionRequest, file: XpertViewFileActionFile): Promise<XpertViewActionResult>;
13
+ }
14
+ //# sourceMappingURL=canvas-view.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-view.provider.d.ts","sourceRoot":"","sources":["../../src/lib/canvas-view.provider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,2BAA2B,EAG3B,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAc7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAmCnD,qBAEa,kBAAmB,YAAW,2BAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,aAAa;IAEnD,QAAQ,CAAC,OAAO,EAAE,4BAA4B;IAI9C,gBAAgB,CAAC,OAAO,EAAE,4BAA4B,EAAE,IAAI,EAAE,MAAM,GAAG,0BAA0B,EAAE;IA6H7F,uBAAuB,CAC3B,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,8BAA8B,CAAC,WAAW,CAAC,GACrD,OAAO,CAAC,yBAAyB,CAAC;IA4B/B,WAAW,CACf,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,mBAAmB,CAAC;IAwCzB,iBAAiB,CACrB,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IAgL3B,qBAAqB,CACzB,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;CAyClC"}