@bitmagic/asset-core 0.2.11-dev.0 → 0.2.11
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/dist/forger-client.d.ts +17 -0
- package/dist/forger-client.d.ts.map +1 -1
- package/dist/forger-client.js +41 -0
- package/dist/forger-client.js.map +1 -1
- package/dist/generators/character-library.d.ts +130 -0
- package/dist/generators/character-library.d.ts.map +1 -0
- package/dist/generators/character-library.js +120 -0
- package/dist/generators/character-library.js.map +1 -0
- package/dist/generators/character.d.ts +14 -0
- package/dist/generators/character.d.ts.map +1 -1
- package/dist/generators/character.js +57 -3
- package/dist/generators/character.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/judge-prompt.d.ts.map +1 -1
- package/dist/judge-prompt.js +6 -1
- package/dist/judge-prompt.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/forger-client.d.ts
CHANGED
|
@@ -18,6 +18,23 @@ export declare class AssetForgerClient implements ForgerClient {
|
|
|
18
18
|
getMissingCredentialsMessage(): string;
|
|
19
19
|
private authHeader;
|
|
20
20
|
private postJson;
|
|
21
|
+
/**
|
|
22
|
+
* Make a GET request to an Asset Forger endpoint.
|
|
23
|
+
*
|
|
24
|
+
* Lives here rather than in a caller because this class is the single home for
|
|
25
|
+
* the base URL and the Basic-auth header; a hand-rolled `fetch` elsewhere would
|
|
26
|
+
* fork both.
|
|
27
|
+
*
|
|
28
|
+
* The timeout is load-bearing. A GET that hangs would otherwise burn the
|
|
29
|
+
* caller's whole budget — the CLI/web asset lanes run generation against a
|
|
30
|
+
* 280 s server deadline — so this fails fast and lets the caller fall back.
|
|
31
|
+
* Same reasoning as the abort already documented on `fetchContentLength`.
|
|
32
|
+
*
|
|
33
|
+
* @param endpoint - API endpoint path (e.g. '/ai/v1/find-voxel-character')
|
|
34
|
+
* @param query - Query params; `undefined` values are dropped
|
|
35
|
+
* @param loggerName - Name for logging
|
|
36
|
+
*/
|
|
37
|
+
get<T = unknown>(endpoint: string, query: Record<string, string | number | boolean | undefined>, loggerName: string): Promise<T>;
|
|
21
38
|
/**
|
|
22
39
|
* Make a POST request to an Asset Forger endpoint
|
|
23
40
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forger-client.d.ts","sourceRoot":"","sources":["../src/forger-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;GAKG;AAEH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"forger-client.d.ts","sourceRoot":"","sources":["../src/forger-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;GAKG;AAEH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiF;IACzG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,MAAM,EAAE,UAAU;IAgBvB,cAAc,IAAI,OAAO;IAIzB,4BAA4B,IAAI,MAAM;IAI7C,OAAO,CAAC,UAAU;YAMJ,QAAQ;IAgCtB;;;;;;;;;;;;;;;OAeG;IACU,GAAG,CAAC,CAAC,GAAG,OAAO,EAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAC5D,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC;IA2Bb;;;;;;;OAOG;IACU,IAAI,CAAC,CAAC,GAAG,OAAO,EAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC;IAMb;;;;;;;;;OASG;IACU,cAAc,CAAC,CAAC,GAAG,OAAO,EACrC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC;CA+Ed"}
|
package/dist/forger-client.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** How long a GET may hang before the caller gets its budget back. */
|
|
2
|
+
const GET_TIMEOUT_MS = 15000;
|
|
1
3
|
export class AssetForgerClient {
|
|
2
4
|
constructor(logger) {
|
|
3
5
|
this.baseUrl = process.env.ASSET_FORGER_URL || 'https://asset-forger.staging.bitmagic.cloud';
|
|
@@ -47,6 +49,45 @@ export class AssetForgerClient {
|
|
|
47
49
|
}
|
|
48
50
|
return await response.json();
|
|
49
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Make a GET request to an Asset Forger endpoint.
|
|
54
|
+
*
|
|
55
|
+
* Lives here rather than in a caller because this class is the single home for
|
|
56
|
+
* the base URL and the Basic-auth header; a hand-rolled `fetch` elsewhere would
|
|
57
|
+
* fork both.
|
|
58
|
+
*
|
|
59
|
+
* The timeout is load-bearing. A GET that hangs would otherwise burn the
|
|
60
|
+
* caller's whole budget — the CLI/web asset lanes run generation against a
|
|
61
|
+
* 280 s server deadline — so this fails fast and lets the caller fall back.
|
|
62
|
+
* Same reasoning as the abort already documented on `fetchContentLength`.
|
|
63
|
+
*
|
|
64
|
+
* @param endpoint - API endpoint path (e.g. '/ai/v1/find-voxel-character')
|
|
65
|
+
* @param query - Query params; `undefined` values are dropped
|
|
66
|
+
* @param loggerName - Name for logging
|
|
67
|
+
*/
|
|
68
|
+
async get(endpoint, query, loggerName) {
|
|
69
|
+
if (!this.credentials) {
|
|
70
|
+
throw new Error('Asset Forger credentials not configured');
|
|
71
|
+
}
|
|
72
|
+
const params = new URLSearchParams();
|
|
73
|
+
for (const [key, value] of Object.entries(query)) {
|
|
74
|
+
if (value !== undefined)
|
|
75
|
+
params.set(key, String(value));
|
|
76
|
+
}
|
|
77
|
+
const suffix = params.toString();
|
|
78
|
+
const url = `${this.baseUrl}${endpoint}${suffix ? `?${suffix}` : ''}`;
|
|
79
|
+
this.log.info(`[${loggerName}] GET ${url}`);
|
|
80
|
+
const response = await fetch(url, {
|
|
81
|
+
headers: { 'Authorization': this.authHeader() },
|
|
82
|
+
signal: AbortSignal.timeout(GET_TIMEOUT_MS),
|
|
83
|
+
});
|
|
84
|
+
if (!response.ok) {
|
|
85
|
+
const errorText = await response.text();
|
|
86
|
+
this.log.error(`[${loggerName}] API Error Response:`, errorText);
|
|
87
|
+
throw new Error(`HTTP error! status: ${response.status}, message: ${errorText}`);
|
|
88
|
+
}
|
|
89
|
+
return await response.json();
|
|
90
|
+
}
|
|
50
91
|
/**
|
|
51
92
|
* Make a POST request to an Asset Forger endpoint
|
|
52
93
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forger-client.js","sourceRoot":"","sources":["../src/forger-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forger-client.js","sourceRoot":"","sources":["../src/forger-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { CoreLogger, ForgerClient } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Search the Asset Forger's library of ready-made rigged voxel characters.
|
|
4
|
+
*
|
|
5
|
+
* Most prompts a creator types already have a good body in the library, and
|
|
6
|
+
* using one is instant and free where forging costs minutes and a vendor call.
|
|
7
|
+
* This module answers "is there one close enough?" and nothing else — the
|
|
8
|
+
* decision to use it lives in `character.ts`.
|
|
9
|
+
*
|
|
10
|
+
* `findLibraryCharacter` NEVER throws and never rejects. Every failure — no
|
|
11
|
+
* credentials, a network error, a 500, an empty index, nothing above the floor —
|
|
12
|
+
* resolves to `{ match: null, reason }`. That property is what makes "fall back
|
|
13
|
+
* to forging" structural instead of a `try/catch` somebody can forget, and it
|
|
14
|
+
* matters more than it looks: production's index is EMPTY today, so the empty
|
|
15
|
+
* case is the normal path at launch rather than an edge case.
|
|
16
|
+
*
|
|
17
|
+
* ## The upstream contract, as measured against the live service
|
|
18
|
+
*
|
|
19
|
+
* `GET /ai/v1/find-voxel-character`, Basic auth, query params:
|
|
20
|
+
* `prompt` (required; blank is a 400), `threshold` (0-1, **400** when malformed
|
|
21
|
+
* or out of range), `limit` (**400** when malformed), and optional
|
|
22
|
+
* `species` / `hasTail`.
|
|
23
|
+
*
|
|
24
|
+
* - **`limit >= 17` fails every time**, with a 500 and
|
|
25
|
+
* `"Failed to parse search result"` — the Python subprocess output is
|
|
26
|
+
* truncated before the route parses it. Verified across prompts and repeats,
|
|
27
|
+
* with the boundary between 16 and 17. {@link LIBRARY_CANDIDATE_LIMIT} stays
|
|
28
|
+
* far below it, and {@link MAX_SAFE_LIMIT} documents the cliff.
|
|
29
|
+
* - **`assetUrl` is nullable.** The `/seed` bootstrap path indexes captions with
|
|
30
|
+
* no files, so a row can be findable but not usable. Candidates without one
|
|
31
|
+
* are skipped in favour of the next.
|
|
32
|
+
* - **`species` is exact SQL equality** over free-text values a vision model
|
|
33
|
+
* wrote (`cat`, `orc`, `robot`), so `species=Cat` matches nothing. Sending a
|
|
34
|
+
* derived guess would silently collapse the result set to zero and look
|
|
35
|
+
* exactly like an empty index — so it is deliberately never sent, and neither
|
|
36
|
+
* is `hasTail`. The prompt embedding already carries both.
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* How the library participates in character generation.
|
|
40
|
+
*
|
|
41
|
+
* Three states rather than a boolean because the middle one is what lets this
|
|
42
|
+
* ship before anything depends on it: `shadow` runs the search and logs what it
|
|
43
|
+
* would have picked, then forges anyway. Zero behaviour change, and it turns
|
|
44
|
+
* real traffic into the data that says whether the floor is right.
|
|
45
|
+
*/
|
|
46
|
+
export type CharacterLibraryMode = 'off' | 'shadow' | 'on';
|
|
47
|
+
/** Why a search produced no usable match. Distinguishable so the logs are actionable. */
|
|
48
|
+
export type LibraryMissReason =
|
|
49
|
+
/** Mode `off`, the caller opted out, or a parameter the library cannot honour. */
|
|
50
|
+
'disabled'
|
|
51
|
+
/** Network error, timeout, or a non-2xx — including the route's own 500. */
|
|
52
|
+
| 'unreachable'
|
|
53
|
+
/** The index returned nothing. Production today. */
|
|
54
|
+
| 'empty'
|
|
55
|
+
/** Candidates came back, none close enough. */
|
|
56
|
+
| 'below-threshold'
|
|
57
|
+
/** Candidates came back, none with a usable `assetUrl` — the index needs publishing, not seeding. */
|
|
58
|
+
| 'no-asset-url'
|
|
59
|
+
/** The response was not the shape the route documents. */
|
|
60
|
+
| 'malformed';
|
|
61
|
+
/** The subset of a library row this package consumes. */
|
|
62
|
+
export interface VoxelCharacterMatch {
|
|
63
|
+
/** Corpus id, e.g. `b0009` — the only field that makes a pick auditable. */
|
|
64
|
+
sid: string;
|
|
65
|
+
/** Non-null by construction: rows without one are filtered out before selection. */
|
|
66
|
+
assetUrl: string;
|
|
67
|
+
/** The vision-model caption that was embedded — what the body LOOKS like. */
|
|
68
|
+
description: string;
|
|
69
|
+
/** Short noun phrase, for the line a creator reads. */
|
|
70
|
+
subject: string | null;
|
|
71
|
+
similarity: number;
|
|
72
|
+
}
|
|
73
|
+
export interface LibrarySearchOutcome {
|
|
74
|
+
match: VoxelCharacterMatch | null;
|
|
75
|
+
reason?: LibraryMissReason;
|
|
76
|
+
/** Best similarity seen even when it lost — this is what `shadow` mode reports. */
|
|
77
|
+
topSimilarity?: number;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The usable-match floor.
|
|
81
|
+
*
|
|
82
|
+
* 0.45 is not invented here: `game/scripts/vxl-v10-search-selftest.mjs` already
|
|
83
|
+
* treats it as the line between a usable match and a coincidence, having ranked
|
|
84
|
+
* the corpus in memory against known queries. Measured top-1 similarities for
|
|
85
|
+
* realistic prompts run 0.62-0.80, so it accepts with margin — and it is well
|
|
86
|
+
* above the route's own 0.3 default, which is looser than we want.
|
|
87
|
+
*/
|
|
88
|
+
export declare const DEFAULT_LIBRARY_THRESHOLD = 0.45;
|
|
89
|
+
/**
|
|
90
|
+
* Ask for a handful, not one.
|
|
91
|
+
*
|
|
92
|
+
* A row can be findable but unusable (`assetUrl` null), and `limit: 1` would
|
|
93
|
+
* turn a single unpublished row into a full forge. Five gives four fallbacks at
|
|
94
|
+
* no meaningful cost.
|
|
95
|
+
*/
|
|
96
|
+
export declare const LIBRARY_CANDIDATE_LIMIT = 5;
|
|
97
|
+
/** The largest `limit` the route survives; see the module doc. The API advertises 50. */
|
|
98
|
+
export declare const MAX_SAFE_LIMIT = 16;
|
|
99
|
+
/**
|
|
100
|
+
* Read the mode per call rather than at module load, so a test or a CLI run can
|
|
101
|
+
* change it without re-importing — the same reasoning `animation.ts` documents
|
|
102
|
+
* for `ANIMATION_MODEL`. Unrecognised values fail CLOSED: an env typo must not
|
|
103
|
+
* be what turns library substitution on.
|
|
104
|
+
*/
|
|
105
|
+
export declare function getCharacterLibraryMode(): CharacterLibraryMode;
|
|
106
|
+
/**
|
|
107
|
+
* The floor, overridable by `CHARACTER_LIBRARY_THRESHOLD`.
|
|
108
|
+
*
|
|
109
|
+
* An env var rather than a request field: it is an operations dial for tuning
|
|
110
|
+
* against a growing corpus, not a creative choice, and an agent asked to pick a
|
|
111
|
+
* cosine value would be guessing.
|
|
112
|
+
*
|
|
113
|
+
* The clamp is load-bearing — the route answers **400** to a threshold outside
|
|
114
|
+
* 0-1 or one that will not parse, so an unclamped typo would turn every
|
|
115
|
+
* character generation into a hard failure instead of a fallback.
|
|
116
|
+
*/
|
|
117
|
+
export declare function getCharacterLibraryThreshold(): number;
|
|
118
|
+
export interface FindLibraryCharacterDeps {
|
|
119
|
+
forger: ForgerClient;
|
|
120
|
+
logger: CoreLogger;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Find the closest usable library character for a prompt.
|
|
124
|
+
*
|
|
125
|
+
* Selection is the highest-ranked row that has BOTH a usable `assetUrl` and a
|
|
126
|
+
* similarity at or above the floor — walking the list rather than taking the
|
|
127
|
+
* first, so an unpublished row costs a fallback instead of a forge.
|
|
128
|
+
*/
|
|
129
|
+
export declare function findLibraryCharacter(prompt: string, deps: FindLibraryCharacterDeps): Promise<LibrarySearchOutcome>;
|
|
130
|
+
//# sourceMappingURL=character-library.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-library.d.ts","sourceRoot":"","sources":["../../src/generators/character-library.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE3D,yFAAyF;AACzF,MAAM,MAAM,iBAAiB;AAC3B,kFAAkF;AAChF,UAAU;AACZ,4EAA4E;GAC1E,aAAa;AACf,oDAAoD;GAClD,OAAO;AACT,+CAA+C;GAC7C,iBAAiB;AACnB,qGAAqG;GACnG,cAAc;AAChB,0DAA0D;GACxD,WAAW,CAAC;AAEhB,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,yFAAyF;AACzF,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,oBAAoB,CAG9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAIrD;AAiBD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA+D/B"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
const ENDPOINT = '/ai/v1/find-voxel-character';
|
|
2
|
+
/**
|
|
3
|
+
* The usable-match floor.
|
|
4
|
+
*
|
|
5
|
+
* 0.45 is not invented here: `game/scripts/vxl-v10-search-selftest.mjs` already
|
|
6
|
+
* treats it as the line between a usable match and a coincidence, having ranked
|
|
7
|
+
* the corpus in memory against known queries. Measured top-1 similarities for
|
|
8
|
+
* realistic prompts run 0.62-0.80, so it accepts with margin — and it is well
|
|
9
|
+
* above the route's own 0.3 default, which is looser than we want.
|
|
10
|
+
*/
|
|
11
|
+
export const DEFAULT_LIBRARY_THRESHOLD = 0.45;
|
|
12
|
+
/**
|
|
13
|
+
* Ask for a handful, not one.
|
|
14
|
+
*
|
|
15
|
+
* A row can be findable but unusable (`assetUrl` null), and `limit: 1` would
|
|
16
|
+
* turn a single unpublished row into a full forge. Five gives four fallbacks at
|
|
17
|
+
* no meaningful cost.
|
|
18
|
+
*/
|
|
19
|
+
export const LIBRARY_CANDIDATE_LIMIT = 5;
|
|
20
|
+
/** The largest `limit` the route survives; see the module doc. The API advertises 50. */
|
|
21
|
+
export const MAX_SAFE_LIMIT = 16;
|
|
22
|
+
/**
|
|
23
|
+
* Read the mode per call rather than at module load, so a test or a CLI run can
|
|
24
|
+
* change it without re-importing — the same reasoning `animation.ts` documents
|
|
25
|
+
* for `ANIMATION_MODEL`. Unrecognised values fail CLOSED: an env typo must not
|
|
26
|
+
* be what turns library substitution on.
|
|
27
|
+
*/
|
|
28
|
+
export function getCharacterLibraryMode() {
|
|
29
|
+
const raw = process.env.CHARACTER_LIBRARY?.trim().toLowerCase();
|
|
30
|
+
return raw === 'on' || raw === 'shadow' ? raw : 'off';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The floor, overridable by `CHARACTER_LIBRARY_THRESHOLD`.
|
|
34
|
+
*
|
|
35
|
+
* An env var rather than a request field: it is an operations dial for tuning
|
|
36
|
+
* against a growing corpus, not a creative choice, and an agent asked to pick a
|
|
37
|
+
* cosine value would be guessing.
|
|
38
|
+
*
|
|
39
|
+
* The clamp is load-bearing — the route answers **400** to a threshold outside
|
|
40
|
+
* 0-1 or one that will not parse, so an unclamped typo would turn every
|
|
41
|
+
* character generation into a hard failure instead of a fallback.
|
|
42
|
+
*/
|
|
43
|
+
export function getCharacterLibraryThreshold() {
|
|
44
|
+
const parsed = Number.parseFloat(process.env.CHARACTER_LIBRARY_THRESHOLD ?? '');
|
|
45
|
+
if (!Number.isFinite(parsed))
|
|
46
|
+
return DEFAULT_LIBRARY_THRESHOLD;
|
|
47
|
+
return Math.min(1, Math.max(0, parsed));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Find the closest usable library character for a prompt.
|
|
51
|
+
*
|
|
52
|
+
* Selection is the highest-ranked row that has BOTH a usable `assetUrl` and a
|
|
53
|
+
* similarity at or above the floor — walking the list rather than taking the
|
|
54
|
+
* first, so an unpublished row costs a fallback instead of a forge.
|
|
55
|
+
*/
|
|
56
|
+
export async function findLibraryCharacter(prompt, deps) {
|
|
57
|
+
const { forger, logger } = deps;
|
|
58
|
+
if (!forger.hasCredentials()) {
|
|
59
|
+
return { match: null, reason: 'disabled' };
|
|
60
|
+
}
|
|
61
|
+
const threshold = getCharacterLibraryThreshold();
|
|
62
|
+
let body;
|
|
63
|
+
try {
|
|
64
|
+
body = await forger.get(ENDPOINT, {
|
|
65
|
+
prompt,
|
|
66
|
+
// Deliberately 0, so the FLOOR is applied here and not by the route.
|
|
67
|
+
//
|
|
68
|
+
// Sending the real floor looks tidier and is worse: the route filters the
|
|
69
|
+
// rows out before we see them, so every miss comes back as an empty list.
|
|
70
|
+
// That erases the difference between "the index is empty" and "nothing was
|
|
71
|
+
// close enough" — the split these reason codes exist for — and it makes
|
|
72
|
+
// `topSimilarity` always 0 on a miss, which is precisely the number shadow
|
|
73
|
+
// mode was added to collect. Omitting it is not an option either: the route
|
|
74
|
+
// defaults to 0.3, which is its own silent filter.
|
|
75
|
+
threshold: 0,
|
|
76
|
+
limit: Math.min(LIBRARY_CANDIDATE_LIMIT, MAX_SAFE_LIMIT),
|
|
77
|
+
}, 'CharacterLibrary');
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
// Includes the route's own 500s, which surface as a non-2xx throw.
|
|
81
|
+
logger.warn({ err: error }, '[character-library] Search failed; forging instead');
|
|
82
|
+
return { match: null, reason: 'unreachable' };
|
|
83
|
+
}
|
|
84
|
+
if (!Array.isArray(body?.items)) {
|
|
85
|
+
logger.warn({ error: body?.error }, '[character-library] Unexpected search response; forging instead');
|
|
86
|
+
return { match: null, reason: 'malformed' };
|
|
87
|
+
}
|
|
88
|
+
const items = body.items;
|
|
89
|
+
if (items.length === 0) {
|
|
90
|
+
return { match: null, reason: 'empty' };
|
|
91
|
+
}
|
|
92
|
+
let topSimilarity = 0;
|
|
93
|
+
let sawUsable = false;
|
|
94
|
+
for (const item of items) {
|
|
95
|
+
const similarity = typeof item?.similarity === 'number' ? item.similarity : 0;
|
|
96
|
+
if (similarity > topSimilarity)
|
|
97
|
+
topSimilarity = similarity;
|
|
98
|
+
const assetUrl = typeof item?.assetUrl === 'string' ? item.assetUrl.trim() : '';
|
|
99
|
+
const sid = typeof item?.sid === 'string' ? item.sid : '';
|
|
100
|
+
if (!assetUrl || !sid)
|
|
101
|
+
continue;
|
|
102
|
+
sawUsable = true;
|
|
103
|
+
if (similarity < threshold)
|
|
104
|
+
continue;
|
|
105
|
+
return {
|
|
106
|
+
match: {
|
|
107
|
+
sid,
|
|
108
|
+
assetUrl,
|
|
109
|
+
description: typeof item.description === 'string' ? item.description : '',
|
|
110
|
+
subject: typeof item.subject === 'string' ? item.subject : null,
|
|
111
|
+
similarity,
|
|
112
|
+
},
|
|
113
|
+
topSimilarity,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
// Separating these two is what tells an operator which half is missing: rows
|
|
117
|
+
// with no files need PUBLISHING, an empty index needs SEEDING.
|
|
118
|
+
return { match: null, reason: sawUsable ? 'below-threshold' : 'no-asset-url', topSimilarity };
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=character-library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-library.js","sourceRoot":"","sources":["../../src/generators/character-library.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { AssetResultBase, GenerateDeps } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The chibi house style every library body is built at. Named because the
|
|
5
|
+
* library search keys off it: a stored body has its head scale baked in, so a
|
|
6
|
+
* caller who asked for a different one must get a forge, not a substitution.
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_HEAD_SCALE = 150;
|
|
3
9
|
export declare const characterParamsSchema: z.ZodObject<{
|
|
4
10
|
name: z.ZodString;
|
|
5
11
|
prompt: z.ZodString;
|
|
6
12
|
applyToPlayer: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
7
13
|
headScale: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
8
14
|
assetId: z.ZodOptional<z.ZodString>;
|
|
15
|
+
useLibrary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
9
16
|
}, "strict", z.ZodTypeAny, {
|
|
10
17
|
name: string;
|
|
11
18
|
prompt: string;
|
|
12
19
|
applyToPlayer: boolean;
|
|
13
20
|
headScale: number;
|
|
21
|
+
useLibrary: boolean;
|
|
14
22
|
assetId?: string | undefined;
|
|
15
23
|
}, {
|
|
16
24
|
name: string;
|
|
@@ -18,6 +26,7 @@ export declare const characterParamsSchema: z.ZodObject<{
|
|
|
18
26
|
assetId?: string | undefined;
|
|
19
27
|
applyToPlayer?: boolean | undefined;
|
|
20
28
|
headScale?: number | undefined;
|
|
29
|
+
useLibrary?: boolean | undefined;
|
|
21
30
|
}>;
|
|
22
31
|
/**
|
|
23
32
|
* The schema's INPUT type — callers may omit the defaulted fields. The
|
|
@@ -35,6 +44,11 @@ export type CharacterResult = AssetResultBase & {
|
|
|
35
44
|
* how the tool has always billed.
|
|
36
45
|
*/
|
|
37
46
|
billable?: boolean;
|
|
47
|
+
/** Present only when the character came from the library, never when forged. */
|
|
48
|
+
library?: {
|
|
49
|
+
sid: string;
|
|
50
|
+
similarity: number;
|
|
51
|
+
};
|
|
38
52
|
};
|
|
39
53
|
export declare function generateCharacter(params: CharacterParams, deps: GenerateDeps): Promise<CharacterResult>;
|
|
40
54
|
//# sourceMappingURL=character.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../src/generators/character.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../src/generators/character.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAK7E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;EAyBvB,CAAC;AAEZ;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C,CAAC;AAWF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,eAAe,CAAC,CAiI1B"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { fail, ok } from '../result.js';
|
|
3
3
|
import { formatZodIssues } from '../validation.js';
|
|
4
|
+
import { findLibraryCharacter, getCharacterLibraryMode } from './character-library.js';
|
|
5
|
+
/**
|
|
6
|
+
* The chibi house style every library body is built at. Named because the
|
|
7
|
+
* library search keys off it: a stored body has its head scale baked in, so a
|
|
8
|
+
* caller who asked for a different one must get a forge, not a substitution.
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_HEAD_SCALE = 150;
|
|
4
11
|
export const characterParamsSchema = z.object({
|
|
5
12
|
name: z.string()
|
|
6
13
|
.min(1)
|
|
@@ -17,11 +24,15 @@ export const characterParamsSchema = z.object({
|
|
|
17
24
|
.min(50)
|
|
18
25
|
.max(300)
|
|
19
26
|
.optional()
|
|
20
|
-
.default(
|
|
27
|
+
.default(DEFAULT_HEAD_SCALE)
|
|
21
28
|
.describe('Head size as a percentage of normal (150 = chibi house style, matches the default character; 100 = realistic proportions).'),
|
|
22
29
|
assetId: z.string()
|
|
23
30
|
.optional()
|
|
24
31
|
.describe('Pre-generated asset id from the manifest. The character is stored in world.json assets[] under this id so code can reference it via registerNpc({ characterAssetId }).'),
|
|
32
|
+
useLibrary: z.boolean()
|
|
33
|
+
.optional()
|
|
34
|
+
.default(true)
|
|
35
|
+
.describe('Search the ready-made rigged-character library first and use a close match instead of forging a new one (default). Set false to always forge. Ignored when headScale is not the default 150 — a library body has its head scale baked in.'),
|
|
25
36
|
}).strict();
|
|
26
37
|
const ENDPOINT = '/ai/v1/generate-rigged-character/jobs';
|
|
27
38
|
export async function generateCharacter(params, deps) {
|
|
@@ -36,6 +47,35 @@ export async function generateCharacter(params, deps) {
|
|
|
36
47
|
logger.error('[character] Missing Asset Forger credentials');
|
|
37
48
|
return fail(forger.getMissingCredentialsMessage());
|
|
38
49
|
}
|
|
50
|
+
// The library first, when it can serve this request at all. Placed AFTER the
|
|
51
|
+
// credentials guard because the search needs the same Basic auth, so a missing
|
|
52
|
+
// credential should still report itself rather than looking like an empty
|
|
53
|
+
// index — and BEFORE any progress line, so a hit never claims it generated.
|
|
54
|
+
//
|
|
55
|
+
// A non-default headScale suppresses the search outright: a stored body has
|
|
56
|
+
// its head scale baked in, and silently ignoring a parameter the caller set is
|
|
57
|
+
// worse than forging. (zod fills the default, so "explicitly 150" and
|
|
58
|
+
// "omitted" are indistinguishable here — and identical in effect.)
|
|
59
|
+
const libraryMode = getCharacterLibraryMode();
|
|
60
|
+
const librarySearchable = libraryMode !== 'off' && input.useLibrary && input.headScale === DEFAULT_HEAD_SCALE;
|
|
61
|
+
if (librarySearchable) {
|
|
62
|
+
onProgress('Searching the character library…');
|
|
63
|
+
const outcome = await findLibraryCharacter(input.prompt, { forger, logger });
|
|
64
|
+
const percent = (value) => `${Math.round(value * 100)}%`;
|
|
65
|
+
if (outcome.match && libraryMode === 'on') {
|
|
66
|
+
const { sid, similarity, subject, description, assetUrl } = outcome.match;
|
|
67
|
+
onProgress(`Found a ready-made character: ${subject ?? sid} (${percent(similarity)} match) — no generation needed.`);
|
|
68
|
+
logger.info({ sid, similarity }, '[character] Using a library character');
|
|
69
|
+
return ok(`Character "${input.name}" taken from the library (${sid}, ${percent(similarity)} match): ${assetUrl}`, buildCharacterPatches(input, assetUrl, 'library', description, sid), { assetId: input.assetId, characterUrl: assetUrl, library: { sid, similarity } });
|
|
70
|
+
}
|
|
71
|
+
// `shadow` observes without substituting, and a miss falls through to the
|
|
72
|
+
// forge either way. The best score is logged even when it lost — that is the
|
|
73
|
+
// number that says whether the floor is set right.
|
|
74
|
+
logger.info({ mode: libraryMode, sid: outcome.match?.sid, reason: outcome.reason, topSimilarity: outcome.topSimilarity }, '[character] Library did not supply this character');
|
|
75
|
+
if (outcome.topSimilarity !== undefined && !outcome.match) {
|
|
76
|
+
onProgress(`No close library match (best ${percent(outcome.topSimilarity)}) — making a new character.`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
39
79
|
onProgress(`Generating character: ${input.name}`);
|
|
40
80
|
logger.info(`[character] Starting generation for "${input.name}"`);
|
|
41
81
|
// Proven recipe for an engine-ready character: rerigTarget 'default' => Mixamo
|
|
@@ -98,6 +138,14 @@ export async function generateCharacter(params, deps) {
|
|
|
98
138
|
// via registerNpc({ characterAssetId }) — the engine resolves the id from
|
|
99
139
|
// assets[] at registration time. This is what lets the coding subagent run in
|
|
100
140
|
// parallel with asset generation instead of waiting for the literal GLB url.
|
|
141
|
+
const patches = buildCharacterPatches(input, characterUrl, 'generated');
|
|
142
|
+
return ok(`Character "${input.name}" generated: ${characterUrl}`, patches, { assetId: input.assetId, characterUrl, billable });
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The world.json writes for a finished character, shared by the forge and the
|
|
146
|
+
* library paths so their deliberate ORDER cannot drift apart.
|
|
147
|
+
*/
|
|
148
|
+
function buildCharacterPatches(input, characterUrl, source, libraryDescription, librarySid) {
|
|
101
149
|
const patches = [];
|
|
102
150
|
if (input.assetId) {
|
|
103
151
|
patches.push({
|
|
@@ -108,8 +156,14 @@ export async function generateCharacter(params, deps) {
|
|
|
108
156
|
name: input.name,
|
|
109
157
|
url: characterUrl,
|
|
110
158
|
type: 'character',
|
|
159
|
+
// The CREATOR's words, never the library row's own generation prompt:
|
|
160
|
+
// this is the brief a regeneration re-drives, and overwriting it with a
|
|
161
|
+
// stranger's prompt would make "make this again" produce someone else's
|
|
162
|
+
// character.
|
|
111
163
|
prompt: input.prompt,
|
|
112
|
-
|
|
164
|
+
...(libraryDescription ? { description: libraryDescription } : {}),
|
|
165
|
+
source,
|
|
166
|
+
...(librarySid ? { librarySid } : {}),
|
|
113
167
|
},
|
|
114
168
|
});
|
|
115
169
|
}
|
|
@@ -129,6 +183,6 @@ export async function generateCharacter(params, deps) {
|
|
|
129
183
|
if (input.applyToPlayer) {
|
|
130
184
|
patches.push({ type: 'set', path: ['useHighResCharacter'], value: true, skipReload: true }, { type: 'set', path: ['characterUrl'], value: characterUrl });
|
|
131
185
|
}
|
|
132
|
-
return
|
|
186
|
+
return patches;
|
|
133
187
|
}
|
|
134
188
|
//# sourceMappingURL=character.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"character.js","sourceRoot":"","sources":["../../src/generators/character.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"character.js","sourceRoot":"","sources":["../../src/generators/character.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export { generateReferenceImage, referenceImageParamsSchema, REFERENCE_IMAGE_WID
|
|
|
17
17
|
export type { ReferenceImageParams, ReferenceImageResult } from './generators/reference.js';
|
|
18
18
|
export { generateCharacter, characterParamsSchema } from './generators/character.js';
|
|
19
19
|
export type { CharacterParams, CharacterResult } from './generators/character.js';
|
|
20
|
+
export { findLibraryCharacter, getCharacterLibraryMode, getCharacterLibraryThreshold, DEFAULT_LIBRARY_THRESHOLD, LIBRARY_CANDIDATE_LIMIT, } from './generators/character-library.js';
|
|
21
|
+
export type { CharacterLibraryMode, LibraryMissReason, LibrarySearchOutcome, VoxelCharacterMatch, } from './generators/character-library.js';
|
|
20
22
|
export { generateProp, propParamsSchema } from './generators/prop.js';
|
|
21
23
|
export type { PropParams, PropResult } from './generators/prop.js';
|
|
22
24
|
export { generatePropVoxels, propVoxelParamsSchema, propVoxelGrids } from './generators/prop-voxel.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export { generateSoundEffect, soundEffectParamsSchema } from './generators/sound
|
|
|
8
8
|
export { generateImageAsset, imageAssetParamsSchema } from './generators/image.js';
|
|
9
9
|
export { generateReferenceImage, referenceImageParamsSchema, REFERENCE_IMAGE_WIDTH, REFERENCE_IMAGE_HEIGHT, } from './generators/reference.js';
|
|
10
10
|
export { generateCharacter, characterParamsSchema } from './generators/character.js';
|
|
11
|
+
export { findLibraryCharacter, getCharacterLibraryMode, getCharacterLibraryThreshold, DEFAULT_LIBRARY_THRESHOLD, LIBRARY_CANDIDATE_LIMIT, } from './generators/character-library.js';
|
|
11
12
|
export { generateProp, propParamsSchema } from './generators/prop.js';
|
|
12
13
|
export { generatePropVoxels, propVoxelParamsSchema, propVoxelGrids } from './generators/prop-voxel.js';
|
|
13
14
|
export { generateAnimationAsset, animationParamsSchema, getConfiguredAnimationModel, ANIMATION_MODEL_TEXT_TO_MOTION_3, ANIMATION_MODEL_TEXT_TO_MOTION_2, ANIMATION_MODEL_OLDER, } from './generators/animation.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5F,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAErF,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEvG,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,gCAAgC,EAChC,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,oEAAoE;AACpE,gFAAgF;AAChF,gFAAgF;AAChF,oEAAoE;AACpE,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5F,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAErF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAO3C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEvG,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,gCAAgC,EAChC,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,oEAAoE;AACpE,gFAAgF;AAChF,gFAAgF;AAChF,oEAAoE;AACpE,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"judge-prompt.d.ts","sourceRoot":"","sources":["../src/judge-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,yDAAyD;AACzD,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,glEA4ByC,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAahE;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,4kCAeW,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmBpD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClF,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrF;AAyBD,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAChC,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,UAAU,GACX,EAAE,gBAAgB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"judge-prompt.d.ts","sourceRoot":"","sources":["../src/judge-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,yDAAyD;AACzD,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,glEA4ByC,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAahE;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,4kCAeW,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmBpD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClF,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrF;AAyBD,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAChC,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,UAAU,GACX,EAAE,gBAAgB,GAAG,MAAM,CAsD3B"}
|
package/dist/judge-prompt.js
CHANGED
|
@@ -205,7 +205,12 @@ export function buildJudgeRubric({ designText, artDirection, previous, genre, pl
|
|
|
205
205
|
// verdict, whose findings it has to adjudicate.
|
|
206
206
|
if (previous)
|
|
207
207
|
sections.push(buildPriorVerdictSection(previous));
|
|
208
|
-
sections.push(
|
|
208
|
+
sections.push('Findings must be specific, visible in the frame, and actionable by a developer — name the '
|
|
209
|
+
+ 'object or region and say what to change. Report at most 3, most severe first, and report '
|
|
210
|
+
+ 'FEWER when there are fewer: an empty list is the correct, expected answer for a frame whose '
|
|
211
|
+
+ 'only remaining flaws are matters of taste. Never pad the list to reach three — a '
|
|
212
|
+
+ 'manufactured finding costs a developer a real fix somewhere else, and one that only names '
|
|
213
|
+
+ `the art direction cannot be acted on at all. Dimensions to score: ${JUDGE_DIMENSIONS.join(', ')}.`);
|
|
209
214
|
return sections.join('\n\n');
|
|
210
215
|
}
|
|
211
216
|
//# sourceMappingURL=judge-prompt.js.map
|
package/dist/judge-prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"judge-prompt.js","sourceRoot":"","sources":["../src/judge-prompt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"judge-prompt.js","sourceRoot":"","sources":["../src/judge-prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -70,6 +70,7 @@ export interface CoreLogger {
|
|
|
70
70
|
export interface ForgerClient {
|
|
71
71
|
hasCredentials(): boolean;
|
|
72
72
|
getMissingCredentialsMessage(): string;
|
|
73
|
+
get<T = unknown>(endpoint: string, query: Record<string, string | number | boolean | undefined>, loggerName: string): Promise<T>;
|
|
73
74
|
post<T = unknown>(endpoint: string, payload: unknown, loggerName: string): Promise<T>;
|
|
74
75
|
postJobAndWait<T = unknown>(jobsEndpoint: string, payload: unknown, loggerName: string): Promise<T>;
|
|
75
76
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAChE;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,cAAc,IAAI,OAAO,CAAC;IAC1B,4BAA4B,IAAI,MAAM,CAAC;IACvC,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtF,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACrG;AAED,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,gFAAgF;IAChF,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAChE;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,cAAc,IAAI,OAAO,CAAC;IAC1B,4BAA4B,IAAI,MAAM,CAAC;IACvC,GAAG,CAAC,CAAC,GAAG,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAC5D,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtF,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACrG;AAED,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,gFAAgF;IAChF,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB"}
|