chore: keep widget sources only

This commit is contained in:
2026-09-17 23:29:09 +03:00
commit e0404617d2
125 changed files with 8935 additions and 0 deletions
+99
View File
@@ -0,0 +1,99 @@
# SHD MCP plugin package
This directory is the installable Codex plugin. It packages reusable SHD
workflow Skills and the official SHD MCP connection; it does not contain the
SHD backend or a second MCP server.
The plugin requires an SHD account authorized for the requested projects and
modules. Skills do not grant permissions or bypass server-side ACLs.
## Included workflows
- active projects with completion dates and statuses;
- project status and risk summaries;
- ProjectBase schema and data-quality audits;
- guarded task workflows;
- project file inspection and actions;
- finance and CRM read/audit workflows;
- finance account, balance, payment and settlement audits;
- analytics, comparisons, reports and task/proposal metrics;
- entity resolution and duplicate-candidate analysis;
- estimates, proposals and estimate-document-contract workflows;
- scheduling events, slots and booking positions;
- Wiki, notes, revisions and note-database workflows;
- discussions, channels, topics, messages and attachments;
- documents, templates, PDFs, revisions and public-link workflows;
- organizations, members, invitations, ACL and two-factor policies;
- notifications, preferences and read-state workflows;
- inventory, assets, stock, procurement and stocktake workflows;
- agent/controller diagnostics, tunnels, endpoints and runtime actions;
- status-page monitors, groups, history and incidents;
- realtime sessions, event cursors and operational activity;
- Terms documents, revisions, completeness and contract discussions;
- linked Gitea issues, labels, comments and attachments;
- safe bulk-change planning and validation rules.
When the connected MCP host supports MCP Apps UI, the 44 SHD render tools have
inline interactive widgets: active projects, module registers and specialized
Kanban, workload, timeline, funnel, dashboard, calendar, matrix, tree and
Project DB views. Each widget sorts or filters normalized records, shows
status/value fields, can load one selected record’s details where supported and
exposes only the write actions declared by its render metadata. A write always
requires an explicit form submission; destructive actions also require a
confirmation checkbox. After a successful mutation, the widget refreshes its
source list.
The same tools still return normal structured data for hosts that do not render
widgets.
The controller observability render tools share the versioned
`widgets/controller-observability/v1/` resource. It exposes controller device
inventory and profiles, normalized live states, server-computed binary/numeric
statistics, explicit native vs Influx/Grafana provenance, universal comparison
presets, complete controller topology, telemetry health and operation audit.
Expert-setting controls are enabled only for source-provided writable descriptors.
The active-projects source is `widgets/active-projects/source.html` with its
resource metadata in `widgets/active-projects/widget.json`. Before starting
the backend, generate the ignored runtime files with:
```sh
node scripts/generate-widget-artifacts.mjs
```
The backend then reads the generated `widgets/active-projects/v1/` artifact for
the `ui://shd/active-projects/v1.html` resource.
The standard module resources are generated from the single
`widgets/_shared/universal-widget.html` source by
`scripts/generate-widget-artifacts.mjs`. Each generated artifact still keeps
its own URI, manifest, SHA256 checksum and provenance note: this preserves
resource cache keys and module-scope registration while removing duplicated
HTML, bridge and action runtime code. The generator also injects the shared
`widgets/_shared/widget-theme.css` and `widgets/_shared/write-actions.css`
into the specialized `active-projects` and `controller-observability`
renderers, so every widget uses the same spacing, surfaces, controls, tables
and responsive rules without changing their data contracts. The generator
supports `--check` for a no-write consistency check. Module copy and fallback
tool configuration lives in the sibling
`widgets/_shared/universal-widget-config.json` source and is injected into
each universal standalone artifact by the generator. For an older template
that still contains the inline configuration block, run `--extract-config`
once and then `--migrate-template` once. The specialized applications remain
separate only where their interaction contracts differ. Render tools are
deliberately separate from list tools so data access and UI rendering remain
auditable.
The generated `widgets/*/v1/` directories are ignored and must not be
committed. A fresh checkout or deployment must run the generator before the
MCP backend starts; `--check` can then verify that the local runtime output is
current.
## MCP connection
The package points to `https://shd.xyz.su/mcp` and requests OAuth for that MCP
resource. The client stores the resulting authorization; this repository never
contains an access token.
If a client or SHD installation uses another official endpoint, change the
connection in `.mcp.json` in that client's secure configuration. Do not commit
tokens, cookies, client secrets or private host credentials.