@linxin666/dsh-pet 0.2.2 → 0.2.4
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.i18n.yaml +2 -2
- package/README.md +129 -3
- package/README.zh.md +129 -3
- package/assets/decorations/whale/decoration.json +20 -0
- package/assets/decorations/whale/whale-frames.png +0 -0
- package/assets/whale/pet.json +169 -20
- package/assets/whale-refined/pet.json +17 -2
- package/contracts/pet-manifest-v2.schema.json +281 -0
- package/contracts/status-decoration-v1.schema.json +144 -0
- package/contracts/voice-pack-v1.schema.json +234 -0
- package/lib/client.js +581 -38
- package/lib/client.js.map +1 -1
- package/lib/index.js +1684 -59
- package/lib/live2d-vendor.js +995 -0
- package/lib/live2d-vendor.js.map +1 -0
- package/lib/types/chatter.d.ts +61 -3
- package/lib/types/chatter.d.ts.map +1 -1
- package/lib/types/chatter.js +71 -12
- package/lib/types/client/PetDockEntry.d.ts.map +1 -1
- package/lib/types/client/PetDockEntry.js +2 -1
- package/lib/types/client/PetSettingsCard.d.ts +14 -0
- package/lib/types/client/PetSettingsCard.d.ts.map +1 -1
- package/lib/types/client/PetSettingsCard.js +24 -1
- package/lib/types/client/PetSprite.d.ts +7 -1
- package/lib/types/client/PetSprite.d.ts.map +1 -1
- package/lib/types/client/PetSprite.js +120 -12
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +5 -0
- package/lib/types/client/locales.d.ts +14 -0
- package/lib/types/client/locales.d.ts.map +1 -1
- package/lib/types/client/locales.js +14 -0
- package/lib/types/client/phase-stream.d.ts +22 -0
- package/lib/types/client/phase-stream.d.ts.map +1 -0
- package/lib/types/client/phase-stream.js +28 -0
- package/lib/types/client/renderers/PetRendererSwitch.d.ts +25 -0
- package/lib/types/client/renderers/PetRendererSwitch.d.ts.map +1 -0
- package/lib/types/client/renderers/PetRendererSwitch.js +24 -0
- package/lib/types/client/renderers/live2d/Live2dVisualMount.d.ts +22 -0
- package/lib/types/client/renderers/live2d/Live2dVisualMount.d.ts.map +1 -0
- package/lib/types/client/renderers/live2d/Live2dVisualMount.js +75 -0
- package/lib/types/client/renderers/live2d/runtime.d.ts +89 -0
- package/lib/types/client/renderers/live2d/runtime.d.ts.map +1 -0
- package/lib/types/client/renderers/live2d/runtime.js +63 -0
- package/lib/types/client/renderers/live2d/vendor-entry.d.ts +15 -0
- package/lib/types/client/renderers/live2d/vendor-entry.d.ts.map +1 -0
- package/lib/types/client/renderers/live2d/vendor-entry.js +14 -0
- package/lib/types/client/renderers/live2d.d.ts +52 -0
- package/lib/types/client/renderers/live2d.d.ts.map +1 -0
- package/lib/types/client/renderers/live2d.js +192 -0
- package/lib/types/client/renderers/registry.d.ts +32 -0
- package/lib/types/client/renderers/registry.d.ts.map +1 -0
- package/lib/types/client/renderers/registry.js +49 -0
- package/lib/types/client/settings-form.d.ts.map +1 -1
- package/lib/types/client/settings-form.js +9 -6
- package/lib/types/contracts/renderer.d.ts +50 -0
- package/lib/types/contracts/renderer.d.ts.map +1 -0
- package/lib/types/contracts/renderer.js +15 -0
- package/lib/types/contracts/status-decoration.d.ts +85 -0
- package/lib/types/contracts/status-decoration.d.ts.map +1 -0
- package/lib/types/contracts/status-decoration.js +21 -0
- package/lib/types/decoration.d.ts +39 -0
- package/lib/types/decoration.d.ts.map +1 -0
- package/lib/types/decoration.js +210 -0
- package/lib/types/event-projection.d.ts +8 -3
- package/lib/types/event-projection.d.ts.map +1 -1
- package/lib/types/event-projection.js +9 -4
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +2 -0
- package/lib/types/manifest-v2.d.ts +129 -0
- package/lib/types/manifest-v2.d.ts.map +1 -0
- package/lib/types/manifest-v2.js +387 -0
- package/lib/types/model3.d.ts +26 -0
- package/lib/types/model3.d.ts.map +1 -0
- package/lib/types/model3.js +96 -0
- package/lib/types/registry.d.ts +112 -5
- package/lib/types/registry.d.ts.map +1 -1
- package/lib/types/registry.js +395 -38
- package/lib/types/routes.d.ts +39 -2
- package/lib/types/routes.d.ts.map +1 -1
- package/lib/types/routes.js +312 -13
- package/lib/types/service.d.ts +38 -1
- package/lib/types/service.d.ts.map +1 -1
- package/lib/types/service.js +46 -3
- package/lib/types/voice-pack.d.ts +98 -0
- package/lib/types/voice-pack.d.ts.map +1 -0
- package/lib/types/voice-pack.js +384 -0
- package/package.json +13 -10
- package/src/chatter.test.ts +89 -2
- package/src/chatter.ts +120 -14
- package/src/client/PetDockEntry.tsx +19 -11
- package/src/client/PetSettingsCard.tsx +57 -0
- package/src/client/PetSprite.test.tsx +265 -12
- package/src/client/PetSprite.tsx +165 -33
- package/src/client/index.ts +6 -0
- package/src/client/locales.ts +14 -0
- package/src/client/phase-stream.test.ts +76 -0
- package/src/client/phase-stream.ts +39 -0
- package/src/client/renderers/PetRendererSwitch.test.tsx +66 -0
- package/src/client/renderers/PetRendererSwitch.tsx +48 -0
- package/src/client/renderers/live2d/Live2dVisualMount.tsx +98 -0
- package/src/client/renderers/live2d/runtime.test.ts +61 -0
- package/src/client/renderers/live2d/runtime.ts +119 -0
- package/src/client/renderers/live2d/vendor-entry.ts +14 -0
- package/src/client/renderers/live2d.test.ts +263 -0
- package/src/client/renderers/live2d.ts +231 -0
- package/src/client/renderers/registry.ts +58 -0
- package/src/client/settings-form.ts +8 -6
- package/src/client/settings-section.module.css +23 -0
- package/src/contracts/renderer.ts +54 -0
- package/src/contracts/status-decoration.ts +78 -0
- package/src/decoration.test.ts +178 -0
- package/src/decoration.ts +220 -0
- package/src/event-projection.ts +10 -5
- package/src/index.ts +2 -0
- package/src/manifest-v2.test.ts +251 -0
- package/src/manifest-v2.ts +414 -0
- package/src/model3.test.ts +79 -0
- package/src/model3.ts +91 -0
- package/src/registry.test.ts +438 -2
- package/src/registry.ts +470 -38
- package/src/routes.ts +328 -14
- package/src/service.ts +65 -3
- package/src/voice-pack.test.ts +216 -0
- package/src/voice-pack.ts +413 -0
package/lib/types/registry.d.ts
CHANGED
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pet registry — the multi-pet contract. One pet is a directory holding a
|
|
3
3
|
* 'pet.json' manifest plus an atlas image; nothing else is required, and no
|
|
4
|
-
* host or client code changes when a pet is added. The registry scans
|
|
4
|
+
* host or client code changes when a pet is added. The registry scans four
|
|
5
5
|
* sources, later sources overriding earlier ones on an id collision:
|
|
6
6
|
*
|
|
7
7
|
* 1. the package's own 'assets' subdirectories (built-in pets);
|
|
8
|
-
* 2. '${CODEX_HOME:-~/.codex}/pets' subdirectories (hatch-pet custom pets
|
|
9
|
-
*
|
|
8
|
+
* 2. '${CODEX_HOME:-~/.codex}/pets' subdirectories (hatch-pet custom pets,
|
|
9
|
+
* legacy source kept readable);
|
|
10
|
+
* 3. '$DSH_HOME/pets' subdirectories (the pet-center user directory);
|
|
11
|
+
* 4. 'PetConfig.pets' manifests composed by the embedding application
|
|
10
12
|
* (highest precedence).
|
|
11
13
|
*
|
|
14
|
+
* Manifests are parsed through manifest-v2 (pet-center M2, issue #623): v1
|
|
15
|
+
* manifests are compat-read as sprite2d, v2 manifests validate fail-closed,
|
|
16
|
+
* and structured diagnostics ride alongside the legacy warnings. Live2d
|
|
17
|
+
* entries (pet-center M3) list like any other pet: the entry carries the
|
|
18
|
+
* validated live2d block plus the model's reference closure (the servable
|
|
19
|
+
* set the asset route allows), and a model3.json that is unreadable or
|
|
20
|
+
* declares unsafe references rejects the entry with an error diagnostic.
|
|
21
|
+
*
|
|
12
22
|
* The manifest follows the Codex/hatch-pet contract (8 columns x 9 rows of
|
|
13
23
|
* 192x208 cells, the 9-state row order below). Legacy whale-girl manifests
|
|
14
24
|
* that only carry 'frames' keep working: geometry, per-row frame counts and
|
|
@@ -18,6 +28,9 @@
|
|
|
18
28
|
*/
|
|
19
29
|
import type { ActivityPhase, PetAnimation } from './state.ts';
|
|
20
30
|
import { type PetRemarks, type PetRemarksManifest } from './remarks.ts';
|
|
31
|
+
import { type PetPanelView, type VoicePack } from './voice-pack.ts';
|
|
32
|
+
import { type DecorationView } from './contracts/status-decoration.ts';
|
|
33
|
+
import { type PetRendererKind } from './manifest-v2.ts';
|
|
21
34
|
/** Fixed row order of the 9-state animation contract. */
|
|
22
35
|
export declare const PET_ROW_ORDER: readonly PetAnimation[];
|
|
23
36
|
/** Atlas cell size in px. */
|
|
@@ -100,11 +113,37 @@ export interface PetTrackOverride {
|
|
|
100
113
|
/** Track to switch to after a non-looping track finishes. */
|
|
101
114
|
fallback?: PetAnimation;
|
|
102
115
|
}
|
|
116
|
+
/** The live2d renderer block as served to the browser half (pet-center M3). */
|
|
117
|
+
export interface PetLive2dDefinition {
|
|
118
|
+
/** Browser URL of the .model3.json (served by the host asset route). */
|
|
119
|
+
modelUrl: string;
|
|
120
|
+
/** Manifest-relative model path (host route allow-list key). */
|
|
121
|
+
modelPath: string;
|
|
122
|
+
/** Scale multiplier over the canvas auto-fit, (0, 10]. */
|
|
123
|
+
scale?: number;
|
|
124
|
+
/** Model offset in canvas px from the center-bottom anchor. */
|
|
125
|
+
translate?: {
|
|
126
|
+
x?: number;
|
|
127
|
+
y?: number;
|
|
128
|
+
};
|
|
129
|
+
/** ActivityPhase -> motion group; unmapped phases fall back to idle. */
|
|
130
|
+
motions: Partial<Record<ActivityPhase, string>> & {
|
|
131
|
+
idle: string;
|
|
132
|
+
};
|
|
133
|
+
/** Optional ActivityPhase -> expression name layered over the motion. */
|
|
134
|
+
expressions?: Partial<Record<ActivityPhase, string>>;
|
|
135
|
+
/** Hit area names triggering the tap motion; defaults to every model HitArea. */
|
|
136
|
+
hitAreas?: string[];
|
|
137
|
+
}
|
|
103
138
|
/** A normalized pet as served to the browser half. */
|
|
104
139
|
export interface PetDefinition {
|
|
105
140
|
id: string;
|
|
106
141
|
displayName: string;
|
|
107
142
|
description: string;
|
|
143
|
+
/** The renderer this entry mounts with (pet-center M2). */
|
|
144
|
+
renderer: PetRendererKind;
|
|
145
|
+
/** Live2d render block; present exactly when renderer is 'live2d' (M3). */
|
|
146
|
+
live2d?: PetLive2dDefinition;
|
|
108
147
|
/** Atlas cell size in px. */
|
|
109
148
|
cell: PetCell;
|
|
110
149
|
/** Columns per row. */
|
|
@@ -121,6 +160,8 @@ export interface PetDefinition {
|
|
|
121
160
|
atlasUrl: string;
|
|
122
161
|
/** Browser URL of the manifest (served by the host asset route). */
|
|
123
162
|
manifestUrl: string;
|
|
163
|
+
/** Hover-panel chrome overrides (voice.json 'panel'; pet-center M4). */
|
|
164
|
+
panel?: PetPanelView;
|
|
124
165
|
}
|
|
125
166
|
/** A resolved pet plus its host-side file location. */
|
|
126
167
|
export interface PetEntry extends PetDefinition {
|
|
@@ -128,16 +169,61 @@ export interface PetEntry extends PetDefinition {
|
|
|
128
169
|
dir: string;
|
|
129
170
|
/** Atlas path relative to 'dir' (declared by the manifest). */
|
|
130
171
|
spritesheetPath: string;
|
|
172
|
+
/**
|
|
173
|
+
* Manifest-relative files the asset route may serve beyond pet.json and
|
|
174
|
+
* 'previews/*' (pet-center M3): the sprite2d atlas, or the live2d model
|
|
175
|
+
* plus its model3.json reference closure.
|
|
176
|
+
*/
|
|
177
|
+
servable: readonly string[];
|
|
131
178
|
/** Normalized per-pet remark pools (manifest 'remarks'), when declared. */
|
|
132
179
|
remarks?: PetRemarks;
|
|
180
|
+
/**
|
|
181
|
+
* Normalized per-pet voice pack (the directory's voice.json; pet-center
|
|
182
|
+
* M4). Host-side only — the browser half receives its 'panel' slice.
|
|
183
|
+
*/
|
|
184
|
+
voice?: VoicePack;
|
|
133
185
|
}
|
|
134
186
|
/** Registry load result: resolved entries plus load warnings. */
|
|
135
187
|
export interface PetRegistry {
|
|
136
188
|
entries: PetEntry[];
|
|
137
189
|
warnings: string[];
|
|
190
|
+
/** Structured diagnostics from the manifest-v2 parse (superset detail of warnings). */
|
|
191
|
+
diagnostics: PetRegistryDiagnostic[];
|
|
138
192
|
byId(id: string): PetEntry | undefined;
|
|
139
193
|
/** The pet an installation falls back to when the selection is unknown. */
|
|
140
194
|
defaultEntry(): PetEntry;
|
|
195
|
+
/**
|
|
196
|
+
* The global voice override ('$DSH_HOME/pets/.voice.json'), when present —
|
|
197
|
+
* layers under every per-pet pack and over the built-in pools (M4, #677).
|
|
198
|
+
*/
|
|
199
|
+
globalVoice?: VoicePack;
|
|
200
|
+
/**
|
|
201
|
+
* Status decorations (pet-center M5, #567): built-in 'assets/decorations'
|
|
202
|
+
* entries overridden by same-id user entries under
|
|
203
|
+
* '$DSH_HOME/pets/decorations'. Independent of the pet entries. Optional
|
|
204
|
+
* so prebuilt test registries without decorations keep compiling.
|
|
205
|
+
*/
|
|
206
|
+
decorations?: DecorationEntry[];
|
|
207
|
+
/** Look up one decoration by id. */
|
|
208
|
+
decorationById?(id: string): DecorationEntry | undefined;
|
|
209
|
+
}
|
|
210
|
+
/** One resolved status decoration plus its host-side file location. */
|
|
211
|
+
export interface DecorationEntry extends DecorationView {
|
|
212
|
+
/** Absolute directory holding the descriptor and strip. */
|
|
213
|
+
dir: string;
|
|
214
|
+
/** Strip path relative to 'dir' (declared by the descriptor). */
|
|
215
|
+
entryPath: string;
|
|
216
|
+
/** Descriptor-relative files the decoration asset route may serve. */
|
|
217
|
+
servable: readonly string[];
|
|
218
|
+
/** Asset license identifier (required by the descriptor). */
|
|
219
|
+
license: string;
|
|
220
|
+
}
|
|
221
|
+
/** One structured registry diagnostic (manifest-v2 era). */
|
|
222
|
+
export interface PetRegistryDiagnostic {
|
|
223
|
+
level: 'error' | 'warning';
|
|
224
|
+
/** Where the diagnostic originates (directory or file). */
|
|
225
|
+
source: string;
|
|
226
|
+
message: string;
|
|
141
227
|
}
|
|
142
228
|
/** Registry sources. */
|
|
143
229
|
export interface PetRegistryOptions {
|
|
@@ -147,6 +233,8 @@ export interface PetRegistryOptions {
|
|
|
147
233
|
assetPrefix?: string;
|
|
148
234
|
/** Custom pet directory (defaults to '${CODEX_HOME:-~/.codex}/pets'). */
|
|
149
235
|
petsDir?: string;
|
|
236
|
+
/** Pet-center user directory (defaults to '$DSH_HOME/pets'; '' disables). */
|
|
237
|
+
dshPetsDir?: string;
|
|
150
238
|
/** Extra manifest entries composed by the embedding application. */
|
|
151
239
|
extra?: readonly PetManifest[];
|
|
152
240
|
}
|
|
@@ -158,6 +246,16 @@ export declare function resolvePetManifest(raw: unknown, dir: string, options?:
|
|
|
158
246
|
assetPrefix?: string;
|
|
159
247
|
warnings?: string[];
|
|
160
248
|
}): PetEntry | undefined;
|
|
249
|
+
/**
|
|
250
|
+
* Scan-time read ceiling for user-authored JSON descriptors (voice.json,
|
|
251
|
+
* .voice.json, decoration.json): the registry reads these synchronously at
|
|
252
|
+
* plugin startup, and a pathological file — multi-GB, or a FIFO/device
|
|
253
|
+
* symlink — must not hang or exhaust the host before the warn-and-drop
|
|
254
|
+
* discipline can apply (review-spd follow-up, pet-center M4/M5).
|
|
255
|
+
*/
|
|
256
|
+
export declare const PET_SCAN_JSON_CAP: number;
|
|
257
|
+
/** Decoration asset URL prefix (served by the decoration route, M5). */
|
|
258
|
+
export declare const DECORATION_ASSET_PREFIX = "/api/pet/decoration";
|
|
161
259
|
/**
|
|
162
260
|
* Load the pet registry: built-in 'assets/*' first, then the hatch-pet
|
|
163
261
|
* custom pets directory, then composed 'extra' manifests (each later source
|
|
@@ -165,8 +263,17 @@ export declare function resolvePetManifest(raw: unknown, dir: string, options?:
|
|
|
165
263
|
* bad manifest: it skips it and records a warning.
|
|
166
264
|
*/
|
|
167
265
|
export declare function loadPetRegistry(options: PetRegistryOptions): PetRegistry;
|
|
168
|
-
/**
|
|
169
|
-
export declare
|
|
266
|
+
/** The built-in default decoration id (M5): the first reference ornament. */
|
|
267
|
+
export declare const DEFAULT_DECORATION_ID = "whale";
|
|
268
|
+
/** Strip host-only fields, leaving the browser-visible decoration view. */
|
|
269
|
+
export declare function decorationView(entry: DecorationEntry): DecorationView;
|
|
270
|
+
/**
|
|
271
|
+
* Strip host-only fields, leaving the client-visible definition. When the
|
|
272
|
+
* registry carries a global voice pack, its panel chrome layers under the
|
|
273
|
+
* entry's own pack (per-slot merge, pet > global), mirroring the voice-pool
|
|
274
|
+
* layering (pet-center M4, issue #677).
|
|
275
|
+
*/
|
|
276
|
+
export declare function petEntryView(entry: PetEntry, globalVoice?: VoicePack): PetDefinition;
|
|
170
277
|
/** The absolute file a pet's atlas resolves to (host asset route). */
|
|
171
278
|
export declare function petAtlasFile(entry: PetEntry): string;
|
|
172
279
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"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"}
|