@trops/dash-core 0.1.292 → 0.1.294

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -70293,7 +70293,7 @@ const widgetTools$1 = [
70293
70293
  {
70294
70294
  name: "add_widget",
70295
70295
  description:
70296
- "Add a widget to a dashboard by component name. Call list_widgets or search_widgets first to discover available widget names. Can be called multiple times to add multiple widgets. Returns the widget instance ID for use with configure_widget. If the dashboard has a grid layout, you can specify row/col for explicit placement, or omit them to auto-place in the next empty cell.",
70296
+ "Add a widget to a dashboard by its scoped component name. IMPORTANT: Use the exact scoped name from list_widgets or search_widgets (format: 'scope.package.WidgetName', e.g. 'trops.gong.GongCallSearch'). Can be called multiple times. Returns the widget instance ID for use with configure_widget. If the dashboard has a grid layout, you can specify row/col for explicit placement, or omit them to auto-place in the next empty cell.",
70297
70297
  inputSchema: {
70298
70298
  type: "object",
70299
70299
  properties: {
@@ -70305,7 +70305,7 @@ const widgetTools$1 = [
70305
70305
  widgetName: {
70306
70306
  type: "string",
70307
70307
  description:
70308
- "Component name of the widget to add (e.g. 'Clock', 'WeatherWidget')",
70308
+ "Scoped component name from list_widgets/search_widgets (e.g. 'trops.gong.GongCallSearch', 'trops.slack.SlackChannelFeed')",
70309
70309
  },
70310
70310
  row: {
70311
70311
  type: "number",
@@ -70367,7 +70367,7 @@ const widgetTools$1 = [
70367
70367
  {
70368
70368
  name: "list_widgets",
70369
70369
  description:
70370
- "List all available widgets from the registry, including name, description, and provider requirements. Use this to discover what widgets can be added to dashboards with add_widget.",
70370
+ "List all available widgets from the registry. Returns scoped component names (e.g. 'trops.gong.GongCallSearch') that can be passed directly to add_widget. Also includes description, provider requirements, and package info.",
70371
70371
  inputSchema: {
70372
70372
  type: "object",
70373
70373
  properties: {},
@@ -70377,7 +70377,7 @@ const widgetTools$1 = [
70377
70377
  {
70378
70378
  name: "search_widgets",
70379
70379
  description:
70380
- "Search the widget registry by keyword. Returns matching widgets with name, description, and provider info. Use the widget name from results with add_widget to add it to a dashboard.",
70380
+ "Search the widget registry by keyword. Returns matching widgets with scoped names (e.g. 'trops.slack.SlackChannelFeed') that can be passed directly to add_widget. Also includes description and provider info.",
70381
70381
  inputSchema: {
70382
70382
  type: "object",
70383
70383
  properties: {
@@ -71633,12 +71633,18 @@ async function handleListWidgets$1() {
71633
71633
  if (pkg.type && pkg.type !== "widget") continue;
71634
71634
 
71635
71635
  for (const w of pkg.widgets || []) {
71636
+ const shortName = w.name || pkg.name;
71637
+ const scopedName =
71638
+ pkg.scope && pkg.name && w.name
71639
+ ? `${pkg.scope}.${pkg.name}.${w.name}`
71640
+ : shortName;
71636
71641
  widgets.push({
71637
- name: w.name || pkg.name,
71642
+ name: scopedName,
71638
71643
  displayName: w.displayName || w.name || pkg.displayName || pkg.name,
71639
71644
  description: w.description || pkg.description || "",
71640
71645
  icon: w.icon || pkg.icon || null,
71641
71646
  package: pkg.name,
71647
+ scope: pkg.scope || null,
71642
71648
  providers: (w.providers || pkg.providers || []).map((p) => ({
71643
71649
  type: p.type,
71644
71650
  providerClass: p.providerClass || "api",
@@ -71649,12 +71655,17 @@ async function handleListWidgets$1() {
71649
71655
 
71650
71656
  // If a package has no widgets array, treat the package itself as a widget
71651
71657
  if (!pkg.widgets || pkg.widgets.length === 0) {
71658
+ const scopedName =
71659
+ pkg.scope && pkg.name
71660
+ ? `${pkg.scope}.${pkg.name}.${pkg.name}`
71661
+ : pkg.name;
71652
71662
  widgets.push({
71653
- name: pkg.name,
71663
+ name: scopedName,
71654
71664
  displayName: pkg.displayName || pkg.name,
71655
71665
  description: pkg.description || "",
71656
71666
  icon: pkg.icon || null,
71657
71667
  package: pkg.name,
71668
+ scope: pkg.scope || null,
71658
71669
  providers: (pkg.providers || []).map((p) => ({
71659
71670
  type: p.type,
71660
71671
  providerClass: p.providerClass || "api",
@@ -71714,12 +71725,18 @@ async function handleSearchWidgets$1({ query }) {
71714
71725
  if (pkg.type && pkg.type !== "widget") continue;
71715
71726
 
71716
71727
  for (const w of pkg.widgets || []) {
71728
+ const shortName = w.name || pkg.name;
71729
+ const scopedName =
71730
+ pkg.scope && pkg.name && w.name
71731
+ ? `${pkg.scope}.${pkg.name}.${w.name}`
71732
+ : shortName;
71717
71733
  widgets.push({
71718
- name: w.name || pkg.name,
71734
+ name: scopedName,
71719
71735
  displayName: w.displayName || w.name || pkg.displayName || pkg.name,
71720
71736
  description: w.description || pkg.description || "",
71721
71737
  icon: w.icon || pkg.icon || null,
71722
71738
  package: pkg.name,
71739
+ scope: pkg.scope || null,
71723
71740
  providers: (w.providers || pkg.providers || []).map((p) => ({
71724
71741
  type: p.type,
71725
71742
  providerClass: p.providerClass || "api",
@@ -71729,12 +71746,17 @@ async function handleSearchWidgets$1({ query }) {
71729
71746
  }
71730
71747
 
71731
71748
  if (!pkg.widgets || pkg.widgets.length === 0) {
71749
+ const scopedName =
71750
+ pkg.scope && pkg.name
71751
+ ? `${pkg.scope}.${pkg.name}.${pkg.name}`
71752
+ : pkg.name;
71732
71753
  widgets.push({
71733
- name: pkg.name,
71754
+ name: scopedName,
71734
71755
  displayName: pkg.displayName || pkg.name,
71735
71756
  description: pkg.description || "",
71736
71757
  icon: pkg.icon || null,
71737
71758
  package: pkg.name,
71759
+ scope: pkg.scope || null,
71738
71760
  providers: (pkg.providers || []).map((p) => ({
71739
71761
  type: p.type,
71740
71762
  providerClass: p.providerClass || "api",
@@ -72547,7 +72569,7 @@ You are connected to Dash, a dashboard application. Here is what you can help wi
72547
72569
  ## Typical Workflow
72548
72570
  1. Create a dashboard: create_dashboard("My Dashboard")
72549
72571
  2. Search for widgets: search_widgets("slack") or list_widgets()
72550
- 3. Add widgets: add_widget(widgetName, dashboardId)
72572
+ 3. Add widgets: add_widget(scopedName, dashboardId) — use the name from search/list results (e.g. "trops.slack.SlackChannelFeed")
72551
72573
  4. Configure: configure_widget(widgetId, config)
72552
72574
  5. Style it: create_theme_from_url("https://example.com") then apply_theme(name)`,
72553
72575