@forgeax/game 0.3.7 → 0.3.9
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/README.md +30 -148
- package/assets/extensions/asset3d/cli.mjs +2236 -0
- package/assets/extensions/asset3d/extension.json +7 -0
- package/assets/extensions/asset3d/skills/art-3d-asset-library/SKILL.md +166 -0
- package/assets/licenses/fflate.txt +21 -0
- package/assets/skills/forgeax-game/SKILL.md +17 -16
- package/dist/main.js +535 -2478
- package/docs/asset3d.md +84 -204
- package/docs/plugin-integration-standard.md +196 -0
- package/package.json +4 -10
- package/assets/asset3d/adapter/SKILL.md +0 -56
- package/assets/asset3d/provider/asset3d-search-provider-a274238712c1dced99e4aa3148a0d15904ce2a90-darwin-arm64.tar.gz +0 -0
- package/assets/asset3d/provider/asset3d-search-provider-a274238712c1dced99e4aa3148a0d15904ce2a90-linux-x64.tar.gz +0 -0
- package/assets/asset3d/schemas/receipt-1.0.0.json +0 -29
- package/assets/asset3d/schemas/result-1.0.0.json +0 -361
- package/assets/asset3d/vibegame-art-3d-asset-library-2.0.0.tgz +0 -0
- package/assets/asset3d/vibegame-art-3d-asset-library-2.0.0.tgz.sha256 +0 -1
- package/docs/release-0.3.0.md +0 -100
- package/docs/release-0.3.1.md +0 -107
- package/docs/release-0.3.2.md +0 -90
- package/docs/release-0.3.3.md +0 -73
- package/docs/release-0.3.4.md +0 -66
- package/docs/release-0.3.5.md +0 -32
package/README.md
CHANGED
|
@@ -9,8 +9,8 @@ creation, build, and Preview to the exact Engine SDK instead of carrying a secon
|
|
|
9
9
|
runtime.
|
|
10
10
|
|
|
11
11
|
> [!IMPORTANT]
|
|
12
|
-
> The
|
|
13
|
-
> `@forgeax/engine-sdk@0.1
|
|
12
|
+
> The package carries `forgeax-game` and scoped `game` binary aliases and resolves the exact
|
|
13
|
+
> `@forgeax/engine-sdk@0.2.1` and `pnpm@11.7.0` dependencies. It has no
|
|
14
14
|
> `@forgeax/game-runtime` dependency and no static Preview fallback.
|
|
15
15
|
|
|
16
16
|
## Supported flow
|
|
@@ -22,8 +22,8 @@ flowchart LR
|
|
|
22
22
|
CARRIER["Exact npm SDK carrier"] --> GAME
|
|
23
23
|
PLUGIN["@forgeax/game"] --> INSTALL
|
|
24
24
|
PLUGIN --> INIT
|
|
25
|
-
GAME --> BUILD["Exact Engine CLI build --json"]
|
|
26
|
-
BUILD --> PREVIEW["Exact Engine CLI preview --json"]
|
|
25
|
+
GAME --> BUILD["Exact Engine CLI project build --json"]
|
|
26
|
+
BUILD --> PREVIEW["Exact Engine CLI project preview --json"]
|
|
27
27
|
PREVIEW --> PROOF["Release-aware readiness proof"]
|
|
28
28
|
```
|
|
29
29
|
|
|
@@ -47,8 +47,6 @@ npx -y @forgeax/game init
|
|
|
47
47
|
The first command writes the `forgeax` MCP member in the canonical Codex,
|
|
48
48
|
Cursor, and Claude Code user configs. It preserves unrelated bytes and values,
|
|
49
49
|
reports `CURRENT` on an idempotent rerun, and says which host must restart or reload.
|
|
50
|
-
Existing older package-owned Asset3D MCP entries are also refreshed; absent or
|
|
51
|
-
custom Asset3D entries are not added or overwritten.
|
|
52
50
|
The second command must run from the intended blank directory. It creates the Engine
|
|
53
51
|
game there, binds the exact release identity, and reports the canonical root and
|
|
54
52
|
host-skill result. Existing exact games are read back and bound without recreation;
|
|
@@ -65,36 +63,21 @@ npx -y @forgeax/game@latest update --ide codex
|
|
|
65
63
|
`plugin 0.3.4 -> 0.3.5`. It refreshes configuration, skills, and routing from the
|
|
66
64
|
package being executed; it does not independently fetch another package.
|
|
67
65
|
|
|
68
|
-
|
|
69
|
-
to older Engine versions. This release recognizes strict v2 manifests without
|
|
70
|
-
requiring the removed `entry` field, but does not migrate game dependencies.
|
|
66
|
+
This version consumes the exact Engine SDK pin in package.json; it does not migrate game dependencies.
|
|
71
67
|
|
|
72
68
|
> [!NOTE]
|
|
73
|
-
> Asset3D is optional and
|
|
74
|
-
>
|
|
75
|
-
>
|
|
76
|
-
>
|
|
77
|
-
> ```bash
|
|
78
|
-
> npx -y @forgeax/game asset3d enable
|
|
79
|
-
> ```
|
|
80
|
-
>
|
|
81
|
-
> With no override, `enable` keeps the public AW depot. On the office network, pass
|
|
82
|
-
> `--library ea` to select the EA depot and its local gateway. `--base-url` overrides
|
|
83
|
-
> only the selected library's gateway. The first enable prompts for the Sandbox Key
|
|
84
|
-
> with hidden input, validates it through
|
|
85
|
-
> the packaged Provider, and stores it outside the project in a private user
|
|
86
|
-
> credential file.
|
|
69
|
+
> Asset3D is optional and disabled by default. After init, run
|
|
70
|
+
> `npx -y @forgeax/game asset3d enable`. It directly validates the selected
|
|
71
|
+
> service and stores credentials outside the project. See [Asset3D](docs/asset3d.md).
|
|
87
72
|
|
|
88
73
|
## Agent completion contract
|
|
89
74
|
|
|
90
75
|
`init` records `.forgeax/game-authoring-baseline.json` before gameplay authoring. An
|
|
91
|
-
untouched Empty template remains runnable
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
template test does not qualify. Authoring layout follows the installed Engine and
|
|
97
|
-
`forge.json` (v2 uses `assets/` and `plugins[]`); the Studio-hosted
|
|
76
|
+
untouched Empty template remains runnable. After making a game, replace the Empty
|
|
77
|
+
identity and README, document controls, and test a real gameplay rule rather than
|
|
78
|
+
renaming the template test. The connector checks completion evidence before Preview.
|
|
79
|
+
Authoring layout follows the installed Engine and
|
|
80
|
+
`forge.json` (Engine 0.2.1 uses `assets/` Packs and `roots`); the Studio-hosted
|
|
98
81
|
`.forgeax/games/<slug>` layout is never created by this package.
|
|
99
82
|
|
|
100
83
|
Every supported host receives the same packaged `forgeax-game` Skill and routing rule.
|
|
@@ -104,10 +87,10 @@ Preview `ready` verifies startup and ownership, not playable behavior. Agents us
|
|
|
104
87
|
available browser tools for task-relevant interaction checks, or clearly report
|
|
105
88
|
gameplay as unverified and provide manual checks. This guidance does not prescribe
|
|
106
89
|
a game genre, UI implementation, browser brand, or additional blocking gate.
|
|
107
|
-
An explicit request for an existing/library 3D asset
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
generation as an asset-library result.
|
|
90
|
+
An explicit request for an existing/library 3D asset uses the enabled project's
|
|
91
|
+
`asset3d candidates` and `asset3d import` CLI commands. No separate Agent MCP tool
|
|
92
|
+
is required. Report CLI failures rather than relabeling procedural geometry or
|
|
93
|
+
generation as an asset-library result. See the [Skill + CLI integration standard](docs/plugin-integration-standard.md).
|
|
111
94
|
|
|
112
95
|
## MCP transports
|
|
113
96
|
|
|
@@ -137,13 +120,11 @@ root and never accepts a caller-provided `target_dir`.
|
|
|
137
120
|
| `forgeax_game_read_logs` | HTTP tool | Read a bounded Preview log tail for remote diagnosis |
|
|
138
121
|
| `forgeax_game_write_file` | HTTP tool | Atomically create or hash-guard replacement of a text file |
|
|
139
122
|
|
|
140
|
-
The build plus Preview-readiness deadline is 150 seconds.
|
|
141
|
-
|
|
142
|
-
`GET /.forgeax/preview-health`
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
release and fresh instance ID, then reads the served `forgeax-dist.json` and requires
|
|
146
|
-
its SHA-256 to equal the build it just produced.
|
|
123
|
+
The build plus Preview-readiness deadline is 150 seconds. Engine 0.2.1 emits
|
|
124
|
+
structured `project build` and `project preview` envelopes. Where authenticated
|
|
125
|
+
`GET /.forgeax/preview-health` is available, it must echo the canonical root,
|
|
126
|
+
exact release, build digest, and instance ID; the connector also checks the
|
|
127
|
+
served build artifact against the build it just produced.
|
|
147
128
|
|
|
148
129
|
Any build or Preview failure is an MCP `isError` result. Agents must not probe or
|
|
149
130
|
reuse an existing localhost port after a failed call: HTTP 200 is not ownership
|
|
@@ -178,107 +159,15 @@ Stop and cancellation signal only the verified owning Preview process, with a bo
|
|
|
178
159
|
TERM/KILL cleanup. Dead state is removed under the lock; a matching orphan is adopted;
|
|
179
160
|
a live unverifiable PID fails closed as `preview_ownership_unverified`.
|
|
180
161
|
|
|
181
|
-
## Asset3D
|
|
162
|
+
## Asset3D: Skill + CLI
|
|
182
163
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
164
|
+
The installed `art-3d-asset-library` Skill guides candidate selection and result use.
|
|
165
|
+
The package CLI calls the asset API directly, safely downloads Pack/GLB sources,
|
|
166
|
+
and delegates import/build/catalog identity to Engine. There is no Asset3D MCP,
|
|
167
|
+
Python Provider, per-platform bundle or legacy Skill payload.
|
|
186
168
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
npx -y @forgeax/game asset3d enable
|
|
190
|
-
|
|
191
|
-
# Office network
|
|
192
|
-
npx -y @forgeax/game asset3d enable --library ea
|
|
193
|
-
|
|
194
|
-
forgeax-game asset3d doctor --json
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
The library selection precedence is `--library`, then
|
|
198
|
-
`FORGEAX_ASSET_LIBRARY`, then `aw`. Each library selects its matching built-in
|
|
199
|
-
gateway. Gateway precedence is explicit `--base-url`, then
|
|
200
|
-
`FORGEAX_ASSET_LIBRARY_BASE_URL`, then that library's built-in service. An override
|
|
201
|
-
accepts either a gateway root or the full
|
|
202
|
-
`trpc.oasismetric.omcontentserver.http` service root. On first use, `enable` reads the
|
|
203
|
-
key with hidden TTY input. Non-interactive automation must inject
|
|
204
|
-
`FORGEAX_ASSET3D_AW_SANDBOX_KEY` from its secret store. The key is validated by the
|
|
205
|
-
Provider against the selected depot's `HybridSearch` before the command
|
|
206
|
-
reports success.
|
|
207
|
-
|
|
208
|
-
The validated key is stored in
|
|
209
|
-
`~/.forgeax/credentials/asset3d-aw.json` as an owned, non-symlink `0600` file. Project
|
|
210
|
-
`.forgeax/mcp.json` contains only the selected service URL, matching
|
|
211
|
-
`AW_API_DEPOT_NAME=aw|ea`, and the credential-file path; it never contains the key or
|
|
212
|
-
a signed asset URL. The `AW_API_*` names are the packaged Provider's legacy
|
|
213
|
-
environment contract. The Provider access check returns only the exact download
|
|
214
|
-
origins required by the sandbox. Failed validation or installation rolls back a
|
|
215
|
-
newly written credential.
|
|
216
|
-
|
|
217
|
-
The npm package carries digest-pinned Darwin arm64 and Linux x64 Provider archives
|
|
218
|
-
as inert assets. `enable` selects only the archive matching the current host and
|
|
219
|
-
reuses the exact verified Provider from
|
|
220
|
-
`~/.forgeax/providers/asset3d-search/<sha256>/`, or provisions that packaged archive
|
|
221
|
-
when the cache is absent. It never downloads Provider code from GitHub or another
|
|
222
|
-
repository. Only after Provider verification and its MCP handshake succeed does it merge the `forgeax` and
|
|
223
|
-
`asset3d-search` entries into `.forgeax/mcp.json` and project the approved Asset3D
|
|
224
|
-
workflow into the Agent hosts selected during `install`.
|
|
225
|
-
|
|
226
|
-
`enable` also registers a project-aware `asset3d-search` bridge in those hosts. The
|
|
227
|
-
bridge entry contains no project path or credential: on each new Agent session it
|
|
228
|
-
resolves the current directory's project-local Provider. In projects where Asset3D
|
|
229
|
-
has not been enabled, the bridge connects normally but advertises no tools. Restart
|
|
230
|
-
the selected Agent after the first successful `enable` so it discovers `search_asset`.
|
|
231
|
-
|
|
232
|
-
> [!IMPORTANT]
|
|
233
|
-
> Asset3D uses the shared `X-Sandbox-Key` contract. It never reads
|
|
234
|
-
> `ANTHROPIC_API_KEY` or another model-provider key. Do not pass keys as command-line
|
|
235
|
-
> arguments, commit the user credential file, or copy a key into project MCP config.
|
|
236
|
-
|
|
237
|
-
The transaction commands are normally driven by the installed Agent workflow:
|
|
238
|
-
|
|
239
|
-
```bash
|
|
240
|
-
|
|
241
|
-
forgeax-game asset3d begin --query "weathered oak tree" --json
|
|
242
|
-
# Call asset3d-search/search_asset with the exact queries and returned execution UUID.
|
|
243
|
-
# The bridge validates the transaction, injects its private output directory, and
|
|
244
|
-
# stores the exact provider result for commit:
|
|
245
|
-
forgeax-game asset3d commit --execution <uuid> --json
|
|
246
|
-
|
|
247
|
-
forgeax-game asset3d doctor --json
|
|
248
|
-
forgeax-game asset3d uninstall
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
<details>
|
|
252
|
-
<summary>Maintainer-only local bundle installation</summary>
|
|
253
|
-
|
|
254
|
-
The low-level command remains available for producing and validating platform bundle
|
|
255
|
-
artifacts. It is not the user onboarding path.
|
|
256
|
-
|
|
257
|
-
```bash
|
|
258
|
-
forgeax-game asset3d install \
|
|
259
|
-
--provider-bundle ./asset3d-search-provider-<commit>-<os>-<arch>.tar.gz \
|
|
260
|
-
--sha256 <archive-sha256> \
|
|
261
|
-
--download-origin https://<approved-download-host>:443 \
|
|
262
|
-
--aw-base-url <ea-gateway-or-service-url> \
|
|
263
|
-
--aw-credential-file /absolute/path/to/private-credential.json
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
`--catalog-base-url` remains an explicit compatibility-only adapter for the retired
|
|
267
|
-
directory service; normal users should not select it.
|
|
268
|
-
|
|
269
|
-
</details>
|
|
270
|
-
|
|
271
|
-
Provider output is checked at a 1 MiB stdin boundary. The transaction ignores
|
|
272
|
-
`downloaded_to`, accepts only declared relative manifest paths contained by its
|
|
273
|
-
private quarantine, and publishes the whole asset directory under
|
|
274
|
-
`assets/3d/ea-3d/<providerAssetId>`. It invokes only the exact released Engine CLI
|
|
275
|
-
with `asset add ... --reimport-policy semantic-only --json`, then requires
|
|
276
|
-
verify/list/inspect readback before committing provenance. Same-digest content is
|
|
277
|
-
reused only after live file and catalog checks; changed content requires `--refresh`
|
|
278
|
-
and rolls back the entire prior directory on failure.
|
|
279
|
-
|
|
280
|
-
See [docs/asset3d.md](docs/asset3d.md) for the platform, origin, ownership, recovery,
|
|
281
|
-
and evidence boundaries.
|
|
169
|
+
See [usage and configuration](docs/asset3d.md) and the
|
|
170
|
+
[capability authoring template](docs/plugin-integration-standard.md).
|
|
282
171
|
|
|
283
172
|
## Scope boundary
|
|
284
173
|
|
|
@@ -289,11 +178,4 @@ and evidence boundaries.
|
|
|
289
178
|
> acceptance gates.
|
|
290
179
|
|
|
291
180
|
See [docs/runtime.md](docs/runtime.md) for the exact artifact and lifecycle contract.
|
|
292
|
-
For
|
|
293
|
-
publish checklist, see [docs/release-0.3.4.md](docs/release-0.3.4.md). The AW-default
|
|
294
|
-
plus explicit EA environment contract was introduced in
|
|
295
|
-
[docs/release-0.3.3.md](docs/release-0.3.3.md). The original AW
|
|
296
|
-
production default is recorded in [docs/release-0.3.2.md](docs/release-0.3.2.md), authenticated Provider
|
|
297
|
-
delivery is documented in [docs/release-0.3.1.md](docs/release-0.3.1.md),
|
|
298
|
-
and the original two-command onboarding contract remains documented in
|
|
299
|
-
[docs/release-0.3.0.md](docs/release-0.3.0.md).
|
|
181
|
+
For current asset configuration and the breaking simplification, see [Asset3D](docs/asset3d.md).
|