@nex-ai/nex 0.1.64 → 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 -1550
- 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 -107
- 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 -580
- 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/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,572 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* SlackHome — the main Slack-style home view.
|
|
4
|
-
*
|
|
5
|
-
* Connects all Slack components to services:
|
|
6
|
-
* - Sidebar with DMs (agents) and channels from ChatService
|
|
7
|
-
* - Message list with grouping from ChatService
|
|
8
|
-
* - Thread panel for in-thread replies
|
|
9
|
-
* - Quick switcher overlay (Ctrl+K)
|
|
10
|
-
* - Compose area with slash commands and @mentions
|
|
11
|
-
* - Agent routing: DM → steer(), channel → broadcast
|
|
12
|
-
*/
|
|
13
|
-
import { useState, useEffect, useMemo, useCallback } from "react";
|
|
14
|
-
import { useStdout } from "ink";
|
|
15
|
-
import { SlackLayout, computeLayout } from "../components/slack/layout.js";
|
|
16
|
-
import { SlackSidebar } from "../components/slack/sidebar.js";
|
|
17
|
-
import { SlackMessageList } from "../components/slack/messages.js";
|
|
18
|
-
import { ComposeArea } from "../components/slack/compose.js";
|
|
19
|
-
import { ThreadPanel } from "../components/slack/thread-panel.js";
|
|
20
|
-
import { QuickSwitcher } from "../components/slack/quick-switcher.js";
|
|
21
|
-
import { ChannelHeader } from "./slack-channel-header.js";
|
|
22
|
-
import { getChatService } from "../services/chat-service.js";
|
|
23
|
-
import { getAgentService } from "../services/agent-service.js";
|
|
24
|
-
import { parseSlashInput, getSlashCommand, listSlashCommands, getInitState, handleInitInput, getAgentWizardState, handleAgentWizardInput, openAgentsManager, } from "../slash-commands.js";
|
|
25
|
-
import { dispatch } from "../../commands/dispatch.js";
|
|
26
|
-
import { resolveApiKey } from "../../lib/config.js";
|
|
27
|
-
import { InlineSelect } from "../components/inline-select.js";
|
|
28
|
-
import { InlineConfirm } from "../components/inline-confirm.js";
|
|
29
|
-
import { Spinner } from "../components/spinner.js";
|
|
30
|
-
// ── Helpers ───────────────────────────────────────────────────────
|
|
31
|
-
let _msgCounter = 0;
|
|
32
|
-
function msgId() {
|
|
33
|
-
return `msg-${Date.now()}-${++_msgCounter}`;
|
|
34
|
-
}
|
|
35
|
-
function getInitials(name) {
|
|
36
|
-
return name
|
|
37
|
-
.split(/[\s-]+/)
|
|
38
|
-
.slice(0, 2)
|
|
39
|
-
.map((w) => w[0]?.toUpperCase() ?? "")
|
|
40
|
-
.join("");
|
|
41
|
-
}
|
|
42
|
-
export function SlackHome({ push }) {
|
|
43
|
-
const { stdout } = useStdout();
|
|
44
|
-
const cols = stdout?.columns ?? 120;
|
|
45
|
-
const rows = stdout?.rows ?? 40;
|
|
46
|
-
// ── Services ──
|
|
47
|
-
const chatService = getChatService();
|
|
48
|
-
const agentService = getAgentService();
|
|
49
|
-
// ── Revision counters (trigger re-render on service updates) ──
|
|
50
|
-
const [chatRevision, setChatRevision] = useState(0);
|
|
51
|
-
const [agentRevision, setAgentRevision] = useState(0);
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
const unsubChat = chatService.subscribe(() => setChatRevision((r) => r + 1));
|
|
54
|
-
const unsubAgent = agentService.subscribe(() => setAgentRevision((r) => r + 1));
|
|
55
|
-
return () => { unsubChat(); unsubAgent(); };
|
|
56
|
-
}, []);
|
|
57
|
-
// ── Focus state ──
|
|
58
|
-
const [focusSection, setFocusSection] = useState("compose");
|
|
59
|
-
// ── Sidebar state ──
|
|
60
|
-
const [activeChannelId, setActiveChannelId] = useState("");
|
|
61
|
-
const [sidebarCursor, setSidebarCursor] = useState(0);
|
|
62
|
-
const [collapsedSections, setCollapsedSections] = useState([]);
|
|
63
|
-
// ── Thread state ──
|
|
64
|
-
const [threadOpen, setThreadOpen] = useState(false);
|
|
65
|
-
const [threadParentId, setThreadParentId] = useState(null);
|
|
66
|
-
const [threadSourceChannel, setThreadSourceChannel] = useState("");
|
|
67
|
-
// ── Quick switcher ──
|
|
68
|
-
const [quickSwitcherOpen, setQuickSwitcherOpen] = useState(false);
|
|
69
|
-
// ── Loading / inline widgets ──
|
|
70
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
71
|
-
const [loadingHint, setLoadingHint] = useState("");
|
|
72
|
-
const [picker, setPicker] = useState(null);
|
|
73
|
-
const [confirm, setConfirm] = useState(null);
|
|
74
|
-
// ── Local messages (system/slash command output) ──
|
|
75
|
-
const [localMessages, setLocalMessages] = useState([
|
|
76
|
-
{
|
|
77
|
-
id: "welcome",
|
|
78
|
-
role: "system",
|
|
79
|
-
content: "Welcome to Nex. Type a message or use /help for commands.",
|
|
80
|
-
timestamp: Date.now(),
|
|
81
|
-
},
|
|
82
|
-
]);
|
|
83
|
-
// ── Derive channels and DMs from services ──
|
|
84
|
-
void chatRevision;
|
|
85
|
-
void agentRevision;
|
|
86
|
-
const channels = chatService.getChannels();
|
|
87
|
-
const agents = agentService.list();
|
|
88
|
-
// Build sidebar sections: DMs first, then channels
|
|
89
|
-
const sidebarSections = useMemo(() => {
|
|
90
|
-
// DM items: one per agent
|
|
91
|
-
const dmItems = agents.map((managed) => {
|
|
92
|
-
// Find or infer a DM channel for this agent
|
|
93
|
-
const dmChannel = channels.find((ch) => ch.name === managed.config.slug || ch.name === `dm-${managed.config.slug}`);
|
|
94
|
-
const channelId = dmChannel?.id ?? `dm-${managed.config.slug}`;
|
|
95
|
-
const isOnline = managed.state.phase !== "done" && managed.state.phase !== "error";
|
|
96
|
-
return {
|
|
97
|
-
id: channelId,
|
|
98
|
-
name: managed.config.name,
|
|
99
|
-
type: "dm",
|
|
100
|
-
online: isOnline,
|
|
101
|
-
unread: dmChannel ? chatService.getMessages(dmChannel.id, 100)
|
|
102
|
-
.filter((m) => m.senderType === "agent").length > 0 ? 0 : 0 : 0,
|
|
103
|
-
hasMention: false,
|
|
104
|
-
muted: false,
|
|
105
|
-
lastActivity: Date.now(),
|
|
106
|
-
};
|
|
107
|
-
});
|
|
108
|
-
// Channel items
|
|
109
|
-
const channelItems = channels
|
|
110
|
-
.filter((ch) => !ch.name.startsWith("dm-"))
|
|
111
|
-
.map((ch) => ({
|
|
112
|
-
id: ch.id,
|
|
113
|
-
name: ch.name,
|
|
114
|
-
type: "channel",
|
|
115
|
-
visibility: "public",
|
|
116
|
-
unread: ch.unread,
|
|
117
|
-
hasMention: false,
|
|
118
|
-
muted: false,
|
|
119
|
-
lastActivity: Date.now(),
|
|
120
|
-
}));
|
|
121
|
-
return [
|
|
122
|
-
{ title: "Direct messages", items: dmItems },
|
|
123
|
-
{ title: "Channels", items: channelItems },
|
|
124
|
-
];
|
|
125
|
-
}, [chatRevision, agentRevision]);
|
|
126
|
-
// Set initial active channel: first DM (founding agent) or first channel
|
|
127
|
-
useEffect(() => {
|
|
128
|
-
if (activeChannelId)
|
|
129
|
-
return;
|
|
130
|
-
const firstDm = sidebarSections[0]?.items[0];
|
|
131
|
-
const firstChannel = sidebarSections[1]?.items[0];
|
|
132
|
-
const initial = firstDm ?? firstChannel;
|
|
133
|
-
if (initial) {
|
|
134
|
-
setActiveChannelId(initial.id);
|
|
135
|
-
}
|
|
136
|
-
}, [sidebarSections, activeChannelId]);
|
|
137
|
-
// Auto-detect missing API key
|
|
138
|
-
useEffect(() => {
|
|
139
|
-
const apiKey = resolveApiKey();
|
|
140
|
-
if (!apiKey) {
|
|
141
|
-
setLocalMessages((prev) => [
|
|
142
|
-
...prev,
|
|
143
|
-
{
|
|
144
|
-
id: "no-auth",
|
|
145
|
-
role: "system",
|
|
146
|
-
content: "No API key found. Run /init to set up Nex.",
|
|
147
|
-
timestamp: Date.now(),
|
|
148
|
-
},
|
|
149
|
-
]);
|
|
150
|
-
}
|
|
151
|
-
}, []);
|
|
152
|
-
// ── Derive active channel info ──
|
|
153
|
-
const activeItem = useMemo(() => {
|
|
154
|
-
for (const section of sidebarSections) {
|
|
155
|
-
const found = section.items.find((item) => item.id === activeChannelId);
|
|
156
|
-
if (found)
|
|
157
|
-
return found;
|
|
158
|
-
}
|
|
159
|
-
return null;
|
|
160
|
-
}, [sidebarSections, activeChannelId]);
|
|
161
|
-
const activeChannelType = activeItem?.type ?? "channel";
|
|
162
|
-
const activeChannelName = activeItem?.name ?? "general";
|
|
163
|
-
// ── Derive messages for active channel ──
|
|
164
|
-
const serviceMessages = useMemo(() => {
|
|
165
|
-
if (!activeChannelId)
|
|
166
|
-
return [];
|
|
167
|
-
return chatService.getMessages(activeChannelId).map((m) => ({
|
|
168
|
-
id: m.id,
|
|
169
|
-
sender: m.sender,
|
|
170
|
-
senderType: m.senderType,
|
|
171
|
-
content: m.content,
|
|
172
|
-
timestamp: m.timestamp,
|
|
173
|
-
}));
|
|
174
|
-
}, [activeChannelId, chatRevision]);
|
|
175
|
-
// Convert local messages to ChatMessageInput format
|
|
176
|
-
const localChatMessages = useMemo(() => {
|
|
177
|
-
return localMessages.map((m) => ({
|
|
178
|
-
id: m.id,
|
|
179
|
-
sender: m.role === "user" ? "you" : m.role === "system" ? "system" : "nex",
|
|
180
|
-
senderType: (m.role === "user" ? "human" : "system"),
|
|
181
|
-
content: m.content,
|
|
182
|
-
timestamp: m.timestamp,
|
|
183
|
-
isError: m.isError,
|
|
184
|
-
}));
|
|
185
|
-
}, [localMessages]);
|
|
186
|
-
// Merge and sort
|
|
187
|
-
const allMessages = useMemo(() => {
|
|
188
|
-
return [...serviceMessages, ...localChatMessages].sort((a, b) => a.timestamp - b.timestamp);
|
|
189
|
-
}, [serviceMessages, localChatMessages]);
|
|
190
|
-
// ── Thread replies ──
|
|
191
|
-
const threadReplies = useMemo(() => {
|
|
192
|
-
if (!threadParentId || !threadSourceChannel)
|
|
193
|
-
return [];
|
|
194
|
-
// Get replies to the parent message from the service
|
|
195
|
-
const msgs = chatService.getMessages(threadSourceChannel);
|
|
196
|
-
return msgs
|
|
197
|
-
.filter((m) => m.replyTo === threadParentId)
|
|
198
|
-
.map((m) => ({
|
|
199
|
-
id: m.id,
|
|
200
|
-
sender: m.sender,
|
|
201
|
-
senderType: m.senderType,
|
|
202
|
-
initials: getInitials(m.sender),
|
|
203
|
-
content: m.content,
|
|
204
|
-
timestamp: m.timestamp,
|
|
205
|
-
isFirstInGroup: true, // simplification for now
|
|
206
|
-
}));
|
|
207
|
-
}, [threadParentId, threadSourceChannel, chatRevision]);
|
|
208
|
-
const threadParentMessage = useMemo(() => {
|
|
209
|
-
if (!threadParentId)
|
|
210
|
-
return null;
|
|
211
|
-
const msg = allMessages.find((m) => m.id === threadParentId);
|
|
212
|
-
if (!msg)
|
|
213
|
-
return null;
|
|
214
|
-
return {
|
|
215
|
-
id: msg.id,
|
|
216
|
-
sender: msg.sender,
|
|
217
|
-
senderType: msg.senderType,
|
|
218
|
-
initials: getInitials(msg.sender),
|
|
219
|
-
content: msg.content,
|
|
220
|
-
timestamp: msg.timestamp,
|
|
221
|
-
isFirstInGroup: true,
|
|
222
|
-
};
|
|
223
|
-
}, [threadParentId, allMessages]);
|
|
224
|
-
// ── Quick switcher items ──
|
|
225
|
-
const switcherItems = useMemo(() => {
|
|
226
|
-
const items = [];
|
|
227
|
-
for (const section of sidebarSections) {
|
|
228
|
-
for (const item of section.items) {
|
|
229
|
-
items.push({
|
|
230
|
-
id: item.id,
|
|
231
|
-
name: item.name,
|
|
232
|
-
type: item.type,
|
|
233
|
-
online: item.online,
|
|
234
|
-
unread: item.unread,
|
|
235
|
-
score: item.id === activeChannelId ? 200 : item.unread > 0 ? 100 : 50,
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
return items;
|
|
240
|
-
}, [sidebarSections, activeChannelId]);
|
|
241
|
-
// ── Slash command entries for autocomplete ──
|
|
242
|
-
const slashCommandEntries = useMemo(() => listSlashCommands().map((cmd) => ({
|
|
243
|
-
name: cmd.name,
|
|
244
|
-
description: cmd.description,
|
|
245
|
-
usage: cmd.usage,
|
|
246
|
-
})), []);
|
|
247
|
-
// Agent entries for @mention autocomplete
|
|
248
|
-
const agentEntries = useMemo(() => agents.map((a) => ({
|
|
249
|
-
slug: a.config.slug,
|
|
250
|
-
name: a.config.name,
|
|
251
|
-
})), [agentRevision]);
|
|
252
|
-
// ── Slash command context (for init flow and slash commands) ──
|
|
253
|
-
const slashContext = useMemo(() => ({
|
|
254
|
-
push,
|
|
255
|
-
dispatch,
|
|
256
|
-
addMessage: (msg) => setLocalMessages((prev) => [...prev, msg]),
|
|
257
|
-
setLoading: (loading, hint) => {
|
|
258
|
-
setIsLoading(loading);
|
|
259
|
-
setLoadingHint(hint ?? "");
|
|
260
|
-
},
|
|
261
|
-
showPicker: (title, options, onSelect) => {
|
|
262
|
-
setPicker({
|
|
263
|
-
title,
|
|
264
|
-
options,
|
|
265
|
-
onSelect: (value) => {
|
|
266
|
-
setPicker(null);
|
|
267
|
-
onSelect(value);
|
|
268
|
-
},
|
|
269
|
-
});
|
|
270
|
-
},
|
|
271
|
-
clearPicker: () => setPicker(null),
|
|
272
|
-
showConfirm: (question, onConfirm) => {
|
|
273
|
-
setConfirm({
|
|
274
|
-
question,
|
|
275
|
-
onConfirm: (confirmed) => {
|
|
276
|
-
setConfirm(null);
|
|
277
|
-
onConfirm(confirmed);
|
|
278
|
-
},
|
|
279
|
-
});
|
|
280
|
-
},
|
|
281
|
-
clearConfirm: () => setConfirm(null),
|
|
282
|
-
}), [push]);
|
|
283
|
-
// ── Message send handler ──
|
|
284
|
-
const handleSend = useCallback(async (input) => {
|
|
285
|
-
if (!input.trim())
|
|
286
|
-
return;
|
|
287
|
-
const isSlash = input.trimStart().startsWith("/");
|
|
288
|
-
const isInitInput = getInitState().phase !== "idle";
|
|
289
|
-
// Handle init flow
|
|
290
|
-
if (isInitInput) {
|
|
291
|
-
try {
|
|
292
|
-
await handleInitInput(input, slashContext);
|
|
293
|
-
}
|
|
294
|
-
catch (err) {
|
|
295
|
-
setLocalMessages((prev) => [
|
|
296
|
-
...prev,
|
|
297
|
-
{
|
|
298
|
-
id: msgId(),
|
|
299
|
-
role: "assistant",
|
|
300
|
-
content: `Init error: ${err instanceof Error ? err.message : String(err)}`,
|
|
301
|
-
timestamp: Date.now(),
|
|
302
|
-
isError: true,
|
|
303
|
-
},
|
|
304
|
-
]);
|
|
305
|
-
}
|
|
306
|
-
return;
|
|
307
|
-
}
|
|
308
|
-
// Handle agent wizard text input phases
|
|
309
|
-
if (getAgentWizardState().phase !== "idle") {
|
|
310
|
-
try {
|
|
311
|
-
await handleAgentWizardInput(input, slashContext);
|
|
312
|
-
}
|
|
313
|
-
catch (err) {
|
|
314
|
-
setLocalMessages((prev) => [
|
|
315
|
-
...prev,
|
|
316
|
-
{
|
|
317
|
-
id: msgId(),
|
|
318
|
-
role: "assistant",
|
|
319
|
-
content: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
320
|
-
timestamp: Date.now(),
|
|
321
|
-
isError: true,
|
|
322
|
-
},
|
|
323
|
-
]);
|
|
324
|
-
}
|
|
325
|
-
return;
|
|
326
|
-
}
|
|
327
|
-
// Handle slash commands
|
|
328
|
-
if (isSlash) {
|
|
329
|
-
const parsed = parseSlashInput(input);
|
|
330
|
-
if (!parsed.command) {
|
|
331
|
-
setLocalMessages((prev) => [
|
|
332
|
-
...prev,
|
|
333
|
-
{
|
|
334
|
-
id: msgId(),
|
|
335
|
-
role: "assistant",
|
|
336
|
-
content: "Type /help to see available commands.",
|
|
337
|
-
timestamp: Date.now(),
|
|
338
|
-
isError: true,
|
|
339
|
-
},
|
|
340
|
-
]);
|
|
341
|
-
return;
|
|
342
|
-
}
|
|
343
|
-
if (parsed.command === "clear") {
|
|
344
|
-
setLocalMessages([
|
|
345
|
-
{ id: msgId(), role: "system", content: "Conversation cleared.", timestamp: Date.now() },
|
|
346
|
-
]);
|
|
347
|
-
return;
|
|
348
|
-
}
|
|
349
|
-
const cmd = getSlashCommand(parsed.command);
|
|
350
|
-
if (cmd) {
|
|
351
|
-
setIsLoading(true);
|
|
352
|
-
setLoadingHint(`Running /${parsed.command}...`);
|
|
353
|
-
try {
|
|
354
|
-
const result = await cmd.execute(parsed.args ?? "", slashContext);
|
|
355
|
-
if (result.output && !result.silent) {
|
|
356
|
-
setLocalMessages((prev) => [
|
|
357
|
-
...prev,
|
|
358
|
-
{ id: msgId(), role: "assistant", content: result.output, timestamp: Date.now() },
|
|
359
|
-
]);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
catch (err) {
|
|
363
|
-
setLocalMessages((prev) => [
|
|
364
|
-
...prev,
|
|
365
|
-
{
|
|
366
|
-
id: msgId(),
|
|
367
|
-
role: "assistant",
|
|
368
|
-
content: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
369
|
-
timestamp: Date.now(),
|
|
370
|
-
isError: true,
|
|
371
|
-
},
|
|
372
|
-
]);
|
|
373
|
-
}
|
|
374
|
-
finally {
|
|
375
|
-
setIsLoading(false);
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
else {
|
|
379
|
-
setLocalMessages((prev) => [
|
|
380
|
-
...prev,
|
|
381
|
-
{
|
|
382
|
-
id: msgId(),
|
|
383
|
-
role: "assistant",
|
|
384
|
-
content: `Unknown command: /${parsed.command}. Type /help for available commands.`,
|
|
385
|
-
timestamp: Date.now(),
|
|
386
|
-
isError: true,
|
|
387
|
-
},
|
|
388
|
-
]);
|
|
389
|
-
}
|
|
390
|
-
return;
|
|
391
|
-
}
|
|
392
|
-
// Natural language message
|
|
393
|
-
if (activeChannelId) {
|
|
394
|
-
chatService.send(activeChannelId, input, "human");
|
|
395
|
-
// Route to agent if this is a DM
|
|
396
|
-
if (activeChannelType === "dm") {
|
|
397
|
-
// Find the agent for this DM
|
|
398
|
-
const agent = agents.find((a) => {
|
|
399
|
-
const dmId = `dm-${a.config.slug}`;
|
|
400
|
-
return activeChannelId === dmId || activeChannelId.includes(a.config.slug);
|
|
401
|
-
});
|
|
402
|
-
if (agent) {
|
|
403
|
-
try {
|
|
404
|
-
agentService.steer(agent.config.slug, input);
|
|
405
|
-
}
|
|
406
|
-
catch {
|
|
407
|
-
// Agent may not be started — that's OK
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
else {
|
|
413
|
-
// No channel — use ask dispatch as fallback
|
|
414
|
-
setIsLoading(true);
|
|
415
|
-
setLoadingHint("thinking...");
|
|
416
|
-
try {
|
|
417
|
-
const result = await dispatch(`ask ${input}`);
|
|
418
|
-
const isAuthError = result.exitCode === 2 || result.error?.includes("API key");
|
|
419
|
-
setLocalMessages((prev) => [
|
|
420
|
-
...prev,
|
|
421
|
-
{
|
|
422
|
-
id: msgId(),
|
|
423
|
-
role: "assistant",
|
|
424
|
-
content: isAuthError
|
|
425
|
-
? "Your API key is missing or expired.\n\nTo fix:\n 1. Get a key at https://app.nex.ai\n 2. Run: nex config set api_key <key>\n 3. Then try again."
|
|
426
|
-
: result.error
|
|
427
|
-
? `Error: ${result.error}`
|
|
428
|
-
: result.output || "(no response)",
|
|
429
|
-
timestamp: Date.now(),
|
|
430
|
-
isError: !!result.error,
|
|
431
|
-
},
|
|
432
|
-
]);
|
|
433
|
-
}
|
|
434
|
-
finally {
|
|
435
|
-
setIsLoading(false);
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
}, [activeChannelId, activeChannelType, agents, slashContext]);
|
|
439
|
-
// ── Thread handlers ──
|
|
440
|
-
const handleOpenThread = useCallback((messageId) => {
|
|
441
|
-
setThreadOpen(true);
|
|
442
|
-
setThreadParentId(messageId);
|
|
443
|
-
setThreadSourceChannel(activeChannelId);
|
|
444
|
-
setFocusSection("thread");
|
|
445
|
-
}, [activeChannelId]);
|
|
446
|
-
const handleCloseThread = useCallback(() => {
|
|
447
|
-
setThreadOpen(false);
|
|
448
|
-
setThreadParentId(null);
|
|
449
|
-
setThreadSourceChannel("");
|
|
450
|
-
setFocusSection("compose");
|
|
451
|
-
}, []);
|
|
452
|
-
const handleThreadReply = useCallback((content) => {
|
|
453
|
-
if (!threadParentId || !threadSourceChannel)
|
|
454
|
-
return;
|
|
455
|
-
chatService.send(threadSourceChannel, content, "human");
|
|
456
|
-
}, [threadParentId, threadSourceChannel]);
|
|
457
|
-
// ── Sidebar handlers ──
|
|
458
|
-
const handleSidebarSelect = useCallback((id) => {
|
|
459
|
-
setActiveChannelId(id);
|
|
460
|
-
setFocusSection("compose");
|
|
461
|
-
}, []);
|
|
462
|
-
const handleToggleSection = useCallback((title) => {
|
|
463
|
-
setCollapsedSections((prev) => prev.includes(title)
|
|
464
|
-
? prev.filter((t) => t !== title)
|
|
465
|
-
: [...prev, title]);
|
|
466
|
-
}, []);
|
|
467
|
-
// ── Quick switcher handlers ──
|
|
468
|
-
const handleQuickSwitcherSelect = useCallback((id) => {
|
|
469
|
-
setActiveChannelId(id);
|
|
470
|
-
setQuickSwitcherOpen(false);
|
|
471
|
-
setFocusSection("compose");
|
|
472
|
-
}, []);
|
|
473
|
-
// ── Expose globalThis callbacks for app.tsx key interception ──
|
|
474
|
-
useEffect(() => {
|
|
475
|
-
globalThis.__nexQuickSwitcherOpen = () => {
|
|
476
|
-
setQuickSwitcherOpen(true);
|
|
477
|
-
};
|
|
478
|
-
globalThis.__nexQuickSwitcherClose = () => {
|
|
479
|
-
setQuickSwitcherOpen(false);
|
|
480
|
-
};
|
|
481
|
-
globalThis.__nexSlackFocusCycle = (direction) => {
|
|
482
|
-
setFocusSection((prev) => {
|
|
483
|
-
const sections = threadOpen
|
|
484
|
-
? ["sidebar", "messages", "compose", "thread"]
|
|
485
|
-
: ["sidebar", "messages", "compose"];
|
|
486
|
-
const idx = sections.indexOf(prev);
|
|
487
|
-
const next = (idx + direction + sections.length) % sections.length;
|
|
488
|
-
return sections[next];
|
|
489
|
-
});
|
|
490
|
-
};
|
|
491
|
-
globalThis.__nexSidebarNav = (direction) => {
|
|
492
|
-
// Count total visible items for upper-bound clamping
|
|
493
|
-
let totalItems = 0;
|
|
494
|
-
for (const section of sidebarSections) {
|
|
495
|
-
if (!collapsedSections.includes(section.title)) {
|
|
496
|
-
totalItems += section.items.length;
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
setSidebarCursor((prev) => Math.max(0, Math.min(totalItems - 1, prev + direction)));
|
|
500
|
-
};
|
|
501
|
-
globalThis.__nexSidebarSelect = () => {
|
|
502
|
-
// Flatten sidebar to find item at cursor
|
|
503
|
-
let idx = 0;
|
|
504
|
-
for (const section of sidebarSections) {
|
|
505
|
-
if (collapsedSections.includes(section.title))
|
|
506
|
-
continue;
|
|
507
|
-
for (const item of section.items) {
|
|
508
|
-
if (idx === sidebarCursor) {
|
|
509
|
-
handleSidebarSelect(item.id);
|
|
510
|
-
return;
|
|
511
|
-
}
|
|
512
|
-
idx++;
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
};
|
|
516
|
-
globalThis.__nexSidebarToggle = () => {
|
|
517
|
-
// Toggle section at cursor position
|
|
518
|
-
let idx = 0;
|
|
519
|
-
for (const section of sidebarSections) {
|
|
520
|
-
if (idx === sidebarCursor) {
|
|
521
|
-
handleToggleSection(section.title);
|
|
522
|
-
return;
|
|
523
|
-
}
|
|
524
|
-
idx++;
|
|
525
|
-
if (!collapsedSections.includes(section.title)) {
|
|
526
|
-
idx += section.items.length;
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
};
|
|
530
|
-
globalThis.__nexThreadClose = () => {
|
|
531
|
-
handleCloseThread();
|
|
532
|
-
};
|
|
533
|
-
globalThis.__nexAddChannel = () => {
|
|
534
|
-
// Push to a simple /channel-create prompt view or run /channel slash command
|
|
535
|
-
setLocalMessages((prev) => [...prev, {
|
|
536
|
-
id: msgId(), role: "system",
|
|
537
|
-
content: 'Type `/channel create <name>` to create a channel, or Ctrl+K to search.',
|
|
538
|
-
timestamp: Date.now(),
|
|
539
|
-
}]);
|
|
540
|
-
setFocusSection("compose");
|
|
541
|
-
};
|
|
542
|
-
globalThis.__nexAddAgent = () => {
|
|
543
|
-
void openAgentsManager(slashContext);
|
|
544
|
-
setFocusSection("compose");
|
|
545
|
-
};
|
|
546
|
-
globalThis.__nexFocusSection = focusSection;
|
|
547
|
-
globalThis.__nexQuickSwitcherIsOpen = quickSwitcherOpen;
|
|
548
|
-
return () => {
|
|
549
|
-
delete globalThis.__nexQuickSwitcherOpen;
|
|
550
|
-
delete globalThis.__nexQuickSwitcherClose;
|
|
551
|
-
delete globalThis.__nexSlackFocusCycle;
|
|
552
|
-
delete globalThis.__nexSidebarNav;
|
|
553
|
-
delete globalThis.__nexSidebarSelect;
|
|
554
|
-
delete globalThis.__nexSidebarToggle;
|
|
555
|
-
delete globalThis.__nexThreadClose;
|
|
556
|
-
delete globalThis.__nexAddChannel;
|
|
557
|
-
delete globalThis.__nexAddAgent;
|
|
558
|
-
delete globalThis.__nexFocusSection;
|
|
559
|
-
delete globalThis.__nexQuickSwitcherIsOpen;
|
|
560
|
-
};
|
|
561
|
-
}, [
|
|
562
|
-
focusSection, threadOpen, quickSwitcherOpen, sidebarSections,
|
|
563
|
-
collapsedSections, sidebarCursor, handleSidebarSelect,
|
|
564
|
-
handleToggleSection, handleCloseThread,
|
|
565
|
-
]);
|
|
566
|
-
// ── Layout metrics ──
|
|
567
|
-
const layout = computeLayout(cols, threadOpen);
|
|
568
|
-
// ── Render ──
|
|
569
|
-
return (_jsx(SlackLayout, { cols: cols, rows: rows, threadOpen: threadOpen, focusSection: focusSection, sidebar: _jsx(SlackSidebar, { width: layout.sidebarWidth, focused: focusSection === "sidebar", workspaceName: "Nex Workspace", sections: sidebarSections, collapsedSections: collapsedSections, activeChannelId: activeChannelId, cursor: sidebarCursor, onToggleSection: handleToggleSection, onSelectItem: handleSidebarSelect }), main: _jsxs(_Fragment, { children: [_jsx(ChannelHeader, { name: activeChannelName, type: activeChannelType, online: activeItem?.online, focused: focusSection === "messages" }), _jsx(SlackMessageList, { messages: allMessages, onThreadOpen: handleOpenThread, width: layout.mainWidth }), isLoading && _jsx(Spinner, { label: loadingHint || "thinking..." }), picker != null ? (_jsx(InlineSelect, { title: picker.title, options: picker.options, onSelect: picker.onSelect })) : confirm != null ? (_jsx(InlineConfirm, { question: confirm.question, onConfirm: confirm.onConfirm })) : (_jsx(ComposeArea, { channelName: activeChannelName, channelType: activeChannelType, recipientName: activeChannelType === "dm" ? activeChannelName : undefined, focused: focusSection === "compose", onSubmit: handleSend, slashCommands: slashCommandEntries, agents: agentEntries }))] }), thread: threadOpen && threadParentMessage ? (_jsx(ThreadPanel, { width: layout.threadWidth, focused: focusSection === "thread", parentMessage: threadParentMessage, replies: threadReplies, sourceChannelName: activeChannelName, sourceChannelType: activeChannelType, alsoSendToChannel: false, onSendReply: handleThreadReply, onToggleAlsoSend: () => { }, onClose: handleCloseThread, slashCommands: slashCommandEntries, agents: agentEntries })) : undefined, overlay: quickSwitcherOpen ? (_jsx(QuickSwitcher, { open: quickSwitcherOpen, items: switcherItems, onSelect: handleQuickSwitcherSelect, onClose: () => setQuickSwitcherOpen(false) })) : undefined }));
|
|
570
|
-
}
|
|
571
|
-
export default SlackHome;
|
|
572
|
-
//# sourceMappingURL=slack-home.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slack-home.js","sourceRoot":"","sources":["../../../src/tui/views/slack-home.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Stream view — Claude Code-style single chat stream.
|
|
3
|
-
*
|
|
4
|
-
* One conversation area. User talks, Team-Lead responds and orchestrates
|
|
5
|
-
* specialists behind the scenes. Agent chatter appears live in the stream.
|
|
6
|
-
* No sidebar, no channels, no threads — just clean back-and-forth.
|
|
7
|
-
*/
|
|
8
|
-
import React from "react";
|
|
9
|
-
export interface StreamHomeProps {
|
|
10
|
-
push: (view: {
|
|
11
|
-
name: string;
|
|
12
|
-
props?: Record<string, unknown>;
|
|
13
|
-
}) => void;
|
|
14
|
-
}
|
|
15
|
-
export declare function StreamHome({ push }: StreamHomeProps): React.JSX.Element;
|
|
16
|
-
export default StreamHome;
|