@x12i/made-easy 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +57 -2
- package/dist/analysis.d.ts +19 -0
- package/dist/analysis.d.ts.map +1 -0
- package/dist/analysis.js +90 -0
- package/dist/analysis.js.map +1 -0
- package/dist/build.d.ts +36 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +260 -0
- package/dist/build.js.map +1 -0
- package/dist/contracts/api.d.ts +447 -0
- package/dist/contracts/api.d.ts.map +1 -0
- package/dist/contracts/api.js +152 -0
- package/dist/contracts/api.js.map +1 -0
- package/dist/contracts/blocks.d.ts +221 -0
- package/dist/contracts/blocks.d.ts.map +1 -0
- package/dist/contracts/blocks.js +392 -0
- package/dist/contracts/blocks.js.map +1 -0
- package/dist/contracts/diagnostics.d.ts +111 -0
- package/dist/contracts/diagnostics.d.ts.map +1 -0
- package/dist/contracts/diagnostics.js +122 -0
- package/dist/contracts/diagnostics.js.map +1 -0
- package/dist/contracts/index.d.ts +11 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +11 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/json-schema.d.ts +5 -0
- package/dist/contracts/json-schema.d.ts.map +1 -0
- package/dist/contracts/json-schema.js +41 -0
- package/dist/contracts/json-schema.js.map +1 -0
- package/dist/contracts/recipe.d.ts +535 -0
- package/dist/contracts/recipe.d.ts.map +1 -0
- package/dist/contracts/recipe.js +380 -0
- package/dist/contracts/recipe.js.map +1 -0
- package/dist/contracts/schemas.d.ts +413 -0
- package/dist/contracts/schemas.d.ts.map +1 -0
- package/dist/contracts/schemas.js +205 -0
- package/dist/contracts/schemas.js.map +1 -0
- package/dist/draft.d.ts +157 -0
- package/dist/draft.d.ts.map +1 -0
- package/dist/draft.js +254 -0
- package/dist/draft.js.map +1 -0
- package/dist/emit-assets.d.ts +2 -0
- package/dist/emit-assets.d.ts.map +1 -0
- package/dist/emit-assets.js +27 -0
- package/dist/emit-assets.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown-doc.d.ts +59 -0
- package/dist/markdown-doc.d.ts.map +1 -0
- package/dist/markdown-doc.js +187 -0
- package/dist/markdown-doc.js.map +1 -0
- package/dist/model.d.ts +54 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +244 -0
- package/dist/model.js.map +1 -0
- package/dist/normalize.d.ts +63 -0
- package/dist/normalize.d.ts.map +1 -0
- package/dist/normalize.js +54 -0
- package/dist/normalize.js.map +1 -0
- package/dist/npm.d.ts +24 -0
- package/dist/npm.d.ts.map +1 -0
- package/dist/npm.js +51 -0
- package/dist/npm.js.map +1 -0
- package/dist/render/blocks.d.ts +17 -0
- package/dist/render/blocks.d.ts.map +1 -0
- package/dist/render/blocks.js +384 -0
- package/dist/render/blocks.js.map +1 -0
- package/dist/render/brief.d.ts +77 -0
- package/dist/render/brief.d.ts.map +1 -0
- package/dist/render/brief.js +62 -0
- package/dist/render/brief.js.map +1 -0
- package/dist/render/context.d.ts +43 -0
- package/dist/render/context.d.ts.map +1 -0
- package/dist/render/context.js +88 -0
- package/dist/render/context.js.map +1 -0
- package/dist/render/html.d.ts +19 -0
- package/dist/render/html.d.ts.map +1 -0
- package/dist/render/html.js +178 -0
- package/dist/render/html.js.map +1 -0
- package/dist/render/markdown-out.d.ts +11 -0
- package/dist/render/markdown-out.d.ts.map +1 -0
- package/dist/render/markdown-out.js +121 -0
- package/dist/render/markdown-out.js.map +1 -0
- package/dist/render/pdf.d.ts +23 -0
- package/dist/render/pdf.d.ts.map +1 -0
- package/dist/render/pdf.js +138 -0
- package/dist/render/pdf.js.map +1 -0
- package/dist/render/prose.d.ts +15 -0
- package/dist/render/prose.d.ts.map +1 -0
- package/dist/render/prose.js +110 -0
- package/dist/render/prose.js.map +1 -0
- package/dist/scaffold.d.ts +13 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +393 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/sdk.d.ts +56 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +238 -0
- package/dist/sdk.js.map +1 -0
- package/dist/source.d.ts +57 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +289 -0
- package/dist/source.js.map +1 -0
- package/dist/theme/book.d.ts +10 -0
- package/dist/theme/book.d.ts.map +1 -0
- package/dist/theme/book.js +198 -0
- package/dist/theme/book.js.map +1 -0
- package/dist/util.d.ts +14 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +69 -0
- package/dist/util.js.map +1 -0
- package/dist/validate.d.ts +36 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +986 -0
- package/dist/validate.js.map +1 -0
- package/dist/verify.d.ts +35 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +112 -0
- package/dist/verify.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/dist/yamlfile.d.ts +22 -0
- package/dist/yamlfile.d.ts.map +1 -0
- package/dist/yamlfile.js +129 -0
- package/dist/yamlfile.js.map +1 -0
- package/package.json +64 -4
- package/recipes/index.json +282 -0
- package/recipes/shared-1.0.0.json +456 -0
- package/schemas/artifact.v1.json +36 -0
- package/schemas/assets.v1.json +61 -0
- package/schemas/block.v1.json +27 -0
- package/schemas/blocks/brief.v1.json +20 -0
- package/schemas/blocks/callout.v1.json +25 -0
- package/schemas/blocks/code.v1.json +21 -0
- package/schemas/blocks/decision.v1.json +80 -0
- package/schemas/blocks/evidence-comparison.v1.json +33 -0
- package/schemas/blocks/example.v1.json +52 -0
- package/schemas/blocks/figure.v1.json +22 -0
- package/schemas/blocks/human-action.v1.json +42 -0
- package/schemas/blocks/job-map.v1.json +170 -0
- package/schemas/blocks/pause.v1.json +25 -0
- package/schemas/blocks/reference-profile.v1.json +41 -0
- package/schemas/blocks/review-checklist.v1.json +19 -0
- package/schemas/blocks/table.v1.json +59 -0
- package/schemas/brief.v1.json +157 -0
- package/schemas/build-request.v1.json +173 -0
- package/schemas/build-result.v1.json +171 -0
- package/schemas/checks.v1.json +149 -0
- package/schemas/create-request.v1.json +47 -0
- package/schemas/diagnostic.v1.json +50 -0
- package/schemas/draft-request.v1.json +196 -0
- package/schemas/guide.v1.json +172 -0
- package/schemas/job.v1.json +107 -0
- package/schemas/preview-request.v1.json +153 -0
- package/schemas/preview-result.v1.json +84 -0
- package/schemas/problem.v1.json +78 -0
- package/schemas/recipe-definition.v1.json +673 -0
- package/schemas/source-ref.v1.json +111 -0
- package/schemas/sources.v1.json +158 -0
- package/schemas/validate-request.v1.json +135 -0
- package/schemas/validate-result.v1.json +110 -0
- package/schemas/verification.v1.json +77 -0
- package/themes/book/1.0.0/theme.css +190 -0
- package/themes/book/1.0.0/theme.json +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
|
package/dist/npm.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface ResolvedNpmPackage {
|
|
2
|
+
name: string;
|
|
3
|
+
requested: string;
|
|
4
|
+
/** The exact registry version the request resolved to. */
|
|
5
|
+
version: string;
|
|
6
|
+
/** SRI integrity string when the registry provides it (sha512-...). */
|
|
7
|
+
integrity?: string;
|
|
8
|
+
shasum?: string;
|
|
9
|
+
tarball?: string;
|
|
10
|
+
registry: string;
|
|
11
|
+
resolvedFrom: string;
|
|
12
|
+
deprecated?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ResolveNpmOptions {
|
|
15
|
+
registry?: string;
|
|
16
|
+
fetch?: typeof fetch;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Resolve a package request (range, tag or exact version) to one exact registry version and its
|
|
21
|
+
* integrity metadata. This is an explicit network operation; builds never call it.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveNpmPackage(name: string, requested?: string, options?: ResolveNpmOptions): Promise<ResolvedNpmPackage>;
|
|
24
|
+
//# sourceMappingURL=npm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../src/npm.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsCxI"}
|
package/dist/npm.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import semver from 'semver';
|
|
2
|
+
import { MadeEasyError } from './contracts/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a package request (range, tag or exact version) to one exact registry version and its
|
|
5
|
+
* integrity metadata. This is an explicit network operation; builds never call it.
|
|
6
|
+
*/
|
|
7
|
+
export async function resolveNpmPackage(name, requested = 'latest', options = {}) {
|
|
8
|
+
const registry = (options.registry ?? 'https://registry.npmjs.org').replace(/\/+$/, '');
|
|
9
|
+
if (!/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/.test(name)) {
|
|
10
|
+
throw new MadeEasyError('NPM_RESOLVE_FAILED', `"${name}" is not a valid npm package name.`);
|
|
11
|
+
}
|
|
12
|
+
const url = `${registry}/${name.replace('/', '%2f')}`;
|
|
13
|
+
const doFetch = options.fetch ?? fetch;
|
|
14
|
+
let res;
|
|
15
|
+
try {
|
|
16
|
+
res = await doFetch(url, { headers: { accept: 'application/vnd.npm.install-v1+json' }, signal: options.signal });
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
throw new MadeEasyError('NPM_RESOLVE_FAILED', `Could not reach ${registry}: ${e.message}`);
|
|
20
|
+
}
|
|
21
|
+
if (res.status === 404)
|
|
22
|
+
throw new MadeEasyError('NPM_RESOLVE_FAILED', `Package ${name} was not found at ${registry}.`);
|
|
23
|
+
if (!res.ok)
|
|
24
|
+
throw new MadeEasyError('NPM_RESOLVE_FAILED', `The registry answered ${res.status} for ${name}.`);
|
|
25
|
+
const doc = (await res.json());
|
|
26
|
+
const versions = doc.versions ?? {};
|
|
27
|
+
const tag = doc['dist-tags']?.[requested];
|
|
28
|
+
let version = tag;
|
|
29
|
+
if (!version) {
|
|
30
|
+
if (versions[requested])
|
|
31
|
+
version = requested;
|
|
32
|
+
else
|
|
33
|
+
version = semver.maxSatisfying(Object.keys(versions), requested, { includePrerelease: false }) ?? undefined;
|
|
34
|
+
}
|
|
35
|
+
if (!version || !versions[version]) {
|
|
36
|
+
throw new MadeEasyError('NPM_RESOLVE_FAILED', `No version of ${name} satisfies "${requested}".`);
|
|
37
|
+
}
|
|
38
|
+
const v = versions[version];
|
|
39
|
+
return {
|
|
40
|
+
name,
|
|
41
|
+
requested,
|
|
42
|
+
version,
|
|
43
|
+
integrity: v.dist?.integrity,
|
|
44
|
+
shasum: v.dist?.shasum,
|
|
45
|
+
tarball: v.dist?.tarball,
|
|
46
|
+
registry,
|
|
47
|
+
resolvedFrom: url,
|
|
48
|
+
deprecated: typeof v.deprecated === 'string' ? v.deprecated : undefined,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=npm.js.map
|
package/dist/npm.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm.js","sourceRoot":"","sources":["../src/npm.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2BrD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAS,GAAG,QAAQ,EAAE,UAA6B,EAAE;IACzG,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,4BAA4B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxF,IAAI,CAAC,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,IAAI,IAAI,oCAAoC,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACvC,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,qCAAqC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,mBAAmB,QAAQ,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,WAAW,IAAI,qBAAqB,QAAQ,GAAG,CAAC,CAAC;IACvH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,yBAAyB,GAAG,CAAC,MAAM,QAAQ,IAAI,GAAG,CAAC,CAAC;IAC/G,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAc,CAAC;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAuB,GAAG,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,GAAG,SAAS,CAAC;;YACxC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,CAAC;IACnH,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,iBAAiB,IAAI,eAAe,SAAS,IAAI,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAE,CAAC;IAC7B,OAAO;QACL,IAAI;QACJ,SAAS;QACT,OAAO;QACP,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS;QAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM;QACtB,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO;QACxB,QAAQ;QACR,YAAY,EAAE,GAAG;QACjB,UAAU,EAAE,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { JobMapProps } from '../contracts/index.js';
|
|
2
|
+
import type { BlockNode } from '../markdown-doc.js';
|
|
3
|
+
import type { ModelEntry } from '../model.js';
|
|
4
|
+
import { type RenderContext } from './context.js';
|
|
5
|
+
export declare const BLOCK_LABELS: {
|
|
6
|
+
OUTCOME: Record<string, string>;
|
|
7
|
+
VERDICT: Record<string, string>;
|
|
8
|
+
};
|
|
9
|
+
export declare function jobMapText(p: JobMapProps): string;
|
|
10
|
+
export declare function exampleStatus(ctx: RenderContext, block: BlockNode): {
|
|
11
|
+
status: 'verified' | 'stale' | 'failed' | 'unverified';
|
|
12
|
+
ref?: string;
|
|
13
|
+
kind?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function renderBlockHtml(block: BlockNode, entry: ModelEntry, ctx: RenderContext): string;
|
|
16
|
+
export declare function renderBlockMarkdown(block: BlockNode, ctx: RenderContext): string;
|
|
17
|
+
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/render/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAQV,WAAW,EAOZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAwBtE,eAAO,MAAM,YAAY;;;CAGxB,CAAC;AA6BF,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAajD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,GAAG;IAAE,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAK3J;AAwBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CA6M/F;AAWD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAoHhF"}
|
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
import { parseRef } from '../analysis.js';
|
|
2
|
+
import { exampleDigest } from '../validate.js';
|
|
3
|
+
import { escapeHtml as esc } from '../util.js';
|
|
4
|
+
import { buildBriefDocument } from './brief.js';
|
|
5
|
+
import { hrefTo, resolveRef } from './context.js';
|
|
6
|
+
import { renderInline } from './prose.js';
|
|
7
|
+
const OUTCOME = {
|
|
8
|
+
pass: '\u2714 Pass',
|
|
9
|
+
fail: '\u2716 Fail',
|
|
10
|
+
missing: '\u25CC Missing',
|
|
11
|
+
contradictory: '\u26A0 Contradictory',
|
|
12
|
+
};
|
|
13
|
+
const VERDICT = {
|
|
14
|
+
usable: '\u2714 Usable',
|
|
15
|
+
partial: '\u25D0 Partial',
|
|
16
|
+
invalid: '\u2716 Invalid',
|
|
17
|
+
};
|
|
18
|
+
const ACTOR = { human: 'Human', operator: 'Operator', system: 'System' };
|
|
19
|
+
const KIND = { decision: 'Human decision', action: 'Human action', delegated: 'Delegated work' };
|
|
20
|
+
const CALLOUT = {
|
|
21
|
+
info: 'Note',
|
|
22
|
+
success: 'Success',
|
|
23
|
+
warning: 'Warning',
|
|
24
|
+
risk: 'Risk',
|
|
25
|
+
exception: 'Exception',
|
|
26
|
+
};
|
|
27
|
+
export const BLOCK_LABELS = {
|
|
28
|
+
OUTCOME,
|
|
29
|
+
VERDICT,
|
|
30
|
+
};
|
|
31
|
+
const list = (items, ctx, cls = '') => items?.length
|
|
32
|
+
? `<ul${cls ? ` class="${cls}"` : ''}>${items.map((x) => `<li>${renderInline(x, ctx)}</li>`).join('')}</ul>`
|
|
33
|
+
: '';
|
|
34
|
+
function refLinks(ctx, refs) {
|
|
35
|
+
if (!refs?.length)
|
|
36
|
+
return '';
|
|
37
|
+
const items = refs.map((r) => {
|
|
38
|
+
const p = parseRef(r);
|
|
39
|
+
const resolved = p ? resolveRef(ctx, p.kind, p.id, p.anchor) : undefined;
|
|
40
|
+
if (!resolved)
|
|
41
|
+
return `<li><span class="ref ref-unresolved">${esc(r)}</span></li>`;
|
|
42
|
+
const title = resolved.title ? ` title="${esc(resolved.title)}"` : '';
|
|
43
|
+
return resolved.href
|
|
44
|
+
? `<li><a class="ref ref-${p.kind}" href="${esc(resolved.href)}"${title}>${esc(resolved.label)}</a></li>`
|
|
45
|
+
: `<li><span class="ref ref-${p.kind}"${title}>${esc(resolved.label)}</span></li>`;
|
|
46
|
+
});
|
|
47
|
+
return `<ul class="evidence-links" aria-label="Evidence">${items.join('')}</ul>`;
|
|
48
|
+
}
|
|
49
|
+
function fact(label, body) {
|
|
50
|
+
return body ? `<div class="fact"><dt>${esc(label)}</dt><dd>${body}</dd></div>` : '';
|
|
51
|
+
}
|
|
52
|
+
/* ---------------------------------- HTML ---------------------------------- */
|
|
53
|
+
export function jobMapText(p) {
|
|
54
|
+
const names = (xs) => (xs ?? []).map((x) => x.label).join('; ');
|
|
55
|
+
const parts = [];
|
|
56
|
+
if (p.inputs?.length)
|
|
57
|
+
parts.push(`The job starts from ${names(p.inputs)}.`);
|
|
58
|
+
(p.stages ?? []).forEach((s, i) => {
|
|
59
|
+
parts.push(`Step ${i + 1} (${ACTOR[s.actor] ?? s.actor}): ${s.label}${s.description ? ` \u2014 ${s.description}` : ''}.`);
|
|
60
|
+
});
|
|
61
|
+
if (p.outputs?.length)
|
|
62
|
+
parts.push(`It produces ${names(p.outputs)}.`);
|
|
63
|
+
if (p.sideEffects?.length)
|
|
64
|
+
parts.push(`Side effects: ${names(p.sideEffects)}.`);
|
|
65
|
+
if (p.failurePoints?.length) {
|
|
66
|
+
parts.push(`It can fail at: ${p.failurePoints.map((f) => f.description).join('; ')}.`);
|
|
67
|
+
}
|
|
68
|
+
return parts.join(' ');
|
|
69
|
+
}
|
|
70
|
+
export function exampleStatus(ctx, block) {
|
|
71
|
+
const record = ctx.model.verification?.records?.find((r) => r.example === block.id);
|
|
72
|
+
if (!record)
|
|
73
|
+
return { status: 'unverified' };
|
|
74
|
+
if (record.digest !== exampleDigest(ctx.model, block.props))
|
|
75
|
+
return { status: 'stale' };
|
|
76
|
+
return { status: record.result === 'pass' ? 'verified' : 'failed', ref: record.verifier.ref, kind: record.verifier.kind };
|
|
77
|
+
}
|
|
78
|
+
function resultCard(ctx, r, role, decisive) {
|
|
79
|
+
const rows = (r.checks ?? [])
|
|
80
|
+
.map((c) => {
|
|
81
|
+
const check = ctx.checks.get(c.check);
|
|
82
|
+
const ev = refLinks(ctx, c.evidence);
|
|
83
|
+
return `<tr class="outcome-${c.outcome}${decisive.has(c.check) ? ' decisive' : ''}">
|
|
84
|
+
<th scope="row" data-label="Check"><a href="#check-${esc(c.check)}">${esc(c.check)}</a>${decisive.has(c.check) ? ' <span class="tag">decisive</span>' : ''}<span class="sub">${renderInline(check?.observable, ctx)}</span></th>
|
|
85
|
+
<td data-label="Outcome"><span class="outcome outcome-${c.outcome}">${OUTCOME[c.outcome]}</span></td>
|
|
86
|
+
<td data-label="Observation">${renderInline(c.observation, ctx)}${ev}</td></tr>`;
|
|
87
|
+
})
|
|
88
|
+
.join('');
|
|
89
|
+
const block = (title, items) => items?.length ? `<h5>${title}</h5>${list(items, ctx)}` : '';
|
|
90
|
+
return `<article class="result result-${role} verdict-${r.verdict}" id="result-${esc(r.id)}" aria-labelledby="result-${esc(r.id)}-h">
|
|
91
|
+
<header><h4 id="result-${esc(r.id)}-h">${esc(r.label ?? r.id)}</h4><p class="verdict verdict-${r.verdict}"><span class="sr-only">Verdict: </span>${VERDICT[r.verdict]}</p></header>
|
|
92
|
+
<p>${renderInline(r.summary, ctx)}</p>
|
|
93
|
+
<table class="check-results"><thead><tr><th scope="col">Check</th><th scope="col">Outcome</th><th scope="col">Observation</th></tr></thead><tbody>${rows}</tbody></table>
|
|
94
|
+
${block('Completed actions', r.completedActions)}${block('Observations', r.observations)}${block('Gaps', r.gaps)}${block('Recommended next steps', r.nextSteps)}
|
|
95
|
+
${r.recovery ? `<p class="recovery"><strong>Recovery:</strong> ${renderInline(r.recovery, ctx)}</p>` : ''}
|
|
96
|
+
</article>`;
|
|
97
|
+
}
|
|
98
|
+
export function renderBlockHtml(block, entry, ctx) {
|
|
99
|
+
const p = block.props;
|
|
100
|
+
const id = `b-${esc(block.id)}`;
|
|
101
|
+
const wrap = (cls, kicker, inner, extra = '') => `<section class="block ${cls}" id="${id}" aria-label="${esc(kicker)}"${extra}><p class="block-kicker">${esc(kicker)}</p>${inner}</section>`;
|
|
102
|
+
void entry;
|
|
103
|
+
switch (block.type) {
|
|
104
|
+
case 'decision': {
|
|
105
|
+
const d = p;
|
|
106
|
+
const options = (d.options ?? [])
|
|
107
|
+
.map((o) => `<li id="option-${esc(o.id)}"><div class="option-head"><strong>${renderInline(o.label, ctx)}</strong>${o.kind ? ` <span class="tag kind-${o.kind}">${esc(o.kind)}</span>` : ''}</div>
|
|
108
|
+
${o.when ? `<p><em>When:</em> ${renderInline(o.when, ctx)}</p>` : ''}${o.decidedBy ? `<p><em>Decided by:</em> ${renderInline(o.decidedBy, ctx)}</p>` : ''}
|
|
109
|
+
${o.consequence ? `<p><em>Consequence:</em> ${renderInline(o.consequence, ctx)}</p>` : ''}${o.rationale ? `<p><em>Why:</em> ${renderInline(o.rationale, ctx)}</p>` : ''}
|
|
110
|
+
${o.evidence?.length ? `<div class="evidence"><span>Evidence:</span> ${refLinks(ctx, o.evidence)}</div>` : ''}</li>`)
|
|
111
|
+
.join('');
|
|
112
|
+
return wrap('decision', 'Decision', `<dl class="facts">${fact('The job', renderInline(d.job, ctx))}${fact('Question', renderInline(d.question, ctx))}${fact('Decision owner', renderInline(d.owner, ctx))}${fact('Depends on', list(d.dependsOn, ctx))}</dl>
|
|
113
|
+
${options ? `<h4>Options</h4><ol class="options">${options}</ol>` : ''}
|
|
114
|
+
${d.evidence?.length ? `<div class="evidence"><span>Evidence:</span> ${refLinks(ctx, d.evidence)}</div>` : ''}`);
|
|
115
|
+
}
|
|
116
|
+
case 'job-map': {
|
|
117
|
+
const m = p;
|
|
118
|
+
const col = (title, items, cls) => items?.length
|
|
119
|
+
? `<div class="jm-col ${cls}"><h4>${title}</h4><ul>${items.map((x) => `<li id="${esc(block.id)}-${esc(x.id)}"><strong>${renderInline(x.label, ctx)}</strong>${x.description ? `<span class="sub">${renderInline(x.description, ctx)}</span>` : ''}</li>`).join('')}</ul></div>`
|
|
120
|
+
: '';
|
|
121
|
+
const stages = m.stages?.length
|
|
122
|
+
? `<div class="jm-col stages"><h4>Operator stages</h4><ol>${m.stages
|
|
123
|
+
.map((s) => `<li id="${esc(block.id)}-${esc(s.id)}"><span class="actor actor-${s.actor}">${ACTOR[s.actor]}</span> <strong>${renderInline(s.label, ctx)}</strong>${s.description ? `<span class="sub">${renderInline(s.description, ctx)}</span>` : ''}</li>`)
|
|
124
|
+
.join('')}</ol></div>`
|
|
125
|
+
: '';
|
|
126
|
+
const failures = m.failurePoints?.length
|
|
127
|
+
? `<h4>Failure points</h4><div class="table-wrap" role="region" tabindex="0" aria-label="Failure points"><table class="failure-points"><thead><tr><th scope="col">Where</th><th scope="col">What fails</th><th scope="col">How to read it</th><th scope="col">Recovery</th></tr></thead><tbody>${m.failurePoints
|
|
128
|
+
.map((f) => `<tr id="${esc(block.id)}-${esc(f.id)}"><th scope="row" data-label="Where">${esc(f.stage ?? f.id)}</th><td data-label="What fails">${renderInline(f.description, ctx)}</td><td data-label="How to read it">${renderInline(f.interpretation, ctx)}</td><td data-label="Recovery">${renderInline(f.recovery, ctx)}</td></tr>`)
|
|
129
|
+
.join('')}</tbody></table></div>`
|
|
130
|
+
: '';
|
|
131
|
+
const mechanisms = m.mechanisms?.length
|
|
132
|
+
? `<h4>Mechanisms that change a decision</h4><dl class="mechanisms">${m.mechanisms
|
|
133
|
+
.map((x) => `<div id="${esc(block.id)}-${esc(x.id)}"><dt>${renderInline(x.name, ctx)}</dt><dd>${renderInline(x.explanation, ctx)}${x.decisionImpact ? ` <em>Decision impact:</em> ${renderInline(x.decisionImpact, ctx)}` : ''}</dd></div>`)
|
|
134
|
+
.join('')}</dl>`
|
|
135
|
+
: '';
|
|
136
|
+
const text = m.textEquivalent ?? jobMapText(m);
|
|
137
|
+
return wrap('job-map', 'Job map', `<div class="jm-grid">${col('Inputs', m.inputs, 'inputs')}${stages}${col('Outputs', m.outputs, 'outputs')}</div>
|
|
138
|
+
${m.sideEffects?.length ? `<h4>Side effects</h4><ul class="side-effects">${m.sideEffects.map((s) => `<li>${renderInline(s.label, ctx)}${s.reversible === undefined ? '' : ` <span class="tag">${s.reversible ? 'reversible' : 'not reversible'}</span>`}</li>`).join('')}</ul>` : ''}
|
|
139
|
+
${failures}${mechanisms}
|
|
140
|
+
<p class="text-equivalent"><strong>Text equivalent.</strong> ${renderInline(text, ctx)}</p>`);
|
|
141
|
+
}
|
|
142
|
+
case 'human-action': {
|
|
143
|
+
const a = p;
|
|
144
|
+
const pause = a.pause ? ctx.pauses.get(a.pause) : undefined;
|
|
145
|
+
return wrap(`human-action kind-${a.kind}`, KIND[a.kind] ?? 'Human action', `<dl class="facts">${fact('Who acts', renderInline(a.actor, ctx))}${fact('What they do', renderInline(a.action, ctx))}</dl>
|
|
146
|
+
${a.steps?.length ? `<ol class="steps">${a.steps.map((s) => `<li>${renderInline(s, ctx)}</li>`).join('')}</ol>` : ''}
|
|
147
|
+
<dl class="facts">${fact('May continue meanwhile', renderInline(a.mayContinue ?? pause?.mayContinue, ctx))}${fact('How to resume', renderInline(a.resume ?? pause?.resumeWhen, ctx))}</dl>
|
|
148
|
+
${a.pause ? `<p class="evidence">Pause rule: ${refLinks(ctx, [`pause:${a.pause}`])}</p>` : ''}`);
|
|
149
|
+
}
|
|
150
|
+
case 'pause': {
|
|
151
|
+
const q = p;
|
|
152
|
+
const r = ctx.pauses.get(q.rule);
|
|
153
|
+
return `<section class="block pause" id="pause-${esc(q.rule)}" aria-label="Pause rule ${esc(q.rule)}"><p class="block-kicker">Pause rule \u00B7 ${esc(q.rule)}</p>
|
|
154
|
+
<dl class="facts">${fact('Pause when', renderInline(r?.trigger, ctx))}${fact('Decision owner', renderInline(r?.owner, ctx))}${fact('Work that may continue', renderInline(r?.mayContinue, ctx))}${fact('Resume when', renderInline(r?.resumeWhen, ctx))}</dl>
|
|
155
|
+
${q.note ? `<p>${renderInline(q.note, ctx)}</p>` : ''}${q.exceptions?.length ? `<h4>Exceptions</h4>${list(q.exceptions, ctx)}` : ''}</section>`;
|
|
156
|
+
}
|
|
157
|
+
case 'brief': {
|
|
158
|
+
const b = p;
|
|
159
|
+
const doc = buildBriefDocument(ctx.model);
|
|
160
|
+
const view = b.view ?? 'both';
|
|
161
|
+
const inputs = (values, title, cls) => `<div class="brief-pane ${cls}">
|
|
162
|
+
<h4>${title}</h4>
|
|
163
|
+
<dl class="brief-inputs">${values.map((v) => `<div id="${cls === 'worked' ? 'input-' + esc(v.id) : 'template-input-' + esc(v.id)}" class="fact"><dt>${esc(v.label)} <code>${esc(v.id)}</code></dt><dd>${v.value ? renderInline(v.value, ctx) : '<span class="empty">(no value)</span>'}</dd></div>`).join('')}</dl></div>`;
|
|
164
|
+
const entryLinks = doc.operatorReference.entries
|
|
165
|
+
.map((e) => {
|
|
166
|
+
const href = hrefTo(ctx, 'operator', `e-${e.id}`);
|
|
167
|
+
return href ? `<li><a href="${esc(href)}">${esc(e.title)}</a> <code>${esc(e.digest.slice(7, 19))}</code></li>` : `<li>${esc(e.title)} <code>${esc(e.digest.slice(7, 19))}</code> <span class="sub">(${esc(e.path)})</span></li>`;
|
|
168
|
+
})
|
|
169
|
+
.join('');
|
|
170
|
+
return wrap('brief', b.title ?? 'Operator brief', `<dl class="facts">${fact('Goal', renderInline(doc.outcome, ctx))}</dl>
|
|
171
|
+
<div class="brief-panes">${view !== 'template' ? inputs(doc.worked.inputs, 'Worked brief \u2014 inputs', 'worked') : ''}${view !== 'worked' ? inputs(doc.template.inputs, 'Blank template \u2014 inputs', 'template') : ''}</div>
|
|
172
|
+
<div class="brief-cols">
|
|
173
|
+
<div><h4>Authority: may read</h4>${list(doc.authority.reads, ctx) || '<p class="empty">Nothing listed.</p>'}</div>
|
|
174
|
+
<div><h4>Authority: may change</h4>${list(doc.authority.changes, ctx) || '<p class="empty">Nothing listed.</p>'}</div>
|
|
175
|
+
<div><h4>Limits</h4>${list(doc.limits, ctx) || '<p class="empty">None.</p>'}</div></div>
|
|
176
|
+
<h4>Pause rules</h4><ul class="pause-summary">${doc.pauseRules.map((r) => `<li><a href="#pause-${esc(r.id)}"><code>${esc(r.id)}</code></a> \u2014 ${renderInline(r.trigger, ctx)} <span class="sub">Owner: ${renderInline(r.owner, ctx)}</span></li>`).join('')}</ul>
|
|
177
|
+
<h4>Acceptance checks</h4><ul class="check-summary">${doc.acceptanceChecks.map((c) => `<li><a href="#check-${esc(c.id)}"><code>${esc(c.id)}</code></a> \u2014 ${renderInline(c.observable, ctx)}</li>`).join('')}</ul>
|
|
178
|
+
<h4>Return</h4><ul class="report-back">${doc.reportBack.map((r) => `<li id="report-${esc(r.id)}"><strong>${renderInline(r.label, ctx)}</strong> <code>${esc(r.id)}</code>${r.description ? ` \u2014 ${renderInline(r.description, ctx)}` : ''}</li>`).join('')}</ul>
|
|
179
|
+
<div class="reference-pin"><h4>Operator reference revision</h4><p><code>${esc(doc.referenceRevision.slice(7, 19))}</code> (${esc(doc.referenceRevision)})</p><ul>${entryLinks}</ul>
|
|
180
|
+
<p class="downloads">${ctx.standalone ? 'Companion files: brief.md, brief.json, operator/reference.md.' : `Download: <a href="${ctx.page === 'human' ? '' : '../'}brief.md">brief.md</a> \u00B7 <a href="${ctx.page === 'human' ? '' : '../'}brief.json">brief.json</a>`}</p></div>`);
|
|
181
|
+
}
|
|
182
|
+
case 'review-checklist': {
|
|
183
|
+
const c = p;
|
|
184
|
+
const ids = c.checks?.length ? c.checks : (ctx.model.brief?.acceptanceChecks ?? []);
|
|
185
|
+
return wrap('review-checklist', c.title ?? 'Review checklist', `<ul class="checklist">${ids
|
|
186
|
+
.map((cid) => {
|
|
187
|
+
const k = ctx.checks.get(cid);
|
|
188
|
+
return `<li><span class="box" aria-hidden="true">\u2610</span><div><p><strong><a href="#check-${esc(cid)}">${esc(cid)}</a></strong> \u2014 ${renderInline(k?.observable, ctx)}</p>
|
|
189
|
+
<p class="sub">Pass when: ${renderInline(k?.passCondition, ctx)}</p><p class="sub">If missing: ${renderInline(k?.onMissing, ctx)} \u00B7 If contradictory: ${renderInline(k?.onContradictory, ctx)}</p></div></li>`;
|
|
190
|
+
})
|
|
191
|
+
.join('')}</ul>`);
|
|
192
|
+
}
|
|
193
|
+
case 'evidence-comparison': {
|
|
194
|
+
const e = p;
|
|
195
|
+
const decisive = new Set(e.decisiveChecks ?? []);
|
|
196
|
+
const usable = e.usable ? ctx.results.get(e.usable) : undefined;
|
|
197
|
+
const flawed = e.flawed ? ctx.results.get(e.flawed) : undefined;
|
|
198
|
+
return wrap('evidence-comparison', 'Evidence comparison', `<div class="compare">${usable ? resultCard(ctx, usable, 'usable', decisive) : ''}${flawed ? resultCard(ctx, flawed, 'flawed', decisive) : ''}</div>
|
|
199
|
+
<dl class="facts">${fact('Decisive checks', e.decisiveChecks?.length ? `<ul>${e.decisiveChecks.map((c) => `<li><a href="#check-${esc(c)}">${esc(c)}</a> \u2014 ${renderInline(ctx.checks.get(c)?.observable, ctx)}</li>`).join('')}</ul>` : '')}
|
|
200
|
+
${fact('A result is partial when', renderInline(e.partialWhen, ctx))}${fact('A result is invalid when', renderInline(e.invalidWhen, ctx))}${fact('Recovery action', renderInline(e.recovery, ctx))}</dl>`);
|
|
201
|
+
}
|
|
202
|
+
case 'callout': {
|
|
203
|
+
const c = p;
|
|
204
|
+
const v = c.variant ?? 'info';
|
|
205
|
+
return `<aside class="block callout callout-${v}" id="${id}" role="note" aria-label="${CALLOUT[v]}"><p class="callout-title"><span class="callout-label">${CALLOUT[v]}</span>${c.title ? ` \u00B7 ${renderInline(c.title, ctx)}` : ''}</p><p>${renderInline(c.text, ctx)}</p></aside>`;
|
|
206
|
+
}
|
|
207
|
+
case 'code': {
|
|
208
|
+
const c = p;
|
|
209
|
+
const lang = (c.language ?? '').replace(/[^A-Za-z0-9_+-]/g, '');
|
|
210
|
+
return `<figure class="block code-figure" id="${id}">${c.caption ? `<figcaption>${renderInline(c.caption, ctx)}</figcaption>` : ''}<pre class="code" tabindex="0"><code${lang ? ` class="language-${lang}"` : ''}>${esc(c.code)}</code></pre></figure>`;
|
|
211
|
+
}
|
|
212
|
+
case 'table': {
|
|
213
|
+
const t = p;
|
|
214
|
+
return `<div class="block table-block" id="${id}"><div class="table-wrap" role="region" tabindex="0" aria-label="${esc(t.caption ?? 'Table')}"><table>${t.caption ? `<caption>${renderInline(t.caption, ctx)}</caption>` : ''}<thead><tr>${t.columns.map((c) => `<th scope="col"${c.align ? ` class="align-${c.align}"` : ''}>${renderInline(c.label, ctx)}</th>`).join('')}</tr></thead><tbody>${t.rows.map((r) => `<tr>${t.columns.map((c) => `<td data-label="${esc(c.label)}"${c.align ? ` class="align-${c.align}"` : ''}>${renderInline(String(r[c.key] ?? ''), ctx)}</td>`).join('')}</tr>`).join('')}</tbody></table></div></div>`;
|
|
215
|
+
}
|
|
216
|
+
case 'figure': {
|
|
217
|
+
const f = p;
|
|
218
|
+
const asset = ctx.assets.get(f.asset);
|
|
219
|
+
const src = asset ? ctx.assetSrc(asset) : undefined;
|
|
220
|
+
if (!asset || !src)
|
|
221
|
+
return `<figure class="block figure missing" id="${id}"><figcaption>${renderInline(f.caption, ctx)}</figcaption></figure>`;
|
|
222
|
+
const alt = asset.decorative ? '' : (f.alt ?? asset.alt ?? '');
|
|
223
|
+
return `<figure class="block figure" id="${id}"><img src="${esc(src)}" alt="${esc(alt)}" loading="lazy">${f.caption ? `<figcaption>${renderInline(f.caption, ctx)}</figcaption>` : ''}</figure>`;
|
|
224
|
+
}
|
|
225
|
+
case 'reference-profile': {
|
|
226
|
+
const r = p;
|
|
227
|
+
const def = ctx.model.recipe?.profileDefinition;
|
|
228
|
+
const known = [...(def?.referenceFields ?? []), ...(def?.npmFields ?? [])];
|
|
229
|
+
const keys = [...new Set([...known.map((k) => k.key), ...Object.keys(r.fields)])].filter((k) => r.fields[k] !== undefined);
|
|
230
|
+
return wrap(`reference-profile profile-${r.profile}`, `Reference profile \u00B7 ${r.profile}`, `<dl class="facts profile">${keys
|
|
231
|
+
.map((k) => {
|
|
232
|
+
const label = known.find((x) => x.key === k)?.label ?? k;
|
|
233
|
+
const v = r.fields[k];
|
|
234
|
+
return fact(label, Array.isArray(v) ? list(v, ctx) : renderInline(String(v), ctx));
|
|
235
|
+
})
|
|
236
|
+
.join('')}</dl>`);
|
|
237
|
+
}
|
|
238
|
+
case 'example': {
|
|
239
|
+
const x = p;
|
|
240
|
+
const st = exampleStatus(ctx, block);
|
|
241
|
+
const fixture = x.fixture?.replace(/\/$/, '');
|
|
242
|
+
const files = (x.files ?? [])
|
|
243
|
+
.map((f) => {
|
|
244
|
+
const path = fixture ? `${fixture}/${f}` : f;
|
|
245
|
+
const text = ctx.model.files.text(path);
|
|
246
|
+
return text === undefined
|
|
247
|
+
? ''
|
|
248
|
+
: `<figure class="code-figure"><figcaption><code>${esc(f)}</code></figcaption><pre class="code" tabindex="0"><code>${esc(text.replace(/\n$/, ''))}</code></pre></figure>`;
|
|
249
|
+
})
|
|
250
|
+
.join('');
|
|
251
|
+
const cmds = (title, items) => items?.length ? `<h4>${title}</h4><pre class="code" tabindex="0"><code>${esc(items.join('\n'))}</code></pre>` : '';
|
|
252
|
+
const badge = st.status === 'verified'
|
|
253
|
+
? `<span class="tag verified">\u2714 Verified (${esc(st.kind ?? '')}: ${esc(st.ref ?? '')})</span>`
|
|
254
|
+
: `<span class="tag unverified">\u25CC ${st.status === 'unverified' ? 'Not verified' : st.status === 'stale' ? 'Verification out of date' : 'Verification failed'}</span>`;
|
|
255
|
+
return wrap('example', `Runnable example${x.title ? ` \u00B7 ${x.title}` : ''}`, `<p>${badge}${x.runtime ? ` <span class="sub">Runtime: ${renderInline(x.runtime, ctx)}</span>` : ''}</p>
|
|
256
|
+
${x.summary ? `<p>${renderInline(x.summary, ctx)}</p>` : ''}${files ? `<h4>Fixture files</h4>${files}` : ''}${cmds('Setup', x.setup)}${cmds('Run', x.run)}
|
|
257
|
+
${x.expected ? `<h4>Expected result</h4><pre class="code expected" tabindex="0"><code>${esc(x.expected.replace(/\n$/, ''))}</code></pre>` : ''}`);
|
|
258
|
+
}
|
|
259
|
+
default:
|
|
260
|
+
return `<section class="block unknown" id="${id}"><p>Unknown block type ${esc(block.type)}.</p></section>`;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/* -------------------------------- Markdown -------------------------------- */
|
|
264
|
+
const md = (s) => (s ?? '').replace(/\r?\n/g, ' ').trim();
|
|
265
|
+
const bullets = (xs) => (xs ?? []).map((x) => `- ${md(x)}`).join('\n');
|
|
266
|
+
const fence = (text, lang = '') => {
|
|
267
|
+
const ticks = '`'.repeat(Math.max(3, ...(text.match(/`+/g) ?? []).map((m) => m.length + 1)));
|
|
268
|
+
return `${ticks}${lang}\n${text.replace(/\n$/, '')}\n${ticks}`;
|
|
269
|
+
};
|
|
270
|
+
export function renderBlockMarkdown(block, ctx) {
|
|
271
|
+
const p = block.props;
|
|
272
|
+
switch (block.type) {
|
|
273
|
+
case 'decision': {
|
|
274
|
+
const d = p;
|
|
275
|
+
return [
|
|
276
|
+
`**Decision** \u00B7 ${md(d.question)}`,
|
|
277
|
+
'',
|
|
278
|
+
d.job ? `- **Job:** ${md(d.job)}` : '',
|
|
279
|
+
d.owner ? `- **Decision owner:** ${md(d.owner)}` : '',
|
|
280
|
+
d.dependsOn?.length ? `- **Depends on:**\n${(d.dependsOn ?? []).map((x) => ` - ${md(x)}`).join('\n')}` : '',
|
|
281
|
+
d.options?.length
|
|
282
|
+
? `\n**Options**\n\n${d.options
|
|
283
|
+
.map((o, i) => `${i + 1}. **${md(o.label)}**${o.kind ? ` (${o.kind})` : ''}${o.decidedBy ? ` \u2014 decided by ${md(o.decidedBy)}` : ''}${o.consequence ? `. ${md(o.consequence)}` : ''}${o.evidence?.length ? ` _Evidence: ${o.evidence.join(', ')}_` : ''}`)
|
|
284
|
+
.join('\n')}`
|
|
285
|
+
: '',
|
|
286
|
+
]
|
|
287
|
+
.filter((l) => l !== '')
|
|
288
|
+
.join('\n');
|
|
289
|
+
}
|
|
290
|
+
case 'job-map': {
|
|
291
|
+
const m = p;
|
|
292
|
+
return [
|
|
293
|
+
'**Job map**',
|
|
294
|
+
'',
|
|
295
|
+
m.inputs?.length ? `Inputs:\n${bullets(m.inputs.map((x) => x.label))}\n` : '',
|
|
296
|
+
m.stages?.length ? `Stages:\n${m.stages.map((s, i) => `${i + 1}. [${ACTOR[s.actor]}] ${md(s.label)}${s.description ? ` \u2014 ${md(s.description)}` : ''}`).join('\n')}\n` : '',
|
|
297
|
+
m.outputs?.length ? `Outputs:\n${bullets(m.outputs.map((x) => x.label))}\n` : '',
|
|
298
|
+
m.sideEffects?.length ? `Side effects:\n${bullets(m.sideEffects.map((x) => x.label))}\n` : '',
|
|
299
|
+
m.failurePoints?.length ? `Failure points:\n${m.failurePoints.map((f) => `- ${md(f.description)}${f.interpretation ? ` _Read it as:_ ${md(f.interpretation)}` : ''}${f.recovery ? ` _Recovery:_ ${md(f.recovery)}` : ''}`).join('\n')}\n` : '',
|
|
300
|
+
`_Text equivalent:_ ${md(m.textEquivalent ?? jobMapText(m))}`,
|
|
301
|
+
]
|
|
302
|
+
.filter((l) => l !== '')
|
|
303
|
+
.join('\n');
|
|
304
|
+
}
|
|
305
|
+
case 'human-action': {
|
|
306
|
+
const a = p;
|
|
307
|
+
return `**${KIND[a.kind]}** \u2014 ${md(a.actor)}: ${md(a.action)}${a.steps?.length ? `\n\n${a.steps.map((s, i) => `${i + 1}. ${md(s)}`).join('\n')}` : ''}${a.resume ? `\n\nResume: ${md(a.resume)}` : ''}`;
|
|
308
|
+
}
|
|
309
|
+
case 'pause': {
|
|
310
|
+
const q = p;
|
|
311
|
+
const r = ctx.pauses.get(q.rule);
|
|
312
|
+
return `**Pause rule \`${q.rule}\`**\n\n- Pause when: ${md(r?.trigger)}\n- Decision owner: ${md(r?.owner)}\n- May continue: ${md(r?.mayContinue)}\n- Resume when: ${md(r?.resumeWhen)}`;
|
|
313
|
+
}
|
|
314
|
+
case 'brief':
|
|
315
|
+
return '_The operator brief is provided in brief.md and brief.json._';
|
|
316
|
+
case 'review-checklist': {
|
|
317
|
+
const c = p;
|
|
318
|
+
const ids = c.checks?.length ? c.checks : (ctx.model.brief?.acceptanceChecks ?? []);
|
|
319
|
+
return ids.map((id) => `- [ ] **${id}** \u2014 ${md(ctx.checks.get(id)?.observable)} (pass when: ${md(ctx.checks.get(id)?.passCondition)})`).join('\n');
|
|
320
|
+
}
|
|
321
|
+
case 'evidence-comparison': {
|
|
322
|
+
const e = p;
|
|
323
|
+
const rows = [e.usable, e.flawed]
|
|
324
|
+
.map((rid) => (rid ? ctx.results.get(rid) : undefined))
|
|
325
|
+
.filter((r) => Boolean(r))
|
|
326
|
+
.map((r) => `**${md(r.label ?? r.id)}** \u2014 ${VERDICT[r.verdict]}\n\n${(r.checks ?? []).map((c) => `- ${c.check}: ${OUTCOME[c.outcome]} \u2014 ${md(c.observation)}`).join('\n')}`);
|
|
327
|
+
return rows.join('\n\n');
|
|
328
|
+
}
|
|
329
|
+
case 'callout': {
|
|
330
|
+
const c = p;
|
|
331
|
+
return `> **${CALLOUT[c.variant ?? 'info']}${c.title ? `: ${md(c.title)}` : ''}** ${md(c.text)}`;
|
|
332
|
+
}
|
|
333
|
+
case 'code': {
|
|
334
|
+
const c = p;
|
|
335
|
+
return `${c.caption ? `_${md(c.caption)}_\n\n` : ''}${fence(c.code, c.language ?? '')}`;
|
|
336
|
+
}
|
|
337
|
+
case 'table': {
|
|
338
|
+
const t = p;
|
|
339
|
+
const head = `| ${t.columns.map((c) => md(c.label)).join(' | ')} |`;
|
|
340
|
+
const sep = `| ${t.columns.map((c) => (c.align === 'right' ? '---:' : c.align === 'center' ? ':---:' : '---')).join(' | ')} |`;
|
|
341
|
+
const body = t.rows.map((r) => `| ${t.columns.map((c) => md(String(r[c.key] ?? '')).replace(/\|/g, '\\|')).join(' | ')} |`);
|
|
342
|
+
return `${t.caption ? `_${md(t.caption)}_\n\n` : ''}${[head, sep, ...body].join('\n')}`;
|
|
343
|
+
}
|
|
344
|
+
case 'figure': {
|
|
345
|
+
const f = p;
|
|
346
|
+
const a = ctx.assets.get(f.asset);
|
|
347
|
+
return a ? `${f.caption ? `\n\n_${md(f.caption)}_` : ''}` : '';
|
|
348
|
+
}
|
|
349
|
+
case 'reference-profile': {
|
|
350
|
+
const r = p;
|
|
351
|
+
const def = ctx.model.recipe?.profileDefinition;
|
|
352
|
+
const known = [...(def?.referenceFields ?? []), ...(def?.npmFields ?? [])];
|
|
353
|
+
return Object.entries(r.fields)
|
|
354
|
+
.map(([k, v]) => `- **${known.find((x) => x.key === k)?.label ?? k}:** ${Array.isArray(v) ? v.map(md).join('; ') : md(String(v))}`)
|
|
355
|
+
.join('\n');
|
|
356
|
+
}
|
|
357
|
+
case 'example': {
|
|
358
|
+
const x = p;
|
|
359
|
+
const fixture = x.fixture?.replace(/\/$/, '');
|
|
360
|
+
const st = exampleStatus(ctx, block);
|
|
361
|
+
const files = (x.files ?? [])
|
|
362
|
+
.map((f) => {
|
|
363
|
+
const text = ctx.model.files.text(fixture ? `${fixture}/${f}` : f);
|
|
364
|
+
return text === undefined ? '' : `\`${f}\`\n\n${fence(text)}`;
|
|
365
|
+
})
|
|
366
|
+
.filter(Boolean)
|
|
367
|
+
.join('\n\n');
|
|
368
|
+
return [
|
|
369
|
+
`**Runnable example${x.title ? ` \u2014 ${md(x.title)}` : ''}** (${st.status}${st.ref ? `: ${st.ref}` : ''})`,
|
|
370
|
+
x.runtime ? `Runtime: ${md(x.runtime)}` : '',
|
|
371
|
+
x.summary ? md(x.summary) : '',
|
|
372
|
+
files,
|
|
373
|
+
x.setup?.length ? `Setup:\n\n${fence(x.setup.join('\n'), 'sh')}` : '',
|
|
374
|
+
x.run?.length ? `Run:\n\n${fence(x.run.join('\n'), 'sh')}` : '',
|
|
375
|
+
x.expected ? `Expected result:\n\n${fence(x.expected)}` : '',
|
|
376
|
+
]
|
|
377
|
+
.filter(Boolean)
|
|
378
|
+
.join('\n\n');
|
|
379
|
+
}
|
|
380
|
+
default:
|
|
381
|
+
return '';
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
//# sourceMappingURL=blocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/render/blocks.ts"],"names":[],"mappings":"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"}
|