@forgeax/game 0.3.1 → 0.3.2
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 +22 -16
- package/dist/main.js +4 -6
- package/docs/asset3d.md +5 -3
- package/docs/release-0.3.2.md +90 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -58,12 +58,14 @@ unknown non-empty directories fail closed.
|
|
|
58
58
|
> `asset3d-search` to the project. Enable it only in an already initialized project:
|
|
59
59
|
>
|
|
60
60
|
> ```bash
|
|
61
|
-
> npx -y @forgeax/game asset3d enable
|
|
61
|
+
> npx -y @forgeax/game asset3d enable
|
|
62
62
|
> ```
|
|
63
63
|
>
|
|
64
|
-
>
|
|
65
|
-
>
|
|
66
|
-
>
|
|
64
|
+
> With no override, `enable` uses the documented AW production service. Pass
|
|
65
|
+
> `--base-url <test-gateway-or-service-url>` only to select a test environment. The
|
|
66
|
+
> first enable prompts for the AW Sandbox Key with hidden input, validates it through
|
|
67
|
+
> the packaged Provider, and stores it outside the project in a private user
|
|
68
|
+
> credential file.
|
|
67
69
|
|
|
68
70
|
## Agent completion contract
|
|
69
71
|
|
|
@@ -156,20 +158,22 @@ a live unverifiable PID fails closed as `preview_ownership_unverified`.
|
|
|
156
158
|
## Asset3D installation and transaction
|
|
157
159
|
|
|
158
160
|
Asset3D is an opt-in, project-local MCP integration for AW HybridSearch. Run it only
|
|
159
|
-
after `init`, while connected to the internal network
|
|
160
|
-
|
|
161
|
+
after `init`, while connected to the internal network. The no-argument command uses
|
|
162
|
+
the documented production service:
|
|
161
163
|
|
|
162
164
|
```bash
|
|
163
|
-
npx -y @forgeax/game asset3d enable
|
|
165
|
+
npx -y @forgeax/game asset3d enable
|
|
164
166
|
forgeax-game asset3d doctor --json
|
|
165
167
|
```
|
|
166
168
|
|
|
167
|
-
|
|
168
|
-
`
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
169
|
+
The service selection precedence is explicit `--base-url`, then
|
|
170
|
+
`FORGEAX_ASSET_LIBRARY_BASE_URL`, then the built-in production service. An override
|
|
171
|
+
accepts either a gateway root or the full
|
|
172
|
+
`trpc.oasismetric.omcontentserver.http` service root. On first use, `enable` reads the
|
|
173
|
+
key with hidden TTY input. Non-interactive automation must inject
|
|
174
|
+
`FORGEAX_ASSET3D_AW_SANDBOX_KEY` from its secret store. The key is validated by the
|
|
175
|
+
Provider against the selected environment's `HybridSearch` before the command
|
|
176
|
+
reports success.
|
|
173
177
|
|
|
174
178
|
The validated key is stored in
|
|
175
179
|
`~/.forgeax/credentials/asset3d-aw.json` as an owned, non-symlink `0600` file. Project
|
|
@@ -245,6 +249,8 @@ and evidence boundaries.
|
|
|
245
249
|
> acceptance gates.
|
|
246
250
|
|
|
247
251
|
See [docs/runtime.md](docs/runtime.md) for the exact artifact and lifecycle contract.
|
|
248
|
-
For the current
|
|
249
|
-
[docs/release-0.3.
|
|
250
|
-
|
|
252
|
+
For the current production-default environment contract and maintainer publish
|
|
253
|
+
checklist, see [docs/release-0.3.2.md](docs/release-0.3.2.md). The authenticated AW
|
|
254
|
+
Provider delivery is documented in [docs/release-0.3.1.md](docs/release-0.3.1.md),
|
|
255
|
+
and the original two-command onboarding contract remains documented in
|
|
256
|
+
[docs/release-0.3.0.md](docs/release-0.3.0.md).
|
package/dist/main.js
CHANGED
|
@@ -2946,7 +2946,7 @@ var RELEASE_IDENTITY_MIME = "application/vnd.forgeax.game-release-identity+json"
|
|
|
2946
2946
|
var RELEASE_IDENTITY = Object.freeze({
|
|
2947
2947
|
schema: RELEASE_IDENTITY_SCHEMA,
|
|
2948
2948
|
gamePackage: "@forgeax/game",
|
|
2949
|
-
gameVersion: "0.3.
|
|
2949
|
+
gameVersion: "0.3.2",
|
|
2950
2950
|
gameBin: "forgeax-game",
|
|
2951
2951
|
engineSdkPackage: ENGINE_SDK_PACKAGE,
|
|
2952
2952
|
engineSdkVersion: ENGINE_VERSION,
|
|
@@ -3355,7 +3355,7 @@ function launchSpec(mode) {
|
|
|
3355
3355
|
}
|
|
3356
3356
|
return {
|
|
3357
3357
|
command: "npx",
|
|
3358
|
-
args: ["-y", "-p", "@forgeax/game@0.3.
|
|
3358
|
+
args: ["-y", "-p", "@forgeax/game@0.3.2", "forgeax-game", "mcp"]
|
|
3359
3359
|
};
|
|
3360
3360
|
}
|
|
3361
3361
|
|
|
@@ -5445,6 +5445,7 @@ import { existsSync as existsSync10 } from "node:fs";
|
|
|
5445
5445
|
import { resolve as resolve12 } from "node:path";
|
|
5446
5446
|
var AW_SERVICE_PATH = "/trpc.oasismetric.omcontentserver.http";
|
|
5447
5447
|
var ACCESS_CHECK_SCHEMA = "forgeax.asset3d-access-check/1.0.0";
|
|
5448
|
+
var DEFAULT_AW_PRODUCTION_SERVICE_ROOT = "http://lb-pl74wsqg-5wi8ujmy1fq2746r.clb.usw-tencentclb.com:8008/trpc.oasismetric.omcontentserver.http";
|
|
5448
5449
|
function normalizeAwServiceRoot(input) {
|
|
5449
5450
|
let parsed;
|
|
5450
5451
|
try {
|
|
@@ -5464,10 +5465,7 @@ function normalizeAwServiceRoot(input) {
|
|
|
5464
5465
|
return parsed.toString().replace(/\/$/, "");
|
|
5465
5466
|
}
|
|
5466
5467
|
function resolveAwServiceRoot(explicit) {
|
|
5467
|
-
const configured = explicit || process.env.FORGEAX_ASSET_LIBRARY_BASE_URL;
|
|
5468
|
-
if (!configured) {
|
|
5469
|
-
throw new Error("asset3d_base_url_required: pass --base-url <AW gateway/service URL> or set FORGEAX_ASSET_LIBRARY_BASE_URL");
|
|
5470
|
-
}
|
|
5468
|
+
const configured = explicit || process.env.FORGEAX_ASSET_LIBRARY_BASE_URL || DEFAULT_AW_PRODUCTION_SERVICE_ROOT;
|
|
5471
5469
|
return normalizeAwServiceRoot(configured);
|
|
5472
5470
|
}
|
|
5473
5471
|
function checkAwProviderAccess(options) {
|
package/docs/asset3d.md
CHANGED
|
@@ -62,9 +62,11 @@ its authority must also appear in `--download-origin`.
|
|
|
62
62
|
|
|
63
63
|
## Installation ownership
|
|
64
64
|
|
|
65
|
-
`asset3d enable`
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
`asset3d enable` uses the documented AW production service when no override is
|
|
66
|
+
present. Service selection precedence is explicit `--base-url`, then
|
|
67
|
+
`FORGEAX_ASSET_LIBRARY_BASE_URL`, then the built-in production service. Therefore a
|
|
68
|
+
test environment is contacted only when the caller supplies its gateway or service
|
|
69
|
+
URL. The first interactive run asks for the AW Sandbox Key with terminal echo
|
|
68
70
|
disabled. Automation can supply `FORGEAX_ASSET3D_AW_SANDBOX_KEY` from a secret store;
|
|
69
71
|
command-line key arguments are deliberately unsupported.
|
|
70
72
|
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# `@forgeax/game` 0.3.2 release guide
|
|
2
|
+
|
|
3
|
+
Version `0.3.2` keeps Asset3D opt-in while making the documented AW production
|
|
4
|
+
service the default selected by `asset3d enable`. Test and pre-release environments
|
|
5
|
+
remain explicit overrides.
|
|
6
|
+
|
|
7
|
+
## User contract
|
|
8
|
+
|
|
9
|
+
The ordinary setup flow is unchanged:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx -y @forgeax/game install --ide codex,cursor,claude
|
|
13
|
+
cd /path/to/a-genuinely-empty-directory
|
|
14
|
+
npx -y @forgeax/game init
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Inside an initialized project, enable production Asset3D without passing an address:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx -y @forgeax/game asset3d enable
|
|
21
|
+
npx -y @forgeax/game asset3d doctor --json
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
> [!IMPORTANT]
|
|
25
|
+
> Asset3D remains disabled until the user runs `asset3d enable`. A no-argument enable
|
|
26
|
+
> selects production; it does not make `install` or `init` contact AW.
|
|
27
|
+
|
|
28
|
+
To select a non-production environment, pass its gateway or complete service URL:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx -y @forgeax/game asset3d enable \
|
|
32
|
+
--base-url <test-gateway-or-service-url>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Environment selection
|
|
36
|
+
|
|
37
|
+
| Priority | Input | Selected environment |
|
|
38
|
+
|--:|:--|:--|
|
|
39
|
+
| 1 | `--base-url` | Explicit caller-selected service, normally test or pre-release |
|
|
40
|
+
| 2 | `FORGEAX_ASSET_LIBRARY_BASE_URL` | Automation or deployment override |
|
|
41
|
+
| 3 | No override | Documented AW production service |
|
|
42
|
+
|
|
43
|
+
The built-in production root is:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
http://lb-pl74wsqg-5wi8ujmy1fq2746r.clb.usw-tencentclb.com:8008/trpc.oasismetric.omcontentserver.http
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Every selection is normalized so `HybridSearch` is appended exactly once. The
|
|
50
|
+
selected endpoint is validated by the packaged Provider before project configuration
|
|
51
|
+
is published.
|
|
52
|
+
|
|
53
|
+
## Authentication and safety
|
|
54
|
+
|
|
55
|
+
The first enable reads an AW Sandbox Key with hidden terminal input. Automation may
|
|
56
|
+
inject `FORGEAX_ASSET3D_AW_SANDBOX_KEY` from a secret store. The plugin never accepts
|
|
57
|
+
`ANTHROPIC_API_KEY` or another model credential as an Asset3D key.
|
|
58
|
+
|
|
59
|
+
The key remains in the private user credential file. Project MCP configuration
|
|
60
|
+
contains only the selected service URL and the credential-file path. Failed access
|
|
61
|
+
validation or installation rolls back a newly written credential and leaves the
|
|
62
|
+
project disabled.
|
|
63
|
+
|
|
64
|
+
## Release gates
|
|
65
|
+
|
|
66
|
+
- [ ] Default resolution selects the exact documented production root.
|
|
67
|
+
- [ ] Explicit CLI URL overrides the environment and production default.
|
|
68
|
+
- [ ] Environment URL overrides the production default when CLI input is absent.
|
|
69
|
+
- [ ] Real production access check succeeds with a valid AW Sandbox Key.
|
|
70
|
+
- [ ] Real production `search_asset` downloads a valid GLB.
|
|
71
|
+
- [ ] Game Plugin transaction validates and commits the asset through Engine.
|
|
72
|
+
- [ ] `doctor` reports the production Provider live in a fresh installed project.
|
|
73
|
+
- [ ] Exact npm tarball and embedded Provider pass the package and secret gates.
|
|
74
|
+
- [ ] Registry-downloaded tarball matches the audited candidate.
|
|
75
|
+
|
|
76
|
+
> [!WARNING]
|
|
77
|
+
> Provider access and Engine import do not prove visible Play acceptance. If a game
|
|
78
|
+
> consumes the imported asset, verify that game separately in its owned Preview and
|
|
79
|
+
> report the Play result as a distinct gate.
|
|
80
|
+
|
|
81
|
+
## Maintainer commands
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
bun run typecheck
|
|
85
|
+
bun test test/*.test.ts
|
|
86
|
+
FORGEAX_ASSET3D_PROVIDER_BUNDLE=<audited-provider-archive> bun run build
|
|
87
|
+
FORGEAX_ASSET3D_PROVIDER_BUNDLE=<audited-provider-archive> \
|
|
88
|
+
npm pack --ignore-scripts --json --pack-destination <audited-directory>
|
|
89
|
+
bun scripts/check-package-artifact.ts <audited-directory>/forgeax-game-0.3.2.tgz
|
|
90
|
+
```
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"packageManager": "bun@1.3.14",
|
|
3
3
|
"name": "@forgeax/game",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.2",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"description": "@forgeax/game — an MCP/CLI connector for exact released ForgeaX Engine games and Engine-owned Preview.",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"docs/asset3d.md",
|
|
24
24
|
"docs/release-0.3.0.md",
|
|
25
25
|
"docs/release-0.3.1.md",
|
|
26
|
+
"docs/release-0.3.2.md",
|
|
26
27
|
"README.md"
|
|
27
28
|
],
|
|
28
29
|
"scripts": {
|