* fix(web-shared): expand Web API iterables Signed-off-by: Cursor Agent <cursoragent@cursor.com> * fix(web-shared): inspect generic iterables Signed-off-by: Cursor Agent <cursoragent@cursor.com> * fix(web-shared): compare iterator identity safely Signed-off-by: Cursor Agent <cursoragent@cursor.com> * test(web-shared): cover inspector iterable entries Signed-off-by: Cursor Agent <cursoragent@cursor.com> * fix(web-shared): describe map-like iterables via entries() Signed-off-by: Cursor Agent <cursoragent@cursor.com> --------- Signed-off-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
@workflow/web-shared
Workflow Observability UI primitives. See Workflow SDK for more information.
Usage
This package contains:
- pre-styled, prop-driven UI components (no data fetching)
If you want a full observability experience with server actions already wired, take a look at
@workflow/web instead.
It comes with pre-styled UI components that accept data + callbacks:
import { TraceViewer } from '@workflow/web-shared';
export default function MyRunDetailView({ run, events, fetchSpanDetail }) {
return (
<TraceViewer
run={run}
events={events}
sidebarData={{ run, events, fetchSpanDetail }}
/>
);
}
Server actions and data fetching are intentionally not part of web-shared. Implement those in your app
and pass data + callbacks into these components. If you need world run helpers, use @workflow/core/runtime.
Security notice: If you implement server-side data fetching using
@workflow/world-vercelor similar backends, ensure that user-supplied IDs (runId, stepId, etc.) are validated before passing them to world functions. The server actions in@workflow/webdo not include authentication. See that package's README for details on securing self-hosted deployments.
Styling
To detect Tailwind CSS classes correctly, you might need to configure your Next.js app to use the correct CSS processor. For example, with PostCSS and Tailwind CSS:
// postcss.config.mjs in your Next.js app
const config = {
plugins: ['@tailwindcss/postcss'],
};
export default config;