wave3d-agent-sdk 0.2.6 → 0.2.8
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 +6 -6
- package/dist/cli.js +33 -7
- package/dist/sdk/README.md +3 -3
- package/dist/sdk/manifest.json +19 -19
- package/dist/sdk/wave-engine-sdk-2026-06-17.1.p4vUxjKn3o8fS2orbJ9I0RNBdO0G6_Dg.zip +0 -0
- package/package.json +1 -1
- package/dist/sdk/wave-engine-sdk-2026-06-17.1.kI2raEAL7AhgtcsCcMivfqFC1RQgmR7J.zip +0 -0
package/README.md
CHANGED
|
@@ -21,19 +21,19 @@ Vocabulary:
|
|
|
21
21
|
- Project: user workspace content. Reading a project is not opening/replacing live workspace.
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
npx -y wave3d-agent-sdk@0.2.
|
|
24
|
+
npx -y wave3d-agent-sdk@0.2.8 start
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
After Copy to Agent, restart stale SDK processes with MCP_TOKEN preserved as the local pairing secret. Keep it hidden:
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
WAVE3D_MCP_TOKEN="$MCP_TOKEN" npx -y wave3d-agent-sdk@0.2.
|
|
30
|
+
WAVE3D_MCP_TOKEN="$MCP_TOKEN" npx -y wave3d-agent-sdk@0.2.8 start
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
Check SDK build before trusting a running SDK process:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
npx -y wave3d-agent-sdk@0.2.
|
|
36
|
+
npx -y wave3d-agent-sdk@0.2.8 --version
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
The package bundles the WaveEngine SDK lookup corpus. No normal session needs a separate protected zip download.
|
|
@@ -43,7 +43,7 @@ The package bundles the WaveEngine SDK lookup corpus. No normal session needs a
|
|
|
43
43
|
Wave Studio Copy to Agent defaults same-machine live MCP transport to this SDK:
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
npx -y wave3d-agent-sdk@0.2.
|
|
46
|
+
npx -y wave3d-agent-sdk@0.2.8 start
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
Agents choose topology first:
|
|
@@ -58,13 +58,13 @@ Use `MCP_HTTP_GATEWAY_FALLBACK_URL` only for topology mismatch, remote/sandboxed
|
|
|
58
58
|
For unfamiliar authoring, use the local SDK tools:
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
npx -y wave3d-agent-sdk@0.2.
|
|
61
|
+
npx -y wave3d-agent-sdk@0.2.8 cache search "continuous left rotation"
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
`cache refresh` without MCP arguments reinstalls the bundled SDK into `~/.wave3d/agent-cache`:
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
npx -y wave3d-agent-sdk@0.2.
|
|
67
|
+
npx -y wave3d-agent-sdk@0.2.8 cache refresh
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
Old `cache refresh --mcp-url <url> --token <token>` arguments are ignored. Normal users update the npm package; no separate zip download exists.
|
package/dist/cli.js
CHANGED
|
@@ -42483,8 +42483,8 @@ function normalizeWaveGenieAssetUploadRequest(request) {
|
|
|
42483
42483
|
|
|
42484
42484
|
// ../../src/lib/waveStudio/aiAssist/bridge/localAgentSdkContract.ts
|
|
42485
42485
|
var WAVE3D_AGENT_SDK_PACKAGE_NAME = "wave3d-agent-sdk";
|
|
42486
|
-
var WAVE3D_AGENT_SDK_REQUIRED_VERSION = "0.2.
|
|
42487
|
-
var WAVE3D_AGENT_SDK_REQUIRED_BUILD = "agent-sdk-20260620.
|
|
42486
|
+
var WAVE3D_AGENT_SDK_REQUIRED_VERSION = "0.2.8";
|
|
42487
|
+
var WAVE3D_AGENT_SDK_REQUIRED_BUILD = "agent-sdk-20260620.3";
|
|
42488
42488
|
var WAVE3D_AGENT_SDK_PACKAGE_SPEC = `${WAVE3D_AGENT_SDK_PACKAGE_NAME}@${WAVE3D_AGENT_SDK_REQUIRED_VERSION}`;
|
|
42489
42489
|
var WAVE3D_AGENT_SDK_START_COMMAND = `npx -y ${WAVE3D_AGENT_SDK_PACKAGE_SPEC} start`;
|
|
42490
42490
|
var WAVE3D_AGENT_SDK_TOKEN_ENV_VAR = "WAVE3D_MCP_TOKEN";
|
|
@@ -44416,7 +44416,7 @@ var WAVE_MCP_AGENT_BRIEF = [
|
|
|
44416
44416
|
"VFS hashes: simple edit tools auto-resolve the latest mirror `contentHash`; pass `baseHash` only when you already have it or when using advanced `apply_wave_patch`. Always inspect `changedFiles`, `changedPaths`, `partial`, and `skippedOperations` after edits.",
|
|
44417
44417
|
"VFS modules: scene-root modules and their owned helpers run inside the Studio authoring context, but helpers should stay pure or parameterized. Put live object ownership in scene-root/feature files, not shared helpers.",
|
|
44418
44418
|
'VFS HTML sketches: for diagram/chart/doc-sketch requests, create or edit an exact `.html` file with Studio VFS tools. Mermaid renders from `<div class="mermaid">flowchart TD ...</div>` when that HTML file is active in the editor/coding pane; HTML sketches must never replace the live engine preview iframe. Do not put Mermaid in markdown fences unless user specifically wants markdown text.',
|
|
44419
|
-
'VFS hot reload ownership: Studio hot reload targets the active/open edited file when safe. Editing `/main.ts` reloads the main graph; editing a scene-root module reloads that root; bootstrap/scene registry/assets/network/ambiguous helper surfaces escalate. In multi-file projects, standalone `hot_reload_wave_preview` follows the active Studio editor file, so do not expect it to reload an arbitrary unopened module by path. Put heavy world loading in bootstrap or a coarse world module. For intentional cross-module live entities, the owner module calls `waveStudio.exportEntity("Name", entity)` and importer modules call `waveStudio.importEntity<T>("Name")`; Studio restores the exported baseline and replays active importer overlays during source hot reload. Source execution order is dependency-driven: exporter roots run before importer roots; an exporter root runs before `main.ts` when main imports it; importer overlays run after exporter/main baseline. Entity names must be static string literals, unique, and acyclic or run/hot reload stops before execution. Keep shared helpers pure or parameterized.',
|
|
44419
|
+
'VFS hot reload ownership: Studio hot reload targets the active/open edited file when safe. Editing `/main.ts` reloads the main graph; editing a scene-root module reloads that root; bootstrap/scene registry/assets/network/ambiguous helper surfaces escalate. In multi-file projects, standalone `hot_reload_wave_preview` follows the active Studio editor file, so do not expect it to reload an arbitrary unopened module by path. Put heavy world loading in bootstrap or a coarse world module. If authored UI in `main.ts` changes bootstrap/world-provider state, store the state and call `waveStudio.reloadPreview({ reason })`; do not call `myScene.hotReload(...)` from Studio-authored code because it bypasses Studio VFS/package/source-patch orchestration. For intentional cross-module live entities, the owner module calls `waveStudio.exportEntity("Name", entity)` and importer modules call `waveStudio.importEntity<T>("Name")`; Studio restores the exported baseline and replays active importer overlays during source hot reload. Source execution order is dependency-driven: exporter roots run before importer roots; an exporter root runs before `main.ts` when main imports it; importer overlays run after exporter/main baseline. Entity names must be static string literals, unique, and acyclic or run/hot reload stops before execution. Keep shared helpers pure or parameterized.',
|
|
44420
44420
|
"Assets: when quoting or passing an existing asset, use typed bare refs in main files: `models.X`, `textures.X`, `materials.X`, `audios.X`, `hdr.X`, `cubeMaps.X`, `animations.X`, etc. Do not paste raw paths or edit Studio-managed generated files just to register assets. If the exact ref is not already visible, call category-first asset discovery (`find_wave_assets_by_category`, alias `list_wave_assets_by_category`, alias `search_wave_assets_by_category`, or tolerant `list_wave_assets`) with required `category` from user intent, semantic `query`, and small `limit` before editing code; category-filtered results can still be capped/truncated, so refine query before concluding absence. Use `list_wave_explorer_assets` only for uploaded library metadata, rename/delete, URL, path, size, or display/ref-name management.",
|
|
44421
44421
|
"Asset authoring facade split: typed refs quote existing assets; `waveMaterial` authors material handles; `assetManager` is only for exact asset-pipeline/generated-asset APIs that a local SDK skill or API lookup names, such as SDF surfaces or surface ribbons. Do not treat `assetManager` as the default creative facade for materials or normal asset arguments.",
|
|
44422
44422
|
"Material authoring: when creating, configuring, forking, or intentionally editing material handles, route to `wave.material.authoring` and start from `waveMaterial` (`createWater`, `createGrid`, `createSplatMaterial`, `createFromAsset`, `editAsset`). If a material handle later needs runtime sync, `assetManager` may be passed as the sync target; it is still not the authoring root.",
|
|
@@ -44441,7 +44441,7 @@ var WAVE_MCP_AUTHORING_GLOBALS_GUIDE = [
|
|
|
44441
44441
|
"- Colors/materials/fx helpers: `COLOR`, `PALETTE`, `waveCOLOR`, `waveMaterial`, `shaderUniform`, `waveFx`, `waveFxPresets`, `FxAnchor`, `FxCondition`.",
|
|
44442
44442
|
"- Controller movement helpers: `waveKinematicActor`, `netKinematicActor`, `KinematicHumanoidMovementState`, `KinematicVehicleMovementState`, and `KinematicFlightMovementState`. Use actor-level `.asHumanoid(...)`, `.asVehicle(...)`, or `.asFlight(...)` for player/controller movement.",
|
|
44443
44443
|
"- Asset maps: use category-first refs returned by `find_wave_assets_by_category`, commonly `models`, `gaussianSplats`, `animations`, `materials`, `guis`, `textures`, `audios`, `instruments`, `videos`, `hdr`, `fonts`, `serializedData`, `terrains`, `fx`, and `particles`.",
|
|
44444
|
-
"- Scene/runtime handles: prefer `myScene` for scene composition and `waveStudio` for Studio operations. `assetManager` is available, but use it only when an exact skill/API names an asset-pipeline or generated-asset factory; do not use it as the default facade for existing asset refs or material authoring. Use lower-level `ctx`, `engine`, or `scene` only when existing code or an exact API requires them.",
|
|
44444
|
+
"- Scene/runtime handles: prefer `myScene` for scene composition and `waveStudio` for Studio operations. If authored UI changes bootstrap/world-provider state and needs the Studio preview to rebuild, call `waveStudio.reloadPreview({ reason })`, not `myScene.hotReload(...)`. `assetManager` is available, but use it only when an exact skill/API names an asset-pipeline or generated-asset factory; do not use it as the default facade for existing asset refs or material authoring. Use lower-level `ctx`, `engine`, or `scene` only when existing code or an exact API requires them.",
|
|
44445
44445
|
"- Authoring systems/presets: `waveEventBus`, `waveRig`, `waveValueCurve`, `waveValueCurvePresets`, `waveMotionSignal`, `waveParam`, `WaveParam`, `WaveChoice`, `prefabModels`, `effectPrefabs`, and prefab helpers such as `rocketPrefab`.",
|
|
44446
44446
|
"- Lowercase constructors: `prop`, `marker`, `sphere`, `point`, `cube`, `box`, `cylinder`, `capsule`, `cone`, `torus`, `plane`, `ground`, `line`, `arc`, `path`, and related shape helpers.",
|
|
44447
44447
|
"- Type names are not import paths. If the handbook shows a type like `TransformVerbMode` or `WaveRateUnit`, look for the matching bare runtime value such as `Animate` or `DegreesPerSecond` before writing code. Transform `Snapshot` calls return a snapshot builder; call `.take()` before passing the pose to `transitionTo(...)`.",
|
|
@@ -44659,6 +44659,7 @@ var WAVE_MCP_STUDIO_TOOL_GUIDE = [
|
|
|
44659
44659
|
"- `waveStudio.saveFor3dPrinting(target, options?)`: save export-friendly model.",
|
|
44660
44660
|
"- `waveStudio.saveMaterial(request)`: save authored material asset.",
|
|
44661
44661
|
"- `waveStudio.bakeTerrainMaterial(request)`: bake terrain material textures.",
|
|
44662
|
+
"- `waveStudio.reloadPreview({ reason? })`: request the Wave Studio toolbar-style reload path from authored code. Use this when a UI authored in `main.ts` changes Studio/bootstrap-backed state such as active city/world provider and must re-run the Studio preview package. Do not call `myScene.hotReload(...)` from Studio-authored code for this; that bypasses Studio VFS/package/source-patch orchestration.",
|
|
44662
44663
|
"- `waveStudio.exportEntity(name, entity)`: declare a live entity owned by the current source module for intentional modular reuse. `name` must be a static string literal and unique across runnable roots.",
|
|
44663
44664
|
"- `waveStudio.importEntity<T>(name)`: import an exported live entity into the current source module; Studio restores the exporter baseline and prunes/replays importer callbacks/overlays during source hot reload. Studio orders source roots by export/import dependencies: exporter before importer; exporter before `main.ts` if main imports it; overlay importers after exporter/main baseline. Missing, duplicate, dynamic, or cyclic entity names stop run/hot reload before execution.",
|
|
44664
44665
|
'- MCP command result rule: poll `get_wave_command_result({ requestId })` only when the previous tool response includes `status:"pending"` plus `requestId`. HTTP Gateway browser-backed tools may return pending and need that poll. WaveEngine Agent SDK browser-backed tools wait directly and return final results; its `get_wave_command_result` is a catalog-parity no-op unless a pending result was explicitly returned.',
|
|
@@ -46192,6 +46193,9 @@ var HOT_RELOAD_UNSAFE_SCENE_EVENT_CALLBACKS = /* @__PURE__ */ new Map([
|
|
|
46192
46193
|
["on", "myScene.on(...) is scene-scoped, but not authored-epoch scoped. It is cleared on scene transition, not on every preserve-scene hotreload. Use Wave-owned input/entity callbacks, or wait for a scoped Wave scene-event authoring API."],
|
|
46193
46194
|
["once", "myScene.once(...) is scene-scoped, but an unfired one-shot handler can survive preserve-scene hotreload. Use Wave-owned input/entity callbacks, or wait for a scoped Wave scene-event authoring API."]
|
|
46194
46195
|
]);
|
|
46196
|
+
var HOT_RELOAD_FORBIDDEN_STUDIO_SCENE_METHODS = /* @__PURE__ */ new Map([
|
|
46197
|
+
["hotReload", 'Studio-authored code must not call myScene.hotReload(...). Use waveStudio.reloadPreview({ reason: "..." }) so Wave Studio can flush VFS, rebuild the project package/bootstrap, sync assets, choose the correct reload tier, and return diagnostics.']
|
|
46198
|
+
]);
|
|
46195
46199
|
var HOT_RELOAD_UNSAFE_CONSTRUCTORS = /* @__PURE__ */ new Map([
|
|
46196
46200
|
["Promise", "new Promise(...) is not hotreload-safe because it creates unmanaged callback closures. Use awaitable Wave APIs instead."],
|
|
46197
46201
|
["MutationObserver", "DOM observers are not hotreload-safe. Use an engine-owned wrapper that can be disposed by hotreload."],
|
|
@@ -46279,6 +46283,7 @@ function readPropertyReceiverPath(code, tokenStart) {
|
|
|
46279
46283
|
while (index >= 0 && /\s/.test(code[index] ?? "")) index -= 1;
|
|
46280
46284
|
if (code[index] !== ".") return "";
|
|
46281
46285
|
index -= 1;
|
|
46286
|
+
if (code[index] === "?") index -= 1;
|
|
46282
46287
|
while (index >= 0 && /\s/.test(code[index] ?? "")) index -= 1;
|
|
46283
46288
|
const endIndex = index + 1;
|
|
46284
46289
|
while (index >= 0 && (isIdentifierPartChar(code[index]) || code[index] === "." || /\s/.test(code[index] ?? ""))) {
|
|
@@ -46328,6 +46333,9 @@ function skipQuotedRuntimeLiteral(code, startIndex, quote) {
|
|
|
46328
46333
|
return index;
|
|
46329
46334
|
}
|
|
46330
46335
|
function buildHotReloadUnsafeMessage(params) {
|
|
46336
|
+
if (params.severity === "error") {
|
|
46337
|
+
return `${RUNTIME_HOT_RELOAD_SAFETY_WARNING_PREFIX} ERROR: forbidden Studio reload API '${params.token}' at ${params.path}:${params.line}:${params.column}. ${params.guidance}`;
|
|
46338
|
+
}
|
|
46331
46339
|
return `${RUNTIME_HOT_RELOAD_SAFETY_WARNING_PREFIX} WARNING: unsafe unmanaged callback API '${params.token}' at ${params.path}:${params.line}:${params.column}. Code will still run, but this callback is registered outside Wave's authored callback registry, so hotreload cannot unregister it and the closure can retain old scene/entity/model graphs. Memory leak risk. Recommendation: ${params.guidance}`;
|
|
46332
46340
|
}
|
|
46333
46341
|
function reportHotReloadUnsafeUsage(params) {
|
|
@@ -46336,6 +46344,7 @@ function reportHotReloadUnsafeUsage(params) {
|
|
|
46336
46344
|
const key = `${params.path}:${line}:${column}:${params.token}`;
|
|
46337
46345
|
if (params.reported.has(key)) return;
|
|
46338
46346
|
params.reported.add(key);
|
|
46347
|
+
const severity = params.severity ?? "warning";
|
|
46339
46348
|
params.diagnostics.push({
|
|
46340
46349
|
path: params.path,
|
|
46341
46350
|
token: params.token,
|
|
@@ -46343,12 +46352,14 @@ function reportHotReloadUnsafeUsage(params) {
|
|
|
46343
46352
|
length: params.token.length,
|
|
46344
46353
|
line,
|
|
46345
46354
|
column,
|
|
46355
|
+
severity,
|
|
46346
46356
|
guidance: params.guidance,
|
|
46347
46357
|
message: buildHotReloadUnsafeMessage({
|
|
46348
46358
|
path: params.path,
|
|
46349
46359
|
token: params.token,
|
|
46350
46360
|
line,
|
|
46351
46361
|
column,
|
|
46362
|
+
severity,
|
|
46352
46363
|
guidance: params.guidance
|
|
46353
46364
|
})
|
|
46354
46365
|
});
|
|
@@ -46393,7 +46404,8 @@ function collectRuntimeHotReloadSafetyDiagnostics(path5, code, limit = HOT_RELOA
|
|
|
46393
46404
|
const nextNonWhitespace = code[nextNonWhitespaceIndex] ?? "";
|
|
46394
46405
|
const previousChar = readPreviousNonWhitespaceChar(code, tokenStart);
|
|
46395
46406
|
const previousIdentifier = readPreviousIdentifier(code, tokenStart);
|
|
46396
|
-
const
|
|
46407
|
+
const optionalCallParenIndex = nextNonWhitespace === "?" && code[nextNonWhitespaceIndex + 1] === "." ? readNextNonWhitespaceIndex(code, nextNonWhitespaceIndex + 2) : -1;
|
|
46408
|
+
const isCall = nextNonWhitespace === "(" || optionalCallParenIndex >= 0 && code[optionalCallParenIndex] === "(";
|
|
46397
46409
|
const receiverPath = previousChar === "." ? readPropertyReceiverPath(code, tokenStart) : "";
|
|
46398
46410
|
const globalGuidance = HOT_RELOAD_UNSAFE_GLOBAL_CALLBACKS.get(token);
|
|
46399
46411
|
if (globalGuidance) {
|
|
@@ -46420,6 +46432,20 @@ function collectRuntimeHotReloadSafetyDiagnostics(path5, code, limit = HOT_RELOA
|
|
|
46420
46432
|
reportHotReloadUnsafeUsage({ code, path: path5, token, offset: tokenStart, guidance: sceneEventGuidance, diagnostics, reported });
|
|
46421
46433
|
continue;
|
|
46422
46434
|
}
|
|
46435
|
+
const forbiddenStudioSceneMethodGuidance = HOT_RELOAD_FORBIDDEN_STUDIO_SCENE_METHODS.get(token);
|
|
46436
|
+
if (forbiddenStudioSceneMethodGuidance && previousChar === "." && isCall && isWaveSceneEventReceiverPath(receiverPath)) {
|
|
46437
|
+
reportHotReloadUnsafeUsage({
|
|
46438
|
+
code,
|
|
46439
|
+
path: path5,
|
|
46440
|
+
token,
|
|
46441
|
+
offset: tokenStart,
|
|
46442
|
+
severity: "error",
|
|
46443
|
+
guidance: forbiddenStudioSceneMethodGuidance,
|
|
46444
|
+
diagnostics,
|
|
46445
|
+
reported
|
|
46446
|
+
});
|
|
46447
|
+
continue;
|
|
46448
|
+
}
|
|
46423
46449
|
const constructorGuidance = HOT_RELOAD_UNSAFE_CONSTRUCTORS.get(token);
|
|
46424
46450
|
if (constructorGuidance && (previousIdentifier === "new" || previousChar === "." && isCall)) {
|
|
46425
46451
|
reportHotReloadUnsafeUsage({ code, path: path5, token, offset: tokenStart, guidance: constructorGuidance, diagnostics, reported });
|
|
@@ -49518,11 +49544,11 @@ function getReadToolDefinitions() {
|
|
|
49518
49544
|
properties: {
|
|
49519
49545
|
expectedVersion: {
|
|
49520
49546
|
type: "string",
|
|
49521
|
-
description: "Expected SDK version from Copy-to-Agent
|
|
49547
|
+
description: "Expected SDK version from the Copy-to-Agent self-check step."
|
|
49522
49548
|
},
|
|
49523
49549
|
expectedBuildHash: {
|
|
49524
49550
|
type: "string",
|
|
49525
|
-
description: "Expected SDK build hash from Copy-to-Agent
|
|
49551
|
+
description: "Expected SDK build hash from the Copy-to-Agent self-check step."
|
|
49526
49552
|
}
|
|
49527
49553
|
},
|
|
49528
49554
|
required: ["expectedVersion", "expectedBuildHash"],
|
package/dist/sdk/README.md
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
Bundled public-safe WaveEngine SDK lookup cache for wave3d-agent-sdk.
|
|
4
4
|
Generated from sanitized public API/skill corpus during package build.
|
|
5
5
|
|
|
6
|
-
cacheKey: 2026-06-17.1.
|
|
7
|
-
bundleHash:
|
|
8
|
-
zip: wave-engine-sdk-2026-06-17.1.
|
|
6
|
+
cacheKey: 2026-06-17.1.p4vUxjKn3o8fS2orbJ9I0RNBdO0G6_Dg
|
|
7
|
+
bundleHash: p4vUxjKn3o8fS2orbJ9I0RNBdO0G6_Dg
|
|
8
|
+
zip: wave-engine-sdk-2026-06-17.1.p4vUxjKn3o8fS2orbJ9I0RNBdO0G6_Dg.zip
|
package/dist/sdk/manifest.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2026-06-17.1.
|
|
2
|
+
"version": "2026-06-17.1.p4vUxjKn3o8fS2orbJ9I0RNBdO0G6_Dg",
|
|
3
3
|
"formatVersion": "2026-06-17.1",
|
|
4
|
-
"cacheKey": "2026-06-17.1.
|
|
5
|
-
"bundleFileName": "wave-engine-sdk-2026-06-17.1.
|
|
6
|
-
"bundleHash": "
|
|
4
|
+
"cacheKey": "2026-06-17.1.p4vUxjKn3o8fS2orbJ9I0RNBdO0G6_Dg",
|
|
5
|
+
"bundleFileName": "wave-engine-sdk-2026-06-17.1.p4vUxjKn3o8fS2orbJ9I0RNBdO0G6_Dg.zip",
|
|
6
|
+
"bundleHash": "p4vUxjKn3o8fS2orbJ9I0RNBdO0G6_Dg",
|
|
7
7
|
"generatedAt": "2026-06-06T00:00:00.000Z",
|
|
8
8
|
"sourceVersions": {
|
|
9
9
|
"onboarding": {
|
|
10
10
|
"promptVersion": "2026-06-15.2",
|
|
11
|
-
"promptHash": "
|
|
11
|
+
"promptHash": "S1t3TsiBEK-L5oyOlh3M-2aFvaLyaZ_u"
|
|
12
12
|
},
|
|
13
13
|
"apiHandbook": {
|
|
14
14
|
"version": "1",
|
|
15
|
-
"contentHash": "
|
|
15
|
+
"contentHash": "edf117cbd2b09857"
|
|
16
16
|
},
|
|
17
|
-
"waveSkillCorpusHash": "
|
|
18
|
-
"sdkLookupCorpusHash": "
|
|
17
|
+
"waveSkillCorpusHash": "nhg-WfsotIdN1pRO41g97bff6RrKujrN",
|
|
18
|
+
"sdkLookupCorpusHash": "PIjMZyPz-ALuRLJcccp75RQqxQAi3oDV"
|
|
19
19
|
},
|
|
20
20
|
"cacheContract": {
|
|
21
21
|
"llmContextCacheOnly": [
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
"searchDocuments"
|
|
36
36
|
],
|
|
37
37
|
"rule": "Priority 1 always-on sections must stay in LLM chat/system context. The WaveEngine SDK local cache is public-safe retrieval data, never the only memory for core policy.",
|
|
38
|
-
"defaultRefreshCommand": "npx -y wave3d-agent-sdk@0.2.
|
|
38
|
+
"defaultRefreshCommand": "npx -y wave3d-agent-sdk@0.2.8 cache refresh",
|
|
39
39
|
"refreshRule": "When using WaveEngine SDK local cache, compare cacheKey, bundleHash, and sourceVersions before trusting local lookup. If any value differs, update the SDK package or reinstall its bundled SDK cache and rebuild local indexes. Do not fetch a remote SDK zip.",
|
|
40
40
|
"onlineFallback": "HTTP Gateway does not provide cloud API lookup. If local Node/npm or cache is refused/unavailable, use only concrete Studio operations and already-known code; repair the local WaveEngine SDK before unfamiliar API authoring."
|
|
41
41
|
},
|
|
42
42
|
"corpus": {
|
|
43
43
|
"skillCount": 67,
|
|
44
|
-
"apiEntryCount":
|
|
45
|
-
"apiMethodGroupCount":
|
|
44
|
+
"apiEntryCount": 4201,
|
|
45
|
+
"apiMethodGroupCount": 4480,
|
|
46
46
|
"apiInheritanceCount": 735
|
|
47
47
|
},
|
|
48
48
|
"files": [
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"mediaType": "application/json",
|
|
52
52
|
"role": "lookup-guide",
|
|
53
53
|
"bytes": 1310,
|
|
54
|
-
"hash": "
|
|
54
|
+
"hash": "_bPlWbDd1MsHtcdVNv44Gh_XgmdtIYHw"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"path": "skills/wave-skills.jsonl",
|
|
@@ -78,15 +78,15 @@
|
|
|
78
78
|
"path": "api/entries.jsonl",
|
|
79
79
|
"mediaType": "application/jsonl",
|
|
80
80
|
"role": "api-corpus",
|
|
81
|
-
"bytes":
|
|
82
|
-
"hash": "
|
|
81
|
+
"bytes": 4169568,
|
|
82
|
+
"hash": "jyGCEHeyJe5VSmLHEBzGc-ehK02T4Im_"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"path": "api/method-groups.jsonl",
|
|
86
86
|
"mediaType": "application/jsonl",
|
|
87
87
|
"role": "api-corpus",
|
|
88
|
-
"bytes":
|
|
89
|
-
"hash": "
|
|
88
|
+
"bytes": 1400372,
|
|
89
|
+
"hash": "ddN0Bqv0ue3BIPuzp4fh3zBtTlUzSfjJ"
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
"path": "api/inheritance.jsonl",
|
|
@@ -100,14 +100,14 @@
|
|
|
100
100
|
"mediaType": "application/json",
|
|
101
101
|
"role": "api-corpus",
|
|
102
102
|
"bytes": 219,
|
|
103
|
-
"hash": "
|
|
103
|
+
"hash": "63XcQbDuL3ZswbTi4kAzD_Jt04FXIONX"
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
"path": "search/search-documents.jsonl",
|
|
107
107
|
"mediaType": "application/jsonl",
|
|
108
108
|
"role": "search-index",
|
|
109
|
-
"bytes":
|
|
110
|
-
"hash": "
|
|
109
|
+
"bytes": 3917846,
|
|
110
|
+
"hash": "AnlOOjUCNs-BOUdLrYzW5ugcAEnTA7JF"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"path": "README.md",
|
|
Binary file
|
package/package.json
CHANGED