@contractspec/module.examples 3.7.7 → 3.8.2
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.
- package/README.md +4 -0
- package/dist/builtins.d.ts +1 -1
- package/dist/index.js +151 -59
- package/dist/node/index.js +151 -59
- package/dist/runtime/presentations.d.ts +2 -0
- package/package.json +59 -54
package/README.md
CHANGED
|
@@ -9,6 +9,8 @@ Website: https://contractspec.io
|
|
|
9
9
|
- **Layer**: module.
|
|
10
10
|
- **Consumers**: apps (web-landing, docs), bundles (contractspec-studio).
|
|
11
11
|
- Related ContractSpec packages include `@contractspec/example.agent-console`, `@contractspec/example.ai-chat-assistant`, `@contractspec/example.ai-support-bot`, `@contractspec/example.analytics-dashboard`, `@contractspec/example.calendar-google`, `@contractspec/example.content-generation`, ...
|
|
12
|
+
- `agent-console` is the default autonomous-agent showcase surfaced through `/sandbox`.
|
|
13
|
+
- `data-grid-showcase` is the focused ContractSpec table showcase surfaced through `/sandbox?template=data-grid-showcase`.
|
|
12
14
|
|
|
13
15
|
## Installation
|
|
14
16
|
|
|
@@ -63,3 +65,5 @@ Import the root entrypoint from `@contractspec/module.examples`, or choose a doc
|
|
|
63
65
|
- This module is a thin aggregator -- business logic belongs in individual example packages under `packages/examples/`.
|
|
64
66
|
- Adding a new example requires both creating the example package and wiring it as a dependency here.
|
|
65
67
|
- Depends on ~30 example workspace packages; keep the dependency list in sync with `packages/examples/`.
|
|
68
|
+
- The meetup-ready autonomous-agent path is the deterministic `agent-console` sandbox plus its replay proof lane.
|
|
69
|
+
- The shared ContractSpec table stack is demonstrated directly by `data-grid-showcase` and reused in `analytics-dashboard`, `crm-pipeline`, `integration-hub`, and `agent-console`.
|
package/dist/builtins.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ExampleSpec } from
|
|
1
|
+
import type { ExampleSpec } from '@contractspec/lib.contracts-spec/examples/types';
|
|
2
2
|
export declare const EXAMPLE_REGISTRY: readonly ExampleSpec[];
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import AnalyticsDashboard from "@contractspec/example.analytics-dashboard/exampl
|
|
|
10
10
|
import CalendarGoogle from "@contractspec/example.calendar-google/example";
|
|
11
11
|
import ContentGeneration from "@contractspec/example.content-generation/example";
|
|
12
12
|
import CrmPipeline from "@contractspec/example.crm-pipeline/example";
|
|
13
|
+
import DataGridShowcase from "@contractspec/example.data-grid-showcase/example";
|
|
13
14
|
import EmailGmail from "@contractspec/example.email-gmail/example";
|
|
14
15
|
import InAppDocs from "@contractspec/example.in-app-docs/example";
|
|
15
16
|
import IntegrationHub from "@contractspec/example.integration-hub/example";
|
|
@@ -35,7 +36,10 @@ import LifecycleDashboard from "@contractspec/example.lifecycle-dashboard/exampl
|
|
|
35
36
|
import LocaleJurisdictionGate from "@contractspec/example.locale-jurisdiction-gate/example";
|
|
36
37
|
import Marketplace from "@contractspec/example.marketplace/example";
|
|
37
38
|
import MeetingRecorderProviders from "@contractspec/example.meeting-recorder-providers/example";
|
|
39
|
+
import MessagingAgentActions from "@contractspec/example.messaging-agent-actions/example";
|
|
40
|
+
import Minimal from "@contractspec/example.minimal/example";
|
|
38
41
|
import OpenbankingPowens from "@contractspec/example.openbanking-powens/example";
|
|
42
|
+
import OpencodeCli from "@contractspec/example.opencode-cli/example";
|
|
39
43
|
import Personalization from "@contractspec/example.personalization/example";
|
|
40
44
|
import PocketFamilyOffice from "@contractspec/example.pocket-family-office/example";
|
|
41
45
|
import PolicySafeKnowledgeAssistant from "@contractspec/example.policy-safe-knowledge-assistant/example";
|
|
@@ -48,6 +52,7 @@ import VersionedKnowledgeBase from "@contractspec/example.versioned-knowledge-ba
|
|
|
48
52
|
import VideoApiShowcase from "@contractspec/example.video-api-showcase/example";
|
|
49
53
|
import VideoDocsTerminal from "@contractspec/example.video-docs-terminal/example";
|
|
50
54
|
import VideoMarketingClip from "@contractspec/example.video-marketing-clip/example";
|
|
55
|
+
import VisualizationShowcase from "@contractspec/example.visualization-showcase/example";
|
|
51
56
|
import VoiceProviders from "@contractspec/example.voice-providers/example";
|
|
52
57
|
import WealthSnapshot from "@contractspec/example.wealth-snapshot/example";
|
|
53
58
|
import WorkflowSystem from "@contractspec/example.workflow-system/example";
|
|
@@ -59,6 +64,7 @@ var EXAMPLE_REGISTRY = [
|
|
|
59
64
|
CalendarGoogle,
|
|
60
65
|
ContentGeneration,
|
|
61
66
|
CrmPipeline,
|
|
67
|
+
DataGridShowcase,
|
|
62
68
|
EmailGmail,
|
|
63
69
|
InAppDocs,
|
|
64
70
|
IntegrationHub,
|
|
@@ -84,7 +90,10 @@ var EXAMPLE_REGISTRY = [
|
|
|
84
90
|
LocaleJurisdictionGate,
|
|
85
91
|
Marketplace,
|
|
86
92
|
MeetingRecorderProviders,
|
|
93
|
+
MessagingAgentActions,
|
|
94
|
+
Minimal,
|
|
87
95
|
OpenbankingPowens,
|
|
96
|
+
OpencodeCli,
|
|
88
97
|
Personalization,
|
|
89
98
|
PocketFamilyOffice,
|
|
90
99
|
PolicySafeKnowledgeAssistant,
|
|
@@ -97,6 +106,7 @@ var EXAMPLE_REGISTRY = [
|
|
|
97
106
|
VideoApiShowcase,
|
|
98
107
|
VideoDocsTerminal,
|
|
99
108
|
VideoMarketingClip,
|
|
109
|
+
VisualizationShowcase,
|
|
100
110
|
VoiceProviders,
|
|
101
111
|
WealthSnapshot,
|
|
102
112
|
WorkflowSystem
|
|
@@ -123,7 +133,9 @@ import { ApolloProvider } from "@apollo/client/react";
|
|
|
123
133
|
import { web as web2 } from "@contractspec/lib.runtime-sandbox";
|
|
124
134
|
import { useEffect, useMemo, useState } from "react";
|
|
125
135
|
import {
|
|
126
|
-
|
|
136
|
+
AGENT_CONSOLE_DEMO_ORGANIZATION_ID,
|
|
137
|
+
createAgentConsoleDemoHandlers,
|
|
138
|
+
getAgentConsoleDashboardData
|
|
127
139
|
} from "@contractspec/example.agent-console";
|
|
128
140
|
import {
|
|
129
141
|
createAnalyticsHandlers
|
|
@@ -186,6 +198,7 @@ import {
|
|
|
186
198
|
saasBillingMarkdownRenderer,
|
|
187
199
|
saasDashboardMarkdownRenderer
|
|
188
200
|
} from "@contractspec/example.saas-boilerplate";
|
|
201
|
+
import { visualizationShowcaseMarkdownRenderer } from "@contractspec/example.visualization-showcase/ui/renderers";
|
|
189
202
|
import {
|
|
190
203
|
workflowDashboardMarkdownRenderer,
|
|
191
204
|
workflowDefinitionListMarkdownRenderer,
|
|
@@ -228,6 +241,7 @@ function registerTemplateRenderers(engine) {
|
|
|
228
241
|
engine.register(analyticsDashboardMarkdownRenderer);
|
|
229
242
|
engine.register(dashboardListMarkdownRenderer);
|
|
230
243
|
engine.register(queryBuilderMarkdownRenderer);
|
|
244
|
+
engine.register(visualizationShowcaseMarkdownRenderer);
|
|
231
245
|
}
|
|
232
246
|
var templateEngine = null;
|
|
233
247
|
function getTemplateEngine() {
|
|
@@ -253,9 +267,9 @@ var PRESENTATIONS_BY_TEMPLATE = {
|
|
|
253
267
|
"crm-pipeline": ["crm-pipeline.dashboard", "crm-pipeline.deal.pipeline"],
|
|
254
268
|
"agent-console": [
|
|
255
269
|
"agent-console.dashboard",
|
|
256
|
-
"agent-console.agent.
|
|
270
|
+
"agent-console.agent.viewList",
|
|
257
271
|
"agent-console.run.list",
|
|
258
|
-
"agent-console.tool.
|
|
272
|
+
"agent-console.tool.list"
|
|
259
273
|
],
|
|
260
274
|
"workflow-system": [
|
|
261
275
|
"workflow-system.dashboard",
|
|
@@ -265,8 +279,7 @@ var PRESENTATIONS_BY_TEMPLATE = {
|
|
|
265
279
|
marketplace: [
|
|
266
280
|
"marketplace.dashboard",
|
|
267
281
|
"marketplace.product.catalog",
|
|
268
|
-
"marketplace.order.list"
|
|
269
|
-
"marketplace.store.manage"
|
|
282
|
+
"marketplace.order.list"
|
|
270
283
|
],
|
|
271
284
|
"integration-hub": [
|
|
272
285
|
"integration-hub.dashboard",
|
|
@@ -278,6 +291,7 @@ var PRESENTATIONS_BY_TEMPLATE = {
|
|
|
278
291
|
"analytics-dashboard.list",
|
|
279
292
|
"analytics-dashboard.query.builder"
|
|
280
293
|
],
|
|
294
|
+
"visualization-showcase": ["visualization-showcase.gallery"],
|
|
281
295
|
"learning-journey-studio-onboarding": [
|
|
282
296
|
"learning.journey.track_list",
|
|
283
297
|
"learning.journey.track_detail",
|
|
@@ -309,6 +323,28 @@ var PRESENTATIONS_BY_TEMPLATE = {
|
|
|
309
323
|
"learning.journey.progress_widget"
|
|
310
324
|
]
|
|
311
325
|
};
|
|
326
|
+
var GENERATED_TEMPLATE_REGISTRY = listExamples().filter((example) => example.meta.key !== "agent-console").map((example) => {
|
|
327
|
+
const tags = [...example.meta.tags ?? []];
|
|
328
|
+
const category = tags.some((tag) => tag.toLowerCase() === "ai") || tags.some((tag) => tag.toLowerCase() === "assistant") ? "ai" : "business";
|
|
329
|
+
return {
|
|
330
|
+
id: example.meta.key,
|
|
331
|
+
name: example.meta.title ?? example.meta.key,
|
|
332
|
+
description: example.meta.description ?? "",
|
|
333
|
+
category,
|
|
334
|
+
complexity: "beginner",
|
|
335
|
+
icon: "\uD83D\uDCE6",
|
|
336
|
+
features: [],
|
|
337
|
+
tags,
|
|
338
|
+
schema: { models: [], contracts: [] },
|
|
339
|
+
components: { list: "ExampleList", detail: "ExampleDetail" },
|
|
340
|
+
preview: {
|
|
341
|
+
demoUrl: `/sandbox?template=${encodeURIComponent(example.meta.key)}`
|
|
342
|
+
},
|
|
343
|
+
package: example.entrypoints.packageName,
|
|
344
|
+
presentations: PRESENTATIONS_BY_TEMPLATE[example.meta.key] ?? [],
|
|
345
|
+
renderTargets: ["react", "markdown"]
|
|
346
|
+
};
|
|
347
|
+
});
|
|
312
348
|
var TEMPLATE_REGISTRY = [
|
|
313
349
|
{
|
|
314
350
|
id: "todos-app",
|
|
@@ -395,30 +431,42 @@ var TEMPLATE_REGISTRY = [
|
|
|
395
431
|
quickstart: "/docs/templates/recipe-app-i18n"
|
|
396
432
|
}
|
|
397
433
|
},
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
}
|
|
421
|
-
|
|
434
|
+
{
|
|
435
|
+
id: "agent-console",
|
|
436
|
+
name: "Agent Console",
|
|
437
|
+
description: "Deterministic autonomous-agent walkthrough with seeded agents, tool registry, runs, metrics, and replayable proof.",
|
|
438
|
+
category: "ai",
|
|
439
|
+
complexity: "intermediate",
|
|
440
|
+
icon: "\uD83E\uDD16",
|
|
441
|
+
features: [
|
|
442
|
+
"Seeded autonomous agents",
|
|
443
|
+
"Tool registry",
|
|
444
|
+
"Run execution history",
|
|
445
|
+
"Metrics",
|
|
446
|
+
"Markdown and React views"
|
|
447
|
+
],
|
|
448
|
+
tags: ["ai", "agents", "autonomous", "meetup", "sandbox"],
|
|
449
|
+
schema: {
|
|
450
|
+
models: ["Agent", "Tool", "Run"],
|
|
451
|
+
contracts: [
|
|
452
|
+
"agent-console.agent.list",
|
|
453
|
+
"agent-console.agent.create",
|
|
454
|
+
"agent-console.run.execute"
|
|
455
|
+
]
|
|
456
|
+
},
|
|
457
|
+
components: {
|
|
458
|
+
list: "AgentListView",
|
|
459
|
+
detail: "RunListView",
|
|
460
|
+
form: "CreateAgentModal"
|
|
461
|
+
},
|
|
462
|
+
preview: {
|
|
463
|
+
demoUrl: "/sandbox?template=agent-console"
|
|
464
|
+
},
|
|
465
|
+
package: "@contractspec/example.agent-console",
|
|
466
|
+
presentations: PRESENTATIONS_BY_TEMPLATE["agent-console"] ?? [],
|
|
467
|
+
renderTargets: ["react", "markdown"]
|
|
468
|
+
},
|
|
469
|
+
...GENERATED_TEMPLATE_REGISTRY
|
|
422
470
|
];
|
|
423
471
|
function listTemplates(filter) {
|
|
424
472
|
if (!filter)
|
|
@@ -598,6 +646,58 @@ function toBase64(bytes) {
|
|
|
598
646
|
return btoa(binary);
|
|
599
647
|
}
|
|
600
648
|
|
|
649
|
+
// src/runtime/presentations.ts
|
|
650
|
+
function createComponentPresentation(key, title, description, goal, context, componentKey) {
|
|
651
|
+
return {
|
|
652
|
+
meta: {
|
|
653
|
+
key,
|
|
654
|
+
version: "1.0.0",
|
|
655
|
+
title,
|
|
656
|
+
description,
|
|
657
|
+
stability: "experimental",
|
|
658
|
+
goal,
|
|
659
|
+
context,
|
|
660
|
+
owners: ["@contractspec/examples"],
|
|
661
|
+
tags: ["template", "sandbox"]
|
|
662
|
+
},
|
|
663
|
+
source: {
|
|
664
|
+
type: "component",
|
|
665
|
+
framework: "react",
|
|
666
|
+
componentKey
|
|
667
|
+
},
|
|
668
|
+
targets: ["react", "markdown"]
|
|
669
|
+
};
|
|
670
|
+
}
|
|
671
|
+
var TEMPLATE_PRESENTATIONS = {
|
|
672
|
+
"agent-console.dashboard": createComponentPresentation("agent-console.dashboard", "Agent Console Dashboard", "Operational dashboard for the agent console example.", "Review agent activity, throughput, and execution health.", "Sandbox presentation used for markdown previews.", "AgentConsoleDashboard"),
|
|
673
|
+
"agent-console.agent.list": createComponentPresentation("agent-console.agent.list", "Agent List", "List of seeded agents in the agent console example.", "Browse configured agents and their current capabilities.", "Sandbox presentation used for markdown previews.", "AgentListView"),
|
|
674
|
+
"agent-console.agent.viewList": createComponentPresentation("agent-console.agent.viewList", "Agent List", "List of seeded agents in the agent console example.", "Browse configured agents and their current capabilities.", "Sandbox presentation used for markdown previews.", "AgentListView"),
|
|
675
|
+
"agent-console.run.list": createComponentPresentation("agent-console.run.list", "Run List", "Execution history for the agent console example.", "Inspect recent runs and their outcomes.", "Sandbox presentation used for markdown previews.", "RunListView"),
|
|
676
|
+
"agent-console.tool.list": createComponentPresentation("agent-console.tool.list", "Tool Registry", "Available tools for the agent console example.", "Inspect the tool registry exposed to the seeded agents.", "Sandbox presentation used for markdown previews.", "ToolRegistryView"),
|
|
677
|
+
"agent-console.tool.registry": createComponentPresentation("agent-console.tool.registry", "Tool Registry", "Available tools for the agent console example.", "Inspect the tool registry exposed to the seeded agents.", "Sandbox presentation used for markdown previews.", "ToolRegistryView"),
|
|
678
|
+
"analytics-dashboard.dashboard": createComponentPresentation("analytics-dashboard.dashboard", "Analytics Dashboard", "Dashboard view for the analytics example.", "Review saved widgets and query-backed dashboards.", "Sandbox presentation used for markdown previews.", "AnalyticsDashboard"),
|
|
679
|
+
"analytics-dashboard.list": createComponentPresentation("analytics-dashboard.list", "Dashboard List", "List view for analytics dashboards.", "Browse dashboards available in the analytics example.", "Sandbox presentation used for markdown previews.", "DashboardList"),
|
|
680
|
+
"analytics-dashboard.query.builder": createComponentPresentation("analytics-dashboard.query.builder", "Query Builder", "Query authoring surface for the analytics example.", "Inspect reusable queries that power dashboards.", "Sandbox presentation used for markdown previews.", "QueryBuilder"),
|
|
681
|
+
"crm-pipeline.dashboard": createComponentPresentation("crm-pipeline.dashboard", "CRM Dashboard", "Dashboard for the CRM pipeline example.", "Track pipeline health and revenue progress.", "Sandbox presentation used for markdown previews.", "CrmDashboard"),
|
|
682
|
+
"crm-pipeline.deal.pipeline": createComponentPresentation("crm-pipeline.deal.pipeline", "Pipeline Kanban", "Pipeline board for the CRM pipeline example.", "Review deal flow across pipeline stages.", "Sandbox presentation used for markdown previews.", "PipelineKanbanView"),
|
|
683
|
+
"integration-hub.connection.list": createComponentPresentation("integration-hub.connection.list", "Connection List", "Connected systems in the integration hub example.", "Review connected systems and connection health.", "Sandbox presentation used for markdown previews.", "ConnectionList"),
|
|
684
|
+
"integration-hub.dashboard": createComponentPresentation("integration-hub.dashboard", "Integration Dashboard", "Operational dashboard for the integration hub example.", "Monitor integration mix, connection health, and sync issues.", "Sandbox presentation used for markdown previews.", "IntegrationDashboard"),
|
|
685
|
+
"integration-hub.sync.config": createComponentPresentation("integration-hub.sync.config", "Sync Configuration", "Sync configuration surface for the integration hub example.", "Inspect sync configuration and field mapping defaults.", "Sandbox presentation used for markdown previews.", "SyncConfigEditor"),
|
|
686
|
+
"marketplace.dashboard": createComponentPresentation("marketplace.dashboard", "Marketplace Dashboard", "Dashboard for the marketplace example.", "Review order flow, category mix, and revenue summaries.", "Sandbox presentation used for markdown previews.", "MarketplaceDashboard"),
|
|
687
|
+
"marketplace.order.list": createComponentPresentation("marketplace.order.list", "Order List", "Order list for the marketplace example.", "Inspect order activity and fulfillment state.", "Sandbox presentation used for markdown previews.", "OrderList"),
|
|
688
|
+
"marketplace.product.catalog": createComponentPresentation("marketplace.product.catalog", "Product Catalog", "Product catalog for the marketplace example.", "Browse the available products and merchandising data.", "Sandbox presentation used for markdown previews.", "ProductCatalog"),
|
|
689
|
+
"saas-boilerplate.billing.settings": createComponentPresentation("saas-boilerplate.billing.settings", "Billing Settings", "Subscription and usage settings for the SaaS example.", "Review billing configuration and current subscription data.", "Sandbox presentation used for markdown previews.", "SubscriptionView"),
|
|
690
|
+
"saas-boilerplate.dashboard": createComponentPresentation("saas-boilerplate.dashboard", "SaaS Dashboard", "Dashboard for the SaaS boilerplate example.", "Review account, project, and billing summaries.", "Sandbox presentation used for markdown previews.", "SaasDashboard"),
|
|
691
|
+
"saas-boilerplate.project.list": createComponentPresentation("saas-boilerplate.project.list", "Project List", "Project list for the SaaS boilerplate example.", "Browse projects and their current lifecycle state.", "Sandbox presentation used for markdown previews.", "ProjectListView"),
|
|
692
|
+
"visualization-showcase.gallery": createComponentPresentation("visualization-showcase.gallery", "Visualization Showcase", "Focused showcase of ContractSpec visualization primitives.", "Review the canonical visualization catalog and design-system wrappers.", "Sandbox presentation used for markdown previews.", "VisualizationShowcase"),
|
|
693
|
+
"workflow-system.dashboard": createComponentPresentation("workflow-system.dashboard", "Workflow Dashboard", "Dashboard for the workflow system example.", "Review workflow instance health and workload metrics.", "Sandbox presentation used for markdown previews.", "WorkflowDashboard"),
|
|
694
|
+
"workflow-system.definition.list": createComponentPresentation("workflow-system.definition.list", "Workflow Definition List", "Workflow definitions in the workflow system example.", "Browse available workflow definitions.", "Sandbox presentation used for markdown previews.", "WorkflowDefinitionList"),
|
|
695
|
+
"workflow-system.instance.detail": createComponentPresentation("workflow-system.instance.detail", "Workflow Instance Detail", "Workflow instance details in the workflow system example.", "Inspect the state and approvals for a workflow instance.", "Sandbox presentation used for markdown previews.", "WorkflowInstanceDetail")
|
|
696
|
+
};
|
|
697
|
+
function resolveTemplatePresentation(presentationName) {
|
|
698
|
+
return TEMPLATE_PRESENTATIONS[presentationName];
|
|
699
|
+
}
|
|
700
|
+
|
|
601
701
|
// src/runtime/context.tsx
|
|
602
702
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
603
703
|
"use client";
|
|
@@ -628,7 +728,7 @@ class TemplateHandlers {
|
|
|
628
728
|
}
|
|
629
729
|
function TemplateRuntimeProvider({
|
|
630
730
|
templateId,
|
|
631
|
-
projectId = "
|
|
731
|
+
projectId = "local-project",
|
|
632
732
|
lazy = false,
|
|
633
733
|
children
|
|
634
734
|
}) {
|
|
@@ -653,7 +753,7 @@ function TemplateRuntimeProvider({
|
|
|
653
753
|
const handlers = new TemplateHandlers;
|
|
654
754
|
handlers.crm = createCrmHandlers(runtime.db);
|
|
655
755
|
handlers.saas = createSaasHandlers(runtime.db);
|
|
656
|
-
handlers.agent =
|
|
756
|
+
handlers.agent = createAgentConsoleDemoHandlers({ projectId });
|
|
657
757
|
handlers.workflow = createWorkflowHandlers(runtime.db);
|
|
658
758
|
handlers.marketplace = createMarketplaceHandlers(runtime.db);
|
|
659
759
|
handlers.integration = createIntegrationHandlers(runtime.db);
|
|
@@ -750,37 +850,19 @@ function TemplateRuntimeProvider({
|
|
|
750
850
|
};
|
|
751
851
|
}
|
|
752
852
|
if (presentationName === "agent-console.dashboard") {
|
|
753
|
-
const
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
limit: 10
|
|
758
|
-
}),
|
|
759
|
-
handlers.agent.listRuns({ projectId, limit: 10 }),
|
|
760
|
-
handlers.agent.listTools({
|
|
761
|
-
projectId,
|
|
762
|
-
organizationId: "demo-org",
|
|
763
|
-
limit: 10
|
|
764
|
-
})
|
|
765
|
-
]);
|
|
853
|
+
const data = await getAgentConsoleDashboardData(handlers.agent, {
|
|
854
|
+
projectId,
|
|
855
|
+
organizationId: AGENT_CONSOLE_DEMO_ORGANIZATION_ID
|
|
856
|
+
});
|
|
766
857
|
return {
|
|
767
|
-
data
|
|
768
|
-
agents: agentsResult.items,
|
|
769
|
-
runs: runsResult.items,
|
|
770
|
-
tools: toolsResult.items,
|
|
771
|
-
summary: {
|
|
772
|
-
totalAgents: agentsResult.total,
|
|
773
|
-
totalRuns: runsResult.total,
|
|
774
|
-
totalTools: toolsResult.total
|
|
775
|
-
}
|
|
776
|
-
},
|
|
858
|
+
data,
|
|
777
859
|
metadata: { timestamp: new Date, source: "agent-console" }
|
|
778
860
|
};
|
|
779
861
|
}
|
|
780
|
-
if (presentationName === "agent-console.agent.list") {
|
|
862
|
+
if (presentationName === "agent-console.agent.viewList" || presentationName === "agent-console.agent.list") {
|
|
781
863
|
const result = await handlers.agent.listAgents({
|
|
782
864
|
projectId,
|
|
783
|
-
organizationId:
|
|
865
|
+
organizationId: AGENT_CONSOLE_DEMO_ORGANIZATION_ID,
|
|
784
866
|
limit: 50
|
|
785
867
|
});
|
|
786
868
|
return {
|
|
@@ -806,10 +888,10 @@ function TemplateRuntimeProvider({
|
|
|
806
888
|
}
|
|
807
889
|
};
|
|
808
890
|
}
|
|
809
|
-
if (presentationName === "agent-console.tool.registry") {
|
|
891
|
+
if (presentationName === "agent-console.tool.list" || presentationName === "agent-console.tool.registry") {
|
|
810
892
|
const result = await handlers.agent.listTools({
|
|
811
893
|
projectId,
|
|
812
|
-
organizationId:
|
|
894
|
+
organizationId: AGENT_CONSOLE_DEMO_ORGANIZATION_ID,
|
|
813
895
|
limit: 50
|
|
814
896
|
});
|
|
815
897
|
return {
|
|
@@ -821,6 +903,15 @@ function TemplateRuntimeProvider({
|
|
|
821
903
|
}
|
|
822
904
|
};
|
|
823
905
|
}
|
|
906
|
+
if (presentationName === "visualization-showcase.gallery") {
|
|
907
|
+
return {
|
|
908
|
+
data: null,
|
|
909
|
+
metadata: {
|
|
910
|
+
timestamp: new Date,
|
|
911
|
+
source: "visualization-showcase"
|
|
912
|
+
}
|
|
913
|
+
};
|
|
914
|
+
}
|
|
824
915
|
console.warn(`No data fetcher found for presentation: ${presentationName}`);
|
|
825
916
|
return {
|
|
826
917
|
data: null,
|
|
@@ -837,7 +928,8 @@ function TemplateRuntimeProvider({
|
|
|
837
928
|
projectId,
|
|
838
929
|
engine,
|
|
839
930
|
handlers,
|
|
840
|
-
fetchData
|
|
931
|
+
fetchData,
|
|
932
|
+
resolvePresentation: resolveTemplatePresentation
|
|
841
933
|
});
|
|
842
934
|
}
|
|
843
935
|
} catch (err) {
|
package/dist/node/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import AnalyticsDashboard from "@contractspec/example.analytics-dashboard/exampl
|
|
|
9
9
|
import CalendarGoogle from "@contractspec/example.calendar-google/example";
|
|
10
10
|
import ContentGeneration from "@contractspec/example.content-generation/example";
|
|
11
11
|
import CrmPipeline from "@contractspec/example.crm-pipeline/example";
|
|
12
|
+
import DataGridShowcase from "@contractspec/example.data-grid-showcase/example";
|
|
12
13
|
import EmailGmail from "@contractspec/example.email-gmail/example";
|
|
13
14
|
import InAppDocs from "@contractspec/example.in-app-docs/example";
|
|
14
15
|
import IntegrationHub from "@contractspec/example.integration-hub/example";
|
|
@@ -34,7 +35,10 @@ import LifecycleDashboard from "@contractspec/example.lifecycle-dashboard/exampl
|
|
|
34
35
|
import LocaleJurisdictionGate from "@contractspec/example.locale-jurisdiction-gate/example";
|
|
35
36
|
import Marketplace from "@contractspec/example.marketplace/example";
|
|
36
37
|
import MeetingRecorderProviders from "@contractspec/example.meeting-recorder-providers/example";
|
|
38
|
+
import MessagingAgentActions from "@contractspec/example.messaging-agent-actions/example";
|
|
39
|
+
import Minimal from "@contractspec/example.minimal/example";
|
|
37
40
|
import OpenbankingPowens from "@contractspec/example.openbanking-powens/example";
|
|
41
|
+
import OpencodeCli from "@contractspec/example.opencode-cli/example";
|
|
38
42
|
import Personalization from "@contractspec/example.personalization/example";
|
|
39
43
|
import PocketFamilyOffice from "@contractspec/example.pocket-family-office/example";
|
|
40
44
|
import PolicySafeKnowledgeAssistant from "@contractspec/example.policy-safe-knowledge-assistant/example";
|
|
@@ -47,6 +51,7 @@ import VersionedKnowledgeBase from "@contractspec/example.versioned-knowledge-ba
|
|
|
47
51
|
import VideoApiShowcase from "@contractspec/example.video-api-showcase/example";
|
|
48
52
|
import VideoDocsTerminal from "@contractspec/example.video-docs-terminal/example";
|
|
49
53
|
import VideoMarketingClip from "@contractspec/example.video-marketing-clip/example";
|
|
54
|
+
import VisualizationShowcase from "@contractspec/example.visualization-showcase/example";
|
|
50
55
|
import VoiceProviders from "@contractspec/example.voice-providers/example";
|
|
51
56
|
import WealthSnapshot from "@contractspec/example.wealth-snapshot/example";
|
|
52
57
|
import WorkflowSystem from "@contractspec/example.workflow-system/example";
|
|
@@ -58,6 +63,7 @@ var EXAMPLE_REGISTRY = [
|
|
|
58
63
|
CalendarGoogle,
|
|
59
64
|
ContentGeneration,
|
|
60
65
|
CrmPipeline,
|
|
66
|
+
DataGridShowcase,
|
|
61
67
|
EmailGmail,
|
|
62
68
|
InAppDocs,
|
|
63
69
|
IntegrationHub,
|
|
@@ -83,7 +89,10 @@ var EXAMPLE_REGISTRY = [
|
|
|
83
89
|
LocaleJurisdictionGate,
|
|
84
90
|
Marketplace,
|
|
85
91
|
MeetingRecorderProviders,
|
|
92
|
+
MessagingAgentActions,
|
|
93
|
+
Minimal,
|
|
86
94
|
OpenbankingPowens,
|
|
95
|
+
OpencodeCli,
|
|
87
96
|
Personalization,
|
|
88
97
|
PocketFamilyOffice,
|
|
89
98
|
PolicySafeKnowledgeAssistant,
|
|
@@ -96,6 +105,7 @@ var EXAMPLE_REGISTRY = [
|
|
|
96
105
|
VideoApiShowcase,
|
|
97
106
|
VideoDocsTerminal,
|
|
98
107
|
VideoMarketingClip,
|
|
108
|
+
VisualizationShowcase,
|
|
99
109
|
VoiceProviders,
|
|
100
110
|
WealthSnapshot,
|
|
101
111
|
WorkflowSystem
|
|
@@ -122,7 +132,9 @@ import { ApolloProvider } from "@apollo/client/react";
|
|
|
122
132
|
import { web as web2 } from "@contractspec/lib.runtime-sandbox";
|
|
123
133
|
import { useEffect, useMemo, useState } from "react";
|
|
124
134
|
import {
|
|
125
|
-
|
|
135
|
+
AGENT_CONSOLE_DEMO_ORGANIZATION_ID,
|
|
136
|
+
createAgentConsoleDemoHandlers,
|
|
137
|
+
getAgentConsoleDashboardData
|
|
126
138
|
} from "@contractspec/example.agent-console";
|
|
127
139
|
import {
|
|
128
140
|
createAnalyticsHandlers
|
|
@@ -185,6 +197,7 @@ import {
|
|
|
185
197
|
saasBillingMarkdownRenderer,
|
|
186
198
|
saasDashboardMarkdownRenderer
|
|
187
199
|
} from "@contractspec/example.saas-boilerplate";
|
|
200
|
+
import { visualizationShowcaseMarkdownRenderer } from "@contractspec/example.visualization-showcase/ui/renderers";
|
|
188
201
|
import {
|
|
189
202
|
workflowDashboardMarkdownRenderer,
|
|
190
203
|
workflowDefinitionListMarkdownRenderer,
|
|
@@ -227,6 +240,7 @@ function registerTemplateRenderers(engine) {
|
|
|
227
240
|
engine.register(analyticsDashboardMarkdownRenderer);
|
|
228
241
|
engine.register(dashboardListMarkdownRenderer);
|
|
229
242
|
engine.register(queryBuilderMarkdownRenderer);
|
|
243
|
+
engine.register(visualizationShowcaseMarkdownRenderer);
|
|
230
244
|
}
|
|
231
245
|
var templateEngine = null;
|
|
232
246
|
function getTemplateEngine() {
|
|
@@ -252,9 +266,9 @@ var PRESENTATIONS_BY_TEMPLATE = {
|
|
|
252
266
|
"crm-pipeline": ["crm-pipeline.dashboard", "crm-pipeline.deal.pipeline"],
|
|
253
267
|
"agent-console": [
|
|
254
268
|
"agent-console.dashboard",
|
|
255
|
-
"agent-console.agent.
|
|
269
|
+
"agent-console.agent.viewList",
|
|
256
270
|
"agent-console.run.list",
|
|
257
|
-
"agent-console.tool.
|
|
271
|
+
"agent-console.tool.list"
|
|
258
272
|
],
|
|
259
273
|
"workflow-system": [
|
|
260
274
|
"workflow-system.dashboard",
|
|
@@ -264,8 +278,7 @@ var PRESENTATIONS_BY_TEMPLATE = {
|
|
|
264
278
|
marketplace: [
|
|
265
279
|
"marketplace.dashboard",
|
|
266
280
|
"marketplace.product.catalog",
|
|
267
|
-
"marketplace.order.list"
|
|
268
|
-
"marketplace.store.manage"
|
|
281
|
+
"marketplace.order.list"
|
|
269
282
|
],
|
|
270
283
|
"integration-hub": [
|
|
271
284
|
"integration-hub.dashboard",
|
|
@@ -277,6 +290,7 @@ var PRESENTATIONS_BY_TEMPLATE = {
|
|
|
277
290
|
"analytics-dashboard.list",
|
|
278
291
|
"analytics-dashboard.query.builder"
|
|
279
292
|
],
|
|
293
|
+
"visualization-showcase": ["visualization-showcase.gallery"],
|
|
280
294
|
"learning-journey-studio-onboarding": [
|
|
281
295
|
"learning.journey.track_list",
|
|
282
296
|
"learning.journey.track_detail",
|
|
@@ -308,6 +322,28 @@ var PRESENTATIONS_BY_TEMPLATE = {
|
|
|
308
322
|
"learning.journey.progress_widget"
|
|
309
323
|
]
|
|
310
324
|
};
|
|
325
|
+
var GENERATED_TEMPLATE_REGISTRY = listExamples().filter((example) => example.meta.key !== "agent-console").map((example) => {
|
|
326
|
+
const tags = [...example.meta.tags ?? []];
|
|
327
|
+
const category = tags.some((tag) => tag.toLowerCase() === "ai") || tags.some((tag) => tag.toLowerCase() === "assistant") ? "ai" : "business";
|
|
328
|
+
return {
|
|
329
|
+
id: example.meta.key,
|
|
330
|
+
name: example.meta.title ?? example.meta.key,
|
|
331
|
+
description: example.meta.description ?? "",
|
|
332
|
+
category,
|
|
333
|
+
complexity: "beginner",
|
|
334
|
+
icon: "\uD83D\uDCE6",
|
|
335
|
+
features: [],
|
|
336
|
+
tags,
|
|
337
|
+
schema: { models: [], contracts: [] },
|
|
338
|
+
components: { list: "ExampleList", detail: "ExampleDetail" },
|
|
339
|
+
preview: {
|
|
340
|
+
demoUrl: `/sandbox?template=${encodeURIComponent(example.meta.key)}`
|
|
341
|
+
},
|
|
342
|
+
package: example.entrypoints.packageName,
|
|
343
|
+
presentations: PRESENTATIONS_BY_TEMPLATE[example.meta.key] ?? [],
|
|
344
|
+
renderTargets: ["react", "markdown"]
|
|
345
|
+
};
|
|
346
|
+
});
|
|
311
347
|
var TEMPLATE_REGISTRY = [
|
|
312
348
|
{
|
|
313
349
|
id: "todos-app",
|
|
@@ -394,30 +430,42 @@ var TEMPLATE_REGISTRY = [
|
|
|
394
430
|
quickstart: "/docs/templates/recipe-app-i18n"
|
|
395
431
|
}
|
|
396
432
|
},
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
}
|
|
420
|
-
|
|
433
|
+
{
|
|
434
|
+
id: "agent-console",
|
|
435
|
+
name: "Agent Console",
|
|
436
|
+
description: "Deterministic autonomous-agent walkthrough with seeded agents, tool registry, runs, metrics, and replayable proof.",
|
|
437
|
+
category: "ai",
|
|
438
|
+
complexity: "intermediate",
|
|
439
|
+
icon: "\uD83E\uDD16",
|
|
440
|
+
features: [
|
|
441
|
+
"Seeded autonomous agents",
|
|
442
|
+
"Tool registry",
|
|
443
|
+
"Run execution history",
|
|
444
|
+
"Metrics",
|
|
445
|
+
"Markdown and React views"
|
|
446
|
+
],
|
|
447
|
+
tags: ["ai", "agents", "autonomous", "meetup", "sandbox"],
|
|
448
|
+
schema: {
|
|
449
|
+
models: ["Agent", "Tool", "Run"],
|
|
450
|
+
contracts: [
|
|
451
|
+
"agent-console.agent.list",
|
|
452
|
+
"agent-console.agent.create",
|
|
453
|
+
"agent-console.run.execute"
|
|
454
|
+
]
|
|
455
|
+
},
|
|
456
|
+
components: {
|
|
457
|
+
list: "AgentListView",
|
|
458
|
+
detail: "RunListView",
|
|
459
|
+
form: "CreateAgentModal"
|
|
460
|
+
},
|
|
461
|
+
preview: {
|
|
462
|
+
demoUrl: "/sandbox?template=agent-console"
|
|
463
|
+
},
|
|
464
|
+
package: "@contractspec/example.agent-console",
|
|
465
|
+
presentations: PRESENTATIONS_BY_TEMPLATE["agent-console"] ?? [],
|
|
466
|
+
renderTargets: ["react", "markdown"]
|
|
467
|
+
},
|
|
468
|
+
...GENERATED_TEMPLATE_REGISTRY
|
|
421
469
|
];
|
|
422
470
|
function listTemplates(filter) {
|
|
423
471
|
if (!filter)
|
|
@@ -597,6 +645,58 @@ function toBase64(bytes) {
|
|
|
597
645
|
return btoa(binary);
|
|
598
646
|
}
|
|
599
647
|
|
|
648
|
+
// src/runtime/presentations.ts
|
|
649
|
+
function createComponentPresentation(key, title, description, goal, context, componentKey) {
|
|
650
|
+
return {
|
|
651
|
+
meta: {
|
|
652
|
+
key,
|
|
653
|
+
version: "1.0.0",
|
|
654
|
+
title,
|
|
655
|
+
description,
|
|
656
|
+
stability: "experimental",
|
|
657
|
+
goal,
|
|
658
|
+
context,
|
|
659
|
+
owners: ["@contractspec/examples"],
|
|
660
|
+
tags: ["template", "sandbox"]
|
|
661
|
+
},
|
|
662
|
+
source: {
|
|
663
|
+
type: "component",
|
|
664
|
+
framework: "react",
|
|
665
|
+
componentKey
|
|
666
|
+
},
|
|
667
|
+
targets: ["react", "markdown"]
|
|
668
|
+
};
|
|
669
|
+
}
|
|
670
|
+
var TEMPLATE_PRESENTATIONS = {
|
|
671
|
+
"agent-console.dashboard": createComponentPresentation("agent-console.dashboard", "Agent Console Dashboard", "Operational dashboard for the agent console example.", "Review agent activity, throughput, and execution health.", "Sandbox presentation used for markdown previews.", "AgentConsoleDashboard"),
|
|
672
|
+
"agent-console.agent.list": createComponentPresentation("agent-console.agent.list", "Agent List", "List of seeded agents in the agent console example.", "Browse configured agents and their current capabilities.", "Sandbox presentation used for markdown previews.", "AgentListView"),
|
|
673
|
+
"agent-console.agent.viewList": createComponentPresentation("agent-console.agent.viewList", "Agent List", "List of seeded agents in the agent console example.", "Browse configured agents and their current capabilities.", "Sandbox presentation used for markdown previews.", "AgentListView"),
|
|
674
|
+
"agent-console.run.list": createComponentPresentation("agent-console.run.list", "Run List", "Execution history for the agent console example.", "Inspect recent runs and their outcomes.", "Sandbox presentation used for markdown previews.", "RunListView"),
|
|
675
|
+
"agent-console.tool.list": createComponentPresentation("agent-console.tool.list", "Tool Registry", "Available tools for the agent console example.", "Inspect the tool registry exposed to the seeded agents.", "Sandbox presentation used for markdown previews.", "ToolRegistryView"),
|
|
676
|
+
"agent-console.tool.registry": createComponentPresentation("agent-console.tool.registry", "Tool Registry", "Available tools for the agent console example.", "Inspect the tool registry exposed to the seeded agents.", "Sandbox presentation used for markdown previews.", "ToolRegistryView"),
|
|
677
|
+
"analytics-dashboard.dashboard": createComponentPresentation("analytics-dashboard.dashboard", "Analytics Dashboard", "Dashboard view for the analytics example.", "Review saved widgets and query-backed dashboards.", "Sandbox presentation used for markdown previews.", "AnalyticsDashboard"),
|
|
678
|
+
"analytics-dashboard.list": createComponentPresentation("analytics-dashboard.list", "Dashboard List", "List view for analytics dashboards.", "Browse dashboards available in the analytics example.", "Sandbox presentation used for markdown previews.", "DashboardList"),
|
|
679
|
+
"analytics-dashboard.query.builder": createComponentPresentation("analytics-dashboard.query.builder", "Query Builder", "Query authoring surface for the analytics example.", "Inspect reusable queries that power dashboards.", "Sandbox presentation used for markdown previews.", "QueryBuilder"),
|
|
680
|
+
"crm-pipeline.dashboard": createComponentPresentation("crm-pipeline.dashboard", "CRM Dashboard", "Dashboard for the CRM pipeline example.", "Track pipeline health and revenue progress.", "Sandbox presentation used for markdown previews.", "CrmDashboard"),
|
|
681
|
+
"crm-pipeline.deal.pipeline": createComponentPresentation("crm-pipeline.deal.pipeline", "Pipeline Kanban", "Pipeline board for the CRM pipeline example.", "Review deal flow across pipeline stages.", "Sandbox presentation used for markdown previews.", "PipelineKanbanView"),
|
|
682
|
+
"integration-hub.connection.list": createComponentPresentation("integration-hub.connection.list", "Connection List", "Connected systems in the integration hub example.", "Review connected systems and connection health.", "Sandbox presentation used for markdown previews.", "ConnectionList"),
|
|
683
|
+
"integration-hub.dashboard": createComponentPresentation("integration-hub.dashboard", "Integration Dashboard", "Operational dashboard for the integration hub example.", "Monitor integration mix, connection health, and sync issues.", "Sandbox presentation used for markdown previews.", "IntegrationDashboard"),
|
|
684
|
+
"integration-hub.sync.config": createComponentPresentation("integration-hub.sync.config", "Sync Configuration", "Sync configuration surface for the integration hub example.", "Inspect sync configuration and field mapping defaults.", "Sandbox presentation used for markdown previews.", "SyncConfigEditor"),
|
|
685
|
+
"marketplace.dashboard": createComponentPresentation("marketplace.dashboard", "Marketplace Dashboard", "Dashboard for the marketplace example.", "Review order flow, category mix, and revenue summaries.", "Sandbox presentation used for markdown previews.", "MarketplaceDashboard"),
|
|
686
|
+
"marketplace.order.list": createComponentPresentation("marketplace.order.list", "Order List", "Order list for the marketplace example.", "Inspect order activity and fulfillment state.", "Sandbox presentation used for markdown previews.", "OrderList"),
|
|
687
|
+
"marketplace.product.catalog": createComponentPresentation("marketplace.product.catalog", "Product Catalog", "Product catalog for the marketplace example.", "Browse the available products and merchandising data.", "Sandbox presentation used for markdown previews.", "ProductCatalog"),
|
|
688
|
+
"saas-boilerplate.billing.settings": createComponentPresentation("saas-boilerplate.billing.settings", "Billing Settings", "Subscription and usage settings for the SaaS example.", "Review billing configuration and current subscription data.", "Sandbox presentation used for markdown previews.", "SubscriptionView"),
|
|
689
|
+
"saas-boilerplate.dashboard": createComponentPresentation("saas-boilerplate.dashboard", "SaaS Dashboard", "Dashboard for the SaaS boilerplate example.", "Review account, project, and billing summaries.", "Sandbox presentation used for markdown previews.", "SaasDashboard"),
|
|
690
|
+
"saas-boilerplate.project.list": createComponentPresentation("saas-boilerplate.project.list", "Project List", "Project list for the SaaS boilerplate example.", "Browse projects and their current lifecycle state.", "Sandbox presentation used for markdown previews.", "ProjectListView"),
|
|
691
|
+
"visualization-showcase.gallery": createComponentPresentation("visualization-showcase.gallery", "Visualization Showcase", "Focused showcase of ContractSpec visualization primitives.", "Review the canonical visualization catalog and design-system wrappers.", "Sandbox presentation used for markdown previews.", "VisualizationShowcase"),
|
|
692
|
+
"workflow-system.dashboard": createComponentPresentation("workflow-system.dashboard", "Workflow Dashboard", "Dashboard for the workflow system example.", "Review workflow instance health and workload metrics.", "Sandbox presentation used for markdown previews.", "WorkflowDashboard"),
|
|
693
|
+
"workflow-system.definition.list": createComponentPresentation("workflow-system.definition.list", "Workflow Definition List", "Workflow definitions in the workflow system example.", "Browse available workflow definitions.", "Sandbox presentation used for markdown previews.", "WorkflowDefinitionList"),
|
|
694
|
+
"workflow-system.instance.detail": createComponentPresentation("workflow-system.instance.detail", "Workflow Instance Detail", "Workflow instance details in the workflow system example.", "Inspect the state and approvals for a workflow instance.", "Sandbox presentation used for markdown previews.", "WorkflowInstanceDetail")
|
|
695
|
+
};
|
|
696
|
+
function resolveTemplatePresentation(presentationName) {
|
|
697
|
+
return TEMPLATE_PRESENTATIONS[presentationName];
|
|
698
|
+
}
|
|
699
|
+
|
|
600
700
|
// src/runtime/context.tsx
|
|
601
701
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
602
702
|
"use client";
|
|
@@ -627,7 +727,7 @@ class TemplateHandlers {
|
|
|
627
727
|
}
|
|
628
728
|
function TemplateRuntimeProvider({
|
|
629
729
|
templateId,
|
|
630
|
-
projectId = "
|
|
730
|
+
projectId = "local-project",
|
|
631
731
|
lazy = false,
|
|
632
732
|
children
|
|
633
733
|
}) {
|
|
@@ -652,7 +752,7 @@ function TemplateRuntimeProvider({
|
|
|
652
752
|
const handlers = new TemplateHandlers;
|
|
653
753
|
handlers.crm = createCrmHandlers(runtime.db);
|
|
654
754
|
handlers.saas = createSaasHandlers(runtime.db);
|
|
655
|
-
handlers.agent =
|
|
755
|
+
handlers.agent = createAgentConsoleDemoHandlers({ projectId });
|
|
656
756
|
handlers.workflow = createWorkflowHandlers(runtime.db);
|
|
657
757
|
handlers.marketplace = createMarketplaceHandlers(runtime.db);
|
|
658
758
|
handlers.integration = createIntegrationHandlers(runtime.db);
|
|
@@ -749,37 +849,19 @@ function TemplateRuntimeProvider({
|
|
|
749
849
|
};
|
|
750
850
|
}
|
|
751
851
|
if (presentationName === "agent-console.dashboard") {
|
|
752
|
-
const
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
limit: 10
|
|
757
|
-
}),
|
|
758
|
-
handlers.agent.listRuns({ projectId, limit: 10 }),
|
|
759
|
-
handlers.agent.listTools({
|
|
760
|
-
projectId,
|
|
761
|
-
organizationId: "demo-org",
|
|
762
|
-
limit: 10
|
|
763
|
-
})
|
|
764
|
-
]);
|
|
852
|
+
const data = await getAgentConsoleDashboardData(handlers.agent, {
|
|
853
|
+
projectId,
|
|
854
|
+
organizationId: AGENT_CONSOLE_DEMO_ORGANIZATION_ID
|
|
855
|
+
});
|
|
765
856
|
return {
|
|
766
|
-
data
|
|
767
|
-
agents: agentsResult.items,
|
|
768
|
-
runs: runsResult.items,
|
|
769
|
-
tools: toolsResult.items,
|
|
770
|
-
summary: {
|
|
771
|
-
totalAgents: agentsResult.total,
|
|
772
|
-
totalRuns: runsResult.total,
|
|
773
|
-
totalTools: toolsResult.total
|
|
774
|
-
}
|
|
775
|
-
},
|
|
857
|
+
data,
|
|
776
858
|
metadata: { timestamp: new Date, source: "agent-console" }
|
|
777
859
|
};
|
|
778
860
|
}
|
|
779
|
-
if (presentationName === "agent-console.agent.list") {
|
|
861
|
+
if (presentationName === "agent-console.agent.viewList" || presentationName === "agent-console.agent.list") {
|
|
780
862
|
const result = await handlers.agent.listAgents({
|
|
781
863
|
projectId,
|
|
782
|
-
organizationId:
|
|
864
|
+
organizationId: AGENT_CONSOLE_DEMO_ORGANIZATION_ID,
|
|
783
865
|
limit: 50
|
|
784
866
|
});
|
|
785
867
|
return {
|
|
@@ -805,10 +887,10 @@ function TemplateRuntimeProvider({
|
|
|
805
887
|
}
|
|
806
888
|
};
|
|
807
889
|
}
|
|
808
|
-
if (presentationName === "agent-console.tool.registry") {
|
|
890
|
+
if (presentationName === "agent-console.tool.list" || presentationName === "agent-console.tool.registry") {
|
|
809
891
|
const result = await handlers.agent.listTools({
|
|
810
892
|
projectId,
|
|
811
|
-
organizationId:
|
|
893
|
+
organizationId: AGENT_CONSOLE_DEMO_ORGANIZATION_ID,
|
|
812
894
|
limit: 50
|
|
813
895
|
});
|
|
814
896
|
return {
|
|
@@ -820,6 +902,15 @@ function TemplateRuntimeProvider({
|
|
|
820
902
|
}
|
|
821
903
|
};
|
|
822
904
|
}
|
|
905
|
+
if (presentationName === "visualization-showcase.gallery") {
|
|
906
|
+
return {
|
|
907
|
+
data: null,
|
|
908
|
+
metadata: {
|
|
909
|
+
timestamp: new Date,
|
|
910
|
+
source: "visualization-showcase"
|
|
911
|
+
}
|
|
912
|
+
};
|
|
913
|
+
}
|
|
823
914
|
console.warn(`No data fetcher found for presentation: ${presentationName}`);
|
|
824
915
|
return {
|
|
825
916
|
data: null,
|
|
@@ -836,7 +927,8 @@ function TemplateRuntimeProvider({
|
|
|
836
927
|
projectId,
|
|
837
928
|
engine,
|
|
838
929
|
handlers,
|
|
839
|
-
fetchData
|
|
930
|
+
fetchData,
|
|
931
|
+
resolvePresentation: resolveTemplatePresentation
|
|
840
932
|
});
|
|
841
933
|
}
|
|
842
934
|
} catch (err) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/module.examples",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.2",
|
|
4
4
|
"description": "Example contract specifications collection",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"contractspec",
|
|
@@ -33,63 +33,68 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@apollo/client": "^4.1.6",
|
|
36
|
-
"@contractspec/example.agent-console": "3.
|
|
37
|
-
"@contractspec/example.ai-chat-assistant": "3.
|
|
38
|
-
"@contractspec/example.ai-support-bot": "3.7.
|
|
39
|
-
"@contractspec/example.analytics-dashboard": "3.
|
|
40
|
-
"@contractspec/example.calendar-google": "3.7.
|
|
41
|
-
"@contractspec/example.content-generation": "3.7.
|
|
42
|
-
"@contractspec/example.crm-pipeline": "3.7.
|
|
43
|
-
"@contractspec/example.
|
|
44
|
-
"@contractspec/example.
|
|
45
|
-
"@contractspec/example.
|
|
46
|
-
"@contractspec/example.integration-
|
|
47
|
-
"@contractspec/example.integration-
|
|
48
|
-
"@contractspec/example.integration-
|
|
49
|
-
"@contractspec/example.
|
|
50
|
-
"@contractspec/example.
|
|
51
|
-
"@contractspec/example.
|
|
52
|
-
"@contractspec/example.
|
|
53
|
-
"@contractspec/example.learning-journey-
|
|
54
|
-
"@contractspec/example.learning-journey-
|
|
55
|
-
"@contractspec/example.learning-journey-
|
|
56
|
-
"@contractspec/example.learning-journey-
|
|
57
|
-
"@contractspec/example.learning-journey-
|
|
58
|
-
"@contractspec/example.learning-journey-
|
|
59
|
-
"@contractspec/example.learning-journey-
|
|
60
|
-
"@contractspec/example.learning-journey-ui-
|
|
61
|
-
"@contractspec/example.learning-journey-ui-
|
|
62
|
-
"@contractspec/example.learning-journey-ui-
|
|
63
|
-
"@contractspec/example.learning-
|
|
64
|
-
"@contractspec/example.
|
|
65
|
-
"@contractspec/example.lifecycle-
|
|
66
|
-
"@contractspec/example.
|
|
67
|
-
"@contractspec/example.
|
|
68
|
-
"@contractspec/example.
|
|
69
|
-
"@contractspec/example.
|
|
70
|
-
"@contractspec/example.
|
|
71
|
-
"@contractspec/example.
|
|
72
|
-
"@contractspec/example.
|
|
73
|
-
"@contractspec/example.
|
|
74
|
-
"@contractspec/example.
|
|
75
|
-
"@contractspec/example.
|
|
76
|
-
"@contractspec/example.
|
|
77
|
-
"@contractspec/example.
|
|
78
|
-
"@contractspec/example.
|
|
79
|
-
"@contractspec/example.
|
|
80
|
-
"@contractspec/example.
|
|
81
|
-
"@contractspec/example.
|
|
82
|
-
"@contractspec/example.
|
|
83
|
-
"@contractspec/example.
|
|
84
|
-
"@contractspec/
|
|
85
|
-
"@contractspec/
|
|
86
|
-
"@contractspec/
|
|
36
|
+
"@contractspec/example.agent-console": "3.8.2",
|
|
37
|
+
"@contractspec/example.ai-chat-assistant": "3.8.2",
|
|
38
|
+
"@contractspec/example.ai-support-bot": "3.7.10",
|
|
39
|
+
"@contractspec/example.analytics-dashboard": "3.9.2",
|
|
40
|
+
"@contractspec/example.calendar-google": "3.7.10",
|
|
41
|
+
"@contractspec/example.content-generation": "3.7.10",
|
|
42
|
+
"@contractspec/example.crm-pipeline": "3.7.10",
|
|
43
|
+
"@contractspec/example.data-grid-showcase": "3.8.2",
|
|
44
|
+
"@contractspec/example.email-gmail": "3.7.10",
|
|
45
|
+
"@contractspec/example.in-app-docs": "3.7.10",
|
|
46
|
+
"@contractspec/example.integration-hub": "3.8.2",
|
|
47
|
+
"@contractspec/example.integration-posthog": "3.7.10",
|
|
48
|
+
"@contractspec/example.integration-stripe": "3.7.10",
|
|
49
|
+
"@contractspec/example.integration-supabase": "3.7.10",
|
|
50
|
+
"@contractspec/example.voice-providers": "3.7.10",
|
|
51
|
+
"@contractspec/example.kb-update-pipeline": "3.7.10",
|
|
52
|
+
"@contractspec/example.knowledge-canon": "3.7.10",
|
|
53
|
+
"@contractspec/example.learning-journey-ambient-coach": "3.7.10",
|
|
54
|
+
"@contractspec/example.learning-journey-crm-onboarding": "3.7.10",
|
|
55
|
+
"@contractspec/example.learning-journey-duo-drills": "3.7.10",
|
|
56
|
+
"@contractspec/example.learning-journey-platform-tour": "3.7.10",
|
|
57
|
+
"@contractspec/example.learning-journey-quest-challenges": "3.7.10",
|
|
58
|
+
"@contractspec/example.learning-journey-registry": "3.7.10",
|
|
59
|
+
"@contractspec/example.learning-journey-studio-onboarding": "3.7.10",
|
|
60
|
+
"@contractspec/example.learning-journey-ui-coaching": "3.7.10",
|
|
61
|
+
"@contractspec/example.learning-journey-ui-gamified": "3.7.10",
|
|
62
|
+
"@contractspec/example.learning-journey-ui-onboarding": "3.7.10",
|
|
63
|
+
"@contractspec/example.learning-journey-ui-shared": "3.7.10",
|
|
64
|
+
"@contractspec/example.learning-patterns": "3.7.10",
|
|
65
|
+
"@contractspec/example.lifecycle-cli": "3.7.10",
|
|
66
|
+
"@contractspec/example.lifecycle-dashboard": "3.7.10",
|
|
67
|
+
"@contractspec/example.locale-jurisdiction-gate": "3.7.10",
|
|
68
|
+
"@contractspec/example.marketplace": "3.8.2",
|
|
69
|
+
"@contractspec/example.meeting-recorder-providers": "3.7.10",
|
|
70
|
+
"@contractspec/example.messaging-agent-actions": "3.8.2",
|
|
71
|
+
"@contractspec/example.minimal": "2.8.2",
|
|
72
|
+
"@contractspec/example.openbanking-powens": "3.7.10",
|
|
73
|
+
"@contractspec/example.opencode-cli": "2.8.2",
|
|
74
|
+
"@contractspec/example.personalization": "3.7.10",
|
|
75
|
+
"@contractspec/example.pocket-family-office": "3.7.10",
|
|
76
|
+
"@contractspec/example.policy-safe-knowledge-assistant": "3.7.10",
|
|
77
|
+
"@contractspec/example.product-intent": "3.7.10",
|
|
78
|
+
"@contractspec/example.project-management-sync": "3.7.10",
|
|
79
|
+
"@contractspec/example.saas-boilerplate": "3.8.2",
|
|
80
|
+
"@contractspec/example.service-business-os": "3.7.10",
|
|
81
|
+
"@contractspec/example.team-hub": "3.7.10",
|
|
82
|
+
"@contractspec/example.versioned-knowledge-base": "3.7.10",
|
|
83
|
+
"@contractspec/example.video-api-showcase": "3.7.10",
|
|
84
|
+
"@contractspec/example.video-docs-terminal": "3.7.10",
|
|
85
|
+
"@contractspec/example.video-marketing-clip": "3.7.10",
|
|
86
|
+
"@contractspec/example.visualization-showcase": "3.9.2",
|
|
87
|
+
"@contractspec/example.wealth-snapshot": "3.7.10",
|
|
88
|
+
"@contractspec/example.workflow-system": "3.8.2",
|
|
89
|
+
"@contractspec/lib.contracts-spec": "4.1.2",
|
|
90
|
+
"@contractspec/lib.example-shared-ui": "6.0.10",
|
|
91
|
+
"@contractspec/lib.runtime-sandbox": "2.7.9",
|
|
87
92
|
"zod": "^4.3.5"
|
|
88
93
|
},
|
|
89
94
|
"devDependencies": {
|
|
90
|
-
"@contractspec/tool.typescript": "3.7.
|
|
95
|
+
"@contractspec/tool.typescript": "3.7.8",
|
|
91
96
|
"typescript": "^5.9.3",
|
|
92
|
-
"@contractspec/tool.bun": "3.7.
|
|
97
|
+
"@contractspec/tool.bun": "3.7.8"
|
|
93
98
|
},
|
|
94
99
|
"exports": {
|
|
95
100
|
".": {
|