jbilcke-hf HF staff commited on
Commit
6915e3a
1 Parent(s): 083ce88

upgrade the timeline

Browse files
package-lock.json CHANGED
@@ -10,9 +10,9 @@
10
  "dependencies": {
11
  "@aitube/broadway": "0.0.22",
12
  "@aitube/clap": "0.0.30",
13
- "@aitube/clapper-services": "0.0.14",
14
  "@aitube/engine": "0.0.26",
15
- "@aitube/timeline": "0.0.37",
16
  "@fal-ai/serverless-client": "^0.11.0",
17
  "@gradio/client": "^1.1.1",
18
  "@huggingface/hub": "^0.15.1",
@@ -137,12 +137,12 @@
137
  }
138
  },
139
  "node_modules/@aitube/clapper-services": {
140
- "version": "0.0.14",
141
- "resolved": "https://registry.npmjs.org/@aitube/clapper-services/-/clapper-services-0.0.14.tgz",
142
- "integrity": "sha512-rC919mMzMj93Gd7CD/Yy1011huWP+GLkg0pf1g71BcwGYzp8Su6Kn82ZMNXeUStoeksR0/Lep5tnmfp+9HAaiA==",
143
  "peerDependencies": {
144
  "@aitube/clap": "0.0.30",
145
- "@aitube/timeline": "0.0.37",
146
  "@monaco-editor/react": "4.6.0",
147
  "monaco-editor": "0.50.0",
148
  "react": "*",
@@ -168,9 +168,9 @@
168
  }
169
  },
170
  "node_modules/@aitube/timeline": {
171
- "version": "0.0.37",
172
- "resolved": "https://registry.npmjs.org/@aitube/timeline/-/timeline-0.0.37.tgz",
173
- "integrity": "sha512-WM7cfVR9TtgjH0kAMpGkbjfKU7zfHKihqWj8DemAPeDPyvWbzbvCEFqI9AV7w/uf3K8Y/QV7iitKgXRrM/QUhQ==",
174
  "dependencies": {
175
  "date-fns": "^3.6.0",
176
  "react-virtualized-auto-sizer": "^1.0.24"
@@ -4336,15 +4336,15 @@
4336
  }
4337
  },
4338
  "node_modules/@smithy/core": {
4339
- "version": "2.2.4",
4340
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.4.tgz",
4341
- "integrity": "sha512-qdY3LpMOUyLM/gfjjMQZui+UTNS7kBRDWlvyIhVOql5dn2J3isk9qUTBtQ1CbDH8MTugHis1zu3h4rH+Qmmh4g==",
4342
  "dependencies": {
4343
  "@smithy/middleware-endpoint": "^3.0.4",
4344
- "@smithy/middleware-retry": "^3.0.7",
4345
  "@smithy/middleware-serde": "^3.0.3",
4346
  "@smithy/protocol-http": "^4.0.3",
4347
- "@smithy/smithy-client": "^3.1.5",
4348
  "@smithy/types": "^3.3.0",
4349
  "@smithy/util-middleware": "^3.0.3",
4350
  "tslib": "^2.6.2"
@@ -4402,9 +4402,9 @@
4402
  }
4403
  },
4404
  "node_modules/@smithy/fetch-http-handler": {
4405
- "version": "3.2.0",
4406
- "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.0.tgz",
4407
- "integrity": "sha512-vFvDxMrc6sO5Atec8PaISckMcAwsCrRhYxwUylg97bRT2KZoumOF7qk5+6EVUtuM1IG9AJV5aqXnHln9ZdXHpg==",
4408
  "dependencies": {
4409
  "@smithy/protocol-http": "^4.0.3",
4410
  "@smithy/querystring-builder": "^3.0.3",
@@ -4478,14 +4478,14 @@
4478
  }
4479
  },
4480
  "node_modules/@smithy/middleware-retry": {
4481
- "version": "3.0.7",
4482
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.7.tgz",
4483
- "integrity": "sha512-f5q7Y09G+2h5ivkSx5CHvlAT4qRR3jBFEsfXyQ9nFNiWQlr8c48blnu5cmbTQ+p1xmIO14UXzKoF8d7Tm0Gsjw==",
4484
  "dependencies": {
4485
  "@smithy/node-config-provider": "^3.1.3",
4486
  "@smithy/protocol-http": "^4.0.3",
4487
  "@smithy/service-error-classification": "^3.0.3",
4488
- "@smithy/smithy-client": "^3.1.5",
4489
  "@smithy/types": "^3.3.0",
4490
  "@smithy/util-middleware": "^3.0.3",
4491
  "@smithy/util-retry": "^3.0.3",
@@ -4535,9 +4535,9 @@
4535
  }
4536
  },
4537
  "node_modules/@smithy/node-http-handler": {
4538
- "version": "3.1.1",
4539
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.1.1.tgz",
4540
- "integrity": "sha512-L71NLyPeP450r2J/mfu1jMc//Z1YnqJt2eSNw7uhiItaONnBLDA68J5jgxq8+MBDsYnFwNAIc7dBG1ImiWBiwg==",
4541
  "dependencies": {
4542
  "@smithy/abort-controller": "^3.1.1",
4543
  "@smithy/protocol-http": "^4.0.3",
@@ -4639,15 +4639,15 @@
4639
  }
4640
  },
4641
  "node_modules/@smithy/smithy-client": {
4642
- "version": "3.1.5",
4643
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.5.tgz",
4644
- "integrity": "sha512-x9bL9Mx2CT2P1OiUlHM+ZNpbVU6TgT32f9CmTRzqIHA7M4vYrROCWEoC3o4xHNJASoGd4Opos3cXYPgh+/m4Ww==",
4645
  "dependencies": {
4646
  "@smithy/middleware-endpoint": "^3.0.4",
4647
  "@smithy/middleware-stack": "^3.0.3",
4648
  "@smithy/protocol-http": "^4.0.3",
4649
  "@smithy/types": "^3.3.0",
4650
- "@smithy/util-stream": "^3.0.5",
4651
  "tslib": "^2.6.2"
4652
  },
4653
  "engines": {
@@ -4731,12 +4731,12 @@
4731
  }
4732
  },
4733
  "node_modules/@smithy/util-defaults-mode-browser": {
4734
- "version": "3.0.7",
4735
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.7.tgz",
4736
- "integrity": "sha512-Q2txLyvQyGfmjsaDbVV7Sg8psefpFcrnlGapDzXGFRPFKRBeEg6OvFK8FljqjeHSaCZ6/UuzQExUPqBR/2qlDA==",
4737
  "dependencies": {
4738
  "@smithy/property-provider": "^3.1.3",
4739
- "@smithy/smithy-client": "^3.1.5",
4740
  "@smithy/types": "^3.3.0",
4741
  "bowser": "^2.11.0",
4742
  "tslib": "^2.6.2"
@@ -4746,15 +4746,15 @@
4746
  }
4747
  },
4748
  "node_modules/@smithy/util-defaults-mode-node": {
4749
- "version": "3.0.7",
4750
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.7.tgz",
4751
- "integrity": "sha512-F4Qcj1fG6MGi2BSWCslfsMSwllws/WzYONBGtLybyY+halAcXdWhcew+mej8M5SKd5hqPYp4f7b+ABQEaeytgg==",
4752
  "dependencies": {
4753
  "@smithy/config-resolver": "^3.0.4",
4754
  "@smithy/credential-provider-imds": "^3.1.3",
4755
  "@smithy/node-config-provider": "^3.1.3",
4756
  "@smithy/property-provider": "^3.1.3",
4757
- "@smithy/smithy-client": "^3.1.5",
4758
  "@smithy/types": "^3.3.0",
4759
  "tslib": "^2.6.2"
4760
  },
@@ -4812,12 +4812,12 @@
4812
  }
4813
  },
4814
  "node_modules/@smithy/util-stream": {
4815
- "version": "3.0.5",
4816
- "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.5.tgz",
4817
- "integrity": "sha512-xC3L5PKMAT/Bh8fmHNXP9sdQ4+4aKVUU3EEJ2CF/lLk7R+wtMJM+v/1B4en7jO++Wa5spGzFDBCl0QxgbUc5Ug==",
4818
  "dependencies": {
4819
- "@smithy/fetch-http-handler": "^3.2.0",
4820
- "@smithy/node-http-handler": "^3.1.1",
4821
  "@smithy/types": "^3.3.0",
4822
  "@smithy/util-base64": "^3.0.0",
4823
  "@smithy/util-buffer-from": "^3.0.0",
@@ -5615,12 +5615,12 @@
5615
  "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
5616
  },
5617
  "node_modules/automation-events": {
5618
- "version": "7.0.5",
5619
- "resolved": "https://registry.npmjs.org/automation-events/-/automation-events-7.0.5.tgz",
5620
- "integrity": "sha512-Ni6vhZg0mKmVlew1kxWAzWL7QY1LYDdoYgp6yF9OHeskDrjyJp2SqoKoPQYeiMYjeIlbSpnxXm/JI55VcmX5Wg==",
5621
  "dependencies": {
5622
- "@babel/runtime": "^7.24.5",
5623
- "tslib": "^2.6.2"
5624
  },
5625
  "engines": {
5626
  "node": ">=18.2.0"
@@ -6961,9 +6961,9 @@
6961
  }
6962
  },
6963
  "node_modules/electron-to-chromium": {
6964
- "version": "1.4.818",
6965
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.818.tgz",
6966
- "integrity": "sha512-eGvIk2V0dGImV9gWLq8fDfTTsCAeMDwZqEPMr+jMInxZdnp9Us8UpovYpRCf9NQ7VOFgrN2doNSgvISbsbNpxA=="
6967
  },
6968
  "node_modules/emoji-regex": {
6969
  "version": "9.2.2",
@@ -7613,9 +7613,9 @@
7613
  }
7614
  },
7615
  "node_modules/esquery": {
7616
- "version": "1.5.0",
7617
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
7618
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
7619
  "dev": true,
7620
  "dependencies": {
7621
  "estraverse": "^5.1.0"
@@ -7745,12 +7745,12 @@
7745
  "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w=="
7746
  },
7747
  "node_modules/fast-unique-numbers": {
7748
- "version": "9.0.5",
7749
- "resolved": "https://registry.npmjs.org/fast-unique-numbers/-/fast-unique-numbers-9.0.5.tgz",
7750
- "integrity": "sha512-wVA1YcLQn0eAo4P1DXu4UI3wx68Llwm2/iCtpoOGuTi3jm/13KFYjCt3Nlq2fseSuyaBz43RKimj5G68GDzjjg==",
7751
  "dependencies": {
7752
- "@babel/runtime": "^7.24.5",
7753
- "tslib": "^2.6.2"
7754
  },
7755
  "engines": {
7756
  "node": ">=18.2.0"
@@ -10149,9 +10149,9 @@
10149
  }
10150
  },
10151
  "node_modules/openai": {
10152
- "version": "4.52.3",
10153
- "resolved": "https://registry.npmjs.org/openai/-/openai-4.52.3.tgz",
10154
- "integrity": "sha512-IyQLYKGYoEEkUCEm2frPzwHDJ3Ym663KtivnY6pWCzuoi6/HgSIMMxpcuTRS81GH6tiULPYGmTxIvzXdmPIWOw==",
10155
  "dependencies": {
10156
  "@types/node": "^18.11.18",
10157
  "@types/node-fetch": "^2.6.4",
@@ -10399,11 +10399,11 @@
10399
  }
10400
  },
10401
  "node_modules/path-scurry/node_modules/lru-cache": {
10402
- "version": "10.3.1",
10403
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.1.tgz",
10404
- "integrity": "sha512-9/8QXrtbGeMB6LxwQd4x1tIMnsmUxMvIH/qWGsccz6bt9Uln3S+sgAaqfQNhbGA8ufzs2fHuP/yqapGgP9Hh2g==",
10405
  "engines": {
10406
- "node": ">=18"
10407
  }
10408
  },
10409
  "node_modules/path-to-regexp": {
@@ -10708,9 +10708,9 @@
10708
  }
10709
  },
10710
  "node_modules/qs": {
10711
- "version": "6.12.2",
10712
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.2.tgz",
10713
- "integrity": "sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==",
10714
  "dependencies": {
10715
  "side-channel": "^1.0.6"
10716
  },
@@ -11554,13 +11554,13 @@
11554
  }
11555
  },
11556
  "node_modules/standardized-audio-context": {
11557
- "version": "25.3.72",
11558
- "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.72.tgz",
11559
- "integrity": "sha512-Dvwu2NuqafQqWxUWoo6G9ze/cvVNlFDpmIOA8XjuItrfR0h/REjgjoYCT3Y7nbkUJKGoz8SqqVzR7JATQV4XeQ==",
11560
  "dependencies": {
11561
- "@babel/runtime": "^7.24.5",
11562
- "automation-events": "^7.0.5",
11563
- "tslib": "^2.6.2"
11564
  }
11565
  },
11566
  "node_modules/state-local": {
@@ -11950,12 +11950,9 @@
11950
  }
11951
  },
11952
  "node_modules/tailwind-merge": {
11953
- "version": "2.3.0",
11954
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.3.0.tgz",
11955
- "integrity": "sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==",
11956
- "dependencies": {
11957
- "@babel/runtime": "^7.24.1"
11958
- },
11959
  "funding": {
11960
  "type": "github",
11961
  "url": "https://github.com/sponsors/dcastil"
 
10
  "dependencies": {
11
  "@aitube/broadway": "0.0.22",
12
  "@aitube/clap": "0.0.30",
13
+ "@aitube/clapper-services": "0.0.16",
14
  "@aitube/engine": "0.0.26",
15
+ "@aitube/timeline": "0.0.40",
16
  "@fal-ai/serverless-client": "^0.11.0",
17
  "@gradio/client": "^1.1.1",
18
  "@huggingface/hub": "^0.15.1",
 
137
  }
138
  },
139
  "node_modules/@aitube/clapper-services": {
140
+ "version": "0.0.16",
141
+ "resolved": "https://registry.npmjs.org/@aitube/clapper-services/-/clapper-services-0.0.16.tgz",
142
+ "integrity": "sha512-fMUoyjiSmE1zWPDWq7kNHKhOhtylgceaVsV7wOzdHMfBNruTPgAG1rHgN1o4m4HicYn4KCZwa433d9zDKDPXRg==",
143
  "peerDependencies": {
144
  "@aitube/clap": "0.0.30",
145
+ "@aitube/timeline": "0.0.40",
146
  "@monaco-editor/react": "4.6.0",
147
  "monaco-editor": "0.50.0",
148
  "react": "*",
 
168
  }
169
  },
170
  "node_modules/@aitube/timeline": {
171
+ "version": "0.0.40",
172
+ "resolved": "https://registry.npmjs.org/@aitube/timeline/-/timeline-0.0.40.tgz",
173
+ "integrity": "sha512-TBH0Ji3rOMTITvDK6TwYr+0dRARY4hJsAeHXWt9yUXLfEYNwx8R2XR7qlk3C0gSSEpH11n7pB8qpx3TtpzSWCQ==",
174
  "dependencies": {
175
  "date-fns": "^3.6.0",
176
  "react-virtualized-auto-sizer": "^1.0.24"
 
4336
  }
4337
  },
4338
  "node_modules/@smithy/core": {
4339
+ "version": "2.2.5",
4340
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.5.tgz",
4341
+ "integrity": "sha512-0kqyj93/Aa30TEXnnWRBetN8fDGjFF+u8cdIiMI8YS6CrUF2dLTavRfHKfWh5cL5d6s2ZNyEnLjBitdcKmkETQ==",
4342
  "dependencies": {
4343
  "@smithy/middleware-endpoint": "^3.0.4",
4344
+ "@smithy/middleware-retry": "^3.0.8",
4345
  "@smithy/middleware-serde": "^3.0.3",
4346
  "@smithy/protocol-http": "^4.0.3",
4347
+ "@smithy/smithy-client": "^3.1.6",
4348
  "@smithy/types": "^3.3.0",
4349
  "@smithy/util-middleware": "^3.0.3",
4350
  "tslib": "^2.6.2"
 
4402
  }
4403
  },
4404
  "node_modules/@smithy/fetch-http-handler": {
4405
+ "version": "3.2.1",
4406
+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.1.tgz",
4407
+ "integrity": "sha512-0w0bgUvZmfa0vHN8a+moByhCJT07WN6AHKEhFSOLsDpnszm+5dLVv5utGaqbhOrZ/aF5x3xuPMs/oMCd+4O5xg==",
4408
  "dependencies": {
4409
  "@smithy/protocol-http": "^4.0.3",
4410
  "@smithy/querystring-builder": "^3.0.3",
 
4478
  }
4479
  },
4480
  "node_modules/@smithy/middleware-retry": {
4481
+ "version": "3.0.8",
4482
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.8.tgz",
4483
+ "integrity": "sha512-wmIw3t6ZbeqstUFdXtStzSSltoYrcfc28ndnr0mDSMmtMSRNduNbmneA7xiE224fVFXzbf24+0oREks1u2X7Mw==",
4484
  "dependencies": {
4485
  "@smithy/node-config-provider": "^3.1.3",
4486
  "@smithy/protocol-http": "^4.0.3",
4487
  "@smithy/service-error-classification": "^3.0.3",
4488
+ "@smithy/smithy-client": "^3.1.6",
4489
  "@smithy/types": "^3.3.0",
4490
  "@smithy/util-middleware": "^3.0.3",
4491
  "@smithy/util-retry": "^3.0.3",
 
4535
  }
4536
  },
4537
  "node_modules/@smithy/node-http-handler": {
4538
+ "version": "3.1.2",
4539
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.1.2.tgz",
4540
+ "integrity": "sha512-Td3rUNI7qqtoSLTsJBtsyfoG4cF/XMFmJr6Z2dX8QNzIi6tIW6YmuyFml8mJ2cNpyWNqITKbROMOFrvQjmsOvw==",
4541
  "dependencies": {
4542
  "@smithy/abort-controller": "^3.1.1",
4543
  "@smithy/protocol-http": "^4.0.3",
 
4639
  }
4640
  },
4641
  "node_modules/@smithy/smithy-client": {
4642
+ "version": "3.1.6",
4643
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.6.tgz",
4644
+ "integrity": "sha512-w9oboI661hfptr26houZ5mdKc//DMxkuOMXSaIiALqGn4bHYT9S4U69BBS6tHX4TZHgShmhcz0d6aXk7FY5soA==",
4645
  "dependencies": {
4646
  "@smithy/middleware-endpoint": "^3.0.4",
4647
  "@smithy/middleware-stack": "^3.0.3",
4648
  "@smithy/protocol-http": "^4.0.3",
4649
  "@smithy/types": "^3.3.0",
4650
+ "@smithy/util-stream": "^3.0.6",
4651
  "tslib": "^2.6.2"
4652
  },
4653
  "engines": {
 
4731
  }
4732
  },
4733
  "node_modules/@smithy/util-defaults-mode-browser": {
4734
+ "version": "3.0.8",
4735
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.8.tgz",
4736
+ "integrity": "sha512-eLRHCvM1w3ZJkYcd60yKqM3d70dPB+071EDpf9ZGYqFed3xcm/+pWwNS/xM0JXRrjm0yAA19dWcdFN2IE/66pQ==",
4737
  "dependencies": {
4738
  "@smithy/property-provider": "^3.1.3",
4739
+ "@smithy/smithy-client": "^3.1.6",
4740
  "@smithy/types": "^3.3.0",
4741
  "bowser": "^2.11.0",
4742
  "tslib": "^2.6.2"
 
4746
  }
4747
  },
4748
  "node_modules/@smithy/util-defaults-mode-node": {
4749
+ "version": "3.0.8",
4750
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.8.tgz",
4751
+ "integrity": "sha512-Tajvdyg5+k77j6AOrwSCZgi7KdBizqPNs3HCnFGRoxDjzh+CjPLaLrXbIRB0lsAmqYmRHIU34IogByaqvDrkBQ==",
4752
  "dependencies": {
4753
  "@smithy/config-resolver": "^3.0.4",
4754
  "@smithy/credential-provider-imds": "^3.1.3",
4755
  "@smithy/node-config-provider": "^3.1.3",
4756
  "@smithy/property-provider": "^3.1.3",
4757
+ "@smithy/smithy-client": "^3.1.6",
4758
  "@smithy/types": "^3.3.0",
4759
  "tslib": "^2.6.2"
4760
  },
 
4812
  }
4813
  },
4814
  "node_modules/@smithy/util-stream": {
4815
+ "version": "3.0.6",
4816
+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.6.tgz",
4817
+ "integrity": "sha512-w9i//7egejAIvplX821rPWWgaiY1dxsQUw0hXX7qwa/uZ9U3zplqTQ871jWadkcVB9gFDhkPWYVZf4yfFbZ0xA==",
4818
  "dependencies": {
4819
+ "@smithy/fetch-http-handler": "^3.2.1",
4820
+ "@smithy/node-http-handler": "^3.1.2",
4821
  "@smithy/types": "^3.3.0",
4822
  "@smithy/util-base64": "^3.0.0",
4823
  "@smithy/util-buffer-from": "^3.0.0",
 
5615
  "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
5616
  },
5617
  "node_modules/automation-events": {
5618
+ "version": "7.0.6",
5619
+ "resolved": "https://registry.npmjs.org/automation-events/-/automation-events-7.0.6.tgz",
5620
+ "integrity": "sha512-3tFP+Xrk0u0JWdGEvJGtW9oUdWOnX1v6RwFapgIwanBvn21yCzgBMe+FlAPW+3kIQsxIDV9mFw//BzrGXOJQ5A==",
5621
  "dependencies": {
5622
+ "@babel/runtime": "^7.24.7",
5623
+ "tslib": "^2.6.3"
5624
  },
5625
  "engines": {
5626
  "node": ">=18.2.0"
 
6961
  }
6962
  },
6963
  "node_modules/electron-to-chromium": {
6964
+ "version": "1.4.820",
6965
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.820.tgz",
6966
+ "integrity": "sha512-kK/4O/YunacfboFEk/BDf7VO1HoPmDudLTJAU9NmXIOSjsV7qVIX3OrI4REZo0VmdqhcpUcncQc6N8Q3aEXlHg=="
6967
  },
6968
  "node_modules/emoji-regex": {
6969
  "version": "9.2.2",
 
7613
  }
7614
  },
7615
  "node_modules/esquery": {
7616
+ "version": "1.6.0",
7617
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
7618
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
7619
  "dev": true,
7620
  "dependencies": {
7621
  "estraverse": "^5.1.0"
 
7745
  "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w=="
7746
  },
7747
  "node_modules/fast-unique-numbers": {
7748
+ "version": "9.0.6",
7749
+ "resolved": "https://registry.npmjs.org/fast-unique-numbers/-/fast-unique-numbers-9.0.6.tgz",
7750
+ "integrity": "sha512-KGsLrPoDOcnPVDVuZGnc/bHwBA9u9uvsmLK3sNr7js7TWVuM0Udb6lP4YnNZtphb+zBDCsknxf4BNg7grNjTPg==",
7751
  "dependencies": {
7752
+ "@babel/runtime": "^7.24.7",
7753
+ "tslib": "^2.6.3"
7754
  },
7755
  "engines": {
7756
  "node": ">=18.2.0"
 
10149
  }
10150
  },
10151
  "node_modules/openai": {
10152
+ "version": "4.52.4",
10153
+ "resolved": "https://registry.npmjs.org/openai/-/openai-4.52.4.tgz",
10154
+ "integrity": "sha512-3CkV7e8epJBnTe5ptn4i3ivfm1d8cvkbvBOzhGmGYEarpDpcCgwOMV1aBPvZ/HoveUtREWUE9Fqcy7BcPNtMJg==",
10155
  "dependencies": {
10156
  "@types/node": "^18.11.18",
10157
  "@types/node-fetch": "^2.6.4",
 
10399
  }
10400
  },
10401
  "node_modules/path-scurry/node_modules/lru-cache": {
10402
+ "version": "10.4.2",
10403
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.2.tgz",
10404
+ "integrity": "sha512-voV4dDrdVZVNz84n39LFKDaRzfwhdzJ7akpyXfTMxCgRUp07U3lcJUXRlhTKP17rgt09sUzLi5iCitpEAr+6ug==",
10405
  "engines": {
10406
+ "node": "14 || 16 || 18 || 20 || >=22"
10407
  }
10408
  },
10409
  "node_modules/path-to-regexp": {
 
10708
  }
10709
  },
10710
  "node_modules/qs": {
10711
+ "version": "6.12.3",
10712
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.3.tgz",
10713
+ "integrity": "sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==",
10714
  "dependencies": {
10715
  "side-channel": "^1.0.6"
10716
  },
 
11554
  }
11555
  },
11556
  "node_modules/standardized-audio-context": {
11557
+ "version": "25.3.73",
11558
+ "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.73.tgz",
11559
+ "integrity": "sha512-PiFIweBipW18uz0rNrXs8A7MzdCcVcEHiqf0B5RzwBIgp0eSb3Cj11HcWidrgR0XYeEogokcMsIbrVjy63mhoA==",
11560
  "dependencies": {
11561
+ "@babel/runtime": "^7.24.7",
11562
+ "automation-events": "^7.0.6",
11563
+ "tslib": "^2.6.3"
11564
  }
11565
  },
11566
  "node_modules/state-local": {
 
11950
  }
11951
  },
11952
  "node_modules/tailwind-merge": {
11953
+ "version": "2.4.0",
11954
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz",
11955
+ "integrity": "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==",
 
 
 
11956
  "funding": {
11957
  "type": "github",
11958
  "url": "https://github.com/sponsors/dcastil"
package.json CHANGED
@@ -12,9 +12,9 @@
12
  "dependencies": {
13
  "@aitube/broadway": "0.0.22",
14
  "@aitube/clap": "0.0.30",
15
- "@aitube/clapper-services": "0.0.14",
16
  "@aitube/engine": "0.0.26",
17
- "@aitube/timeline": "0.0.37",
18
  "@fal-ai/serverless-client": "^0.11.0",
19
  "@gradio/client": "^1.1.1",
20
  "@huggingface/hub": "^0.15.1",
 
12
  "dependencies": {
13
  "@aitube/broadway": "0.0.22",
14
  "@aitube/clap": "0.0.30",
15
+ "@aitube/clapper-services": "0.0.16",
16
  "@aitube/engine": "0.0.26",
17
+ "@aitube/timeline": "0.0.40",
18
  "@fal-ai/serverless-client": "^0.11.0",
19
  "@gradio/client": "^1.1.1",
20
  "@huggingface/hub": "^0.15.1",
src/app/main.tsx CHANGED
@@ -67,7 +67,8 @@ function MainContent() {
67
  flex flex-col
68
  w-screen h-screen
69
  overflow-hidden
70
- items-center justify-center
 
71
  font-light
72
  text-stone-900/90 dark:text-stone-100/90
73
  `)}
@@ -76,10 +77,14 @@ function MainContent() {
76
  }}
77
  >
78
  <TopBar />
79
- <div className={cn(
80
- `flex flex-row flex-grow w-full overflow-hidden`,
81
- isEmpty ? "opacity-0" : "opacity-100"
82
- )}>
 
 
 
 
83
  <ReflexContainer orientation="vertical">
84
 
85
  <ReflexElement>
@@ -120,7 +125,6 @@ function MainContent() {
120
  {showAssistant && <ReflexElement size={300}><ChatView /></ReflexElement>}
121
 
122
  </ReflexContainer>
123
-
124
  </div>
125
 
126
  <SettingsDialog />
 
67
  flex flex-col
68
  w-screen h-screen
69
  overflow-hidden
70
+ justify-between
71
+
72
  font-light
73
  text-stone-900/90 dark:text-stone-100/90
74
  `)}
 
77
  }}
78
  >
79
  <TopBar />
80
+ <div className={cn(`
81
+ flex flex-row overflow-hidden
82
+ h-[calc(100vh-40px)] w-screen
83
+ `,
84
+ isEmpty ? "opacity-0" : "opacity-100"
85
+ )}
86
+
87
+ >
88
  <ReflexContainer orientation="vertical">
89
 
90
  <ReflexElement>
 
125
  {showAssistant && <ReflexElement size={300}><ChatView /></ReflexElement>}
126
 
127
  </ReflexContainer>
 
128
  </div>
129
 
130
  <SettingsDialog />
src/components/editors/EntityEditor/index.tsx CHANGED
@@ -1,15 +1,37 @@
 
 
1
  import { FormFile } from "@/components/forms/FormFile"
2
  import { FormInput } from "@/components/forms/FormInput"
3
  import { FormSection } from "@/components/forms/FormSection"
4
- import { useEntityEditor } from "@/services"
 
 
5
 
6
  export function EntityEditor() {
 
 
 
 
 
 
7
  const current = useEntityEditor(s => s.current)
8
  const setCurrent = useEntityEditor(s => s.setCurrent)
9
  const history = useEntityEditor(s => s.history)
10
  const undo = useEntityEditor(s => s.undo)
11
  const redo = useEntityEditor(s => s.redo)
12
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  if (!current) {
14
  return <div>
15
  No Entity selected
@@ -30,7 +52,7 @@ export function EntityEditor() {
30
  ? <img src={current?.imageId}></img>
31
  : null}
32
  <FormFile
33
- label={"Visual identity file"}
34
  />
35
  {/*
36
  <FormInput<string>
@@ -38,6 +60,9 @@ export function EntityEditor() {
38
  value={current?.audioId.slice(0, 20)}
39
  />
40
  */}
 
 
 
41
  <FormInput<string>
42
  label={"Label"}
43
  value={current.label}
 
1
+ import { TimelineSegment, useTimeline } from "@aitube/timeline"
2
+
3
  import { FormFile } from "@/components/forms/FormFile"
4
  import { FormInput } from "@/components/forms/FormInput"
5
  import { FormSection } from "@/components/forms/FormSection"
6
+ import { useEntityEditor, useRenderer } from "@/services"
7
+ import { useEffect } from "react"
8
+ import { ClapEntity, ClapProject } from "@aitube/clap"
9
 
10
  export function EntityEditor() {
11
+ const clap: ClapProject = useTimeline(s => s.clap)
12
+
13
+ const segmentsChanged: number = useTimeline(s => s.segmentsChanged)
14
+ const selectedSegments: TimelineSegment[] = useTimeline(s => s.selectedSegments)
15
+ const { activeSegments } = useRenderer(s => s.bufferedSegments)
16
+
17
  const current = useEntityEditor(s => s.current)
18
  const setCurrent = useEntityEditor(s => s.setCurrent)
19
  const history = useEntityEditor(s => s.history)
20
  const undo = useEntityEditor(s => s.undo)
21
  const redo = useEntityEditor(s => s.redo)
22
 
23
+ let segment = selectedSegments.at(-1)
24
+ let entity: ClapEntity | undefined = clap.entityIndex[segment?.entityId as any]
25
+
26
+ if (!entity) {
27
+ segment = activeSegments.find(s => clap.entityIndex[s?.entityId as any])
28
+ entity = clap.entityIndex[segment?.entityId as any]
29
+ }
30
+
31
+ useEffect(() => {
32
+ setCurrent(entity)
33
+ }, [clap, entity, segmentsChanged])
34
+
35
  if (!current) {
36
  return <div>
37
  No Entity selected
 
52
  ? <img src={current?.imageId}></img>
53
  : null}
54
  <FormFile
55
+ label={"Visual identity file (TODO)"}
56
  />
57
  {/*
58
  <FormInput<string>
 
60
  value={current?.audioId.slice(0, 20)}
61
  />
62
  */}
63
+ <FormFile
64
+ label={"Audio identity file (TODO)"}
65
+ />
66
  <FormInput<string>
67
  label={"Label"}
68
  value={current.label}
src/components/editors/SegmentEditor/index.tsx CHANGED
@@ -1,14 +1,25 @@
 
 
 
1
  import { FormInput } from "@/components/forms/FormInput"
2
  import { FormSection } from "@/components/forms/FormSection"
3
  import { useSegmentEditor } from "@/services"
 
 
4
 
5
  export function SegmentEditor() {
 
 
6
  const current = useSegmentEditor(s => s.current)
7
  const setCurrent = useSegmentEditor(s => s.setCurrent)
8
  const history = useSegmentEditor(s => s.history)
9
  const undo = useSegmentEditor(s => s.undo)
10
  const redo = useSegmentEditor(s => s.redo)
11
 
 
 
 
 
12
  if (!current) {
13
  return <div>
14
  No segment selected
@@ -17,12 +28,14 @@ export function SegmentEditor() {
17
 
18
  return (
19
  <FormSection
20
- label={"Project Settings"}
21
  className="p-4">
22
  <FormInput<string>
 
23
  label={"Label"}
24
  value={current.label}
25
  />
 
26
  <FormInput<string>
27
  label={"Prompt"}
28
  value={current.prompt}
@@ -33,12 +46,9 @@ export function SegmentEditor() {
33
  })
34
  }}
35
  />
 
36
  <div>
37
- <div>Generation status</div>
38
- <div>{current.status || "N.A."}</div>
39
- </div>
40
- <div>
41
- <div>Created at</div>
42
  <div>{current.createdAt || "N.A."}</div>
43
  </div>
44
  </FormSection>
 
1
+ import { useEffect } from "react"
2
+ import { TimelineSegment, useTimeline } from "@aitube/timeline"
3
+
4
  import { FormInput } from "@/components/forms/FormInput"
5
  import { FormSection } from "@/components/forms/FormSection"
6
  import { useSegmentEditor } from "@/services"
7
+ import { ClapSegmentStatus } from "@aitube/clap"
8
+
9
 
10
  export function SegmentEditor() {
11
+ const segmentsChanged: number = useTimeline(s => s.segmentsChanged)
12
+ const selectedSegments: TimelineSegment[] = useTimeline(s => s.selectedSegments)
13
  const current = useSegmentEditor(s => s.current)
14
  const setCurrent = useSegmentEditor(s => s.setCurrent)
15
  const history = useSegmentEditor(s => s.history)
16
  const undo = useSegmentEditor(s => s.undo)
17
  const redo = useSegmentEditor(s => s.redo)
18
 
19
+ useEffect(() => {
20
+ setCurrent(selectedSegments.at(-1))
21
+ }, [selectedSegments.map(s => s.id).join(',')])
22
+
23
  if (!current) {
24
  return <div>
25
  No segment selected
 
28
 
29
  return (
30
  <FormSection
31
+ label={"Segment Editor"}
32
  className="p-4">
33
  <FormInput<string>
34
+ type="textarea"
35
  label={"Label"}
36
  value={current.label}
37
  />
38
+ {/*
39
  <FormInput<string>
40
  label={"Prompt"}
41
  value={current.prompt}
 
46
  })
47
  }}
48
  />
49
+ */}
50
  <div>
51
+ <div>Created at:</div>
 
 
 
 
52
  <div>{current.createdAt || "N.A."}</div>
53
  </div>
54
  </FormSection>
src/lib/core/constants.ts CHANGED
@@ -4,7 +4,7 @@
4
  export const HARD_LIMIT_NB_MAX_ASSETS_TO_GENERATE_IN_PARALLEL = 32
5
 
6
  export const APP_NAME = "Clapper.app"
7
- export const APP_REVISION = "r20240626-2017"
8
 
9
  export const APP_DOMAIN = "Clapper.app"
10
  export const APP_LINK = "https://clapper.app"
 
4
  export const HARD_LIMIT_NB_MAX_ASSETS_TO_GENERATE_IN_PARALLEL = 32
5
 
6
  export const APP_NAME = "Clapper.app"
7
+ export const APP_REVISION = "r20240709-1611"
8
 
9
  export const APP_DOMAIN = "Clapper.app"
10
  export const APP_LINK = "https://clapper.app"
src/services/monitor/useMonitor.ts CHANGED
@@ -112,9 +112,11 @@ export const useMonitor = create<MonitorStore>((set, get) => ({
112
 
113
  const { isPlaying, mode, staticVideoRef } = monitor
114
  const { renderLoop } = renderer
115
- const { setCursorTimestampAtInMs } = timeline
116
 
117
- setCursorTimestampAtInMs(timeInMs)
 
 
118
 
119
  if (mode === MonitoringMode.NONE) {
120
  return
 
112
 
113
  const { isPlaying, mode, staticVideoRef } = monitor
114
  const { renderLoop } = renderer
115
+ const { setCursorTimestampAtInMs, cursorTimestampAtInMs } = timeline
116
 
117
+ if (cursorTimestampAtInMs !== timeInMs) {
118
+ setCursorTimestampAtInMs(timeInMs)
119
+ }
120
 
121
  if (mode === MonitoringMode.NONE) {
122
  return
src/services/ui/theme.ts CHANGED
@@ -106,6 +106,9 @@ export const backstage: UITheme = {
106
  // gradientStart: 0.6,
107
  // gradientEnd: 1.0,
108
  }
 
 
 
109
  }
110
  }
111
 
@@ -170,6 +173,9 @@ export const midnight: UITheme = {
170
  gradientStart: 0.6,
171
  gradientEnd: 1.0,
172
  }
 
 
 
173
  }
174
  }
175
  }
@@ -233,6 +239,9 @@ export const lavender: UITheme = {
233
  // gradientStart: 0.6,
234
  // gradientEnd: 1.0,
235
  }
 
 
 
236
  }
237
  }
238
  }
@@ -296,6 +305,9 @@ export const flix: UITheme = {
296
  gradientStart: 0.6,
297
  gradientEnd: 1.0,
298
  }
 
 
 
299
  }
300
  }
301
  }
@@ -359,6 +371,9 @@ export const lore: UITheme = {
359
  gradientStart: 0.6,
360
  gradientEnd: 1.0,
361
  }
 
 
 
362
  }
363
  }
364
  }
@@ -423,6 +438,9 @@ export const gordon: UITheme = {
423
  // gradientStart: 0.6,
424
  // gradientEnd: 1.0,
425
  }
 
 
 
426
  }
427
  }
428
  }
@@ -488,6 +506,9 @@ export const system360: UITheme = {
488
  // gradientStart: 0.6,
489
  // gradientEnd: 1.0,
490
  }
 
 
 
491
  }
492
  }
493
  }
@@ -551,6 +572,9 @@ export const silent: UITheme = {
551
  // gradientStart: 0.6,
552
  // gradientEnd: 1.0,
553
  }
 
 
 
554
  }
555
  }
556
  }
@@ -614,6 +638,9 @@ export const sandy: UITheme = {
614
  // gradientStart: 0.6,
615
  // gradientEnd: 1.0,
616
  }
 
 
 
617
  }
618
  }
619
  }
 
106
  // gradientStart: 0.6,
107
  // gradientEnd: 1.0,
108
  }
109
+ },
110
+ playbackCursor: {
111
+ lineColor: "#FACC15"
112
  }
113
  }
114
 
 
173
  gradientStart: 0.6,
174
  gradientEnd: 1.0,
175
  }
176
+ },
177
+ playbackCursor: {
178
+ lineColor: "#5B9DF1",
179
  }
180
  }
181
  }
 
239
  // gradientStart: 0.6,
240
  // gradientEnd: 1.0,
241
  }
242
+ },
243
+ playbackCursor: {
244
+ lineColor: "#A78BFA",
245
  }
246
  }
247
  }
 
305
  gradientStart: 0.6,
306
  gradientEnd: 1.0,
307
  }
308
+ },
309
+ playbackCursor: {
310
+ lineColor: "#D22F27",
311
  }
312
  }
313
  }
 
371
  gradientStart: 0.6,
372
  gradientEnd: 1.0,
373
  }
374
+ },
375
+ playbackCursor: {
376
+ lineColor: "#DE4A80",
377
  }
378
  }
379
  }
 
438
  // gradientStart: 0.6,
439
  // gradientEnd: 1.0,
440
  }
441
+ },
442
+ playbackCursor: {
443
+ lineColor: "#ff8400",
444
  }
445
  }
446
  }
 
506
  // gradientStart: 0.6,
507
  // gradientEnd: 1.0,
508
  }
509
+ },
510
+ playbackCursor: {
511
+ lineColor: "#C74E40",
512
  }
513
  }
514
  }
 
572
  // gradientStart: 0.6,
573
  // gradientEnd: 1.0,
574
  }
575
+ },
576
+ playbackCursor: {
577
+ lineColor: "#ffffff",
578
  }
579
  }
580
  }
 
638
  // gradientStart: 0.6,
639
  // gradientEnd: 1.0,
640
  }
641
+ },
642
+ playbackCursor: {
643
+ lineColor: "#e67a7a",
644
  }
645
  }
646
  }