feat(sdk,dashboard,docs): U9 — save-time code validation route, SDK type exports, skill doc, step-inversion docs + changeset

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-06-04 13:15:50 -07:00
parent 60e9938f5a
commit 7076dd4516
8 changed files with 225 additions and 4 deletions

View File

@@ -96,6 +96,50 @@ export type {
PluginInstallation,
} from "@fusion/core";
// ── Step-inversion IR types (type-only) ──────────────────────────────────────
// TYPE-ONLY re-exports of the workflow-modelable step constructs (KTD-3/12/13/15)
// so plugin authors can author/validate workflow IR and step parsers against the
// canonical shapes. These are erased at build time, so the standalone plugin-sdk
// artifact carries no @fusion runtime specifiers (see cli plugin-sdk-export test).
export type {
// Graph IR primitives.
WorkflowIr,
WorkflowIrV1,
WorkflowIrV2,
WorkflowIrNode,
WorkflowIrEdge,
WorkflowIrNodeKind,
// Foreach / artifacts / custom fields (step inversion).
WorkflowForeachConfig,
WorkflowIrArtifact,
WorkflowFieldDefinition,
WorkflowFieldType,
WorkflowFieldOption,
WorkflowFieldRender,
// Step-parser contract.
StepParser,
StepParseResult,
ParsedStep,
} from "@fusion/core";
import type { StepParseResult } from "@fusion/core";
/**
* A plugin's step-parser contribution (KTD-12). A plugin's runtime loader returns
* these from its `getPluginStepParsers` getter; the engine wraps each fail-closed
* and registers it under `plugin:<pluginId>:<parserId>`. `parse` is SYNCHRONOUS
* (project-local trust tier) and may throw on malformed input — a throw maps to a
* routable `outcome:parse-error`.
*
* Structurally identical to the engine-side `PluginStepParserContribution` the
* plugin runner consumes; defined here so plugin authors do not depend on the
* engine package (the SDK depends on @fusion/core only).
*/
export interface PluginStepParserContribution {
parserId: string;
parse: (content: string) => StepParseResult;
}
import type { FusionPlugin } from "@fusion/core";
// NOTE (U8): trait-contribution VALIDATION lives in @fusion/core