@fugood/bricks-project 2.22.0-beta.3 → 2.22.0-beta.31

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 (87) hide show
  1. package/compile/action-name-map.ts +176 -1
  2. package/compile/index.ts +1 -0
  3. package/package.json +3 -3
  4. package/tools/postinstall.ts +17 -11
  5. package/types/animation.ts +2 -1
  6. package/types/brick-base.ts +77 -0
  7. package/types/bricks/3DViewer.ts +200 -0
  8. package/types/bricks/Camera.ts +195 -0
  9. package/types/bricks/Chart.ts +362 -0
  10. package/types/bricks/GenerativeMedia.ts +237 -0
  11. package/types/bricks/Icon.ts +90 -0
  12. package/types/bricks/Image.ts +101 -0
  13. package/types/bricks/Items.ts +461 -0
  14. package/types/bricks/Lottie.ts +156 -0
  15. package/types/bricks/QrCode.ts +109 -0
  16. package/types/bricks/Rect.ts +107 -0
  17. package/types/bricks/RichText.ts +120 -0
  18. package/types/bricks/Rive.ts +209 -0
  19. package/types/bricks/Slideshow.ts +155 -0
  20. package/types/bricks/Svg.ts +91 -0
  21. package/types/bricks/Text.ts +140 -0
  22. package/types/bricks/TextInput.ts +231 -0
  23. package/types/bricks/Video.ts +167 -0
  24. package/types/bricks/VideoStreaming.ts +104 -0
  25. package/types/bricks/WebRtcStream.ts +60 -0
  26. package/types/bricks/WebView.ts +157 -0
  27. package/types/bricks/index.ts +20 -0
  28. package/types/canvas.ts +1 -1
  29. package/types/common.ts +3 -3
  30. package/types/data.ts +6 -0
  31. package/types/generators/AlarmClock.ts +102 -0
  32. package/types/generators/Assistant.ts +546 -0
  33. package/types/generators/BleCentral.ts +225 -0
  34. package/types/generators/BlePeripheral.ts +202 -0
  35. package/types/generators/CanvasMap.ts +57 -0
  36. package/types/generators/CastlesPay.ts +77 -0
  37. package/types/generators/DataBank.ts +123 -0
  38. package/types/generators/File.ts +351 -0
  39. package/types/generators/GraphQl.ts +124 -0
  40. package/types/generators/Http.ts +117 -0
  41. package/types/generators/HttpServer.ts +164 -0
  42. package/types/generators/Information.ts +97 -0
  43. package/types/generators/Intent.ts +107 -0
  44. package/types/generators/Iterator.ts +95 -0
  45. package/types/generators/Keyboard.ts +85 -0
  46. package/types/generators/LlmAnthropicCompat.ts +188 -0
  47. package/types/generators/LlmGgml.ts +719 -0
  48. package/types/generators/LlmOnnx.ts +184 -0
  49. package/types/generators/LlmOpenAiCompat.ts +206 -0
  50. package/types/generators/LlmQualcommAiEngine.ts +213 -0
  51. package/types/generators/Mcp.ts +294 -0
  52. package/types/generators/McpServer.ts +245 -0
  53. package/types/generators/MediaFlow.ts +142 -0
  54. package/types/generators/MqttBroker.ts +121 -0
  55. package/types/generators/MqttClient.ts +129 -0
  56. package/types/generators/Question.ts +395 -0
  57. package/types/generators/RealtimeTranscription.ts +172 -0
  58. package/types/generators/RerankerGgml.ts +153 -0
  59. package/types/generators/SerialPort.ts +141 -0
  60. package/types/generators/SoundPlayer.ts +86 -0
  61. package/types/generators/SoundRecorder.ts +113 -0
  62. package/types/generators/SpeechToTextGgml.ts +462 -0
  63. package/types/generators/SpeechToTextOnnx.ts +227 -0
  64. package/types/generators/SpeechToTextPlatform.ts +75 -0
  65. package/types/generators/SqLite.ts +118 -0
  66. package/types/generators/Step.ts +101 -0
  67. package/types/generators/TapToPayOnIPhone.ts +175 -0
  68. package/types/generators/Tcp.ts +120 -0
  69. package/types/generators/TcpServer.ts +137 -0
  70. package/types/generators/TextToSpeechGgml.ts +182 -0
  71. package/types/generators/TextToSpeechOnnx.ts +169 -0
  72. package/types/generators/TextToSpeechOpenAiLike.ts +113 -0
  73. package/types/generators/ThermalPrinter.ts +185 -0
  74. package/types/generators/Tick.ts +75 -0
  75. package/types/generators/Udp.ts +109 -0
  76. package/types/generators/VadGgml.ts +211 -0
  77. package/types/generators/VectorStore.ts +223 -0
  78. package/types/generators/Watchdog.ts +96 -0
  79. package/types/generators/WebCrawler.ts +97 -0
  80. package/types/generators/WebRtc.ts +165 -0
  81. package/types/generators/WebSocket.ts +142 -0
  82. package/types/generators/index.ts +51 -0
  83. package/types/system.ts +64 -0
  84. package/utils/data.ts +45 -0
  85. package/utils/event-props.ts +210 -0
  86. package/types/bricks.ts +0 -3166
  87. package/types/generators.ts +0 -6671
@@ -100,6 +100,9 @@ export const templateActionNameMap = {
100
100
  payloadType: 'CHANNEL_PUBLISH_PAYLOAD_TYPE',
101
101
  payload: 'CHANNEL_PUBLISH_PAYLOAD',
102
102
  },
103
+ DELAY: {
104
+ time: 'DELAY_TIME',
105
+ },
103
106
  USE_SHARE_APPLICATION: {
104
107
  applicationId: 'APPLICATION_ID',
105
108
  releaseVersion: 'RELEASE_VERSION',
@@ -126,6 +129,17 @@ export const templateActionNameMap = {
126
129
  behavior: 'BEHAVIOR',
127
130
  exceptionMessage: 'EXCEPTION_MESSAGE',
128
131
  },
132
+ TRIGGER_APPLICATION_FILTER: {
133
+ name: 'NAME',
134
+ variables: 'VARIABLES',
135
+ result: 'RESULT',
136
+ error: 'ERROR',
137
+ },
138
+ SAVE_UPDATE_SNAPSHOT: {
139
+ snapshotFileIndentifier: 'SNAPSHOT_FILE_INDENTIFIER',
140
+ snapshotSaveResult: 'SNAPSHOT_SAVE_RESULT',
141
+ snapshotErrorResult: 'SNAPSHOT_ERROR_RESULT',
142
+ },
129
143
  },
130
144
 
131
145
  BRICK_TEXT_INPUT: {
@@ -142,6 +156,13 @@ export const templateActionNameMap = {
142
156
  },
143
157
  },
144
158
 
159
+ BRICK_VIDEO: {
160
+ BRICK_VIDEO_SEEK: {
161
+ seekTime: 'BRICK_VIDEO_SEEK_TIME',
162
+ play: 'BRICK_VIDEO_PLAY',
163
+ },
164
+ },
165
+
145
166
  BRICK_SLIDESHOW: {
146
167
  BRICK_SLIDESHOW_JUMP_TO_INDEX: {
147
168
  index: 'BRICK_SLIDESHOW_INDEX',
@@ -231,7 +252,12 @@ export const templateActionNameMap = {
231
252
  index: 'BRICK_ITEMS_INDEX',
232
253
  },
233
254
  },
234
-
255
+ BRICK_LOTTIE: {
256
+ BRICK_LOTTIE_PLAY: {
257
+ startFrame: 'BRICK_LOTTIE_START_FRAME',
258
+ endFrame: 'BRICK_LOTTIE_END_FRAME',
259
+ },
260
+ },
235
261
  BRICK_RIVE: {
236
262
  BRICK_RIVE_PLAY: {
237
263
  animationName: 'BRICK_RIVE_ANIMATION_NAME',
@@ -257,6 +283,10 @@ export const templateActionNameMap = {
257
283
  BRICK_WEBVIEW_INJECT_JAVASCRIPT: {
258
284
  javascriptCode: 'BRICK_WEBVIEW_JAVASCRIPT_CODE',
259
285
  },
286
+ BRICK_WEBVIEW_QUERY_SELECTOR: {
287
+ querySelector: 'BRICK_WEBVIEW_QUERY_SELECTOR',
288
+ expression: 'BRICK_WEBVIEW_EXPRESSION',
289
+ },
260
290
  },
261
291
  BRICK_CAMERA: {
262
292
  BRICK_CAMERA_TAKE_PICTURE: {
@@ -512,6 +542,36 @@ export const templateActionNameMap = {
512
542
  paramsString: 'GENERATOR_SQLITE_PARAMS_STRING',
513
543
  },
514
544
  },
545
+
546
+ GENERATOR_MCP: {
547
+ GENERATOR_MCP_LIST_RESOURCES: {
548
+ requestId: 'GENERATOR_MCP_REQUEST_ID',
549
+ },
550
+ GENERATOR_MCP_LIST_RESOURCE_TEMPLATES: {
551
+ requestId: 'GENERATOR_MCP_REQUEST_ID',
552
+ },
553
+ GENERATOR_MCP_READ_RESOURCE: {
554
+ requestId: 'GENERATOR_MCP_REQUEST_ID',
555
+ uri: 'GENERATOR_MCP_URI',
556
+ variables: 'GENERATOR_MCP_VARIABLES',
557
+ },
558
+ GENERATOR_MCP_LIST_TOOLS: {
559
+ requestId: 'GENERATOR_MCP_REQUEST_ID',
560
+ },
561
+ GENERATOR_MCP_CALL_TOOL: {
562
+ requestId: 'GENERATOR_MCP_REQUEST_ID',
563
+ name: 'GENERATOR_MCP_NAME',
564
+ variables: 'GENERATOR_MCP_VARIABLES',
565
+ },
566
+ GENERATOR_MCP_LIST_PROMPTS: {
567
+ requestId: 'GENERATOR_MCP_REQUEST_ID',
568
+ },
569
+ GENERATOR_MCP_GET_PROMPT: {
570
+ requestId: 'GENERATOR_MCP_REQUEST_ID',
571
+ name: 'GENERATOR_MCP_NAME',
572
+ variables: 'GENERATOR_MCP_VARIABLES',
573
+ },
574
+ },
515
575
  GENERATOR_TTS: {
516
576
  GENERATOR_TTS_GENERATE: {
517
577
  text: 'GENERATOR_TTS_TEXT',
@@ -521,6 +581,9 @@ export const templateActionNameMap = {
521
581
  GENERATOR_ONNX_LLM_INFER: {
522
582
  prompt: 'GENERATOR_ONNX_LLM_PROMPT',
523
583
  chat: 'GENERATOR_ONNX_LLM_CHAT',
584
+ images: 'GENERATOR_ONNX_LLM_IMAGES',
585
+ tools: 'GENERATOR_ONNX_LLM_TOOLS',
586
+ toolChoice: 'GENERATOR_ONNX_LLM_TOOL_CHOICE',
524
587
  },
525
588
  },
526
589
  GENERATOR_ONNX_STT: {
@@ -558,7 +621,37 @@ export const templateActionNameMap = {
558
621
  realtimeVadFreqThold: 'GENERATOR_SPEECH_INFERENCE_REALTIME_VAD_FREQ_THOLD',
559
622
  },
560
623
  },
624
+ GENERATOR_VAD_INFERENCE: {
625
+ GENERATOR_VAD_INFERENCE_DETECT_FILE: {
626
+ fileUrl: 'GENERATOR_VAD_INFERENCE_FILE_URL',
627
+ threshold: 'GENERATOR_VAD_INFERENCE_THRESHOLD',
628
+ minSpeechDurationMs: 'GENERATOR_VAD_INFERENCE_MIN_SPEECH_DURATION_MS',
629
+ minSilenceDurationMs: 'GENERATOR_VAD_INFERENCE_MIN_SILENCE_DURATION_MS',
630
+ maxSpeechDurationS: 'GENERATOR_VAD_INFERENCE_MAX_SPEECH_DURATION_S',
631
+ speechPadMs: 'GENERATOR_VAD_INFERENCE_SPEECH_PAD_MS',
632
+ samplesOverlap: 'GENERATOR_VAD_INFERENCE_SAMPLES_OVERLAP',
633
+ },
634
+ GENERATOR_VAD_INFERENCE_DETECT_DATA: {
635
+ data: 'GENERATOR_VAD_INFERENCE_DATA',
636
+ threshold: 'GENERATOR_VAD_INFERENCE_THRESHOLD',
637
+ minSpeechDurationMs: 'GENERATOR_VAD_INFERENCE_MIN_SPEECH_DURATION_MS',
638
+ minSilenceDurationMs: 'GENERATOR_VAD_INFERENCE_MIN_SILENCE_DURATION_MS',
639
+ maxSpeechDurationS: 'GENERATOR_VAD_INFERENCE_MAX_SPEECH_DURATION_S',
640
+ speechPadMs: 'GENERATOR_VAD_INFERENCE_SPEECH_PAD_MS',
641
+ samplesOverlap: 'GENERATOR_VAD_INFERENCE_SAMPLES_OVERLAP',
642
+ },
643
+ },
644
+
561
645
  GENERATOR_LLM: {
646
+ GENERATOR_LLM_TOKENIZE: {
647
+ mode: 'GENERATOR_LLM_MODE',
648
+ prompt: 'GENERATOR_LLM_PROMPT',
649
+ promptMediaPaths: 'GENERATOR_LLM_PROMPT_MEDIA_PATHS',
650
+ messages: 'GENERATOR_LLM_MESSAGES',
651
+ },
652
+ GENERATOR_LLM_DETOKENIZE: {
653
+ tokens: 'GENERATOR_LLM_TOKENS',
654
+ },
562
655
  GENERATOR_LLM_PROCESS_PROMPT: {
563
656
  sessionKey: 'GENERATOR_LLM_SESSION_KEY',
564
657
  mode: 'GENERATOR_LLM_MODE',
@@ -566,10 +659,15 @@ export const templateActionNameMap = {
566
659
  tools: 'GENERATOR_LLM_TOOLS',
567
660
  parallelToolCalls: 'GENERATOR_LLM_PARALLEL_TOOL_CALLS',
568
661
  toolChoice: 'GENERATOR_LLM_TOOL_CHOICE',
662
+ enableThinking: 'GENERATOR_LLM_ENABLE_THINKING',
569
663
  prompt: 'GENERATOR_LLM_PROMPT',
664
+ promptMediaPaths: 'GENERATOR_LLM_PROMPT_MEDIA_PATHS',
570
665
  promptTemplateData: 'GENERATOR_LLM_PROMPT_TEMPLATE_DATA',
571
666
  promptTemplateType: 'GENERATOR_LLM_PROMPT_TEMPLATE_TYPE',
572
667
  responseFormat: 'GENERATOR_LLM_RESPONSE_FORMAT',
668
+ chatTemplateKwargs: 'GENERATOR_LLM_CHAT_TEMPLATE_KWARGS',
669
+ addGenerationPrompt: 'GENERATOR_LLM_ADD_GENERATION_PROMPT',
670
+ now: 'GENERATOR_LLM_NOW',
573
671
  },
574
672
  GENERATOR_LLM_COMPLETION: {
575
673
  sessionKey: 'GENERATOR_LLM_SESSION_KEY',
@@ -578,10 +676,16 @@ export const templateActionNameMap = {
578
676
  tools: 'GENERATOR_LLM_TOOLS',
579
677
  parallelToolCalls: 'GENERATOR_LLM_PARALLEL_TOOL_CALLS',
580
678
  toolChoice: 'GENERATOR_LLM_TOOL_CHOICE',
679
+ enableThinking: 'GENERATOR_LLM_ENABLE_THINKING',
680
+ useReasoningFormat: 'GENERATOR_LLM_USE_REASONING_FORMAT',
581
681
  prompt: 'GENERATOR_LLM_PROMPT',
682
+ promptMediaPaths: 'GENERATOR_LLM_PROMPT_MEDIA_PATHS',
582
683
  promptTemplateData: 'GENERATOR_LLM_PROMPT_TEMPLATE_DATA',
583
684
  promptTemplateType: 'GENERATOR_LLM_PROMPT_TEMPLATE_TYPE',
584
685
  responseFormat: 'GENERATOR_LLM_RESPONSE_FORMAT',
686
+ chatTemplateKwargs: 'GENERATOR_LLM_CHAT_TEMPLATE_KWARGS',
687
+ addGenerationPrompt: 'GENERATOR_LLM_ADD_GENERATION_PROMPT',
688
+ now: 'GENERATOR_LLM_NOW',
585
689
  grammar: 'GENERATOR_LLM_GRAMMAR',
586
690
  stopWords: 'GENERATOR_LLM_STOP_WORDS',
587
691
  predict: 'GENERATOR_LLM_PREDICT',
@@ -615,6 +719,29 @@ export const templateActionNameMap = {
615
719
  sessionCustomKey: 'GENERATOR_LLM_SESSION_CUSTOM_KEY',
616
720
  },
617
721
  },
722
+ GENERATOR_GGML_TTS: {
723
+ GENERATOR_GGML_TTS_GENERATE: {
724
+ text: 'GENERATOR_GGML_TTS_TEXT',
725
+ },
726
+ },
727
+ GENERATOR_RERANKER: {
728
+ GENERATOR_RERANKER_RERANK: {
729
+ query: 'GENERATOR_RERANKER_QUERY',
730
+ documents: 'GENERATOR_RERANKER_DOCUMENTS',
731
+ },
732
+ },
733
+ GENERATOR_QNN_LLM: {
734
+ GENERATOR_QNN_LLM_PROCESS: {
735
+ prompt: 'GENERATOR_QNN_LLM_PROMPT',
736
+ messages: 'GENERATOR_QNN_LLM_MESSAGES',
737
+ tools: 'GENERATOR_QNN_LLM_TOOLS',
738
+ },
739
+ GENERATOR_QNN_LLM_GENERATE: {
740
+ prompt: 'GENERATOR_QNN_LLM_PROMPT',
741
+ messages: 'GENERATOR_QNN_LLM_MESSAGES',
742
+ tools: 'GENERATOR_QNN_LLM_TOOLS',
743
+ },
744
+ },
618
745
  GENERATOR_OPENAI_LLM: {
619
746
  GENERATOR_OPENAI_LLM_COMPLETION: {
620
747
  messages: 'GENERATOR_OPENAI_LLM_MESSAGES',
@@ -630,10 +757,29 @@ export const templateActionNameMap = {
630
757
  responseFormat: 'GENERATOR_OPENAI_LLM_RESPONSE_FORMAT',
631
758
  },
632
759
  },
760
+ GENERATOR_OPENAI_TTS: {
761
+ GENERATOR_OPENAI_TTS_GENERATE: {
762
+ text: 'GENERATOR_OPENAI_TTS_TEXT',
763
+ },
764
+ },
765
+ GENERATOR_ANTHROPIC_LLM: {
766
+ GENERATOR_ANTHROPIC_LLM_COMPLETION: {
767
+ systemMessage: 'GENERATOR_ANTHROPIC_LLM_SYSTEM_MESSAGE',
768
+ messages: 'GENERATOR_ANTHROPIC_LLM_MESSAGES',
769
+ maxTokens: 'GENERATOR_ANTHROPIC_LLM_MAX_TOKENS',
770
+ temperature: 'GENERATOR_ANTHROPIC_LLM_TEMPERATURE',
771
+ topP: 'GENERATOR_ANTHROPIC_LLM_TOP_P',
772
+ topK: 'GENERATOR_ANTHROPIC_LLM_TOP_K',
773
+ stopSequences: 'GENERATOR_ANTHROPIC_LLM_STOP_SEQUENCES',
774
+ tools: 'GENERATOR_ANTHROPIC_LLM_TOOLS',
775
+ toolChoice: 'GENERATOR_ANTHROPIC_LLM_TOOL_CHOICE',
776
+ },
777
+ },
633
778
  GENERATOR_ASSISTANT: {
634
779
  GENERATOR_ASSISTANT_ADD_MESSAGE: {
635
780
  role: 'GENERATOR_ASSISTANT_ROLE',
636
781
  content: 'GENERATOR_ASSISTANT_CONTENT',
782
+ image: 'GENERATOR_ASSISTANT_IMAGE',
637
783
  payload: 'GENERATOR_ASSISTANT_PAYLOAD',
638
784
  useFileSearch: 'GENERATOR_ASSISTANT_USE_FILE_SEARCH',
639
785
  filePath: 'GENERATOR_ASSISTANT_FILE_PATH',
@@ -643,15 +789,28 @@ export const templateActionNameMap = {
643
789
  fileSearchCitationCount: 'GENERATOR_ASSISTANT_FILE_SEARCH_CITATION_COUNT',
644
790
  fileSearchInsertMethod: 'GENERATOR_ASSISTANT_FILE_SEARCH_INSERT_METHOD',
645
791
  },
792
+ GENERATOR_ASSISTANT_INIT_MCP_PROMPT: {
793
+ mcpClientName: 'GENERATOR_ASSISTANT_MCP_CLIENT_NAME',
794
+ mcpPromptName: 'GENERATOR_ASSISTANT_MCP_PROMPT_NAME',
795
+ mcpArguments: 'GENERATOR_ASSISTANT_MCP_ARGUMENTS',
796
+ firstMessageAsSystem: 'GENERATOR_ASSISTANT_FIRST_MESSAGE_AS_SYSTEM',
797
+ },
798
+ GENERATOR_ASSISTANT_ADD_MCP_PROMPT_MESSAGE: {
799
+ mcpClientName: 'GENERATOR_ASSISTANT_MCP_CLIENT_NAME',
800
+ mcpPromptName: 'GENERATOR_ASSISTANT_MCP_PROMPT_NAME',
801
+ mcpArguments: 'GENERATOR_ASSISTANT_MCP_ARGUMENTS',
802
+ },
646
803
  GENERATOR_ASSISTANT_UPDATE_MESSAGE_AT_INDEX: {
647
804
  index: 'GENERATOR_ASSISTANT_INDEX',
648
805
  content: 'GENERATOR_ASSISTANT_CONTENT',
806
+ image: 'GENERATOR_ASSISTANT_IMAGE',
649
807
  payload: 'GENERATOR_ASSISTANT_PAYLOAD',
650
808
  },
651
809
  GENERATOR_ASSISTANT_ADD_AUDIO_MESSAGE: {
652
810
  role: 'GENERATOR_ASSISTANT_ROLE',
653
811
  contentFile: 'GENERATOR_ASSISTANT_CONTENT_FILE',
654
812
  contentBase64: 'GENERATOR_ASSISTANT_CONTENT_BASE64',
813
+ image: 'GENERATOR_ASSISTANT_IMAGE',
655
814
  useFileSearch: 'GENERATOR_ASSISTANT_USE_FILE_SEARCH',
656
815
  payload: 'GENERATOR_ASSISTANT_PAYLOAD',
657
816
  filePath: 'GENERATOR_ASSISTANT_FILE_PATH',
@@ -674,11 +833,27 @@ export const templateActionNameMap = {
674
833
  index: 'GENERATOR_ASSISTANT_INDEX',
675
834
  contentFile: 'GENERATOR_ASSISTANT_CONTENT_FILE',
676
835
  contentBase64: 'GENERATOR_ASSISTANT_CONTENT_BASE64',
836
+ image: 'GENERATOR_ASSISTANT_IMAGE',
677
837
  payload: 'GENERATOR_ASSISTANT_PAYLOAD',
678
838
  },
679
839
  GENERATOR_ASSISTANT_REMOVE_MESSAGE_AT_INDEX: {
680
840
  index: 'GENERATOR_ASSISTANT_INDEX',
681
841
  },
842
+ GENERATOR_ASSISTANT_SUBMIT: {
843
+ continueOnToolCallConfirm: 'GENERATOR_ASSISTANT_CONTINUE_ON_TOOL_CALL_CONFIRM',
844
+ continueOnToolCallStrategy: 'GENERATOR_ASSISTANT_CONTINUE_ON_TOOL_CALL_STRATEGY',
845
+ continueOnToolCallLimit: 'GENERATOR_ASSISTANT_CONTINUE_ON_TOOL_CALL_LIMIT',
846
+ },
847
+ GENERATOR_ASSISTANT_INSERT_MCP_RESOURCE: {
848
+ mcpClientName: 'GENERATOR_ASSISTANT_MCP_CLIENT_NAME',
849
+ mcpResourceUri: 'GENERATOR_ASSISTANT_MCP_RESOURCE_URI',
850
+ mcpVariables: 'GENERATOR_ASSISTANT_MCP_VARIABLES',
851
+ role: 'GENERATOR_ASSISTANT_ROLE',
852
+ },
853
+ GENERATOR_ASSISTANT_SUMMARY_MESSAGES: {
854
+ summaryMessages: 'GENERATOR_ASSISTANT_SUMMARY_MESSAGES',
855
+ summarySessionKey: 'GENERATOR_ASSISTANT_SUMMARY_SESSION_KEY',
856
+ },
682
857
  },
683
858
  GENERATOR_VECTOR_STORE: {
684
859
  GENERATOR_VECTOR_STORE_RESET: {
package/compile/index.ts CHANGED
@@ -856,6 +856,7 @@ export const compile = async (app: Application) => {
856
856
  fonts: app.fonts,
857
857
  ...compileApplicationSettings(app.settings),
858
858
  test_map: app.metadata?.TEMP_test_map || {},
859
+ automation_map: app.metadata?.TEMP_automation_map || {},
859
860
  }
860
861
  return config
861
862
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@fugood/bricks-project",
3
- "version": "2.22.0-beta.3",
3
+ "version": "2.22.0-beta.31",
4
4
  "main": "index.ts",
5
5
  "scripts": {
6
6
  "build": "node scripts/build.js"
7
7
  },
8
8
  "dependencies": {
9
- "@modelcontextprotocol/sdk": "^1.7.0",
9
+ "@modelcontextprotocol/sdk": "^1.15.0",
10
10
  "@types/escodegen": "^0.0.10",
11
11
  "@types/lodash": "^4.17.12",
12
12
  "acorn": "^8.13.0",
@@ -14,5 +14,5 @@
14
14
  "lodash": "^4.17.4",
15
15
  "uuid": "^8.3.1"
16
16
  },
17
- "gitHead": "cbb283b7ce73520369f855f7fbe86e8e07b831eb"
17
+ "gitHead": "62a6707c07d0602c36f1f88df6baf07747da6c0a"
18
18
  }
@@ -1,15 +1,7 @@
1
1
  import { $ } from 'bun'
2
2
  import { stat, readFile, writeFile } from 'fs/promises'
3
- const cwd = process.cwd()
4
-
5
- const libFiles = ['types', 'utils', 'index.ts']
6
3
 
7
- await $`mkdir -p ${cwd}/project`
8
- for (const file of libFiles) {
9
- await $`cp -r ${__dirname}/../${file} ${cwd}/project`
10
- }
11
-
12
- console.log('Copied files to project/')
4
+ const cwd = process.cwd()
13
5
 
14
6
  async function exists(f: string) {
15
7
  try {
@@ -20,6 +12,21 @@ async function exists(f: string) {
20
12
  }
21
13
  }
22
14
 
15
+ // handle flag --skip-copy
16
+ const skipCopyProject = process.argv.includes('--skip-copy-project')
17
+ if (skipCopyProject) {
18
+ console.log('Skipping copy of files to project/')
19
+ } else {
20
+
21
+ const libFiles = ['types', 'utils', 'index.ts']
22
+
23
+ await $`mkdir -p ${cwd}/project`
24
+ for (const file of libFiles) {
25
+ await $`cp -r ${__dirname}/../${file} ${cwd}/project`
26
+ }
27
+ console.log('Copied files to project/')
28
+ }
29
+
23
30
  const projectMcpServer = {
24
31
  command: 'bun',
25
32
  args: [`${cwd}/node_modules/@fugood/bricks-project/tools/mcp-server.ts`],
@@ -51,8 +58,7 @@ const handleMcpConfigOverride = async (mcpConfigPath: string) => {
51
58
  console.log(`Updated ${mcpConfigPath}`)
52
59
  }
53
60
 
54
- if (await exists(`${cwd}/.cursorrules`)) {
55
- await $`mkdir -p ${cwd}/.cursor`
61
+ if (await exists(`${cwd}/.cursor/rules/instructions.mdc`)) {
56
62
  const cursorMcpConfigPath = `${cwd}/.cursor/mcp.json`
57
63
  await handleMcpConfigOverride(cursorMcpConfigPath)
58
64
  }
@@ -30,6 +30,7 @@ export type Easing =
30
30
  | 'easeInBounce'
31
31
  | 'easeOutBounce'
32
32
  | 'easeInOutBounce'
33
+ | string // Support format like 'cubic-bezier(x1, y1, x2, y2)'
33
34
 
34
35
  export interface AnimationTimingConfig {
35
36
  __type: 'AnimationTimingConfig'
@@ -89,7 +90,7 @@ export interface AnimationComposeDef {
89
90
  export type Animation = AnimationDef | AnimationComposeDef
90
91
 
91
92
  export interface AnimationBasicEvents {
92
- show?: Animation
93
+ showStart?: Animation
93
94
  standby?: Animation
94
95
  breatheStart?: Animation
95
96
  }
@@ -0,0 +1,77 @@
1
+ import type { SwitchCondInnerStateCurrentCanvas, SwitchCondData, SwitchDef } from './switch'
2
+ import type { Data, DataLink } from './data'
3
+ import type { Animation, AnimationBasicEvents } from './animation'
4
+ import type {
5
+ Brick,
6
+ EventAction,
7
+ EventActionForItem,
8
+ ActionWithDataParams,
9
+ ActionWithParams,
10
+ Action,
11
+ EventProperty,
12
+ } from './common'
13
+
14
+ export interface BrickBasicProperty {
15
+ /* The brick opacity (0 ~ 1) */
16
+ opacity?: number | DataLink
17
+ /* The brick background color */
18
+ backgroundColor?: string | DataLink
19
+ /* The brick border style */
20
+ borderStyle?: 'solid' | 'dotted' | 'dashed' | DataLink
21
+ /* The brick border width (top) */
22
+ borderTopSize?: number | DataLink
23
+ /* The brick border color (top) */
24
+ borderTopColor?: string | DataLink
25
+ /* The brick border radius (top left) */
26
+ borderTopLeftRadius?: number | DataLink
27
+ /* The brick border radius (top right) */
28
+ borderTopRightRadius?: number | DataLink
29
+ /* The brick border width (bottom) */
30
+ borderBottomSize?: number | DataLink
31
+ /* The brick border color (bottom) */
32
+ borderBottomColor?: string | DataLink
33
+ /* The brick border radius (bottom left) */
34
+ borderBottomLeftRadius?: number | DataLink
35
+ /* The brick border radius (bottom right) */
36
+ borderBottomRightRadius?: number | DataLink
37
+ /* The brick border width (left) */
38
+ borderLeftSize?: number | DataLink
39
+ /* The brick border color (bottom) */
40
+ borderLeftColor?: string | DataLink
41
+ /* The brick border width (right) */
42
+ borderRightSize?: number | DataLink
43
+ /* The brick border color (right) */
44
+ borderRightColor?: string | DataLink
45
+ /* The brick rotate (deg) */
46
+ rotate?: number | DataLink
47
+ /* The brick rotateX (deg) */
48
+ rotateX?: number | DataLink
49
+ /* The brick rotateY (deg) */
50
+ rotateY?: number | DataLink
51
+ /* The brick shadow color */
52
+ shadowColor?: string | DataLink
53
+ /* The brick shadow opacity (0 ~ 1) */
54
+ shadowOpacity?: number | DataLink
55
+ /* The brick shadow radius */
56
+ shadowRadius?: number | DataLink
57
+ /* The brick shadow offset width */
58
+ shadowOffsetWidth?: number | DataLink
59
+ /* The brick shadow offset height */
60
+ shadowOffsetHeight?: number | DataLink
61
+ /* Brick pressable.
62
+ Disabled: Disabled even if event or animation is set.
63
+ Bypass: Disable and bypass the touch event on the brick. */
64
+ pressable?: 'enabled' | 'disabled' | 'bypass' | DataLink
65
+ }
66
+
67
+ export interface BrickBasicEvents {
68
+ showStart?: Array<EventAction>
69
+ switchUpdate?: Array<EventAction>
70
+ standby?: Array<EventAction>
71
+ }
72
+
73
+ export interface BrickBasicEventsForItem {
74
+ showStart?: Array<EventActionForItem>
75
+ switchUpdate?: Array<EventActionForItem>
76
+ standby?: Array<EventActionForItem>
77
+ }
@@ -0,0 +1,200 @@
1
+ import type { SwitchCondInnerStateCurrentCanvas, SwitchCondData, SwitchDef } from '../switch'
2
+ import type { Data, DataLink } from '../data'
3
+ import type { Animation, AnimationBasicEvents } from '../animation'
4
+ import type {
5
+ Brick,
6
+ EventAction,
7
+ EventActionForItem,
8
+ ActionWithDataParams,
9
+ ActionWithParams,
10
+ Action,
11
+ EventProperty,
12
+ } from '../common'
13
+ import type { BrickBasicProperty, BrickBasicEvents, BrickBasicEventsForItem } from '../brick-base'
14
+
15
+ /* Play object animation */
16
+ export type Brick3DViewerActionAnimationPlay = ActionWithParams & {
17
+ __actionName: 'BRICK_3D_VIEWER_ANIMATION_PLAY'
18
+ params?: Array<{
19
+ input: 'objectIndex'
20
+ value?: number | DataLink | EventProperty
21
+ mapping?: string
22
+ }>
23
+ }
24
+
25
+ /* Pause object animation */
26
+ export type Brick3DViewerActionAnimationPause = ActionWithParams & {
27
+ __actionName: 'BRICK_3D_VIEWER_ANIMATION_PAUSE'
28
+ params?: Array<{
29
+ input: 'objectIndex'
30
+ value?: number | DataLink | EventProperty
31
+ mapping?: string
32
+ }>
33
+ }
34
+
35
+ /* Goto object animation progress */
36
+ export type Brick3DViewerActionAnimationGoto = ActionWithParams & {
37
+ __actionName: 'BRICK_3D_VIEWER_ANIMATION_GOTO'
38
+ params?: Array<
39
+ | {
40
+ input: 'objectIndex'
41
+ value?: number | DataLink | EventProperty
42
+ mapping?: string
43
+ }
44
+ | {
45
+ input: 'animationProgress'
46
+ value?: number | DataLink | EventProperty
47
+ mapping?: string
48
+ }
49
+ >
50
+ }
51
+
52
+ interface Brick3DViewerDef {
53
+ /*
54
+ Default property:
55
+ {
56
+ "showLoadingBox": true,
57
+ "enableOrbitControls": true
58
+ }
59
+ */
60
+ property?: BrickBasicProperty & {
61
+ /* 3D model list */
62
+ objects?:
63
+ | Array<
64
+ | DataLink
65
+ | {
66
+ url?: string | DataLink
67
+ md5?: string | DataLink
68
+ type?: 'USDZ' | 'glTF' | DataLink
69
+ rotation?: number | DataLink | Array<number | DataLink> | DataLink | DataLink
70
+ scale?: number | DataLink | Array<number | DataLink> | DataLink | DataLink
71
+ x?: number | DataLink
72
+ y?: number | DataLink
73
+ z?: number | DataLink
74
+ moveable?: boolean | DataLink
75
+ rotateable?: boolean | DataLink
76
+ selectable?: boolean | DataLink
77
+ enableCollision?: boolean | DataLink
78
+ animationLoopMode?: 'once' | 'repeat' | 'pingpong' | DataLink
79
+ animationProgress?: number | DataLink
80
+ animationPaused?: boolean | DataLink
81
+ boundingBox?:
82
+ | DataLink
83
+ | {
84
+ min?:
85
+ | DataLink
86
+ | {
87
+ x?: number | DataLink
88
+ y?: number | DataLink
89
+ z?: number | DataLink
90
+ }
91
+ max?:
92
+ | DataLink
93
+ | {
94
+ x?: number | DataLink
95
+ y?: number | DataLink
96
+ z?: number | DataLink
97
+ }
98
+ }
99
+ }
100
+ >
101
+ | DataLink
102
+ /* Show loading placeholder box */
103
+ showLoadingBox?: boolean | DataLink
104
+ /* Display shadows */
105
+ shadows?: boolean | DataLink
106
+ /* Default camera position */
107
+ camera?:
108
+ | DataLink
109
+ | {
110
+ fov?: number | DataLink
111
+ aspect?: number | DataLink
112
+ near?: number | DataLink
113
+ far?: number | DataLink
114
+ position?:
115
+ | DataLink
116
+ | {
117
+ x?: number | DataLink
118
+ y?: number | DataLink
119
+ z?: number | DataLink
120
+ }
121
+ quaternion?:
122
+ | DataLink
123
+ | {
124
+ x?: number | DataLink
125
+ y?: number | DataLink
126
+ z?: number | DataLink
127
+ w?: number | DataLink
128
+ }
129
+ }
130
+ /* Enable orbit controls */
131
+ enableOrbitControls?: boolean | DataLink
132
+ /* Camera control options */
133
+ orbitControls?:
134
+ | DataLink
135
+ | {
136
+ autoRotate?: boolean | DataLink
137
+ enableZoom?: boolean | DataLink
138
+ enablePan?: boolean | DataLink
139
+ enableRotate?: boolean | DataLink
140
+ enableDamping?: boolean | DataLink
141
+ dampingFactor?: number | DataLink
142
+ rotateSpeed?: number | DataLink
143
+ zoomSpeed?: number | DataLink
144
+ panSpeed?: number | DataLink
145
+ minDistance?: number | DataLink
146
+ maxDistance?: number | DataLink
147
+ minPolarAngle?: number | DataLink
148
+ maxPolarAngle?: number | DataLink
149
+ minAzimuthAngle?: number | DataLink
150
+ maxAzimuthAngle?: number | DataLink
151
+ }
152
+ /* Move controls options */
153
+ moveControls?:
154
+ | DataLink
155
+ | {
156
+ responsiveness?: number | DataLink
157
+ rotationRingColor?: string | DataLink
158
+ rotationRingSize?: number | DataLink
159
+ showBoundingBox?: boolean | DataLink
160
+ }
161
+ }
162
+ events?: BrickBasicEvents & {
163
+ /* Event of error occurred */
164
+ onError?: Array<EventAction>
165
+ /* Event of object changed position or rotation */
166
+ onChange?: Array<EventAction>
167
+ /* Event of object selected */
168
+ onSelectChange?: Array<EventAction>
169
+ /* Event of object collision occurred */
170
+ onCollision?: Array<EventAction>
171
+ }
172
+ animation?: AnimationBasicEvents & {
173
+ onError?: Animation
174
+ onChange?: Animation
175
+ onSelectChange?: Animation
176
+ onCollision?: Animation
177
+ }
178
+ }
179
+
180
+ /* 3D viewer brick */
181
+ export type Brick3DViewer = Brick &
182
+ Brick3DViewerDef & {
183
+ templateKey: 'BRICK_3D_VIEWER'
184
+ switches: Array<
185
+ SwitchDef &
186
+ Brick3DViewerDef & {
187
+ conds?: Array<{
188
+ method: '==' | '!=' | '>' | '<' | '>=' | '<='
189
+ cond:
190
+ | SwitchCondInnerStateCurrentCanvas
191
+ | SwitchCondData
192
+ | {
193
+ __typename: 'SwitchCondInnerStateOutlet'
194
+ outlet: ''
195
+ value: any
196
+ }
197
+ }>
198
+ }
199
+ >
200
+ }