@immediately-run/sdk 0.32.0 → 0.33.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.
Files changed (45) hide show
  1. package/dist/boot.d.cts +2 -2
  2. package/dist/boot.d.ts +2 -2
  3. package/dist/components/Include.d.cts +2 -3
  4. package/dist/components/Include.d.ts +2 -3
  5. package/dist/components/MainContent.d.cts +4 -4
  6. package/dist/components/MainContent.d.ts +4 -4
  7. package/dist/components/MountImage.d.cts +2 -2
  8. package/dist/components/MountImage.d.ts +2 -2
  9. package/dist/components/Routes.d.cts +2 -2
  10. package/dist/components/Routes.d.ts +2 -2
  11. package/dist/components/defaults.d.cts +2 -2
  12. package/dist/components/defaults.d.ts +2 -2
  13. package/dist/components/errors.d.cts +2 -2
  14. package/dist/components/errors.d.ts +2 -2
  15. package/dist/index.d.cts +1 -2
  16. package/dist/index.d.ts +1 -2
  17. package/dist/loading.d.cts +5 -5
  18. package/dist/loading.d.ts +5 -5
  19. package/dist/moduleCache.d.cts +1 -2
  20. package/dist/moduleCache.d.ts +1 -2
  21. package/dist/safeContent/SafeContent.cjs.map +1 -1
  22. package/dist/safeContent/SafeContent.js.map +1 -1
  23. package/dist/safeContent/index.cjs.map +1 -1
  24. package/dist/safeContent/index.d.cts +1 -1
  25. package/dist/safeContent/index.d.ts +1 -1
  26. package/dist/safeContent/index.js.map +1 -1
  27. package/dist/safeContent/mdastDeps.cjs +10697 -0
  28. package/dist/safeContent/mdastDeps.js +10680 -0
  29. package/dist/safeContent/parseSafeMdast.cjs +17 -15
  30. package/dist/safeContent/parseSafeMdast.cjs.map +1 -1
  31. package/dist/safeContent/parseSafeMdast.d.cts +16 -2
  32. package/dist/safeContent/parseSafeMdast.d.ts +16 -2
  33. package/dist/safeContent/parseSafeMdast.js +21 -15
  34. package/dist/safeContent/parseSafeMdast.js.map +1 -1
  35. package/dist/safeContent/renderMdast.cjs +5 -1
  36. package/dist/safeContent/renderMdast.cjs.map +1 -1
  37. package/dist/safeContent/renderMdast.js +5 -1
  38. package/dist/safeContent/renderMdast.js.map +1 -1
  39. package/dist/version.cjs +1 -1
  40. package/dist/version.cjs.map +1 -1
  41. package/dist/version.d.cts +1 -1
  42. package/dist/version.d.ts +1 -1
  43. package/dist/version.js +1 -1
  44. package/dist/version.js.map +1 -1
  45. package/package.json +9 -7
package/dist/boot.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { FC, ReactNode } from 'react';
3
3
  import { RoutingSpec } from './RoutingSpec.cjs';
4
4
 
@@ -39,7 +39,7 @@ type BootProps = {
39
39
  declare const TinkerableApp: ({ routingSpec, children, }: {
40
40
  routingSpec: RoutingSpec;
41
41
  children?: ReactNode;
42
- }) => react_jsx_runtime.JSX.Element;
42
+ }) => react.JSX.Element;
43
43
  /** The default route table when `boot` is called with no `routingSpec`/`children`:
44
44
  * `/` → main content, `/files/<path>` → the file router, else not-found.
45
45
  * Re-expressed with path templates (SANDBOX_ROUTING_SPEC §7); the file path
package/dist/boot.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { FC, ReactNode } from 'react';
3
3
  import { RoutingSpec } from './RoutingSpec.js';
4
4
 
@@ -39,7 +39,7 @@ type BootProps = {
39
39
  declare const TinkerableApp: ({ routingSpec, children, }: {
40
40
  routingSpec: RoutingSpec;
41
41
  children?: ReactNode;
42
- }) => react_jsx_runtime.JSX.Element;
42
+ }) => react.JSX.Element;
43
43
  /** The default route table when `boot` is called with no `routingSpec`/`children`:
44
44
  * `/` → main content, `/files/<path>` → the file router, else not-found.
45
45
  * Re-expressed with path templates (SANDBOX_ROUTING_SPEC §7); the file path
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as react from 'react';
3
2
  import { EvaluationContext } from '../sandboxTypes.cjs';
4
3
  import { defaultLoadingComponent, defaultErrorComponent } from './defaults.cjs';
@@ -16,7 +15,7 @@ declare const RenderExportedComponentContext: react.Context<RenderFileContextTyp
16
15
  declare const RenderExportedComponent: ({ evaluationContextPromise, exportedSymbol, }: {
17
16
  evaluationContextPromise: Promise<EvaluationContext>;
18
17
  exportedSymbol: string;
19
- }) => react_jsx_runtime.JSX.Element;
18
+ }) => react.JSX.Element;
20
19
  /** Render another repo file's exported component inline, resolving + evaluating it
21
20
  * through the module cache (with Suspense + an error boundary). */
22
21
  declare const Include: ({ filename, exportedSymbol, LoadingComponent, ErrorComponent, baseModule, }: {
@@ -25,6 +24,6 @@ declare const Include: ({ filename, exportedSymbol, LoadingComponent, ErrorCompo
25
24
  LoadingComponent?: typeof defaultLoadingComponent;
26
25
  ErrorComponent?: typeof defaultErrorComponent;
27
26
  baseModule?: EvaluationContext;
28
- }) => react_jsx_runtime.JSX.Element;
27
+ }) => react.JSX.Element;
29
28
 
30
29
  export { Include, RenderExportedComponent, RenderExportedComponentContext, type RenderFileContextType };
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as react from 'react';
3
2
  import { EvaluationContext } from '../sandboxTypes.js';
4
3
  import { defaultLoadingComponent, defaultErrorComponent } from './defaults.js';
@@ -16,7 +15,7 @@ declare const RenderExportedComponentContext: react.Context<RenderFileContextTyp
16
15
  declare const RenderExportedComponent: ({ evaluationContextPromise, exportedSymbol, }: {
17
16
  evaluationContextPromise: Promise<EvaluationContext>;
18
17
  exportedSymbol: string;
19
- }) => react_jsx_runtime.JSX.Element;
18
+ }) => react.JSX.Element;
20
19
  /** Render another repo file's exported component inline, resolving + evaluating it
21
20
  * through the module cache (with Suspense + an error boundary). */
22
21
  declare const Include: ({ filename, exportedSymbol, LoadingComponent, ErrorComponent, baseModule, }: {
@@ -25,6 +24,6 @@ declare const Include: ({ filename, exportedSymbol, LoadingComponent, ErrorCompo
25
24
  LoadingComponent?: typeof defaultLoadingComponent;
26
25
  ErrorComponent?: typeof defaultErrorComponent;
27
26
  baseModule?: EvaluationContext;
28
- }) => react_jsx_runtime.JSX.Element;
27
+ }) => react.JSX.Element;
29
28
 
30
29
  export { Include, RenderExportedComponent, RenderExportedComponentContext, type RenderFileContextType };
@@ -1,16 +1,16 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { defaultLoadingComponent, defaultErrorComponent } from './defaults.cjs';
3
3
  import 'react-error-boundary';
4
4
 
5
5
  declare const MainContentRedirect: ({ filename }: {
6
6
  filename: string;
7
- }) => react_jsx_runtime.JSX.Element;
7
+ }) => react.JSX.Element;
8
8
  declare const MainContentInner: ({ candidatesExistPromise, }: {
9
9
  candidatesExistPromise: Promise<[string, boolean][]>;
10
- }) => react_jsx_runtime.JSX.Element;
10
+ }) => react.JSX.Element;
11
11
  declare const MainContent: ({ LoadingComponent, ErrorComponent, }?: {
12
12
  LoadingComponent?: typeof defaultLoadingComponent;
13
13
  ErrorComponent?: typeof defaultErrorComponent;
14
- }) => react_jsx_runtime.JSX.Element;
14
+ }) => react.JSX.Element;
15
15
 
16
16
  export { MainContent, MainContentInner, MainContentRedirect };
@@ -1,16 +1,16 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { defaultLoadingComponent, defaultErrorComponent } from './defaults.js';
3
3
  import 'react-error-boundary';
4
4
 
5
5
  declare const MainContentRedirect: ({ filename }: {
6
6
  filename: string;
7
- }) => react_jsx_runtime.JSX.Element;
7
+ }) => react.JSX.Element;
8
8
  declare const MainContentInner: ({ candidatesExistPromise, }: {
9
9
  candidatesExistPromise: Promise<[string, boolean][]>;
10
- }) => react_jsx_runtime.JSX.Element;
10
+ }) => react.JSX.Element;
11
11
  declare const MainContent: ({ LoadingComponent, ErrorComponent, }?: {
12
12
  LoadingComponent?: typeof defaultLoadingComponent;
13
13
  ErrorComponent?: typeof defaultErrorComponent;
14
- }) => react_jsx_runtime.JSX.Element;
14
+ }) => react.JSX.Element;
15
15
 
16
16
  export { MainContent, MainContentInner, MainContentRedirect };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { ImgHTMLAttributes, ReactNode } from 'react';
3
3
  import { SandboxMount } from '../mounts.cjs';
4
4
  import '../tasks.cjs';
@@ -37,6 +37,6 @@ interface MountImageProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, 'src
37
37
  * />
38
38
  * ```
39
39
  */
40
- declare function MountImage({ mount, relPath, type, placeholder, fallback, alt, ...imgProps }: MountImageProps): react_jsx_runtime.JSX.Element;
40
+ declare function MountImage({ mount, relPath, type, placeholder, fallback, alt, ...imgProps }: MountImageProps): react.JSX.Element;
41
41
 
42
42
  export { MountImage, type MountImageProps };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { ImgHTMLAttributes, ReactNode } from 'react';
3
3
  import { SandboxMount } from '../mounts.js';
4
4
  import '../tasks.js';
@@ -37,6 +37,6 @@ interface MountImageProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, 'src
37
37
  * />
38
38
  * ```
39
39
  */
40
- declare function MountImage({ mount, relPath, type, placeholder, fallback, alt, ...imgProps }: MountImageProps): react_jsx_runtime.JSX.Element;
40
+ declare function MountImage({ mount, relPath, type, placeholder, fallback, alt, ...imgProps }: MountImageProps): react.JSX.Element;
41
41
 
42
42
  export { MountImage, type MountImageProps };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import { RouteComponent } from '../RoutingSpec.cjs';
4
4
 
@@ -29,6 +29,6 @@ declare const Route: (_props: RouteProps) => null;
29
29
  declare const Routes: ({ children, fallback, }: {
30
30
  children?: ReactNode;
31
31
  fallback?: ReactNode;
32
- }) => react_jsx_runtime.JSX.Element;
32
+ }) => react.JSX.Element;
33
33
 
34
34
  export { Route, type RouteProps, Routes };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import { RouteComponent } from '../RoutingSpec.js';
4
4
 
@@ -29,6 +29,6 @@ declare const Route: (_props: RouteProps) => null;
29
29
  declare const Routes: ({ children, fallback, }: {
30
30
  children?: ReactNode;
31
31
  fallback?: ReactNode;
32
- }) => react_jsx_runtime.JSX.Element;
32
+ }) => react.JSX.Element;
33
33
 
34
34
  export { Route, type RouteProps, Routes };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { ErrorBoundaryPropsWithRender } from 'react-error-boundary';
3
3
 
4
4
  /**
@@ -13,7 +13,7 @@ import { ErrorBoundaryPropsWithRender } from 'react-error-boundary';
13
13
  * subtle centred spinner that inherits the app's own text colour. The host themes
14
14
  * the iframe canvas behind it (sandbox `themeCanvas.ts`), so there is no white.
15
15
  */
16
- declare const defaultLoadingComponent: () => react_jsx_runtime.JSX.Element;
16
+ declare const defaultLoadingComponent: () => react.JSX.Element;
17
17
  declare const defaultErrorComponent: ErrorBoundaryPropsWithRender["fallbackRender"];
18
18
 
19
19
  export { defaultErrorComponent, defaultLoadingComponent };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { ErrorBoundaryPropsWithRender } from 'react-error-boundary';
3
3
 
4
4
  /**
@@ -13,7 +13,7 @@ import { ErrorBoundaryPropsWithRender } from 'react-error-boundary';
13
13
  * subtle centred spinner that inherits the app's own text colour. The host themes
14
14
  * the iframe canvas behind it (sandbox `themeCanvas.ts`), so there is no white.
15
15
  */
16
- declare const defaultLoadingComponent: () => react_jsx_runtime.JSX.Element;
16
+ declare const defaultLoadingComponent: () => react.JSX.Element;
17
17
  declare const defaultErrorComponent: ErrorBoundaryPropsWithRender["fallbackRender"];
18
18
 
19
19
  export { defaultErrorComponent, defaultLoadingComponent };
@@ -1,5 +1,5 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
 
3
- declare const ErrorNotFound: () => react_jsx_runtime.JSX.Element;
3
+ declare const ErrorNotFound: () => react.JSX.Element;
4
4
 
5
5
  export { ErrorNotFound };
@@ -1,5 +1,5 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
 
3
- declare const ErrorNotFound: () => react_jsx_runtime.JSX.Element;
3
+ declare const ErrorNotFound: () => react.JSX.Element;
4
4
 
5
5
  export { ErrorNotFound };
package/dist/index.d.cts CHANGED
@@ -34,7 +34,7 @@ export { StreamError, StreamFrame, StreamTransport, consumeStream, protocolStrea
34
34
  export { EvaluationContext, FileQueryResult, FilesMetadata, Metadata, MetadataQueryEntry, MetadataQueryFunction, MetadataQueryResult, ModuleExports } from './sandboxTypes.cjs';
35
35
  export { SafeContent, SafeContentProps } from './safeContent/SafeContent.cjs';
36
36
  export { RenderMdastOptions, SafeContentComponents, renderMdast } from './safeContent/renderMdast.cjs';
37
- export { SafeMdastNode, SafeMdxAttribute, parseSafeMdast } from './safeContent/parseSafeMdast.cjs';
37
+ export { ParseSafeMdastOptions, SafeMdastNode, SafeMdxAttribute, parseSafeMdast } from './safeContent/parseSafeMdast.cjs';
38
38
  export { sanitizeUrl } from './safeContent/sanitizeUrl.cjs';
39
39
  export { WikiLinkToken, WikiPart, parseWikiInner, splitWikiLinks } from './safeContent/wikilink.cjs';
40
40
  export { Admonition, AdmonitionType } from './components/Admonition.cjs';
@@ -46,6 +46,5 @@ export { WikiLink } from './components/WikiLink.cjs';
46
46
  import 'react';
47
47
  import './TinkerableContext.cjs';
48
48
  import './RoutingSpec.cjs';
49
- import 'react/jsx-runtime';
50
49
  import './components/defaults.cjs';
51
50
  import 'react-error-boundary';
package/dist/index.d.ts CHANGED
@@ -34,7 +34,7 @@ export { StreamError, StreamFrame, StreamTransport, consumeStream, protocolStrea
34
34
  export { EvaluationContext, FileQueryResult, FilesMetadata, Metadata, MetadataQueryEntry, MetadataQueryFunction, MetadataQueryResult, ModuleExports } from './sandboxTypes.js';
35
35
  export { SafeContent, SafeContentProps } from './safeContent/SafeContent.js';
36
36
  export { RenderMdastOptions, SafeContentComponents, renderMdast } from './safeContent/renderMdast.js';
37
- export { SafeMdastNode, SafeMdxAttribute, parseSafeMdast } from './safeContent/parseSafeMdast.js';
37
+ export { ParseSafeMdastOptions, SafeMdastNode, SafeMdxAttribute, parseSafeMdast } from './safeContent/parseSafeMdast.js';
38
38
  export { sanitizeUrl } from './safeContent/sanitizeUrl.js';
39
39
  export { WikiLinkToken, WikiPart, parseWikiInner, splitWikiLinks } from './safeContent/wikilink.js';
40
40
  export { Admonition, AdmonitionType } from './components/Admonition.js';
@@ -46,6 +46,5 @@ export { WikiLink } from './components/WikiLink.js';
46
46
  import 'react';
47
47
  import './TinkerableContext.js';
48
48
  import './RoutingSpec.js';
49
- import 'react/jsx-runtime';
50
49
  import './components/defaults.js';
51
50
  import 'react-error-boundary';
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { ReactNode, CSSProperties } from 'react';
3
3
 
4
4
  /** Loading timing constants, matching the host (LOADING_UX_SPEC §3, the 2026-06-22
@@ -18,14 +18,14 @@ declare function SkeletonRow({ width, height, style, }: {
18
18
  width?: number | string;
19
19
  height?: number | string;
20
20
  style?: CSSProperties;
21
- }): react_jsx_runtime.JSX.Element;
21
+ }): react.JSX.Element;
22
22
  /** A shaped, in-app skeleton matching the host archetypes — for an app's own lazy
23
23
  * region (e.g. `<Suspense fallback={<Skeleton archetype="panel.list" />}>`).
24
24
  * Decorative (`aria-hidden`); pair it with `aria-busy` on the region it stands in. */
25
25
  declare function Skeleton({ archetype, style, }: {
26
26
  archetype?: SkeletonArchetype;
27
27
  style?: CSSProperties;
28
- }): react_jsx_runtime.JSX.Element;
28
+ }): react.JSX.Element;
29
29
  /** An indeterminate spinner for waits where a shaped skeleton doesn't fit (a pending
30
30
  * button, a small inline fetch). Wired to the host's ~150 ms-before-spin rule: it
31
31
  * renders nothing until the threshold, so a fast wait shows no flash. Reduced motion
@@ -34,7 +34,7 @@ declare function Spinner({ size, thresholdMs, label, }: {
34
34
  size?: number;
35
35
  thresholdMs?: number;
36
36
  label?: string;
37
- }): react_jsx_runtime.JSX.Element | null;
37
+ }): react.JSX.Element | null;
38
38
  /** Wrap an in-app region whose content is still loading: shows a centered spinner
39
39
  * (past the 150 ms floor) with `aria-busy`, then reveals `children`. For a shaped
40
40
  * wait, pass a `<Skeleton>` as `fallback` instead. App a11y only — not host chrome. */
@@ -43,6 +43,6 @@ declare function LoadingRegion({ loading, fallback, label, children, }: {
43
43
  fallback?: ReactNode;
44
44
  label?: string;
45
45
  children?: ReactNode;
46
- }): react_jsx_runtime.JSX.Element;
46
+ }): react.JSX.Element;
47
47
 
48
48
  export { LOADING_TIMINGS, LoadingRegion, Skeleton, type SkeletonArchetype, SkeletonRow, Spinner };
package/dist/loading.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
1
+ import * as react from 'react';
2
2
  import { ReactNode, CSSProperties } from 'react';
3
3
 
4
4
  /** Loading timing constants, matching the host (LOADING_UX_SPEC §3, the 2026-06-22
@@ -18,14 +18,14 @@ declare function SkeletonRow({ width, height, style, }: {
18
18
  width?: number | string;
19
19
  height?: number | string;
20
20
  style?: CSSProperties;
21
- }): react_jsx_runtime.JSX.Element;
21
+ }): react.JSX.Element;
22
22
  /** A shaped, in-app skeleton matching the host archetypes — for an app's own lazy
23
23
  * region (e.g. `<Suspense fallback={<Skeleton archetype="panel.list" />}>`).
24
24
  * Decorative (`aria-hidden`); pair it with `aria-busy` on the region it stands in. */
25
25
  declare function Skeleton({ archetype, style, }: {
26
26
  archetype?: SkeletonArchetype;
27
27
  style?: CSSProperties;
28
- }): react_jsx_runtime.JSX.Element;
28
+ }): react.JSX.Element;
29
29
  /** An indeterminate spinner for waits where a shaped skeleton doesn't fit (a pending
30
30
  * button, a small inline fetch). Wired to the host's ~150 ms-before-spin rule: it
31
31
  * renders nothing until the threshold, so a fast wait shows no flash. Reduced motion
@@ -34,7 +34,7 @@ declare function Spinner({ size, thresholdMs, label, }: {
34
34
  size?: number;
35
35
  thresholdMs?: number;
36
36
  label?: string;
37
- }): react_jsx_runtime.JSX.Element | null;
37
+ }): react.JSX.Element | null;
38
38
  /** Wrap an in-app region whose content is still loading: shows a centered spinner
39
39
  * (past the 150 ms floor) with `aria-busy`, then reveals `children`. For a shaped
40
40
  * wait, pass a `<Skeleton>` as `fallback` instead. App a11y only — not host chrome. */
@@ -43,6 +43,6 @@ declare function LoadingRegion({ loading, fallback, label, children, }: {
43
43
  fallback?: ReactNode;
44
44
  label?: string;
45
45
  children?: ReactNode;
46
- }): react_jsx_runtime.JSX.Element;
46
+ }): react.JSX.Element;
47
47
 
48
48
  export { LOADING_TIMINGS, LoadingRegion, Skeleton, type SkeletonArchetype, SkeletonRow, Spinner };
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as react from 'react';
3
2
  import { ReactNode } from 'react';
4
3
  import { EvaluationContext } from './sandboxTypes.cjs';
@@ -15,6 +14,6 @@ declare const ModuleCacheContext: react.Context<ModuleCache | null>;
15
14
  declare const ModuleCacheContextProvider: ({ children, moduleCache }: {
16
15
  children: ReactNode;
17
16
  moduleCache: ModuleCache;
18
- }) => react_jsx_runtime.JSX.Element;
17
+ }) => react.JSX.Element;
19
18
 
20
19
  export { ModuleCache, ModuleCacheContext, ModuleCacheContextProvider };
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as react from 'react';
3
2
  import { ReactNode } from 'react';
4
3
  import { EvaluationContext } from './sandboxTypes.js';
@@ -15,6 +14,6 @@ declare const ModuleCacheContext: react.Context<ModuleCache | null>;
15
14
  declare const ModuleCacheContextProvider: ({ children, moduleCache }: {
16
15
  children: ReactNode;
17
16
  moduleCache: ModuleCache;
18
- }) => react_jsx_runtime.JSX.Element;
17
+ }) => react.JSX.Element;
19
18
 
20
19
  export { ModuleCache, ModuleCacheContext, ModuleCacheContextProvider };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/safeContent/SafeContent.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport { parseSafeMdast } from './parseSafeMdast';\nimport { renderMdast, type RenderMdastOptions } from './renderMdast';\n\n// `<SafeContent>` — the host/SDK-owned safe renderer (TRUST_MODES_SPEC §5.1,\n// AGENT_AUTHORING §10). An interpreter app renders untrusted Markdown/MDX-syntax\n// content — a shared board's body, a multi-writer wiki entry — through THIS component\n// so **no author JavaScript ever executes** while `<Component/>` syntax still reaches\n// the app's own safe components. It is the mandatory terminal for the MDX-from-mount\n// gate: a shared board is a multi-writer (M3) source, and compiled/executable MDX\n// would run board-author code with the app's authority (the WHITEBOARD §8 blast\n// radius this gate bounds).\n//\n// The parse (no-acorn, ESM-only deps) is async, so this renders a small placeholder\n// until the tree is ready, then the pure synchronous `renderMdast`. Parsing is keyed\n// on the source string; a changed source re-parses, and a stale async result is\n// discarded (the ref guard) so a fast source swap can't paint the wrong content.\n\nexport interface SafeContentProps extends RenderMdastOptions {\n /** The untrusted Markdown/MDX-syntax source to render as data. */\n source: string;\n /** Rendered while the async parse is in flight (default: nothing). */\n fallback?: ReactNode;\n}\n\nexport function SafeContent({ source, fallback = null, ...options }: SafeContentProps): ReactNode {\n const [tree, setTree] = useState<Awaited<ReturnType<typeof parseSafeMdast>> | null>(null);\n const runId = useRef(0);\n\n useEffect(() => {\n const id = ++runId.current;\n setTree(null);\n let cancelled = false;\n parseSafeMdast(source)\n .then((parsed) => {\n // Discard a stale result (source changed / unmounted) so we never paint the\n // wrong tree — the render-as-data guarantee also needs the RIGHT data shown.\n if (!cancelled && runId.current === id) setTree(parsed);\n })\n .catch(() => {\n if (!cancelled && runId.current === id) setTree(null);\n });\n return () => {\n cancelled = true;\n };\n }, [source]);\n\n // `renderMdast` is pure; memoise on the tree + the option identities the caller\n // passes. (Callers should memoise `components`/`resolveWikiLink` themselves for a\n // stable identity; changing them re-renders, which is correct.)\n const rendered = useMemo(\n () => (tree ? renderMdast(tree, options) : null),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [tree, options.components, options.resolveWikiLink],\n );\n\n return tree ? rendered : fallback;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAqE;AACrE,4BAA+B;AAC/B,yBAAqD;AAuB9C,SAAS,YAAY,EAAE,QAAQ,WAAW,MAAM,GAAG,QAAQ,GAAgC;AAChG,QAAM,CAAC,MAAM,OAAO,QAAI,uBAA4D,IAAI;AACxF,QAAM,YAAQ,qBAAO,CAAC;AAEtB,8BAAU,MAAM;AACd,UAAM,KAAK,EAAE,MAAM;AACnB,YAAQ,IAAI;AACZ,QAAI,YAAY;AAChB,8CAAe,MAAM,EAClB,KAAK,CAAC,WAAW;AAGhB,UAAI,CAAC,aAAa,MAAM,YAAY,GAAI,SAAQ,MAAM;AAAA,IACxD,CAAC,EACA,MAAM,MAAM;AACX,UAAI,CAAC,aAAa,MAAM,YAAY,GAAI,SAAQ,IAAI;AAAA,IACtD,CAAC;AACH,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAKX,QAAM,eAAW;AAAA,IACf,MAAO,WAAO,gCAAY,MAAM,OAAO,IAAI;AAAA;AAAA,IAE3C,CAAC,MAAM,QAAQ,YAAY,QAAQ,eAAe;AAAA,EACpD;AAEA,SAAO,OAAO,WAAW;AAC3B;","names":[]}
1
+ {"version":3,"sources":["../../src/safeContent/SafeContent.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport { parseSafeMdast } from './parseSafeMdast';\nimport { renderMdast, type RenderMdastOptions } from './renderMdast';\n\n// R3-213 — sharing the component map: `parseSafeMdast` runs the SAME kernel remark\n// plugins the compiled path uses, so it emits `<Admonition>` / `<WikiLink>` /\n// `<HeadingAnchor>` element nodes. To render them identically to the compiled path (and\n// so pick up the R3-212 fragment resolver + scroll), an interpreter app passes the SAME\n// `DEFAULT_MDX_COMPONENTS` it hands `boot({ mdxComponents })` as this component's\n// `components` — that shared map IS the uniformity (no forked second component set). We\n// deliberately do NOT import DEFAULT_MDX_COMPONENTS here: the safe renderer is a lean,\n// dep-light security primitive (render-as-data, no evaluator, ESM-clean for the e2e\n// bundle), and must not pull the full component library into its module graph.\n\n// `<SafeContent>` — the host/SDK-owned safe renderer (TRUST_MODES_SPEC §5.1,\n// AGENT_AUTHORING §10). An interpreter app renders untrusted Markdown/MDX-syntax\n// content — a shared board's body, a multi-writer wiki entry — through THIS component\n// so **no author JavaScript ever executes** while `<Component/>` syntax still reaches\n// the app's own safe components. It is the mandatory terminal for the MDX-from-mount\n// gate: a shared board is a multi-writer (M3) source, and compiled/executable MDX\n// would run board-author code with the app's authority (the WHITEBOARD §8 blast\n// radius this gate bounds).\n//\n// The parse (no-acorn, ESM-only deps) is async, so this renders a small placeholder\n// until the tree is ready, then the pure synchronous `renderMdast`. Parsing is keyed\n// on the source string; a changed source re-parses, and a stale async result is\n// discarded (the ref guard) so a fast source swap can't paint the wrong content.\n\nexport interface SafeContentProps extends RenderMdastOptions {\n /** The untrusted Markdown/MDX-syntax source to render as data. */\n source: string;\n /** Rendered while the async parse is in flight (default: nothing). */\n fallback?: ReactNode;\n}\n\nexport function SafeContent({ source, fallback = null, ...options }: SafeContentProps): ReactNode {\n const [tree, setTree] = useState<Awaited<ReturnType<typeof parseSafeMdast>> | null>(null);\n const runId = useRef(0);\n\n useEffect(() => {\n const id = ++runId.current;\n setTree(null);\n let cancelled = false;\n parseSafeMdast(source)\n .then((parsed) => {\n // Discard a stale result (source changed / unmounted) so we never paint the\n // wrong tree — the render-as-data guarantee also needs the RIGHT data shown.\n if (!cancelled && runId.current === id) setTree(parsed);\n })\n .catch(() => {\n if (!cancelled && runId.current === id) setTree(null);\n });\n return () => {\n cancelled = true;\n };\n }, [source]);\n\n // `renderMdast` is pure; memoise on the tree + the option identities the caller\n // passes. (Callers should memoise `components`/`resolveWikiLink` themselves for a\n // stable identity; changing them re-renders, which is correct.)\n const rendered = useMemo(\n () => (tree ? renderMdast(tree, options) : null),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [tree, options.components, options.resolveWikiLink],\n );\n\n return tree ? rendered : fallback;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAqE;AACrE,4BAA+B;AAC/B,yBAAqD;AAiC9C,SAAS,YAAY,EAAE,QAAQ,WAAW,MAAM,GAAG,QAAQ,GAAgC;AAChG,QAAM,CAAC,MAAM,OAAO,QAAI,uBAA4D,IAAI;AACxF,QAAM,YAAQ,qBAAO,CAAC;AAEtB,8BAAU,MAAM;AACd,UAAM,KAAK,EAAE,MAAM;AACnB,YAAQ,IAAI;AACZ,QAAI,YAAY;AAChB,8CAAe,MAAM,EAClB,KAAK,CAAC,WAAW;AAGhB,UAAI,CAAC,aAAa,MAAM,YAAY,GAAI,SAAQ,MAAM;AAAA,IACxD,CAAC,EACA,MAAM,MAAM;AACX,UAAI,CAAC,aAAa,MAAM,YAAY,GAAI,SAAQ,IAAI;AAAA,IACtD,CAAC;AACH,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAKX,QAAM,eAAW;AAAA,IACf,MAAO,WAAO,gCAAY,MAAM,OAAO,IAAI;AAAA;AAAA,IAE3C,CAAC,MAAM,QAAQ,YAAY,QAAQ,eAAe;AAAA,EACpD;AAEA,SAAO,OAAO,WAAW;AAC3B;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/safeContent/SafeContent.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport { parseSafeMdast } from './parseSafeMdast';\nimport { renderMdast, type RenderMdastOptions } from './renderMdast';\n\n// `<SafeContent>` — the host/SDK-owned safe renderer (TRUST_MODES_SPEC §5.1,\n// AGENT_AUTHORING §10). An interpreter app renders untrusted Markdown/MDX-syntax\n// content — a shared board's body, a multi-writer wiki entry — through THIS component\n// so **no author JavaScript ever executes** while `<Component/>` syntax still reaches\n// the app's own safe components. It is the mandatory terminal for the MDX-from-mount\n// gate: a shared board is a multi-writer (M3) source, and compiled/executable MDX\n// would run board-author code with the app's authority (the WHITEBOARD §8 blast\n// radius this gate bounds).\n//\n// The parse (no-acorn, ESM-only deps) is async, so this renders a small placeholder\n// until the tree is ready, then the pure synchronous `renderMdast`. Parsing is keyed\n// on the source string; a changed source re-parses, and a stale async result is\n// discarded (the ref guard) so a fast source swap can't paint the wrong content.\n\nexport interface SafeContentProps extends RenderMdastOptions {\n /** The untrusted Markdown/MDX-syntax source to render as data. */\n source: string;\n /** Rendered while the async parse is in flight (default: nothing). */\n fallback?: ReactNode;\n}\n\nexport function SafeContent({ source, fallback = null, ...options }: SafeContentProps): ReactNode {\n const [tree, setTree] = useState<Awaited<ReturnType<typeof parseSafeMdast>> | null>(null);\n const runId = useRef(0);\n\n useEffect(() => {\n const id = ++runId.current;\n setTree(null);\n let cancelled = false;\n parseSafeMdast(source)\n .then((parsed) => {\n // Discard a stale result (source changed / unmounted) so we never paint the\n // wrong tree — the render-as-data guarantee also needs the RIGHT data shown.\n if (!cancelled && runId.current === id) setTree(parsed);\n })\n .catch(() => {\n if (!cancelled && runId.current === id) setTree(null);\n });\n return () => {\n cancelled = true;\n };\n }, [source]);\n\n // `renderMdast` is pure; memoise on the tree + the option identities the caller\n // passes. (Callers should memoise `components`/`resolveWikiLink` themselves for a\n // stable identity; changing them re-renders, which is correct.)\n const rendered = useMemo(\n () => (tree ? renderMdast(tree, options) : null),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [tree, options.components, options.resolveWikiLink],\n );\n\n return tree ? rendered : fallback;\n}\n"],"mappings":"AAAA,SAAS,WAAW,SAAS,QAAQ,gBAAgC;AACrE,SAAS,sBAAsB;AAC/B,SAAS,mBAA4C;AAuB9C,SAAS,YAAY,EAAE,QAAQ,WAAW,MAAM,GAAG,QAAQ,GAAgC;AAChG,QAAM,CAAC,MAAM,OAAO,IAAI,SAA4D,IAAI;AACxF,QAAM,QAAQ,OAAO,CAAC;AAEtB,YAAU,MAAM;AACd,UAAM,KAAK,EAAE,MAAM;AACnB,YAAQ,IAAI;AACZ,QAAI,YAAY;AAChB,mBAAe,MAAM,EAClB,KAAK,CAAC,WAAW;AAGhB,UAAI,CAAC,aAAa,MAAM,YAAY,GAAI,SAAQ,MAAM;AAAA,IACxD,CAAC,EACA,MAAM,MAAM;AACX,UAAI,CAAC,aAAa,MAAM,YAAY,GAAI,SAAQ,IAAI;AAAA,IACtD,CAAC;AACH,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAKX,QAAM,WAAW;AAAA,IACf,MAAO,OAAO,YAAY,MAAM,OAAO,IAAI;AAAA;AAAA,IAE3C,CAAC,MAAM,QAAQ,YAAY,QAAQ,eAAe;AAAA,EACpD;AAEA,SAAO,OAAO,WAAW;AAC3B;","names":[]}
1
+ {"version":3,"sources":["../../src/safeContent/SafeContent.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport { parseSafeMdast } from './parseSafeMdast';\nimport { renderMdast, type RenderMdastOptions } from './renderMdast';\n\n// R3-213 — sharing the component map: `parseSafeMdast` runs the SAME kernel remark\n// plugins the compiled path uses, so it emits `<Admonition>` / `<WikiLink>` /\n// `<HeadingAnchor>` element nodes. To render them identically to the compiled path (and\n// so pick up the R3-212 fragment resolver + scroll), an interpreter app passes the SAME\n// `DEFAULT_MDX_COMPONENTS` it hands `boot({ mdxComponents })` as this component's\n// `components` — that shared map IS the uniformity (no forked second component set). We\n// deliberately do NOT import DEFAULT_MDX_COMPONENTS here: the safe renderer is a lean,\n// dep-light security primitive (render-as-data, no evaluator, ESM-clean for the e2e\n// bundle), and must not pull the full component library into its module graph.\n\n// `<SafeContent>` — the host/SDK-owned safe renderer (TRUST_MODES_SPEC §5.1,\n// AGENT_AUTHORING §10). An interpreter app renders untrusted Markdown/MDX-syntax\n// content — a shared board's body, a multi-writer wiki entry — through THIS component\n// so **no author JavaScript ever executes** while `<Component/>` syntax still reaches\n// the app's own safe components. It is the mandatory terminal for the MDX-from-mount\n// gate: a shared board is a multi-writer (M3) source, and compiled/executable MDX\n// would run board-author code with the app's authority (the WHITEBOARD §8 blast\n// radius this gate bounds).\n//\n// The parse (no-acorn, ESM-only deps) is async, so this renders a small placeholder\n// until the tree is ready, then the pure synchronous `renderMdast`. Parsing is keyed\n// on the source string; a changed source re-parses, and a stale async result is\n// discarded (the ref guard) so a fast source swap can't paint the wrong content.\n\nexport interface SafeContentProps extends RenderMdastOptions {\n /** The untrusted Markdown/MDX-syntax source to render as data. */\n source: string;\n /** Rendered while the async parse is in flight (default: nothing). */\n fallback?: ReactNode;\n}\n\nexport function SafeContent({ source, fallback = null, ...options }: SafeContentProps): ReactNode {\n const [tree, setTree] = useState<Awaited<ReturnType<typeof parseSafeMdast>> | null>(null);\n const runId = useRef(0);\n\n useEffect(() => {\n const id = ++runId.current;\n setTree(null);\n let cancelled = false;\n parseSafeMdast(source)\n .then((parsed) => {\n // Discard a stale result (source changed / unmounted) so we never paint the\n // wrong tree — the render-as-data guarantee also needs the RIGHT data shown.\n if (!cancelled && runId.current === id) setTree(parsed);\n })\n .catch(() => {\n if (!cancelled && runId.current === id) setTree(null);\n });\n return () => {\n cancelled = true;\n };\n }, [source]);\n\n // `renderMdast` is pure; memoise on the tree + the option identities the caller\n // passes. (Callers should memoise `components`/`resolveWikiLink` themselves for a\n // stable identity; changing them re-renders, which is correct.)\n const rendered = useMemo(\n () => (tree ? renderMdast(tree, options) : null),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [tree, options.components, options.resolveWikiLink],\n );\n\n return tree ? rendered : fallback;\n}\n"],"mappings":"AAAA,SAAS,WAAW,SAAS,QAAQ,gBAAgC;AACrE,SAAS,sBAAsB;AAC/B,SAAS,mBAA4C;AAiC9C,SAAS,YAAY,EAAE,QAAQ,WAAW,MAAM,GAAG,QAAQ,GAAgC;AAChG,QAAM,CAAC,MAAM,OAAO,IAAI,SAA4D,IAAI;AACxF,QAAM,QAAQ,OAAO,CAAC;AAEtB,YAAU,MAAM;AACd,UAAM,KAAK,EAAE,MAAM;AACnB,YAAQ,IAAI;AACZ,QAAI,YAAY;AAChB,mBAAe,MAAM,EAClB,KAAK,CAAC,WAAW;AAGhB,UAAI,CAAC,aAAa,MAAM,YAAY,GAAI,SAAQ,MAAM;AAAA,IACxD,CAAC,EACA,MAAM,MAAM;AACX,UAAI,CAAC,aAAa,MAAM,YAAY,GAAI,SAAQ,IAAI;AAAA,IACtD,CAAC;AACH,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAKX,QAAM,WAAW;AAAA,IACf,MAAO,OAAO,YAAY,MAAM,OAAO,IAAI;AAAA;AAAA,IAE3C,CAAC,MAAM,QAAQ,YAAY,QAAQ,eAAe;AAAA,EACpD;AAEA,SAAO,OAAO,WAAW;AAC3B;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/safeContent/index.ts"],"sourcesContent":["// Safe content rendering — non-executable MDX (TRUST_MODES_SPEC §5.1, AGENT_AUTHORING\n// §10). The host/SDK-owned renderer an INTERPRETER app uses to render untrusted\n// Markdown/MDX-syntax content as data, with **no evaluator anywhere in the pipeline**.\n// This is the mandatory terminal for the MDX-from-mount gate (§10 delta 1) — a shared\n// (multi-writer / M3) board or wiki entry MUST render through here, never compiled MDX.\n//\n// It is a **T2 tool, not a platform gate**: it stops content executing as code; it does\n// not certify anything to the host, and CO-4 data-fencing is still required for anything\n// that *reads* the content (the agent case).\n\nexport { SafeContent } from './SafeContent';\nexport type { SafeContentProps } from './SafeContent';\nexport { renderMdast } from './renderMdast';\nexport type {\n RenderMdastOptions,\n SafeContentComponents,\n} from './renderMdast';\nexport { parseSafeMdast } from './parseSafeMdast';\nexport type { SafeMdastNode, SafeMdxAttribute } from './parseSafeMdast';\nexport { sanitizeUrl } from './sanitizeUrl';\nexport { splitWikiLinks, parseWikiInner } from './wikilink';\nexport type { WikiLinkToken, WikiPart } from './wikilink';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,yBAA4B;AAE5B,yBAA4B;AAK5B,4BAA+B;AAE/B,yBAA4B;AAC5B,sBAA+C;","names":[]}
1
+ {"version":3,"sources":["../../src/safeContent/index.ts"],"sourcesContent":["// Safe content rendering — non-executable MDX (TRUST_MODES_SPEC §5.1, AGENT_AUTHORING\n// §10). The host/SDK-owned renderer an INTERPRETER app uses to render untrusted\n// Markdown/MDX-syntax content as data, with **no evaluator anywhere in the pipeline**.\n// This is the mandatory terminal for the MDX-from-mount gate (§10 delta 1) — a shared\n// (multi-writer / M3) board or wiki entry MUST render through here, never compiled MDX.\n//\n// It is a **T2 tool, not a platform gate**: it stops content executing as code; it does\n// not certify anything to the host, and CO-4 data-fencing is still required for anything\n// that *reads* the content (the agent case).\n\nexport { SafeContent } from './SafeContent';\nexport type { SafeContentProps } from './SafeContent';\nexport { renderMdast } from './renderMdast';\nexport type {\n RenderMdastOptions,\n SafeContentComponents,\n} from './renderMdast';\nexport { parseSafeMdast } from './parseSafeMdast';\nexport type { SafeMdastNode, SafeMdxAttribute, ParseSafeMdastOptions } from './parseSafeMdast';\nexport { sanitizeUrl } from './sanitizeUrl';\nexport { splitWikiLinks, parseWikiInner } from './wikilink';\nexport type { WikiLinkToken, WikiPart } from './wikilink';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,yBAA4B;AAE5B,yBAA4B;AAK5B,4BAA+B;AAE/B,yBAA4B;AAC5B,sBAA+C;","names":[]}
@@ -1,6 +1,6 @@
1
1
  export { SafeContent, SafeContentProps } from './SafeContent.cjs';
2
2
  export { RenderMdastOptions, SafeContentComponents, renderMdast } from './renderMdast.cjs';
3
- export { SafeMdastNode, SafeMdxAttribute, parseSafeMdast } from './parseSafeMdast.cjs';
3
+ export { ParseSafeMdastOptions, SafeMdastNode, SafeMdxAttribute, parseSafeMdast } from './parseSafeMdast.cjs';
4
4
  export { sanitizeUrl } from './sanitizeUrl.cjs';
5
5
  export { WikiLinkToken, WikiPart, parseWikiInner, splitWikiLinks } from './wikilink.cjs';
6
6
  import 'react';
@@ -1,6 +1,6 @@
1
1
  export { SafeContent, SafeContentProps } from './SafeContent.js';
2
2
  export { RenderMdastOptions, SafeContentComponents, renderMdast } from './renderMdast.js';
3
- export { SafeMdastNode, SafeMdxAttribute, parseSafeMdast } from './parseSafeMdast.js';
3
+ export { ParseSafeMdastOptions, SafeMdastNode, SafeMdxAttribute, parseSafeMdast } from './parseSafeMdast.js';
4
4
  export { sanitizeUrl } from './sanitizeUrl.js';
5
5
  export { WikiLinkToken, WikiPart, parseWikiInner, splitWikiLinks } from './wikilink.js';
6
6
  import 'react';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/safeContent/index.ts"],"sourcesContent":["// Safe content rendering — non-executable MDX (TRUST_MODES_SPEC §5.1, AGENT_AUTHORING\n// §10). The host/SDK-owned renderer an INTERPRETER app uses to render untrusted\n// Markdown/MDX-syntax content as data, with **no evaluator anywhere in the pipeline**.\n// This is the mandatory terminal for the MDX-from-mount gate (§10 delta 1) — a shared\n// (multi-writer / M3) board or wiki entry MUST render through here, never compiled MDX.\n//\n// It is a **T2 tool, not a platform gate**: it stops content executing as code; it does\n// not certify anything to the host, and CO-4 data-fencing is still required for anything\n// that *reads* the content (the agent case).\n\nexport { SafeContent } from './SafeContent';\nexport type { SafeContentProps } from './SafeContent';\nexport { renderMdast } from './renderMdast';\nexport type {\n RenderMdastOptions,\n SafeContentComponents,\n} from './renderMdast';\nexport { parseSafeMdast } from './parseSafeMdast';\nexport type { SafeMdastNode, SafeMdxAttribute } from './parseSafeMdast';\nexport { sanitizeUrl } from './sanitizeUrl';\nexport { splitWikiLinks, parseWikiInner } from './wikilink';\nexport type { WikiLinkToken, WikiPart } from './wikilink';\n"],"mappings":"AAUA,SAAS,mBAAmB;AAE5B,SAAS,mBAAmB;AAK5B,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB,sBAAsB;","names":[]}
1
+ {"version":3,"sources":["../../src/safeContent/index.ts"],"sourcesContent":["// Safe content rendering — non-executable MDX (TRUST_MODES_SPEC §5.1, AGENT_AUTHORING\n// §10). The host/SDK-owned renderer an INTERPRETER app uses to render untrusted\n// Markdown/MDX-syntax content as data, with **no evaluator anywhere in the pipeline**.\n// This is the mandatory terminal for the MDX-from-mount gate (§10 delta 1) — a shared\n// (multi-writer / M3) board or wiki entry MUST render through here, never compiled MDX.\n//\n// It is a **T2 tool, not a platform gate**: it stops content executing as code; it does\n// not certify anything to the host, and CO-4 data-fencing is still required for anything\n// that *reads* the content (the agent case).\n\nexport { SafeContent } from './SafeContent';\nexport type { SafeContentProps } from './SafeContent';\nexport { renderMdast } from './renderMdast';\nexport type {\n RenderMdastOptions,\n SafeContentComponents,\n} from './renderMdast';\nexport { parseSafeMdast } from './parseSafeMdast';\nexport type { SafeMdastNode, SafeMdxAttribute, ParseSafeMdastOptions } from './parseSafeMdast';\nexport { sanitizeUrl } from './sanitizeUrl';\nexport { splitWikiLinks, parseWikiInner } from './wikilink';\nexport type { WikiLinkToken, WikiPart } from './wikilink';\n"],"mappings":"AAUA,SAAS,mBAAmB;AAE5B,SAAS,mBAAmB;AAK5B,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB,sBAAsB;","names":[]}