@ossy/automation
@ossy/automation
Workspace automation observability UI for the Ossy platform. Read-only views over the build-time task catalog, trigger graph, and workspace task run history — not a workflow designer.
Normative direction: ADR 0011.
Core concepts
| Term | Role in this package |
|---|---|
| Task | Runtime primitive (@ossy/{feature}/tasks/{intent}). Listed in topology and run history. |
| Pipeline | Derived graph over task triggers and optional outputs — shown as read-only edges in the catalog UI. |
| Automation | This module: observe topology + runs; manual invoke may come later. |
| Flow | Playwright journey tests only (*.flow.js) — not shown here. |
The home page reads manifest.taskCatalog and manifest.taskGraphEdges from app bootstrap (useApp()). Run history reads the workspace projection @ossy/platform/actions/list-task-runs via @ossy/sdk-react.
Pages
| Page | Path | Audience |
|---|---|---|
automation/home |
/automation |
Workspace members (service enabled) |
Enable the module per workspace via the automation service flag (same pattern as booking, calendar, …).
UI surfaces
| Export | File | Description |
|---|---|---|
AutomationPage |
automation.page.jsx |
Shell page: topology, service tiles (placeholders), run history |
TaskCatalogGraph |
TaskCatalogGraph.jsx |
Read-only task catalog grouped by moduleId, with incoming trigger edges |
TaskRunList |
TaskRunList.jsx |
Selectable list of workspace task runs |
TaskRunDetail |
TaskRunDetail.jsx |
Side panel for a selected run |
TaskRunStatusBadge |
TaskRunStatusBadge.jsx |
Status chip for run list / detail |
Task catalog data
Build exports normalized entries via @ossy/schema (extractTaskCatalogEntry, buildTaskCatalogEdges). Each catalog row includes:
id,moduleId,package,triggers,primaryActionId,inputSchemaIds,outputs
Graph edges connect trigger sources (actions, events, schedules) and primary actions to task nodes.
Task run projection
// taskRuns.js — action id only; workspace scope from SDK config
export const ListTaskRuns = { id: '@ossy/platform/actions/list-task-runs' }
TaskRunList calls read(ListTaskRuns) once; the page owns selection state and passes selectedRun to TaskRunDetail.
Package exports
import { Definition, location } from '@ossy/automation'
| Export | Description |
|---|---|
Definition |
Feature metadata (id: 'automation', title, icon, status) |
location |
Resource location prefix for job resources (/@ossy/jobs/) |
React pages and components are loaded by the app manifest — not re-exported from the package entry.
Peer dependencies
| Package | Used for |
|---|---|
@ossy/app |
useApp() — task catalog and graph edges from SSR bootstrap |
@ossy/design-system |
Layout, Page, List, forms |
@ossy/sdk-react |
useSdk, read, run list |
@ossy/router-react |
Page routing (via app shell) |
@ossy/resources |
Legacy job components under src/jobs/ |
react |
UI |
Storybook
Generated story: Automation → Pages → Automation. Requires global Storybook bootstrap (.storybook/storybook-bootstrap.js, mock SDK) so useApp() and list-task-runs resolve without a live server.
Discover JSON seeds task ids only; full trigger metadata appears after app build in a real app manifest.
Related packages
| Package | Role |
|---|---|
@ossy/schema |
Task id grammar, buildTaskCatalogEdges |
@ossy/platform |
Task run projection, MCP task-topology resource |
@ossy/observability |
Structured logging inside task run() handlers |
@ossy/media-tasks |
Example tasks surfaced in the catalog |
Status
Service tiles on the home page are placeholders (coming soon). Topology and run history are the supported v1 surfaces.