fix(pulumi): drop exports map so Pulumi can serialize the provider (v0.0.2)
Some checks failed
CI/CD / lint (pull_request) Successful in 1m1s
CI/CD / typecheck (pull_request) Successful in 2m6s
CI/CD / test (pull_request) Successful in 1m19s
CI/CD / build (pull_request) Successful in 2m24s
CI/CD / smoke (pull_request) Failing after 3m9s
CI/CD / publish (pull_request) Has been skipped

Pulumi's closure serializer reaches the dynamic provider's internal submodules
(dist/engine.js, dist/kinds.js) by subpath. An `exports` allowlist with only
"." blocks that: `pulumi preview` failed with "package.json export path for
.../dist/kinds.js not found". Removing `exports` (keeping main/types) lets the
serializer resolve them. Verified end-to-end: a real `pulumi up` from
kubernetes-deployment updated mcpd's qwen3-thinking llm and it probes 200.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Michal
2026-07-17 22:32:41 +01:00
parent 8b6dbdd368
commit a517443828
2 changed files with 7 additions and 9 deletions

View File

@@ -92,5 +92,9 @@ of the project it is attached to (the project-scope guard only gates
encrypted, in Pulumi state. Use an encrypted state backend. encrypted, in Pulumi state. Use an encrypted state backend.
- **Serialization:** this package is CommonJS on purpose — Pulumi serializes the - **Serialization:** this package is CommonJS on purpose — Pulumi serializes the
provider object, and the CJS build lets its module references (`./engine`, provider object, and the CJS build lets its module references (`./engine`,
`./kinds`) be captured and re-required at runtime. Validate end-to-end with a `./kinds`) be captured and re-required at runtime. For the same reason the
real `pulumi up` against a disposable mcpd before relying on it in production. package intentionally has **no `exports` map**: Pulumi's closure serializer
reaches the internal `dist/*.js` submodules by subpath, which an `exports`
allowlist would block ("package.json export path ... not found"). Validate
end-to-end with a real `pulumi up` against a disposable mcpd before relying on
it in production.

View File

@@ -1,18 +1,12 @@
{ {
"name": "@mcpctl/pulumi", "name": "@mcpctl/pulumi",
"version": "0.0.1", "version": "0.0.2",
"description": "Pulumi dynamic provider for mcpctl resources (llms, servers, projects, ...). Manage mcpctl declaratively from any TypeScript Pulumi program.", "description": "Pulumi dynamic provider for mcpctl resources (llms, servers, projects, ...). Manage mcpctl declaratively from any TypeScript Pulumi program.",
"main": "./dist/index.js", "main": "./dist/index.js",
"types": "./dist/index.d.ts", "types": "./dist/index.d.ts",
"files": [ "files": [
"dist" "dist"
], ],
"exports": {
".": {
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
}
},
"scripts": { "scripts": {
"build": "tsc --build", "build": "tsc --build",
"clean": "rimraf dist", "clean": "rimraf dist",