@fugood/bricks-project 2.24.0-beta.9 → 2.24.1-beta.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 (125) hide show
  1. package/compile/action-name-map.ts +38 -0
  2. package/compile/index.ts +460 -158
  3. package/compile/util.ts +2 -0
  4. package/package.json +8 -3
  5. package/package.json.bak +28 -0
  6. package/skills/{bricks-project → bricks-ctor}/SKILL.md +2 -2
  7. package/skills/{bricks-project → bricks-ctor}/rules/animation.md +1 -1
  8. package/skills/{bricks-project → bricks-ctor}/rules/architecture-patterns.md +7 -0
  9. package/skills/{bricks-project → bricks-ctor}/rules/buttress.md +10 -7
  10. package/skills/{bricks-project → bricks-ctor}/rules/data-calculation.md +3 -2
  11. package/skills/{bricks-project → bricks-ctor}/rules/local-sync.md +2 -2
  12. package/skills/{bricks-project → bricks-ctor}/rules/media-flow.md +3 -3
  13. package/skills/{bricks-project → bricks-ctor}/rules/remote-data-bank.md +6 -6
  14. package/skills/{bricks-project → bricks-ctor}/rules/standby-transition.md +1 -1
  15. package/skills/bricks-design/LICENSE.txt +180 -0
  16. package/skills/bricks-design/SKILL.md +66 -0
  17. package/tools/_git-author.ts +29 -0
  18. package/tools/_shell.ts +173 -0
  19. package/tools/deploy.ts +91 -23
  20. package/tools/icons/fa6pro-meta.json +3669 -26125
  21. package/tools/mcp-server.ts +11 -878
  22. package/tools/mcp-tools/compile.ts +92 -0
  23. package/tools/mcp-tools/huggingface.ts +762 -0
  24. package/tools/mcp-tools/icons.ts +70 -0
  25. package/tools/mcp-tools/lottie.ts +102 -0
  26. package/tools/mcp-tools/media.ts +110 -0
  27. package/tools/postinstall.ts +143 -40
  28. package/tools/preview-main.mjs +135 -2
  29. package/tools/preview.ts +68 -33
  30. package/tools/pull.ts +56 -32
  31. package/tsconfig.json +16 -0
  32. package/types/animation.ts +4 -0
  33. package/types/automation.ts +4 -1
  34. package/types/brick-base.ts +1 -1
  35. package/types/bricks/Camera.ts +47 -12
  36. package/types/bricks/Chart.ts +9 -3
  37. package/types/bricks/GenerativeMedia.ts +29 -13
  38. package/types/bricks/Icon.ts +8 -4
  39. package/types/bricks/Image.ts +9 -5
  40. package/types/bricks/Items.ts +28 -14
  41. package/types/bricks/Lottie.ts +14 -6
  42. package/types/bricks/Maps.ts +15 -7
  43. package/types/bricks/QrCode.ts +8 -4
  44. package/types/bricks/Rect.ts +44 -5
  45. package/types/bricks/RichText.ts +8 -4
  46. package/types/bricks/Rive.ts +20 -10
  47. package/types/bricks/Slideshow.ts +19 -9
  48. package/types/bricks/Svg.ts +7 -3
  49. package/types/bricks/Text.ts +8 -4
  50. package/types/bricks/TextInput.ts +22 -12
  51. package/types/bricks/Video.ts +10 -6
  52. package/types/bricks/VideoStreaming.ts +7 -3
  53. package/types/bricks/WebRtcStream.ts +6 -2
  54. package/types/bricks/WebView.ts +11 -7
  55. package/types/canvas.ts +2 -0
  56. package/types/common.ts +15 -8
  57. package/types/data-calc-command.ts +2 -0
  58. package/types/data-calc.ts +1 -0
  59. package/types/data.ts +2 -0
  60. package/types/generators/AlarmClock.ts +16 -10
  61. package/types/generators/Assistant.ts +68 -17
  62. package/types/generators/BleCentral.ts +30 -10
  63. package/types/generators/BlePeripheral.ts +10 -6
  64. package/types/generators/CanvasMap.ts +9 -5
  65. package/types/generators/CastlesPay.ts +14 -6
  66. package/types/generators/DataBank.ts +43 -8
  67. package/types/generators/File.ts +108 -29
  68. package/types/generators/GraphQl.ts +11 -5
  69. package/types/generators/Http.ts +32 -9
  70. package/types/generators/HttpServer.ts +22 -14
  71. package/types/generators/Information.ts +8 -4
  72. package/types/generators/Intent.ts +14 -4
  73. package/types/generators/Iterator.ts +14 -10
  74. package/types/generators/Keyboard.ts +26 -12
  75. package/types/generators/LlmAnthropicCompat.ts +32 -10
  76. package/types/generators/LlmAppleBuiltin.ts +24 -9
  77. package/types/generators/LlmGgml.ts +139 -30
  78. package/types/generators/LlmMediaTekNeuroPilot.ts +235 -0
  79. package/types/generators/LlmMlx.ts +227 -0
  80. package/types/generators/LlmOnnx.ts +33 -13
  81. package/types/generators/LlmOpenAiCompat.ts +46 -10
  82. package/types/generators/LlmQualcommAiEngine.ts +44 -12
  83. package/types/generators/Mcp.ts +374 -33
  84. package/types/generators/McpServer.ts +57 -18
  85. package/types/generators/MediaFlow.ts +37 -11
  86. package/types/generators/MqttBroker.ts +28 -10
  87. package/types/generators/MqttClient.ts +18 -8
  88. package/types/generators/Question.ts +12 -8
  89. package/types/generators/RealtimeTranscription.ts +107 -18
  90. package/types/generators/RerankerGgml.ts +42 -11
  91. package/types/generators/SerialPort.ts +17 -9
  92. package/types/generators/SoundPlayer.ts +9 -3
  93. package/types/generators/SoundRecorder.ts +23 -8
  94. package/types/generators/SpeechToTextGgml.ts +51 -17
  95. package/types/generators/SpeechToTextOnnx.ts +17 -10
  96. package/types/generators/SpeechToTextPlatform.ts +14 -6
  97. package/types/generators/SqLite.ts +19 -9
  98. package/types/generators/Step.ts +8 -4
  99. package/types/generators/SttAppleBuiltin.ts +21 -8
  100. package/types/generators/Tcp.ts +12 -8
  101. package/types/generators/TcpServer.ts +19 -13
  102. package/types/generators/TextToSpeechAppleBuiltin.ts +20 -7
  103. package/types/generators/TextToSpeechGgml.ts +28 -10
  104. package/types/generators/TextToSpeechOnnx.ts +18 -11
  105. package/types/generators/TextToSpeechOpenAiLike.ts +13 -7
  106. package/types/generators/ThermalPrinter.ts +12 -8
  107. package/types/generators/Tick.ts +10 -6
  108. package/types/generators/Udp.ts +16 -7
  109. package/types/generators/VadGgml.ts +50 -13
  110. package/types/generators/VadOnnx.ts +41 -11
  111. package/types/generators/VadTraditional.ts +27 -12
  112. package/types/generators/VectorStore.ts +32 -11
  113. package/types/generators/Watchdog.ts +18 -9
  114. package/types/generators/WebCrawler.ts +10 -6
  115. package/types/generators/WebRtc.ts +29 -15
  116. package/types/generators/WebSocket.ts +10 -6
  117. package/types/generators/index.ts +2 -0
  118. package/types/subspace.ts +4 -0
  119. package/types/system.ts +1 -1
  120. package/utils/event-props.ts +833 -1022
  121. package/api/index.ts +0 -1
  122. package/api/instance.ts +0 -213
  123. package/types/generators/TextToSpeechApple.ts +0 -113
  124. package/types/generators/TtsAppleBuiltin.ts +0 -105
  125. /package/skills/{bricks-project → bricks-ctor}/rules/automations.md +0 -0
@@ -0,0 +1,92 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
2
+ import { readFile } from 'node:fs/promises'
3
+ import { z } from 'zod'
4
+ import { sh } from '../_shell'
5
+
6
+ export function register(server: McpServer, projectDir: string) {
7
+ const { dirname } = import.meta
8
+
9
+ server.tool('compile', {}, async () => {
10
+ let log = ''
11
+ try {
12
+ log += 'Type checking & Compiling...'
13
+ log += await sh`bun compile`.cwd(projectDir).text()
14
+ } catch (err) {
15
+ log += `${err.stdout.toString()}\n${err.stderr.toString()}`
16
+ }
17
+ return {
18
+ content: [{ type: 'text', text: log }],
19
+ }
20
+ })
21
+
22
+ server.tool(
23
+ 'preview',
24
+ {
25
+ delay: z
26
+ .number()
27
+ .describe('Delay in milliseconds before taking screenshot')
28
+ .optional()
29
+ .default(3000),
30
+ width: z.number().describe('Width of the screenshot').optional().default(600),
31
+ height: z.number().optional().default(480),
32
+ responseImage: z
33
+ .boolean()
34
+ .describe(
35
+ 'Whether to response image content (base64 encoded jpeg). If false, only saved path will be responded as text.',
36
+ )
37
+ .optional()
38
+ .default(false),
39
+ testId: z.string().describe('Automation test ID to trigger').optional(),
40
+ testTitleLike: z
41
+ .string()
42
+ .describe('Find automation test by partial title match (case-insensitive)')
43
+ .optional(),
44
+ } as any,
45
+ async ({ delay, width, height, responseImage, testId, testTitleLike }: any) => {
46
+ let log = ''
47
+ let error = false
48
+ try {
49
+ const toolsDir = `${dirname}/..`
50
+ const args = [
51
+ '--no-keep-open',
52
+ '--take-screenshot',
53
+ JSON.stringify({
54
+ delay,
55
+ width,
56
+ height,
57
+ path: `${toolsDir}/screenshot.jpg`,
58
+ closeAfter: true,
59
+ headless: true,
60
+ }),
61
+ ]
62
+ if (testId) args.push('--test-id', testId)
63
+ if (testTitleLike) args.push('--test-title-like', testTitleLike)
64
+ log = await sh`bunx --bun electron ${toolsDir}/preview-main.mjs ${args}`
65
+ .cwd(projectDir)
66
+ .text()
67
+ } catch (err) {
68
+ log = `${err.stdout.toString()}\n${err.stderr.toString()}`
69
+ error = true
70
+ }
71
+ let screenshotBase64: string | null = null
72
+ if (!error && responseImage) {
73
+ const toolsDir = `${dirname}/..`
74
+ const screenshot = await readFile(`${toolsDir}/screenshot.jpg`)
75
+ screenshotBase64 = screenshot.toString('base64')
76
+ }
77
+ const content: Array<
78
+ { type: 'text'; text: string } | { type: 'image'; data: string; mimeType: string }
79
+ > = [{ type: 'text', text: log }]
80
+ if (screenshotBase64) {
81
+ content.push({
82
+ type: 'image',
83
+ data: screenshotBase64,
84
+ mimeType: 'image/jpeg',
85
+ })
86
+ }
87
+ return {
88
+ content,
89
+ }
90
+ },
91
+ )
92
+ }