@pinepaper.studio/mcp-server 1.6.19 → 1.6.20
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.de.md +1 -1
- package/README.es.md +1 -1
- package/README.fr.md +1 -1
- package/README.hi.md +1 -1
- package/README.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +86 -4
- package/README.pt-BR.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/build-info.json +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/ontology/upstream-vocabulary.d.ts +2 -2
- package/dist/ontology/upstream-vocabulary.js +2 -2
- package/dist/ontology/vocabulary.d.ts.map +1 -1
- package/dist/ontology/vocabulary.js +8 -0
- package/dist/ontology/vocabulary.js.map +1 -1
- package/dist/tools/choreograph.d.ts +64 -0
- package/dist/tools/choreograph.d.ts.map +1 -0
- package/dist/tools/choreograph.js +336 -0
- package/dist/tools/choreograph.js.map +1 -0
- package/dist/tools/compact-descriptions.js +1 -1
- package/dist/tools/definitions.d.ts +10 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +284 -25
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/effect-check.d.ts +26 -0
- package/dist/tools/effect-check.d.ts.map +1 -0
- package/dist/tools/effect-check.js +129 -0
- package/dist/tools/effect-check.js.map +1 -0
- package/dist/tools/effect-class.d.ts +31 -0
- package/dist/tools/effect-class.d.ts.map +1 -0
- package/dist/tools/effect-class.js +170 -0
- package/dist/tools/effect-class.js.map +1 -0
- package/dist/tools/engine-lists.d.ts +6 -6
- package/dist/tools/engine-lists.d.ts.map +1 -1
- package/dist/tools/engine-lists.js +11 -9
- package/dist/tools/engine-lists.js.map +1 -1
- package/dist/tools/engine-methods.d.ts.map +1 -1
- package/dist/tools/engine-methods.js +8 -0
- package/dist/tools/engine-methods.js.map +1 -1
- package/dist/tools/engine-surface.d.ts +1 -1
- package/dist/tools/engine-surface.d.ts.map +1 -1
- package/dist/tools/engine-surface.js +188 -10
- package/dist/tools/engine-surface.js.map +1 -1
- package/dist/tools/handlers/export.d.ts.map +1 -1
- package/dist/tools/handlers/export.js +8 -1
- package/dist/tools/handlers/export.js.map +1 -1
- package/dist/tools/handlers.d.ts +23 -0
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +176 -5
- package/dist/tools/handlers.js.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/minimal-descriptions.d.ts.map +1 -1
- package/dist/tools/minimal-descriptions.js +9 -3
- package/dist/tools/minimal-descriptions.js.map +1 -1
- package/dist/tools/shape-params.d.ts +2 -2
- package/dist/tools/shape-params.d.ts.map +1 -1
- package/dist/tools/shape-params.js +24 -2
- package/dist/tools/shape-params.js.map +1 -1
- package/dist/tools/stick-vocabulary.d.ts +1 -1
- package/dist/tools/stick-vocabulary.js +1 -1
- package/dist/tools/toolkits.d.ts.map +1 -1
- package/dist/tools/toolkits.js +6 -0
- package/dist/tools/toolkits.js.map +1 -1
- package/dist/types/code-generator.d.ts +35 -1
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +538 -24
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +1617 -273
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +164 -2
- package/dist/types/schemas.js.map +1 -1
- package/manifest.json +25 -1
- package/package.json +4 -3
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NO SILENT SUCCESS, the runtime half. A call classed 'mutates'
|
|
3
|
+
* (effect-class.ts) is fingerprinted before and after; a success that changed
|
|
4
|
+
* nothing measurable is FLAGGED in the result text the model reads, and a
|
|
5
|
+
* result that names an item not on the canvas FAILS.
|
|
6
|
+
*
|
|
7
|
+
* Flag, not fail: an idempotent call (a background set to the colour it
|
|
8
|
+
* already is) rightly changes nothing, and refusing it would be the mirror of
|
|
9
|
+
* the bug this hunts. A named item that does not exist is no such case — it
|
|
10
|
+
* is a contradiction (add_marker's invented 'marker_added').
|
|
11
|
+
*
|
|
12
|
+
* The fingerprint is the AUTHORED scene — items' data, un-animated style and
|
|
13
|
+
* placement, relations, background, canvas, map colours, placed sounds — kept
|
|
14
|
+
* IN THE PAGE between the two probes; only the verdict crosses the wire. It
|
|
15
|
+
* was the engine's full snapshot until the first live sweep: that carries the
|
|
16
|
+
* playhead and live transforms, so during playback every no-op looked changed.
|
|
17
|
+
*/
|
|
18
|
+
export declare const EFFECT_BEFORE_JS = "(function () {\n function __ppFingerprint() {\n // AUTHORED state, not the live frame. The engine's full snapshot carries the\n // playhead and every item's CURRENT transform, so while the timeline plays\n // every call looked changed \u2014 the three misses of the first live sweep\n // (re-applied colour, same canvas size, a repeated highlight). Animated\n // values are left out; what a call can author is kept.\n const o = {};\n const playing = !!app.isPlayingKeyframes;\n const plain = function (k, v) {\n if (typeof k === 'string' && (k.charAt(0) === '_' || /^(selected|hovered|isHovered|cached|lastRender|renderTick|frame|playbackTime|time)$/.test(k))) return undefined;\n if (typeof v === 'function') return undefined;\n if (v && typeof v === 'object' && (v.data instanceof Uint8ClampedArray || (typeof ImageData !== 'undefined' && v instanceof ImageData))) return undefined;\n if (v && typeof v === 'object' && typeof v.toCSS === 'function') return v.toCSS(true);\n return v;\n };\n const S = function (v) { try { return JSON.stringify(v, plain); } catch (e) { return ''; } };\n try {\n const reg = app.itemRegistry && app.itemRegistry.getAll ? app.itemRegistry.getAll() : null;\n if (reg) {\n o.items = reg.map(function (e) {\n const it = e.item || {};\n const d = it.data || {};\n const keys = Array.isArray(d.keyframes) ? d.keyframes : [];\n const animated = {};\n keys.forEach(function (k) { Object.keys((k && k.properties) || {}).forEach(function (p) { animated[p] = 1; }); });\n const moves = keys.length || (d.animationType && d.animationType !== 'none');\n const style = {};\n ['fillColor', 'strokeColor', 'strokeWidth', 'opacity', 'fontSize', 'fontFamily', 'content', 'visible', 'blendMode'].forEach(function (p) {\n if (!animated[p] && !(p === 'fillColor' && animated.color) && it[p] !== undefined) style[p] = plain(p, it[p]);\n });\n if (!moves && it.position) style.at = [Math.round(it.position.x), Math.round(it.position.y)];\n if (!moves && it.scaling) style.scale = [Math.round(it.scaling.x * 1000), Math.round(it.scaling.y * 1000)];\n if (!moves && typeof it.rotation === 'number') style.rot = Math.round(it.rotation * 100);\n return (e.id || e.itemId) + '|' + (e.type || '') + '|' + S(d) + '|' + S(style);\n }).join('\\n');\n }\n } catch (e) {}\n try { const rr = app.relationRegistry; if (rr && rr.exportForSave) o.relations = S(rr.exportForSave()); } catch (e) {}\n try { if (app.listRenderHooks) o.renderHooks = S(app.listRenderHooks()); } catch (e) {}\n // SCENE-LEVEL STATE OUTSIDE ITEMS (sweep v2: add_filter and camera_animate\n // were real changes read as none). The camera's track is a relation on the\n // pseudo-source 'camera', which no registry item carries.\n try { if (app.filterSystem && app.filterSystem.exportForSave) o.filters = S(app.filterSystem.exportForSave()); } catch (e) {}\n try {\n // Camera keyframes live in relationRegistry._cameraAnimation.params (a\n // virtual item, no registry entry), read through getCameraAnimationParams.\n // getRelations('camera') looks in the associations and is always empty\n // for them (sweep v3: camera_animate still read as no change).\n const rr = app.relationRegistry;\n const cam = rr && rr.getCameraAnimationParams ? rr.getCameraAnimationParams() : null;\n const tilt = rr && rr.cameraTilt;\n o.camera = S([cam, tilt && tilt.serialize ? tilt.serialize() : null]);\n } catch (e) {}\n try { const c = app.config || {}; o.background = S([c.currentBackgroundMode, c.currentBackgroundGenerator, c.generatorParams, app.canvasEl && app.canvasEl.style && app.canvasEl.style.backgroundColor]); } catch (e) {}\n try { const cs = app.getCanvasSize && app.getCanvasSize(); if (cs) o.canvas = cs.width + 'x' + cs.height + (cs.unbounded ? ':unbounded' : ''); } catch (e) {}\n try {\n // The view moves on its own while a camera animation plays.\n const v = app.view || (typeof paper !== 'undefined' && paper.view);\n if (!playing && v && v.center) o.view = Math.round(v.zoom * 1000) + '@' + Math.round(v.center.x) + ',' + Math.round(v.center.y);\n } catch (e) {}\n try { if (app.mapSystem && app.mapSystem.getRegionOverrideCount) o.mapColours = app.mapSystem.getRegionOverrideCount() + ':' + S(app.mapSystem._regionColorOverrides ? Array.from(app.mapSystem._regionColorOverrides.entries()) : null); } catch (e) {}\n try { if (app._initialized && app._initialized.has('synthSounds')) o.sounds = S(app.synthSounds.list().map(function (x) { return [x.id, x.startTime, x.duration]; })); } catch (e) {}\n return o;\n}\n window.__ppEffectBefore = __ppFingerprint();\n return { ok: true };\n})();";
|
|
19
|
+
/** After-probe: compares against the before fingerprint; checks the named ids exist. */
|
|
20
|
+
export declare function effectAfterJs(ids: string[]): string;
|
|
21
|
+
/** The item ids a result names as made or touched (itemId, itemIds, ids). */
|
|
22
|
+
export declare function namedItemIds(result: unknown): string[];
|
|
23
|
+
/** Calls whose returned id is legitimately gone afterwards. */
|
|
24
|
+
export declare function idMayBeGone(tool: string, action: string | undefined): boolean;
|
|
25
|
+
export declare const NO_CHANGE_NOTE: (checked: string[]) => string;
|
|
26
|
+
//# sourceMappingURL=effect-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-check.d.ts","sourceRoot":"","sources":["../../src/tools/effect-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAoEH,eAAO,MAAM,gBAAgB,qqJAIvB,CAAC;AAEP,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAkBnD;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAQtD;AAED,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE7E;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,WAGuC,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NO SILENT SUCCESS, the runtime half. A call classed 'mutates'
|
|
3
|
+
* (effect-class.ts) is fingerprinted before and after; a success that changed
|
|
4
|
+
* nothing measurable is FLAGGED in the result text the model reads, and a
|
|
5
|
+
* result that names an item not on the canvas FAILS.
|
|
6
|
+
*
|
|
7
|
+
* Flag, not fail: an idempotent call (a background set to the colour it
|
|
8
|
+
* already is) rightly changes nothing, and refusing it would be the mirror of
|
|
9
|
+
* the bug this hunts. A named item that does not exist is no such case — it
|
|
10
|
+
* is a contradiction (add_marker's invented 'marker_added').
|
|
11
|
+
*
|
|
12
|
+
* The fingerprint is the AUTHORED scene — items' data, un-animated style and
|
|
13
|
+
* placement, relations, background, canvas, map colours, placed sounds — kept
|
|
14
|
+
* IN THE PAGE between the two probes; only the verdict crosses the wire. It
|
|
15
|
+
* was the engine's full snapshot until the first live sweep: that carries the
|
|
16
|
+
* playhead and live transforms, so during playback every no-op looked changed.
|
|
17
|
+
*/
|
|
18
|
+
/** In-page fingerprint, shared by both probes. */
|
|
19
|
+
const FINGERPRINT_JS = `function __ppFingerprint() {
|
|
20
|
+
// AUTHORED state, not the live frame. The engine's full snapshot carries the
|
|
21
|
+
// playhead and every item's CURRENT transform, so while the timeline plays
|
|
22
|
+
// every call looked changed — the three misses of the first live sweep
|
|
23
|
+
// (re-applied colour, same canvas size, a repeated highlight). Animated
|
|
24
|
+
// values are left out; what a call can author is kept.
|
|
25
|
+
const o = {};
|
|
26
|
+
const playing = !!app.isPlayingKeyframes;
|
|
27
|
+
const plain = function (k, v) {
|
|
28
|
+
if (typeof k === 'string' && (k.charAt(0) === '_' || /^(selected|hovered|isHovered|cached|lastRender|renderTick|frame|playbackTime|time)$/.test(k))) return undefined;
|
|
29
|
+
if (typeof v === 'function') return undefined;
|
|
30
|
+
if (v && typeof v === 'object' && (v.data instanceof Uint8ClampedArray || (typeof ImageData !== 'undefined' && v instanceof ImageData))) return undefined;
|
|
31
|
+
if (v && typeof v === 'object' && typeof v.toCSS === 'function') return v.toCSS(true);
|
|
32
|
+
return v;
|
|
33
|
+
};
|
|
34
|
+
const S = function (v) { try { return JSON.stringify(v, plain); } catch (e) { return ''; } };
|
|
35
|
+
try {
|
|
36
|
+
const reg = app.itemRegistry && app.itemRegistry.getAll ? app.itemRegistry.getAll() : null;
|
|
37
|
+
if (reg) {
|
|
38
|
+
o.items = reg.map(function (e) {
|
|
39
|
+
const it = e.item || {};
|
|
40
|
+
const d = it.data || {};
|
|
41
|
+
const keys = Array.isArray(d.keyframes) ? d.keyframes : [];
|
|
42
|
+
const animated = {};
|
|
43
|
+
keys.forEach(function (k) { Object.keys((k && k.properties) || {}).forEach(function (p) { animated[p] = 1; }); });
|
|
44
|
+
const moves = keys.length || (d.animationType && d.animationType !== 'none');
|
|
45
|
+
const style = {};
|
|
46
|
+
['fillColor', 'strokeColor', 'strokeWidth', 'opacity', 'fontSize', 'fontFamily', 'content', 'visible', 'blendMode'].forEach(function (p) {
|
|
47
|
+
if (!animated[p] && !(p === 'fillColor' && animated.color) && it[p] !== undefined) style[p] = plain(p, it[p]);
|
|
48
|
+
});
|
|
49
|
+
if (!moves && it.position) style.at = [Math.round(it.position.x), Math.round(it.position.y)];
|
|
50
|
+
if (!moves && it.scaling) style.scale = [Math.round(it.scaling.x * 1000), Math.round(it.scaling.y * 1000)];
|
|
51
|
+
if (!moves && typeof it.rotation === 'number') style.rot = Math.round(it.rotation * 100);
|
|
52
|
+
return (e.id || e.itemId) + '|' + (e.type || '') + '|' + S(d) + '|' + S(style);
|
|
53
|
+
}).join('\\n');
|
|
54
|
+
}
|
|
55
|
+
} catch (e) {}
|
|
56
|
+
try { const rr = app.relationRegistry; if (rr && rr.exportForSave) o.relations = S(rr.exportForSave()); } catch (e) {}
|
|
57
|
+
try { if (app.listRenderHooks) o.renderHooks = S(app.listRenderHooks()); } catch (e) {}
|
|
58
|
+
// SCENE-LEVEL STATE OUTSIDE ITEMS (sweep v2: add_filter and camera_animate
|
|
59
|
+
// were real changes read as none). The camera's track is a relation on the
|
|
60
|
+
// pseudo-source 'camera', which no registry item carries.
|
|
61
|
+
try { if (app.filterSystem && app.filterSystem.exportForSave) o.filters = S(app.filterSystem.exportForSave()); } catch (e) {}
|
|
62
|
+
try {
|
|
63
|
+
// Camera keyframes live in relationRegistry._cameraAnimation.params (a
|
|
64
|
+
// virtual item, no registry entry), read through getCameraAnimationParams.
|
|
65
|
+
// getRelations('camera') looks in the associations and is always empty
|
|
66
|
+
// for them (sweep v3: camera_animate still read as no change).
|
|
67
|
+
const rr = app.relationRegistry;
|
|
68
|
+
const cam = rr && rr.getCameraAnimationParams ? rr.getCameraAnimationParams() : null;
|
|
69
|
+
const tilt = rr && rr.cameraTilt;
|
|
70
|
+
o.camera = S([cam, tilt && tilt.serialize ? tilt.serialize() : null]);
|
|
71
|
+
} catch (e) {}
|
|
72
|
+
try { const c = app.config || {}; o.background = S([c.currentBackgroundMode, c.currentBackgroundGenerator, c.generatorParams, app.canvasEl && app.canvasEl.style && app.canvasEl.style.backgroundColor]); } catch (e) {}
|
|
73
|
+
try { const cs = app.getCanvasSize && app.getCanvasSize(); if (cs) o.canvas = cs.width + 'x' + cs.height + (cs.unbounded ? ':unbounded' : ''); } catch (e) {}
|
|
74
|
+
try {
|
|
75
|
+
// The view moves on its own while a camera animation plays.
|
|
76
|
+
const v = app.view || (typeof paper !== 'undefined' && paper.view);
|
|
77
|
+
if (!playing && v && v.center) o.view = Math.round(v.zoom * 1000) + '@' + Math.round(v.center.x) + ',' + Math.round(v.center.y);
|
|
78
|
+
} catch (e) {}
|
|
79
|
+
try { if (app.mapSystem && app.mapSystem.getRegionOverrideCount) o.mapColours = app.mapSystem.getRegionOverrideCount() + ':' + S(app.mapSystem._regionColorOverrides ? Array.from(app.mapSystem._regionColorOverrides.entries()) : null); } catch (e) {}
|
|
80
|
+
try { if (app._initialized && app._initialized.has('synthSounds')) o.sounds = S(app.synthSounds.list().map(function (x) { return [x.id, x.startTime, x.duration]; })); } catch (e) {}
|
|
81
|
+
return o;
|
|
82
|
+
}`;
|
|
83
|
+
export const EFFECT_BEFORE_JS = `(function () {
|
|
84
|
+
${FINGERPRINT_JS}
|
|
85
|
+
window.__ppEffectBefore = __ppFingerprint();
|
|
86
|
+
return { ok: true };
|
|
87
|
+
})();`;
|
|
88
|
+
/** After-probe: compares against the before fingerprint; checks the named ids exist. */
|
|
89
|
+
export function effectAfterJs(ids) {
|
|
90
|
+
return `(function () {
|
|
91
|
+
${FINGERPRINT_JS}
|
|
92
|
+
const a = window.__ppEffectBefore || null;
|
|
93
|
+
const b = __ppFingerprint();
|
|
94
|
+
window.__ppEffectBefore = null;
|
|
95
|
+
const checked = Object.keys(b);
|
|
96
|
+
const changed = a ? checked.filter(function (k) { return a[k] !== b[k]; }) : null;
|
|
97
|
+
const ids = ${JSON.stringify(ids)};
|
|
98
|
+
const missing = ids.filter(function (id) {
|
|
99
|
+
try {
|
|
100
|
+
if (app.getItemById && app.getItemById(id)) return false;
|
|
101
|
+
if (app.itemRegistry && app.itemRegistry.get && app.itemRegistry.get(id)) return false;
|
|
102
|
+
} catch (e) {}
|
|
103
|
+
return true;
|
|
104
|
+
});
|
|
105
|
+
return { ok: !!a, checked: checked, changed: changed, missing: missing };
|
|
106
|
+
})();`;
|
|
107
|
+
}
|
|
108
|
+
/** The item ids a result names as made or touched (itemId, itemIds, ids). */
|
|
109
|
+
export function namedItemIds(result) {
|
|
110
|
+
if (!result || typeof result !== 'object')
|
|
111
|
+
return [];
|
|
112
|
+
const r = result;
|
|
113
|
+
const out = [];
|
|
114
|
+
const add = (v) => { if (typeof v === 'string' && /^item_\d+$/.test(v))
|
|
115
|
+
out.push(v); };
|
|
116
|
+
add(r.itemId);
|
|
117
|
+
for (const k of ['itemIds', 'ids'])
|
|
118
|
+
if (Array.isArray(r[k]))
|
|
119
|
+
r[k].forEach(add);
|
|
120
|
+
return [...new Set(out)].slice(0, 50);
|
|
121
|
+
}
|
|
122
|
+
/** Calls whose returned id is legitimately gone afterwards. */
|
|
123
|
+
export function idMayBeGone(tool, action) {
|
|
124
|
+
return /delete|remove|clear|ungroup|break_apart|unhighlight/.test(`${tool}:${action ?? ''}`);
|
|
125
|
+
}
|
|
126
|
+
export const NO_CHANGE_NOTE = (checked) => `⚠️ NO CHANGE: this call reported success, but nothing it could have changed did (checked: ${checked.join(', ')}). `
|
|
127
|
+
+ 'If you expected a change, it did not happen — check the ids and arguments before building on it. '
|
|
128
|
+
+ '(Re-applying a value an item already has is the one case where this is expected.)';
|
|
129
|
+
//# sourceMappingURL=effect-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-check.js","sourceRoot":"","sources":["../../src/tools/effect-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,kDAAkD;AAClD,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DrB,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,cAAc;;;MAGZ,CAAC;AAEP,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,GAAa;IACzC,OAAO;IACL,cAAc;;;;;;gBAMF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;;;;;;;;MAS7B,CAAC;AACP,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACrD,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,EAAE,GAAG,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAG,CAAC,CAAC,CAAC,CAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAA0B;IAClE,OAAO,qDAAqD,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAiB,EAAE,EAAE,CAClD,6FAA6F,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;MAClH,mGAAmG;MACnG,mFAAmF,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NO SILENT SUCCESS, the classification half (tracker: handler-layer sweep).
|
|
3
|
+
*
|
|
4
|
+
* Every tool, and every action of an action-dispatched tool, is one of:
|
|
5
|
+
* - 'mutates' it exists to change the scene. A success that changed
|
|
6
|
+
* nothing measurable is flagged (the runtime half).
|
|
7
|
+
* - 'read-only' it reads; it must not change the scene.
|
|
8
|
+
* - 'side-effect' its effect is outside the scene: a file, playback, a sound
|
|
9
|
+
* heard now, UI state (selection, rulers, modes), the server.
|
|
10
|
+
* - 'unchecked' it changes state the scene fingerprint cannot see (the 3D
|
|
11
|
+
* world, physics bodies, the font studio, rig internals,
|
|
12
|
+
* registries of definitions), or it only sometimes changes the
|
|
13
|
+
* scene. Named here as a blind spot rather than guessed at,
|
|
14
|
+
* because a false "nothing changed" teaches a model to ignore
|
|
15
|
+
* the flag.
|
|
16
|
+
*
|
|
17
|
+
* The class behind D59, D37, D62 and the audioTracks drop: a handler that
|
|
18
|
+
* reported success for work the engine did not do.
|
|
19
|
+
*/
|
|
20
|
+
export type EffectClass = 'mutates' | 'read-only' | 'side-effect' | 'unchecked';
|
|
21
|
+
/** Tools with no action enum and no readOnlyHint: each is named, so a new one fails the test until it is. */
|
|
22
|
+
export declare const TOOL_CLASS: Readonly<Record<string, EffectClass>>;
|
|
23
|
+
/** Whole action-dispatched tools whose state the fingerprint cannot see. */
|
|
24
|
+
export declare const UNCHECKED_TOOLS: ReadonlySet<string>;
|
|
25
|
+
/** Whole action-dispatched tools that only touch UI or session state. */
|
|
26
|
+
export declare const SIDE_EFFECT_TOOLS: ReadonlySet<string>;
|
|
27
|
+
/** Per-action exceptions to the prefix rules, `tool:action`. */
|
|
28
|
+
export declare const ACTION_CLASS: Readonly<Record<string, EffectClass>>;
|
|
29
|
+
/** The class of one call. `readOnlyHint` comes from the tool's annotations. */
|
|
30
|
+
export declare function effectClass(tool: string, action: string | undefined, readOnlyHint: boolean | undefined): EffectClass;
|
|
31
|
+
//# sourceMappingURL=effect-class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-class.d.ts","sourceRoot":"","sources":["../../src/tools/effect-class.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,CAAC;AAEhF,6GAA6G;AAC7G,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAuE3D,CAAC;AAEH,4EAA4E;AAC5E,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAK9C,CAAC;AAEH,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAGhD,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAsC7D,CAAC;AAKH,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAapH"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NO SILENT SUCCESS, the classification half (tracker: handler-layer sweep).
|
|
3
|
+
*
|
|
4
|
+
* Every tool, and every action of an action-dispatched tool, is one of:
|
|
5
|
+
* - 'mutates' it exists to change the scene. A success that changed
|
|
6
|
+
* nothing measurable is flagged (the runtime half).
|
|
7
|
+
* - 'read-only' it reads; it must not change the scene.
|
|
8
|
+
* - 'side-effect' its effect is outside the scene: a file, playback, a sound
|
|
9
|
+
* heard now, UI state (selection, rulers, modes), the server.
|
|
10
|
+
* - 'unchecked' it changes state the scene fingerprint cannot see (the 3D
|
|
11
|
+
* world, physics bodies, the font studio, rig internals,
|
|
12
|
+
* registries of definitions), or it only sometimes changes the
|
|
13
|
+
* scene. Named here as a blind spot rather than guessed at,
|
|
14
|
+
* because a false "nothing changed" teaches a model to ignore
|
|
15
|
+
* the flag.
|
|
16
|
+
*
|
|
17
|
+
* The class behind D59, D37, D62 and the audioTracks drop: a handler that
|
|
18
|
+
* reported success for work the engine did not do.
|
|
19
|
+
*/
|
|
20
|
+
/** Tools with no action enum and no readOnlyHint: each is named, so a new one fails the test until it is. */
|
|
21
|
+
export const TOOL_CLASS = Object.freeze({
|
|
22
|
+
pinepaper_set_background_color: 'mutates',
|
|
23
|
+
pinepaper_set_canvas_size: 'mutates',
|
|
24
|
+
pinepaper_clear_canvas: 'mutates',
|
|
25
|
+
pinepaper_refresh_page: 'side-effect',
|
|
26
|
+
pinepaper_create_item: 'mutates',
|
|
27
|
+
pinepaper_modify_item: 'mutates',
|
|
28
|
+
pinepaper_delete_item: 'mutates',
|
|
29
|
+
pinepaper_create_glossy_sphere: 'mutates',
|
|
30
|
+
pinepaper_create_diagonal_stripes: 'mutates',
|
|
31
|
+
pinepaper_import_motion_capture: 'unchecked', // rig internals
|
|
32
|
+
pinepaper_import_svg: 'mutates',
|
|
33
|
+
pinepaper_import_mermaid: 'mutates',
|
|
34
|
+
pinepaper_import_image: 'mutates',
|
|
35
|
+
pinepaper_import_asset: 'mutates',
|
|
36
|
+
pinepaper_batch_create: 'mutates',
|
|
37
|
+
pinepaper_batch_modify: 'mutates',
|
|
38
|
+
pinepaper_create_grid: 'mutates',
|
|
39
|
+
pinepaper_geometry: 'unchecked', // creates an item only when asked
|
|
40
|
+
pinepaper_equation_path: 'mutates',
|
|
41
|
+
pinepaper_beat_cuts: 'unchecked', // splits a clip only when asked
|
|
42
|
+
pinepaper_generate: 'unchecked', // cloud job; places when it finishes
|
|
43
|
+
pinepaper_generate_status: 'unchecked',
|
|
44
|
+
pinepaper_render_batch: 'side-effect', // exports per row
|
|
45
|
+
pinepaper_detect_objects: 'unchecked', // nodes only with asNodes
|
|
46
|
+
pinepaper_extract_object: 'mutates',
|
|
47
|
+
pinepaper_capture_frames: 'side-effect',
|
|
48
|
+
pinepaper_crop_image: 'mutates',
|
|
49
|
+
pinepaper_chroma_key: 'mutates',
|
|
50
|
+
pinepaper_shatter_image: 'mutates',
|
|
51
|
+
pinepaper_import_layered_character: 'mutates',
|
|
52
|
+
pinepaper_character: 'mutates',
|
|
53
|
+
pinepaper_instantiate_ontology: 'mutates',
|
|
54
|
+
pinepaper_add_relation: 'mutates',
|
|
55
|
+
pinepaper_remove_relation: 'mutates',
|
|
56
|
+
pinepaper_register_custom_relation: 'unchecked', // a definition, not the scene
|
|
57
|
+
pinepaper_execute_custom_code: 'unchecked', // may only read; has its own rollback
|
|
58
|
+
pinepaper_animate: 'mutates',
|
|
59
|
+
pinepaper_keyframe_animate: 'mutates',
|
|
60
|
+
pinepaper_apply_animated_mask: 'mutates',
|
|
61
|
+
pinepaper_apply_custom_mask: 'mutates',
|
|
62
|
+
pinepaper_remove_mask: 'mutates',
|
|
63
|
+
pinepaper_camera_animate: 'mutates',
|
|
64
|
+
pinepaper_create_scene: 'mutates',
|
|
65
|
+
pinepaper_apply_template: 'mutates',
|
|
66
|
+
pinepaper_create_diagram_shape: 'mutates',
|
|
67
|
+
pinepaper_connect: 'mutates',
|
|
68
|
+
pinepaper_connect_ports: 'mutates',
|
|
69
|
+
pinepaper_add_ports: 'mutates',
|
|
70
|
+
pinepaper_auto_layout: 'mutates',
|
|
71
|
+
pinepaper_update_connector: 'mutates',
|
|
72
|
+
pinepaper_remove_connector: 'mutates',
|
|
73
|
+
pinepaper_create_letter_collage: 'mutates',
|
|
74
|
+
pinepaper_animate_letter_collage: 'mutates',
|
|
75
|
+
pinepaper_execute_generator: 'mutates',
|
|
76
|
+
pinepaper_apply_effect: 'mutates',
|
|
77
|
+
pinepaper_add_filter: 'mutates',
|
|
78
|
+
pinepaper_styled_scene: 'mutates',
|
|
79
|
+
pinepaper_choreograph: 'mutates',
|
|
80
|
+
pinepaper_morph_sequence: 'mutates',
|
|
81
|
+
pinepaper_place_on_surface: 'mutates',
|
|
82
|
+
pinepaper_import_scene: 'mutates',
|
|
83
|
+
pinepaper_browser_connect: 'side-effect',
|
|
84
|
+
pinepaper_browser_disconnect: 'side-effect',
|
|
85
|
+
pinepaper_agent_start_job: 'side-effect', // clearing an empty canvas changes nothing, rightly
|
|
86
|
+
pinepaper_agent_end_job: 'side-effect',
|
|
87
|
+
pinepaper_agent_reset: 'side-effect',
|
|
88
|
+
pinepaper_agent_batch_execute: 'mutates',
|
|
89
|
+
pinepaper_p5_draw: 'mutates',
|
|
90
|
+
pinepaper_register_item: 'mutates',
|
|
91
|
+
pinepaper_set_toolkit: 'side-effect',
|
|
92
|
+
});
|
|
93
|
+
/** Whole action-dispatched tools whose state the fingerprint cannot see. */
|
|
94
|
+
export const UNCHECKED_TOOLS = new Set([
|
|
95
|
+
'pinepaper_world3d', 'pinepaper_rigging', 'pinepaper_globe', 'pinepaper_physics',
|
|
96
|
+
'pinepaper_font', 'pinepaper_interaction', 'pinepaper_sprite_sheet', 'pinepaper_game',
|
|
97
|
+
'pinepaper_relight', 'pinepaper_shader_graph', 'pinepaper_component', 'pinepaper_comment',
|
|
98
|
+
'pinepaper_template_params', 'pinepaper_design_system', 'pinepaper_motion', 'pinepaper_magic',
|
|
99
|
+
]);
|
|
100
|
+
/** Whole action-dispatched tools that only touch UI or session state. */
|
|
101
|
+
export const SIDE_EFFECT_TOOLS = new Set([
|
|
102
|
+
'pinepaper_selection', 'pinepaper_measurement', 'pinepaper_diagram_mode', 'pinepaper_play_timeline',
|
|
103
|
+
'pinepaper_scene_playback', 'pinepaper_export_store',
|
|
104
|
+
]);
|
|
105
|
+
/** Per-action exceptions to the prefix rules, `tool:action`. */
|
|
106
|
+
export const ACTION_CLASS = Object.freeze({
|
|
107
|
+
'pinepaper_provenance:record': 'unchecked',
|
|
108
|
+
'pinepaper_event:pulse': 'side-effect',
|
|
109
|
+
'pinepaper_lasso:activate': 'side-effect',
|
|
110
|
+
'pinepaper_sound:define_instrument': 'unchecked',
|
|
111
|
+
'pinepaper_sound:define_percussion': 'unchecked',
|
|
112
|
+
'pinepaper_sound:define_sfx': 'unchecked',
|
|
113
|
+
'pinepaper_story:distill': 'read-only',
|
|
114
|
+
'pinepaper_story:plan_book': 'read-only',
|
|
115
|
+
'pinepaper_brand_kit:plan': 'read-only',
|
|
116
|
+
'pinepaper_brand_kit:from_url': 'read-only',
|
|
117
|
+
'pinepaper_brand_kit:clear': 'side-effect', // page state; the canvas keeps its colours
|
|
118
|
+
'pinepaper_audio_beats:analyze': 'read-only',
|
|
119
|
+
'pinepaper_compose:apply': 'mutates',
|
|
120
|
+
'pinepaper_camera:state': 'read-only',
|
|
121
|
+
'pinepaper_camera:fit_view': 'side-effect',
|
|
122
|
+
'pinepaper_camera:stop': 'side-effect',
|
|
123
|
+
'pinepaper_media:upload_video': 'mutates',
|
|
124
|
+
'pinepaper_manage_scenes:save': 'side-effect',
|
|
125
|
+
'pinepaper_manage_scenes:rename': 'side-effect',
|
|
126
|
+
'pinepaper_manage_scenes:duplicate': 'side-effect',
|
|
127
|
+
'pinepaper_manage_scenes:reorder': 'side-effect',
|
|
128
|
+
'pinepaper_manage_scenes:delete': 'side-effect',
|
|
129
|
+
'pinepaper_manage_scenes:import': 'side-effect',
|
|
130
|
+
'pinepaper_history:get_state': 'read-only',
|
|
131
|
+
'pinepaper_artboard:list_presets': 'read-only',
|
|
132
|
+
'pinepaper_image_filter:analyze_palette': 'read-only',
|
|
133
|
+
'pinepaper_map_regions:get_at_point': 'read-only',
|
|
134
|
+
'pinepaper_map_regions:get_highlighted': 'read-only',
|
|
135
|
+
'pinepaper_map_regions:select': 'side-effect',
|
|
136
|
+
'pinepaper_map_regions:deselect': 'side-effect',
|
|
137
|
+
'pinepaper_construction_sequence:clear': 'mutates',
|
|
138
|
+
'pinepaper_original_character:bases': 'read-only',
|
|
139
|
+
'pinepaper_look:grid': 'side-effect', // renders a contact sheet; the scene is left as it was
|
|
140
|
+
'pinepaper_original_character:random': 'read-only', // computes a variant; draws nothing
|
|
141
|
+
'pinepaper_flip:record': 'side-effect', // snapshots the before-state only
|
|
142
|
+
'pinepaper_path:set_locked': 'unchecked', // a lock flag the fingerprint does not read
|
|
143
|
+
'pinepaper_path:unlock_all': 'unchecked',
|
|
144
|
+
});
|
|
145
|
+
const READ_ONLY_ACTION = /^(list|get|describe|query|analyze|validate|check|resolve|catalogue|status|state|info|preview|estimate|lint|coverage|find|choose|node_types|from_text|chord_frequencies|timbre_from_path|lineage|dependents|history|version|hit_test|is_empty|source_info)(_|$)/;
|
|
146
|
+
const SIDE_EFFECT_ACTION = /^(play|stop|pause|resume|seek|export|render|download|show_studio|toggle_loop|jump|set_time_scale|set_progress|bind_scroll|unbind_scroll)(_|$)/;
|
|
147
|
+
/** The class of one call. `readOnlyHint` comes from the tool's annotations. */
|
|
148
|
+
export function effectClass(tool, action, readOnlyHint) {
|
|
149
|
+
if (action !== undefined) {
|
|
150
|
+
const exact = ACTION_CLASS[`${tool}:${action}`];
|
|
151
|
+
if (exact)
|
|
152
|
+
return exact;
|
|
153
|
+
}
|
|
154
|
+
if (readOnlyHint)
|
|
155
|
+
return 'read-only';
|
|
156
|
+
if (TOOL_CLASS[tool])
|
|
157
|
+
return TOOL_CLASS[tool];
|
|
158
|
+
if (UNCHECKED_TOOLS.has(tool))
|
|
159
|
+
return 'unchecked';
|
|
160
|
+
if (SIDE_EFFECT_TOOLS.has(tool))
|
|
161
|
+
return 'side-effect';
|
|
162
|
+
if (action === undefined)
|
|
163
|
+
return 'unchecked';
|
|
164
|
+
if (READ_ONLY_ACTION.test(action))
|
|
165
|
+
return 'read-only';
|
|
166
|
+
if (SIDE_EFFECT_ACTION.test(action))
|
|
167
|
+
return 'side-effect';
|
|
168
|
+
return 'mutates';
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=effect-class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-class.js","sourceRoot":"","sources":["../../src/tools/effect-class.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,6GAA6G;AAC7G,MAAM,CAAC,MAAM,UAAU,GAA0C,MAAM,CAAC,MAAM,CAAC;IAC7E,8BAA8B,EAAE,SAAS;IACzC,yBAAyB,EAAE,SAAS;IACpC,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,aAAa;IACrC,qBAAqB,EAAE,SAAS;IAChC,qBAAqB,EAAE,SAAS;IAChC,qBAAqB,EAAE,SAAS;IAChC,8BAA8B,EAAE,SAAS;IACzC,iCAAiC,EAAE,SAAS;IAC5C,+BAA+B,EAAE,WAAW,EAAI,gBAAgB;IAChE,oBAAoB,EAAE,SAAS;IAC/B,wBAAwB,EAAE,SAAS;IACnC,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,qBAAqB,EAAE,SAAS;IAChC,kBAAkB,EAAE,WAAW,EAAiB,kCAAkC;IAClF,uBAAuB,EAAE,SAAS;IAClC,mBAAmB,EAAE,WAAW,EAAgB,gCAAgC;IAChF,kBAAkB,EAAE,WAAW,EAAiB,qCAAqC;IACrF,yBAAyB,EAAE,WAAW;IACtC,sBAAsB,EAAE,aAAa,EAAW,kBAAkB;IAClE,wBAAwB,EAAE,WAAW,EAAW,0BAA0B;IAC1E,wBAAwB,EAAE,SAAS;IACnC,wBAAwB,EAAE,aAAa;IACvC,oBAAoB,EAAE,SAAS;IAC/B,oBAAoB,EAAE,SAAS;IAC/B,uBAAuB,EAAE,SAAS;IAClC,kCAAkC,EAAE,SAAS;IAC7C,mBAAmB,EAAE,SAAS;IAC9B,8BAA8B,EAAE,SAAS;IACzC,sBAAsB,EAAE,SAAS;IACjC,yBAAyB,EAAE,SAAS;IACpC,kCAAkC,EAAE,WAAW,EAAE,8BAA8B;IAC/E,6BAA6B,EAAE,WAAW,EAAM,sCAAsC;IACtF,iBAAiB,EAAE,SAAS;IAC5B,0BAA0B,EAAE,SAAS;IACrC,6BAA6B,EAAE,SAAS;IACxC,2BAA2B,EAAE,SAAS;IACtC,qBAAqB,EAAE,SAAS;IAChC,wBAAwB,EAAE,SAAS;IACnC,sBAAsB,EAAE,SAAS;IACjC,wBAAwB,EAAE,SAAS;IACnC,8BAA8B,EAAE,SAAS;IACzC,iBAAiB,EAAE,SAAS;IAC5B,uBAAuB,EAAE,SAAS;IAClC,mBAAmB,EAAE,SAAS;IAC9B,qBAAqB,EAAE,SAAS;IAChC,0BAA0B,EAAE,SAAS;IACrC,0BAA0B,EAAE,SAAS;IACrC,+BAA+B,EAAE,SAAS;IAC1C,gCAAgC,EAAE,SAAS;IAC3C,2BAA2B,EAAE,SAAS;IACtC,sBAAsB,EAAE,SAAS;IACjC,oBAAoB,EAAE,SAAS;IAC/B,sBAAsB,EAAE,SAAS;IACjC,qBAAqB,EAAE,SAAS;IAChC,wBAAwB,EAAE,SAAS;IACnC,0BAA0B,EAAE,SAAS;IACrC,sBAAsB,EAAE,SAAS;IACjC,yBAAyB,EAAE,aAAa;IACxC,4BAA4B,EAAE,aAAa;IAC3C,yBAAyB,EAAE,aAAa,EAAQ,oDAAoD;IACpG,uBAAuB,EAAE,aAAa;IACtC,qBAAqB,EAAE,aAAa;IACpC,6BAA6B,EAAE,SAAS;IACxC,iBAAiB,EAAE,SAAS;IAC5B,uBAAuB,EAAE,SAAS;IAClC,qBAAqB,EAAE,aAAa;CACrC,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IAC1D,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB;IAChF,gBAAgB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,gBAAgB;IACrF,mBAAmB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,mBAAmB;IACzF,2BAA2B,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,iBAAiB;CAC9F,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,qBAAqB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,yBAAyB;IACnG,0BAA0B,EAAE,wBAAwB;CACrD,CAAC,CAAC;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAA0C,MAAM,CAAC,MAAM,CAAC;IAC/E,6BAA6B,EAAE,WAAW;IAC1C,uBAAuB,EAAE,aAAa;IACtC,0BAA0B,EAAE,aAAa;IACzC,mCAAmC,EAAE,WAAW;IAChD,mCAAmC,EAAE,WAAW;IAChD,4BAA4B,EAAE,WAAW;IACzC,yBAAyB,EAAE,WAAW;IACtC,2BAA2B,EAAE,WAAW;IACxC,0BAA0B,EAAE,WAAW;IACvC,8BAA8B,EAAE,WAAW;IAC3C,2BAA2B,EAAE,aAAa,EAAM,2CAA2C;IAC3F,+BAA+B,EAAE,WAAW;IAC5C,yBAAyB,EAAE,SAAS;IACpC,wBAAwB,EAAE,WAAW;IACrC,2BAA2B,EAAE,aAAa;IAC1C,uBAAuB,EAAE,aAAa;IACtC,8BAA8B,EAAE,SAAS;IACzC,8BAA8B,EAAE,aAAa;IAC7C,gCAAgC,EAAE,aAAa;IAC/C,mCAAmC,EAAE,aAAa;IAClD,iCAAiC,EAAE,aAAa;IAChD,gCAAgC,EAAE,aAAa;IAC/C,gCAAgC,EAAE,aAAa;IAC/C,6BAA6B,EAAE,WAAW;IAC1C,iCAAiC,EAAE,WAAW;IAC9C,wCAAwC,EAAE,WAAW;IACrD,oCAAoC,EAAE,WAAW;IACjD,uCAAuC,EAAE,WAAW;IACpD,8BAA8B,EAAE,aAAa;IAC7C,gCAAgC,EAAE,aAAa;IAC/C,uCAAuC,EAAE,SAAS;IAClD,oCAAoC,EAAE,WAAW;IACjD,qBAAqB,EAAE,aAAa,EAAc,uDAAuD;IACzG,qCAAqC,EAAE,WAAW,EAAI,oCAAoC;IAC1F,uBAAuB,EAAE,aAAa,EAAW,kCAAkC;IACnF,2BAA2B,EAAE,WAAW,EAAS,4CAA4C;IAC7F,2BAA2B,EAAE,WAAW;CACzC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,gQAAgQ,CAAC;AAC1R,MAAM,kBAAkB,GAAG,+IAA+I,CAAC;AAE3K,+EAA+E;AAC/E,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAA0B,EAAE,YAAiC;IACrG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,IAAI,YAAY;QAAE,OAAO,WAAW,CAAC;IACrC,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IAClD,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC;IACtD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAC7C,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,WAAW,CAAC;IACtD,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,aAAa,CAAC;IAC1D,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
* Name lists the engine owns and the tool surface must offer exactly. See
|
|
5
5
|
* scripts/sync-engine-lists.mjs for why each is generated.
|
|
6
6
|
*
|
|
7
|
-
* Source: FxTool origin/main
|
|
8
|
-
* js/core/KeyframeInterpolator.js sha256:
|
|
7
|
+
* Source: FxTool origin/main c2d922787576249eeb37b1fa8c4cb0cfec943204
|
|
8
|
+
* js/core/KeyframeInterpolator.js sha256: 1134ba0e2ce5d1f5
|
|
9
9
|
* js/world3d/worlds.js sha256: 0e0973f7587c06e1
|
|
10
|
-
* js/core/DesignMedia.js sha256:
|
|
11
|
-
* js/FilterSystem.js sha256:
|
|
10
|
+
* js/core/DesignMedia.js sha256: ab07f330e4060cb7
|
|
11
|
+
* js/FilterSystem.js sha256: 3cfb0f9e54eb50ab
|
|
12
12
|
* js/core/Provenance.js sha256: 27e4d8becfa382c8
|
|
13
13
|
* js/core/StyledScene.js sha256: ea647c014de59faf
|
|
14
14
|
*/
|
|
15
|
-
/**
|
|
16
|
-
export declare const ENGINE_EASING_NAMES: readonly ["linear", "easeIn", "easeOut", "easeInOut", "easeInCubic", "easeOutCubic", "easeInOutCubic", "bounce", "easeOutBounce", "easeInBounce", "elastic", "easeOutElastic", "easeInElastic", "easeOutBack", "easeInBack", "easeInOutBack", "spring", "springSnappy", "springPlayful", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInSine", "easeOutSine", "easeInOutSine", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc"];
|
|
15
|
+
/** 39 names: EASING_NAMES, the keys of the engine's easing table. Keyframes, masks, relations and the camera all resolve through it. */
|
|
16
|
+
export declare const ENGINE_EASING_NAMES: readonly ["linear", "easeIn", "easeOut", "easeInOut", "easeInCubic", "easeOutCubic", "easeInOutCubic", "bounce", "easeOutBounce", "easeInBounce", "elastic", "easeOutElastic", "easeInElastic", "easeOutBack", "easeInBack", "easeInOutBack", "spring", "springSnappy", "springPlayful", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInSine", "easeOutSine", "easeInOutSine", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "hold", "step"];
|
|
17
17
|
/** 11 paths: WORLD_SCHEMA entries of kind 'color' — the world spec's colour fields. */
|
|
18
18
|
export declare const WORLD3D_COLOR_PATHS: readonly ["env.zenith", "env.horizon", "env.fogColor", "env.sunColor", "env.ambient", "env.lowColor", "env.midColor", "env.highColor", "env.rockColor", "env.propColorA", "env.propColorB"];
|
|
19
19
|
/** 9 media: the keys of DesignMedia MEDIA. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-lists.d.ts","sourceRoot":"","sources":["../../src/tools/engine-lists.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wIAAwI;AACxI,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"engine-lists.d.ts","sourceRoot":"","sources":["../../src/tools/engine-lists.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wIAAwI;AACxI,eAAO,MAAM,mBAAmB,okBAwCtB,CAAC;AAEX,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,6LAYtB,CAAC;AAEX,8CAA8C;AAC9C,eAAO,MAAM,YAAY,yGAUf,CAAC;AAEX,iIAAiI;AACjI,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ9D,CAAC;AAEH,wDAAwD;AACxD,eAAO,MAAM,YAAY,yPAqBf,CAAC;AAEX,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAqB5G,CAAC;AAEH,8DAA8D;AAC9D,eAAO,MAAM,aAAa,gFAMhB,CAAC;AAEX,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,kEAOtB,CAAC;AAEX,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOnE,CAAC;AAEH,8EAA8E;AAC9E,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBvD,CAAC"}
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
* Name lists the engine owns and the tool surface must offer exactly. See
|
|
5
5
|
* scripts/sync-engine-lists.mjs for why each is generated.
|
|
6
6
|
*
|
|
7
|
-
* Source: FxTool origin/main
|
|
8
|
-
* js/core/KeyframeInterpolator.js sha256:
|
|
7
|
+
* Source: FxTool origin/main c2d922787576249eeb37b1fa8c4cb0cfec943204
|
|
8
|
+
* js/core/KeyframeInterpolator.js sha256: 1134ba0e2ce5d1f5
|
|
9
9
|
* js/world3d/worlds.js sha256: 0e0973f7587c06e1
|
|
10
|
-
* js/core/DesignMedia.js sha256:
|
|
11
|
-
* js/FilterSystem.js sha256:
|
|
10
|
+
* js/core/DesignMedia.js sha256: ab07f330e4060cb7
|
|
11
|
+
* js/FilterSystem.js sha256: 3cfb0f9e54eb50ab
|
|
12
12
|
* js/core/Provenance.js sha256: 27e4d8becfa382c8
|
|
13
13
|
* js/core/StyledScene.js sha256: ea647c014de59faf
|
|
14
14
|
*/
|
|
15
|
-
/**
|
|
15
|
+
/** 39 names: EASING_NAMES, the keys of the engine's easing table. Keyframes, masks, relations and the camera all resolve through it. */
|
|
16
16
|
export const ENGINE_EASING_NAMES = [
|
|
17
17
|
'linear',
|
|
18
18
|
'easeIn',
|
|
@@ -51,6 +51,8 @@ export const ENGINE_EASING_NAMES = [
|
|
|
51
51
|
'easeInCirc',
|
|
52
52
|
'easeOutCirc',
|
|
53
53
|
'easeInOutCirc',
|
|
54
|
+
'hold',
|
|
55
|
+
'step',
|
|
54
56
|
];
|
|
55
57
|
/** 11 paths: WORLD_SCHEMA entries of kind 'color' — the world spec's colour fields. */
|
|
56
58
|
export const WORLD3D_COLOR_PATHS = [
|
|
@@ -120,8 +122,8 @@ export const FILTER_PARAM_RANGES = Object.freeze({
|
|
|
120
122
|
saturation: { value: [-100, 100] },
|
|
121
123
|
invert: { intensity: [0, 1] },
|
|
122
124
|
blur: { radius: [0, 20] },
|
|
123
|
-
noise: { intensity: [0, 100], grainSize: [1, 4], refresh: [
|
|
124
|
-
vignette: { intensity: [0, 1], radius: [0, 1] },
|
|
125
|
+
noise: { intensity: [0, 100], grainSize: [1, 4], refresh: [0, 8], seed: [0, 99999] },
|
|
126
|
+
vignette: { intensity: [0, 1], radius: [0, 1], falloff: [0.5, 4] },
|
|
125
127
|
vintage: { intensity: [0, 1] },
|
|
126
128
|
colorOverlay: { intensity: [0, 1] },
|
|
127
129
|
sharpen: { intensity: [0, 100] },
|
|
@@ -169,8 +171,8 @@ export const FILTER_DOCS = Object.freeze({
|
|
|
169
171
|
saturation: "Adjust color saturation — value -100..100, default 0",
|
|
170
172
|
invert: "Invert colors — intensity 0..1, default 1",
|
|
171
173
|
blur: "Apply gaussian blur — radius 0..20, default 5",
|
|
172
|
-
noise: "Add film grain effect — intensity 0..100, default 20; monochrome (boolean), default true; grainSize 1..4; refresh
|
|
173
|
-
vignette: "Add vignette darkening — intensity 0..1, default 0.5; radius 0..1, default 0.5",
|
|
174
|
+
noise: "Add film grain effect — intensity 0..100, default 20; monochrome (boolean), default true; grainSize 1..4; refresh 0..8; seed 0..99999, default 0; blend add|multiply, default add",
|
|
175
|
+
vignette: "Add vignette darkening — intensity 0..1, default 0.5; radius 0..1, default 0.5; color (color); falloff 0.5..4, default 2",
|
|
174
176
|
vintage: "Retro vintage look — intensity 0..1, default 1",
|
|
175
177
|
colorOverlay: "Add color tint — color (color), default #ff0000; intensity 0..1, default 0.3; blendMode multiply|overlay|screen, default overlay",
|
|
176
178
|
sharpen: "Increase image sharpness — intensity 0..100, default 50",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-lists.js","sourceRoot":"","sources":["../../src/tools/engine-lists.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wIAAwI;AACxI,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,QAAQ;IACR,eAAe;IACf,cAAc;IACd,SAAS;IACT,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,cAAc;IACd,eAAe;IACf,YAAY;IACZ,aAAa;IACb,eAAe;IACf,YAAY;IACZ,aAAa;IACb,eAAe;IACf,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,YAAY;IACZ,aAAa;IACb,eAAe;IACf,YAAY;IACZ,aAAa;IACb,eAAe;
|
|
1
|
+
{"version":3,"file":"engine-lists.js","sourceRoot":"","sources":["../../src/tools/engine-lists.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-methods.d.ts","sourceRoot":"","sources":["../../src/tools/engine-methods.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"engine-methods.d.ts","sourceRoot":"","sources":["../../src/tools/engine-methods.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAsOpD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EA+CpD,CAAC"}
|
|
@@ -33,6 +33,7 @@ export const REQUIRED_ENGINE_METHODS = [
|
|
|
33
33
|
'applyDirectorShots',
|
|
34
34
|
'applyHatching',
|
|
35
35
|
'applyImageFilter',
|
|
36
|
+
'applyLook',
|
|
36
37
|
'applyMedium',
|
|
37
38
|
'applyPhysicsImpulse3D',
|
|
38
39
|
'applyRelationPreset',
|
|
@@ -59,6 +60,7 @@ export const REQUIRED_ENGINE_METHODS = [
|
|
|
59
60
|
'configureWorld3D',
|
|
60
61
|
'convertTextToCollage',
|
|
61
62
|
'create',
|
|
63
|
+
'createCharacter',
|
|
62
64
|
'createCursiveText',
|
|
63
65
|
'createEquationPath',
|
|
64
66
|
'createEvent',
|
|
@@ -161,6 +163,7 @@ export const REQUIRED_ENGINE_METHODS = [
|
|
|
161
163
|
'outlineStroke',
|
|
162
164
|
'panWorldCamera',
|
|
163
165
|
'patternFrom',
|
|
166
|
+
'percussionSpec',
|
|
164
167
|
'placeOnSurface',
|
|
165
168
|
'placeSequence',
|
|
166
169
|
'planBook',
|
|
@@ -177,6 +180,7 @@ export const REQUIRED_ENGINE_METHODS = [
|
|
|
177
180
|
'recordLineage',
|
|
178
181
|
'registerInstrument',
|
|
179
182
|
'registerPercussion',
|
|
183
|
+
'registerRenderHook',
|
|
180
184
|
'registerSfx',
|
|
181
185
|
'remakeFromReference',
|
|
182
186
|
'removePhysicsBody3D',
|
|
@@ -197,6 +201,7 @@ export const REQUIRED_ENGINE_METHODS = [
|
|
|
197
201
|
'setArtboard',
|
|
198
202
|
'setCollageTreatment',
|
|
199
203
|
'setComponentOverride',
|
|
204
|
+
'setEmitter',
|
|
200
205
|
'setFontAxes',
|
|
201
206
|
'setItemConstraints',
|
|
202
207
|
'setItemLocked',
|
|
@@ -212,6 +217,7 @@ export const REQUIRED_ENGINE_METHODS = [
|
|
|
212
217
|
'setWorldMeshClip',
|
|
213
218
|
'setWorldMeshInstances',
|
|
214
219
|
'setWorldNavTarget',
|
|
220
|
+
'sfxSpec',
|
|
215
221
|
'shaderGraph.create',
|
|
216
222
|
'shatterImage',
|
|
217
223
|
'simplifyPath',
|
|
@@ -287,9 +293,11 @@ export const OPTIONAL_ENGINE_METHODS = [
|
|
|
287
293
|
'relationRegistry.getStats',
|
|
288
294
|
'sceneAt',
|
|
289
295
|
'sceneManager.setLoop',
|
|
296
|
+
'screenSpaceItems',
|
|
290
297
|
'setBackgroundColor',
|
|
291
298
|
'setCanvasSize',
|
|
292
299
|
'setLifetime',
|
|
300
|
+
'setStepTiming',
|
|
293
301
|
'setUnitGridEnabled',
|
|
294
302
|
'textOverflowReport',
|
|
295
303
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-methods.js","sourceRoot":"","sources":["../../src/tools/engine-methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,cAAc;IACd,YAAY;IACZ,oBAAoB;IACpB,kBAAkB;IAClB,aAAa;IACb,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,uBAAuB;IACvB,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,eAAe;IACf,kBAAkB;IAClB,aAAa;IACb,uBAAuB;IACvB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,yBAAyB;IACzB,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,WAAW;IACX,YAAY;IACZ,cAAc;IACd,cAAc;IACd,oBAAoB;IACpB,gBAAgB;IAChB,qBAAqB;IACrB,iBAAiB;IACjB,wBAAwB;IACxB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB;IACtB,QAAQ;IACR,mBAAmB;IACnB,oBAAoB;IACpB,aAAa;IACb,kBAAkB;IAClB,aAAa;IACb,eAAe;IACf,eAAe;IACf,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,yBAAyB;IACzB,eAAe;IACf,oBAAoB;IACpB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,oBAAoB;IACpB,WAAW;IACX,iBAAiB;IACjB,gCAAgC;IAChC,6BAA6B;IAC7B,4BAA4B;IAC5B,+BAA+B;IAC/B,0BAA0B;IAC1B,yBAAyB;IACzB,4BAA4B;IAC5B,4BAA4B;IAC5B,mCAAmC;IACnC,WAAW;IACX,cAAc;IACd,mBAAmB;IACnB,eAAe;IACf,eAAe;IACf,UAAU;IACV,kBAAkB;IAClB,YAAY;IACZ,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,mBAAmB;IACnB,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,mBAAmB;IACnB,cAAc;IACd,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,wBAAwB;IACxB,cAAc;IACd,kBAAkB;IAClB,aAAa;IACb,sBAAsB;IACtB,qBAAqB;IACrB,uBAAuB;IACvB,aAAa;IACb,WAAW;IACX,0BAA0B;IAC1B,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,mBAAmB;IACnB,aAAa;IACb,kBAAkB;IAClB,SAAS;IACT,oBAAoB;IACpB,cAAc;IACd,YAAY;IACZ,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,iBAAiB;IACjB,qBAAqB;IACrB,gCAAgC;IAChC,2BAA2B;IAC3B,yBAAyB;IACzB,0BAA0B;IAC1B,yBAAyB;IACzB,yBAAyB;IACzB,+BAA+B;IAC/B,uBAAuB;IACvB,qBAAqB;IACrB,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,UAAU;IACV,WAAW;IACX,gBAAgB;IAChB,SAAS;IACT,WAAW;IACX,mBAAmB;IACnB,UAAU;IACV,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,eAAe;IACf,oBAAoB;IACpB,oBAAoB;IACpB,aAAa;IACb,qBAAqB;IACrB,qBAAqB;IACrB,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,iBAAiB;IACjB,uBAAuB;IACvB,qBAAqB;IACrB,gBAAgB;IAChB,qBAAqB;IACrB,yBAAyB;IACzB,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,sBAAsB;IACtB,aAAa;IACb,oBAAoB;IACpB,eAAe;IACf,sBAAsB;IACtB,iBAAiB;IACjB,aAAa;IACb,sBAAsB;IACtB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;IACvB,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,cAAc;IACd,UAAU;IACV,WAAW;IACX,eAAe;IACf,cAAc;IACd,eAAe;IACf,aAAa;IACb,UAAU;IACV,aAAa;IACb,eAAe;IACf,YAAY;IACZ,eAAe;IACf,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,6BAA6B;IAC7B,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,eAAe;IACf,UAAU;CACX,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,eAAe;IACf,0BAA0B;IAC1B,YAAY;IACZ,gBAAgB;IAChB,0BAA0B;IAC1B,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;IAClB,cAAc;IACd,sBAAsB;IACtB,WAAW;IACX,aAAa;IACb,mBAAmB;IACnB,2BAA2B;IAC3B,6BAA6B;IAC7B,iBAAiB;IACjB,SAAS;IACT,mCAAmC;IACnC,eAAe;IACf,uBAAuB;IACvB,QAAQ;IACR,sBAAsB;IACtB,YAAY;IACZ,oBAAoB;IACpB,WAAW;IACX,qBAAqB;IACrB,kBAAkB;IAClB,qBAAqB;IACrB,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,uBAAuB;IACvB,4BAA4B;IAC5B,cAAc;IACd,gCAAgC;IAChC,0BAA0B;IAC1B,2BAA2B;IAC3B,SAAS;IACT,sBAAsB;IACtB,oBAAoB;IACpB,eAAe;IACf,aAAa;IACb,oBAAoB;IACpB,oBAAoB;CACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"engine-methods.js","sourceRoot":"","sources":["../../src/tools/engine-methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** How a name lands on `app`. */
|
|
2
2
|
export type EngineMemberKind = 'method' | 'accessor' | 'property' | 'lazy' | 'lazyHeavy' | 'bootstrap';
|
|
3
|
-
/**
|
|
3
|
+
/** 1413 names, from FxTool/js/PinePaper.js. */
|
|
4
4
|
export declare const ENGINE_SURFACE: Readonly<Record<string, EngineMemberKind>>;
|
|
5
5
|
/**
|
|
6
6
|
* Subsystems that are UNDEFINED until `app.ensureHeavyModules()` has run —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-surface.d.ts","sourceRoot":"","sources":["../../src/tools/engine-surface.ts"],"names":[],"mappings":"AAeA,iCAAiC;AACjC,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;AAEvG,+CAA+C;AAC/C,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"engine-surface.d.ts","sourceRoot":"","sources":["../../src/tools/engine-surface.ts"],"names":[],"mappings":"AAeA,iCAAiC;AACjC,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;AAEvG,+CAA+C;AAC/C,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAs4CpE,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAUjD,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU9D,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAmBrE,CAAC"}
|