@stigmer/react 3.0.9-dev.20260615145121 → 3.0.9-dev.20260615153829
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/execution/ArtifactContentRenderer.d.ts.map +1 -1
- package/execution/ArtifactContentRenderer.js +7 -3
- package/execution/ArtifactContentRenderer.js.map +1 -1
- package/execution/ArtifactPreviewModal.d.ts +3 -3
- package/execution/ArtifactPreviewModal.js +4 -4
- package/execution/ArtifactPreviewModal.js.map +1 -1
- package/execution/MessageEntry.d.ts.map +1 -1
- package/execution/MessageEntry.js +7 -3
- package/execution/MessageEntry.js.map +1 -1
- package/execution/PlanArtifactCard.d.ts +25 -14
- package/execution/PlanArtifactCard.d.ts.map +1 -1
- package/execution/PlanArtifactCard.js +25 -10
- package/execution/PlanArtifactCard.js.map +1 -1
- package/execution/PlanCompletionCard.d.ts +12 -9
- package/execution/PlanCompletionCard.d.ts.map +1 -1
- package/execution/PlanCompletionCard.js +14 -9
- package/execution/PlanCompletionCard.js.map +1 -1
- package/execution/use-build-from-plan-hotkey.d.ts +19 -0
- package/execution/use-build-from-plan-hotkey.d.ts.map +1 -0
- package/execution/use-build-from-plan-hotkey.js +30 -0
- package/execution/use-build-from-plan-hotkey.js.map +1 -0
- package/internal/markdown-components.d.ts +18 -0
- package/internal/markdown-components.d.ts.map +1 -1
- package/internal/markdown-components.js +33 -0
- package/internal/markdown-components.js.map +1 -1
- package/package.json +4 -4
- package/portal-container.d.ts +9 -6
- package/portal-container.d.ts.map +1 -1
- package/portal-container.js +9 -6
- package/portal-container.js.map +1 -1
- package/provider.d.ts.map +1 -1
- package/provider.js +41 -19
- package/provider.js.map +1 -1
- package/src/__tests__/provider-theme-scope.test.tsx +94 -0
- package/src/execution/ArtifactContentRenderer.tsx +11 -2
- package/src/execution/ArtifactPreviewModal.tsx +7 -7
- package/src/execution/MessageEntry.tsx +14 -3
- package/src/execution/PlanArtifactCard.tsx +60 -51
- package/src/execution/PlanCompletionCard.tsx +20 -13
- package/src/execution/__tests__/ArtifactContentRenderer.test.tsx +47 -0
- package/src/execution/__tests__/ArtifactPreviewModal.test.tsx +6 -6
- package/src/execution/__tests__/MessageThread.test.tsx +3 -3
- package/src/execution/__tests__/PlanArtifactCard.test.tsx +120 -31
- package/src/execution/__tests__/PlanCompletionCard.test.tsx +31 -2
- package/src/execution/__tests__/message-entry.test.tsx +27 -0
- package/src/execution/use-build-from-plan-hotkey.ts +39 -0
- package/src/internal/__tests__/markdown-components.test.tsx +53 -0
- package/src/internal/markdown-components.tsx +36 -0
- package/src/portal-container.ts +9 -6
- package/src/provider.tsx +70 -23
- package/src/session/inspector/__tests__/ArtifactsTab.test.tsx +7 -7
- package/styles.css +1 -1
|
@@ -19,6 +19,39 @@ const FRONTMATTER_RE = /^---\r?\n[\s\S]*?\r?\n---\r?\n?/;
|
|
|
19
19
|
export function stripFrontmatter(content) {
|
|
20
20
|
return content.replace(FRONTMATTER_RE, "");
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Matches content whose ENTIRE body is a single fenced code block tagged
|
|
24
|
+
* `markdown` / `md`. Capture group 1 is the opening backtick run (so the close
|
|
25
|
+
* must use the same run via the `\1` backreference); group 2 is the inner body.
|
|
26
|
+
*
|
|
27
|
+
* Deliberately strict: the info string must be exactly `markdown`/`md` and the
|
|
28
|
+
* fence must span the whole (trimmed) string. A bare ``` ``` ``` fence is NOT
|
|
29
|
+
* matched — without the explicit language tag we cannot tell wrapped markdown
|
|
30
|
+
* from a legitimate single code block, and guessing by inspecting the body is
|
|
31
|
+
* the kind of fuzzy heuristic this codebase avoids.
|
|
32
|
+
*/
|
|
33
|
+
const ENCLOSING_MARKDOWN_FENCE_RE = /^(`{3,})[ \t]*(?:markdown|md)[ \t]*\r?\n([\s\S]*?)\r?\n\1[ \t]*$/i;
|
|
34
|
+
/**
|
|
35
|
+
* Unwraps a message the model wrapped entirely in a ```markdown / ```md fence.
|
|
36
|
+
*
|
|
37
|
+
* Some models emit their whole markdown reply inside one fenced block (a
|
|
38
|
+
* Plan-mode plan is the common case). Rendered as-is that becomes a single flat
|
|
39
|
+
* code block instead of rich markdown — headings, lists, and tables collapse to
|
|
40
|
+
* monospace text. This returns the inner markdown in exactly that case and is a
|
|
41
|
+
* no-op for everything else (already-rich markdown, prose, or a reply that is
|
|
42
|
+
* legitimately a single code block).
|
|
43
|
+
*
|
|
44
|
+
* Render-time only: callers pass it the text right before handing it to the
|
|
45
|
+
* markdown renderer, so the transcript and the raw artifact stay faithful to
|
|
46
|
+
* what the agent produced — a single source of truth for the unwrap, with no
|
|
47
|
+
* duplicated logic in the runner. While streaming, the closing fence has not
|
|
48
|
+
* arrived yet, so this no-ops and the live text renders as typed; it unwraps
|
|
49
|
+
* once the block closes.
|
|
50
|
+
*/
|
|
51
|
+
export function unwrapEnclosingMarkdownFence(content) {
|
|
52
|
+
const match = ENCLOSING_MARKDOWN_FENCE_RE.exec(content.trim());
|
|
53
|
+
return match ? match[2] : content;
|
|
54
|
+
}
|
|
22
55
|
/**
|
|
23
56
|
* Styled react-markdown component overrides for SDK markdown surfaces.
|
|
24
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-components.js","sourceRoot":"","sources":["../../src/internal/markdown-components.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"markdown-components.js","sourceRoot":"","sources":["../../src/internal/markdown-components.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/react",
|
|
3
|
-
"version": "3.0.9-dev.
|
|
3
|
+
"version": "3.0.9-dev.20260615153829",
|
|
4
4
|
"description": "React provider and client hook for the Stigmer platform SDK",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@bufbuild/protovalidate": "^1.1.1",
|
|
39
39
|
"@dagrejs/dagre": "^1.1.4",
|
|
40
|
-
"@stigmer/theme": "3.0.9-dev.
|
|
40
|
+
"@stigmer/theme": "3.0.9-dev.20260615153829",
|
|
41
41
|
"diff": "^8.0.3",
|
|
42
42
|
"fflate": "^0.8.2",
|
|
43
43
|
"react-markdown": "^10.1.0",
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"@codemirror/state": "^6.0.0",
|
|
58
58
|
"@codemirror/view": "^6.0.0",
|
|
59
59
|
"@lezer/highlight": "^1.0.0",
|
|
60
|
-
"@stigmer/protos": "3.0.9-dev.
|
|
61
|
-
"@stigmer/sdk": "3.0.9-dev.
|
|
60
|
+
"@stigmer/protos": "3.0.9-dev.20260615153829",
|
|
61
|
+
"@stigmer/sdk": "3.0.9-dev.20260615153829",
|
|
62
62
|
"@tanstack/react-table": "^8.20.0",
|
|
63
63
|
"@xyflow/react": "^12.0.0",
|
|
64
64
|
"elkjs": "^0.9.0",
|
package/portal-container.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* React context that holds a reference to the managed portal container.
|
|
3
3
|
*
|
|
4
|
-
* `StigmerProvider` creates a `<div>` appended to `document.body`
|
|
5
|
-
* the
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* `StigmerProvider` creates a `<div>` appended to `document.body` that
|
|
5
|
+
* carries the identical theme scope as the main provider container —
|
|
6
|
+
* the same class (`stgm` + preset class + any host `className`) and the
|
|
7
|
+
* same `data-stgm-color-mode`. Both containers derive this from a single
|
|
8
|
+
* source (`useThemeScope` in `provider.tsx`), so they cannot drift apart.
|
|
9
|
+
* This ensures portaled content (popovers, dialogs, menus) inherits the
|
|
10
|
+
* correct design token values — including dark-mode overrides and host
|
|
11
|
+
* `className`-scoped token overrides — even though it lives outside the
|
|
12
|
+
* provider's DOM subtree (where the cascade would otherwise not reach it).
|
|
10
13
|
*
|
|
11
14
|
* Defaults to `null` so components rendered outside a `StigmerProvider`
|
|
12
15
|
* fall back to the browser's default portal target (`document.body`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-container.d.ts","sourceRoot":"","sources":["../src/portal-container.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"portal-container.d.ts","sourceRoot":"","sources":["../src/portal-container.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,sBAAsB,6CAA0C,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,yBAAyB,IAAI,WAAW,GAAG,IAAI,CAE9D"}
|
package/portal-container.js
CHANGED
|
@@ -3,12 +3,15 @@ import { createContext, useContext } from "react";
|
|
|
3
3
|
/**
|
|
4
4
|
* React context that holds a reference to the managed portal container.
|
|
5
5
|
*
|
|
6
|
-
* `StigmerProvider` creates a `<div>` appended to `document.body`
|
|
7
|
-
* the
|
|
8
|
-
* `
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
6
|
+
* `StigmerProvider` creates a `<div>` appended to `document.body` that
|
|
7
|
+
* carries the identical theme scope as the main provider container —
|
|
8
|
+
* the same class (`stgm` + preset class + any host `className`) and the
|
|
9
|
+
* same `data-stgm-color-mode`. Both containers derive this from a single
|
|
10
|
+
* source (`useThemeScope` in `provider.tsx`), so they cannot drift apart.
|
|
11
|
+
* This ensures portaled content (popovers, dialogs, menus) inherits the
|
|
12
|
+
* correct design token values — including dark-mode overrides and host
|
|
13
|
+
* `className`-scoped token overrides — even though it lives outside the
|
|
14
|
+
* provider's DOM subtree (where the cascade would otherwise not reach it).
|
|
12
15
|
*
|
|
13
16
|
* Defaults to `null` so components rendered outside a `StigmerProvider`
|
|
14
17
|
* fall back to the browser's default portal target (`document.body`).
|
package/portal-container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-container.js","sourceRoot":"","sources":["../src/portal-container.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"portal-container.js","sourceRoot":"","sources":["../src/portal-container.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,UAAU,CAAC,sBAAsB,CAAC,CAAC;AAC5C,CAAC"}
|
package/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,cAAc,CAAC;AAUjE,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACjD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,QAAQ,EACR,cAAwB,EACxB,eAAe,EACf,aAAa,EACb,MAAM,EACN,SAAS,EACT,SAAmB,GACpB,EAAE,oBAAoB,2CAoCtB"}
|
package/provider.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useCallback, useEffect, useRef, useState } from "react";
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
|
|
4
4
|
import { cn, resolvePresetClass } from "@stigmer/theme";
|
|
5
5
|
import { StigmerContext } from "./context";
|
|
6
6
|
import { DeploymentModeContext } from "./deployment-mode";
|
|
@@ -45,10 +45,11 @@ export function StigmerProvider({ client, children, deploymentMode = "cloud", ex
|
|
|
45
45
|
const systemMode = useSystemColorMode();
|
|
46
46
|
const resolvedMode = colorMode === "system" ? systemMode : colorMode;
|
|
47
47
|
const presetClass = preset ? resolvePresetClass(preset) : "";
|
|
48
|
-
const
|
|
48
|
+
const scope = useThemeScope(resolvedMode, presetClass, className);
|
|
49
|
+
const portalContainer = usePortalContainer(scope);
|
|
49
50
|
const registryState = useModelRegistryFetch(client);
|
|
50
51
|
const taskKindRegistryState = useTaskKindRegistryFetch(client);
|
|
51
|
-
return (_jsx(StigmerContext.Provider, { value: client, children: _jsx(DeploymentModeContext.Provider, { value: deploymentMode, children: _jsx(ExecutionTargetContext.Provider, { value: executionTarget, children: _jsx(RunnerAdapterContext.Provider, { value: runnerAdapter ?? null, children: _jsx(ColorModeContext.Provider, { value: resolvedMode, children: _jsx(ModelRegistryContext.Provider, { value: registryState, children: _jsx(TaskKindRegistryContext.Provider, { value: taskKindRegistryState, children: _jsx(PortalContainerContext.Provider, { value: portalContainer, children: _jsx("div", { className:
|
|
52
|
+
return (_jsx(StigmerContext.Provider, { value: client, children: _jsx(DeploymentModeContext.Provider, { value: deploymentMode, children: _jsx(ExecutionTargetContext.Provider, { value: executionTarget, children: _jsx(RunnerAdapterContext.Provider, { value: runnerAdapter ?? null, children: _jsx(ColorModeContext.Provider, { value: resolvedMode, children: _jsx(ModelRegistryContext.Provider, { value: registryState, children: _jsx(TaskKindRegistryContext.Provider, { value: taskKindRegistryState, children: _jsx(PortalContainerContext.Provider, { value: portalContainer, children: _jsx("div", { className: scope.className, "data-stgm-color-mode": scope.colorMode, children: children }) }) }) }) }) }) }) }) }));
|
|
52
53
|
}
|
|
53
54
|
const RETRY_DELAYS_MS = [1_000, 2_000, 4_000];
|
|
54
55
|
const TOKEN_POLL_INTERVAL_MS = 500;
|
|
@@ -296,29 +297,50 @@ function useTaskKindRegistryFetch(client) {
|
|
|
296
297
|
}, []);
|
|
297
298
|
return { ...state, refetch };
|
|
298
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Computes the {@link ThemeScope} once per render input.
|
|
302
|
+
*
|
|
303
|
+
* Both the in-tree provider container and the managed portal container
|
|
304
|
+
* derive their class + `data-stgm-color-mode` from this single source,
|
|
305
|
+
* so the two can never drift apart — the cause of #182, where the portal
|
|
306
|
+
* container omitted the host `className` and portaled surfaces (popovers,
|
|
307
|
+
* dialogs, menus) lost host token overrides scoped to that class.
|
|
308
|
+
*
|
|
309
|
+
* The returned object is referentially stable until an input changes,
|
|
310
|
+
* which keeps {@link usePortalContainer}'s sync effect from re-running
|
|
311
|
+
* on every render.
|
|
312
|
+
*/
|
|
313
|
+
function useThemeScope(resolvedMode, presetClass, className) {
|
|
314
|
+
return useMemo(() => ({
|
|
315
|
+
className: cn("stgm", presetClass, className),
|
|
316
|
+
colorMode: resolvedMode,
|
|
317
|
+
}), [resolvedMode, presetClass, className]);
|
|
318
|
+
}
|
|
299
319
|
/**
|
|
300
320
|
* Creates and manages a portal container `<div>` appended to
|
|
301
|
-
* `document.body` that
|
|
302
|
-
* provider container.
|
|
321
|
+
* `document.body` that carries the identical {@link ThemeScope} as the
|
|
322
|
+
* main provider container.
|
|
303
323
|
*
|
|
304
|
-
* Portaled content (popovers, dialogs, menus) that targets this
|
|
305
|
-
*
|
|
306
|
-
*
|
|
307
|
-
* `data-stgm-color-mode`
|
|
324
|
+
* Portaled content (popovers, dialogs, menus) that targets this element
|
|
325
|
+
* inherits the correct `--stgm-*` token values — including dark-mode
|
|
326
|
+
* overrides and any host `className` token overrides — because the
|
|
327
|
+
* container carries the same class and `data-stgm-color-mode` attribute
|
|
328
|
+
* as the in-tree scope. The node lives outside the provider subtree, so
|
|
329
|
+
* these must be set on the node directly rather than inherited via the
|
|
330
|
+
* DOM cascade.
|
|
308
331
|
*
|
|
309
|
-
* The element is created once on mount and removed on unmount.
|
|
310
|
-
*
|
|
311
|
-
* separate effect.
|
|
332
|
+
* The element is created once on mount and removed on unmount. Scope
|
|
333
|
+
* values are kept in sync with `scope` changes via a separate effect.
|
|
312
334
|
*
|
|
313
335
|
* Returns `null` during SSR (no `document`).
|
|
314
336
|
*/
|
|
315
|
-
function usePortalContainer(
|
|
337
|
+
function usePortalContainer(scope) {
|
|
316
338
|
const elRef = useRef(null);
|
|
317
339
|
const [container, setContainer] = useState(null);
|
|
318
340
|
useEffect(() => {
|
|
319
341
|
const el = document.createElement("div");
|
|
320
|
-
el.className =
|
|
321
|
-
el.setAttribute("data-stgm-color-mode", colorMode);
|
|
342
|
+
el.className = scope.className;
|
|
343
|
+
el.setAttribute("data-stgm-color-mode", scope.colorMode);
|
|
322
344
|
el.setAttribute("data-stgm-portal", "");
|
|
323
345
|
document.body.appendChild(el);
|
|
324
346
|
elRef.current = el;
|
|
@@ -328,15 +350,15 @@ function usePortalContainer(colorMode, presetClass) {
|
|
|
328
350
|
elRef.current = null;
|
|
329
351
|
};
|
|
330
352
|
// Intentionally empty deps: create once on mount, remove on unmount.
|
|
331
|
-
//
|
|
353
|
+
// Scope syncing is handled by the effect below.
|
|
332
354
|
}, []);
|
|
333
355
|
useEffect(() => {
|
|
334
356
|
const el = elRef.current;
|
|
335
357
|
if (!el)
|
|
336
358
|
return;
|
|
337
|
-
el.className =
|
|
338
|
-
el.setAttribute("data-stgm-color-mode", colorMode);
|
|
339
|
-
}, [
|
|
359
|
+
el.className = scope.className;
|
|
360
|
+
el.setAttribute("data-stgm-color-mode", scope.colorMode);
|
|
361
|
+
}, [scope]);
|
|
340
362
|
return container;
|
|
341
363
|
}
|
|
342
364
|
//# sourceMappingURL=provider.js.map
|
package/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { describe, it, expect, afterEach } from "vitest";
|
|
2
|
+
import { render, cleanup } from "@testing-library/react";
|
|
3
|
+
import type { Stigmer } from "@stigmer/sdk";
|
|
4
|
+
import { StigmerProvider } from "../provider";
|
|
5
|
+
|
|
6
|
+
afterEach(cleanup);
|
|
7
|
+
|
|
8
|
+
// A minimal client: the provider eagerly fetches the model/task-kind
|
|
9
|
+
// registries on mount. Returning a null credential keeps that work
|
|
10
|
+
// non-blocking (it polls for a token) so rendering is synchronous and
|
|
11
|
+
// never touches the network during the test.
|
|
12
|
+
function makeClient(): Stigmer {
|
|
13
|
+
return {
|
|
14
|
+
baseUrl: "https://example.test",
|
|
15
|
+
getAuthCredential: async () => null,
|
|
16
|
+
fetch: (async () => {
|
|
17
|
+
throw new Error("network disabled in test");
|
|
18
|
+
}) as unknown as typeof globalThis.fetch,
|
|
19
|
+
} as unknown as Stigmer;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Regression test for #182: portaled surfaces must inherit the host's
|
|
24
|
+
* full theme scope. The managed portal container (appended to
|
|
25
|
+
* `document.body`, outside the provider subtree) must carry the *identical*
|
|
26
|
+
* class + color mode as the in-tree container — otherwise host token
|
|
27
|
+
* overrides scoped to a custom `className` never reach portaled content.
|
|
28
|
+
*/
|
|
29
|
+
describe("StigmerProvider theme scope", () => {
|
|
30
|
+
it("portal container carries the identical theme scope as the in-tree container", () => {
|
|
31
|
+
render(
|
|
32
|
+
<StigmerProvider
|
|
33
|
+
client={makeClient()}
|
|
34
|
+
preset="monochrome"
|
|
35
|
+
colorMode="dark"
|
|
36
|
+
className="our-brand"
|
|
37
|
+
>
|
|
38
|
+
<div data-testid="scope-child" />
|
|
39
|
+
</StigmerProvider>,
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
const child = document.querySelector('[data-testid="scope-child"]');
|
|
43
|
+
const inTree = child?.closest(".stgm") as HTMLElement | null;
|
|
44
|
+
const portal = document.body.querySelector(
|
|
45
|
+
"[data-stgm-portal]",
|
|
46
|
+
) as HTMLElement | null;
|
|
47
|
+
|
|
48
|
+
expect(inTree).not.toBeNull();
|
|
49
|
+
expect(portal).not.toBeNull();
|
|
50
|
+
|
|
51
|
+
// The invariant: both surfaces are scoped identically. Asserting
|
|
52
|
+
// equality (rather than a hardcoded class string) is the truest
|
|
53
|
+
// expression of the contract and won't rot if preset class names change.
|
|
54
|
+
expect(portal!.className).toBe(inTree!.className);
|
|
55
|
+
expect(portal!.getAttribute("data-stgm-color-mode")).toBe(
|
|
56
|
+
inTree!.getAttribute("data-stgm-color-mode"),
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
// Spot-check the concrete pieces so a failure message is self-explanatory.
|
|
60
|
+
expect(portal!.classList.contains("stgm")).toBe(true);
|
|
61
|
+
expect(portal!.classList.contains("stgm-theme-monochrome")).toBe(true);
|
|
62
|
+
expect(portal!.classList.contains("our-brand")).toBe(true);
|
|
63
|
+
expect(portal!.getAttribute("data-stgm-color-mode")).toBe("dark");
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it("portal container reflects host className updates without drift", () => {
|
|
67
|
+
const client = makeClient();
|
|
68
|
+
const { rerender } = render(
|
|
69
|
+
<StigmerProvider client={client} colorMode="light" className="brand-a">
|
|
70
|
+
<div data-testid="scope-child" />
|
|
71
|
+
</StigmerProvider>,
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
const portal = document.body.querySelector(
|
|
75
|
+
"[data-stgm-portal]",
|
|
76
|
+
) as HTMLElement;
|
|
77
|
+
expect(portal.classList.contains("brand-a")).toBe(true);
|
|
78
|
+
|
|
79
|
+
rerender(
|
|
80
|
+
<StigmerProvider client={client} colorMode="dark" className="brand-b">
|
|
81
|
+
<div data-testid="scope-child" />
|
|
82
|
+
</StigmerProvider>,
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
const child = document.querySelector('[data-testid="scope-child"]');
|
|
86
|
+
const inTree = child?.closest(".stgm") as HTMLElement;
|
|
87
|
+
|
|
88
|
+
// Same node, synced — and still identical to the in-tree scope.
|
|
89
|
+
expect(portal.classList.contains("brand-b")).toBe(true);
|
|
90
|
+
expect(portal.classList.contains("brand-a")).toBe(false);
|
|
91
|
+
expect(portal.getAttribute("data-stgm-color-mode")).toBe("dark");
|
|
92
|
+
expect(portal.className).toBe(inTree.className);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useState, type ReactNode } from "react";
|
|
3
|
+
import { useMemo, useState, type ReactNode } from "react";
|
|
4
4
|
import Markdown from "react-markdown";
|
|
5
5
|
import { cn } from "@stigmer/theme";
|
|
6
6
|
import {
|
|
7
7
|
MARKDOWN_COMPONENTS,
|
|
8
8
|
REMARK_PLUGINS,
|
|
9
|
+
unwrapEnclosingMarkdownFence,
|
|
9
10
|
} from "../internal/markdown-components";
|
|
10
11
|
import {
|
|
11
12
|
getArtifactRenderMode,
|
|
@@ -105,6 +106,14 @@ type MarkdownTab = "rendered" | "source";
|
|
|
105
106
|
function MarkdownView({ content }: { readonly content: string }) {
|
|
106
107
|
const [tab, setTab] = useState<MarkdownTab>("rendered");
|
|
107
108
|
|
|
109
|
+
// A `.md` whose entire body is one ```markdown fence (e.g. a model-wrapped
|
|
110
|
+
// plan) would render flat. Unwrap for the Rendered view only — Source stays
|
|
111
|
+
// byte-faithful to the stored artifact.
|
|
112
|
+
const rendered = useMemo(
|
|
113
|
+
() => unwrapEnclosingMarkdownFence(content),
|
|
114
|
+
[content],
|
|
115
|
+
);
|
|
116
|
+
|
|
108
117
|
return (
|
|
109
118
|
<div>
|
|
110
119
|
<div className="flex items-center border-b border-border px-4 py-1.5">
|
|
@@ -132,7 +141,7 @@ function MarkdownView({ content }: { readonly content: string }) {
|
|
|
132
141
|
remarkPlugins={REMARK_PLUGINS}
|
|
133
142
|
components={MARKDOWN_COMPONENTS}
|
|
134
143
|
>
|
|
135
|
-
{
|
|
144
|
+
{rendered}
|
|
136
145
|
</Markdown>
|
|
137
146
|
</div>
|
|
138
147
|
) : (
|
|
@@ -46,7 +46,7 @@ export interface ArtifactPreviewContentProps {
|
|
|
46
46
|
*/
|
|
47
47
|
readonly onApplied?: (result: ApplyResourceResult) => void;
|
|
48
48
|
/**
|
|
49
|
-
* Optional
|
|
49
|
+
* Optional plan-build action. When provided, a "Build from plan" primary
|
|
50
50
|
* button appears in the action bar (used for plan artifacts: turn the
|
|
51
51
|
* plan into an Agent run). Clicking it calls `onImplement` then closes
|
|
52
52
|
* the modal. Omit for non-actionable artifacts.
|
|
@@ -227,9 +227,9 @@ export function ArtifactPreviewContent({
|
|
|
227
227
|
ctaLabel = `Push Skill to ${org}`;
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
//
|
|
231
|
-
// take over (switch to Agent + send). Single combined handler keeps
|
|
232
|
-
// caller's contract simple ("just give me onImplement").
|
|
230
|
+
// "Build from plan" runs the plan; closing the modal lets the host's submit
|
|
231
|
+
// pipeline take over (switch to Agent + send). Single combined handler keeps
|
|
232
|
+
// the caller's contract simple ("just give me onImplement").
|
|
233
233
|
const handleImplement = useCallback(() => {
|
|
234
234
|
onImplement?.();
|
|
235
235
|
onClose();
|
|
@@ -326,8 +326,8 @@ export interface ArtifactPreviewModalProps {
|
|
|
326
326
|
*/
|
|
327
327
|
readonly onApplied?: (result: ApplyResourceResult) => void;
|
|
328
328
|
/**
|
|
329
|
-
* Optional
|
|
330
|
-
* When provided,
|
|
329
|
+
* Optional plan-build action (see {@link ArtifactPreviewContentProps.onImplement}).
|
|
330
|
+
* When provided, a "Build from plan" primary button appears; clicking it calls
|
|
331
331
|
* `onImplement` then closes the modal.
|
|
332
332
|
*/
|
|
333
333
|
readonly onImplement?: () => void;
|
|
@@ -695,7 +695,7 @@ function ActionBar({
|
|
|
695
695
|
)}
|
|
696
696
|
>
|
|
697
697
|
<ImplementIcon />
|
|
698
|
-
|
|
698
|
+
Build from plan
|
|
699
699
|
</button>
|
|
700
700
|
)}
|
|
701
701
|
{applyResult ? (
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { memo, useState } from "react";
|
|
3
|
+
import { memo, useMemo, useState } from "react";
|
|
4
4
|
import { Streamdown } from "streamdown";
|
|
5
5
|
import type { AgentMessage } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
6
6
|
import { MessageType } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
7
7
|
import { cn } from "@stigmer/theme";
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
MARKDOWN_COMPONENTS,
|
|
10
|
+
unwrapEnclosingMarkdownFence,
|
|
11
|
+
} from "../internal/markdown-components";
|
|
9
12
|
import { useRenderTracer } from "../internal/dev";
|
|
10
13
|
|
|
11
14
|
/** Props for {@link MessageEntry}. */
|
|
@@ -160,6 +163,14 @@ function AiMessage({
|
|
|
160
163
|
}) {
|
|
161
164
|
useRenderTracer("AiMessage", { contentLength: content.length, isStreaming });
|
|
162
165
|
|
|
166
|
+
// A model that wraps its whole reply in a ```markdown fence (Plan-mode plans
|
|
167
|
+
// most often) would otherwise render as one flat code block. Unwrap it here,
|
|
168
|
+
// at the render seam, so the transcript stays faithful to what the agent sent.
|
|
169
|
+
const markdown = useMemo(
|
|
170
|
+
() => unwrapEnclosingMarkdownFence(content),
|
|
171
|
+
[content],
|
|
172
|
+
);
|
|
173
|
+
|
|
163
174
|
return (
|
|
164
175
|
<div
|
|
165
176
|
role="article"
|
|
@@ -173,7 +184,7 @@ function AiMessage({
|
|
|
173
184
|
isAnimating={isStreaming}
|
|
174
185
|
caret="block"
|
|
175
186
|
>
|
|
176
|
-
{
|
|
187
|
+
{markdown}
|
|
177
188
|
</Streamdown>
|
|
178
189
|
</div>
|
|
179
190
|
</div>
|