feat: add controller observability widgets

This commit is contained in:
2026-09-11 20:06:04 +03:00
parent 11b97c7e86
commit 124429c1fb
98 changed files with 275 additions and 173 deletions
+7 -1
View File
@@ -33,7 +33,7 @@ modules. Skills do not grant permissions or bypass server-side ACLs.
- linked Gitea issues, labels, comments and attachments;
- safe bulk-change planning and validation rules.
When the connected MCP host supports MCP Apps UI, the 36 SHD render tools have
When the connected MCP host supports MCP Apps UI, the 42 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
@@ -45,6 +45,12 @@ 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 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 widget is versioned in `widgets/active-projects/v1/` with a
manifest, SHA256 checksum and source/provenance note. The SHD MCP backend reads
that artifact for the `ui://shd/active-projects/v1.html` resource.
@@ -1 +1 @@
6cf42e69f895b240c8a4018f74d9da3076dfaf3b6f2be9c1ced2417c89c86b79 index.html
9e82d5a6f3c35445b5d7400fd4b1aa8ba93c97141cf83a23e585ef051e3f0421 index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77307,
"gzipBytes": 20863,
"bytes": 77269,
"gzipBytes": 20605,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/acl-matrix/v1.html",
"sha256": "6cf42e69f895b240c8a4018f74d9da3076dfaf3b6f2be9c1ced2417c89c86b79"
"sha256": "9e82d5a6f3c35445b5d7400fd4b1aa8ba93c97141cf83a23e585ef051e3f0421"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
66f851bb8c7cef36c4b36539ce7a694780e5504c16fd5c63558ba796af5787c1 index.html
fb24651b2efe2b66c490b839d9c7c3c679c77c1f58f00d9bcfce199c522761ca index.html
@@ -74,7 +74,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 53689,
"gzipBytes": 15719,
"bytes": 53670,
"gzipBytes": 15487,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/activity/v1.html",
"sha256": "66f851bb8c7cef36c4b36539ce7a694780e5504c16fd5c63558ba796af5787c1"
"sha256": "fb24651b2efe2b66c490b839d9c7c3c679c77c1f58f00d9bcfce199c522761ca"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
4dbb42b0224b52f329e91212767d0d0b78ad228150d20dbf16c3841444378912 index.html
866750c8b84f0879d50035ce6fb4b58174a33c3dafdfa7ed72a9ef747c6d4146 index.html
@@ -2,4 +2,4 @@
This artifact is served by the SHD MCP backend as ui://shd/agents-health/v1.html.
The HTML is standalone, uses the MCP Apps bridge first, and keeps window.openai as a compatibility extension. It has no external script or network dependency. The widget provides a read-only agent and controller health overview.
The HTML is standalone, uses the MCP Apps bridge first, and keeps window.openai as a compatibility extension. It has no external script or network dependency. The widget provides a read-only agent health overview; controller topology and telemetry health are rendered by the controller-observability widget.
@@ -57,7 +57,8 @@
notifications:{ru:['Уведомления','Последние уведомления и события модулей.','Уведомление','Время','Источник'],en:['Notifications','Recent notifications and module events.','Notification','Time','Source']},
scheduling:{ru:['Расписание','Ближайшие события и записи из расписания.','Событие','Начало','Участник'],en:['Scheduling','Upcoming events and bookings from scheduling.','Event','Starts','Guest']},
inventory:{ru:['Склад','Складские позиции, остатки и статусы.','Позиция','Обновлено','Количество'],en:['Inventory','Stock items, quantities and statuses.','Item','Updated','Quantity']},
agents:{ru:['Агенты и контроллеры','Доступные агенты, контроллеры и их текущее состояние.','Агент или контроллер','Проверено','Тип'],en:['Agents & Controllers','Available agents, controllers and their current state.','Agent or controller','Checked','Type']},
agents:{ru:['Агенты','Доступные агент-хосты и их текущее состояние.','Агент','Проверено','Тип'],en:['Agents','Available agent hosts and their current state.','Agent','Checked','Type']},
'agents-health':{ru:['Агенты','Состояние агент-хостов, ошибки и последние проверки.','Агент','Проверено','Тип'],en:['Agents','Agent-host health, errors and latest checks.','Agent','Checked','Type']},
'status-page':{ru:['Status Page','Состояние доступности сервисов и мониторов.','Монитор','Проверено','Доступность'],en:['Status Page','Service availability and monitor state.','Monitor','Checked','Availability']},
'project-db':{ru:['Project DB','Каталог таблиц Project DB с просмотром схемы.','Таблица','Обновлено','Записей'],en:['Project DB','Project DB table catalog with schema details.','Table','Updated','Records']},
notes:{ru:['Заметки','Страницы Notes с поиском и просмотром содержимого.','Страница','Обновлено','Пространство'],en:['Notes','Notes pages with search and content details.','Page','Updated','Space']},
@@ -76,7 +77,7 @@
'finance-dashboard':{ru:['Финансовый дашборд','Суммы, статусы и документы финансового модуля.','Документ','Обновлено','Сумма'],en:['Finance dashboard','Finance amounts, statuses and documents.','Document','Updated','Amount']},
'proposal-approvals':{ru:['Согласования предложений','Очередь предложений и текущие approval-статусы.','Предложение','Обновлено','Approval'],en:['Proposal approvals','Proposal queue and current approval states.','Proposal','Updated','Approval']},
'documents-completeness':{ru:['Полнота документов','Score, ревизии и состояние Terms-документов.','Документ','Обновлено','Полнота'],en:['Documents completeness','Scores, revisions and Terms document state.','Document','Updated','Completeness']},
'agents-health':{ru:['Здоровье агентов','Состояние агентов и контроллеров.','Агент или контроллер','Проверено','Health'],en:['Agents health','Agent and controller health state.','Agent or controller','Checked','Health']},
'agents-health':{ru:['Здоровье агентов','Состояние агентов, ошибки и последние проверки.','Агент','Проверено','Health'],en:['Agents health','Agent health, errors and latest checks.','Agent','Checked','Health']},
'schedule-calendar':{ru:['Календарь расписания','Ближайшие записи, сгруппированные по дням.','Событие','День','Участник'],en:['Schedule calendar','Upcoming bookings grouped by day.','Event','Day','Guest']},
'acl-matrix':{ru:['ACL-матрица','Участники организации, роли и permissions.','Участник','Роль','Права'],en:['ACL matrix','Organization members, roles and permissions.','Member','Role','Permissions']},
'inventory-warnings':{ru:['Предупреждения склада','Низкие остатки и критические складские позиции.','Позиция','Обновлено','Остаток'],en:['Inventory warnings','Low-stock and critical inventory items.','Item','Updated','Stock']},
@@ -90,7 +91,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +110,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -133,7 +134,7 @@
function path(x,p){return String(p||'').split('.').reduce(function(v,k){return v&&typeof v==='object'?v[k]:undefined},x)}
function findArray(x,d){if(Array.isArray(x))return x;if(!obj(x)||d>2)return null;var keys=['items','records','bookings','upcoming_bookings','topics','notifications','pages','spaces','controllers','agents','user_agents','tables','monitors','data'];for(var i=0;i<keys.length;i++)if(Array.isArray(x[keys[i]]))return x[keys[i]];for(var k in x)if(Object.prototype.hasOwnProperty.call(x,k)){var a=findArray(x[k],d+1);if(a)return a}return null}
function flatten(a){var n=state.config.nested||state.config.nestedCollection;if(!n)return a;var out=[];a.forEach(function(parent){if(parent&&Array.isArray(parent[n]))parent[n].forEach(function(child){var x=Object.assign({},child);if(parent.name&&!x.group_name)x.group_name=parent.name;out.push(x)});else out.push(parent)});return out}
function list(x){var p=payload(x)||{};if(Array.isArray(p.items))return p.items;var ps=Array.isArray(state.config.paths)?state.config.paths:(Array.isArray(state.config.arrayPaths)?state.config.arrayPaths:[]),combined=[];for(var i=0;i<ps.length;i++){var c=path(p,ps[i]),a=Array.isArray(c)?c:findArray(c,0);if(a){if(state.config.combinePaths)combined=combined.concat(a);else return flatten(a)}}if(state.config.combinePaths&&combined.length)return flatten(combined);var d=p.data===undefined?p:p.data;return flatten(Array.isArray(d)?d:(findArray(d,0)||[]))}
function list(x){var p=payload(x)||{};if(Array.isArray(p.items))return p.items;var ps=Array.isArray(state.config.paths)?state.config.paths:(Array.isArray(state.config.arrayPaths)?state.config.arrayPaths:[]),combined=[];for(var i=0;i<ps.length;i++){var c=path(p,ps[i]),a=Array.isArray(c)?c:findArray(c,0);if(a){if(state.config.combinePaths)combined=combined.concat(a);else return flatten(a)}}if(state.config.combinePaths&&combined.length)return flatten(combined);if(ps.length)return[];var d=p.data===undefined?p:p.data;return flatten(Array.isArray(d)?d:(findArray(d,0)||[]))}
function str(x){if(x===null||x===undefined||x==='')return'';if(typeof x==='object'){try{return JSON.stringify(x)}catch(err){return''}}return String(x)}
function id(x,i){var keys=['id','key','code','uuid','page_id','topic_id','booking_id','item_id','monitor_id','table'];for(var n=0;n<keys.length;n++)if(x&&x[keys[n]]!==undefined&&x[keys[n]]!==null&&x[keys[n]]!=='')return str(x[keys[n]]);return String(i+1)}
function status(x){var v=x&&x.status;if(v&&typeof v==='object')v=v.name||v.label||v.code||v.id;return str(v||(x&&(x.state||x.phase||x.health))||'')}
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77313,
"gzipBytes": 20862,
"bytes": 77403,
"gzipBytes": 20585,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/agents-health/v1.html",
"sha256": "4dbb42b0224b52f329e91212767d0d0b78ad228150d20dbf16c3841444378912"
"sha256": "866750c8b84f0879d50035ce6fb4b58174a33c3dafdfa7ed72a9ef747c6d4146"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
1c788516523a822f97991af700a3e0acbc411b2bae16f93540d092053d235f7d index.html
b556fb2c97029bf075b97613dbd1e90cda5576c0f13be463c2becd3c0db2a0e6 index.html
@@ -2,4 +2,4 @@
This artifact is served by the SHD MCP backend as `ui://shd/agents/v1.html`.
The HTML is standalone, uses the MCP Apps bridge first, and keeps `window.openai` as a compatibility extension. It has no external script or network dependency. The widget provides agents and controllers with read-only status context.
The HTML is standalone, uses the MCP Apps bridge first, and keeps `window.openai` as a compatibility extension. It has no external script or network dependency. The widget provides agent entities with read-only status context; project controller topology is rendered by the separate controller-observability widget.
@@ -56,7 +56,7 @@
notifications:{ru:['Уведомления','Последние уведомления и события модулей.','Уведомление','Время','Источник'],en:['Notifications','Recent notifications and module events.','Notification','Time','Source']},
scheduling:{ru:['Расписание','Ближайшие события и записи из расписания.','Событие','Начало','Участник'],en:['Scheduling','Upcoming events and bookings from scheduling.','Event','Starts','Guest']},
inventory:{ru:['Склад','Складские позиции, остатки и статусы.','Позиция','Обновлено','Количество'],en:['Inventory','Stock items, quantities and statuses.','Item','Updated','Quantity']},
agents:{ru:['Агенты и контроллеры','Доступные агенты, контроллеры и их текущее состояние.','Агент или контроллер','Проверено','Тип'],en:['Agents & Controllers','Available agents, controllers and their current state.','Agent or controller','Checked','Type']},
agents:{ru:['Агенты','Доступные агенты и их текущее состояние.','Агент','Проверено','Тип'],en:['Agents','Available agents and their current state.','Agent','Checked','Type']},
'status-page':{ru:['Status Page','Состояние доступности сервисов и мониторов.','Монитор','Проверено','Доступность'],en:['Status Page','Service availability and monitor state.','Monitor','Checked','Availability']},
'project-db':{ru:['Project DB','Каталог таблиц Project DB с просмотром схемы.','Таблица','Обновлено','Записей'],en:['Project DB','Project DB table catalog with schema details.','Table','Updated','Records']},
notes:{ru:['Заметки','Страницы Notes с поиском и просмотром содержимого.','Страница','Обновлено','Пространство'],en:['Notes','Notes pages with search and content details.','Page','Updated','Space']}
@@ -66,7 +66,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'}
@@ -86,7 +86,7 @@
function path(x,p){return String(p||'').split('.').reduce(function(v,k){return v&&typeof v==='object'?v[k]:undefined},x)}
function findArray(x,d){if(Array.isArray(x))return x;if(!obj(x)||d>2)return null;var keys=['items','records','bookings','upcoming_bookings','topics','notifications','pages','spaces','controllers','agents','user_agents','tables','monitors','data'];for(var i=0;i<keys.length;i++)if(Array.isArray(x[keys[i]]))return x[keys[i]];for(var k in x)if(Object.prototype.hasOwnProperty.call(x,k)){var a=findArray(x[k],d+1);if(a)return a}return null}
function flatten(a){var n=state.config.nested||state.config.nestedCollection;if(!n)return a;var out=[];a.forEach(function(parent){if(parent&&Array.isArray(parent[n]))parent[n].forEach(function(child){var x=Object.assign({},child);if(parent.name&&!x.group_name)x.group_name=parent.name;out.push(x)});else out.push(parent)});return out}
function list(x){var p=payload(x)||{};if(Array.isArray(p.items))return p.items;var ps=Array.isArray(state.config.paths)?state.config.paths:(Array.isArray(state.config.arrayPaths)?state.config.arrayPaths:[]);for(var i=0;i<ps.length;i++){var c=path(p,ps[i]),a=Array.isArray(c)?c:findArray(c,0);if(a)return flatten(a)}var d=p.data===undefined?p:p.data;return flatten(Array.isArray(d)?d:(findArray(d,0)||[]))}
function list(x){var p=payload(x)||{};if(Array.isArray(p.items))return p.items;var ps=Array.isArray(state.config.paths)?state.config.paths:(Array.isArray(state.config.arrayPaths)?state.config.arrayPaths:[]);for(var i=0;i<ps.length;i++){var c=path(p,ps[i]),a=Array.isArray(c)?c:findArray(c,0);if(a)return flatten(a)}if(ps.length)return[];var d=p.data===undefined?p:p.data;return flatten(Array.isArray(d)?d:(findArray(d,0)||[]))}
function str(x){if(x===null||x===undefined||x==='')return'';if(typeof x==='object'){try{return JSON.stringify(x)}catch(err){return''}}return String(x)}
function id(x,i){var keys=['id','key','code','uuid','page_id','topic_id','booking_id','item_id','monitor_id','table'];for(var n=0;n<keys.length;n++)if(x&&x[keys[n]]!==undefined&&x[keys[n]]!==null&&x[keys[n]]!=='')return str(x[keys[n]]);return String(i+1)}
function status(x){var v=x&&x.status;if(v&&typeof v==='object')v=v.name||v.label||v.code||v.id;return str(v||(x&&(x.state||x.phase||x.health))||'')}
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 49150,
"gzipBytes": 14608,
"bytes": 49008,
"gzipBytes": 14343,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/agents/v1.html",
"sha256": "1c788516523a822f97991af700a3e0acbc411b2bae16f93540d092053d235f7d"
"sha256": "b556fb2c97029bf075b97613dbd1e90cda5576c0f13be463c2becd3c0db2a0e6"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
950024eb11a0b54dad7af732d24c44aba4796392ade66bbf6d5f96f9eeab3c35 index.html
c2fcb36329b0588f621577863f6b7549bf622732fd88d4bcead254bd68b6642c index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'airbase':{listTool:'shd_airbase_tables',listArgs:{},readTool:'shd_airbase_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 76344,
"gzipBytes": 20466,
"bytes": 76306,
"gzipBytes": 20462,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/airbase-preview/v1.html",
"sha256": "950024eb11a0b54dad7af732d24c44aba4796392ade66bbf6d5f96f9eeab3c35"
"sha256": "c2fcb36329b0588f621577863f6b7549bf622732fd88d4bcead254bd68b6642c"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
093206d0369e0ce87e779f72cd22aa626b5d27d65fb6e814513534d77d0164f6 index.html
4f331c4d7e295f080dfdbcd9360f860696817e0ccd2ffc0ca92f2790330faefb index.html
@@ -66,7 +66,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'airbase':{listTool:'shd_airbase_tables',listArgs:{},readTool:'shd_airbase_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'}
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 48220,
"gzipBytes": 14235,
"bytes": 48201,
"gzipBytes": 14230,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/airbase/v1.html",
"sha256": "093206d0369e0ce87e779f72cd22aa626b5d27d65fb6e814513534d77d0164f6"
"sha256": "4f331c4d7e295f080dfdbcd9360f860696817e0ccd2ffc0ca92f2790330faefb"
}
],
"license": "../../../../../LICENSE",
@@ -0,0 +1 @@
4fbbc0b0ffc135353bbfb16cad45d7bcb8a0340466b04869d080720b98f2dbba index.html
@@ -0,0 +1,5 @@
# Controller observability widget
This artifact is served by the SHD MCP backend as `ui://shd/controller-observability/v1.html`.
It is a standalone parameterized MCP App. The same UI contract renders controller history, series comparison, expert settings, topology, telemetry health and source audit modes.
@@ -0,0 +1,52 @@
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SHD controller observability</title>
<style>
:root{color-scheme:light dark;--bg:#f7f9fb;--panel:#edf1f5;--line:rgba(31,41,55,.16);--ink:#20242a;--muted:#69717c;--accent:#4f5967;--soft:rgba(79,89,103,.12);--good:#2f855a;--bad:#b42318;--button:#fff;--shadow:0 10px 26px rgba(31,41,55,.1)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shell{max-width:1100px;margin:auto;padding:18px}.card{padding:18px;border:1px solid var(--line);border-radius:17px;background:var(--panel);box-shadow:var(--shadow)}.eyebrow{color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}h1{margin:4px 0 4px;font-size:24px;line-height:1.15}.lede{margin:0;color:var(--muted)}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:16px 0 10px}.toolbar button,.toolbar select{border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:var(--bg);color:inherit}.toolbar button{cursor:pointer;font-weight:650}.toolbar .primary{border-color:var(--accent);background:var(--accent);color:var(--button)}.toolbar button:disabled{opacity:.58;cursor:wait}.toolbar select{min-width:150px}.status{min-height:22px;margin:4px 0;color:var(--muted)}.error{color:var(--bad)}.summary{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.pill{display:inline-block;padding:4px 8px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:12px}.pill.good{color:var(--good);background:rgba(47,133,90,.14)}.pill.bad{color:var(--bad);background:rgba(180,35,24,.12)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.panel{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.panel h2,.panel h3{margin:0 0 8px;font-size:16px}.panel p{margin:4px 0;color:var(--muted)}.chart{min-height:128px;margin:8px 0;padding:7px;border:1px solid var(--line);border-radius:10px;background:var(--bg);overflow:hidden}.chart svg{display:block;width:100%;height:115px}.chart-empty{display:grid;place-items:center;height:112px;color:var(--muted);font-size:12px}.axis{fill:var(--muted);font-size:10px}.line-a{fill:none;stroke:#4f7cac;stroke-width:2.2}.line-b{fill:none;stroke:#b56a3c;stroke-width:2.2}.table-wrap{max-height:460px;overflow:auto;border:1px solid var(--line);border-radius:11px;background:var(--bg)}table{width:100%;border-collapse:collapse;min-width:600px}th,td{padding:9px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-size:12px;z-index:1}tr:last-child td{border-bottom:0}.muted{color:var(--muted)}.empty{padding:24px;text-align:center;color:var(--muted)}.source-list{display:grid;gap:7px}.source-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border-radius:9px;background:var(--soft)}.setting{display:grid;grid-template-columns:minmax(130px,1fr) minmax(150px,1fr);gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.setting:last-child{border-bottom:0}.setting label{font-weight:650}.setting small{display:block;color:var(--muted);font-weight:400}.setting input,.setting select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--bg);color:inherit}.setting input:disabled,.setting select:disabled{opacity:.6}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.actions button{border:1px solid var(--accent);border-radius:8px;padding:8px 12px;background:var(--accent);color:var(--button);cursor:pointer}.actions button:disabled{opacity:.6;cursor:wait}@media(max-width:650px){.shell{padding:10px}.card{padding:14px}.setting{grid-template-columns:1fr}.table-wrap{margin:0 -2px}}
@media(prefers-color-scheme:dark){:root{--bg:#202225;--panel:#2b2e32;--line:#474c52;--ink:#eceff2;--muted:#9da3aa;--accent:#c7b07a;--soft:rgba(199,176,122,.17);--good:#83c995;--bad:#ff9a93;--button:#241f14;--shadow:0 10px 26px rgba(0,0,0,.34)}}
</style>
</head>
<body>
<main class="shell"><section class="card">
<div class="eyebrow">SHD MCP · controller observability</div>
<h1 id="title">Контроллеры</h1><p class="lede" id="lede"></p>
<div class="toolbar"><button id="refresh" class="primary" type="button">Обновить</button><select id="source" hidden><option value="auto">Автоматически</option><option value="native">Нативный источник</option><option value="influx">Influx/Grafana</option><option value="all">Все источники</option></select><select id="preset" hidden><option value="co2-ventilation">CO₂ → вентиляция</option><option value="temperature-heating">Температура → отопление</option><option value="humidity-ventilation">Влажность → вентиляция</option><option value="custom">Своя пара</option></select></div>
<div id="status" class="status" role="status" aria-live="polite"></div><div id="summary" class="summary"></div><div id="content"></div>
</section></main>
<script>
(function(){'use strict';
var T={ru:{history:['История контроллера','Временные точки и происхождение данных.'],compare:['Сравнение рядов','Универсальное сравнение временных рядов на общей шкале.'],settings:['Экспертные настройки','Поля доступны для записи только при явном разрешении источника.'],topology:['Топология контроллеров','Все контроллеры проекта, source inventory и устройства.'],health:['Здоровье telemetry','Состояние нативного источника и Influx/Grafana.'],audit:['Аудит операций','Команды, подтверждения и readback по source-контроллеру.'],refresh:'Обновить',loading:'Загрузка…',empty:'Нет данных для отображения.',records:'записей',native:'Нативный источник',influx:'Influx/Grafana',available:'доступен',unavailable:'недоступен',configured:'настроен',points:'точек',source:'Источник',time:'Время',value:'Значение',name:'Название',controller:'Контроллер',device:'Устройство',room:'Комната',type:'Тип',status:'Статус',error:'Ошибка',readonly:'Только чтение',save:'Сохранить',saved:'Настройки сохранены.',noWritable:'Нет разрешённых writable-параметров.',required:'Обязательное поле',unknown:'Неизвестный формат ответа.',fail:'Не удалось загрузить данные.',id:'ID',action:'Действие',requested:'Запрошено',actual:'Фактически',revision:'Ревизия',checked:'Проверено'},en:{history:['Controller history','Time-series points and data provenance.'],compare:['Series comparison','Universal time-series comparison on one shared scale.'],settings:['Expert settings','Fields are writable only when the source explicitly allows it.'],topology:['Controller topology','All project controllers, source inventory and devices.'],health:['Telemetry health','Native-source and Influx/Grafana status.'],audit:['Operation audit','Commands, confirmations and readback for the source controller.'],refresh:'Refresh',loading:'Loading…',empty:'No data to display.',records:'records',native:'Native source',influx:'Influx/Grafana',available:'available',unavailable:'unavailable',configured:'configured',points:'points',source:'Source',time:'Time',value:'Value',name:'Name',controller:'Controller',device:'Device',room:'Room',type:'Type',status:'Status',error:'Error',readonly:'Read-only',save:'Save',saved:'Settings saved.',noWritable:'No writable parameters are allowed.',required:'Required field',unknown:'Unknown response format.',fail:'Could not load data.',id:'ID',action:'Action',requested:'Requested',actual:'Actual',revision:'Revision',checked:'Checked'}};
var state={mode:'history',config:{},data:null,busy:false,lang:(String((window.openai&&window.openai.locale)||document.documentElement.lang||'ru').toLowerCase().indexOf('en')===0?'en':'ru')};var pending=new Map(),nextId=1;
var el={title:document.getElementById('title'),lede:document.getElementById('lede'),refresh:document.getElementById('refresh'),source:document.getElementById('source'),preset:document.getElementById('preset'),status:document.getElementById('status'),summary:document.getElementById('summary'),content:document.getElementById('content')};
function t(k){return(T[state.lang]&&T[state.lang][k])||k}function obj(x){return x&&typeof x==='object'&&!Array.isArray(x)}function text(x){if(x===null||x===undefined||x==='')return'—';if(typeof x==='object')try{return JSON.stringify(x)}catch(e){return'—'}return String(x)}function esc(x){return text(x).replace(/[&<>"']/g,function(c){return({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'})[c]})}function unwrap(x){var p=x&&x.structuredContent?x.structuredContent:(x&&x.toolOutput?x.toolOutput:x);if(p&&p.isError)throw Error(t('fail'));return p||{}}
function merge(a,b){return Object.assign({},a||{},b||{})}function setStatus(v,bad){el.status.textContent=v||'';el.status.className=bad?'status error':'status'}function pill(v,kind){return '<span class="pill '+(kind||'')+'">'+esc(v)+'</span>'}function clear(){el.content.replaceChildren();el.summary.replaceChildren()}
function rpc(method,params){var o=window.openai;if(method==='tools/call'&&o&&typeof o.callTool==='function')return Promise.resolve(o.callTool(params.name,params.arguments||{}));var id=nextId++;window.parent.postMessage({jsonrpc:'2.0',id:id,method:method,params:params||{}},'*');return new Promise(function(resolve,reject){var timeout=setTimeout(function(){pending.delete(id);reject(Error(t('fail')))},15000);pending.set(id,{resolve:resolve,reject:reject,timeout:timeout})})}
function metaFrom(p){var m=obj(p.meta)?p.meta:{},w=obj(m.widget)?m.widget:{};state.mode=String(w.mode||m.mode||state.mode||'history');state.config=merge(state.config,w);state.config.sourceArgs=obj(w.sourceArgs)?w.sourceArgs:(obj(m.sourceArgs)?m.sourceArgs:{});return m}
function dataFrom(p){var source=unwrap(p);metaFrom(source);return source.meta&&source.meta.widget&&source.data!==undefined?source.data:source}
function labels(){var heading=T[state.lang][state.mode]||T[state.lang].history;el.title.textContent=heading[0];el.lede.textContent=heading[1];el.refresh.textContent=t('refresh');el.source.hidden=!['history','compare','health'].includes(state.mode);el.preset.hidden=state.mode!=='compare';if(state.mode==='compare'&&state.config.preset)el.preset.value=state.config.preset}
function summary(items){el.summary.replaceChildren();(items||[]).forEach(function(x){var s=document.createElement('span');s.className='pill '+(x.kind||'');s.textContent=x.value;el.summary.append(s)})}
function chart(points,cls){var nums=(Array.isArray(points)?points:[]).map(function(p){return Number(p&&p.value)}).filter(function(v){return Number.isFinite(v)});if(!nums.length)return '<div class="chart-empty">'+esc(t('empty'))+'</div>';var w=700,h=112,pad=18,min=Math.min.apply(null,nums),max=Math.max.apply(null,nums);if(min===max){min-=1;max+=1}var coords=nums.map(function(v,i){var x=pad+(w-pad*2)*(nums.length===1?.5:i/(nums.length-1));var y=h-pad-(h-pad*2)*(v-min)/(max-min);return x.toFixed(1)+','+y.toFixed(1)}).join(' ');return '<svg viewBox="0 0 '+w+' '+h+'" role="img" aria-label="'+esc(t('value'))+'"><polyline class="'+(cls||'line-a')+'" points="'+coords+'"/><text class="axis" x="4" y="14">'+esc(String(max))+'</text><text class="axis" x="4" y="'+(h-3)+'">'+esc(String(min))+'</text></svg>'}
function card(title,body){var n=document.createElement('section');n.className='panel';var h=document.createElement('h2');h.textContent=title;n.append(h);if(typeof body==='string')n.insertAdjacentHTML('beforeend',body);else if(body) n.append(body);return n}
function table(headers,rows){var wrap=document.createElement('div');wrap.className='table-wrap';var tab=document.createElement('table'),thead=document.createElement('thead'),tr=document.createElement('tr');headers.forEach(function(h){var th=document.createElement('th');th.textContent=h;tr.append(th)});thead.append(tr);tab.append(thead);var tb=document.createElement('tbody');(rows||[]).forEach(function(row){var r=document.createElement('tr');row.forEach(function(v){var td=document.createElement('td');td.textContent=text(v);r.append(td)});tb.append(r)});tab.append(tb);wrap.append(tab);return wrap}
function renderHistory(d){var points=Array.isArray(d.points)?d.points:[];var sources=Array.isArray(d.history_sources)?d.history_sources:[];summary([{value:points.length+' '+t('points')},{value:t('source')+': '+text(d.selected_history_source||'—'),kind:d.selected_history_source?'good':'bad'},{value:t('records')+': '+((d.commands||[]).length)}]);var box=document.createElement('div');box.className='grid';box.append(card(t('source'),'<div class="source-list">'+sources.map(function(s){return '<div class="source-row"><span>'+esc(s.name==='native'?t('native'):t('influx'))+'</span><span>'+pill(s.available?t('available'):t('unavailable'),s.available?'good':'bad')+'</span></div>'}).join('')+'</div>'));var cp=card(t('value'));cp.insertAdjacentHTML('beforeend','<div class="chart">'+chart(points,'line-a')+'</div>');box.append(cp);el.content.append(box);if(points.length)el.content.append(table([t('time'),t('value'),t('name'),t('source')],points.slice(-80).reverse().map(function(p){return[p.time,p.value,p.name||p.topic||p.channel,d.telemetry&&d.telemetry.provider||d.selected_history_source]})));else el.content.append(document.createTextNode(t('empty')))}
function renderCompare(d){var list=Array.isArray(d.series)?d.series:[];summary([{value:(d.preset||'custom')},{value:list.length+' '+t('records')},{value:text(d.from)+' → '+text(d.to)}]);var grid=document.createElement('div');grid.className='grid';list.forEach(function(s,i){var source=s.selected_history_source||s.history_source||'';var sourceLabel=source==='native'?t('native'):(source==='influx'?t('influx'):text(source||'—'));var p=card(s.label||s.id||t('records'),'<p>'+esc(s.controller||'')+' · '+esc(s.item_id||'')+' '+pill(sourceLabel,source?'':'bad')+' '+pill(s.available?t('available'):text(s.error_code||t('unavailable')),s.available?'good':'bad')+'</p><div class="chart">'+chart(s.points,i%2?'line-b':'line-a')+'</div>');grid.append(p)});el.content.append(grid);if(!list.length)el.content.append(document.createTextNode(t('empty')))}
function inputFor(s){var wrap=document.createElement('div');wrap.className='setting';var label=document.createElement('label');label.textContent=text(s.name||s.key);if(s.description){var small=document.createElement('small');small.textContent=s.description;label.append(small)}var value=s.current_value;var input;if(Array.isArray(s.enum_values)&&s.enum_values.length){input=document.createElement('select');s.enum_values.forEach(function(v){var o=document.createElement('option');o.value=String(v);o.textContent=String(v);input.append(o)});input.value=value===null||value===undefined?'':String(value)}else if(String(s.value_type||'').toLowerCase()==='boolean'){input=document.createElement('input');input.type='checkbox';input.checked=value===true||value===1||value==='1'}else{input=document.createElement('input');input.type=['number','integer'].includes(String(s.value_type||'').toLowerCase())?'number':'text';if(s.min!==null&&s.min!==undefined)input.min=s.min;if(s.max!==null&&s.max!==undefined)input.max=s.max;if(s.step!==null&&s.step!==undefined)input.step=s.step;input.value=value===null||value===undefined?'':String(value)}input.dataset.key=s.key;input.disabled=!s.writable;wrap.append(label,input);if(!s.writable){var ro=document.createElement('div');ro.className='muted';ro.textContent=t('readonly');wrap.append(ro)}return wrap}
function renderSettings(d){var settings=Array.isArray(d.settings)?d.settings:[];summary([{value:settings.length+' '+t('records')},{value:t('revision')+': '+text(d.source_revision)}]);var form=document.createElement('div');form.className='panel';settings.forEach(function(s){form.append(inputFor(s))});var actions=document.createElement('div');actions.className='actions';var btn=document.createElement('button');btn.type='button';btn.textContent=t('save');btn.disabled=!settings.some(function(s){return s.writable});btn.onclick=function(){saveSettings(form,settings,d)};actions.append(btn);form.append(actions);if(!settings.some(function(s){return s.writable})){var note=document.createElement('p');note.className='muted';note.textContent=t('noWritable');form.append(note)}el.content.append(form)}
function saveSettings(form,settings,d){var changes={};settings.forEach(function(s){if(!s.writable)return;var input=form.querySelector('[data-key="'+CSS.escape(String(s.key))+'"]');if(!input)return;var v=input.type==='checkbox'?input.checked:input.value;if(['number','integer'].includes(String(s.value_type||'').toLowerCase())&&v!=='')v=Number(v);changes[s.key]=v});if(!Object.keys(changes).length)return;var a=merge(state.config.sourceArgs,{settings:changes,expected_revision:d.source_revision||'',idempotency_key:'mcp-widget-'+Date.now()});rpc('tools/call',{name:state.config.writeTool||'shd_update_controller_expert_settings',arguments:a}).then(function(){setStatus(t('saved'),false);refresh()}).catch(function(e){setStatus(e.message||t('fail'),true)})}
function renderTopology(d){var controllers=Array.isArray(d.controllers)?d.controllers:[],items=Array.isArray(d.items)?d.items:[];summary([{value:controllers.length+' '+t('controller')},{value:items.length+' '+t('records')}]);el.content.append(table([t('controller'),t('type'),t('records'),t('revision')],controllers.map(function(c){var role=c.controller_role==='source'?t('source'):t('controller');return[c.controller_name||c.controller,role+' · '+(c.controller_type||'—'),(c.items||[]).length,c.source_revision]})));el.content.append(table([t('name'),t('controller'),t('room'),t('type')],items.slice(0,500).map(function(i){return[i.name||i.id,i.source_controller_id,i.room||i.room_name,i.type||i.devclass]})))}
function renderHealth(d){var list=Array.isArray(d.controllers)?d.controllers:[d];summary([{value:list.length+' '+t('controller')}]);var grid=document.createElement('div');grid.className='grid';list.forEach(function(c){var sources=Array.isArray(c.sources)?c.sources:[];grid.append(card(c.controller||c.source_controller_id||t('controller'),'<p>'+pill(c.status||'—',c.status==='available'?'good':'')+'</p><div class="source-list">'+sources.map(function(s){return '<div class="source-row"><span>'+esc(s.name==='native'?t('native'):t('influx'))+'</span><span>'+pill(s.available?t('available'):(s.configured?t('configured'):t('unavailable')),s.available?'good':(s.configured?'':'bad'))+'</span></div>'}).join('')+'</div>'))});el.content.append(grid)}
function renderAudit(d){var rows=Array.isArray(d.audit)?d.audit:(Array.isArray(d.commands)?d.commands:[]);summary([{value:rows.length+' '+t('records')}]);el.content.append(rows.length?table([t('time'),t('device'),t('action'),t('status'),t('requested'),t('actual')],rows.map(function(x){return[x.created_at,x.item_id,x.action,x.status,text(x.requested_value),text(x.actual_readback)]})):document.createTextNode(t('empty')))}
function render(){clear();labels();var d=state.data||{};try{if(state.mode==='history')renderHistory(d);else if(state.mode==='compare')renderCompare(d);else if(state.mode==='settings')renderSettings(d);else if(state.mode==='topology')renderTopology(d);else if(state.mode==='health')renderHealth(d);else if(state.mode==='audit')renderAudit(d);else el.content.append(document.createTextNode(t('unknown')))}catch(e){setStatus(e.message||t('unknown'),true)}}
function apply(x){var p=unwrap(x);state.data=dataFrom(p);setStatus('',false);render()}
function refresh(){if(state.busy)return;var args=merge(state.config.listArgs,state.config.sourceArgs);if(state.mode!=='settings'&&el.source.value&&['history','compare','health'].includes(state.mode))args.source=el.source.value;if(state.mode==='compare'){args.preset=el.preset.value;var groups={"co2-ventilation":["co2","ventilation"],"temperature-heating":["temperature","heating"],"humidity-ventilation":["humidity","ventilation"]}[args.preset];if(groups&&Array.isArray(args.series)){var selected=args.series.filter(function(s){return groups.includes(String(s.group||'').toLowerCase())});if(selected.length)args.series=selected}}var tool=state.config.dataTool;if(!tool){setStatus(t('unknown'),true);return}state.busy=true;el.refresh.disabled=true;setStatus(t('loading'),false);rpc('tools/call',{name:tool,arguments:args}).then(apply).catch(function(e){setStatus(e.message||t('fail'),true)}).finally(function(){state.busy=false;el.refresh.disabled=false})}
el.source.onchange=refresh;el.preset.onchange=refresh;el.refresh.onclick=refresh;
window.addEventListener('message',function(ev){if(ev.source!==window.parent)return;var m=ev.data||{};if(m.id!==undefined&&pending.has(m.id)){var q=pending.get(m.id);pending.delete(m.id);clearTimeout(q.timeout);if(m.error)q.reject(Error(m.error.message||t('fail')));else q.resolve(m.result);return}if(m.method==='ui/notifications/tool-input'||m.method==='ui/notifications/tool-result'){try{apply(m.params&&m.params.structuredContent||m.params||{})}catch(e){setStatus(e.message||t('fail'),true)}}});
rpc('ui/initialize',{protocolVersion:'2025-11-25',appInfo:{name:'SHD controller observability',title:'SHD MCP',version:'1.0.0',websiteUrl:'https://shd.xyz.su'},appCapabilities:{}}).then(function(){window.parent.postMessage({jsonrpc:'2.0',method:'ui/notifications/initialized',params:{}},'*')}).catch(function(){});var initial=window.openai&&window.openai.toolOutput||window.openai&&window.openai.toolInput;if(initial){try{apply(initial)}catch(e){setStatus(e.message||t('fail'),true)}}else{refresh()}
}());
</script>
</body>
</html>
@@ -0,0 +1,20 @@
{
"schemaVersion": 1,
"name": "shd-controller-observability",
"version": "1.0.0",
"resources": [
{
"file": "index.html",
"bytes": 22419,
"gzipBytes": 7748,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/controller-observability/v1.html",
"sha256": "4fbbc0b0ffc135353bbfb16cad45d7bcb8a0340466b04869d080720b98f2dbba"
}
],
"license": "../../../../../LICENSE",
"source": {
"repository": "https://github.com/bulava92/shd-mcp-plugin",
"path": "plugins/shd-mcp-plugin/widgets/controller-observability/v1/index.html"
}
}
@@ -1 +1 @@
a1c67b2e401aea9f4f5d2534c4a273a93172de9f1d0942d1b82a0e1be3005251 index.html
e431183d3b959601687632ea36b207fc88c85f88c69c2d3abdd342be411db50c index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77307,
"gzipBytes": 20863,
"bytes": 77269,
"gzipBytes": 20604,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/crm-funnel/v1.html",
"sha256": "a1c67b2e401aea9f4f5d2534c4a273a93172de9f1d0942d1b82a0e1be3005251"
"sha256": "e431183d3b959601687632ea36b207fc88c85f88c69c2d3abdd342be411db50c"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
c4dcd567b0ab23eb9de1803c111ec5f386563edef334549e3a63489feb2e197b index.html
d051f38e8d81151a3269d16effae3bca502527680a106c7f9b9d7942b9f7446c index.html
@@ -66,7 +66,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'}
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 49160,
"gzipBytes": 14606,
"bytes": 49141,
"gzipBytes": 14385,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/discussions/v1.html",
"sha256": "c4dcd567b0ab23eb9de1803c111ec5f386563edef334549e3a63489feb2e197b"
"sha256": "d051f38e8d81151a3269d16effae3bca502527680a106c7f9b9d7942b9f7446c"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
e79d43eb1737d8abe02a7d5c0407def0dbda9eea7af4808130b775e79ce6f42c index.html
6964112ce1ae2ec25a736709bc00ad0a7335177ec98547ad48d672834e491760 index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_pdf_scheme_editor_documents',readTool:'shd_get_pdf_scheme_editor_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77367,
"gzipBytes": 20622,
"bytes": 77329,
"gzipBytes": 20618,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/documents-completeness/v1.html",
"sha256": "e79d43eb1737d8abe02a7d5c0407def0dbda9eea7af4808130b775e79ce6f42c"
"sha256": "6964112ce1ae2ec25a736709bc00ad0a7335177ec98547ad48d672834e491760"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
56806509484936b20027d3ddf8aa0998765ce2398292009e6607d0a0e4d61c47 index.html
e410bd6143c07e677ef23ede0be1d63e17587bacaf16732334701b4a43399e5d index.html
@@ -74,7 +74,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 53686,
"gzipBytes": 15718,
"bytes": 53667,
"gzipBytes": 15488,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/files/v1.html",
"sha256": "56806509484936b20027d3ddf8aa0998765ce2398292009e6607d0a0e4d61c47"
"sha256": "e410bd6143c07e677ef23ede0be1d63e17587bacaf16732334701b4a43399e5d"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
b4cd475b62a373dcb338bab808ffb5be5646890577501a65dd8a57b5c96643e3 index.html
20231dba4f8d99b89d33bfe8a9247d3d8728d17fd75bf07cd10ed9950ad0913c index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77321,
"gzipBytes": 20861,
"bytes": 77283,
"gzipBytes": 20601,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/finance-dashboard/v1.html",
"sha256": "b4cd475b62a373dcb338bab808ffb5be5646890577501a65dd8a57b5c96643e3"
"sha256": "20231dba4f8d99b89d33bfe8a9247d3d8728d17fd75bf07cd10ed9950ad0913c"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
52848b605f3b83dac5c4277ba33e8b7c693db16453a09b989404bc1a107f9edc index.html
c761b817f26067ed2697d6c5da3f99a0e962dbf920a1c13ff24165dde910af7c index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77309,
"gzipBytes": 20862,
"bytes": 77271,
"gzipBytes": 20602,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/gitea-board/v1.html",
"sha256": "52848b605f3b83dac5c4277ba33e8b7c693db16453a09b989404bc1a107f9edc"
"sha256": "c761b817f26067ed2697d6c5da3f99a0e962dbf920a1c13ff24165dde910af7c"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
dec0da437c2f02912c9cf12e16de4b6fb81165eb577bed11cda1643df98f456e index.html
dac317642f83f1a2599fff7041e340f4fdc5620733baaaa426a69edf5d9c7442 index.html
@@ -74,7 +74,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 53686,
"gzipBytes": 15717,
"bytes": 53667,
"gzipBytes": 15487,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/gitea/v1.html",
"sha256": "dec0da437c2f02912c9cf12e16de4b6fb81165eb577bed11cda1643df98f456e"
"sha256": "dac317642f83f1a2599fff7041e340f4fdc5620733baaaa426a69edf5d9c7442"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
0822a8596548a6f729c4ef236d0125b810eb94c26e5e42610987c4966fa707aa index.html
ea7d3bc74188e3adc144c07404cd6a26779b42d4cc3fb6ffc83f113fb64288bc index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77323,
"gzipBytes": 20864,
"bytes": 77285,
"gzipBytes": 20606,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/inventory-warnings/v1.html",
"sha256": "0822a8596548a6f729c4ef236d0125b810eb94c26e5e42610987c4966fa707aa"
"sha256": "ea7d3bc74188e3adc144c07404cd6a26779b42d4cc3fb6ffc83f113fb64288bc"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
4b57d307670bdd1a2f2d445ebd7a01dd794f2d14e8024ac439246999edf1fac9 index.html
fda7797f99a07415ecc4879f44a04c936953c055f79bdee2e1f3e88513fdff7d index.html
@@ -66,7 +66,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'}
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 49156,
"gzipBytes": 14607,
"bytes": 49137,
"gzipBytes": 14388,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/inventory/v1.html",
"sha256": "4b57d307670bdd1a2f2d445ebd7a01dd794f2d14e8024ac439246999edf1fac9"
"sha256": "fda7797f99a07415ecc4879f44a04c936953c055f79bdee2e1f3e88513fdff7d"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
84c78054e0b25a9c319f93b513a77b47f78e8c402114012c3ce91f8037b08983 index.html
ca76aa4e10fe1a5f2d167fe8876a3d009aca9a2e386cde5f8743ede370272221 index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77307,
"gzipBytes": 20865,
"bytes": 77269,
"gzipBytes": 20607,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/notes-tree/v1.html",
"sha256": "84c78054e0b25a9c319f93b513a77b47f78e8c402114012c3ce91f8037b08983"
"sha256": "ca76aa4e10fe1a5f2d167fe8876a3d009aca9a2e386cde5f8743ede370272221"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
ec952d1e39e53c743652156c513b9bccb7438754cf0b9b48f9df4d76396f84da index.html
cb4881dca8cf3f999b27a540239f9a4d17204bc4ba5e65a4bf2f5ed0e7810e23 index.html
@@ -66,7 +66,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'}
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 49148,
"gzipBytes": 14606,
"bytes": 49129,
"gzipBytes": 14384,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/notes/v1.html",
"sha256": "ec952d1e39e53c743652156c513b9bccb7438754cf0b9b48f9df4d76396f84da"
"sha256": "cb4881dca8cf3f999b27a540239f9a4d17204bc4ba5e65a4bf2f5ed0e7810e23"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
4cb2d86694223050e0c61e1e9b93a4cba8cd7a3d5090a7d8a44bae4289e146dd index.html
c19707e63a55e05ee4000f6a3e0b4ea9e5955623899ed21213e2a6cb4e6d3c74 index.html
@@ -66,7 +66,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'}
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 49164,
"gzipBytes": 14606,
"bytes": 49145,
"gzipBytes": 14386,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/notifications/v1.html",
"sha256": "4cb2d86694223050e0c61e1e9b93a4cba8cd7a3d5090a7d8a44bae4289e146dd"
"sha256": "c19707e63a55e05ee4000f6a3e0b4ea9e5955623899ed21213e2a6cb4e6d3c74"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
8298658cf54b615bbd2bcb80a8de6614589c643983df1712e0bf7681e3a41578 index.html
333f9d1635a1bba89ae8adf4af8c29b011df20cd781e434a42f9c58e413e8999 index.html
@@ -74,7 +74,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 53694,
"gzipBytes": 15719,
"bytes": 53675,
"gzipBytes": 15488,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/organizations/v1.html",
"sha256": "8298658cf54b615bbd2bcb80a8de6614589c643983df1712e0bf7681e3a41578"
"sha256": "333f9d1635a1bba89ae8adf4af8c29b011df20cd781e434a42f9c58e413e8999"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
0dbd016e30afb80069902df828c3bb7f7ac13afe548adcf9a0a492013b31504c index.html
9eb94e95c1a5ea11d07c5aab693d0d89b7c2a728958b8b49905dc252ab270b23 index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'airbase':{listTool:'shd_airbase_tables',listArgs:{},readTool:'shd_airbase_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77318,
"gzipBytes": 20618,
"bytes": 77280,
"gzipBytes": 20615,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/pdf-scheme-editor-progress/v1.html",
"sha256": "0dbd016e30afb80069902df828c3bb7f7ac13afe548adcf9a0a492013b31504c"
"sha256": "9eb94e95c1a5ea11d07c5aab693d0d89b7c2a728958b8b49905dc252ab270b23"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
d1a29380759e80afd5b7c9f9ee90a99c393cbf20f177c4b05596609b7b93ed3f index.html
2f82b255a8d31a427246cdd96685c78917dd32b611ae52b96656780d60aa97df index.html
@@ -74,7 +74,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'airbase':{listTool:'shd_airbase_tables',listArgs:{},readTool:'shd_airbase_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 53686,
"gzipBytes": 15502,
"bytes": 53667,
"gzipBytes": 15498,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/pdf-scheme-editor/v1.html",
"sha256": "d1a29380759e80afd5b7c9f9ee90a99c393cbf20f177c4b05596609b7b93ed3f"
"sha256": "2f82b255a8d31a427246cdd96685c78917dd32b611ae52b96656780d60aa97df"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
6fbc95666de520a2e2b950940a2952a8a071d2bfd9e79192a24745b179fb43f2 index.html
05013506f60107feee867344cd1409cdc4b224a16cbfb2c1705cd7c5fce7b8f6 index.html
@@ -74,7 +74,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 53697,
"gzipBytes": 15718,
"bytes": 53678,
"gzipBytes": 15489,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/project-overview/v1.html",
"sha256": "6fbc95666de520a2e2b950940a2952a8a071d2bfd9e79192a24745b179fb43f2"
"sha256": "05013506f60107feee867344cd1409cdc4b224a16cbfb2c1705cd7c5fce7b8f6"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
ce8a276d709ec4611d6ec9266830135bc71f25b9cd2784aa305ddc87fab74d6d index.html
ab54e4d87f941ca828321b7a510ba79616129e735ecfc3579ee995ab4572aee5 index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77319,
"gzipBytes": 20866,
"bytes": 77281,
"gzipBytes": 20609,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/project-timeline/v1.html",
"sha256": "ce8a276d709ec4611d6ec9266830135bc71f25b9cd2784aa305ddc87fab74d6d"
"sha256": "ab54e4d87f941ca828321b7a510ba79616129e735ecfc3579ee995ab4572aee5"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
10e6152040a2077a7412a46aff25747f23469ad12d75f10bb95ac498c9de4ca4 index.html
1fa0d0b933380d977cfc3406353b8a397b33419c89b247a311bb61fa9c6648bd index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77323,
"gzipBytes": 20861,
"bytes": 77285,
"gzipBytes": 20602,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/proposal-approvals/v1.html",
"sha256": "10e6152040a2077a7412a46aff25747f23469ad12d75f10bb95ac498c9de4ca4"
"sha256": "1fa0d0b933380d977cfc3406353b8a397b33419c89b247a311bb61fa9c6648bd"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
9b63bc5e94a30ac026f85ab3277b41c76e394c60dd6ae7618dc5d6c84370b7fb index.html
0f06b0c8063ba0beebedddd91c9bdf389e6f4678e1d8351b33f2fde30ef99ffb index.html
@@ -74,7 +74,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 53690,
"gzipBytes": 15718,
"bytes": 53671,
"gzipBytes": 15488,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/proposals/v1.html",
"sha256": "9b63bc5e94a30ac026f85ab3277b41c76e394c60dd6ae7618dc5d6c84370b7fb"
"sha256": "0f06b0c8063ba0beebedddd91c9bdf389e6f4678e1d8351b33f2fde30ef99ffb"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
2eea68cf507df47893a7d30ffda24a01d096f843c806788ae8185b03b56fce53 index.html
efdd435fee5da454c651780eb41f10c5148b8eaf596b9e03f4d735ded7ae6761 index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77321,
"gzipBytes": 20862,
"bytes": 77283,
"gzipBytes": 20604,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/schedule-calendar/v1.html",
"sha256": "2eea68cf507df47893a7d30ffda24a01d096f843c806788ae8185b03b56fce53"
"sha256": "efdd435fee5da454c651780eb41f10c5148b8eaf596b9e03f4d735ded7ae6761"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
6b45cb2e14e1a0f3a3d93fd9e5e092fbfed6fb48de1a2f806972eb0393b51b83 index.html
9ba2aae33ed180a88ac69f21b88c9ae89a90596fb60523803308eb9d4e068b76 index.html
@@ -66,7 +66,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'}
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 49158,
"gzipBytes": 14607,
"bytes": 49139,
"gzipBytes": 14383,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/scheduling/v1.html",
"sha256": "6b45cb2e14e1a0f3a3d93fd9e5e092fbfed6fb48de1a2f806972eb0393b51b83"
"sha256": "9ba2aae33ed180a88ac69f21b88c9ae89a90596fb60523803308eb9d4e068b76"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
afe0aeff1cbe3827c42b26ec5afb69603d5dac7ada3fbe844770828cde8a652e index.html
1db44caa4e53373c0b03a15b7389c49988a3601c5a4d7ec01c75ae1b27e68d9c index.html
@@ -66,7 +66,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'}
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 49160,
"gzipBytes": 14604,
"bytes": 49141,
"gzipBytes": 14381,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/status-page/v1.html",
"sha256": "afe0aeff1cbe3827c42b26ec5afb69603d5dac7ada3fbe844770828cde8a652e"
"sha256": "1db44caa4e53373c0b03a15b7389c49988a3601c5a4d7ec01c75ae1b27e68d9c"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
59b04fd7164b1ea92c5c5e099116236142f97395857fa47b1d16a4ca7cc31b6d index.html
87aa487aceb6b4310d69c55f1f706189c0f0689ff2c5a91c8c11bec9529d60e9 index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77309,
"gzipBytes": 20862,
"bytes": 77271,
"gzipBytes": 20604,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/task-kanban/v1.html",
"sha256": "59b04fd7164b1ea92c5c5e099116236142f97395857fa47b1d16a4ca7cc31b6d"
"sha256": "87aa487aceb6b4310d69c55f1f706189c0f0689ff2c5a91c8c11bec9529d60e9"
}
],
"license": "../../../../../LICENSE",
@@ -1 +1 @@
531968b63860589756f0b72f6e97c86f96507716e5b30b01a47bd4da9c068f02 index.html
c78853304a6af3600d9ab331604de3f5b1a0fef7e0c63d2031a29e9a5532eaf8 index.html
@@ -90,7 +90,7 @@
notifications:{listTool:'shd_list_notifications',listArgs:{limit:50,offset:0},paths:['data'],sort:'desc'},
scheduling:{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],sort:'asc'},
inventory:{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',paths:['data'],sort:'desc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.controllers','data.agents','data.user_agents','data'],sort:'asc'},
agents:{listTool:'shd_agents_overview',listArgs:{},paths:['data.agents','data.user_agents','data'],sort:'asc'},
'status-page':{listTool:'shd_get_status_page_monitors',listArgs:{environment:'dev'},readTool:'shd_get_status_page_monitor_history',detailKey:'monitor_id',detailArgs:{limit:20},paths:['data'],nested:'monitors',sort:'asc'},
'project-db':{listTool:'shd_project_db_tables',listArgs:{},readTool:'shd_project_db_schema',detailKey:'table',paths:['data.tables','data'],contextRequired:true,sort:'asc'},
notes:{listTool:'shd_list_note_pages',listArgs:{limit:100},readTool:'shd_get_note_page',detailKey:'page_id',paths:['data'],sort:'desc'},
@@ -109,7 +109,7 @@
'finance-dashboard':{listTool:'shd_list_finance_documents',listArgs:{limit:100},paths:['data'],view:'dashboard',sort:'desc'},
'proposal-approvals':{listTool:'shd_list_proposals',listArgs:{limit:100},readTool:'shd_get_proposal_approval',detailKey:'proposal_id',detailSourceArgs:[],paths:['data'],view:'approval',sort:'desc'},
'documents-completeness':{listTool:'shd_list_terms_documents',readTool:'shd_get_terms_document_completeness',detailKey:'document_id',detailSourceArgs:['project_code'],paths:['data'],view:'completeness',contextRequired:true,contextKeys:['project_code'],sort:'desc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.controllers','data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'agents-health':{listTool:'shd_agents_overview',paths:['data.agents','data.user_agents','data'],view:'health',sort:'asc'},
'schedule-calendar':{listTool:'shd_get_scheduling_overview',listArgs:{limit:100},readTool:'shd_list_scheduling_bookings',detailKey:'booking_id',detailArgs:{limit:1},paths:['data.bookings','data.upcoming_bookings','data'],view:'calendar',sort:'asc'},
'acl-matrix':{listTool:'shd_list_organization_members',listArgs:{limit:100},paths:['data'],view:'matrix',contextRequired:true,contextKeys:['organization_id'],contextAll:true,sort:'asc'},
'inventory-warnings':{listTool:'shd_list_inventory_items',listArgs:{limit:100},readTool:'shd_get_inventory_item',detailKey:'item_id',detailSourceArgs:[],paths:['data'],view:'warnings',sort:'asc'},
@@ -5,11 +5,11 @@
"resources": [
{
"file": "index.html",
"bytes": 77313,
"gzipBytes": 20866,
"bytes": 77275,
"gzipBytes": 20607,
"mediaType": "text/html;profile=mcp-app",
"uri": "ui://shd/team-workload/v1.html",
"sha256": "531968b63860589756f0b72f6e97c86f96507716e5b30b01a47bd4da9c068f02"
"sha256": "c78853304a6af3600d9ab331604de3f5b1a0fef7e0c63d2031a29e9a5532eaf8"
}
],
"license": "../../../../../LICENSE",