@instruktlabs/kiln 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +27 -0
- package/README.md +11 -0
- package/dist/agent-run.mjs +5 -2
- package/dist/build.json +22 -22
- package/dist/cli.mjs +5 -2
- package/dist/mcp-engine.mjs +3 -4
- package/dist/mcp-server.mjs +6 -6
- package/dist/viewer/app.js +180 -180
- package/dist/viewer/chat.html +183 -183
- package/docs/install.md +7 -6
- package/docs/migration.md +16 -0
- package/docs/runtime.md +3 -3
- package/docs/sdk.md +2 -2
- package/lib/asset-widget-uri.d.ts +1 -1
- package/lib/asset-widget-uri.js +1 -1
- package/lib/engine-identity.d.ts +1 -1
- package/lib/engine-identity.js +1 -1
- package/lib/mcp-core.d.ts +1 -1
- package/lib/tools/registry.d.ts +1 -2
- package/lib/tools/registry.js +2 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/plugins/kiln-engine/.claude-plugin/plugin.json +1 -1
- package/plugins/kiln-engine/README.md +3 -3
- package/plugins/kiln-engine/package-provenance.json +6 -6
- package/plugins/kiln-engine/plugin.json +1 -1
- package/plugins/kiln-engine/runtime.json +1 -1
- package/skills/kiln-author-asset/SKILL.md +1 -1
- package/skills/kiln-author-asset/references/camera-cli.md +13 -0
- package/skills/kiln-author-asset/references/geometry-recipes.md +10 -0
- package/src/asset-widget-uri.ts +1 -1
- package/src/engine-identity.ts +1 -1
- package/src/generated/mcp-manifest.json +4 -4
- package/src/tools/registry.ts +2 -1
- package/src/viewer/chat-app.ts +6 -2
- package/src/viewer/glb-loader.ts +78 -0
- package/src/viewer/scene.ts +9 -26
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kiln",
|
|
3
3
|
"description": "Build and revise 3D assets with your coding agent. Write JavaScript, inspect selected views, edit saved source revisions, and export GLB files locally.",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.2",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Matthew Kissinger"
|
|
7
7
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,33 @@ Source releases and installable package publication are separate milestones.
|
|
|
5
5
|
Published versions and tags are recorded by the npm registry; changing this file
|
|
6
6
|
does not publish a package.
|
|
7
7
|
|
|
8
|
+
## 1.2.2
|
|
9
|
+
|
|
10
|
+
- Clarify radial and tangential orientation for circular walls and roof sections,
|
|
11
|
+
including edge checks for accidental quarter-turn rotations.
|
|
12
|
+
- Require checking export receipts and delivering files from the final reviewed
|
|
13
|
+
revision in the authoring skill and CLI guidance.
|
|
14
|
+
- Include these instructions in the package and local plugin. Geometry/runtime
|
|
15
|
+
behavior and the seventeen-tool local MCP interface are unchanged.
|
|
16
|
+
- Align the public hosted integration draft with the deployed 21-tool contract,
|
|
17
|
+
and update README/site guidance for the invite-only service and Discord access.
|
|
18
|
+
|
|
19
|
+
## 1.2.1
|
|
20
|
+
|
|
21
|
+
- Load embedded viewer textures through the browser image path, retaining
|
|
22
|
+
pixels, sampler settings and UV transforms under restrictive MCP Apps CSP.
|
|
23
|
+
This uses the shared viewer and existing presentation tool; local and hosted
|
|
24
|
+
tool counts remain unchanged.
|
|
25
|
+
- Reject failed texture decoding instead of silently showing white geometry.
|
|
26
|
+
The chat component labels its saved-preview fallback and can recover when
|
|
27
|
+
another asset is presented. Advance the widget resource URI to invalidate
|
|
28
|
+
cached component bytes.
|
|
29
|
+
- Generate the MCP manifest before building sibling runtimes so one complete
|
|
30
|
+
build keeps their identities consistent after a package or widget update.
|
|
31
|
+
|
|
32
|
+
Actual ChatGPT-host acceptance and hosted production deployment remain separate
|
|
33
|
+
from local browser regression evidence and package publication.
|
|
34
|
+
|
|
8
35
|
## 1.2.0
|
|
9
36
|
|
|
10
37
|
- Add an opt-in named MCP operation presentation generated from the shared
|
package/README.md
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
[](https://github.com/instruktlabs/kiln/actions/workflows/ci.yml)
|
|
4
4
|
[](https://www.npmjs.com/package/@instruktlabs/kiln)
|
|
5
5
|
[](LICENSE)
|
|
6
|
+
[](https://discord.gg/fSWVbMdQXK)
|
|
6
7
|
|
|
7
8
|
**Build and revise 3D assets with your coding agent.**
|
|
8
9
|
|
|
@@ -19,6 +20,16 @@ do not require a separate model API key.
|
|
|
19
20
|
[Interactive scenes](https://kilnstudio.tools/scenes/) ·
|
|
20
21
|
[Changelog](CHANGELOG.md)
|
|
21
22
|
|
|
23
|
+
## Community and hosted access
|
|
24
|
+
|
|
25
|
+
[Join the Kiln Discord](https://discord.gg/fSWVbMdQXK) to share assets, get help,
|
|
26
|
+
and request hosted access. [Hosted Kiln](https://kiln.instruktlabs.com/) is open
|
|
27
|
+
as a free, invite-only introductory service, with ten accounts sharing an
|
|
28
|
+
allowance of 200 native requests per month. Ask in `#request-access` or message
|
|
29
|
+
`matt_941`; individual Kiln codes are sent privately as capacity allows.
|
|
30
|
+
Joining Discord does not automatically grant hosted access. Local Kiln remains
|
|
31
|
+
free, open source and account-free.
|
|
32
|
+
|
|
22
33
|
| Troy: the city and fleet | Achilles and Hector at the gates |
|
|
23
34
|
| --- | --- |
|
|
24
35
|
| [](https://kilnstudio.tools/scenes/troy/) | [](https://kilnstudio.tools/scenes/troy/) |
|
package/dist/agent-run.mjs
CHANGED
|
@@ -32939,7 +32939,7 @@ function createKilnSourceDef(store) {
|
|
|
32939
32939
|
}
|
|
32940
32940
|
|
|
32941
32941
|
// src/engine-identity.ts
|
|
32942
|
-
var ENGINE_VERSION = "1.2.
|
|
32942
|
+
var ENGINE_VERSION = "1.2.2";
|
|
32943
32943
|
var ENGINE_INSTALL_URL = new URL("../", import.meta.url).href;
|
|
32944
32944
|
function engineIdentity() {
|
|
32945
32945
|
return { version: ENGINE_VERSION, installUrl: ENGINE_INSTALL_URL };
|
|
@@ -37996,7 +37996,10 @@ function resolveViewRenderTimeoutMs(input) {
|
|
|
37996
37996
|
// src/tools/registry.ts
|
|
37997
37997
|
init_evidence_history();
|
|
37998
37998
|
init_background();
|
|
37999
|
-
|
|
37999
|
+
|
|
38000
|
+
// src/asset-widget-uri.ts
|
|
38001
|
+
var KILN_ASSET_WIDGET_URI = "ui://kiln/asset-v6.html";
|
|
38002
|
+
// src/tools/registry.ts
|
|
38000
38003
|
function proceduralTextureMaterialContract(rendered, context) {
|
|
38001
38004
|
const required = [...new Set(context.requiredProceduralTextureUsages ?? [])];
|
|
38002
38005
|
if (required.length === 0)
|
package/dist/build.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"entries": {
|
|
4
4
|
"worker": {
|
|
5
|
-
"identity": "sha256:
|
|
6
|
-
"engineVersion": "1.2.
|
|
5
|
+
"identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
|
|
6
|
+
"engineVersion": "1.2.2",
|
|
7
7
|
"toolchain": "bun@1.4.2",
|
|
8
|
-
"sourceHash": "
|
|
8
|
+
"sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
|
|
9
9
|
"rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
|
|
10
10
|
"dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
|
|
11
11
|
"dependencies": {
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"bundleHash": "sha256:37098a17b5304a5f5746131c9652498d937a5181c0fb0975861dec999721d5be"
|
|
40
40
|
},
|
|
41
41
|
"agent-run": {
|
|
42
|
-
"identity": "sha256:
|
|
43
|
-
"engineVersion": "1.2.
|
|
42
|
+
"identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
|
|
43
|
+
"engineVersion": "1.2.2",
|
|
44
44
|
"toolchain": "bun@1.4.2",
|
|
45
|
-
"sourceHash": "
|
|
45
|
+
"sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
|
|
46
46
|
"rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
|
|
47
47
|
"dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
|
|
48
48
|
"dependencies": {
|
|
@@ -73,13 +73,13 @@
|
|
|
73
73
|
},
|
|
74
74
|
"target": "node",
|
|
75
75
|
"file": "agent-run.mjs",
|
|
76
|
-
"bundleHash": "sha256:
|
|
76
|
+
"bundleHash": "sha256:67ec2be78eb1b6e44f05d04fafff20a7f91217afc6897e47dca37e238c51a09a"
|
|
77
77
|
},
|
|
78
78
|
"agent-providers": {
|
|
79
|
-
"identity": "sha256:
|
|
80
|
-
"engineVersion": "1.2.
|
|
79
|
+
"identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
|
|
80
|
+
"engineVersion": "1.2.2",
|
|
81
81
|
"toolchain": "bun@1.4.2",
|
|
82
|
-
"sourceHash": "
|
|
82
|
+
"sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
|
|
83
83
|
"rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
|
|
84
84
|
"dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
|
|
85
85
|
"dependencies": {
|
|
@@ -113,10 +113,10 @@
|
|
|
113
113
|
"bundleHash": "sha256:9d6faf03d307321bc2e3bd5ce5bdee0bbbf61e0ebed8bfebfa1fb072287b83fa"
|
|
114
114
|
},
|
|
115
115
|
"mcp": {
|
|
116
|
-
"identity": "sha256:
|
|
117
|
-
"engineVersion": "1.2.
|
|
116
|
+
"identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
|
|
117
|
+
"engineVersion": "1.2.2",
|
|
118
118
|
"toolchain": "bun@1.4.2",
|
|
119
|
-
"sourceHash": "
|
|
119
|
+
"sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
|
|
120
120
|
"rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
|
|
121
121
|
"dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
|
|
122
122
|
"dependencies": {
|
|
@@ -147,13 +147,13 @@
|
|
|
147
147
|
},
|
|
148
148
|
"target": "node",
|
|
149
149
|
"file": "mcp-server.mjs",
|
|
150
|
-
"bundleHash": "sha256:
|
|
150
|
+
"bundleHash": "sha256:851321a8fc20c5ba2c38362922e6a4b5cd3353d7fa019edbba45eabccf2f686a"
|
|
151
151
|
},
|
|
152
152
|
"cli": {
|
|
153
|
-
"identity": "sha256:
|
|
154
|
-
"engineVersion": "1.2.
|
|
153
|
+
"identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
|
|
154
|
+
"engineVersion": "1.2.2",
|
|
155
155
|
"toolchain": "bun@1.4.2",
|
|
156
|
-
"sourceHash": "
|
|
156
|
+
"sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
|
|
157
157
|
"rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
|
|
158
158
|
"dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
|
|
159
159
|
"dependencies": {
|
|
@@ -184,13 +184,13 @@
|
|
|
184
184
|
},
|
|
185
185
|
"target": "node",
|
|
186
186
|
"file": "cli.mjs",
|
|
187
|
-
"bundleHash": "sha256:
|
|
187
|
+
"bundleHash": "sha256:e5abeb14a6966e669d53880faa33eec70f0f41f06cf04069bf6862368d277e12"
|
|
188
188
|
},
|
|
189
189
|
"engine": {
|
|
190
|
-
"identity": "sha256:
|
|
191
|
-
"engineVersion": "1.2.
|
|
190
|
+
"identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
|
|
191
|
+
"engineVersion": "1.2.2",
|
|
192
192
|
"toolchain": "bun@1.4.2",
|
|
193
|
-
"sourceHash": "
|
|
193
|
+
"sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
|
|
194
194
|
"rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
|
|
195
195
|
"dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
|
|
196
196
|
"dependencies": {
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
},
|
|
222
222
|
"target": "node",
|
|
223
223
|
"file": "mcp-engine.mjs",
|
|
224
|
-
"bundleHash": "sha256:
|
|
224
|
+
"bundleHash": "sha256:bdfb5afd7cbf3724b053fba2833b15b39c2388776dae4296549ede05625222c9"
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
227
|
}
|
package/dist/cli.mjs
CHANGED
|
@@ -36171,7 +36171,7 @@ var init_program_artifacts = __esm(() => {
|
|
|
36171
36171
|
function engineIdentity() {
|
|
36172
36172
|
return { version: ENGINE_VERSION, installUrl: ENGINE_INSTALL_URL };
|
|
36173
36173
|
}
|
|
36174
|
-
var ENGINE_VERSION = "1.2.
|
|
36174
|
+
var ENGINE_VERSION = "1.2.2", ENGINE_INSTALL_URL;
|
|
36175
36175
|
var init_engine_identity = __esm(() => {
|
|
36176
36176
|
ENGINE_INSTALL_URL = new URL("../", import.meta.url).href;
|
|
36177
36177
|
});
|
|
@@ -41029,6 +41029,9 @@ var init_view_render_timeout = __esm(() => {
|
|
|
41029
41029
|
WARM_UP_STATES = new Set(["unknown", "pending", "ready", "degraded"]);
|
|
41030
41030
|
});
|
|
41031
41031
|
|
|
41032
|
+
// src/asset-widget-uri.ts
|
|
41033
|
+
var KILN_ASSET_WIDGET_URI = "ui://kiln/asset-v6.html";
|
|
41034
|
+
|
|
41032
41035
|
// src/views/port.ts
|
|
41033
41036
|
async function sha256Bytes(bytes) {
|
|
41034
41037
|
const input = new Uint8Array(bytes.byteLength);
|
|
@@ -43862,7 +43865,7 @@ function createKilnAssetDefs(context, presentation = "grouped") {
|
|
|
43862
43865
|
}
|
|
43863
43866
|
];
|
|
43864
43867
|
}
|
|
43865
|
-
var
|
|
43868
|
+
var DEFAULT_INLOOP_VIEW_RENDER_TIMEOUT_MS = 6000, viewEvidenceHistoryByContext, VIEW_EVIDENCE_GUIDANCE = " viewEvidence.current describes ONLY this request. lastFaithful is older hash-only evidence for reference, not reused pixels and not current verification.", validateInput, renderInput, renderViewsInput, reviewDetailOptions = (context) => ({
|
|
43866
43869
|
retainedReport: () => {
|
|
43867
43870
|
const operation = context.liveReview?.currentOperation?.();
|
|
43868
43871
|
return operation ? {
|
package/dist/mcp-engine.mjs
CHANGED
|
@@ -36103,10 +36103,10 @@ import {
|
|
|
36103
36103
|
import { readFile as readFile8 } from "node:fs/promises";
|
|
36104
36104
|
|
|
36105
36105
|
// src/asset-widget-uri.ts
|
|
36106
|
-
var KILN_ASSET_WIDGET_URI = "ui://kiln/asset-
|
|
36106
|
+
var KILN_ASSET_WIDGET_URI = "ui://kiln/asset-v6.html";
|
|
36107
36107
|
|
|
36108
36108
|
// src/engine-identity.ts
|
|
36109
|
-
var ENGINE_VERSION = "1.2.
|
|
36109
|
+
var ENGINE_VERSION = "1.2.2";
|
|
36110
36110
|
var ENGINE_INSTALL_URL = new URL("../", import.meta.url).href;
|
|
36111
36111
|
function engineIdentity() {
|
|
36112
36112
|
return { version: ENGINE_VERSION, installUrl: ENGINE_INSTALL_URL };
|
|
@@ -41937,7 +41937,6 @@ function resolveViewRenderTimeoutMs(input) {
|
|
|
41937
41937
|
// src/tools/registry.ts
|
|
41938
41938
|
init_evidence_history();
|
|
41939
41939
|
init_background();
|
|
41940
|
-
var KILN_ASSET_WIDGET_URI2 = "ui://kiln/asset-v5.html";
|
|
41941
41940
|
function proceduralTextureMaterialContract(rendered, context) {
|
|
41942
41941
|
const required = [...new Set(context.requiredProceduralTextureUsages ?? [])];
|
|
41943
41942
|
if (required.length === 0)
|
|
@@ -43490,7 +43489,7 @@ function createKilnAssetDefs(context, presentation = "grouped") {
|
|
|
43490
43489
|
downloadUrls: z23.record(z23.string(), z23.string()).optional()
|
|
43491
43490
|
}),
|
|
43492
43491
|
ui: {
|
|
43493
|
-
resourceUri:
|
|
43492
|
+
resourceUri: KILN_ASSET_WIDGET_URI,
|
|
43494
43493
|
data: async (output) => (await Promise.resolve().then(() => (init_asset_widget(), exports_asset_widget))).assetWidgetData(library(), output)
|
|
43495
43494
|
},
|
|
43496
43495
|
run: async (raw) => {
|
package/dist/mcp-server.mjs
CHANGED
|
@@ -1749,13 +1749,13 @@ var mcp_manifest_default = {
|
|
|
1749
1749
|
},
|
|
1750
1750
|
_meta: {
|
|
1751
1751
|
ui: {
|
|
1752
|
-
resourceUri: "ui://kiln/asset-
|
|
1752
|
+
resourceUri: "ui://kiln/asset-v6.html",
|
|
1753
1753
|
visibility: [
|
|
1754
1754
|
"model"
|
|
1755
1755
|
]
|
|
1756
1756
|
},
|
|
1757
|
-
"openai/outputTemplate": "ui://kiln/asset-
|
|
1758
|
-
"ui/resourceUri": "ui://kiln/asset-
|
|
1757
|
+
"openai/outputTemplate": "ui://kiln/asset-v6.html",
|
|
1758
|
+
"ui/resourceUri": "ui://kiln/asset-v6.html"
|
|
1759
1759
|
},
|
|
1760
1760
|
outputSchema: {
|
|
1761
1761
|
type: "object",
|
|
@@ -2034,7 +2034,7 @@ var mcp_manifest_default = {
|
|
|
2034
2034
|
],
|
|
2035
2035
|
resources: [
|
|
2036
2036
|
{
|
|
2037
|
-
uri: "ui://kiln/asset-
|
|
2037
|
+
uri: "ui://kiln/asset-v6.html",
|
|
2038
2038
|
name: "kiln-asset-viewer",
|
|
2039
2039
|
mimeType: "text/html;profile=mcp-app",
|
|
2040
2040
|
description: "Interactive Kiln asset viewer and downloads",
|
|
@@ -2082,10 +2082,10 @@ import {
|
|
|
2082
2082
|
import { readFile } from "node:fs/promises";
|
|
2083
2083
|
|
|
2084
2084
|
// src/asset-widget-uri.ts
|
|
2085
|
-
var KILN_ASSET_WIDGET_URI = "ui://kiln/asset-
|
|
2085
|
+
var KILN_ASSET_WIDGET_URI = "ui://kiln/asset-v6.html";
|
|
2086
2086
|
|
|
2087
2087
|
// src/engine-identity.ts
|
|
2088
|
-
var ENGINE_VERSION = "1.2.
|
|
2088
|
+
var ENGINE_VERSION = "1.2.2";
|
|
2089
2089
|
var ENGINE_INSTALL_URL = new URL("../", import.meta.url).href;
|
|
2090
2090
|
|
|
2091
2091
|
// src/requirements-json.ts
|