pi-tldraw 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 (74) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -0
  3. package/bridge/app-bridge-entry.js +6 -0
  4. package/mcp-app/LICENSE.md +9 -0
  5. package/mcp-app/PI_TLDRAW_PROVENANCE.json +32 -0
  6. package/mcp-app/README.md +129 -0
  7. package/mcp-app/dev-tunnel.sh +51 -0
  8. package/mcp-app/dist/editor-api.json +8493 -0
  9. package/mcp-app/dist/mcp-app.html +643 -0
  10. package/mcp-app/dist/method-map.json +915 -0
  11. package/mcp-app/package.json +42 -0
  12. package/mcp-app/plugins/tldraw-mcp/.cursor-plugin/plugin.json +10 -0
  13. package/mcp-app/plugins/tldraw-mcp/assets/logo.svg +3 -0
  14. package/mcp-app/plugins/tldraw-mcp/mcp.json +8 -0
  15. package/mcp-app/scripts/extract-editor-api.ts +1374 -0
  16. package/mcp-app/server.json +21 -0
  17. package/mcp-app/src/logger.ts +45 -0
  18. package/mcp-app/src/register-tools.ts +368 -0
  19. package/mcp-app/src/shared/generated-data.ts +160 -0
  20. package/mcp-app/src/shared/pending-requests.ts +69 -0
  21. package/mcp-app/src/shared/types.ts +76 -0
  22. package/mcp-app/src/shared/utils.ts +132 -0
  23. package/mcp-app/src/tools/exec.ts +120 -0
  24. package/mcp-app/src/tools/loadCachedCanvasWidgetHtml.ts +16 -0
  25. package/mcp-app/src/tools/search.ts +150 -0
  26. package/mcp-app/src/widget/app-context.tsx +29 -0
  27. package/mcp-app/src/widget/dev-log.tsx +70 -0
  28. package/mcp-app/src/widget/exec-helpers.ts +232 -0
  29. package/mcp-app/src/widget/export-tldr.ts +35 -0
  30. package/mcp-app/src/widget/focused/defaults.ts +141 -0
  31. package/mcp-app/src/widget/focused/focused-editor-proxy.ts +434 -0
  32. package/mcp-app/src/widget/focused/format.ts +366 -0
  33. package/mcp-app/src/widget/focused/to-focused.ts +258 -0
  34. package/mcp-app/src/widget/focused/to-tldraw.ts +570 -0
  35. package/mcp-app/src/widget/image-guard.tsx +106 -0
  36. package/mcp-app/src/widget/index.html +33 -0
  37. package/mcp-app/src/widget/mcp-app.css +113 -0
  38. package/mcp-app/src/widget/mcp-app.tsx +857 -0
  39. package/mcp-app/src/widget/persistence.ts +337 -0
  40. package/mcp-app/src/widget/snapshot.ts +157 -0
  41. package/mcp-app/src/worker.ts +305 -0
  42. package/mcp-app/tsconfig.json +23 -0
  43. package/mcp-app/vite.config.ts +13 -0
  44. package/mcp-app/wrangler.toml +45 -0
  45. package/mcp-app-source.json +36 -0
  46. package/package.json +90 -0
  47. package/patches/tldraw-mcp-app/001-pi-runtime.patch +35 -0
  48. package/scripts/assemble-mcp-app.mjs +193 -0
  49. package/scripts/build-bridge.mjs +74 -0
  50. package/scripts/e2e-mcp.mjs +69 -0
  51. package/scripts/e2e-packaged-mcp-app.mjs +79 -0
  52. package/scripts/run-mcp-app-dev.mjs +44 -0
  53. package/scripts/verify-bundle.mjs +41 -0
  54. package/scripts/verify-mcp-app-source.mjs +51 -0
  55. package/scripts/verify-mcp-app.mjs +38 -0
  56. package/scripts/verify-package-files.mjs +50 -0
  57. package/src/canvas/export.ts +164 -0
  58. package/src/canvas/state.ts +117 -0
  59. package/src/canvas/workflow.ts +105 -0
  60. package/src/commands/tldraw-command.ts +48 -0
  61. package/src/diagram/guidance.ts +44 -0
  62. package/src/host/local-host.ts +289 -0
  63. package/src/index.ts +762 -0
  64. package/src/mcp/client.ts +126 -0
  65. package/src/mcp/response.ts +74 -0
  66. package/src/semantic/layer.ts +309 -0
  67. package/src/server/server-manager.ts +153 -0
  68. package/src/store/export-store.ts +33 -0
  69. package/src/store/project-store.ts +251 -0
  70. package/src/ui/tldraw-status.ts +88 -0
  71. package/static/app-bridge-bundle.js +18114 -0
  72. package/static/app-bridge-bundle.meta.json +164 -0
  73. package/static/host.html +390 -0
  74. package/tsconfig.json +13 -0
@@ -0,0 +1,113 @@
1
+ .mcp-app__share-zone {
2
+ display: flex;
3
+ gap: 4px;
4
+ }
5
+
6
+ .mcp-app__build-button {
7
+ flex: 0 0 auto;
8
+ position: relative;
9
+ box-sizing: border-box;
10
+ border: none;
11
+ background: var(--tl-color-muted-2);
12
+ color: var(--tl-color-muted-1);
13
+ font: inherit;
14
+ font-weight: 600;
15
+ padding: var(--tl-space-3) var(--tl-space-4);
16
+ border-radius: var(--tl-radius-2);
17
+ margin: var(--tl-space-2);
18
+ cursor: not-allowed;
19
+ pointer-events: all;
20
+ }
21
+
22
+ .mcp-app__build-button--enabled {
23
+ background: var(--tl-color-primary);
24
+ color: #fff;
25
+ cursor: pointer;
26
+ }
27
+
28
+ .mcp-app__error-banner {
29
+ width: 100%;
30
+ height: 30px;
31
+ display: flex;
32
+ align-items: center;
33
+ font-size: 12px;
34
+ line-height: 1.4;
35
+ margin-top: -1px;
36
+ gap: 10px;
37
+ color: #2e2e2e;
38
+ }
39
+
40
+ .mcp-app__error-banner--dark {
41
+ color: #f0f0f0;
42
+ }
43
+
44
+ .mcp-app__error-logo {
45
+ width: 16px;
46
+ height: 16px;
47
+ filter: brightness(0) saturate(100%);
48
+ }
49
+
50
+ .mcp-app__error-logo--dark {
51
+ filter: none;
52
+ }
53
+
54
+ .mcp-app__error-label {
55
+ font-weight: 500;
56
+ }
57
+
58
+ .mcp-app__error-message {
59
+ flex: 1;
60
+ overflow: hidden;
61
+ text-overflow: ellipsis;
62
+ white-space: nowrap;
63
+ color: #5f5f5f;
64
+ font-weight: 400;
65
+ }
66
+
67
+ .mcp-app__error-message--dark {
68
+ color: #bdbdbd;
69
+ }
70
+
71
+ .mcp-app__canvas-layout {
72
+ width: 100%;
73
+ display: flex;
74
+ flex-direction: column;
75
+ height: 600px;
76
+ gap: 8px;
77
+ }
78
+
79
+ .mcp-app__canvas-layout--fullscreen {
80
+ position: fixed;
81
+ inset: 0;
82
+ z-index: 9999;
83
+ height: 100%;
84
+ min-height: 0;
85
+ background: var(--tl-color-background);
86
+ }
87
+
88
+ .mcp-app__canvas-surface {
89
+ width: 100%;
90
+ height: 600px;
91
+ position: relative;
92
+ }
93
+
94
+ .mcp-app__canvas-surface--with-dev-log {
95
+ height: calc(600px - 140px - 8px);
96
+ }
97
+
98
+ .mcp-app__canvas-surface--fullscreen {
99
+ flex: 1;
100
+ min-height: 0;
101
+ }
102
+
103
+ .mcp-app__status {
104
+ padding: 20px;
105
+ }
106
+
107
+ .mcp-app__status--error {
108
+ color: red;
109
+ }
110
+
111
+ .mcp-app__status--connecting {
112
+ opacity: 0.5;
113
+ }