{
	"//name": "Scoped under the kimchi-dev npm org (the GitHub org is getkimchi)",
	"name": "@kimchi-dev/kimchi-workflows",
	"//version": "Placeholder, never bumped: the git tag is the version, stamped in at publish time by release.yml",
	"version": "0.0.1-alpha.6",
	"description": "Define arbitrary workflows in TypeScript and run them inside the PI coding harness.",
	"keywords": [
		"pi-package",
		"pi",
		"workflow",
		"agent",
		"coding-agent"
	],
	"license": "Apache-2.0",
	"author": "CAST AI Group, Inc.",
	"repository": {
		"type": "git",
		"url": "git+https://github.com/getkimchi/kimchi-workflows.git"
	},
	"homepage": "https://github.com/getkimchi/kimchi-workflows#readme",
	"bugs": "https://github.com/getkimchi/kimchi-workflows/issues",
	"packageManager": "pnpm@10.33.0",
	"type": "module",
	"engines": {
		"node": ">=24"
	},
	"//files": "BOTH, and each earns its place. `dist` is what consumers import: shipping only TypeScript makes the package unloadable by plain Node (it refuses to strip types under node_modules) and forces `allowImportingTsExtensions` on anyone type-checking it. `src` is what PI loads — the `pi` manifest below points at the TypeScript, so a git install with no build output still registers /workflow — and it is what the source maps resolve against.",
	"files": [
		"dist",
		"src"
	],
	"publishConfig": {
		"access": "public"
	},
	"//exports": "The public surface, and the only names anything outside this repo may import. The package root IS the authoring API — that is what a workflow file imports; `./flow` names the same module for symmetry with the other layers. Directory paths (`./src/...`, `./dist/...`) are deliberately NOT exported: the layout is ours to change.",
	"exports": {
		".": {
			"types": "./dist/flow/index.d.ts",
			"default": "./dist/flow/index.js"
		},
		"./flow": {
			"types": "./dist/flow/index.d.ts",
			"default": "./dist/flow/index.js"
		},
		"./engine": {
			"types": "./dist/engine/index.d.ts",
			"default": "./dist/engine/index.js"
		},
		"./host": {
			"types": "./dist/host/index.d.ts",
			"default": "./dist/host/index.js"
		},
		"./testing": {
			"types": "./dist/testing/index.d.ts",
			"default": "./dist/testing/index.js"
		}
	},
	"//pi": "The PI package manifest (docs/packages.md), which is what makes `pi install <path|git:…>` load the /workflow command. Without it PI records the package in settings and loads NOTHING from it — a package.json with no `pi` key and no conventional `extensions/` directory contributes no resources. It points at TypeScript on purpose: PI loads extensions through jiti, and a git install never runs the publish build, so `src` is the only entry point guaranteed to exist.",
	"pi": {
		"extensions": [
			"./src/host/extension.ts"
		]
	},
	"//scripts": "`prepack` (not `prepare`) builds for the tarball: `prepare` would also wastefully build git installs, where PI loads the checked-in TypeScript source and omits the development-only typebox pin.",
	"scripts": {
		"build": "tsc -p tsconfig.build.json",
		"docs:authoring": "node scripts/generate-authoring-reference.mjs && biome format --write src/host/builtin/generated/authoring-reference.ts",
		"prepack": "npm run build",
		"test": "vitest run",
		"test:integration": "vitest run --config vitest.integration.config.ts",
		"typecheck": "tsc --noEmit",
		"lint": "biome check .",
		"lint:fix": "biome check --write .",
		"check": "pnpm run lint && pnpm run typecheck && pnpm run test"
	},
	"//dependencies": "PI does not provide jiti or the TypeScript compiler to extensions. jiti loads workflows; TypeScript performs mandatory pre-write candidate validation even in dependency-free target projects.",
	"dependencies": {
		"@types/node": "^26.2.0",
		"jiti": "^2.7.0",
		"typescript": "^7.0.2"
	},
	"//peerDependencies": "The packages PI bundles and hands to extensions itself (docs/packages.md: \"list them in peerDependencies with a \\\"*\\\" range and do not bundle them\"). PI's extension loader aliases these specifiers to its own copies and that alias WINS over the consuming project's node_modules — so a range narrower than `*` would describe a resolution we do not control.",
	"peerDependencies": {
		"@earendil-works/pi-coding-agent": "*",
		"typebox": "*"
	},
	"//devDependencies": "`typebox` is pinned EXACTLY to the version `@earendil-works/pi-coding-agent` pins, because that is the copy the harness actually runs us on — a caret range let tests pass on 1.3.6 while every real run used PI's 1.1.38. `test/typebox-pin.test.ts` fails when a PI upgrade moves this.",
	"devDependencies": {
		"@biomejs/biome": "^2.5.6",
		"@earendil-works/pi-coding-agent": "^0.80.10",
		"typebox": "1.1.38",
		"vitest": "^4.1.10"
	}
}
