@aionis/doc
v0.2.0
Published
Parser and compiler primitives for Aionis Doc
Maintainers
Readme
@aionis/doc
Parser, compiler, standalone runner, and continuity toolchain for Aionis Doc.
Install
npm i @aionis/[email protected]This package exposes two standalone paths:
- portable execution through
run-aionis-doc - Aionis-native continuity through handoff, publish, recover, and resume
The shortest standalone execution path is:
npx @aionis/[email protected] run-aionis-doc ./workflow.aionis.md --registry ./module-registry.jsonThe stable registry path is the local file registry:
aionis_doc_module_registry_v1- runtime id:
standalone_file_registry_v1
An experimental npm-installed registry prototype is also supported:
aionis_doc_npm_module_registry_v1- runtime id:
standalone_npm_registry_v1
The first official module package set is now published on npm:
@aionis/doc-module-research-claims@aionis/doc-module-copy-summary@aionis/doc-module-json-transform
If you are authoring your own package, the shortest stable workflow is:
- export
manifestandhandler - validate the module entry with
validate-aionis-doc-module - attach it to a registry
- validate the registry
- run the document through
run-aionis-doc
The full package binaries are:
npx @aionis/[email protected] compile-aionis-doc ./workflow.aionis.md --emit all
npx @aionis/[email protected] run-aionis-doc ./workflow.aionis.md --registry ./module-registry.json
npx @aionis/[email protected] validate-aionis-doc-registry ./module-registry.json
npx @aionis/[email protected] validate-aionis-doc-module ./modules/copy-summary.mjs --declared-module copy.summary.v1
npx @aionis/[email protected] execute-aionis-doc ./workflow.aionis.md
npx @aionis/[email protected] build-aionis-doc-runtime-handoff ./workflow.aionis.md --scope default
npx @aionis/[email protected] build-aionis-doc-handoff-store-request ./runtime-handoff.json --scope default
npx @aionis/[email protected] publish-aionis-doc-handoff ./workflow.aionis.md --base-url http://127.0.0.1:3001
npx @aionis/[email protected] recover-aionis-doc-handoff ./workflow.aionis.md --base-url http://127.0.0.1:3001
npx @aionis/[email protected] resume-aionis-doc-runtime ./recover-result.json --input-kind recover-result --candidate resume_patch --candidate request_reviewCLI Surface
compile-aionis-docrun-aionis-docvalidate-aionis-doc-registryvalidate-aionis-doc-moduleexecute-aionis-docbuild-aionis-doc-runtime-handoffbuild-aionis-doc-handoff-store-requestpublish-aionis-doc-handoffrecover-aionis-doc-handoffresume-aionis-doc-runtime
Package Usage
import {
compileAionisDoc,
compileAndExecuteAionisDoc,
buildRuntimeHandoffV1,
buildHandoffStoreRequestFromRuntimeHandoff,
ModuleRegistryExecutionRuntime,
StaticModuleRegistry,
runAionisDoc,
} from "@aionis/doc";
const result = compileAionisDoc(sourceText);
const standaloneResult = await runAionisDoc({
inputPath: "./workflow.aionis.md",
inputKind: "source",
registryPath: "./module-registry.json",
});
const handoff = buildRuntimeHandoffV1({
inputPath: "./workflow.aionis.md",
result,
scope: "default",
repoRoot: process.cwd(),
});
const storeRequest = buildHandoffStoreRequestFromRuntimeHandoff({
handoff,
scope: "default",
});
const runtime = new ModuleRegistryExecutionRuntime({
runtime_id: "custom_runtime_v1",
registry: new StaticModuleRegistry([
{
manifest: {
module: "custom.echo.v1",
version: "1.0.0",
description: "Echo a text payload.",
deterministic: true,
required_capabilities: ["direct_execution"],
input_contract: {
kind: "object",
properties: {
text: { kind: "string" },
},
required: ["text"],
additional_properties: false,
},
output_contract: {
kind: "object",
properties: {
text: { kind: "string" },
},
required: ["text"],
additional_properties: false,
},
artifact_contract: {
kind: "object",
properties: {
uri: { kind: "string" },
},
required: ["uri"],
additional_properties: false,
},
evidence_contract: {
kind: "object",
properties: {
claim: { kind: "string" },
},
required: ["claim"],
additional_properties: false,
},
},
handler: (input) => ({
kind: "module_result",
output: input,
artifacts: [{ uri: "memory://artifacts/custom.echo.v1/result.json" }],
evidence: [{ claim: "Echo module returned the input payload." }],
}),
},
]),
});
const executionResult = await compileAndExecuteAionisDoc(sourceText, { runtime });The module contract is now split into:
manifest: stable runtime-neutral metadata and input/output contractsartifact_contractandevidence_contract: optional structured side-output contractshandler: the runtime-specific implementation
The important boundary is:
run-aionis-docandrunAionisDoc(...)are standalone execution entrypointsvalidate-aionis-doc-registryandvalidate-aionis-doc-moduleare standalone contract checkspublish / recover / resumeremain Aionis-native continuity enhancements
Local Release Checks
From the repository root:
npm run aionis-doc:build
npm run aionis-doc:test
npm run aionis-doc:cli:test
npm run aionis-doc:run:cli:test
npm run aionis-doc:modules:test
npm run aionis-doc:execute:cli:test
npm run aionis-doc:handoff:cli:test
npm run aionis-doc:store-request:cli:test
npm run aionis-doc:publish:cli:test
npm run aionis-doc:recover:cli:test
npm run aionis-doc:release-check
npm run aionis-doc:pack-dry-run