@nex-ai/nex 0.1.65 → 0.2.1
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 +190 -263
- package/bin/nex-mcp.js +50 -0
- package/bin/nex.js +53 -0
- package/package.json +15 -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
package/dist/lib/tui.js
DELETED
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Zero-dependency TUI primitives for the Nex CLI.
|
|
3
|
-
*
|
|
4
|
-
* Respects NO_COLOR, TERM=dumb, and non-TTY pipes.
|
|
5
|
-
* Ephemeral output (spinners) goes to stderr; structured output to stdout.
|
|
6
|
-
*/
|
|
7
|
-
// --- Environment ---
|
|
8
|
-
export const isTTY = !!process.stdout.isTTY &&
|
|
9
|
-
!process.env.NO_COLOR &&
|
|
10
|
-
process.env.TERM !== "dumb";
|
|
11
|
-
const ANSI_RE = /\x1b\[[0-9;]*m/g;
|
|
12
|
-
export function stripAnsi(s) {
|
|
13
|
-
return s.replace(ANSI_RE, "");
|
|
14
|
-
}
|
|
15
|
-
export function visibleLength(s) {
|
|
16
|
-
return stripAnsi(s).length;
|
|
17
|
-
}
|
|
18
|
-
// --- Style primitives ---
|
|
19
|
-
function wrap(open, close) {
|
|
20
|
-
if (!isTTY)
|
|
21
|
-
return (s) => s;
|
|
22
|
-
return (s) => `${open}${s}${close}`;
|
|
23
|
-
}
|
|
24
|
-
export const style = {
|
|
25
|
-
bold: wrap("\x1b[1m", "\x1b[22m"),
|
|
26
|
-
dim: wrap("\x1b[2m", "\x1b[22m"),
|
|
27
|
-
green: wrap("\x1b[32m", "\x1b[39m"),
|
|
28
|
-
red: wrap("\x1b[31m", "\x1b[39m"),
|
|
29
|
-
yellow: wrap("\x1b[33m", "\x1b[39m"),
|
|
30
|
-
cyan: wrap("\x1b[36m", "\x1b[39m"),
|
|
31
|
-
};
|
|
32
|
-
// --- Symbols ---
|
|
33
|
-
const unicode = isTTY && process.platform !== "win32";
|
|
34
|
-
export const sym = {
|
|
35
|
-
success: isTTY ? style.green(unicode ? "\u2714" : "\u221A") : "ok",
|
|
36
|
-
error: isTTY ? style.red(unicode ? "\u2716" : "\u00D7") : "error",
|
|
37
|
-
warning: isTTY ? style.yellow(unicode ? "\u26A0" : "!") : "!",
|
|
38
|
-
info: isTTY ? style.cyan(unicode ? "\u2139" : "i") : "i",
|
|
39
|
-
bullet: isTTY ? style.green("\u25CF") : "*",
|
|
40
|
-
bulletDim: isTTY ? style.dim("\u25CB") : "o",
|
|
41
|
-
pointer: isTTY ? style.cyan("\u203A") : ">",
|
|
42
|
-
line: "\u2500",
|
|
43
|
-
corner: "\u2514",
|
|
44
|
-
pipe: "\u2502",
|
|
45
|
-
tee: "\u251C",
|
|
46
|
-
};
|
|
47
|
-
// --- Exit hint ---
|
|
48
|
-
export const exitHint = style.dim("(Ctrl+C to exit)");
|
|
49
|
-
// --- Helpers ---
|
|
50
|
-
function padRight(s, len) {
|
|
51
|
-
const vl = visibleLength(s);
|
|
52
|
-
return vl >= len ? s : s + " ".repeat(len - vl);
|
|
53
|
-
}
|
|
54
|
-
// --- Components ---
|
|
55
|
-
export function heading(title) {
|
|
56
|
-
const plain = stripAnsi(title);
|
|
57
|
-
return ` ${style.bold(title)}\n ${sym.line.repeat(plain.length)}`;
|
|
58
|
-
}
|
|
59
|
-
export function keyValue(entries, opts) {
|
|
60
|
-
const width = opts?.labelWidth ?? Math.max(...entries.map(([k]) => k.length)) + 2;
|
|
61
|
-
return entries
|
|
62
|
-
.map(([k, v]) => ` ${padRight(style.dim(k), width + (style.dim("").length))}${v}`)
|
|
63
|
-
.join("\n");
|
|
64
|
-
}
|
|
65
|
-
export function table(opts) {
|
|
66
|
-
const { headers, rows, alignRight = [] } = opts;
|
|
67
|
-
const cols = headers.length;
|
|
68
|
-
// Compute column widths
|
|
69
|
-
const widths = headers.map((h) => visibleLength(h));
|
|
70
|
-
for (const row of rows) {
|
|
71
|
-
for (let i = 0; i < cols; i++) {
|
|
72
|
-
widths[i] = Math.max(widths[i], visibleLength(row[i] ?? ""));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
const pad = (s, i) => {
|
|
76
|
-
const diff = widths[i] - visibleLength(s);
|
|
77
|
-
if (diff <= 0)
|
|
78
|
-
return s;
|
|
79
|
-
return alignRight.includes(i) ? " ".repeat(diff) + s : s + " ".repeat(diff);
|
|
80
|
-
};
|
|
81
|
-
const headerLine = " " + headers.map((h, i) => style.bold(pad(h, i))).join(" ");
|
|
82
|
-
const sepLine = " " + widths.map((w) => sym.line.repeat(w)).join(" ");
|
|
83
|
-
const dataLines = rows.map((row) => " " + row.map((cell, i) => pad(cell ?? "", i)).join(" "));
|
|
84
|
-
return [headerLine, sepLine, ...dataLines].join("\n");
|
|
85
|
-
}
|
|
86
|
-
export function badge(label, variant) {
|
|
87
|
-
switch (variant) {
|
|
88
|
-
case "success":
|
|
89
|
-
return `${style.green("\u25CF")} ${style.green(label)}`;
|
|
90
|
-
case "error":
|
|
91
|
-
return `${style.red("\u25CF")} ${style.red(label)}`;
|
|
92
|
-
case "warning":
|
|
93
|
-
return `${style.yellow("\u25CF")} ${style.yellow(label)}`;
|
|
94
|
-
case "dim":
|
|
95
|
-
return `${style.dim("\u25CB")} ${style.dim(label)}`;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
export function tree(items) {
|
|
99
|
-
const lines = [];
|
|
100
|
-
for (let i = 0; i < items.length; i++) {
|
|
101
|
-
const item = items[i];
|
|
102
|
-
const isLast = i === items.length - 1;
|
|
103
|
-
const prefix = isLast ? sym.corner : sym.tee;
|
|
104
|
-
lines.push(` ${prefix} ${item.label}`);
|
|
105
|
-
if (item.children) {
|
|
106
|
-
const indent = isLast ? " " : ` ${sym.pipe} `;
|
|
107
|
-
for (let j = 0; j < item.children.length; j++) {
|
|
108
|
-
const childPrefix = j === item.children.length - 1 ? sym.corner : sym.tee;
|
|
109
|
-
lines.push(` ${indent}${childPrefix} ${item.children[j]}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return lines.join("\n");
|
|
114
|
-
}
|
|
115
|
-
export function box(title, content) {
|
|
116
|
-
const contentLines = content.split("\n");
|
|
117
|
-
const maxContent = Math.max(...contentLines.map((l) => visibleLength(l)), visibleLength(title) + 2);
|
|
118
|
-
const innerWidth = maxContent + 4; // 2 padding each side
|
|
119
|
-
const topRule = "\u256D\u2500 " +
|
|
120
|
-
style.bold(title) +
|
|
121
|
-
" " +
|
|
122
|
-
"\u2500".repeat(Math.max(0, innerWidth - visibleLength(title) - 3)) +
|
|
123
|
-
"\u256E";
|
|
124
|
-
const emptyLine = "\u2502" + " ".repeat(innerWidth) + "\u2502";
|
|
125
|
-
const bodyLines = contentLines.map((l) => {
|
|
126
|
-
const padding = innerWidth - visibleLength(l) - 2;
|
|
127
|
-
return "\u2502 " + l + " ".repeat(Math.max(0, padding)) + "\u2502";
|
|
128
|
-
});
|
|
129
|
-
const bottomRule = "\u2570" + "\u2500".repeat(innerWidth) + "\u256F";
|
|
130
|
-
return [topRule, emptyLine, ...bodyLines, emptyLine, bottomRule].join("\n");
|
|
131
|
-
}
|
|
132
|
-
// --- Spinner ---
|
|
133
|
-
const SPINNER_FRAMES = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
|
|
134
|
-
export function spinner(message) {
|
|
135
|
-
if (!isTTY) {
|
|
136
|
-
// Non-TTY: just print the message
|
|
137
|
-
process.stderr.write(` ${message}\n`);
|
|
138
|
-
return {
|
|
139
|
-
update: (msg) => process.stderr.write(` ${msg}\n`),
|
|
140
|
-
succeed: (msg) => process.stderr.write(` ${msg}\n`),
|
|
141
|
-
fail: (msg) => process.stderr.write(` ${msg}\n`),
|
|
142
|
-
stop: () => { },
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
let frame = 0;
|
|
146
|
-
let currentMsg = message;
|
|
147
|
-
let stopped = false;
|
|
148
|
-
const clear = () => {
|
|
149
|
-
process.stderr.write("\r\x1b[K");
|
|
150
|
-
};
|
|
151
|
-
const render = () => {
|
|
152
|
-
clear();
|
|
153
|
-
process.stderr.write(` ${style.cyan(SPINNER_FRAMES[frame % SPINNER_FRAMES.length])} ${currentMsg}`);
|
|
154
|
-
};
|
|
155
|
-
const interval = setInterval(() => {
|
|
156
|
-
if (stopped)
|
|
157
|
-
return;
|
|
158
|
-
frame++;
|
|
159
|
-
render();
|
|
160
|
-
}, 80);
|
|
161
|
-
render();
|
|
162
|
-
return {
|
|
163
|
-
update(msg) {
|
|
164
|
-
currentMsg = msg;
|
|
165
|
-
render();
|
|
166
|
-
},
|
|
167
|
-
succeed(msg) {
|
|
168
|
-
stopped = true;
|
|
169
|
-
clearInterval(interval);
|
|
170
|
-
clear();
|
|
171
|
-
process.stderr.write(` ${sym.success} ${msg}\n`);
|
|
172
|
-
},
|
|
173
|
-
fail(msg) {
|
|
174
|
-
stopped = true;
|
|
175
|
-
clearInterval(interval);
|
|
176
|
-
clear();
|
|
177
|
-
process.stderr.write(` ${sym.error} ${msg}\n`);
|
|
178
|
-
},
|
|
179
|
-
stop() {
|
|
180
|
-
stopped = true;
|
|
181
|
-
clearInterval(interval);
|
|
182
|
-
clear();
|
|
183
|
-
},
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
// --- Interactive Select ---
|
|
187
|
-
export function interactiveSelect(opts) {
|
|
188
|
-
const { title, items, render: renderItem } = opts;
|
|
189
|
-
if (!isTTY || items.length === 0) {
|
|
190
|
-
// Non-TTY fallback: print list, return null
|
|
191
|
-
process.stderr.write(` ${title}\n\n`);
|
|
192
|
-
for (let i = 0; i < items.length; i++) {
|
|
193
|
-
process.stderr.write(` ${i + 1}) ${renderItem(items[i], false)}\n`);
|
|
194
|
-
}
|
|
195
|
-
return Promise.resolve(null);
|
|
196
|
-
}
|
|
197
|
-
return new Promise((resolve) => {
|
|
198
|
-
let selected = 0;
|
|
199
|
-
const totalLines = items.length + 2; // title + blank + items
|
|
200
|
-
const draw = (initial = false) => {
|
|
201
|
-
if (!initial) {
|
|
202
|
-
// Move cursor up and clear
|
|
203
|
-
process.stderr.write(`\x1b[${totalLines}A\x1b[J`);
|
|
204
|
-
}
|
|
205
|
-
process.stderr.write(` ${title} ${exitHint}\n\n`);
|
|
206
|
-
for (let i = 0; i < items.length; i++) {
|
|
207
|
-
const isSelected = i === selected;
|
|
208
|
-
const pointer = isSelected ? `${sym.pointer} ` : " ";
|
|
209
|
-
process.stderr.write(` ${pointer}${renderItem(items[i], isSelected)}\n`);
|
|
210
|
-
}
|
|
211
|
-
};
|
|
212
|
-
process.stdin.setRawMode(true);
|
|
213
|
-
process.stdin.resume();
|
|
214
|
-
process.stdin.setEncoding("utf-8");
|
|
215
|
-
draw(true);
|
|
216
|
-
const onData = (key) => {
|
|
217
|
-
if (key === "\x03") {
|
|
218
|
-
// Ctrl+C
|
|
219
|
-
cleanup();
|
|
220
|
-
resolve(null);
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
if (key === "\r") {
|
|
224
|
-
// Enter
|
|
225
|
-
cleanup();
|
|
226
|
-
resolve(items[selected]);
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
229
|
-
if (key === "\x1b[A") {
|
|
230
|
-
// Up
|
|
231
|
-
selected = Math.max(0, selected - 1);
|
|
232
|
-
}
|
|
233
|
-
else if (key === "\x1b[B") {
|
|
234
|
-
// Down
|
|
235
|
-
selected = Math.min(items.length - 1, selected + 1);
|
|
236
|
-
}
|
|
237
|
-
draw();
|
|
238
|
-
};
|
|
239
|
-
const cleanup = () => {
|
|
240
|
-
process.stdin.setRawMode(false);
|
|
241
|
-
process.stdin.removeListener("data", onData);
|
|
242
|
-
process.stdin.pause();
|
|
243
|
-
};
|
|
244
|
-
process.stdin.on("data", onData);
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
//# sourceMappingURL=tui.js.map
|
package/dist/lib/tui.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/lib/tui.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workspace registry — manages multiple Nex workspaces on a single machine.
|
|
3
|
-
*
|
|
4
|
-
* Storage:
|
|
5
|
-
* ~/.nex/config.json → registry (active_workspace + workspace list)
|
|
6
|
-
* ~/.nex/workspaces/<slug>/ → per-workspace credentials + state
|
|
7
|
-
*
|
|
8
|
-
* All functions accept an optional `baseDir` for testing (defaults to ~/.nex).
|
|
9
|
-
*/
|
|
10
|
-
export interface WorkspaceEntry {
|
|
11
|
-
slug: string;
|
|
12
|
-
nickname?: string;
|
|
13
|
-
added_at: number;
|
|
14
|
-
}
|
|
15
|
-
export interface WorkspaceCredentials {
|
|
16
|
-
api_key: string;
|
|
17
|
-
email: string;
|
|
18
|
-
workspace_id: string;
|
|
19
|
-
workspace_slug: string;
|
|
20
|
-
}
|
|
21
|
-
export interface WorkspaceRegistry {
|
|
22
|
-
active_workspace: string;
|
|
23
|
-
workspaces: Record<string, {
|
|
24
|
-
nickname?: string;
|
|
25
|
-
added_at: number;
|
|
26
|
-
}>;
|
|
27
|
-
[key: string]: unknown;
|
|
28
|
-
}
|
|
29
|
-
export declare function loadRegistry(baseDir?: string): WorkspaceRegistry;
|
|
30
|
-
export declare function saveRegistry(registry: WorkspaceRegistry, baseDir?: string): void;
|
|
31
|
-
export declare function addWorkspace(slug: string, credentials: WorkspaceCredentials, nickname?: string, baseDir?: string): void;
|
|
32
|
-
export declare function removeWorkspace(slug: string, baseDir?: string): void;
|
|
33
|
-
export declare function switchWorkspace(slug: string, baseDir?: string): WorkspaceCredentials;
|
|
34
|
-
export declare function renameWorkspace(slug: string, nickname: string, baseDir?: string): void;
|
|
35
|
-
export declare function getActiveCredentials(baseDir?: string): WorkspaceCredentials | undefined;
|
|
36
|
-
export declare function listWorkspaces(baseDir?: string): (WorkspaceEntry & {
|
|
37
|
-
email: string;
|
|
38
|
-
})[];
|
|
39
|
-
export declare function workspaceDataDir(slug?: string, baseDir?: string): string;
|
|
40
|
-
/** Reset cached data dir (for testing or after workspace switch). */
|
|
41
|
-
export declare function resetDataDirCache(): void;
|
|
42
|
-
/**
|
|
43
|
-
* Resolve a workspace slug from a slug-or-nickname input.
|
|
44
|
-
* Resolution: exact slug → case-insensitive nickname → null.
|
|
45
|
-
*/
|
|
46
|
-
export declare function resolveSlug(input: string, baseDir?: string): string | null;
|
|
47
|
-
export declare function migrateIfNeeded(baseDir?: string, legacyMcpPath?: string): void;
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workspace registry — manages multiple Nex workspaces on a single machine.
|
|
3
|
-
*
|
|
4
|
-
* Storage:
|
|
5
|
-
* ~/.nex/config.json → registry (active_workspace + workspace list)
|
|
6
|
-
* ~/.nex/workspaces/<slug>/ → per-workspace credentials + state
|
|
7
|
-
*
|
|
8
|
-
* All functions accept an optional `baseDir` for testing (defaults to ~/.nex).
|
|
9
|
-
*/
|
|
10
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync, renameSync, rmSync, } from "node:fs";
|
|
11
|
-
import { join } from "node:path";
|
|
12
|
-
import { homedir } from "node:os";
|
|
13
|
-
const DEFAULT_BASE_DIR = process.env.NEX_BASE_DIR || join(homedir(), ".nex");
|
|
14
|
-
// --- State file names that get moved during migration ---
|
|
15
|
-
const STATE_FILES = [
|
|
16
|
-
"file-scan-manifest.json",
|
|
17
|
-
"claude-sessions.json",
|
|
18
|
-
"mcp-sessions.json",
|
|
19
|
-
"cli-sessions.json",
|
|
20
|
-
"recall-state.json",
|
|
21
|
-
"rate-limiter.json",
|
|
22
|
-
];
|
|
23
|
-
// --- Core functions ---
|
|
24
|
-
export function loadRegistry(baseDir = DEFAULT_BASE_DIR) {
|
|
25
|
-
const configPath = join(baseDir, "config.json");
|
|
26
|
-
try {
|
|
27
|
-
const raw = readFileSync(configPath, "utf-8");
|
|
28
|
-
const data = JSON.parse(raw);
|
|
29
|
-
if (data && data.active_workspace !== undefined && data.workspaces) {
|
|
30
|
-
return data;
|
|
31
|
-
}
|
|
32
|
-
// Flat config detected — trigger migration
|
|
33
|
-
if (data && data.api_key) {
|
|
34
|
-
migrateIfNeeded(baseDir);
|
|
35
|
-
return JSON.parse(readFileSync(configPath, "utf-8"));
|
|
36
|
-
}
|
|
37
|
-
return { active_workspace: "", workspaces: {} };
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
return { active_workspace: "", workspaces: {} };
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export function saveRegistry(registry, baseDir = DEFAULT_BASE_DIR) {
|
|
44
|
-
mkdirSync(baseDir, { recursive: true });
|
|
45
|
-
writeFileSync(join(baseDir, "config.json"), JSON.stringify(registry, null, 2), "utf-8");
|
|
46
|
-
}
|
|
47
|
-
export function addWorkspace(slug, credentials, nickname, baseDir = DEFAULT_BASE_DIR) {
|
|
48
|
-
const registry = loadRegistry(baseDir);
|
|
49
|
-
const wsDir = join(baseDir, "workspaces", slug);
|
|
50
|
-
mkdirSync(wsDir, { recursive: true });
|
|
51
|
-
// Write credentials
|
|
52
|
-
writeFileSync(join(wsDir, "credentials.json"), JSON.stringify(credentials, null, 2), "utf-8");
|
|
53
|
-
// Update registry — preserve existing nickname if no new one provided
|
|
54
|
-
const existing = registry.workspaces[slug];
|
|
55
|
-
registry.workspaces[slug] = {
|
|
56
|
-
nickname: nickname ?? existing?.nickname,
|
|
57
|
-
added_at: existing?.added_at ?? Date.now(),
|
|
58
|
-
};
|
|
59
|
-
// Set as active if first workspace or no active set
|
|
60
|
-
if (!registry.active_workspace || Object.keys(registry.workspaces).length === 1) {
|
|
61
|
-
registry.active_workspace = slug;
|
|
62
|
-
}
|
|
63
|
-
saveRegistry(registry, baseDir);
|
|
64
|
-
}
|
|
65
|
-
export function removeWorkspace(slug, baseDir = DEFAULT_BASE_DIR) {
|
|
66
|
-
const registry = loadRegistry(baseDir);
|
|
67
|
-
delete registry.workspaces[slug];
|
|
68
|
-
// Clean up active_workspace pointer
|
|
69
|
-
if (registry.active_workspace === slug) {
|
|
70
|
-
const remaining = Object.keys(registry.workspaces);
|
|
71
|
-
registry.active_workspace = remaining[0] ?? "";
|
|
72
|
-
}
|
|
73
|
-
// Remove workspace directory
|
|
74
|
-
const wsDir = join(baseDir, "workspaces", slug);
|
|
75
|
-
rmSync(wsDir, { recursive: true, force: true });
|
|
76
|
-
saveRegistry(registry, baseDir);
|
|
77
|
-
}
|
|
78
|
-
export function switchWorkspace(slug, baseDir = DEFAULT_BASE_DIR) {
|
|
79
|
-
const registry = loadRegistry(baseDir);
|
|
80
|
-
if (!registry.workspaces[slug]) {
|
|
81
|
-
throw new Error(`Workspace "${slug}" not found`);
|
|
82
|
-
}
|
|
83
|
-
registry.active_workspace = slug;
|
|
84
|
-
saveRegistry(registry, baseDir);
|
|
85
|
-
return loadCredentials(slug, baseDir);
|
|
86
|
-
}
|
|
87
|
-
export function renameWorkspace(slug, nickname, baseDir = DEFAULT_BASE_DIR) {
|
|
88
|
-
const registry = loadRegistry(baseDir);
|
|
89
|
-
if (!registry.workspaces[slug]) {
|
|
90
|
-
throw new Error(`Workspace "${slug}" not found`);
|
|
91
|
-
}
|
|
92
|
-
registry.workspaces[slug].nickname = nickname;
|
|
93
|
-
saveRegistry(registry, baseDir);
|
|
94
|
-
}
|
|
95
|
-
export function getActiveCredentials(baseDir = DEFAULT_BASE_DIR) {
|
|
96
|
-
const registry = loadRegistry(baseDir);
|
|
97
|
-
if (!registry.active_workspace)
|
|
98
|
-
return undefined;
|
|
99
|
-
try {
|
|
100
|
-
return loadCredentials(registry.active_workspace, baseDir);
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
export function listWorkspaces(baseDir = DEFAULT_BASE_DIR) {
|
|
107
|
-
const registry = loadRegistry(baseDir);
|
|
108
|
-
return Object.entries(registry.workspaces)
|
|
109
|
-
.map(([slug, meta]) => {
|
|
110
|
-
let email = "";
|
|
111
|
-
try {
|
|
112
|
-
const creds = loadCredentials(slug, baseDir);
|
|
113
|
-
email = creds.email;
|
|
114
|
-
}
|
|
115
|
-
catch { /* missing credentials */ }
|
|
116
|
-
return { slug, nickname: meta.nickname, added_at: meta.added_at, email };
|
|
117
|
-
})
|
|
118
|
-
.sort((a, b) => a.added_at - b.added_at);
|
|
119
|
-
}
|
|
120
|
-
/** Resolve the data directory for a workspace's state files. */
|
|
121
|
-
let _cachedDataDir;
|
|
122
|
-
export function workspaceDataDir(slug, baseDir = DEFAULT_BASE_DIR) {
|
|
123
|
-
if (slug) {
|
|
124
|
-
return join(baseDir, "workspaces", slug);
|
|
125
|
-
}
|
|
126
|
-
if (!_cachedDataDir) {
|
|
127
|
-
const registry = loadRegistry(baseDir);
|
|
128
|
-
if (registry.active_workspace) {
|
|
129
|
-
_cachedDataDir = join(baseDir, "workspaces", registry.active_workspace);
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
// Fallback to base dir if no workspace (pre-registration)
|
|
133
|
-
return baseDir;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return _cachedDataDir;
|
|
137
|
-
}
|
|
138
|
-
/** Reset cached data dir (for testing or after workspace switch). */
|
|
139
|
-
export function resetDataDirCache() {
|
|
140
|
-
_cachedDataDir = undefined;
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Resolve a workspace slug from a slug-or-nickname input.
|
|
144
|
-
* Resolution: exact slug → case-insensitive nickname → null.
|
|
145
|
-
*/
|
|
146
|
-
export function resolveSlug(input, baseDir = DEFAULT_BASE_DIR) {
|
|
147
|
-
const registry = loadRegistry(baseDir);
|
|
148
|
-
if (registry.workspaces[input])
|
|
149
|
-
return input;
|
|
150
|
-
const lower = input.toLowerCase();
|
|
151
|
-
for (const [slug, meta] of Object.entries(registry.workspaces)) {
|
|
152
|
-
if (meta.nickname?.toLowerCase() === lower)
|
|
153
|
-
return slug;
|
|
154
|
-
}
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
// --- Migration ---
|
|
158
|
-
export function migrateIfNeeded(baseDir = DEFAULT_BASE_DIR, legacyMcpPath) {
|
|
159
|
-
const configPath = join(baseDir, "config.json");
|
|
160
|
-
let data = {};
|
|
161
|
-
try {
|
|
162
|
-
data = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
163
|
-
}
|
|
164
|
-
catch {
|
|
165
|
-
return; // No config file — nothing to migrate
|
|
166
|
-
}
|
|
167
|
-
// Already migrated
|
|
168
|
-
if (data.active_workspace !== undefined)
|
|
169
|
-
return;
|
|
170
|
-
// No api_key — nothing to migrate
|
|
171
|
-
if (!data.api_key)
|
|
172
|
-
return;
|
|
173
|
-
const slug = data.workspace_slug || "default";
|
|
174
|
-
const wsDir = join(baseDir, "workspaces", slug);
|
|
175
|
-
mkdirSync(wsDir, { recursive: true });
|
|
176
|
-
// Write credentials
|
|
177
|
-
const credentials = {
|
|
178
|
-
api_key: data.api_key,
|
|
179
|
-
email: data.email || "",
|
|
180
|
-
workspace_id: String(data.workspace_id || ""),
|
|
181
|
-
workspace_slug: slug,
|
|
182
|
-
};
|
|
183
|
-
writeFileSync(join(wsDir, "credentials.json"), JSON.stringify(credentials, null, 2), "utf-8");
|
|
184
|
-
// Move state files
|
|
185
|
-
for (const file of STATE_FILES) {
|
|
186
|
-
const src = join(baseDir, file);
|
|
187
|
-
const dest = join(wsDir, file);
|
|
188
|
-
if (existsSync(src)) {
|
|
189
|
-
try {
|
|
190
|
-
renameSync(src, dest);
|
|
191
|
-
}
|
|
192
|
-
catch {
|
|
193
|
-
// Cross-device move fallback
|
|
194
|
-
writeFileSync(dest, readFileSync(src));
|
|
195
|
-
rmSync(src);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
// Build new config — preserve global settings, remove credential fields
|
|
200
|
-
const { api_key, email, workspace_id, workspace_slug, ...globalSettings } = data;
|
|
201
|
-
const newConfig = {
|
|
202
|
-
...globalSettings,
|
|
203
|
-
active_workspace: slug,
|
|
204
|
-
workspaces: {
|
|
205
|
-
[slug]: { added_at: Date.now() },
|
|
206
|
-
},
|
|
207
|
-
};
|
|
208
|
-
writeFileSync(configPath, JSON.stringify(newConfig, null, 2), "utf-8");
|
|
209
|
-
// Migrate legacy MCP config if present
|
|
210
|
-
const mcpPath = legacyMcpPath ?? join(homedir(), ".nex-mcp.json");
|
|
211
|
-
try {
|
|
212
|
-
const mcpData = JSON.parse(readFileSync(mcpPath, "utf-8"));
|
|
213
|
-
if (mcpData.api_key && mcpData.workspace_slug && mcpData.workspace_slug !== slug) {
|
|
214
|
-
// Different workspace — add it
|
|
215
|
-
const mcpSlug = mcpData.workspace_slug;
|
|
216
|
-
const mcpWsDir = join(baseDir, "workspaces", mcpSlug);
|
|
217
|
-
mkdirSync(mcpWsDir, { recursive: true });
|
|
218
|
-
const mcpCreds = {
|
|
219
|
-
api_key: mcpData.api_key,
|
|
220
|
-
email: mcpData.email || "",
|
|
221
|
-
workspace_id: String(mcpData.workspace_id || ""),
|
|
222
|
-
workspace_slug: mcpSlug,
|
|
223
|
-
};
|
|
224
|
-
writeFileSync(join(mcpWsDir, "credentials.json"), JSON.stringify(mcpCreds, null, 2), "utf-8");
|
|
225
|
-
newConfig.workspaces[mcpSlug] = { added_at: Date.now() };
|
|
226
|
-
writeFileSync(configPath, JSON.stringify(newConfig, null, 2), "utf-8");
|
|
227
|
-
}
|
|
228
|
-
// Backup legacy file
|
|
229
|
-
renameSync(mcpPath, mcpPath + ".bak");
|
|
230
|
-
}
|
|
231
|
-
catch {
|
|
232
|
-
// No MCP config or already backed up — fine
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
// --- Helpers ---
|
|
236
|
-
function loadCredentials(slug, baseDir) {
|
|
237
|
-
const credPath = join(baseDir, "workspaces", slug, "credentials.json");
|
|
238
|
-
return JSON.parse(readFileSync(credPath, "utf-8"));
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=workspace-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-registry.js","sourceRoot":"","sources":["../../src/lib/workspace-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/channel.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Nex Channel — pushes daily digests and proactive notifications
|
|
3
|
-
* into active Claude Code sessions via the Channels API.
|
|
4
|
-
*
|
|
5
|
-
* Fetches notification preferences and pending notifications from
|
|
6
|
-
* the Nex API. Frequency is controlled server-side via the
|
|
7
|
-
* notifications/preferences endpoint.
|
|
8
|
-
*/
|
|
9
|
-
import type { NexApiClient } from "./client.js";
|
|
10
|
-
interface NotificationSender {
|
|
11
|
-
notification(notification: {
|
|
12
|
-
method: string;
|
|
13
|
-
params?: Record<string, unknown>;
|
|
14
|
-
}): Promise<void>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Start the Nex notification channel. Call this after the MCP server
|
|
18
|
-
* has connected to its transport.
|
|
19
|
-
*
|
|
20
|
-
* Fetches notification preferences from the API to determine polling
|
|
21
|
-
* frequency. Digest state is kept locally (client-initiated).
|
|
22
|
-
*/
|
|
23
|
-
export declare function startChannel(server: NotificationSender, client: NexApiClient): Promise<void>;
|
|
24
|
-
export {};
|