@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 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 --base-url <aw-gateway-or-service-url>
61
+ > npx -y @forgeax/game asset3d enable
62
62
  > ```
63
63
  >
64
- > The first enable prompts for the AW Sandbox Key with hidden input, validates it
65
- > through the packaged Provider, and stores it outside the project in a private
66
- > user credential file.
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, using the gateway or service
160
- URL supplied by the asset-platform administrator:
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 --base-url <aw-gateway-or-service-url>
165
+ npx -y @forgeax/game asset3d enable
164
166
  forgeax-game asset3d doctor --json
165
167
  ```
166
168
 
167
- `--base-url` accepts either the gateway root or the full
168
- `trpc.oasismetric.omcontentserver.http` service root. It can instead be supplied by
169
- `FORGEAX_ASSET_LIBRARY_BASE_URL`. On first use, `enable` reads the key with hidden TTY
170
- input. Non-interactive automation must inject `FORGEAX_ASSET3D_AW_SANDBOX_KEY` from
171
- its secret store. The key is validated by the Provider against `HybridSearch` before
172
- the command reports success.
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 Asset3D authentication update and maintainer publish checklist, see
249
- [docs/release-0.3.1.md](docs/release-0.3.1.md). The original two-command onboarding
250
- contract remains documented in [docs/release-0.3.0.md](docs/release-0.3.0.md).
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.1",
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.1", "forgeax-game", "mcp"]
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` requires an AW gateway or full service URL through `--base-url` or
66
- `FORGEAX_ASSET_LIBRARY_BASE_URL`. No private-network endpoint is compiled into the
67
- package. The first interactive run asks for the AW Sandbox Key with terminal echo
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.1",
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": {