@idosgames/mcp 0.1.20 → 0.1.21

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 (36) hide show
  1. package/package.json +1 -1
  2. package/registry/host.json +10 -10
  3. package/registry/index.json +107 -107
  4. package/registry/modules/ai.json +6 -6
  5. package/registry/modules/board-game.json +2 -2
  6. package/registry/modules/boosts.json +2 -2
  7. package/registry/modules/character.json +6 -6
  8. package/registry/modules/chat.json +6 -6
  9. package/registry/modules/collections.json +6 -6
  10. package/registry/modules/coop-events.json +6 -6
  11. package/registry/modules/craft.json +6 -6
  12. package/registry/modules/deals.json +6 -6
  13. package/registry/modules/events.json +6 -6
  14. package/registry/modules/friends.json +6 -6
  15. package/registry/modules/idle-rpg.json +2 -2
  16. package/registry/modules/inventory.json +2 -2
  17. package/registry/modules/invite.json +6 -6
  18. package/registry/modules/leaderboard.json +6 -6
  19. package/registry/modules/lootboxes.json +2 -2
  20. package/registry/modules/mailbox.json +2 -2
  21. package/registry/modules/marketplace.json +6 -6
  22. package/registry/modules/mini-game.json +6 -6
  23. package/registry/modules/multiplayer.json +6 -6
  24. package/registry/modules/premium.json +6 -6
  25. package/registry/modules/profile.json +6 -6
  26. package/registry/modules/pvp.json +2 -2
  27. package/registry/modules/quests.json +2 -2
  28. package/registry/modules/rewards.json +6 -6
  29. package/registry/modules/season.json +6 -6
  30. package/registry/modules/store.json +6 -6
  31. package/registry/modules/tutorials.json +6 -6
  32. package/registry/modules/voxelcraft.json +5 -5
  33. package/registry/modules/workshop.json +6 -6
  34. package/registry/skills/idosgames-module-contract.json +1 -1
  35. package/registry/skills/idosgames-project-structure.json +1 -1
  36. package/registry/skills/idosgames-ui-kit.json +1 -1
@@ -1,11 +1,11 @@
1
1
  {
2
- "generatedFromCommit": "07ae5dcee5ec61ed20e2143f2f87df768fff56f3",
2
+ "generatedFromCommit": "878b12434fedd382056e4271f4d34732c8a0006b",
3
3
  "runtimePackages": {
4
4
  "@idosgames/core": "0.19.1",
5
5
  "@idosgames/wallet": "0.6.0",
6
- "@idosgames/module-sdk": "0.7.0",
7
- "@idosgames/react": "0.3.0",
8
- "@idosgames/app-shell": "0.8.0"
6
+ "@idosgames/module-sdk": "0.8.0",
7
+ "@idosgames/react": "0.4.0",
8
+ "@idosgames/app-shell": "0.9.0"
9
9
  },
10
10
  "host": {
11
11
  "id": "base",
@@ -43,15 +43,15 @@
43
43
  "name": "iDos Games",
44
44
  "url": "https://idosgames.com"
45
45
  },
46
- "version": "0.1.0",
46
+ "version": "0.1.1",
47
47
  "dependencies": {
48
48
  "@idosgames/core": "0.19.1",
49
- "@idosgames/module-sdk": "0.7.0",
50
- "@idosgames/react": "0.3.0",
49
+ "@idosgames/module-sdk": "0.8.0",
50
+ "@idosgames/react": "0.4.0",
51
51
  "react": "19.2.7"
52
52
  },
53
53
  "fileCount": 6,
54
- "contentHash": "dc935a7e6f6a19abc3a8f03b41d721727f70221ff1c3e3a4debb35dc351a7bcb"
54
+ "contentHash": "e5cce64d38d60544b7c512cd693bed6c3f1b289cbb85c7df51408efdceee82fd"
55
55
  },
56
56
  {
57
57
  "id": "premium",
@@ -80,15 +80,15 @@
80
80
  "name": "iDos Games",
81
81
  "url": "https://idosgames.com"
82
82
  },
83
- "version": "0.1.0",
83
+ "version": "0.1.1",
84
84
  "dependencies": {
85
85
  "@idosgames/core": "0.19.1",
86
- "@idosgames/module-sdk": "0.7.0",
87
- "@idosgames/react": "0.3.0",
86
+ "@idosgames/module-sdk": "0.8.0",
87
+ "@idosgames/react": "0.4.0",
88
88
  "react": "19.2.7"
89
89
  },
90
90
  "fileCount": 6,
91
- "contentHash": "ec99b4243633026ae61d43679fca7b37731033cd262bae6f5cc17479d1e67e7a"
91
+ "contentHash": "5f2472fa890edc2500ec4f0703aa320a84862d0768d2ce2b576f0460adcc5eca"
92
92
  },
93
93
  {
94
94
  "id": "character",
@@ -124,15 +124,15 @@
124
124
  "name": "iDos Games",
125
125
  "url": "https://idosgames.com"
126
126
  },
127
- "version": "0.1.0",
127
+ "version": "0.1.1",
128
128
  "dependencies": {
129
129
  "@idosgames/core": "0.19.1",
130
- "@idosgames/module-sdk": "0.7.0",
131
- "@idosgames/react": "0.3.0",
130
+ "@idosgames/module-sdk": "0.8.0",
131
+ "@idosgames/react": "0.4.0",
132
132
  "react": "19.2.7"
133
133
  },
134
134
  "fileCount": 6,
135
- "contentHash": "aff7a5b3c7b4970cd421c4e01932eea8123f1a91d3cfddd058e92660c0083377"
135
+ "contentHash": "6f756470b453ff891d612204dbe04e6826000abe0f7a7ba67df240516eb707bb"
136
136
  },
137
137
  {
138
138
  "id": "inventory",
@@ -164,8 +164,8 @@
164
164
  "version": "0.1.0",
165
165
  "dependencies": {
166
166
  "@idosgames/core": "0.19.1",
167
- "@idosgames/module-sdk": "0.7.0",
168
- "@idosgames/react": "0.3.0",
167
+ "@idosgames/module-sdk": "0.8.0",
168
+ "@idosgames/react": "0.4.0",
169
169
  "react": "19.2.7"
170
170
  },
171
171
  "fileCount": 6,
@@ -201,8 +201,8 @@
201
201
  "version": "0.1.0",
202
202
  "dependencies": {
203
203
  "@idosgames/core": "0.19.1",
204
- "@idosgames/module-sdk": "0.7.0",
205
- "@idosgames/react": "0.3.0",
204
+ "@idosgames/module-sdk": "0.8.0",
205
+ "@idosgames/react": "0.4.0",
206
206
  "react": "19.2.7"
207
207
  },
208
208
  "fileCount": 6,
@@ -237,8 +237,8 @@
237
237
  "version": "0.1.0",
238
238
  "dependencies": {
239
239
  "@idosgames/core": "0.19.1",
240
- "@idosgames/module-sdk": "0.7.0",
241
- "@idosgames/react": "0.3.0",
240
+ "@idosgames/module-sdk": "0.8.0",
241
+ "@idosgames/react": "0.4.0",
242
242
  "react": "19.2.7"
243
243
  },
244
244
  "fileCount": 6,
@@ -275,15 +275,15 @@
275
275
  "name": "iDos Games",
276
276
  "url": "https://idosgames.com"
277
277
  },
278
- "version": "0.1.0",
278
+ "version": "0.1.1",
279
279
  "dependencies": {
280
280
  "@idosgames/core": "0.19.1",
281
- "@idosgames/module-sdk": "0.7.0",
282
- "@idosgames/react": "0.3.0",
281
+ "@idosgames/module-sdk": "0.8.0",
282
+ "@idosgames/react": "0.4.0",
283
283
  "react": "19.2.7"
284
284
  },
285
285
  "fileCount": 6,
286
- "contentHash": "9bc3e6c5600bcee5d20c1449b191702d4eb08a6febbb980a3cf5e397a3a826f5"
286
+ "contentHash": "6d86641300a3b71c007d01eb4bc7ac345eef9ca99e99dda75a40d252c50c23f3"
287
287
  },
288
288
  {
289
289
  "id": "rewards",
@@ -311,15 +311,15 @@
311
311
  "name": "iDos Games",
312
312
  "url": "https://idosgames.com"
313
313
  },
314
- "version": "0.1.0",
314
+ "version": "0.1.1",
315
315
  "dependencies": {
316
316
  "@idosgames/core": "0.19.1",
317
- "@idosgames/module-sdk": "0.7.0",
318
- "@idosgames/react": "0.3.0",
317
+ "@idosgames/module-sdk": "0.8.0",
318
+ "@idosgames/react": "0.4.0",
319
319
  "react": "19.2.7"
320
320
  },
321
321
  "fileCount": 6,
322
- "contentHash": "0f3066cc534f0865a232a8883b4374fc88751e4220f151c58dc75b9b0f1abf9b"
322
+ "contentHash": "e143d6c4a50b6ab0e111a9778dfd7b3cb688f79ef28845242e25455d42e5087b"
323
323
  },
324
324
  {
325
325
  "id": "quests",
@@ -353,8 +353,8 @@
353
353
  "version": "0.1.0",
354
354
  "dependencies": {
355
355
  "@idosgames/core": "0.19.1",
356
- "@idosgames/module-sdk": "0.7.0",
357
- "@idosgames/react": "0.3.0",
356
+ "@idosgames/module-sdk": "0.8.0",
357
+ "@idosgames/react": "0.4.0",
358
358
  "react": "19.2.7"
359
359
  },
360
360
  "fileCount": 6,
@@ -389,15 +389,15 @@
389
389
  "name": "iDos Games",
390
390
  "url": "https://idosgames.com"
391
391
  },
392
- "version": "0.1.0",
392
+ "version": "0.1.1",
393
393
  "dependencies": {
394
394
  "@idosgames/core": "0.19.1",
395
- "@idosgames/module-sdk": "0.7.0",
396
- "@idosgames/react": "0.3.0",
395
+ "@idosgames/module-sdk": "0.8.0",
396
+ "@idosgames/react": "0.4.0",
397
397
  "react": "19.2.7"
398
398
  },
399
399
  "fileCount": 6,
400
- "contentHash": "dc0cf44c410258a1aa38f31d38eba7fb895cde14c7bb4ee67b1c7ee4546b25d0"
400
+ "contentHash": "35feb5ba1e12924999427f0d56b56a5b9db239ee8f91d805bcf0c39b40349273"
401
401
  },
402
402
  {
403
403
  "id": "craft",
@@ -429,15 +429,15 @@
429
429
  "name": "iDos Games",
430
430
  "url": "https://idosgames.com"
431
431
  },
432
- "version": "0.1.0",
432
+ "version": "0.1.1",
433
433
  "dependencies": {
434
434
  "@idosgames/core": "0.19.1",
435
- "@idosgames/module-sdk": "0.7.0",
436
- "@idosgames/react": "0.3.0",
435
+ "@idosgames/module-sdk": "0.8.0",
436
+ "@idosgames/react": "0.4.0",
437
437
  "react": "19.2.7"
438
438
  },
439
439
  "fileCount": 6,
440
- "contentHash": "552ef22ea9a8d06c8306a72caa5dc8b86165a197c6a7fa7cb41a4fb39bf55df5"
440
+ "contentHash": "e91d01d089fbe0897748e06bb079be807ad32b921f44c2999b592001c3bd5464"
441
441
  },
442
442
  {
443
443
  "id": "marketplace",
@@ -470,15 +470,15 @@
470
470
  "name": "iDos Games",
471
471
  "url": "https://idosgames.com"
472
472
  },
473
- "version": "0.1.0",
473
+ "version": "0.1.1",
474
474
  "dependencies": {
475
475
  "@idosgames/core": "0.19.1",
476
- "@idosgames/module-sdk": "0.7.0",
477
- "@idosgames/react": "0.3.0",
476
+ "@idosgames/module-sdk": "0.8.0",
477
+ "@idosgames/react": "0.4.0",
478
478
  "react": "19.2.7"
479
479
  },
480
480
  "fileCount": 6,
481
- "contentHash": "1996992148c6539aacebc78427829df8c778879e3a89d7ca5d948f081c2bd4e0"
481
+ "contentHash": "9c8b1bfa6b479da0a046ff6b5ef61d1f01bec41efafca6941e0075343a780610"
482
482
  },
483
483
  {
484
484
  "id": "deals",
@@ -509,15 +509,15 @@
509
509
  "name": "iDos Games",
510
510
  "url": "https://idosgames.com"
511
511
  },
512
- "version": "0.1.0",
512
+ "version": "0.1.1",
513
513
  "dependencies": {
514
514
  "@idosgames/core": "0.19.1",
515
- "@idosgames/module-sdk": "0.7.0",
516
- "@idosgames/react": "0.3.0",
515
+ "@idosgames/module-sdk": "0.8.0",
516
+ "@idosgames/react": "0.4.0",
517
517
  "react": "19.2.7"
518
518
  },
519
519
  "fileCount": 6,
520
- "contentHash": "f4633cc8068e4679f7321ca9353fd633271d877e8e003b73c237a7dcfb5f7e71"
520
+ "contentHash": "105861fcd680e4cd96311f9cc6a3967278e08f1e0512f43be1f439a13a3503a9"
521
521
  },
522
522
  {
523
523
  "id": "events",
@@ -551,15 +551,15 @@
551
551
  "name": "iDos Games",
552
552
  "url": "https://idosgames.com"
553
553
  },
554
- "version": "0.1.0",
554
+ "version": "0.1.1",
555
555
  "dependencies": {
556
556
  "@idosgames/core": "0.19.1",
557
- "@idosgames/module-sdk": "0.7.0",
558
- "@idosgames/react": "0.3.0",
557
+ "@idosgames/module-sdk": "0.8.0",
558
+ "@idosgames/react": "0.4.0",
559
559
  "react": "19.2.7"
560
560
  },
561
561
  "fileCount": 6,
562
- "contentHash": "a45709a4e04f56860341a73b92f49d71d6c44a10d2be944d001680d3e8c43af9"
562
+ "contentHash": "b0f644b550581b65f3d48122c732575e8e4e01bb0e1cfe4fcd22830704dae5e2"
563
563
  },
564
564
  {
565
565
  "id": "coop-events",
@@ -588,15 +588,15 @@
588
588
  "name": "iDos Games",
589
589
  "url": "https://idosgames.com"
590
590
  },
591
- "version": "0.1.0",
591
+ "version": "0.1.1",
592
592
  "dependencies": {
593
593
  "@idosgames/core": "0.19.1",
594
- "@idosgames/module-sdk": "0.7.0",
595
- "@idosgames/react": "0.3.0",
594
+ "@idosgames/module-sdk": "0.8.0",
595
+ "@idosgames/react": "0.4.0",
596
596
  "react": "19.2.7"
597
597
  },
598
598
  "fileCount": 6,
599
- "contentHash": "a8a8cda19becde2ed4fc12f338866442c3175a8e8ad0650110ca7057896541ab"
599
+ "contentHash": "1637a37f2dc83c83692cd674b2b4c4b5ea959d64ab783bffdb09254e50975836"
600
600
  },
601
601
  {
602
602
  "id": "season",
@@ -629,15 +629,15 @@
629
629
  "name": "iDos Games",
630
630
  "url": "https://idosgames.com"
631
631
  },
632
- "version": "0.1.0",
632
+ "version": "0.1.1",
633
633
  "dependencies": {
634
634
  "@idosgames/core": "0.19.1",
635
- "@idosgames/module-sdk": "0.7.0",
636
- "@idosgames/react": "0.3.0",
635
+ "@idosgames/module-sdk": "0.8.0",
636
+ "@idosgames/react": "0.4.0",
637
637
  "react": "19.2.7"
638
638
  },
639
639
  "fileCount": 6,
640
- "contentHash": "71faf793fef491d7e27dd6e3a5e7072d5e32159f60bff658bae3d68f2bdfd74c"
640
+ "contentHash": "5d35a1259abfe381fbde61906d79ea6dd44cff932f40e9b91a05f884e0fba349"
641
641
  },
642
642
  {
643
643
  "id": "friends",
@@ -669,15 +669,15 @@
669
669
  "name": "iDos Games",
670
670
  "url": "https://idosgames.com"
671
671
  },
672
- "version": "0.1.0",
672
+ "version": "0.1.1",
673
673
  "dependencies": {
674
674
  "@idosgames/core": "0.19.1",
675
- "@idosgames/module-sdk": "0.7.0",
676
- "@idosgames/react": "0.3.0",
675
+ "@idosgames/module-sdk": "0.8.0",
676
+ "@idosgames/react": "0.4.0",
677
677
  "react": "19.2.7"
678
678
  },
679
679
  "fileCount": 6,
680
- "contentHash": "24e30cf8e6717be3fa368830a3b5fdee5a5b8f823a890051274ef1900e570bc9"
680
+ "contentHash": "f5c0187a70b1b22166f4ff70aa228339d4ef0a35acd2837bc3a1129e52576910"
681
681
  },
682
682
  {
683
683
  "id": "chat",
@@ -709,15 +709,15 @@
709
709
  "name": "iDos Games",
710
710
  "url": "https://idosgames.com"
711
711
  },
712
- "version": "0.1.0",
712
+ "version": "0.1.1",
713
713
  "dependencies": {
714
714
  "@idosgames/core": "0.19.1",
715
- "@idosgames/module-sdk": "0.7.0",
716
- "@idosgames/react": "0.3.0",
715
+ "@idosgames/module-sdk": "0.8.0",
716
+ "@idosgames/react": "0.4.0",
717
717
  "react": "19.2.7"
718
718
  },
719
719
  "fileCount": 6,
720
- "contentHash": "10eb1b49d043a7002a4c51b8d9aefac3112679599b97881a8102992cb7e103a1"
720
+ "contentHash": "1bd9bec3b0ee8548e800e51bf045b0215da4320231fbf8565350554558f846e4"
721
721
  },
722
722
  {
723
723
  "id": "invite",
@@ -749,15 +749,15 @@
749
749
  "name": "iDos Games",
750
750
  "url": "https://idosgames.com"
751
751
  },
752
- "version": "0.1.0",
752
+ "version": "0.1.1",
753
753
  "dependencies": {
754
754
  "@idosgames/core": "0.19.1",
755
- "@idosgames/module-sdk": "0.7.0",
756
- "@idosgames/react": "0.3.0",
755
+ "@idosgames/module-sdk": "0.8.0",
756
+ "@idosgames/react": "0.4.0",
757
757
  "react": "19.2.7"
758
758
  },
759
759
  "fileCount": 6,
760
- "contentHash": "9e550203e022c98c4f8292d4f484bed6dae6abd259fff5cd8d0c4ec972371e6e"
760
+ "contentHash": "f3ed6702817b2217cee7bf25accd5dbb138d6657bb7f15edcc4cc8c03a26b01f"
761
761
  },
762
762
  {
763
763
  "id": "mailbox",
@@ -793,8 +793,8 @@
793
793
  "version": "0.1.0",
794
794
  "dependencies": {
795
795
  "@idosgames/core": "0.19.1",
796
- "@idosgames/module-sdk": "0.7.0",
797
- "@idosgames/react": "0.3.0",
796
+ "@idosgames/module-sdk": "0.8.0",
797
+ "@idosgames/react": "0.4.0",
798
798
  "react": "19.2.7"
799
799
  },
800
800
  "fileCount": 6,
@@ -831,8 +831,8 @@
831
831
  "version": "0.1.0",
832
832
  "dependencies": {
833
833
  "@idosgames/core": "0.19.1",
834
- "@idosgames/module-sdk": "0.7.0",
835
- "@idosgames/react": "0.3.0",
834
+ "@idosgames/module-sdk": "0.8.0",
835
+ "@idosgames/react": "0.4.0",
836
836
  "react": "19.2.7"
837
837
  },
838
838
  "fileCount": 6,
@@ -868,15 +868,15 @@
868
868
  "name": "iDos Games",
869
869
  "url": "https://idosgames.com"
870
870
  },
871
- "version": "0.1.0",
871
+ "version": "0.1.1",
872
872
  "dependencies": {
873
873
  "@idosgames/core": "0.19.1",
874
- "@idosgames/module-sdk": "0.7.0",
875
- "@idosgames/react": "0.3.0",
874
+ "@idosgames/module-sdk": "0.8.0",
875
+ "@idosgames/react": "0.4.0",
876
876
  "react": "19.2.7"
877
877
  },
878
878
  "fileCount": 7,
879
- "contentHash": "b318338a4342f30fd665899803aa10ce32764cc1afb3b709b297e5bf329cdeb7"
879
+ "contentHash": "14799b9981c650f938ddccbe51d243f5f6aeaf53105d7bd2536dffe6eabf818b"
880
880
  },
881
881
  {
882
882
  "id": "profile",
@@ -908,15 +908,15 @@
908
908
  "name": "iDos Games",
909
909
  "url": "https://idosgames.com"
910
910
  },
911
- "version": "0.1.0",
911
+ "version": "0.1.1",
912
912
  "dependencies": {
913
913
  "@idosgames/core": "0.19.1",
914
- "@idosgames/module-sdk": "0.7.0",
915
- "@idosgames/react": "0.3.0",
914
+ "@idosgames/module-sdk": "0.8.0",
915
+ "@idosgames/react": "0.4.0",
916
916
  "react": "19.2.7"
917
917
  },
918
918
  "fileCount": 6,
919
- "contentHash": "6749dba8bcb4b647632c9b8e05959b591040b1bac707f4c52788d32a0fdbd924"
919
+ "contentHash": "3b0189d3b8e57b0b678b240ab66af6ff1ea2dc41f2f5584f4424721b9aadced3"
920
920
  },
921
921
  {
922
922
  "id": "tutorials",
@@ -945,15 +945,15 @@
945
945
  "name": "iDos Games",
946
946
  "url": "https://idosgames.com"
947
947
  },
948
- "version": "0.1.0",
948
+ "version": "0.1.1",
949
949
  "dependencies": {
950
950
  "@idosgames/core": "0.19.1",
951
- "@idosgames/module-sdk": "0.7.0",
952
- "@idosgames/react": "0.3.0",
951
+ "@idosgames/module-sdk": "0.8.0",
952
+ "@idosgames/react": "0.4.0",
953
953
  "react": "19.2.7"
954
954
  },
955
955
  "fileCount": 6,
956
- "contentHash": "e5cb4e931ff39a7eb3f4cbc32bddc836d79eb631bcd14a6fe6e567df88079718"
956
+ "contentHash": "cc04f0006881944dfa7119ed02d591b48c7d650dbfdc71f981ecedac5d5998f5"
957
957
  },
958
958
  {
959
959
  "id": "workshop",
@@ -989,15 +989,15 @@
989
989
  "name": "iDos Games",
990
990
  "url": "https://idosgames.com"
991
991
  },
992
- "version": "0.1.0",
992
+ "version": "0.1.2",
993
993
  "dependencies": {
994
994
  "@idosgames/core": "0.19.1",
995
- "@idosgames/module-sdk": "0.7.0",
996
- "@idosgames/react": "0.3.0",
995
+ "@idosgames/module-sdk": "0.8.0",
996
+ "@idosgames/react": "0.4.0",
997
997
  "react": "19.2.7"
998
998
  },
999
999
  "fileCount": 5,
1000
- "contentHash": "f6c4cf4ececb9f9c0167b5c2598bdc4d471f364781ffc62cff7481e8a25751e4"
1000
+ "contentHash": "25a1e02d58fb773f2c26574d6985ffca501001350497cac8f8a067774914e490"
1001
1001
  },
1002
1002
  {
1003
1003
  "id": "ai",
@@ -1024,15 +1024,15 @@
1024
1024
  "name": "iDos Games",
1025
1025
  "url": "https://idosgames.com"
1026
1026
  },
1027
- "version": "0.1.0",
1027
+ "version": "0.1.1",
1028
1028
  "dependencies": {
1029
1029
  "@idosgames/core": "0.19.1",
1030
- "@idosgames/module-sdk": "0.7.0",
1031
- "@idosgames/react": "0.3.0",
1030
+ "@idosgames/module-sdk": "0.8.0",
1031
+ "@idosgames/react": "0.4.0",
1032
1032
  "react": "19.2.7"
1033
1033
  },
1034
1034
  "fileCount": 6,
1035
- "contentHash": "1ac6c1fb5fc8cbe94891f258339e8f27abe7bded84dccc8f4f6bbb6465e2dc35"
1035
+ "contentHash": "09df6751a0e4009a1b8675178a88f9ae49bc33edf36e352f22dbf01dd4482d1e"
1036
1036
  },
1037
1037
  {
1038
1038
  "id": "board-game",
@@ -1077,8 +1077,8 @@
1077
1077
  },
1078
1078
  "dependencies": {
1079
1079
  "@idosgames/core": "0.19.1",
1080
- "@idosgames/module-sdk": "0.7.0",
1081
- "@idosgames/react": "0.3.0",
1080
+ "@idosgames/module-sdk": "0.8.0",
1081
+ "@idosgames/react": "0.4.0",
1082
1082
  "@idosgames/wallet": "0.6.0",
1083
1083
  "@tanstack/react-query": "5.101.2",
1084
1084
  "react": "19.2.7",
@@ -1136,8 +1136,8 @@
1136
1136
  },
1137
1137
  "dependencies": {
1138
1138
  "@idosgames/core": "0.19.1",
1139
- "@idosgames/module-sdk": "0.7.0",
1140
- "@idosgames/react": "0.3.0",
1139
+ "@idosgames/module-sdk": "0.8.0",
1140
+ "@idosgames/react": "0.4.0",
1141
1141
  "@idosgames/wallet": "0.6.0",
1142
1142
  "@tanstack/react-query": "5.101.2",
1143
1143
  "phaser": "4.2.1",
@@ -1212,14 +1212,14 @@
1212
1212
  "name": "iDos Games",
1213
1213
  "url": "https://idosgames.com"
1214
1214
  },
1215
- "version": "0.4.0",
1215
+ "version": "0.4.1",
1216
1216
  "dependencies": {
1217
1217
  "@idosgames/core": "0.19.1",
1218
- "@idosgames/module-sdk": "0.7.0",
1218
+ "@idosgames/module-sdk": "0.8.0",
1219
1219
  "three": "0.185.1"
1220
1220
  },
1221
1221
  "fileCount": 426,
1222
- "contentHash": "94cb46dbc2c7142b5170ea524d450e401d19ac2531fe0fc2501326e8c1a34864"
1222
+ "contentHash": "a4ed25dd430145920db6e2bc98a5b5ec8a0eec78e5f98d7a8ea9be56ed06302f"
1223
1223
  },
1224
1224
  {
1225
1225
  "id": "mini-game",
@@ -1246,15 +1246,15 @@
1246
1246
  "name": "iDos Games",
1247
1247
  "url": "https://idosgames.com"
1248
1248
  },
1249
- "version": "0.1.0",
1249
+ "version": "0.1.1",
1250
1250
  "dependencies": {
1251
1251
  "@idosgames/core": "0.19.1",
1252
- "@idosgames/module-sdk": "0.7.0",
1253
- "@idosgames/react": "0.3.0",
1252
+ "@idosgames/module-sdk": "0.8.0",
1253
+ "@idosgames/react": "0.4.0",
1254
1254
  "react": "19.2.7"
1255
1255
  },
1256
1256
  "fileCount": 7,
1257
- "contentHash": "26089593df1b939aee3317743caeda47f82971bfd85dbd73eb9e95a9bc5e3d5c"
1257
+ "contentHash": "eb39139d93bfb84e5a20d2485b081a264234452b5d90978fdf15b940cf3b7ac0"
1258
1258
  }
1259
1259
  ],
1260
1260
  "skills": [
@@ -27,19 +27,19 @@
27
27
  "name": "iDos Games",
28
28
  "url": "https://idosgames.com"
29
29
  },
30
- "version": "0.1.0"
30
+ "version": "0.1.1"
31
31
  },
32
32
  "dependencies": {
33
33
  "@idosgames/core": "0.19.1",
34
- "@idosgames/module-sdk": "0.7.0",
35
- "@idosgames/react": "0.3.0",
34
+ "@idosgames/module-sdk": "0.8.0",
35
+ "@idosgames/react": "0.4.0",
36
36
  "react": "19.2.7"
37
37
  },
38
- "contentHash": "1ac6c1fb5fc8cbe94891f258339e8f27abe7bded84dccc8f4f6bbb6465e2dc35",
38
+ "contentHash": "09df6751a0e4009a1b8675178a88f9ae49bc33edf36e352f22dbf01dd4482d1e",
39
39
  "files": [
40
40
  {
41
41
  "path": "AiScreen.tsx",
42
- "content": "import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport type { AIGenerationView, IDosGamesClient } from \"@idosgames/core\";\nimport type { FeatureScreenProps } from \"@idosgames/module-sdk\";\nimport { useIDosGamesClient, useUserState } from \"@idosgames/react\";\nimport {\n Button,\n Card,\n Center,\n EmptyState,\n Icon,\n ResourceList,\n Spinner,\n Tabs,\n canAfford,\n configSection,\n errorText,\n outlined,\n panel,\n useCatalog,\n useStagger,\n useToast,\n v,\n} from \"@idosgames/react/ui\";\nimport {\n featureRows,\n resultKind,\n type AISection,\n type FeatureRow,\n type Modality,\n} from \"./model\";\nimport { t } from \"./i18n\";\n\n// AI studio (engine AI): the AI features the publisher opened to players — text, pictures, speech,\n// music, video, 3D. The player writes what they want, pays the feature's price (or nothing), and the\n// result comes back from a job the server runs (polled with waitForGeneration). A feature tagged\n// \"hidden\" is for the game's own code (NPC lines and the like) and does not show here.\n\ntype Tab = \"create\" | \"history\";\n\nexport function AiScreen(_: FeatureScreenProps): ReactNode {\n const client = useIDosGamesClient();\n const catalog = useCatalog();\n const [tab, setTab] = useState<Tab>(\"create\");\n const [picked, setPicked] = useState<string | null>(null);\n const features = featureRows(configSection<AISection>(client, \"AI\"));\n if (features.length === 0)\n return <EmptyState glyph=\"bulb\" text={t(\"noFeatures\")} />;\n const current = features.find((f) => f.key === picked) ?? features[0]!;\n return (\n <div style={{ display: \"grid\", gap: 12 }}>\n <Tabs\n tabs={[\n { id: \"create\", label: t(\"create\") },\n { id: \"history\", label: t(\"history\") },\n ]}\n value={tab}\n onChange={setTab}\n />\n {tab === \"create\" ? (\n <>\n {features.length > 1 ? (\n <div style={{ display: \"flex\", gap: 6, flexWrap: \"wrap\" }}>\n {features.map((f) => (\n <Button\n key={f.key}\n size=\"sm\"\n tone={f.key === current.key ? \"gold\" : \"grey\"}\n onClick={() => setPicked(f.key)}\n >\n {catalog.localize(f.key)} · {t(`m_${f.modality}`)}\n </Button>\n ))}\n </div>\n ) : null}\n <Create key={current.key} feature={current} />\n </>\n ) : (\n <History />\n )}\n </div>\n );\n}\n\n/** Starts a job for a feature by its modality and waits for the result. */\nfunction run(\n client: IDosGamesClient,\n feature: FeatureRow,\n prompt: string,\n optionID: string | undefined,\n): Promise<\n { ok: true; data: AIGenerationView } | { ok: false; error: string }\n> {\n const options = {\n selectedOptionID: optionID,\n relatedEntityID: crypto.randomUUID(),\n };\n const byModality: Record<\n Modality,\n () => ReturnType<IDosGamesClient[\"ai\"][\"generateText\"]>\n > = {\n Text: () =>\n client.ai.generateText(feature.key, { Prompt: prompt }, options),\n Image: () =>\n client.ai.generateImage(feature.key, { Prompt: prompt }, options),\n Audio: () =>\n client.ai.generateAudio(feature.key, { Text: prompt }, options),\n Music: () =>\n client.ai.generateMusic(feature.key, { Prompt: prompt }, options),\n Video: () =>\n client.ai.generateVideo(feature.key, { Prompt: prompt }, options),\n ThreeD: () =>\n client.ai.generateThreeD(feature.key, { Prompt: prompt }, options),\n };\n return byModality[feature.modality]().then((started) =>\n started.ok\n ? client.ai.waitForGeneration(started.data, { timeoutMs: 10 * 60_000 })\n : started,\n );\n}\n\nfunction Create({ feature }: { feature: FeatureRow }): ReactNode {\n const client = useIDosGamesClient();\n const state = useUserState();\n const toast = useToast();\n const [prompt, setPrompt] = useState(\"\");\n const [busy, setBusy] = useState(false);\n const [result, setResult] = useState<AIGenerationView | null>(null);\n const alive = useRef(true);\n useEffect(\n () => () => {\n alive.current = false;\n },\n [],\n );\n const balances = state?.InventoryV2?.VirtualCurrencies as\n Record<string, { Amount?: number }> | undefined;\n const option =\n feature.options.find((o) => canAfford(o.price, balances)) ??\n feature.options[0];\n const affordable = !option || canAfford(option.price, balances);\n\n const go = async () => {\n setBusy(true);\n setResult(null);\n const res = await run(client, feature, prompt.trim(), option?.id);\n if (!alive.current) return;\n setBusy(false);\n if (!res.ok) return toast(errorText(res.error), \"error\");\n if (res.data.Status !== \"completed\")\n return toast(res.data.Error?.Message || t(\"failed\"), \"error\");\n setResult(res.data);\n };\n\n return (\n <div style={{ display: \"grid\", gap: 10 }}>\n <textarea\n value={prompt}\n maxLength={feature.maxChars > 0 ? feature.maxChars : undefined}\n placeholder={\n feature.modality === \"Audio\" ? t(\"sayWhat\") : t(\"describe\")\n }\n onChange={(e) => setPrompt(e.target.value)}\n rows={4}\n style={{\n ...panel,\n padding: 12,\n color: \"#fff\",\n fontSize: 15,\n resize: \"vertical\",\n width: \"100%\",\n boxSizing: \"border-box\",\n }}\n />\n <Button\n tone=\"gold\"\n size=\"lg\"\n attract={!!prompt.trim() && affordable}\n disabled={!prompt.trim() || !affordable}\n busy={busy}\n onClick={() => void go()}\n data-tutorial-anchor={`ai:${feature.key}`}\n >\n {busy ? t(\"working\") : t(\"generate\")}{\" \"}\n {option ? <ResourceList lines={option.price} size={18} /> : null}\n </Button>\n {busy ? (\n <Center>\n <Spinner />\n </Center>\n ) : null}\n {result ? <Result generation={result} /> : null}\n </div>\n );\n}\n\nfunction Result({ generation }: { generation: AIGenerationView }): ReactNode {\n return (\n <div style={{ ...panel, padding: 12, display: \"grid\", gap: 10 }}>\n {generation.OutputText ? (\n <div style={{ color: \"#fff\", fontSize: 15, whiteSpace: \"pre-wrap\" }}>\n {generation.OutputText}\n </div>\n ) : null}\n {(generation.Assets ?? []).map((a, i) => {\n const kind = resultKind(a.ContentType);\n const url = a.Url ?? \"\";\n return kind === \"image\" ? (\n <img\n key={i}\n src={url}\n alt=\"\"\n style={{ width: \"100%\", borderRadius: 12 }}\n />\n ) : kind === \"audio\" ? (\n <audio key={i} src={url} controls style={{ width: \"100%\" }} />\n ) : kind === \"video\" ? (\n <video\n key={i}\n src={url}\n controls\n style={{ width: \"100%\", borderRadius: 12 }}\n />\n ) : (\n <a\n key={i}\n href={url}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{ ...outlined, color: v.gold, fontSize: 14 }}\n >\n {t(\"download\")}\n </a>\n );\n })}\n </div>\n );\n}\n\nfunction History(): ReactNode {\n const client = useIDosGamesClient();\n const catalog = useCatalog();\n const stagger = useStagger();\n const [items, setItems] = useState<AIGenerationView[] | null>(null);\n const [open, setOpen] = useState<string | null>(null);\n useEffect(() => {\n void client.ai\n .listGenerations({ Limit: 20 })\n .then((r) => setItems(r.ok ? (r.data.Data ?? []) : []));\n }, [client]);\n if (!items)\n return (\n <Center>\n <Spinner />\n </Center>\n );\n if (items.length === 0)\n return <EmptyState glyph=\"bulb\" text={t(\"noHistory\")} />;\n return (\n <div style={{ display: \"grid\", gap: 8 }}>\n {items.map((g, i) => (\n <Card\n key={g.GenerationID}\n onClick={() =>\n setOpen(open === g.GenerationID ? null : g.GenerationID)\n }\n style={{ display: \"grid\", gap: 8, ...stagger(i) }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <Icon glyph=\"bulb\" size={26} />\n <span style={{ ...outlined, fontSize: 14, flex: 1 }}>\n {catalog.localize(g.FeatureKey ?? \"\")}\n </span>\n <span\n style={{\n ...outlined,\n fontSize: 12,\n color:\n g.Status === \"completed\"\n ? v.green\n : g.Status === \"failed\"\n ? v.textDim\n : v.gold,\n }}\n >\n {t(\n `s_${g.Status === \"completed\" || g.Status === \"failed\" ? g.Status : \"running\"}`,\n )}\n </span>\n </div>\n {open === g.GenerationID && g.Status === \"completed\" ? (\n <Result generation={g} />\n ) : null}\n </Card>\n ))}\n </div>\n );\n}\n"
42
+ "content": "import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport type { AIGenerationView, IDosGamesClient } from \"@idosgames/core\";\nimport type { FeatureScreenProps } from \"@idosgames/module-sdk\";\nimport { useIDosGamesClient, useUserState } from \"@idosgames/react\";\nimport {\n Button,\n Card,\n Center,\n EmptyState,\n Icon,\n ResourceList,\n Spinner,\n Tabs,\n canAfford,\n configSection,\n errorText,\n outlined,\n panel,\n useCatalog,\n useStagger,\n useToast,\n v,\n} from \"@idosgames/react/ui\";\nimport {\n featureRows,\n resultKind,\n type AISection,\n type FeatureRow,\n type Modality,\n} from \"./model\";\nimport { t } from \"./i18n\";\n\n// AI studio (engine AI): the AI features the publisher opened to players — text, pictures, speech,\n// music, video, 3D. The player writes what they want, pays the feature's price (or nothing), and the\n// result comes back from a job the server runs (polled with waitForGeneration). A feature tagged\n// \"hidden\" is for the game's own code (NPC lines and the like) and does not show here.\n\ntype Tab = \"create\" | \"history\";\n\nexport function AiScreen(_: FeatureScreenProps): ReactNode {\n const client = useIDosGamesClient();\n const catalog = useCatalog();\n const [tab, setTab] = useState<Tab>(\"create\");\n const [picked, setPicked] = useState<string | null>(null);\n const features = featureRows(configSection<AISection>(client, \"AI\"));\n if (features.length === 0)\n return <EmptyState glyph=\"bulb\" text={t(\"noFeatures\")} />;\n const current = features.find((f) => f.key === picked) ?? features[0]!;\n return (\n <div style={{ display: \"grid\", gap: 12 }}>\n <Tabs\n tabs={[\n { id: \"create\", label: t(\"create\") },\n { id: \"history\", label: t(\"history\") },\n ]}\n value={tab}\n onChange={setTab}\n />\n {tab === \"create\" ? (\n <>\n {features.length > 1 ? (\n <div style={{ display: \"flex\", gap: 6, flexWrap: \"wrap\" }}>\n {features.map((f) => (\n <Button\n key={f.key}\n size=\"sm\"\n tone={f.key === current.key ? \"gold\" : \"grey\"}\n onClick={() => setPicked(f.key)}\n >\n {catalog.localize(f.key)} · {t(`m_${f.modality}`)}\n </Button>\n ))}\n </div>\n ) : null}\n <Create key={current.key} feature={current} />\n </>\n ) : (\n <History />\n )}\n </div>\n );\n}\n\n/** Starts a job for a feature by its modality and waits for the result. */\nfunction run(\n client: IDosGamesClient,\n feature: FeatureRow,\n prompt: string,\n optionID: string | undefined,\n): Promise<\n { ok: true; data: AIGenerationView } | { ok: false; error: string }\n> {\n const options = {\n selectedOptionID: optionID,\n relatedEntityID: crypto.randomUUID(),\n };\n const byModality: Record<\n Modality,\n () => ReturnType<IDosGamesClient[\"ai\"][\"generateText\"]>\n > = {\n Text: () =>\n client.ai.generateText(feature.key, { Prompt: prompt }, options),\n Image: () =>\n client.ai.generateImage(feature.key, { Prompt: prompt }, options),\n Audio: () =>\n client.ai.generateAudio(feature.key, { Text: prompt }, options),\n Music: () =>\n client.ai.generateMusic(feature.key, { Prompt: prompt }, options),\n Video: () =>\n client.ai.generateVideo(feature.key, { Prompt: prompt }, options),\n ThreeD: () =>\n client.ai.generateThreeD(feature.key, { Prompt: prompt }, options),\n };\n return byModality[feature.modality]().then((started) =>\n started.ok\n ? client.ai.waitForGeneration(started.data, { timeoutMs: 10 * 60_000 })\n : started,\n );\n}\n\nfunction Create({ feature }: { feature: FeatureRow }): ReactNode {\n const client = useIDosGamesClient();\n const state = useUserState();\n const toast = useToast();\n const [prompt, setPrompt] = useState(\"\");\n const [busy, setBusy] = useState(false);\n const [result, setResult] = useState<AIGenerationView | null>(null);\n const alive = useRef(true);\n useEffect(\n () => () => {\n alive.current = false;\n },\n [],\n );\n const balances = state?.InventoryV2?.VirtualCurrencies as\n Record<string, { Amount?: number }> | undefined;\n const option =\n feature.options.find((o) => canAfford(o.price, balances)) ??\n feature.options[0];\n const affordable = !option || canAfford(option.price, balances);\n\n const go = async () => {\n setBusy(true);\n setResult(null);\n const res = await run(client, feature, prompt.trim(), option?.id);\n if (!alive.current) return;\n setBusy(false);\n if (!res.ok) return toast(errorText(res.error), \"error\");\n if (res.data.Status !== \"completed\")\n return toast(res.data.Error?.Message || t(\"failed\"), \"error\");\n setResult(res.data);\n };\n\n return (\n <div style={{ display: \"grid\", gap: 10 }}>\n <textarea\n value={prompt}\n maxLength={feature.maxChars > 0 ? feature.maxChars : undefined}\n placeholder={\n feature.modality === \"Audio\" ? t(\"sayWhat\") : t(\"describe\")\n }\n onChange={(e) => setPrompt(e.target.value)}\n rows={4}\n style={{\n ...panel,\n padding: 12,\n color: v.text,\n fontSize: 15,\n resize: \"vertical\",\n width: \"100%\",\n boxSizing: \"border-box\",\n }}\n />\n <Button\n tone=\"gold\"\n size=\"lg\"\n attract={!!prompt.trim() && affordable}\n disabled={!prompt.trim() || !affordable}\n busy={busy}\n onClick={() => void go()}\n data-tutorial-anchor={`ai:${feature.key}`}\n >\n {busy ? t(\"working\") : t(\"generate\")}{\" \"}\n {option ? <ResourceList lines={option.price} size={18} /> : null}\n </Button>\n {busy ? (\n <Center>\n <Spinner />\n </Center>\n ) : null}\n {result ? <Result generation={result} /> : null}\n </div>\n );\n}\n\nfunction Result({ generation }: { generation: AIGenerationView }): ReactNode {\n return (\n <div style={{ ...panel, padding: 12, display: \"grid\", gap: 10 }}>\n {generation.OutputText ? (\n <div style={{ color: v.text, fontSize: 15, whiteSpace: \"pre-wrap\" }}>\n {generation.OutputText}\n </div>\n ) : null}\n {(generation.Assets ?? []).map((a, i) => {\n const kind = resultKind(a.ContentType);\n const url = a.Url ?? \"\";\n return kind === \"image\" ? (\n <img\n key={i}\n src={url}\n alt=\"\"\n style={{ width: \"100%\", borderRadius: 12 }}\n />\n ) : kind === \"audio\" ? (\n <audio key={i} src={url} controls style={{ width: \"100%\" }} />\n ) : kind === \"video\" ? (\n <video\n key={i}\n src={url}\n controls\n style={{ width: \"100%\", borderRadius: 12 }}\n />\n ) : (\n <a\n key={i}\n href={url}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{ ...outlined, color: v.gold, fontSize: 14 }}\n >\n {t(\"download\")}\n </a>\n );\n })}\n </div>\n );\n}\n\nfunction History(): ReactNode {\n const client = useIDosGamesClient();\n const catalog = useCatalog();\n const stagger = useStagger();\n const [items, setItems] = useState<AIGenerationView[] | null>(null);\n const [open, setOpen] = useState<string | null>(null);\n useEffect(() => {\n void client.ai\n .listGenerations({ Limit: 20 })\n .then((r) => setItems(r.ok ? (r.data.Data ?? []) : []));\n }, [client]);\n if (!items)\n return (\n <Center>\n <Spinner />\n </Center>\n );\n if (items.length === 0)\n return <EmptyState glyph=\"bulb\" text={t(\"noHistory\")} />;\n return (\n <div style={{ display: \"grid\", gap: 8 }}>\n {items.map((g, i) => (\n <Card\n key={g.GenerationID}\n onClick={() =>\n setOpen(open === g.GenerationID ? null : g.GenerationID)\n }\n style={{ display: \"grid\", gap: 8, ...stagger(i) }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <Icon glyph=\"bulb\" size={26} />\n <span style={{ ...outlined, fontSize: 14, flex: 1 }}>\n {catalog.localize(g.FeatureKey ?? \"\")}\n </span>\n <span\n style={{\n ...outlined,\n fontSize: 12,\n color:\n g.Status === \"completed\"\n ? v.green\n : g.Status === \"failed\"\n ? v.textDim\n : v.gold,\n }}\n >\n {t(\n `s_${g.Status === \"completed\" || g.Status === \"failed\" ? g.Status : \"running\"}`,\n )}\n </span>\n </div>\n {open === g.GenerationID && g.Status === \"completed\" ? (\n <Result generation={g} />\n ) : null}\n </Card>\n ))}\n </div>\n );\n}\n"
43
43
  },
44
44
  {
45
45
  "path": "i18n.ts",
@@ -59,7 +59,7 @@
59
59
  },
60
60
  {
61
61
  "path": "module.meta.json",
62
- "content": "{\n \"id\": \"ai\",\n \"type\": \"feature\",\n \"summary\": \"AI studio for any game: the title's AI features for players — text, pictures, voice, music, video and 3D — with the price and the history.\",\n \"description\": \"A ready AI studio (engine AI, InApp AI) for ANY game, built on the @idosgames/react/ui kit and client.ai. Every AI feature the publisher opened to players (section AI, sanitized by the server: no prompts, no models), grouped by kind — text, picture, voice, music, video, 3D. The player describes what they want, pays the feature's price in in-game resources (or nothing), and the result comes back from a job the server runs (waitForGeneration): text, pictures, a player for sound and video, a download link for 3D. 'My creations' lists the player's generations. A feature tagged 'hidden' is for the game's own code (NPC lines and the like) and is not shown. Registers the 'ai' feature. The money side (publisher credits) is the engine's; see the in-app AI rules.\",\n \"provides\": [\n \"AI studio screen\",\n \"text, image, voice, music, video and 3D generation for players\",\n \"feature price in in-game resources\",\n \"history of the player's generations\"\n ],\n \"tags\": [\"ai\", \"generation\", \"ugc\", \"creative\", \"ui\", \"screen\"],\n \"author\": {\n \"name\": \"iDos Games\",\n \"url\": \"https://idosgames.com\"\n },\n \"version\": \"0.1.0\"\n}\n"
62
+ "content": "{\n \"id\": \"ai\",\n \"type\": \"feature\",\n \"summary\": \"AI studio for any game: the title's AI features for players — text, pictures, voice, music, video and 3D — with the price and the history.\",\n \"description\": \"A ready AI studio (engine AI, InApp AI) for ANY game, built on the @idosgames/react/ui kit and client.ai. Every AI feature the publisher opened to players (section AI, sanitized by the server: no prompts, no models), grouped by kind — text, picture, voice, music, video, 3D. The player describes what they want, pays the feature's price in in-game resources (or nothing), and the result comes back from a job the server runs (waitForGeneration): text, pictures, a player for sound and video, a download link for 3D. 'My creations' lists the player's generations. A feature tagged 'hidden' is for the game's own code (NPC lines and the like) and is not shown. Registers the 'ai' feature. The money side (publisher credits) is the engine's; see the in-app AI rules.\",\n \"provides\": [\n \"AI studio screen\",\n \"text, image, voice, music, video and 3D generation for players\",\n \"feature price in in-game resources\",\n \"history of the player's generations\"\n ],\n \"tags\": [\"ai\", \"generation\", \"ugc\", \"creative\", \"ui\", \"screen\"],\n \"author\": {\n \"name\": \"iDos Games\",\n \"url\": \"https://idosgames.com\"\n },\n \"version\": \"0.1.1\"\n}\n"
63
63
  }
64
64
  ]
65
65
  }
@@ -46,8 +46,8 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@idosgames/core": "0.19.1",
49
- "@idosgames/module-sdk": "0.7.0",
50
- "@idosgames/react": "0.3.0",
49
+ "@idosgames/module-sdk": "0.8.0",
50
+ "@idosgames/react": "0.4.0",
51
51
  "@idosgames/wallet": "0.6.0",
52
52
  "@tanstack/react-query": "5.101.2",
53
53
  "react": "19.2.7",
@@ -32,8 +32,8 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@idosgames/core": "0.19.1",
35
- "@idosgames/module-sdk": "0.7.0",
36
- "@idosgames/react": "0.3.0",
35
+ "@idosgames/module-sdk": "0.8.0",
36
+ "@idosgames/react": "0.4.0",
37
37
  "react": "19.2.7"
38
38
  },
39
39
  "contentHash": "1c1a852a29a89982e2ed997b1a2356bc4722d00eb4db834ab7472f66f9a8eee3",