{"_id":"@ai-role-factory/engine","_rev":"5-e7ffc98fd081b85eae5f70c5ace3d23f","name":"@ai-role-factory/engine","dist-tags":{"preview":"0.1.2","latest":"0.1.2"},"versions":{"0.1.0":{"name":"@ai-role-factory/engine","version":"0.1.0","_id":"@ai-role-factory/engine@0.1.0","maintainers":[{"name":"nicktong","email":"nick@ctoondemand.co.uk"}],"dist":{"shasum":"5b915a6e9d18739ea7e4e3061dc56c6d148e7fbe","tarball":"https://registry.npmjs.org/@ai-role-factory/engine/-/engine-0.1.0.tgz","fileCount":28,"integrity":"sha512-2UIO87/aHz8Y/h1j48U42tQwxwk0WtUiiCdsrhp5yrf0lMpCZOCohWFt22tUnSCsg9xF6QDww/x5tOk7zaXRRg==","signatures":[{"sig":"MEUCICueWipvcfQKRb/7OY6nfXCNWJYX8fPxNxYeSGYmpbYWAiEA3OqWdGzLb77ODuQTLKx7x0m5/+spn4Xj9ij2oKnX1eQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126397},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=24 <25"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./catalog":{"types":"./dist/catalog.d.ts","default":"./dist/catalog.js"}},"scripts":{"test":"npm run sync-config && npm run sync-templates && vitest run","build":"npm run sync-config && rm -rf dist && tsc","prepare":"npm run build","test:watch":"npm run sync-config && npm run sync-templates && vitest","sync-config":"mkdir -p shared && cp ../../shared/form-config.json shared/form-config.json","sync-templates":"node ../../scripts/build-templates.mjs"},"_npmUser":{"name":"nicktong","email":"nick@ctoondemand.co.uk"},"_npmVersion":"11.9.0","description":"Canonical workspace generation engine for AI Role Factory.","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"^5","@types/node":"^24"},"_npmOperationalInternal":{"tmp":"tmp/engine_0.1.0_1784905299911_0.6362560629279781","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ai-role-factory/engine","version":"0.1.1","_id":"@ai-role-factory/engine@0.1.1","maintainers":[{"name":"nicktong","email":"nick@ctoondemand.co.uk"}],"dist":{"shasum":"3ba894dadd3c8d9ad02cdd3754a817aaea662055","tarball":"https://registry.npmjs.org/@ai-role-factory/engine/-/engine-0.1.1.tgz","fileCount":29,"integrity":"sha512-k7VoXM2cvwgafryRK0GvTVpD3bTltjeHWYQsm66/ZuWGxAmcaSMKAt8ojIyIa2FZGvFepLoVGn7P7pNQXa5DIQ==","signatures":[{"sig":"MEYCIQDLSUelbdqzX+M5Pem9DQrhMAlT+nEs+Uox3YLHTdN4kgIhAIms0mBmSvjYRnYbCwiTcPCTn5L0LBDAx05u6bDATnz4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128499},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=24 <25"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./catalog":{"types":"./dist/catalog.d.ts","default":"./dist/catalog.js"}},"scripts":{"test":"npm run sync-config && npm run sync-templates && vitest run","build":"npm run sync-config && rm -rf dist && tsc","prepare":"npm run build","test:watch":"npm run sync-config && npm run sync-templates && vitest","sync-config":"mkdir -p shared && cp ../../shared/form-config.json shared/form-config.json","sync-templates":"node ../../scripts/build-templates.mjs"},"_npmUser":{"name":"nicktong","email":"nick@ctoondemand.co.uk"},"_npmVersion":"11.9.0","description":"Canonical workspace generation engine for AI Role Factory.","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"^5","@types/node":"^24"},"_npmOperationalInternal":{"tmp":"tmp/engine_0.1.1_1784914254003_0.08139029148385513","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ai-role-factory/engine","version":"0.1.2","_id":"@ai-role-factory/engine@0.1.2","maintainers":[{"name":"nicktong","email":"nick@ctoondemand.co.uk"}],"dist":{"shasum":"d59dbf8ea6345924b6fd14e851083042a3ea1056","tarball":"https://registry.npmjs.org/@ai-role-factory/engine/-/engine-0.1.2.tgz","fileCount":29,"integrity":"sha512-naxxxbfDvzjYTLU4inZsYvm0DVOYW5ZEjyJ/+XCMxwXGQ41ECXYMEvCJh6ex6GQ3qzK/XQNvG1WGPGWYkyZW0Q==","signatures":[{"sig":"MEUCIEPmQd1+1zMy/TM5g1hBURzj8IFBIhLAfb7GlvQHlbX4AiEAlEOVpwgREemiV9xrowxt0AxrqyAoH0qtwOyJcrRH5mk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128499},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=24 <25"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./catalog":{"types":"./dist/catalog.d.ts","default":"./dist/catalog.js"}},"scripts":{"test":"npm run sync-config && npm run sync-templates && vitest run","build":"npm run sync-config && rm -rf dist && tsc","prepare":"npm run build","test:watch":"npm run sync-config && npm run sync-templates && vitest","sync-config":"mkdir -p shared && cp ../../shared/form-config.json shared/form-config.json","sync-templates":"node ../../scripts/build-templates.mjs"},"_npmUser":{"name":"nicktong","email":"nick@ctoondemand.co.uk"},"_npmVersion":"11.9.0","description":"Canonical workspace generation engine for AI Role Factory.","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"^5","@types/node":"^24"},"_npmOperationalInternal":{"tmp":"tmp/engine_0.1.2_1784915267051_0.4740640109959151","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-07-24T15:01:39.761Z","modified":"2026-07-24T17:49:37.557Z","0.1.0":"2026-07-24T15:01:40.075Z","0.1.1":"2026-07-24T17:30:54.156Z","0.1.2":"2026-07-24T17:47:47.193Z"},"description":"Canonical workspace generation engine for AI Role Factory.","maintainers":[{"name":"nicktong","email":"nick@ctoondemand.co.uk"}],"readme":"# AI Role Factory Engine\n\nThe canonical TypeScript generation engine behind the\n[AI Role Factory hosted builder](https://ai-role.ctoondemand.co.uk/) and\n[`@ai-role-factory/cli`](https://www.npmjs.com/package/@ai-role-factory/cli).\n\nMost people should use the hosted builder or CLI. Install the engine when you\nneed to generate or inspect workspaces inside another TypeScript application.\n\n> This package is in public preview and requires Node.js 24. Its API is not yet\n> frozen.\n\n## Install\n\n```sh\nnpm install @ai-role-factory/engine@preview\n```\n\n## Main entry points\n\n- `generateWorkspace` orchestrates deterministic workspace generation and\n  returns files plus non-fatal warnings.\n- `generateFiles` exposes the lower-level file generator.\n- `createInstanceManifest` and `serializeInstanceManifest` create the local\n  ownership and maintenance contract used by generated workspaces.\n- `ownershipForPath` classifies factory-owned, customer-owned, and mixed paths.\n- Catalog, template, recommendation, placeholder, integration, operating-scope,\n  and configuration helpers are exported from the package root.\n- `@ai-role-factory/engine/catalog` provides the catalog entry point.\n\nThe exported TypeScript declarations are included in the package.\n\n## Generation shape\n\n```ts\nimport { generateWorkspace } from '@ai-role-factory/engine';\n\nconst result = generateWorkspace({\n  values,\n  selectedIntegrations,\n  selectedPacks,\n  authModes,\n  operatingScope,\n  generationMetadata,\n  templates,\n});\n\nfor (const [path, contents] of Object.entries(result.files)) {\n  // The caller decides where and how files are stored.\n}\n```\n\nThe generation functions do not write files, make network requests, or send\ntelemetry. Storage and delivery remain the caller's responsibility.\n\n## Instance maintenance\n\nThe engine defines the manifest and ownership rules. The CLI provides the\nread-only `doctor` and `plan-update` commands that operators run against local\nworkspaces.\n\nSee the public\n[workspace maintenance guide](https://ai-role.ctoondemand.co.uk/help) for the\noperator workflow and safety boundaries.\n","readmeFilename":"README.md"}