@datamoc/mw_games 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +69 -0
- package/REFERENCE.md +2115 -0
- package/api-surface.json +48 -0
- package/data/microgm-opt.PROVENANCE.md +3 -0
- package/data/soundfont-catalog.json +183 -0
- package/dist/ai/index.d.ts +10 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/lua.d.ts +6 -0
- package/dist/ai/lua.d.ts.map +1 -1
- package/dist/ai/lua.js.map +1 -1
- package/dist/audio/SampleDecoder.d.ts +41 -0
- package/dist/audio/SampleDecoder.d.ts.map +1 -0
- package/dist/audio/SampleDecoder.js +70 -0
- package/dist/audio/SampleDecoder.js.map +1 -0
- package/dist/audio/SoundFont.d.ts +59 -0
- package/dist/audio/SoundFont.d.ts.map +1 -1
- package/dist/audio/SoundFont.js +248 -2
- package/dist/audio/SoundFont.js.map +1 -1
- package/dist/audio/index.d.ts +3 -1
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +2 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/mw_games.global.js +11 -11
- package/dist/mwl/presentation.d.ts +16 -0
- package/dist/mwl/presentation.d.ts.map +1 -1
- package/dist/mwl/presentation.js.map +1 -1
- package/dist/mwl/pyroeis-runtime.d.ts +7 -0
- package/dist/mwl/pyroeis-runtime.d.ts.map +1 -1
- package/dist/mwl/pyroeis-runtime.js.map +1 -1
- package/dist/mwl/pyroeis.d.ts +3 -0
- package/dist/mwl/pyroeis.d.ts.map +1 -1
- package/dist/mwl/pyroeis.js.map +1 -1
- package/dist/physics/PhysicsWorld.d.ts +3 -0
- package/dist/physics/PhysicsWorld.d.ts.map +1 -1
- package/dist/physics/PhysicsWorld.js.map +1 -1
- package/dist/physics/XpbdWorld.d.ts +11 -0
- package/dist/physics/XpbdWorld.d.ts.map +1 -1
- package/dist/physics/XpbdWorld.js.map +1 -1
- package/dist/physics/cloth/index.d.ts +20 -19
- package/dist/physics/cloth/index.d.ts.map +1 -1
- package/dist/physics/cloth/index.js +19 -0
- package/dist/physics/cloth/index.js.map +1 -1
- package/dist/physics/spring/index.d.ts +19 -18
- package/dist/physics/spring/index.d.ts.map +1 -1
- package/dist/physics/spring/index.js +23 -0
- package/dist/physics/spring/index.js.map +1 -1
- package/dist/three-d/Character3D.d.ts +8 -7
- package/dist/three-d/Character3D.d.ts.map +1 -1
- package/dist/three-d/Character3D.js +7 -0
- package/dist/three-d/Character3D.js.map +1 -1
- package/dist/three-d/Collision3D.d.ts +4 -0
- package/dist/three-d/Collision3D.d.ts.map +1 -1
- package/dist/three-d/Collision3D.js.map +1 -1
- package/dist/three-d/Engine3D.d.ts +2 -0
- package/dist/three-d/Engine3D.d.ts.map +1 -1
- package/dist/three-d/Engine3D.js.map +1 -1
- package/dist/three-d/Grid.d.ts +5 -0
- package/dist/three-d/Grid.d.ts.map +1 -1
- package/dist/three-d/Grid.js.map +1 -1
- package/dist/three-d/Heightmap.d.ts +3 -0
- package/dist/three-d/Heightmap.d.ts.map +1 -1
- package/dist/three-d/Heightmap.js.map +1 -1
- package/dist/three-d/TileGrid3D.d.ts +6 -0
- package/dist/three-d/TileGrid3D.d.ts.map +1 -1
- package/dist/three-d/TileGrid3D.js.map +1 -1
- package/dist/three-d/Vox.d.ts +7 -0
- package/dist/three-d/Vox.d.ts.map +1 -1
- package/dist/three-d/Vox.js.map +1 -1
- package/dist/two-d/presentation/MwlPresentation.d.ts +7 -0
- package/dist/two-d/presentation/MwlPresentation.d.ts.map +1 -1
- package/dist/two-d/presentation/MwlPresentation.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +16 -1
- package/sbom.cdx.json +139 -139
- package/tools/benchmark-browser.mjs +6 -0
- package/tools/bundle-size.mjs +4 -0
- package/tools/compile-resources.mjs +3 -2
- package/tools/init.mjs +3 -1
- package/tools/make-example-assets.mjs +4 -0
- package/tools/multiplayer-server.mjs +4 -0
- package/tools/mwl.mjs +7 -0
- package/tools/play-uci.mjs +4 -0
- package/tools/sbom.mjs +4 -0
- package/tools/soundfonts.d.mts +79 -0
- package/tools/soundfonts.mjs +301 -0
- package/tools/verify-scenarios.mjs +6 -2
- package/tools/vite.mjs +1 -1
- package/tools.md +216 -0
package/api-surface.json
CHANGED
|
@@ -5225,6 +5225,12 @@
|
|
|
5225
5225
|
"subpath": "./audio",
|
|
5226
5226
|
"declaringModule": "audio/Playable.d.ts"
|
|
5227
5227
|
},
|
|
5228
|
+
{
|
|
5229
|
+
"name": "decodeSoundFont",
|
|
5230
|
+
"kind": "function",
|
|
5231
|
+
"subpath": "./audio",
|
|
5232
|
+
"declaringModule": "audio/SoundFont.d.ts"
|
|
5233
|
+
},
|
|
5228
5234
|
{
|
|
5229
5235
|
"name": "GridSubdivision",
|
|
5230
5236
|
"kind": "type",
|
|
@@ -5327,6 +5333,12 @@
|
|
|
5327
5333
|
"subpath": "./audio",
|
|
5328
5334
|
"declaringModule": "audio/Channels.d.ts"
|
|
5329
5335
|
},
|
|
5336
|
+
{
|
|
5337
|
+
"name": "loadSoundFont",
|
|
5338
|
+
"kind": "function",
|
|
5339
|
+
"subpath": "./audio",
|
|
5340
|
+
"declaringModule": "audio/SoundFont.d.ts"
|
|
5341
|
+
},
|
|
5330
5342
|
{
|
|
5331
5343
|
"name": "LoopRegion",
|
|
5332
5344
|
"kind": "interface",
|
|
@@ -5339,6 +5351,12 @@
|
|
|
5339
5351
|
"subpath": "./audio",
|
|
5340
5352
|
"declaringModule": "audio/LoopTags.d.ts"
|
|
5341
5353
|
},
|
|
5354
|
+
{
|
|
5355
|
+
"name": "mergeSoundFonts",
|
|
5356
|
+
"kind": "function",
|
|
5357
|
+
"subpath": "./audio",
|
|
5358
|
+
"declaringModule": "audio/SoundFont.d.ts"
|
|
5359
|
+
},
|
|
5342
5360
|
{
|
|
5343
5361
|
"name": "MidiControlEvent",
|
|
5344
5362
|
"kind": "interface",
|
|
@@ -5507,6 +5525,12 @@
|
|
|
5507
5525
|
"subpath": "./audio",
|
|
5508
5526
|
"declaringModule": "audio/MidiRender.d.ts"
|
|
5509
5527
|
},
|
|
5528
|
+
{
|
|
5529
|
+
"name": "SampleDecodingContext",
|
|
5530
|
+
"kind": "interface",
|
|
5531
|
+
"subpath": "./audio",
|
|
5532
|
+
"declaringModule": "audio/SampleDecoder.d.ts"
|
|
5533
|
+
},
|
|
5510
5534
|
{
|
|
5511
5535
|
"name": "SavedBusTrack",
|
|
5512
5536
|
"kind": "interface",
|
|
@@ -5549,6 +5573,12 @@
|
|
|
5549
5573
|
"subpath": "./audio",
|
|
5550
5574
|
"declaringModule": "audio/SoundFont.d.ts"
|
|
5551
5575
|
},
|
|
5576
|
+
{
|
|
5577
|
+
"name": "SoundFontSampleDecoder",
|
|
5578
|
+
"kind": "type",
|
|
5579
|
+
"subpath": "./audio",
|
|
5580
|
+
"declaringModule": "audio/SampleDecoder.d.ts"
|
|
5581
|
+
},
|
|
5552
5582
|
{
|
|
5553
5583
|
"name": "SoundFontVoice",
|
|
5554
5584
|
"kind": "interface",
|
|
@@ -5615,6 +5645,12 @@
|
|
|
5615
5645
|
"subpath": "./audio",
|
|
5616
5646
|
"declaringModule": "audio/Synth.d.ts"
|
|
5617
5647
|
},
|
|
5648
|
+
{
|
|
5649
|
+
"name": "webAudioSampleDecoder",
|
|
5650
|
+
"kind": "function",
|
|
5651
|
+
"subpath": "./audio",
|
|
5652
|
+
"declaringModule": "audio/SampleDecoder.d.ts"
|
|
5653
|
+
},
|
|
5618
5654
|
{
|
|
5619
5655
|
"name": "AttackDialog",
|
|
5620
5656
|
"kind": "class",
|
|
@@ -9359,6 +9395,12 @@
|
|
|
9359
9395
|
"subpath": "./mwl/pyroeis",
|
|
9360
9396
|
"declaringModule": "mwl/pyroeis-runtime.d.ts"
|
|
9361
9397
|
},
|
|
9398
|
+
{
|
|
9399
|
+
"name": "./package.json",
|
|
9400
|
+
"kind": "data",
|
|
9401
|
+
"subpath": "./package.json",
|
|
9402
|
+
"declaringModule": "package.json"
|
|
9403
|
+
},
|
|
9362
9404
|
{
|
|
9363
9405
|
"name": "BodyOptions",
|
|
9364
9406
|
"kind": "interface",
|
|
@@ -11141,6 +11183,12 @@
|
|
|
11141
11183
|
"subpath": "./tools/single-file",
|
|
11142
11184
|
"declaringModule": "tools/single-file.mjs"
|
|
11143
11185
|
},
|
|
11186
|
+
{
|
|
11187
|
+
"name": "./tools/soundfonts",
|
|
11188
|
+
"kind": "tool",
|
|
11189
|
+
"subpath": "./tools/soundfonts",
|
|
11190
|
+
"declaringModule": "tools/soundfonts.mjs"
|
|
11191
|
+
},
|
|
11144
11192
|
{
|
|
11145
11193
|
"name": "./tools/verify-scenarios",
|
|
11146
11194
|
"kind": "tool",
|
|
@@ -5,6 +5,9 @@ supplied for this repository as the smallest usable GM bank found so far. Its IN
|
|
|
5
5
|
chunk names the bank `microgm-opt`, the engineer `michael`, the sound engine
|
|
6
6
|
`EMU8000`, the comment `gm soundfont for tiny devices`, and the tool `Polyphone`.
|
|
7
7
|
|
|
8
|
+
Source: https://musical-artifacts.com/artifacts/2529 (the page refused an automated read
|
|
9
|
+
when this note was written, so it was not re-checked there).
|
|
10
|
+
|
|
8
11
|
Licence: WTFPL (Do What The F*** You Want To Public License,
|
|
9
12
|
https://www.wtfpl.net/), confirmed by the project owner in October 2026. The
|
|
10
13
|
file's own INFO chunk states no licence, so this note is the record of that
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "SoundFont collections mwg-soundfonts can fetch per instrument. Snapshot of marmooo/free-soundfonts list.json (sf3 sizes in MB) with each licence classified; classes other than public-domain, permissive and attribution need --accept-licence.",
|
|
3
|
+
"source": "https://soundfonts.pages.dev",
|
|
4
|
+
"default": "microgm-opt",
|
|
5
|
+
"bundled": [
|
|
6
|
+
{
|
|
7
|
+
"name": "microgm-opt",
|
|
8
|
+
"file": "data/microgm-opt.sf2",
|
|
9
|
+
"licence": "WTFPL",
|
|
10
|
+
"licenceClass": "permissive",
|
|
11
|
+
"web": "https://musical-artifacts.com/artifacts/2529",
|
|
12
|
+
"programs": 137,
|
|
13
|
+
"fullMB": 2.6
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"fonts": [
|
|
17
|
+
{
|
|
18
|
+
"name": "005.6mg_Aspirin_Stereo_V1.2_Bank",
|
|
19
|
+
"licence": "Public Domain",
|
|
20
|
+
"licenceClass": "public-domain",
|
|
21
|
+
"programs": 191,
|
|
22
|
+
"gmMB": 9,
|
|
23
|
+
"fullMB": 15
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "32MbGMStereo",
|
|
27
|
+
"licence": "see source page",
|
|
28
|
+
"licenceClass": "check",
|
|
29
|
+
"web": "http://ntonyx.com/05_sf_01.html#008",
|
|
30
|
+
"programs": 137,
|
|
31
|
+
"gmMB": 15,
|
|
32
|
+
"fullMB": 15,
|
|
33
|
+
"note": "No licence stated by the collection: check the source page."
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "90's_Retro_Vintage_v1.05",
|
|
37
|
+
"licence": "Public Domain",
|
|
38
|
+
"licenceClass": "public-domain",
|
|
39
|
+
"web": "https://musical-artifacts.com/artifacts/1386",
|
|
40
|
+
"programs": 470,
|
|
41
|
+
"gmMB": 59,
|
|
42
|
+
"fullMB": 155
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "Airfont_320_neo",
|
|
46
|
+
"licence": "Public Domain",
|
|
47
|
+
"licenceClass": "public-domain",
|
|
48
|
+
"web": "https://musical-artifacts.com/artifacts/634",
|
|
49
|
+
"programs": 325,
|
|
50
|
+
"gmMB": 6,
|
|
51
|
+
"fullMB": 10
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "Airfont_330",
|
|
55
|
+
"licence": "CC-BY-3.0",
|
|
56
|
+
"licenceClass": "attribution",
|
|
57
|
+
"web": "https://musical-artifacts.com/artifacts/874",
|
|
58
|
+
"programs": 218,
|
|
59
|
+
"gmMB": 20,
|
|
60
|
+
"fullMB": 22
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "Airfont_340",
|
|
64
|
+
"licence": "Public Domain",
|
|
65
|
+
"licenceClass": "public-domain",
|
|
66
|
+
"web": "https://musical-artifacts.com/artifacts/633",
|
|
67
|
+
"programs": 326,
|
|
68
|
+
"gmMB": 14,
|
|
69
|
+
"fullMB": 18
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "Airfont_380_final",
|
|
73
|
+
"licence": "Public Domain",
|
|
74
|
+
"licenceClass": "public-domain",
|
|
75
|
+
"web": "https://musical-artifacts.com/artifacts/635",
|
|
76
|
+
"programs": 138,
|
|
77
|
+
"gmMB": 38,
|
|
78
|
+
"fullMB": 38
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"name": "Alex's_gm_v1.3",
|
|
82
|
+
"licence": "CC-BY-3.0",
|
|
83
|
+
"licenceClass": "attribution",
|
|
84
|
+
"web": "https://musical-artifacts.com/artifacts/1390",
|
|
85
|
+
"programs": 137,
|
|
86
|
+
"gmMB": 60,
|
|
87
|
+
"fullMB": 60
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"name": "Aspirin_160_GMGS_2015",
|
|
91
|
+
"licence": "Public Domain",
|
|
92
|
+
"licenceClass": "public-domain",
|
|
93
|
+
"programs": 207,
|
|
94
|
+
"gmMB": 13,
|
|
95
|
+
"fullMB": 24
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "ColomboGMGS2_V16.0",
|
|
99
|
+
"licence": "CC-BY-SA-4.0",
|
|
100
|
+
"licenceClass": "share-alike",
|
|
101
|
+
"web": "https://musical-artifacts.com/artifacts/1234",
|
|
102
|
+
"programs": 886,
|
|
103
|
+
"gmMB": 120,
|
|
104
|
+
"fullMB": 378
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "FatBoy_v0.790",
|
|
108
|
+
"licence": "see source page",
|
|
109
|
+
"licenceClass": "check",
|
|
110
|
+
"web": "https://fatboy.site/",
|
|
111
|
+
"programs": 281,
|
|
112
|
+
"gmMB": 50,
|
|
113
|
+
"fullMB": 72,
|
|
114
|
+
"note": "No licence stated by the collection: ask the author."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "FluidR3_v3.1",
|
|
118
|
+
"licence": "MIT",
|
|
119
|
+
"licenceClass": "permissive",
|
|
120
|
+
"web": "https://launchpad.net/ubuntu/+source/fluid-soundfont",
|
|
121
|
+
"programs": 222,
|
|
122
|
+
"gmMB": 70,
|
|
123
|
+
"fullMB": 78
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"name": "GeneralUser_GS_v1.472",
|
|
127
|
+
"licence": "see source page",
|
|
128
|
+
"licenceClass": "check",
|
|
129
|
+
"web": "http://www.schristiancollins.com/generaluser.php",
|
|
130
|
+
"programs": 269,
|
|
131
|
+
"gmMB": 17,
|
|
132
|
+
"fullMB": 34,
|
|
133
|
+
"note": "Its own licence (schristiancollins.com): read it before shipping."
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "GeneralUser_GS_v2.0.3",
|
|
137
|
+
"licence": "see source page",
|
|
138
|
+
"licenceClass": "check",
|
|
139
|
+
"web": "http://www.schristiancollins.com/generaluser.php",
|
|
140
|
+
"programs": 287,
|
|
141
|
+
"gmMB": 19,
|
|
142
|
+
"fullMB": 38,
|
|
143
|
+
"note": "Its own licence (schristiancollins.com): read it before shipping."
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"name": "LiteGM_v1.03",
|
|
147
|
+
"licence": "CC-BY-SA-4.0",
|
|
148
|
+
"licenceClass": "share-alike",
|
|
149
|
+
"web": "https://musical-artifacts.com/artifacts/3677",
|
|
150
|
+
"programs": 137,
|
|
151
|
+
"gmMB": 10,
|
|
152
|
+
"fullMB": 10
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "SGM-V2.01",
|
|
156
|
+
"licence": "CC-BY-4.0",
|
|
157
|
+
"licenceClass": "attribution",
|
|
158
|
+
"web": "https://archive.org/details/SGM-V2.01",
|
|
159
|
+
"programs": 409,
|
|
160
|
+
"gmMB": 66,
|
|
161
|
+
"fullMB": 162
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"name": "SGM-v2.01-NicePianosGuitarsBass-V1.2",
|
|
165
|
+
"licence": "CC-BY-3.0",
|
|
166
|
+
"licenceClass": "attribution",
|
|
167
|
+
"web": "https://musical-artifacts.com/artifacts/855",
|
|
168
|
+
"programs": 285,
|
|
169
|
+
"gmMB": 98,
|
|
170
|
+
"fullMB": 225
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"name": "TimGM6mb",
|
|
174
|
+
"licence": "GPL-2.0",
|
|
175
|
+
"licenceClass": "copyleft",
|
|
176
|
+
"web": "http://www.timbrechbill.com/saxguru/Timidity.php",
|
|
177
|
+
"programs": 136,
|
|
178
|
+
"gmMB": 5,
|
|
179
|
+
"fullMB": 5,
|
|
180
|
+
"note": "The collection lists Public Domain, but Debian and Alpine list GPL-2.0 (some samples are public domain, others GPL-2.0)."
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
}
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -18,6 +18,9 @@ export interface AIAction {
|
|
|
18
18
|
readonly type: string;
|
|
19
19
|
readonly [key: string]: AIValue;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* What one `decide` call receives. `perception` is the game-built snapshot; `state` overrides the agent's stored state for this call; `signal` cancels; the budget and `seed` fields override the runner's defaults.
|
|
23
|
+
*/
|
|
21
24
|
export interface AIDecisionInput {
|
|
22
25
|
readonly perception: AIValue;
|
|
23
26
|
readonly state?: AIState;
|
|
@@ -33,6 +36,9 @@ export interface AIDecisionContext {
|
|
|
33
36
|
readonly checkpoint: () => void;
|
|
34
37
|
emit(name: string, payload?: AIValue): void;
|
|
35
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* The result of one `decide` call. `status` says why `action` is or is not set; `steps` counts budget checkpoints used and `behavior` names the behaviour that decided, when one did.
|
|
41
|
+
*/
|
|
36
42
|
export interface AIDecision {
|
|
37
43
|
readonly agent: string;
|
|
38
44
|
readonly action: AIAction | null;
|
|
@@ -54,6 +60,9 @@ export interface AIBehavior {
|
|
|
54
60
|
readonly when?: (context: AIDecisionContext) => boolean;
|
|
55
61
|
readonly decide: (context: AIDecisionContext) => AIAction | null;
|
|
56
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* A registered agent: behaviours tried in declaration order, plus optional `scope` and search hints (`algorithm`, `depth`, `maxNodes`) that the runner itself does not act on: a game, converter or score view reads them.
|
|
65
|
+
*/
|
|
57
66
|
export interface AIAgentDefinition {
|
|
58
67
|
readonly id: string;
|
|
59
68
|
readonly behaviors: readonly AIBehavior[];
|
|
@@ -62,6 +71,7 @@ export interface AIAgentDefinition {
|
|
|
62
71
|
readonly depth?: number;
|
|
63
72
|
readonly maxNodes?: number;
|
|
64
73
|
}
|
|
74
|
+
/** The versioned, JSON-shaped save format of `exportState`/`importState`: per-agent state keyed by agent id. */
|
|
65
75
|
export interface AIStateEnvelope {
|
|
66
76
|
readonly version: 1;
|
|
67
77
|
readonly agents: Readonly<Record<string, AIState>>;
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUrE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EACN,OAAO,EACP,UAAU,EACV,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,aAAa,GACb,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUrE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EACN,OAAO,EACP,UAAU,EACV,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,aAAa,GACb,MAAM,iBAAiB,CAAC;AAuGzB,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,YAAY;IAKxB,YAAY,OAAO,GAAwB,EAAE;QAJ5B,WAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC9C,WAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;QAIpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,uBAAuB,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAC3E,yBAAyB,CAAC,OAAO,CAAC,eAAe,IAAI,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;IACnG,CAAC;IAED,QAAQ,CAAC,KAAwB;QAChC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACtG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACxF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACpG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,KAAsB;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QAC9E,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,wBAAwB,CAAC;QAC1G,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9C,yBAAyB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,GAAS,EAAE;YAC7B,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO;gBAAE,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACxD,IAAI,KAAK,GAAG,QAAQ,IAAI,cAAc,EAAE,GAAG,OAAO,GAAG,eAAe;gBAAE,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACzG,CAAC,CAAC;QACF,MAAM,OAAO,GAAsB;YAClC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YACxC,KAAK;YACL,MAAM,EAAE,GAAG,EAAE;gBACZ,UAAU,EAAE,CAAC;gBACb,OAAO,MAAM,EAAE,CAAC;YACjB,CAAC;YACD,UAAU;YACV,IAAI,CAAC,IAAI,EAAE,OAAO;gBACjB,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC9D,UAAU,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxF,CAAC;SACD,CAAC;QAEF,IAAI,MAAM,GAAoB,IAAI,CAAC;QACnC,IAAI,UAA8B,CAAC;QACnC,IAAI,MAAM,GAAyB,MAAM,CAAC;QAC1C,IAAI,CAAC;YACJ,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACxC,UAAU,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACvD,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpC,MAAM;YACP,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,MAAM,GAAG,WAAW,CAAC;iBACvD,IAAI,KAAK,YAAY,qBAAqB;gBAAE,MAAM,GAAG,iBAAiB,CAAC;;gBACvE,MAAM,KAAK,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAe;YAC5B,KAAK,EAAE,OAAO;YACd,MAAM;YACN,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,KAAK;YACL,MAAM;SACN,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,oFAAoF;IACpF,MAAM,CACL,IAAgC,EAChC,KAAY,EACZ,OAAyB;QAEzB,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW;QACV,OAAO;YACN,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC1F,CAAC;IACH,CAAC;IAED,WAAW,CAAC,QAAyB;QACpC,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,OAAO;QACN,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACD;AAED,gFAAgF;AAChF,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAC1C;QACC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChC,CAAC;CACD;AAED,mFAAmF;AACnF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC/C;QACC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACrC,CAAC;CACD;AAED,SAAS,cAAc,CAAC,MAAuB;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,IACC,CAAC,MAAM;QACP,OAAO,MAAM,KAAK,QAAQ;QAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACrB,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,CAAC,MAAM,CAAC,IAAI,EACX,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAa,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,OAAO,UAAU,CAAC,KAAK,CAAY,CAAC;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC/E,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IACvB,OAAO,GAAG,EAAE;QACX,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,KAAK,GAAG,aAAa,CAAC;IAC9B,CAAC,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa,EAAE,IAAY;IAC3D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa,EAAE,IAAY;IAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAC;AACzG,CAAC;AAED,SAAS,cAAc;IACtB,OAAO,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AAC5E,CAAC"}
|
package/dist/ai/lua.d.ts
CHANGED
|
@@ -2,12 +2,18 @@ import { type PyroeisScriptHostOptions } from '../mwl/pyroeis.ts';
|
|
|
2
2
|
import type { ScriptHost } from '../mwl/scripts.ts';
|
|
3
3
|
import { type AIDecision, type AIDecisionInput, type AIStateEnvelope } from './index.ts';
|
|
4
4
|
import { type AlphaBetaOptions, type AlphaBetaResult, type LuaAlphaBetaFunctions } from './search.ts';
|
|
5
|
+
/**
|
|
6
|
+
* A Lua-scripted agent. `source` is executed once on first use; `functionName` (default `decide`) is then called with `(perception, state)`. `search` renames the Lua functions `LuaAI.search` calls.
|
|
7
|
+
*/
|
|
5
8
|
export interface LuaAIAgentDefinition {
|
|
6
9
|
readonly id: string;
|
|
7
10
|
readonly source: string;
|
|
8
11
|
readonly functionName?: string;
|
|
9
12
|
readonly search?: LuaAlphaBetaFunctions;
|
|
10
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* `maxSteps` (alias of `instructionLimit`) caps VM instructions per decision, reported as `budget-exceeded`. `seed` is the default for `mwg_seed`. `host` replaces the Pyroeis VM, e.g. with a test fake.
|
|
16
|
+
*/
|
|
11
17
|
export interface LuaAIOptions extends PyroeisScriptHostOptions {
|
|
12
18
|
readonly host?: ScriptHost;
|
|
13
19
|
readonly maxSteps?: number;
|
package/dist/ai/lua.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lua.d.ts","sourceRoot":"","sources":["../../src/ai/lua.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,YAAa,SAAQ,wBAAwB;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,KAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmE;IAC1F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YAAY,OAAO,GAAE,YAAiB,EASrC;IAED,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAK1C;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,UAAU,CAkD1D;IAED;;;;OAIG;IACH,MAAM,CACL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,YAAY,EAAE,OAAO,EACnC,OAAO,EAAE,gBAAgB,GACvB,eAAe,CAAC,OAAO,YAAY,EAAE,OAAO,EAAE,OAAO,YAAY,EAAE,OAAO,CAAC,CA4B7E;IAED,WAAW,IAAI,eAAe,CAE7B;IAED,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAM3C;IAED,OAAO,IAAI,IAAI,CAKd;CACD;AA0ED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,KAAK,CAE7D;AAED,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"lua.d.ts","sourceRoot":"","sources":["../../src/ai/lua.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,wBAAwB;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,KAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmE;IAC1F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YAAY,OAAO,GAAE,YAAiB,EASrC;IAED,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAK1C;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,UAAU,CAkD1D;IAED;;;;OAIG;IACH,MAAM,CACL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,YAAY,EAAE,OAAO,EACnC,OAAO,EAAE,gBAAgB,GACvB,eAAe,CAAC,OAAO,YAAY,EAAE,OAAO,EAAE,OAAO,YAAY,EAAE,OAAO,CAAC,CA4B7E;IAED,WAAW,IAAI,eAAe,CAE7B;IAED,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAM3C;IAED,OAAO,IAAI,IAAI,CAKd;CACD;AA0ED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,KAAK,CAE7D;AAED,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/ai/lua.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lua.js","sourceRoot":"","sources":["../../src/ai/lua.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAiC,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EAA+D,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,eAAe,EAA2E,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"lua.js","sourceRoot":"","sources":["../../src/ai/lua.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turns the Ogg Vorbis bytes of one SoundFont 3 sample into mono 16-bit frames at the
|
|
3
|
+
* sample's own rate, which is the rate its header states and the frame count its loop
|
|
4
|
+
* points were written against. Synchronous or asynchronous: a browser decodes through
|
|
5
|
+
* WebAudio (`webAudioSampleDecoder`), a Node tool through whatever it has installed.
|
|
6
|
+
*/
|
|
7
|
+
export type SoundFontSampleDecoder = (ogg: Uint8Array, rate: number) => Int16Array | Promise<Int16Array>;
|
|
8
|
+
/** the slice of `OfflineAudioContext` the decoder uses, so a test can stand in for it */
|
|
9
|
+
export interface SampleDecodingContext {
|
|
10
|
+
decodeAudioData(data: ArrayBuffer): Promise<{
|
|
11
|
+
sampleRate: number;
|
|
12
|
+
length: number;
|
|
13
|
+
getChannelData(channel: number): Float32Array;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* What a sample header may claim. The rate and the Ogg bytes come from a font file that may have been
|
|
18
|
+
* downloaded, so what they ask the decoder to allocate is bounded: the SoundFont 2 format itself
|
|
19
|
+
* stops at 50 kHz, and sixteen million frames is six minutes at 44.1 kHz for a single instrument sample.
|
|
20
|
+
*/
|
|
21
|
+
export declare const MIN_SAMPLE_RATE = 400;
|
|
22
|
+
export declare const MAX_SAMPLE_RATE = 200000;
|
|
23
|
+
export declare const MAX_SAMPLE_FRAMES: number;
|
|
24
|
+
/**
|
|
25
|
+
* A decoder over WebAudio's `decodeAudioData`, for a browser: each sample decodes in a context
|
|
26
|
+
* created at the sample's own rate, so the browser does not resample it and the loop points keep
|
|
27
|
+
* meaning what the font wrote. A rate outside what a context accepts (8 to 96 kHz) decodes at
|
|
28
|
+
* the nearest accepted rate and is resampled back. `create` replaces the context factory.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { loadSoundFont, webAudioSampleDecoder } from '@datamoc/mw_games/audio';
|
|
33
|
+
*
|
|
34
|
+
* declare const sf3Bytes: ArrayBuffer;
|
|
35
|
+
*
|
|
36
|
+
* const font = await loadSoundFont(sf3Bytes, { decode: webAudioSampleDecoder() });
|
|
37
|
+
* console.log(font.presetCount);
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function webAudioSampleDecoder(create?: (rate: number) => SampleDecodingContext): SoundFontSampleDecoder;
|
|
41
|
+
//# sourceMappingURL=SampleDecoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SampleDecoder.d.ts","sourceRoot":"","sources":["../../src/audio/SampleDecoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzG,yFAAyF;AACzF,MAAM,WAAW,qBAAqB;IACrC,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;KAC9C,CAAC,CAAC;CACH;AAMD;;;;GAIG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,iBAAiB,QAAU,CAAC;AA+BzC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,qBAAsC,GAC9D,sBAAsB,CAcxB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** the narrowest rate range every engine's `OfflineAudioContext` accepts */
|
|
2
|
+
const MIN_RATE = 8000;
|
|
3
|
+
const MAX_RATE = 96000;
|
|
4
|
+
/**
|
|
5
|
+
* What a sample header may claim. The rate and the Ogg bytes come from a font file that may have been
|
|
6
|
+
* downloaded, so what they ask the decoder to allocate is bounded: the SoundFont 2 format itself
|
|
7
|
+
* stops at 50 kHz, and sixteen million frames is six minutes at 44.1 kHz for a single instrument sample.
|
|
8
|
+
*/
|
|
9
|
+
export const MIN_SAMPLE_RATE = 400;
|
|
10
|
+
export const MAX_SAMPLE_RATE = 200000;
|
|
11
|
+
export const MAX_SAMPLE_FRAMES = 1 << 24;
|
|
12
|
+
function toInt16(frames) {
|
|
13
|
+
const out = new Int16Array(frames.length);
|
|
14
|
+
for (let index = 0; index < frames.length; index++) {
|
|
15
|
+
out[index] = Math.round(Math.max(-1, Math.min(1, frames[index])) * 32767);
|
|
16
|
+
}
|
|
17
|
+
return out;
|
|
18
|
+
}
|
|
19
|
+
/** linear resampling, only for the rare sample whose rate a context cannot be created at */
|
|
20
|
+
function resample(frames, from, to) {
|
|
21
|
+
const length = Math.max(1, Math.round((frames.length * to) / from));
|
|
22
|
+
if (length > MAX_SAMPLE_FRAMES)
|
|
23
|
+
throw new Error('a decoded sample is longer than a SoundFont sample may be');
|
|
24
|
+
const out = new Float32Array(length);
|
|
25
|
+
for (let index = 0; index < out.length; index++) {
|
|
26
|
+
const at = (index * from) / to;
|
|
27
|
+
const base = Math.floor(at);
|
|
28
|
+
const next = Math.min(base + 1, frames.length - 1);
|
|
29
|
+
out[index] = frames[base] + (frames[next] - frames[base]) * (at - base);
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
function offlineContext(rate) {
|
|
34
|
+
if (typeof OfflineAudioContext === 'undefined') {
|
|
35
|
+
throw new Error('no OfflineAudioContext here: pass a decoder of your own to decode a SoundFont 3');
|
|
36
|
+
}
|
|
37
|
+
return new OfflineAudioContext(1, 1, rate);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A decoder over WebAudio's `decodeAudioData`, for a browser: each sample decodes in a context
|
|
41
|
+
* created at the sample's own rate, so the browser does not resample it and the loop points keep
|
|
42
|
+
* meaning what the font wrote. A rate outside what a context accepts (8 to 96 kHz) decodes at
|
|
43
|
+
* the nearest accepted rate and is resampled back. `create` replaces the context factory.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { loadSoundFont, webAudioSampleDecoder } from '@datamoc/mw_games/audio';
|
|
48
|
+
*
|
|
49
|
+
* declare const sf3Bytes: ArrayBuffer;
|
|
50
|
+
*
|
|
51
|
+
* const font = await loadSoundFont(sf3Bytes, { decode: webAudioSampleDecoder() });
|
|
52
|
+
* console.log(font.presetCount);
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function webAudioSampleDecoder(create = offlineContext) {
|
|
56
|
+
return async (ogg, rate) => {
|
|
57
|
+
if (!(rate >= MIN_SAMPLE_RATE && rate <= MAX_SAMPLE_RATE)) {
|
|
58
|
+
throw new Error(`a sample rate of ${rate} Hz is not one a SoundFont can state`);
|
|
59
|
+
}
|
|
60
|
+
const contextRate = Math.max(MIN_RATE, Math.min(MAX_RATE, rate));
|
|
61
|
+
//decodeAudioData detaches what it is given, and `ogg` is a view into the caller's font
|
|
62
|
+
const copy = ogg.slice().buffer;
|
|
63
|
+
const decoded = await create(contextRate).decodeAudioData(copy);
|
|
64
|
+
if (decoded.length > MAX_SAMPLE_FRAMES)
|
|
65
|
+
throw new Error('a decoded sample is longer than a SoundFont sample may be');
|
|
66
|
+
const channel = decoded.getChannelData(0);
|
|
67
|
+
return toInt16(decoded.sampleRate === rate ? channel : resample(channel, decoded.sampleRate, rate));
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=SampleDecoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SampleDecoder.js","sourceRoot":"","sources":["../../src/audio/SampleDecoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type MidiFile } from './Midi.ts';
|
|
2
|
+
import type { SoundFontSampleDecoder } from './SampleDecoder.ts';
|
|
2
3
|
/** one mono sample: raw frames plus its loop region in frames and native rate */
|
|
3
4
|
export interface SoundFontSample {
|
|
4
5
|
data: Float32Array;
|
|
@@ -72,6 +73,64 @@ export declare function parseSoundFont(data: ArrayBuffer | ArrayBufferView): Sou
|
|
|
72
73
|
* ```
|
|
73
74
|
*/
|
|
74
75
|
export declare function collectSoundFontUsage(files: readonly MidiFile[]): SoundFontProgram[];
|
|
76
|
+
/**
|
|
77
|
+
* Joins several SoundFont 2 files into one, presets in the order given. When two files
|
|
78
|
+
* carry the same (bank, program) the first wins and the other's preset, instruments
|
|
79
|
+
* and samples are dropped, so the result never holds a voice nothing can reach. This is
|
|
80
|
+
* how single-instrument files (a per-program font collection) become the one file a game
|
|
81
|
+
* ships; `subsetSoundFont` then trims it like any other.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* import { mergeSoundFonts, parseSoundFont } from '@datamoc/mw_games/audio';
|
|
86
|
+
*
|
|
87
|
+
* declare const pianoBytes: ArrayBuffer;
|
|
88
|
+
* declare const drumsBytes: ArrayBuffer;
|
|
89
|
+
*
|
|
90
|
+
* const merged = mergeSoundFonts([pianoBytes, drumsBytes]);
|
|
91
|
+
* console.log(parseSoundFont(merged).presetCount);
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function mergeSoundFonts(fonts: readonly (ArrayBuffer | ArrayBufferView)[]): ArrayBuffer;
|
|
95
|
+
/**
|
|
96
|
+
* Decodes a SoundFont 3 into a plain SoundFont 2: every Ogg Vorbis sample a preset reaches goes
|
|
97
|
+
* through `decode` (one call per sample, mono 16-bit frames at the rate the header states) into
|
|
98
|
+
* the sample chunk, and the loop points a SoundFont 3 states relative to its sample become the
|
|
99
|
+
* absolute ones SoundFont 2 uses. A SoundFont 2 comes back unchanged and `decode` is never called.
|
|
100
|
+
* The result feeds everything that takes SoundFont 2 bytes, `renderMidiToBufferAsync` included.
|
|
101
|
+
* A loop that ends past the decoded frames is cut to them.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* import { decodeSoundFont, webAudioSampleDecoder } from '@datamoc/mw_games/audio';
|
|
106
|
+
*
|
|
107
|
+
* declare const sf3Bytes: ArrayBuffer;
|
|
108
|
+
*
|
|
109
|
+
* const sf2 = await decodeSoundFont(sf3Bytes, webAudioSampleDecoder());
|
|
110
|
+
* console.log(sf2.byteLength);
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function decodeSoundFont(data: ArrayBuffer | ArrayBufferView, decode: SoundFontSampleDecoder): Promise<ArrayBuffer>;
|
|
114
|
+
/**
|
|
115
|
+
* Reads a SoundFont 2 or 3 into layered preset voices: `parseSoundFont` for a plain font, and a
|
|
116
|
+
* SoundFont 3 decoded first through `decode`, `webAudioSampleDecoder()` (the browser) unless one
|
|
117
|
+
* is given. This is what a game calls on the bytes it ships, whichever kind they are.
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```ts
|
|
121
|
+
* import { loadSoundFont, parseMidi, renderMidiToBuffer } from '@datamoc/mw_games/audio';
|
|
122
|
+
*
|
|
123
|
+
* declare const fontBytes: ArrayBuffer;
|
|
124
|
+
* declare const midiBytes: ArrayBuffer;
|
|
125
|
+
*
|
|
126
|
+
* const font = await loadSoundFont(fontBytes);
|
|
127
|
+
* const rendered = renderMidiToBuffer(parseMidi(midiBytes), { soundfont: font });
|
|
128
|
+
* console.log(rendered.duration);
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export declare function loadSoundFont(data: ArrayBuffer | ArrayBufferView, options?: {
|
|
132
|
+
decode?: SoundFontSampleDecoder;
|
|
133
|
+
}): Promise<SoundFont>;
|
|
75
134
|
/**
|
|
76
135
|
* Writes a smaller, valid SoundFont 2 file carrying only the used programs: their
|
|
77
136
|
* presets (names kept), instruments and samples, with zones, ranges, tuning,
|