@nex-ai/nex 0.1.65 → 0.2.0
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 +236 -231
- package/bin/nex-mcp.js +50 -0
- package/bin/nex.js +53 -0
- package/package.json +9 -36
- package/dist/agent/adoption.d.ts +0 -23
- package/dist/agent/adoption.js +0 -87
- package/dist/agent/adoption.js.map +0 -1
- package/dist/agent/gossip.d.ts +0 -17
- package/dist/agent/gossip.js +0 -48
- package/dist/agent/gossip.js.map +0 -1
- package/dist/agent/loop.d.ts +0 -59
- package/dist/agent/loop.js +0 -389
- package/dist/agent/loop.js.map +0 -1
- package/dist/agent/queues.d.ts +0 -16
- package/dist/agent/queues.js +0 -44
- package/dist/agent/queues.js.map +0 -1
- package/dist/agent/session-store.d.ts +0 -21
- package/dist/agent/session-store.js +0 -96
- package/dist/agent/session-store.js.map +0 -1
- package/dist/agent/templates.d.ts +0 -5
- package/dist/agent/templates.js +0 -55
- package/dist/agent/templates.js.map +0 -1
- package/dist/agent/tools.d.ts +0 -25
- package/dist/agent/tools.js +0 -238
- package/dist/agent/tools.js.map +0 -1
- package/dist/agent/types.d.ts +0 -59
- package/dist/agent/types.js +0 -5
- package/dist/agent/types.js.map +0 -1
- package/dist/calendar/scheduler.d.ts +0 -32
- package/dist/calendar/scheduler.js +0 -178
- package/dist/calendar/scheduler.js.map +0 -1
- package/dist/calendar/store.d.ts +0 -15
- package/dist/calendar/store.js +0 -50
- package/dist/calendar/store.js.map +0 -1
- package/dist/calendar/types.d.ts +0 -17
- package/dist/calendar/types.js +0 -5
- package/dist/calendar/types.js.map +0 -1
- package/dist/chat/channel.d.ts +0 -20
- package/dist/chat/channel.js +0 -84
- package/dist/chat/channel.js.map +0 -1
- package/dist/chat/message-store.d.ts +0 -18
- package/dist/chat/message-store.js +0 -82
- package/dist/chat/message-store.js.map +0 -1
- package/dist/chat/router.d.ts +0 -17
- package/dist/chat/router.js +0 -65
- package/dist/chat/router.js.map +0 -1
- package/dist/chat/suggested-responses.d.ts +0 -6
- package/dist/chat/suggested-responses.js +0 -99
- package/dist/chat/suggested-responses.js.map +0 -1
- package/dist/chat/types.d.ts +0 -28
- package/dist/chat/types.js +0 -5
- package/dist/chat/types.js.map +0 -1
- package/dist/cli.d.ts +0 -5
- package/dist/cli.js +0 -20
- package/dist/cli.js.map +0 -1
- package/dist/commands/attribute.d.ts +0 -4
- package/dist/commands/attribute.js +0 -75
- package/dist/commands/attribute.js.map +0 -1
- package/dist/commands/config-cmd.d.ts +0 -4
- package/dist/commands/config-cmd.js +0 -53
- package/dist/commands/config-cmd.js.map +0 -1
- package/dist/commands/context.d.ts +0 -4
- package/dist/commands/context.js +0 -167
- package/dist/commands/context.js.map +0 -1
- package/dist/commands/dispatch.d.ts +0 -44
- package/dist/commands/dispatch.js +0 -1544
- package/dist/commands/dispatch.js.map +0 -1
- package/dist/commands/graph.d.ts +0 -5
- package/dist/commands/graph.js +0 -77
- package/dist/commands/graph.js.map +0 -1
- package/dist/commands/init.d.ts +0 -49
- package/dist/commands/init.js +0 -319
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/insight.d.ts +0 -4
- package/dist/commands/insight.js +0 -39
- package/dist/commands/insight.js.map +0 -1
- package/dist/commands/integrate.d.ts +0 -4
- package/dist/commands/integrate.js +0 -361
- package/dist/commands/integrate.js.map +0 -1
- package/dist/commands/list-job.d.ts +0 -4
- package/dist/commands/list-job.js +0 -41
- package/dist/commands/list-job.js.map +0 -1
- package/dist/commands/list.d.ts +0 -4
- package/dist/commands/list.js +0 -148
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/note.d.ts +0 -4
- package/dist/commands/note.js +0 -77
- package/dist/commands/note.js.map +0 -1
- package/dist/commands/object.d.ts +0 -4
- package/dist/commands/object.js +0 -78
- package/dist/commands/object.js.map +0 -1
- package/dist/commands/parse-input.d.ts +0 -5
- package/dist/commands/parse-input.js +0 -37
- package/dist/commands/parse-input.js.map +0 -1
- package/dist/commands/record.d.ts +0 -4
- package/dist/commands/record.js +0 -126
- package/dist/commands/record.js.map +0 -1
- package/dist/commands/register.d.ts +0 -4
- package/dist/commands/register.js +0 -23
- package/dist/commands/register.js.map +0 -1
- package/dist/commands/relationship.d.ts +0 -4
- package/dist/commands/relationship.js +0 -80
- package/dist/commands/relationship.js.map +0 -1
- package/dist/commands/scan.d.ts +0 -4
- package/dist/commands/scan.js +0 -111
- package/dist/commands/scan.js.map +0 -1
- package/dist/commands/search.d.ts +0 -4
- package/dist/commands/search.js +0 -62
- package/dist/commands/search.js.map +0 -1
- package/dist/commands/session.d.ts +0 -4
- package/dist/commands/session.js +0 -31
- package/dist/commands/session.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -25
- package/dist/commands/setup.js +0 -584
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/task.d.ts +0 -4
- package/dist/commands/task.js +0 -140
- package/dist/commands/task.js.map +0 -1
- package/dist/commands/workspace.d.ts +0 -8
- package/dist/commands/workspace.js +0 -251
- package/dist/commands/workspace.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.js +0 -142
- package/dist/index.js.map +0 -1
- package/dist/lib/capture-filter.d.ts +0 -9
- package/dist/lib/capture-filter.js +0 -14
- package/dist/lib/capture-filter.js.map +0 -1
- package/dist/lib/client.d.ts +0 -20
- package/dist/lib/client.js +0 -160
- package/dist/lib/client.js.map +0 -1
- package/dist/lib/compounding-worker.d.ts +0 -2
- package/dist/lib/compounding-worker.js +0 -21
- package/dist/lib/compounding-worker.js.map +0 -1
- package/dist/lib/compounding.d.ts +0 -20
- package/dist/lib/compounding.js +0 -45
- package/dist/lib/compounding.js.map +0 -1
- package/dist/lib/config.d.ts +0 -35
- package/dist/lib/config.js +0 -96
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/context-format.d.ts +0 -7
- package/dist/lib/context-format.js +0 -21
- package/dist/lib/context-format.js.map +0 -1
- package/dist/lib/errors.d.ts +0 -18
- package/dist/lib/errors.js +0 -30
- package/dist/lib/errors.js.map +0 -1
- package/dist/lib/file-scanner.d.ts +0 -38
- package/dist/lib/file-scanner.js +0 -188
- package/dist/lib/file-scanner.js.map +0 -1
- package/dist/lib/graph-html.d.ts +0 -59
- package/dist/lib/graph-html.js +0 -859
- package/dist/lib/graph-html.js.map +0 -1
- package/dist/lib/installers.d.ts +0 -80
- package/dist/lib/installers.js +0 -602
- package/dist/lib/installers.js.map +0 -1
- package/dist/lib/integrations.d.ts +0 -23
- package/dist/lib/integrations.js +0 -25
- package/dist/lib/integrations.js.map +0 -1
- package/dist/lib/output.d.ts +0 -7
- package/dist/lib/output.js +0 -70
- package/dist/lib/output.js.map +0 -1
- package/dist/lib/platform-detect.d.ts +0 -23
- package/dist/lib/platform-detect.js +0 -359
- package/dist/lib/platform-detect.js.map +0 -1
- package/dist/lib/project-config.d.ts +0 -53
- package/dist/lib/project-config.js +0 -151
- package/dist/lib/project-config.js.map +0 -1
- package/dist/lib/prompt.d.ts +0 -15
- package/dist/lib/prompt.js +0 -213
- package/dist/lib/prompt.js.map +0 -1
- package/dist/lib/rate-limiter.d.ts +0 -13
- package/dist/lib/rate-limiter.js +0 -49
- package/dist/lib/rate-limiter.js.map +0 -1
- package/dist/lib/recall-filter.d.ts +0 -5
- package/dist/lib/recall-filter.js +0 -24
- package/dist/lib/recall-filter.js.map +0 -1
- package/dist/lib/session-store.d.ts +0 -15
- package/dist/lib/session-store.js +0 -62
- package/dist/lib/session-store.js.map +0 -1
- package/dist/lib/tui.d.ts +0 -57
- package/dist/lib/tui.js +0 -247
- package/dist/lib/tui.js.map +0 -1
- package/dist/lib/workspace-registry.d.ts +0 -47
- package/dist/lib/workspace-registry.js +0 -240
- package/dist/lib/workspace-registry.js.map +0 -1
- package/dist/mcp/channel.d.ts +0 -24
- package/dist/mcp/channel.js +0 -198
- package/dist/mcp/channel.js.map +0 -1
- package/dist/mcp/client.d.ts +0 -20
- package/dist/mcp/client.js +0 -131
- package/dist/mcp/client.js.map +0 -1
- package/dist/mcp/config.d.ts +0 -19
- package/dist/mcp/config.js +0 -48
- package/dist/mcp/config.js.map +0 -1
- package/dist/mcp/context-files.d.ts +0 -9
- package/dist/mcp/context-files.js +0 -90
- package/dist/mcp/context-files.js.map +0 -1
- package/dist/mcp/file-manifest.d.ts +0 -27
- package/dist/mcp/file-manifest.js +0 -68
- package/dist/mcp/file-manifest.js.map +0 -1
- package/dist/mcp/file-scanner.d.ts +0 -17
- package/dist/mcp/file-scanner.js +0 -77
- package/dist/mcp/file-scanner.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -2
- package/dist/mcp/index.js +0 -51
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/rate-limiter.d.ts +0 -14
- package/dist/mcp/rate-limiter.js +0 -60
- package/dist/mcp/rate-limiter.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -6
- package/dist/mcp/server.js +0 -44
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/session-store.d.ts +0 -16
- package/dist/mcp/session-store.js +0 -70
- package/dist/mcp/session-store.js.map +0 -1
- package/dist/mcp/tools/context.d.ts +0 -3
- package/dist/mcp/tools/context.js +0 -65
- package/dist/mcp/tools/context.js.map +0 -1
- package/dist/mcp/tools/insights.d.ts +0 -3
- package/dist/mcp/tools/insights.js +0 -24
- package/dist/mcp/tools/insights.js.map +0 -1
- package/dist/mcp/tools/integrations.d.ts +0 -3
- package/dist/mcp/tools/integrations.js +0 -27
- package/dist/mcp/tools/integrations.js.map +0 -1
- package/dist/mcp/tools/lists.d.ts +0 -3
- package/dist/mcp/tools/lists.js +0 -101
- package/dist/mcp/tools/lists.js.map +0 -1
- package/dist/mcp/tools/notes.d.ts +0 -3
- package/dist/mcp/tools/notes.js +0 -52
- package/dist/mcp/tools/notes.js.map +0 -1
- package/dist/mcp/tools/notifications.d.ts +0 -3
- package/dist/mcp/tools/notifications.js +0 -53
- package/dist/mcp/tools/notifications.js.map +0 -1
- package/dist/mcp/tools/records.d.ts +0 -3
- package/dist/mcp/tools/records.js +0 -74
- package/dist/mcp/tools/records.js.map +0 -1
- package/dist/mcp/tools/register.d.ts +0 -3
- package/dist/mcp/tools/register.js +0 -41
- package/dist/mcp/tools/register.js.map +0 -1
- package/dist/mcp/tools/relationships.d.ts +0 -3
- package/dist/mcp/tools/relationships.js +0 -47
- package/dist/mcp/tools/relationships.js.map +0 -1
- package/dist/mcp/tools/scan.d.ts +0 -3
- package/dist/mcp/tools/scan.js +0 -37
- package/dist/mcp/tools/scan.js.map +0 -1
- package/dist/mcp/tools/schema.d.ts +0 -3
- package/dist/mcp/tools/schema.js +0 -108
- package/dist/mcp/tools/schema.js.map +0 -1
- package/dist/mcp/tools/search.d.ts +0 -3
- package/dist/mcp/tools/search.js +0 -8
- package/dist/mcp/tools/search.js.map +0 -1
- package/dist/mcp/tools/tasks.d.ts +0 -3
- package/dist/mcp/tools/tasks.js +0 -88
- package/dist/mcp/tools/tasks.js.map +0 -1
- package/dist/mcp/workspace-data-dir.d.ts +0 -2
- package/dist/mcp/workspace-data-dir.js +0 -28
- package/dist/mcp/workspace-data-dir.js.map +0 -1
- package/dist/orchestration/budget.d.ts +0 -32
- package/dist/orchestration/budget.js +0 -72
- package/dist/orchestration/budget.js.map +0 -1
- package/dist/orchestration/executor.d.ts +0 -59
- package/dist/orchestration/executor.js +0 -197
- package/dist/orchestration/executor.js.map +0 -1
- package/dist/orchestration/router.d.ts +0 -30
- package/dist/orchestration/router.js +0 -98
- package/dist/orchestration/router.js.map +0 -1
- package/dist/orchestration/templates.d.ts +0 -11
- package/dist/orchestration/templates.js +0 -99
- package/dist/orchestration/templates.js.map +0 -1
- package/dist/orchestration/types.d.ts +0 -58
- package/dist/orchestration/types.js +0 -7
- package/dist/orchestration/types.js.map +0 -1
- package/dist/plugin/auto-capture.d.ts +0 -11
- package/dist/plugin/auto-capture.js +0 -135
- package/dist/plugin/auto-capture.js.map +0 -1
- package/dist/plugin/auto-recall-worker.d.ts +0 -2
- package/dist/plugin/auto-recall-worker.js +0 -74
- package/dist/plugin/auto-recall-worker.js.map +0 -1
- package/dist/plugin/auto-recall.d.ts +0 -11
- package/dist/plugin/auto-recall.js +0 -186
- package/dist/plugin/auto-recall.js.map +0 -1
- package/dist/plugin/auto-register.d.ts +0 -10
- package/dist/plugin/auto-register.js +0 -81
- package/dist/plugin/auto-register.js.map +0 -1
- package/dist/plugin/auto-scan.d.ts +0 -10
- package/dist/plugin/auto-scan.js +0 -54
- package/dist/plugin/auto-scan.js.map +0 -1
- package/dist/plugin/auto-session-start.d.ts +0 -14
- package/dist/plugin/auto-session-start.js +0 -156
- package/dist/plugin/auto-session-start.js.map +0 -1
- package/dist/plugin/capture-filter.d.ts +0 -21
- package/dist/plugin/capture-filter.js +0 -32
- package/dist/plugin/capture-filter.js.map +0 -1
- package/dist/plugin/config.d.ts +0 -61
- package/dist/plugin/config.js +0 -182
- package/dist/plugin/config.js.map +0 -1
- package/dist/plugin/context-files.d.ts +0 -23
- package/dist/plugin/context-files.js +0 -103
- package/dist/plugin/context-files.js.map +0 -1
- package/dist/plugin/context-format.d.ts +0 -18
- package/dist/plugin/context-format.js +0 -34
- package/dist/plugin/context-format.js.map +0 -1
- package/dist/plugin/file-manifest.d.ts +0 -27
- package/dist/plugin/file-manifest.js +0 -68
- package/dist/plugin/file-manifest.js.map +0 -1
- package/dist/plugin/file-scanner.d.ts +0 -19
- package/dist/plugin/file-scanner.js +0 -90
- package/dist/plugin/file-scanner.js.map +0 -1
- package/dist/plugin/nex-client.d.ts +0 -50
- package/dist/plugin/nex-client.js +0 -129
- package/dist/plugin/nex-client.js.map +0 -1
- package/dist/plugin/rate-limiter.d.ts +0 -26
- package/dist/plugin/rate-limiter.js +0 -65
- package/dist/plugin/rate-limiter.js.map +0 -1
- package/dist/plugin/recall-cache.d.ts +0 -41
- package/dist/plugin/recall-cache.js +0 -195
- package/dist/plugin/recall-cache.js.map +0 -1
- package/dist/plugin/recall-filter.d.ts +0 -13
- package/dist/plugin/recall-filter.js +0 -39
- package/dist/plugin/recall-filter.js.map +0 -1
- package/dist/plugin/session-store.d.ts +0 -23
- package/dist/plugin/session-store.js +0 -73
- package/dist/plugin/session-store.js.map +0 -1
- package/dist/plugin/workspace-data-dir.d.ts +0 -2
- package/dist/plugin/workspace-data-dir.js +0 -31
- package/dist/plugin/workspace-data-dir.js.map +0 -1
- package/dist/tui/agent-colors.d.ts +0 -19
- package/dist/tui/agent-colors.js +0 -34
- package/dist/tui/agent-colors.js.map +0 -1
- package/dist/tui/app.d.ts +0 -14
- package/dist/tui/app.js +0 -181
- package/dist/tui/app.js.map +0 -1
- package/dist/tui/channel-colors.d.ts +0 -16
- package/dist/tui/channel-colors.js +0 -43
- package/dist/tui/channel-colors.js.map +0 -1
- package/dist/tui/components/agent-card.d.ts +0 -11
- package/dist/tui/components/agent-card.js +0 -40
- package/dist/tui/components/agent-card.js.map +0 -1
- package/dist/tui/components/banner.d.ts +0 -44
- package/dist/tui/components/banner.js +0 -130
- package/dist/tui/components/banner.js.map +0 -1
- package/dist/tui/components/channel-colors.d.ts +0 -21
- package/dist/tui/components/channel-colors.js +0 -53
- package/dist/tui/components/channel-colors.js.map +0 -1
- package/dist/tui/components/channel-message.d.ts +0 -53
- package/dist/tui/components/channel-message.js +0 -66
- package/dist/tui/components/channel-message.js.map +0 -1
- package/dist/tui/components/chat-input.d.ts +0 -11
- package/dist/tui/components/chat-input.js +0 -19
- package/dist/tui/components/chat-input.js.map +0 -1
- package/dist/tui/components/data-table.d.ts +0 -11
- package/dist/tui/components/data-table.js +0 -47
- package/dist/tui/components/data-table.js.map +0 -1
- package/dist/tui/components/error-box.d.ts +0 -11
- package/dist/tui/components/error-box.js +0 -59
- package/dist/tui/components/error-box.js.map +0 -1
- package/dist/tui/components/help-screen.d.ts +0 -3
- package/dist/tui/components/help-screen.js +0 -63
- package/dist/tui/components/help-screen.js.map +0 -1
- package/dist/tui/components/index.d.ts +0 -17
- package/dist/tui/components/index.js +0 -10
- package/dist/tui/components/index.js.map +0 -1
- package/dist/tui/components/inline-confirm.d.ts +0 -14
- package/dist/tui/components/inline-confirm.js +0 -13
- package/dist/tui/components/inline-confirm.js.map +0 -1
- package/dist/tui/components/inline-select.d.ts +0 -21
- package/dist/tui/components/inline-select.js +0 -20
- package/dist/tui/components/inline-select.js.map +0 -1
- package/dist/tui/components/markdown.d.ts +0 -6
- package/dist/tui/components/markdown.js +0 -179
- package/dist/tui/components/markdown.js.map +0 -1
- package/dist/tui/components/mention-autocomplete.d.ts +0 -79
- package/dist/tui/components/mention-autocomplete.js +0 -250
- package/dist/tui/components/mention-autocomplete.js.map +0 -1
- package/dist/tui/components/message-list.d.ts +0 -18
- package/dist/tui/components/message-list.js +0 -29
- package/dist/tui/components/message-list.js.map +0 -1
- package/dist/tui/components/picker.d.ts +0 -16
- package/dist/tui/components/picker.js +0 -32
- package/dist/tui/components/picker.js.map +0 -1
- package/dist/tui/components/progress-steps.d.ts +0 -13
- package/dist/tui/components/progress-steps.js +0 -21
- package/dist/tui/components/progress-steps.js.map +0 -1
- package/dist/tui/components/slack/compose.d.ts +0 -27
- package/dist/tui/components/slack/compose.js +0 -147
- package/dist/tui/components/slack/compose.js.map +0 -1
- package/dist/tui/components/slack/layout.d.ts +0 -36
- package/dist/tui/components/slack/layout.js +0 -96
- package/dist/tui/components/slack/layout.js.map +0 -1
- package/dist/tui/components/slack/messages.d.ts +0 -72
- package/dist/tui/components/slack/messages.js +0 -177
- package/dist/tui/components/slack/messages.js.map +0 -1
- package/dist/tui/components/slack/quick-switcher.d.ts +0 -33
- package/dist/tui/components/slack/quick-switcher.js +0 -98
- package/dist/tui/components/slack/quick-switcher.js.map +0 -1
- package/dist/tui/components/slack/sidebar-types.d.ts +0 -65
- package/dist/tui/components/slack/sidebar-types.js +0 -7
- package/dist/tui/components/slack/sidebar-types.js.map +0 -1
- package/dist/tui/components/slack/sidebar.d.ts +0 -46
- package/dist/tui/components/slack/sidebar.js +0 -52
- package/dist/tui/components/slack/sidebar.js.map +0 -1
- package/dist/tui/components/slack/thread-panel.d.ts +0 -45
- package/dist/tui/components/slack/thread-panel.js +0 -47
- package/dist/tui/components/slack/thread-panel.js.map +0 -1
- package/dist/tui/components/slash-autocomplete.d.ts +0 -83
- package/dist/tui/components/slash-autocomplete.js +0 -233
- package/dist/tui/components/slash-autocomplete.js.map +0 -1
- package/dist/tui/components/spinner.d.ts +0 -17
- package/dist/tui/components/spinner.js +0 -30
- package/dist/tui/components/spinner.js.map +0 -1
- package/dist/tui/components/status-bar.d.ts +0 -23
- package/dist/tui/components/status-bar.js +0 -55
- package/dist/tui/components/status-bar.js.map +0 -1
- package/dist/tui/components/success-box.d.ts +0 -7
- package/dist/tui/components/success-box.js +0 -10
- package/dist/tui/components/success-box.js.map +0 -1
- package/dist/tui/components/tool-indicator.d.ts +0 -12
- package/dist/tui/components/tool-indicator.js +0 -18
- package/dist/tui/components/tool-indicator.js.map +0 -1
- package/dist/tui/components/viewport.d.ts +0 -9
- package/dist/tui/components/viewport.js +0 -24
- package/dist/tui/components/viewport.js.map +0 -1
- package/dist/tui/generative/bindings.d.ts +0 -27
- package/dist/tui/generative/bindings.js +0 -152
- package/dist/tui/generative/bindings.js.map +0 -1
- package/dist/tui/generative/registry.d.ts +0 -19
- package/dist/tui/generative/registry.js +0 -31
- package/dist/tui/generative/registry.js.map +0 -1
- package/dist/tui/generative/renderer.d.ts +0 -24
- package/dist/tui/generative/renderer.js +0 -160
- package/dist/tui/generative/renderer.js.map +0 -1
- package/dist/tui/generative/types.d.ts +0 -68
- package/dist/tui/generative/types.js +0 -7
- package/dist/tui/generative/types.js.map +0 -1
- package/dist/tui/hooks/use-cancellable.d.ts +0 -28
- package/dist/tui/hooks/use-cancellable.js +0 -51
- package/dist/tui/hooks/use-cancellable.js.map +0 -1
- package/dist/tui/hooks/use-streaming.d.ts +0 -44
- package/dist/tui/hooks/use-streaming.js +0 -105
- package/dist/tui/hooks/use-streaming.js.map +0 -1
- package/dist/tui/index.d.ts +0 -4
- package/dist/tui/index.js +0 -7
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/keybindings.d.ts +0 -25
- package/dist/tui/keybindings.js +0 -277
- package/dist/tui/keybindings.js.map +0 -1
- package/dist/tui/register-views.d.ts +0 -8
- package/dist/tui/register-views.js +0 -122
- package/dist/tui/register-views.js.map +0 -1
- package/dist/tui/router.d.ts +0 -29
- package/dist/tui/router.js +0 -87
- package/dist/tui/router.js.map +0 -1
- package/dist/tui/services/agent-service.d.ts +0 -58
- package/dist/tui/services/agent-service.js +0 -197
- package/dist/tui/services/agent-service.js.map +0 -1
- package/dist/tui/services/calendar-service.d.ts +0 -31
- package/dist/tui/services/calendar-service.js +0 -133
- package/dist/tui/services/calendar-service.js.map +0 -1
- package/dist/tui/services/chat-service.d.ts +0 -28
- package/dist/tui/services/chat-service.js +0 -91
- package/dist/tui/services/chat-service.js.map +0 -1
- package/dist/tui/services/orchestration-service.d.ts +0 -42
- package/dist/tui/services/orchestration-service.js +0 -153
- package/dist/tui/services/orchestration-service.js.map +0 -1
- package/dist/tui/slash-commands.d.ts +0 -106
- package/dist/tui/slash-commands.js +0 -1421
- package/dist/tui/slash-commands.js.map +0 -1
- package/dist/tui/store.d.ts +0 -96
- package/dist/tui/store.js +0 -120
- package/dist/tui/store.js.map +0 -1
- package/dist/tui/theme.d.ts +0 -40
- package/dist/tui/theme.js +0 -39
- package/dist/tui/theme.js.map +0 -1
- package/dist/tui/tui-context.d.ts +0 -22
- package/dist/tui/tui-context.js +0 -17
- package/dist/tui/tui-context.js.map +0 -1
- package/dist/tui/views/agent-list.d.ts +0 -8
- package/dist/tui/views/agent-list.js +0 -11
- package/dist/tui/views/agent-list.js.map +0 -1
- package/dist/tui/views/ask-chat.d.ts +0 -9
- package/dist/tui/views/ask-chat.js +0 -40
- package/dist/tui/views/ask-chat.js.map +0 -1
- package/dist/tui/views/calendar.d.ts +0 -15
- package/dist/tui/views/calendar.js +0 -29
- package/dist/tui/views/calendar.js.map +0 -1
- package/dist/tui/views/chat.d.ts +0 -18
- package/dist/tui/views/chat.js +0 -28
- package/dist/tui/views/chat.js.map +0 -1
- package/dist/tui/views/generative.d.ts +0 -14
- package/dist/tui/views/generative.js +0 -37
- package/dist/tui/views/generative.js.map +0 -1
- package/dist/tui/views/help.d.ts +0 -6
- package/dist/tui/views/help.js +0 -9
- package/dist/tui/views/help.js.map +0 -1
- package/dist/tui/views/home-screen.d.ts +0 -67
- package/dist/tui/views/home-screen.js +0 -192
- package/dist/tui/views/home-screen.js.map +0 -1
- package/dist/tui/views/home.d.ts +0 -33
- package/dist/tui/views/home.js +0 -60
- package/dist/tui/views/home.js.map +0 -1
- package/dist/tui/views/index.d.ts +0 -20
- package/dist/tui/views/index.js +0 -11
- package/dist/tui/views/index.js.map +0 -1
- package/dist/tui/views/insights.d.ts +0 -19
- package/dist/tui/views/insights.js +0 -46
- package/dist/tui/views/insights.js.map +0 -1
- package/dist/tui/views/orchestration.d.ts +0 -18
- package/dist/tui/views/orchestration.js +0 -73
- package/dist/tui/views/orchestration.js.map +0 -1
- package/dist/tui/views/record-detail.d.ts +0 -10
- package/dist/tui/views/record-detail.js +0 -22
- package/dist/tui/views/record-detail.js.map +0 -1
- package/dist/tui/views/record-list.d.ts +0 -15
- package/dist/tui/views/record-list.js +0 -22
- package/dist/tui/views/record-list.js.map +0 -1
- package/dist/tui/views/slack-channel-header.d.ts +0 -15
- package/dist/tui/views/slack-channel-header.js +0 -16
- package/dist/tui/views/slack-channel-header.js.map +0 -1
- package/dist/tui/views/slack-home.d.ts +0 -21
- package/dist/tui/views/slack-home.js +0 -572
- package/dist/tui/views/slack-home.js.map +0 -1
- package/dist/tui/views/stream.d.ts +0 -16
- package/dist/tui/views/stream.js +0 -210
- package/dist/tui/views/stream.js.map +0 -1
- package/dist/tui/views/task-board.d.ts +0 -21
- package/dist/tui/views/task-board.js +0 -33
- package/dist/tui/views/task-board.js.map +0 -1
- package/dist/tui/views/timeline.d.ts +0 -17
- package/dist/tui/views/timeline.js +0 -24
- package/dist/tui/views/timeline.js.map +0 -1
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
3
|
-
// --- Colors (Bubbletea scheme) ---
|
|
4
|
-
const NEX_BLUE = "#2980fb";
|
|
5
|
-
const NEX_PURPLE = "#cf72d9";
|
|
6
|
-
const MODE_NORMAL_BG = NEX_BLUE;
|
|
7
|
-
const MODE_INSERT_BG = "#03a04c";
|
|
8
|
-
// --- Formatting helpers ---
|
|
9
|
-
export function formatTokens(n) {
|
|
10
|
-
if (n < 1000)
|
|
11
|
-
return String(n);
|
|
12
|
-
if (n < 10_000)
|
|
13
|
-
return `${(n / 1000).toFixed(1)}k`;
|
|
14
|
-
if (n < 1_000_000)
|
|
15
|
-
return `${Math.round(n / 1000)}k`;
|
|
16
|
-
return `${(n / 1_000_000).toFixed(1)}M`;
|
|
17
|
-
}
|
|
18
|
-
export function formatCost(usd) {
|
|
19
|
-
if (usd < 0.001)
|
|
20
|
-
return "$0.00";
|
|
21
|
-
if (usd < 1)
|
|
22
|
-
return `$${usd.toFixed(3)}`;
|
|
23
|
-
return `$${usd.toFixed(2)}`;
|
|
24
|
-
}
|
|
25
|
-
export function formatElapsed(startTime, now) {
|
|
26
|
-
const ms = (now ?? Date.now()) - startTime;
|
|
27
|
-
const totalSecs = Math.max(0, Math.floor(ms / 1000));
|
|
28
|
-
const mins = Math.floor(totalSecs / 60);
|
|
29
|
-
const secs = totalSecs % 60;
|
|
30
|
-
if (mins === 0)
|
|
31
|
-
return `${secs}s`;
|
|
32
|
-
return `${mins}m${String(secs).padStart(2, "0")}s`;
|
|
33
|
-
}
|
|
34
|
-
// --- Separator ---
|
|
35
|
-
const SEP = " \u2503 "; // ┃
|
|
36
|
-
// --- Session stats fragment ---
|
|
37
|
-
function SessionStatsFragment({ session }) {
|
|
38
|
-
if (!session)
|
|
39
|
-
return null;
|
|
40
|
-
return (_jsxs(_Fragment, { children: [session.tokensUsed !== undefined && session.tokensUsed > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: SEP }), _jsx(Text, { dimColor: true, children: "tokens " }), _jsx(Text, { children: formatTokens(session.tokensUsed) })] })), session.costUsd !== undefined && session.costUsd > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: SEP }), _jsx(Text, { children: formatCost(session.costUsd) })] })), session.startTime !== undefined && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: SEP }), _jsx(Text, { dimColor: true, children: formatElapsed(session.startTime) })] }))] }));
|
|
41
|
-
}
|
|
42
|
-
// --- Component ---
|
|
43
|
-
export function StatusBar({ mode, breadcrumbs, scrollPercent, hint, conversationMode = false, session, }) {
|
|
44
|
-
const breadcrumbText = breadcrumbs.join(" > ");
|
|
45
|
-
if (conversationMode) {
|
|
46
|
-
// Simplified bar for conversation mode — brand + tokens + cost on left, hint on right
|
|
47
|
-
return (_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: " " }), _jsx(Text, { color: NEX_PURPLE, bold: true, children: "\u258C" }), _jsx(Text, { bold: true, children: "nex" }), _jsx(SessionStatsFragment, { session: session }), scrollPercent !== undefined && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: SEP }), _jsx(Text, { children: `${scrollPercent}%` })] }))] }), _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: hint || "/help for commands | Esc=back" }), _jsx(Text, { dimColor: true, children: " " })] })] }));
|
|
48
|
-
}
|
|
49
|
-
// Sub-view mode — show mode badge with Bubbletea colors
|
|
50
|
-
const modeBg = mode === "normal" ? MODE_NORMAL_BG : MODE_INSERT_BG;
|
|
51
|
-
const modeLabel = mode.toUpperCase();
|
|
52
|
-
return (_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Box, { children: [_jsx(Text, { backgroundColor: modeBg, color: "black", bold: true, children: ` ${modeLabel} ` }), _jsx(Text, { children: " " }), _jsx(Text, { children: breadcrumbText }), scrollPercent !== undefined && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: SEP }), _jsx(Text, { children: `${scrollPercent}%` })] })), _jsx(SessionStatsFragment, { session: session }), hint && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: SEP }), _jsx(Text, { dimColor: true, children: hint })] }))] }), _jsxs(Box, { children: [_jsx(Text, { color: NEX_PURPLE, bold: true, children: "\u258C" }), _jsx(Text, { bold: true, children: "nex" }), _jsx(Text, { children: " " })] })] }));
|
|
53
|
-
}
|
|
54
|
-
export default StatusBar;
|
|
55
|
-
//# sourceMappingURL=status-bar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../../src/tui/components/status-bar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
3
|
-
// --- Colors ---
|
|
4
|
-
const SYS_SUCCESS = "#03a04c";
|
|
5
|
-
// --- Component ---
|
|
6
|
-
export function SuccessBox({ message, detail }) {
|
|
7
|
-
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: SYS_SUCCESS, paddingX: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: SYS_SUCCESS, bold: true, children: "✔ " }), _jsx(Text, { color: SYS_SUCCESS, children: message })] }), detail && (_jsx(Box, { marginTop: 0, children: _jsxs(Text, { dimColor: true, children: [" ", detail] }) }))] }));
|
|
8
|
-
}
|
|
9
|
-
export default SuccessBox;
|
|
10
|
-
//# sourceMappingURL=success-box.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"success-box.js","sourceRoot":"","sources":["../../../src/tui/components/success-box.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,iBAAiB;AAEjB,MAAM,WAAW,GAAG,SAAS,CAAC;AAS9B,oBAAoB;AAEpB,MAAM,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAmB;IAC7D,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,aAGX,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,EAAE,IAAI,kBAAE,IAAI,GAAQ,EAC5C,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,YAAG,OAAO,GAAQ,IACtC,EAGL,MAAM,IAAI,CACT,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,MAAC,IAAI,IAAC,QAAQ,mBAAE,IAAI,EAAE,MAAM,IAAQ,GAChC,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export type ToolStatus = "running" | "done" | "error";
|
|
3
|
-
export interface ToolIndicatorProps {
|
|
4
|
-
/** Name of the tool being executed */
|
|
5
|
-
name: string;
|
|
6
|
-
/** Current status */
|
|
7
|
-
status: ToolStatus;
|
|
8
|
-
/** Elapsed time in seconds (shown when done) */
|
|
9
|
-
elapsed?: number;
|
|
10
|
-
}
|
|
11
|
-
export declare function ToolIndicator({ name, status, elapsed, }: ToolIndicatorProps): React.JSX.Element;
|
|
12
|
-
export default ToolIndicator;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Text } from "ink";
|
|
3
|
-
import { useSpinner } from "./spinner.js";
|
|
4
|
-
// ── Component ───────────────────────────────────────────────────────
|
|
5
|
-
export function ToolIndicator({ name, status, elapsed, }) {
|
|
6
|
-
const frame = useSpinner();
|
|
7
|
-
if (status === "done") {
|
|
8
|
-
const time = elapsed !== undefined ? ` (${elapsed.toFixed(1)}s)` : "";
|
|
9
|
-
return (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "✓" }), _jsx(Text, { children: ` ${name}` }), _jsx(Text, { dimColor: true, children: time })] }));
|
|
10
|
-
}
|
|
11
|
-
if (status === "error") {
|
|
12
|
-
return (_jsxs(Text, { children: [_jsx(Text, { color: "red", children: "✗" }), _jsx(Text, { children: ` ${name}` })] }));
|
|
13
|
-
}
|
|
14
|
-
// running
|
|
15
|
-
return (_jsxs(Text, { children: [_jsx(Text, { color: "cyan", children: frame }), _jsx(Text, { children: ` ${name}` })] }));
|
|
16
|
-
}
|
|
17
|
-
export default ToolIndicator;
|
|
18
|
-
//# sourceMappingURL=tool-indicator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-indicator.js","sourceRoot":"","sources":["../../../src/tui/components/tool-indicator.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAe1C,uEAAuE;AAEvE,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,MAAM,EACN,OAAO,GACY;IACnB,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAE3B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,GAAG,GAAQ,EAChC,KAAC,IAAI,cAAE,IAAI,IAAI,EAAE,GAAQ,EACzB,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAQ,IACvB,CACR,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,YAAE,GAAG,GAAQ,EAC9B,KAAC,IAAI,cAAE,IAAI,IAAI,EAAE,GAAQ,IACpB,CACR,CAAC;IACJ,CAAC;IAED,UAAU;IACV,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,KAAK,GAAQ,EACjC,KAAC,IAAI,cAAE,IAAI,IAAI,EAAE,GAAQ,IACpB,CACR,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export interface ViewportProps {
|
|
3
|
-
content: string;
|
|
4
|
-
scrollOffset: number;
|
|
5
|
-
onScroll: (offset: number) => void;
|
|
6
|
-
height?: number;
|
|
7
|
-
}
|
|
8
|
-
export declare function Viewport({ content, scrollOffset, onScroll: _onScroll, height, }: ViewportProps): React.JSX.Element;
|
|
9
|
-
export default Viewport;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo } from "react";
|
|
3
|
-
import { Box, Text } from "ink";
|
|
4
|
-
// --- Component ---
|
|
5
|
-
export function Viewport({ content, scrollOffset, onScroll: _onScroll, height, }) {
|
|
6
|
-
const effectiveHeight = height ?? 20;
|
|
7
|
-
const { visibleLines, scrollPercent, totalLines } = useMemo(() => {
|
|
8
|
-
const allLines = content.split("\n");
|
|
9
|
-
const total = allLines.length;
|
|
10
|
-
const clampedOffset = Math.max(0, Math.min(scrollOffset, Math.max(0, total - effectiveHeight)));
|
|
11
|
-
const slice = allLines.slice(clampedOffset, clampedOffset + effectiveHeight);
|
|
12
|
-
const pct = total <= effectiveHeight
|
|
13
|
-
? 100
|
|
14
|
-
: Math.round((clampedOffset / (total - effectiveHeight)) * 100);
|
|
15
|
-
return {
|
|
16
|
-
visibleLines: slice,
|
|
17
|
-
scrollPercent: pct,
|
|
18
|
-
totalLines: total,
|
|
19
|
-
};
|
|
20
|
-
}, [content, scrollOffset, effectiveHeight]);
|
|
21
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { flexDirection: "column", height: effectiveHeight, children: visibleLines.map((line, i) => (_jsx(Text, { wrap: "truncate", children: line }, i))) }), totalLines > effectiveHeight && (_jsx(Box, { justifyContent: "flex-end", children: _jsx(Text, { dimColor: true, children: `${scrollPercent}%` }) }))] }));
|
|
22
|
-
}
|
|
23
|
-
export default Viewport;
|
|
24
|
-
//# sourceMappingURL=viewport.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/tui/components/viewport.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAWhC,oBAAoB;AAEpB,MAAM,UAAU,QAAQ,CAAC,EACvB,OAAO,EACP,YAAY,EACZ,QAAQ,EAAE,SAAS,EACnB,MAAM,GACQ;IACd,MAAM,eAAe,GAAG,MAAM,IAAI,EAAE,CAAC;IAErC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC,CAC7D,CAAC;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,eAAe,CAAC,CAAC;QAE7E,MAAM,GAAG,GACP,KAAK,IAAI,eAAe;YACtB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAEpE,OAAO;YACL,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,GAAG;YAClB,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IAE7C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAE,eAAe,YAChD,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC7B,KAAC,IAAI,IAAS,IAAI,EAAC,UAAU,YAC1B,IAAI,IADI,CAAC,CAEL,CACR,CAAC,GACE,EACL,UAAU,GAAG,eAAe,IAAI,CAC/B,KAAC,GAAG,IAAC,cAAc,EAAC,UAAU,YAC5B,KAAC,IAAI,IAAC,QAAQ,kBAAE,GAAG,aAAa,GAAG,GAAQ,GACvC,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RFC 6901 JSON Pointer implementation for A2UI data binding.
|
|
3
|
-
* Provides resolve/set/apply operations over a flat data model.
|
|
4
|
-
*/
|
|
5
|
-
import type { A2UIDataModel, A2UIUpdate } from './types.js';
|
|
6
|
-
/**
|
|
7
|
-
* Resolve a JSON Pointer against a data object.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* resolvePointer({ user: { name: "Alice" } }, "/user/name") // "Alice"
|
|
11
|
-
* resolvePointer({ items: [{ status: "done" }] }, "/items/0/status") // "done"
|
|
12
|
-
*/
|
|
13
|
-
export declare function resolvePointer(data: unknown, pointer: string): unknown;
|
|
14
|
-
/**
|
|
15
|
-
* Set a value at a JSON Pointer path, creating intermediate objects as needed.
|
|
16
|
-
* Mutates the data object in place.
|
|
17
|
-
*/
|
|
18
|
-
export declare function setPointer(data: Record<string, unknown>, pointer: string, value: unknown): void;
|
|
19
|
-
/**
|
|
20
|
-
* Check if a string looks like a JSON Pointer (starts with "/").
|
|
21
|
-
*/
|
|
22
|
-
export declare function isPointer(value: string): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Apply a batch of updates to a data model.
|
|
25
|
-
* Returns a shallow copy of the model with updates applied.
|
|
26
|
-
*/
|
|
27
|
-
export declare function applyUpdates(model: A2UIDataModel, updates: A2UIUpdate[]): A2UIDataModel;
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RFC 6901 JSON Pointer implementation for A2UI data binding.
|
|
3
|
-
* Provides resolve/set/apply operations over a flat data model.
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Parse a JSON Pointer string into path segments.
|
|
7
|
-
* Handles RFC 6901 escaping: ~1 -> /, ~0 -> ~
|
|
8
|
-
*/
|
|
9
|
-
function parseSegments(pointer) {
|
|
10
|
-
if (pointer === '' || pointer === '/')
|
|
11
|
-
return [];
|
|
12
|
-
// Strip leading /
|
|
13
|
-
const raw = pointer.startsWith('/') ? pointer.slice(1) : pointer;
|
|
14
|
-
return raw.split('/').map((seg) => seg.replace(/~1/g, '/').replace(/~0/g, '~'));
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Resolve a JSON Pointer against a data object.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* resolvePointer({ user: { name: "Alice" } }, "/user/name") // "Alice"
|
|
21
|
-
* resolvePointer({ items: [{ status: "done" }] }, "/items/0/status") // "done"
|
|
22
|
-
*/
|
|
23
|
-
export function resolvePointer(data, pointer) {
|
|
24
|
-
const segments = parseSegments(pointer);
|
|
25
|
-
let current = data;
|
|
26
|
-
for (const seg of segments) {
|
|
27
|
-
if (current === null || current === undefined)
|
|
28
|
-
return undefined;
|
|
29
|
-
if (Array.isArray(current)) {
|
|
30
|
-
const idx = Number(seg);
|
|
31
|
-
if (Number.isNaN(idx))
|
|
32
|
-
return undefined;
|
|
33
|
-
current = current[idx];
|
|
34
|
-
}
|
|
35
|
-
else if (typeof current === 'object') {
|
|
36
|
-
current = current[seg];
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return current;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Set a value at a JSON Pointer path, creating intermediate objects as needed.
|
|
46
|
-
* Mutates the data object in place.
|
|
47
|
-
*/
|
|
48
|
-
export function setPointer(data, pointer, value) {
|
|
49
|
-
const segments = parseSegments(pointer);
|
|
50
|
-
if (segments.length === 0)
|
|
51
|
-
return;
|
|
52
|
-
let current = data;
|
|
53
|
-
for (let i = 0; i < segments.length - 1; i++) {
|
|
54
|
-
const seg = segments[i];
|
|
55
|
-
const nextSeg = segments[i + 1];
|
|
56
|
-
const isNextArray = /^\d+$/.test(nextSeg);
|
|
57
|
-
if (!(seg in current) || current[seg] === null || current[seg] === undefined) {
|
|
58
|
-
current[seg] = isNextArray ? [] : {};
|
|
59
|
-
}
|
|
60
|
-
const next = current[seg];
|
|
61
|
-
if (Array.isArray(next)) {
|
|
62
|
-
const idx = Number(segments[i + 1]);
|
|
63
|
-
// Ensure array is long enough
|
|
64
|
-
while (next.length <= idx)
|
|
65
|
-
next.push(undefined);
|
|
66
|
-
if (i + 1 === segments.length - 1) {
|
|
67
|
-
next[idx] = value;
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
if (typeof next[idx] !== 'object' || next[idx] === null) {
|
|
71
|
-
next[idx] = {};
|
|
72
|
-
}
|
|
73
|
-
current = next[idx];
|
|
74
|
-
i++; // skip the array index segment
|
|
75
|
-
}
|
|
76
|
-
else if (typeof next === 'object') {
|
|
77
|
-
current = next;
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
current[seg] = {};
|
|
81
|
-
current = current[seg];
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
const lastSeg = segments[segments.length - 1];
|
|
85
|
-
if (Array.isArray(current)) {
|
|
86
|
-
const idx = Number(lastSeg);
|
|
87
|
-
if (!Number.isNaN(idx)) {
|
|
88
|
-
while (current.length <= idx)
|
|
89
|
-
current.push(undefined);
|
|
90
|
-
current[idx] = value;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
current[lastSeg] = value;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Check if a string looks like a JSON Pointer (starts with "/").
|
|
99
|
-
*/
|
|
100
|
-
export function isPointer(value) {
|
|
101
|
-
return value.startsWith('/');
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Apply a batch of updates to a data model.
|
|
105
|
-
* Returns a shallow copy of the model with updates applied.
|
|
106
|
-
*/
|
|
107
|
-
export function applyUpdates(model, updates) {
|
|
108
|
-
const result = { ...model };
|
|
109
|
-
for (const update of updates) {
|
|
110
|
-
switch (update.type) {
|
|
111
|
-
case 'set':
|
|
112
|
-
setPointer(result, update.path, update.value);
|
|
113
|
-
break;
|
|
114
|
-
case 'merge': {
|
|
115
|
-
const existing = resolvePointer(result, update.path);
|
|
116
|
-
if (typeof existing === 'object' &&
|
|
117
|
-
existing !== null &&
|
|
118
|
-
typeof update.value === 'object' &&
|
|
119
|
-
update.value !== null &&
|
|
120
|
-
!Array.isArray(existing)) {
|
|
121
|
-
setPointer(result, update.path, {
|
|
122
|
-
...existing,
|
|
123
|
-
...update.value,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
// Fallback to set if not mergeable
|
|
128
|
-
setPointer(result, update.path, update.value);
|
|
129
|
-
}
|
|
130
|
-
break;
|
|
131
|
-
}
|
|
132
|
-
case 'delete': {
|
|
133
|
-
const segments = update.path.startsWith('/')
|
|
134
|
-
? update.path.slice(1).split('/')
|
|
135
|
-
: [];
|
|
136
|
-
if (segments.length === 1) {
|
|
137
|
-
delete result[segments[0]];
|
|
138
|
-
}
|
|
139
|
-
else if (segments.length > 1) {
|
|
140
|
-
const parentPath = '/' + segments.slice(0, -1).join('/');
|
|
141
|
-
const parent = resolvePointer(result, parentPath);
|
|
142
|
-
if (typeof parent === 'object' && parent !== null && !Array.isArray(parent)) {
|
|
143
|
-
delete parent[segments[segments.length - 1]];
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
break;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return result;
|
|
151
|
-
}
|
|
152
|
-
//# sourceMappingURL=bindings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../src/tui/generative/bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Component registry: maps A2UI component type strings to their
|
|
3
|
-
* Ink renderer components.
|
|
4
|
-
*/
|
|
5
|
-
import type React from 'react';
|
|
6
|
-
import type { A2UIComponent } from './types.js';
|
|
7
|
-
export type RendererComponent = React.ComponentType<{
|
|
8
|
-
schema: A2UIComponent;
|
|
9
|
-
data: Record<string, unknown>;
|
|
10
|
-
onAction?: (action: string, payload?: unknown) => void;
|
|
11
|
-
}>;
|
|
12
|
-
/** Register a renderer for a component type. */
|
|
13
|
-
export declare function registerRenderer(type: string, component: RendererComponent): void;
|
|
14
|
-
/** Look up the renderer for a component type. */
|
|
15
|
-
export declare function getRenderer(type: string): RendererComponent | undefined;
|
|
16
|
-
/** Get all registered type names. */
|
|
17
|
-
export declare function getRegisteredTypes(): string[];
|
|
18
|
-
/** Known A2UI component types. */
|
|
19
|
-
export declare const COMPONENT_TYPES: readonly ["row", "column", "card", "text", "textfield", "list", "table", "progress", "spacer"];
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Component registry: maps A2UI component type strings to their
|
|
3
|
-
* Ink renderer components.
|
|
4
|
-
*/
|
|
5
|
-
// Registry is populated by renderer.tsx at module load time
|
|
6
|
-
const registry = new Map();
|
|
7
|
-
/** Register a renderer for a component type. */
|
|
8
|
-
export function registerRenderer(type, component) {
|
|
9
|
-
registry.set(type, component);
|
|
10
|
-
}
|
|
11
|
-
/** Look up the renderer for a component type. */
|
|
12
|
-
export function getRenderer(type) {
|
|
13
|
-
return registry.get(type);
|
|
14
|
-
}
|
|
15
|
-
/** Get all registered type names. */
|
|
16
|
-
export function getRegisteredTypes() {
|
|
17
|
-
return [...registry.keys()];
|
|
18
|
-
}
|
|
19
|
-
/** Known A2UI component types. */
|
|
20
|
-
export const COMPONENT_TYPES = [
|
|
21
|
-
'row',
|
|
22
|
-
'column',
|
|
23
|
-
'card',
|
|
24
|
-
'text',
|
|
25
|
-
'textfield',
|
|
26
|
-
'list',
|
|
27
|
-
'table',
|
|
28
|
-
'progress',
|
|
29
|
-
'spacer',
|
|
30
|
-
];
|
|
31
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tui/generative/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,4DAA4D;AAC5D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEtD,gDAAgD;AAChD,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,SAA4B;IAE5B,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;CACA,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generative TUI renderer: converts A2UI JSON schema into an Ink
|
|
3
|
-
* component tree at runtime.
|
|
4
|
-
*
|
|
5
|
-
* Agents emit JSON matching the A2UIComponent schema; this module
|
|
6
|
-
* validates it, resolves JSON Pointer data bindings, and renders
|
|
7
|
-
* the corresponding Ink components.
|
|
8
|
-
*/
|
|
9
|
-
import React from 'react';
|
|
10
|
-
import type { A2UIComponent, A2UIDataModel } from './types.js';
|
|
11
|
-
export declare function validateSchema(schema: unknown): {
|
|
12
|
-
valid: boolean;
|
|
13
|
-
errors?: string[];
|
|
14
|
-
};
|
|
15
|
-
export interface GenerativeRendererProps {
|
|
16
|
-
schema: A2UIComponent;
|
|
17
|
-
data: A2UIDataModel;
|
|
18
|
-
onAction?: (action: string, payload?: unknown) => void;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Validates schema, resolves data bindings, and renders the
|
|
22
|
-
* A2UI component tree as Ink components.
|
|
23
|
-
*/
|
|
24
|
-
export declare function GenerativeRenderer({ schema, data, onAction, }: GenerativeRendererProps): React.JSX.Element;
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { resolvePointer, isPointer } from './bindings.js';
|
|
4
|
-
import { COMPONENT_TYPES } from './registry.js';
|
|
5
|
-
// ── Schema validation ───────────────────────────────────────────────
|
|
6
|
-
export function validateSchema(schema) {
|
|
7
|
-
const errors = [];
|
|
8
|
-
if (typeof schema !== 'object' || schema === null) {
|
|
9
|
-
return { valid: false, errors: ['Schema must be a non-null object'] };
|
|
10
|
-
}
|
|
11
|
-
const obj = schema;
|
|
12
|
-
if (typeof obj.type !== 'string') {
|
|
13
|
-
errors.push('Component must have a "type" string property');
|
|
14
|
-
return { valid: false, errors };
|
|
15
|
-
}
|
|
16
|
-
if (!COMPONENT_TYPES.includes(obj.type)) {
|
|
17
|
-
errors.push(`Unknown component type "${obj.type}". Valid types: ${COMPONENT_TYPES.join(', ')}`);
|
|
18
|
-
}
|
|
19
|
-
// Container types must have children array
|
|
20
|
-
if (['row', 'column', 'card'].includes(obj.type)) {
|
|
21
|
-
if (!Array.isArray(obj.children)) {
|
|
22
|
-
errors.push(`"${obj.type}" component must have a "children" array`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
// Text must have content
|
|
26
|
-
if (obj.type === 'text') {
|
|
27
|
-
if (typeof obj.content !== 'string') {
|
|
28
|
-
errors.push('"text" component must have a "content" string');
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
// Progress must have numeric value
|
|
32
|
-
if (obj.type === 'progress') {
|
|
33
|
-
if (typeof obj.value !== 'number') {
|
|
34
|
-
errors.push('"progress" component must have a numeric "value"');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
// Table must have headers
|
|
38
|
-
if (obj.type === 'table') {
|
|
39
|
-
if (!Array.isArray(obj.headers)) {
|
|
40
|
-
errors.push('"table" component must have a "headers" array');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
// List must have items
|
|
44
|
-
if (obj.type === 'list') {
|
|
45
|
-
if (!Array.isArray(obj.items) && typeof obj.items !== 'string') {
|
|
46
|
-
errors.push('"list" component must have "items" (array or string pointer)');
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return errors.length === 0 ? { valid: true } : { valid: false, errors };
|
|
50
|
-
}
|
|
51
|
-
// ── Resolve helper ──────────────────────────────────────────────────
|
|
52
|
-
function resolveString(value, data) {
|
|
53
|
-
if (isPointer(value)) {
|
|
54
|
-
const resolved = resolvePointer(data, value);
|
|
55
|
-
return resolved !== undefined ? String(resolved) : value;
|
|
56
|
-
}
|
|
57
|
-
return value;
|
|
58
|
-
}
|
|
59
|
-
function RenderChildren({ children, data, onAction, }) {
|
|
60
|
-
return (_jsx(_Fragment, { children: children.map((child, i) => (_jsx(RenderComponent, { schema: child, data: data, onAction: onAction }, i))) }));
|
|
61
|
-
}
|
|
62
|
-
function RowRenderer({ schema, data, onAction, }) {
|
|
63
|
-
return (_jsx(Box, { flexDirection: "row", gap: schema.gap, padding: schema.padding, children: _jsx(RenderChildren, { children: schema.children, data: data, onAction: onAction }) }));
|
|
64
|
-
}
|
|
65
|
-
function ColumnRenderer({ schema, data, onAction, }) {
|
|
66
|
-
return (_jsx(Box, { flexDirection: "column", gap: schema.gap, padding: schema.padding, children: _jsx(RenderChildren, { children: schema.children, data: data, onAction: onAction }) }));
|
|
67
|
-
}
|
|
68
|
-
function CardRenderer({ schema, data, onAction, }) {
|
|
69
|
-
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: schema.borderColor ?? 'white', paddingX: 1, children: [schema.title && (_jsx(Text, { bold: true, children: resolveString(schema.title, data) })), _jsx(RenderChildren, { children: schema.children, data: data, onAction: onAction })] }));
|
|
70
|
-
}
|
|
71
|
-
function TextRenderer({ schema, data, }) {
|
|
72
|
-
const content = resolveString(schema.content, data);
|
|
73
|
-
return (_jsx(Text, { bold: schema.bold, color: schema.color, dimColor: schema.dimmed, children: content }));
|
|
74
|
-
}
|
|
75
|
-
function TextFieldRenderer({ schema, data, }) {
|
|
76
|
-
const value = schema.value
|
|
77
|
-
? resolveString(schema.value, data)
|
|
78
|
-
: '';
|
|
79
|
-
const display = value || schema.placeholder || '';
|
|
80
|
-
return (_jsx(Box, { children: _jsx(Text, { color: value ? undefined : 'gray', children: display }) }));
|
|
81
|
-
}
|
|
82
|
-
function ListRenderer({ schema, data, onAction, }) {
|
|
83
|
-
let items;
|
|
84
|
-
if (typeof schema.items === 'string') {
|
|
85
|
-
const resolved = resolvePointer(data, schema.items);
|
|
86
|
-
items = Array.isArray(resolved) ? resolved.map(String) : [];
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
items = schema.items;
|
|
90
|
-
}
|
|
91
|
-
return (_jsx(Box, { flexDirection: "column", children: items.map((item, i) => {
|
|
92
|
-
const isSelected = schema.selected === i;
|
|
93
|
-
return (_jsx(Box, { children: _jsxs(Text, { color: isSelected ? 'cyan' : undefined, children: [isSelected ? '> ' : ' ', item] }) }, i));
|
|
94
|
-
}) }));
|
|
95
|
-
}
|
|
96
|
-
function TableRenderer({ schema, data, }) {
|
|
97
|
-
let rows;
|
|
98
|
-
if (typeof schema.rows === 'string') {
|
|
99
|
-
const resolved = resolvePointer(data, schema.rows);
|
|
100
|
-
rows = Array.isArray(resolved)
|
|
101
|
-
? resolved.map((r) => (Array.isArray(r) ? r.map(String) : [String(r)]))
|
|
102
|
-
: [];
|
|
103
|
-
}
|
|
104
|
-
else if (Array.isArray(schema.rows)) {
|
|
105
|
-
rows = schema.rows;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
rows = [];
|
|
109
|
-
}
|
|
110
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: schema.headers.map((h, i) => (_jsx(Box, { minWidth: 16, children: _jsx(Text, { bold: true, children: h }) }, i))) }), rows.map((row, ri) => (_jsx(Box, { children: row.map((cell, ci) => (_jsx(Box, { minWidth: 16, children: _jsx(Text, { children: cell }) }, ci))) }, ri)))] }));
|
|
111
|
-
}
|
|
112
|
-
function ProgressRenderer({ schema, }) {
|
|
113
|
-
const pct = Math.max(0, Math.min(100, schema.value));
|
|
114
|
-
const filled = Math.round(pct / 5);
|
|
115
|
-
const empty = 20 - filled;
|
|
116
|
-
const bar = '\u2588'.repeat(filled) + '\u2591'.repeat(empty);
|
|
117
|
-
const label = schema.label ? `${schema.label} ` : '';
|
|
118
|
-
return (_jsxs(Text, { children: [label, "[", bar, "] ", Math.round(pct), "%"] }));
|
|
119
|
-
}
|
|
120
|
-
function SpacerRenderer({ schema, }) {
|
|
121
|
-
return _jsx(Box, { height: schema.height ?? 1 });
|
|
122
|
-
}
|
|
123
|
-
// ── Main dispatcher ─────────────────────────────────────────────────
|
|
124
|
-
function RenderComponent({ schema, data, onAction, }) {
|
|
125
|
-
const childProps = { data, onAction };
|
|
126
|
-
switch (schema.type) {
|
|
127
|
-
case 'row':
|
|
128
|
-
return _jsx(RowRenderer, { schema: schema, ...childProps });
|
|
129
|
-
case 'column':
|
|
130
|
-
return _jsx(ColumnRenderer, { schema: schema, ...childProps });
|
|
131
|
-
case 'card':
|
|
132
|
-
return _jsx(CardRenderer, { schema: schema, ...childProps });
|
|
133
|
-
case 'text':
|
|
134
|
-
return _jsx(TextRenderer, { schema: schema, ...childProps });
|
|
135
|
-
case 'textfield':
|
|
136
|
-
return _jsx(TextFieldRenderer, { schema: schema, ...childProps });
|
|
137
|
-
case 'list':
|
|
138
|
-
return _jsx(ListRenderer, { schema: schema, ...childProps });
|
|
139
|
-
case 'table':
|
|
140
|
-
return _jsx(TableRenderer, { schema: schema, ...childProps });
|
|
141
|
-
case 'progress':
|
|
142
|
-
return _jsx(ProgressRenderer, { schema: schema, ...childProps });
|
|
143
|
-
case 'spacer':
|
|
144
|
-
return _jsx(SpacerRenderer, { schema: schema });
|
|
145
|
-
default:
|
|
146
|
-
return _jsxs(Text, { color: "red", children: ["Unknown component: ", schema.type] });
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Validates schema, resolves data bindings, and renders the
|
|
151
|
-
* A2UI component tree as Ink components.
|
|
152
|
-
*/
|
|
153
|
-
export function GenerativeRenderer({ schema, data, onAction, }) {
|
|
154
|
-
const validation = validateSchema(schema);
|
|
155
|
-
if (!validation.valid) {
|
|
156
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "red", bold: true, children: "Invalid A2UI schema:" }), validation.errors?.map((err, i) => (_jsxs(Text, { color: "red", children: [" - ", err] }, i)))] }));
|
|
157
|
-
}
|
|
158
|
-
return _jsx(RenderComponent, { schema: schema, data: data, onAction: onAction });
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/tui/generative/renderer.tsx"],"names":[],"mappings":"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"}
|