@instruktlabs/kiln 1.0.0 → 1.1.0

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.
Files changed (68) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/CHANGELOG.md +48 -3
  5. package/CONTRIBUTING.md +16 -7
  6. package/README.md +95 -381
  7. package/dist/agent-run.mjs +1 -1
  8. package/dist/build.json +40 -28
  9. package/dist/cli.mjs +18 -14
  10. package/dist/mcp-engine.mjs +15 -11
  11. package/dist/mcp-server.mjs +1 -1
  12. package/docs/architecture.md +6 -3
  13. package/docs/chatgpt.md +20 -5
  14. package/docs/examples.md +40 -170
  15. package/docs/install.md +100 -35
  16. package/docs/migration.md +20 -0
  17. package/docs/sdk.md +26 -5
  18. package/lib/asset-widget-uri.d.ts +9 -0
  19. package/lib/asset-widget-uri.js +9 -0
  20. package/lib/cli-render-mode.js +10 -3
  21. package/lib/discovery/portable.d.ts +9 -0
  22. package/lib/discovery/portable.js +6 -0
  23. package/lib/engine-identity.d.ts +1 -1
  24. package/lib/engine-identity.js +1 -1
  25. package/lib/evaluator/isolation.js +19 -5
  26. package/lib/evaluator/probe-invariants.d.ts +11 -0
  27. package/lib/evaluator/probe-invariants.js +36 -0
  28. package/lib/evaluator/probe-worker.js +16 -4
  29. package/lib/loopback.d.ts +6 -0
  30. package/lib/loopback.js +6 -0
  31. package/lib/mcp-core.d.ts +209 -0
  32. package/lib/mcp-core.js +278 -0
  33. package/lib/mcp-engine.d.ts +57 -0
  34. package/lib/mcp-engine.js +284 -0
  35. package/lib/mcp-manifest.d.ts +15 -0
  36. package/lib/mcp-manifest.js +65 -0
  37. package/lib/mcp.d.ts +5 -0
  38. package/lib/mcp.js +2 -0
  39. package/lib/render-service-host.js +1 -1
  40. package/package.json +22 -1
  41. package/plugin.json +1 -1
  42. package/plugins/kiln-engine/.claude-plugin/icon.png +0 -0
  43. package/plugins/kiln-engine/.claude-plugin/plugin.json +9 -3
  44. package/plugins/kiln-engine/PRIVACY.md +100 -0
  45. package/plugins/kiln-engine/README.md +103 -18
  46. package/plugins/kiln-engine/{scripts/setup-workspace.mjs → bin/kiln-setup-workspace.mjs} +37 -9
  47. package/plugins/kiln-engine/package-provenance.json +15 -8
  48. package/plugins/kiln-engine/plugin.json +10 -4
  49. package/plugins/kiln-engine/runtime.json +10 -1
  50. package/plugins/kiln-engine/skills/kiln-setup-workspace/SKILL.md +17 -18
  51. package/plugins/kiln-engine/skills/kiln-setup-workspace/references/plugin-install.md +28 -8
  52. package/plugins/kiln-engine/skills/kiln-setup-workspace/references/renderer-setup.md +11 -0
  53. package/scripts/create-workspace.mjs +71 -13
  54. package/scripts/workspace-config.mjs +239 -0
  55. package/scripts/workspace-project.mjs +384 -0
  56. package/scripts/workspace-transaction.mjs +504 -0
  57. package/skills/kiln-setup-workspace/SKILL.md +17 -18
  58. package/skills/kiln-setup-workspace/references/plugin-install.md +28 -8
  59. package/skills/kiln-setup-workspace/references/renderer-setup.md +11 -0
  60. package/src/cli-render-mode.ts +9 -9
  61. package/src/cli.ts +3 -3
  62. package/src/discovery/portable.ts +9 -0
  63. package/src/engine-identity.ts +1 -1
  64. package/src/evaluator/isolation.ts +27 -6
  65. package/src/evaluator/probe-invariants.ts +50 -0
  66. package/src/evaluator/probe-worker.ts +22 -4
  67. package/src/mcp.ts +5 -0
  68. package/src/render-service-host.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
3
  "name": "instruktlabs",
4
- "description": "Instrukt Labs developer tools, including Kiln Engine for editable 3D assets.",
4
+ "description": "Instrukt Labs developer tools, including Kiln for editable 3D assets.",
5
5
  "owner": {
6
6
  "name": "Instrukt Labs"
7
7
  },
@@ -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.0.0",
4
+ "version": "1.1.0",
5
5
  "author": {
6
6
  "name": "Matthew Kissinger"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiln",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Create, review, save, and refine procedural 3D assets with portable source and GLB collections.",
5
5
  "author": {
6
6
  "name": "Matthew Kissinger"
package/CHANGELOG.md CHANGED
@@ -5,11 +5,56 @@ 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.1.0
9
+
10
+ Existing-project setup, public host interfaces and simpler onboarding. Hosted
11
+ deployment and directory submissions remain deferred.
12
+
13
+ - `kiln-init --adopt` configures an existing project or a new workspace through
14
+ the same initializer. Preview with `--adopt --check`; existing instructions,
15
+ unrelated configuration, saved assets and customized skills remain intact.
16
+ - Multiple compatible client registrations share one program store. Managed
17
+ upgrades retain narrow configuration ownership and recover interrupted setup
18
+ writes without putting recovery snapshots inside the project.
19
+ - Explicit migration of a copied legacy OpenCode workspace replaces its old
20
+ owned skill path instead of loading both original and copied instructions.
21
+ - The local plugin's setup helper uses the pinned engine's adapter list. Plugin
22
+ installation remains specific to Claude Code and Codex; those clients can also
23
+ configure another supported workspace adapter through the shared helper.
24
+ - Public `mcp`, `discovery/portable`, `tools/input` and `views/port` SDK entries
25
+ expose existing host contracts without requiring imports of internal package
26
+ files. Portable Discovery accepts an engine-generated catalog without loading
27
+ Node's catalog builder. The local stdio entry keeps lazy engine loading.
28
+ - The release verifier accepts versioned 1.x follow-ups and release candidates,
29
+ retaining exact-archive evidence and owner promotion approval. Development
30
+ builds and unsupported prerelease tags remain ineligible for staging.
31
+ - Concurrent captures rejoin a replacement local renderer when a delayed failure
32
+ arrives from the old connection. Startup failures preserve their bounded child
33
+ error output instead of reporting only the stack footer.
34
+ - The README and maintained guides lead with npm installation and distinguish
35
+ released local functionality from deferred hosting. Real Troy captures join the
36
+ existing scene and vehicle previews. Global and project-local CLI instructions
37
+ explain the workspace launcher and avoid PowerShell argument forwarding errors.
38
+ Historical examples move out of the active source tree;
39
+ pinned Git-history restoration preserves the website archive and regression corpus.
40
+ - The optional Linux isolated evaluator no longer passes an unsupported
41
+ `--preserve-fds` option to Bubblewrap. Its explicit fd3 protocol pipe uses
42
+ inherited descriptors; namespace, capability, filesystem and resource limits
43
+ remain required by readiness qualification.
44
+ - Isolated readiness compares the child's namespace and non-root identity with
45
+ the parent, accounting for Bubblewrap's nested mapping when further user
46
+ namespaces are disabled. The final worker environment is cleared again to
47
+ remove Bubblewrap's injected `PWD` while retaining the exact allowed variables.
48
+ - The isolated worker removes Node's legacy `__proto__` accessor instead of
49
+ throwing on reads, allowing Khronos glTF validation to initialize. Readiness
50
+ verifies that the accessor is absent; a regression also checks that assigning
51
+ a JSON `__proto__` key cannot change an object's prototype.
52
+
8
53
  ## 1.0.0
9
54
 
10
- Changes since the 0.10.0 tagged package release, qualified first through the public
11
- `1.0.0-rc.1` prerelease. Promotion of the stable archive to npm `latest` requires
12
- the separate release gates in [the runbook](docs/releasing.md).
55
+ Published on npm as `@instruktlabs/kiln@1.0.0` under `latest`, following the public
56
+ `1.0.0-rc.1` prerelease. These are the changes since the 0.10.0 tagged package.
57
+ Future publication follows the separate release gates in [the runbook](docs/releasing.md).
13
58
  Hosted deployment and vendor directory acceptance remain separate milestones.
14
59
 
15
60
  - **Breaking:** the npm identity is now `@instruktlabs/kiln`, with compiled ESM and
package/CONTRIBUTING.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Contributing to Kiln
2
2
 
3
- Small fixes, clear bug reports, examples and documentation improvements are welcome.
3
+ Small fixes, clear bug reports, minimal reproductions and documentation improvements are welcome.
4
4
  For a behavior bug, include a minimal `.kiln.js` program, the command or tool call,
5
5
  and the error or image you saw. Include your OS, Node version and whether rendering
6
6
  used CPU or GPU. Remove credentials and private paths from shared logs.
@@ -15,6 +15,7 @@ bun install --frozen-lockfile
15
15
  bun run check:toolchain
16
16
  bun run check:skills
17
17
  bun run build:sdk
18
+ node scripts/example-archive.mjs --fetch
18
19
  bun run typecheck
19
20
  bun run lint
20
21
  bun run test
@@ -27,6 +28,12 @@ separate npm project with its own lockfile and a native dependency.
27
28
  `bun run test:render-service` does, after `npm --prefix render-service ci
28
29
  --ignore-scripts` once. This suite needs no GPU or Dawn build; CI requires it.
29
30
 
31
+ The archive preparation restores pinned historical programs into ignored
32
+ `.cache/example-archive/` for the regression corpus and website archive. It makes
33
+ no model calls, changes no working files and verifies the original Git blob bytes.
34
+ Run it once after cloning; subsequent tests are offline. Old showcase assets are
35
+ not current teaching examples or part of the npm package.
36
+
30
37
  The maintained scenes have a separate lockfile and validation commands:
31
38
 
32
39
  ```sh
@@ -37,12 +44,11 @@ bun run check:pins
37
44
  bun run typecheck
38
45
  bun run lint
39
46
  bun run test
40
- bun test ./scripts/tests --timeout 20000
41
47
  ```
42
48
 
43
49
  The pin check reads the engine, render service and site from the same checkout.
44
- The portable test runner covers scene source contracts; the separate script-test
45
- command covers the validation and evidence tooling. Asset and browser qualification
50
+ The portable test runner covers scene source contracts and script tests for
51
+ validation and evidence tooling. Asset and browser qualification
46
52
  require staged inputs; see [scenes/README.md](scenes/README.md).
47
53
 
48
54
  `lint` reports **nothing** on a clean tree, and a warning fails it. There is no
@@ -65,8 +71,10 @@ archive qualification, npm staging and owner promotion.
65
71
  ahead of that release go in the changelog's `Unreleased` section and can retain the
66
72
  released version until the next release is prepared. A new release must bump the
67
73
  version before producing its tarball: two different releases must never share a
68
- package version. Patch for a fix, minor for changed or added capability; this
69
- package is pre-1.0 and unpublished, so a minor is the normal case.
74
+ package version. Use a patch for compatible fixes, a minor for compatible added
75
+ capabilities, and a major for breaking changes to stable APIs. Kiln 1.0.0 is
76
+ published; the [SDK stability contract](docs/sdk.md#stability-in-1x) identifies
77
+ the explicitly experimental exceptions.
70
78
 
71
79
  Bumping it means rebuilding: `runtimeBuildIdentity` hashes the version into each
72
80
  entry's `identity` in `dist/build.json`, which is the value a build receipt cites. Run
@@ -96,7 +104,8 @@ must be empty and outside the engine installation. Setup copies project-local
96
104
  skills and configuration without changing global agent settings or authentication.
97
105
 
98
106
  In a pull request, describe the problem, resulting behavior and checks you ran.
99
- Keep generated source examples and their provenance together. If you change a
107
+ Keep generated showcase assets in separate authoring workspaces; include only the
108
+ small reproduction or regression fixture needed for an engine fix. If you change a
100
109
  public tool, update its shared registry definition rather than duplicating a
101
110
  transport-specific definition.
102
111