{"_id":"@amykit/core","_rev":"4-74bd625d4909e80d98bc0f34729ee281","name":"@amykit/core","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.0":{"name":"@amykit/core","version":"0.2.0","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/core@0.2.0","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"d7e6901ba63b0fcd982f8cf6fe2354012046f36a","tarball":"https://registry.npmjs.org/@amykit/core/-/core-0.2.0.tgz","fileCount":111,"integrity":"sha512-Q8NCWZna7uR+tkdB40YdXzebE4D+dbFPH7mv8zTwWxyPLWxRzcejfGtQD3XkfpL5r0FojUcoCONM7Jj4bfUpFg==","signatures":[{"sig":"MEQCIEhJnsHlJd2odJHVtfw4whQwXRjv28ulsJks5IjiF4/tAiAAiiPZu9ygCJTQk0zdlsFP/NxChaCOXcL1lM+Qiclw0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fcore@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145913},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b7903f5c95e8154f5db6fd4df6ca2633a628812d","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/core"},"_npmVersion":"11.19.0","description":"Plugin contracts, the action catalogue, the registry and the loader. Knows no domain.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0_1788658141984_0.09055426233140684","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@amykit/core","version":"0.3.0","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/core@0.3.0","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"a84c49b34514ea6ae66fe118ee9b09d93ee72612","tarball":"https://registry.npmjs.org/@amykit/core/-/core-0.3.0.tgz","fileCount":111,"integrity":"sha512-4Nzk0eGc5rkhKYciKnyp9yWEDR+QYaleEf73G8fljNuNHOZ06tWv2vU1FnkE87EDIo9aUzwQWFVHI8SxNkK+PA==","signatures":[{"sig":"MEQCIBKLqdMWIsgXBHAE5k8cRQgI8Csr+dBhAiMRrbwF4mTLAiBHyspaSbYPNVWRHhY0FmypeE1o8z4UMlUGJT+OwJGiOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fcore@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146867},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a9e241e87a00d8267ad9e992c4ab8fd97bd04480","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/core"},"_npmVersion":"11.19.0","description":"Plugin contracts, the action catalogue, the registry and the loader. Knows no domain.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0_1788922124363_0.9753135736363394","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@amykit/core","version":"0.3.1","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/core@0.3.1","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"4d53f6a1f2af3ba3f780e1fe490157ae306f320e","tarball":"https://registry.npmjs.org/@amykit/core/-/core-0.3.1.tgz","fileCount":111,"integrity":"sha512-yf7CYvjLdPg5PTQAUM88e0xuKFVrcFUC+mW6Fj6Dgizji7FWCT30Ka083ql1Ls3UnWFPF5/lb30j9+yRDwEUWg==","signatures":[{"sig":"MEQCIEjuBGRR6csUX+bf6jw8eXzk12XPJLQaPtBRwHmziUaVAiAImdkaj9O8InxmNBDNZB2T9t6JY6wTWJrIBVv8VKtHGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fcore@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149414},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6a4c559ad368c51e232a33c4c2221f02709ceb2f","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/core"},"_npmVersion":"11.19.0","description":"Plugin contracts, the action catalogue, the registry and the loader. Knows no domain.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_0.3.1_1788973002449_0.24447202050407513","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@amykit/core@0.4.0","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"5f5f836346b4c67f46d9baa91244127d19c19406","tarball":"https://registry.npmjs.org/@amykit/core/-/core-0.4.0.tgz","fileCount":127,"integrity":"sha512-901iPrxdaud8N8Pd4a12+07oIWMgyuwS8cHqABx/h56AU5A8Yg5BPTIx3s55rhV0/JHPWxWGsNEHc31nh8/K0A==","signatures":[{"sig":"MEUCIQC8alKEYiWjCBDg/8iJkpCtlW8b7prsgW5r+VcKJ1PGYAIgfJr/mY+eb78bIaAqFjDNx6IC2yJEtADq8/M7SocNX5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCafi6FOhuDwpvjPCF696n6PLOF3hKT4xuXwppabl4dxgIgA41tzqRu/OwHDnu3LrffMjjebf6AcNEsU0XD2XHHcT0="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fcore@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213779},"main":"./dist/index.js","name":"@amykit/core","type":"module","types":"./dist/index.d.ts","author":{"name":"Nicolas Melo"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ac437aba051bd8e109e1eb8b3c32b0365c6b4e2e","license":"MIT","version":"0.4.0","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"homepage":"https://github.com/nicolasmelo1/amy#readme","repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/core"},"_npmVersion":"11.19.0","description":"Plugin contracts, the action catalogue, the registry and the loader. Knows no domain.","directories":{},"maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"_nodeVersion":"24.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.4.0_1789739884231_0.5309771580369631"}}},"time":{"created":"2026-09-06T01:29:01.873Z","modified":"2026-09-18T13:58:04.643Z","0.2.0":"2026-09-06T01:29:02.127Z","0.3.0":"2026-09-09T02:48:44.493Z","0.3.1":"2026-09-09T16:56:42.592Z","0.4.0":"2026-09-18T13:58:04.331Z"},"bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"author":{"name":"Nicolas Melo"},"license":"MIT","homepage":"https://github.com/nicolasmelo1/amy#readme","repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/core"},"description":"Plugin contracts, the action catalogue, the registry and the loader. Knows no domain.","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"readme":"# @amykit/core\n\nThe kernel. It knows no domain.\n\nWhat lives here is the catalogue of **actions** that can be taken, how each one\nis dispatched, the generic work record, the plan, the plugin contracts, the\nregistry that assembles them, and the process-level infrastructure everything\nshares.\n\nTo this package a state is a `string` and an action is an open name. It cannot\ntell a ticket from a deploy, and that is the point: a workflow is only the\norder in which actions happen, so a second workflow reuses `implement` rather\nthan dragging a whole domain along with it.\n\n## The action catalogue\n\nEach action names the **port** that must be mounted for it to run, and the\nmethod on that port it invokes. A plugin may add an action the core does not\nhave, and when it does it has to bring the port that runs it in the same\npackage: an action nobody can execute is a promise the machine cannot keep.\n\n## What it refuses, and when\n\nEverything at mount, by name, before a ticket is touched:\n\n- a setting that is not one the plugin declared, because that is a typo and\n  ignoring it means the setting silently never applied\n- two plugins claiming the same port, or the same action, or the same\n  observation\n- an action the workflow says it emits that nothing can run\n\n`unmetNeeds` is where the price of an open action name gets paid.\n\n## The one rule that holds this together\n\n`L0.CORE_STAYS_IGNORANT`, a local rule in `.software-factory/rules/`: nothing\nunder `src/` may import an `@amykit/workflow-*` or `@amykit/plugin-*` package. One\nsuch import and the core learns a domain, and every workflow after the first\nbecomes a fork. It has a mutation fixture, and `sf verify` proves it still\nfires.\n","readmeFilename":"README.md"}