@creativeintelligence/abbie 0.1.3 → 0.1.5
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/dist/cli/commands/start.js +2 -1
- package/oclif.manifest.json +1 -1
- package/package.json +13 -7
- package/dist/cli/base-command.d.ts.map +0 -1
- package/dist/cli/commands/agent/list.d.ts.map +0 -1
- package/dist/cli/commands/annotation/ack.d.ts.map +0 -1
- package/dist/cli/commands/annotation/create.d.ts.map +0 -1
- package/dist/cli/commands/annotation/events.d.ts.map +0 -1
- package/dist/cli/commands/annotation/export.d.ts.map +0 -1
- package/dist/cli/commands/annotation/import.d.ts.map +0 -1
- package/dist/cli/commands/annotation/ingest.d.ts.map +0 -1
- package/dist/cli/commands/annotation/list.d.ts.map +0 -1
- package/dist/cli/commands/annotation/reply.d.ts.map +0 -1
- package/dist/cli/commands/annotation/resolve.d.ts.map +0 -1
- package/dist/cli/commands/auto/index.d.ts.map +0 -1
- package/dist/cli/commands/backlog/add.d.ts.map +0 -1
- package/dist/cli/commands/backlog/claim.d.ts.map +0 -1
- package/dist/cli/commands/backlog/complete.d.ts.map +0 -1
- package/dist/cli/commands/backlog/list.d.ts.map +0 -1
- package/dist/cli/commands/backlog/pick.d.ts.map +0 -1
- package/dist/cli/commands/backlog/sync.d.ts.map +0 -1
- package/dist/cli/commands/bootstrap.d.ts.map +0 -1
- package/dist/cli/commands/bridge.d.ts.map +0 -1
- package/dist/cli/commands/context/inject.d.ts.map +0 -1
- package/dist/cli/commands/context/list.d.ts.map +0 -1
- package/dist/cli/commands/context/publish.d.ts.map +0 -1
- package/dist/cli/commands/context/read.d.ts.map +0 -1
- package/dist/cli/commands/daemon.d.ts.map +0 -1
- package/dist/cli/commands/digest/index.d.ts.map +0 -1
- package/dist/cli/commands/docs/lint.d.ts.map +0 -1
- package/dist/cli/commands/docs/sync.d.ts.map +0 -1
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/find/index.d.ts.map +0 -1
- package/dist/cli/commands/gc.d.ts.map +0 -1
- package/dist/cli/commands/history/index.d.ts.map +0 -1
- package/dist/cli/commands/hooks/guard.d.ts.map +0 -1
- package/dist/cli/commands/hooks/list.d.ts.map +0 -1
- package/dist/cli/commands/hooks/lock.d.ts.map +0 -1
- package/dist/cli/commands/hooks/status.d.ts.map +0 -1
- package/dist/cli/commands/hooks/test.d.ts.map +0 -1
- package/dist/cli/commands/hooks/unlock.d.ts.map +0 -1
- package/dist/cli/commands/index.d.ts.map +0 -1
- package/dist/cli/commands/list.d.ts.map +0 -1
- package/dist/cli/commands/list.e2e.test.d.ts +0 -1
- package/dist/cli/commands/list.e2e.test.js +0 -47
- package/dist/cli/commands/login.d.ts.map +0 -1
- package/dist/cli/commands/logout.d.ts.map +0 -1
- package/dist/cli/commands/panes/broker.d.ts.map +0 -1
- package/dist/cli/commands/panes/pipe-sink.d.ts.map +0 -1
- package/dist/cli/commands/panes/snapshot.d.ts.map +0 -1
- package/dist/cli/commands/plan.d.ts.map +0 -1
- package/dist/cli/commands/plan.e2e.test.d.ts +0 -1
- package/dist/cli/commands/plan.e2e.test.js +0 -74
- package/dist/cli/commands/preview/index.d.ts.map +0 -1
- package/dist/cli/commands/preview/init.d.ts.map +0 -1
- package/dist/cli/commands/preview/list.d.ts.map +0 -1
- package/dist/cli/commands/preview/status.d.ts.map +0 -1
- package/dist/cli/commands/preview/stop.d.ts.map +0 -1
- package/dist/cli/commands/preview/sync.d.ts.map +0 -1
- package/dist/cli/commands/preview/watch.d.ts.map +0 -1
- package/dist/cli/commands/project/add.d.ts.map +0 -1
- package/dist/cli/commands/project/list.d.ts.map +0 -1
- package/dist/cli/commands/project/remove.d.ts.map +0 -1
- package/dist/cli/commands/push.d.ts.map +0 -1
- package/dist/cli/commands/reference/add.d.ts.map +0 -1
- package/dist/cli/commands/reference/delete.d.ts.map +0 -1
- package/dist/cli/commands/reference/extract.d.ts.map +0 -1
- package/dist/cli/commands/reference/list.d.ts.map +0 -1
- package/dist/cli/commands/reference/normalize.d.ts.map +0 -1
- package/dist/cli/commands/reference/open.d.ts.map +0 -1
- package/dist/cli/commands/reference/save.d.ts.map +0 -1
- package/dist/cli/commands/reference/search.d.ts.map +0 -1
- package/dist/cli/commands/reference/show.d.ts.map +0 -1
- package/dist/cli/commands/reference/update-index.d.ts.map +0 -1
- package/dist/cli/commands/reference/update.d.ts.map +0 -1
- package/dist/cli/commands/report/blocked.d.ts.map +0 -1
- package/dist/cli/commands/report/complete.d.ts.map +0 -1
- package/dist/cli/commands/report/progress.d.ts.map +0 -1
- package/dist/cli/commands/report/start.d.ts.map +0 -1
- package/dist/cli/commands/resource/acquire.d.ts.map +0 -1
- package/dist/cli/commands/resource/list.d.ts.map +0 -1
- package/dist/cli/commands/resource/release.d.ts.map +0 -1
- package/dist/cli/commands/resource/wait.d.ts.map +0 -1
- package/dist/cli/commands/review.d.ts.map +0 -1
- package/dist/cli/commands/session/attach.d.ts.map +0 -1
- package/dist/cli/commands/session/await.d.ts.map +0 -1
- package/dist/cli/commands/session/complete.d.ts.map +0 -1
- package/dist/cli/commands/session/create.d.ts.map +0 -1
- package/dist/cli/commands/session/heartbeat.d.ts.map +0 -1
- package/dist/cli/commands/session/list.d.ts.map +0 -1
- package/dist/cli/commands/session/mark-done.d.ts.map +0 -1
- package/dist/cli/commands/session/mine.d.ts.map +0 -1
- package/dist/cli/commands/session/replay.d.ts.map +0 -1
- package/dist/cli/commands/session/run.d.ts.map +0 -1
- package/dist/cli/commands/session/show.d.ts.map +0 -1
- package/dist/cli/commands/session/start.d.ts.map +0 -1
- package/dist/cli/commands/session/state/cleanup.d.ts.map +0 -1
- package/dist/cli/commands/session/state/end.d.ts.map +0 -1
- package/dist/cli/commands/session/state/get.d.ts.map +0 -1
- package/dist/cli/commands/session/state/init.d.ts.map +0 -1
- package/dist/cli/commands/session/state/list.d.ts.map +0 -1
- package/dist/cli/commands/session/state/update.d.ts.map +0 -1
- package/dist/cli/commands/session/stop.d.ts.map +0 -1
- package/dist/cli/commands/session/view.d.ts.map +0 -1
- package/dist/cli/commands/start.d.ts.map +0 -1
- package/dist/cli/commands/state/dump.d.ts.map +0 -1
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/sync.d.ts.map +0 -1
- package/dist/cli/commands/trace/export.d.ts.map +0 -1
- package/dist/cli/commands/triage/claim.d.ts.map +0 -1
- package/dist/cli/commands/triage/list.d.ts.map +0 -1
- package/dist/cli/commands/triage/next.d.ts.map +0 -1
- package/dist/cli/commands/triage/pull.d.ts.map +0 -1
- package/dist/cli/commands/triage/stats.d.ts.map +0 -1
- package/dist/cli/commands/tunnel/list.d.ts.map +0 -1
- package/dist/cli/commands/tunnel/start.d.ts.map +0 -1
- package/dist/cli/commands/tunnel/stop.d.ts.map +0 -1
- package/dist/cli/commands/tunnel/url.d.ts.map +0 -1
- package/dist/cli/commands/web/start.d.ts.map +0 -1
- package/dist/cli/commands/windows/context.d.ts.map +0 -1
- package/dist/cli/commands/windows/focus.d.ts.map +0 -1
- package/dist/cli/commands/windows/list.d.ts.map +0 -1
- package/dist/cli/commands/windows/map.d.ts.map +0 -1
- package/dist/cli/commands/windows/read.d.ts.map +0 -1
- package/dist/cli/commands/windows/search.d.ts.map +0 -1
- package/dist/cli/commands/windows/show.d.ts.map +0 -1
- package/dist/cli/commands/windows/watch.d.ts.map +0 -1
- package/dist/lib/active-sessions.d.ts.map +0 -1
- package/dist/lib/agent-adapters.d.ts.map +0 -1
- package/dist/lib/agent-sessions.d.ts.map +0 -1
- package/dist/lib/agent-trace.d.ts.map +0 -1
- package/dist/lib/analytics.d.ts.map +0 -1
- package/dist/lib/annotations-convex.d.ts.map +0 -1
- package/dist/lib/annotations.d.ts.map +0 -1
- package/dist/lib/auto/discover.d.ts.map +0 -1
- package/dist/lib/auto/ideate.d.ts.map +0 -1
- package/dist/lib/auto/spawn.d.ts.map +0 -1
- package/dist/lib/auto/workspace.d.ts.map +0 -1
- package/dist/lib/backlog.d.ts.map +0 -1
- package/dist/lib/backlog.test.d.ts +0 -1
- package/dist/lib/backlog.test.js +0 -162
- package/dist/lib/config-loader.d.ts.map +0 -1
- package/dist/lib/config-sync/adapters/claude.d.ts.map +0 -1
- package/dist/lib/config-sync/adapters/codex.d.ts.map +0 -1
- package/dist/lib/config-sync/adapters/copilot.d.ts.map +0 -1
- package/dist/lib/config-sync/adapters/gemini.d.ts.map +0 -1
- package/dist/lib/config-sync/adapters/index.d.ts.map +0 -1
- package/dist/lib/config-sync/adapters/opencode.d.ts.map +0 -1
- package/dist/lib/config-sync/index.d.ts.map +0 -1
- package/dist/lib/config-sync/types.d.ts.map +0 -1
- package/dist/lib/config-sync/writer.d.ts.map +0 -1
- package/dist/lib/content-sync/index.d.ts.map +0 -1
- package/dist/lib/content-sync/types.d.ts.map +0 -1
- package/dist/lib/contracts.d.ts.map +0 -1
- package/dist/lib/convex.d.ts.map +0 -1
- package/dist/lib/device.d.ts.map +0 -1
- package/dist/lib/digest/index.d.ts.map +0 -1
- package/dist/lib/docs/lint.d.ts.map +0 -1
- package/dist/lib/docs/lint.test.d.ts +0 -1
- package/dist/lib/docs/lint.test.js +0 -120
- package/dist/lib/docs/sync.d.ts.map +0 -1
- package/dist/lib/doctor/index.d.ts.map +0 -1
- package/dist/lib/doctor/repos.d.ts.map +0 -1
- package/dist/lib/doctor/templates.d.ts.map +0 -1
- package/dist/lib/errors.d.ts.map +0 -1
- package/dist/lib/events.d.ts.map +0 -1
- package/dist/lib/heartbeat.d.ts.map +0 -1
- package/dist/lib/heartbeat.test.d.ts +0 -1
- package/dist/lib/heartbeat.test.js +0 -124
- package/dist/lib/hooks/adapters/claude.d.ts.map +0 -1
- package/dist/lib/hooks/adapters/codex.d.ts.map +0 -1
- package/dist/lib/hooks/adapters/copilot.d.ts.map +0 -1
- package/dist/lib/hooks/context.d.ts.map +0 -1
- package/dist/lib/hooks/index.d.ts.map +0 -1
- package/dist/lib/hooks/registry.d.ts.map +0 -1
- package/dist/lib/hooks/runner.d.ts.map +0 -1
- package/dist/lib/hooks/types.d.ts.map +0 -1
- package/dist/lib/index.test.d.ts +0 -1
- package/dist/lib/index.test.js +0 -334
- package/dist/lib/managed-session.d.ts.map +0 -1
- package/dist/lib/math.d.ts.map +0 -1
- package/dist/lib/math.test.d.ts +0 -1
- package/dist/lib/math.test.js +0 -238
- package/dist/lib/ngrok.d.ts.map +0 -1
- package/dist/lib/nvim/discovery.d.ts.map +0 -1
- package/dist/lib/nvim/discovery.test.d.ts +0 -1
- package/dist/lib/nvim/discovery.test.js +0 -131
- package/dist/lib/nvim/index.d.ts.map +0 -1
- package/dist/lib/nvim/remote.d.ts.map +0 -1
- package/dist/lib/nvim/remote.test.d.ts +0 -1
- package/dist/lib/nvim/remote.test.js +0 -18
- package/dist/lib/panes/broker.d.ts.map +0 -1
- package/dist/lib/panes/index.d.ts.map +0 -1
- package/dist/lib/panes/server.d.ts.map +0 -1
- package/dist/lib/preview/detect.d.ts.map +0 -1
- package/dist/lib/preview/index.d.ts.map +0 -1
- package/dist/lib/preview/manager.d.ts.map +0 -1
- package/dist/lib/preview/schema.d.ts.map +0 -1
- package/dist/lib/preview/sprite.d.ts.map +0 -1
- package/dist/lib/preview/watcher.d.ts.map +0 -1
- package/dist/lib/process/index.d.ts.map +0 -1
- package/dist/lib/process/snapshot.d.ts.map +0 -1
- package/dist/lib/process/snapshot.test.d.ts +0 -1
- package/dist/lib/process/snapshot.test.js +0 -127
- package/dist/lib/project-identity.d.ts.map +0 -1
- package/dist/lib/provider-auth.d.ts.map +0 -1
- package/dist/lib/references.d.ts.map +0 -1
- package/dist/lib/report.d.ts.map +0 -1
- package/dist/lib/resources.d.ts.map +0 -1
- package/dist/lib/resources.test.d.ts +0 -1
- package/dist/lib/resources.test.js +0 -94
- package/dist/lib/runner.d.ts.map +0 -1
- package/dist/lib/runner.test.d.ts +0 -1
- package/dist/lib/runner.test.js +0 -234
- package/dist/lib/session-artifacts.d.ts.map +0 -1
- package/dist/lib/session-manager.d.ts.map +0 -1
- package/dist/lib/session-manager.test.d.ts +0 -1
- package/dist/lib/session-manager.test.js +0 -310
- package/dist/lib/session-result.d.ts.map +0 -1
- package/dist/lib/session-state.d.ts.map +0 -1
- package/dist/lib/slack-workspace.d.ts.map +0 -1
- package/dist/lib/tmux/bridge.d.ts.map +0 -1
- package/dist/lib/tmux/context.d.ts.map +0 -1
- package/dist/lib/tmux/context.test.d.ts +0 -1
- package/dist/lib/tmux/context.test.js +0 -215
- package/dist/lib/tmux/index.d.ts.map +0 -1
- package/dist/lib/tmux/map.d.ts.map +0 -1
- package/dist/lib/tmux/map.test.d.ts +0 -1
- package/dist/lib/tmux/map.test.js +0 -80
- package/dist/lib/tmux/panes.d.ts.map +0 -1
- package/dist/lib/tmux/redaction.d.ts.map +0 -1
- package/dist/lib/tmux/redaction.test.d.ts +0 -1
- package/dist/lib/tmux/redaction.test.js +0 -183
- package/dist/lib/triage-llm.d.ts.map +0 -1
- package/dist/lib/triage-tracker.d.ts.map +0 -1
- package/dist/lib/triage.d.ts.map +0 -1
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/windows/index.d.ts.map +0 -1
- package/dist/lib/windows/inventory.d.ts.map +0 -1
- package/dist/lib/windows/inventory.test.d.ts +0 -1
- package/dist/lib/windows/inventory.test.js +0 -292
- package/dist/lib/windows/types.d.ts.map +0 -1
- package/dist/lib.d.ts.map +0 -1
- package/dist/web/app/@overlay/default.d.ts +0 -1
- package/dist/web/app/@overlay/default.js +0 -3
- package/dist/web/app/about/page.d.ts +0 -1
- package/dist/web/app/about/page.js +0 -6
- package/dist/web/app/layout.d.ts +0 -7
- package/dist/web/app/layout.js +0 -19
- package/dist/web/app/page.d.ts +0 -1
- package/dist/web/app/page.js +0 -38
- package/dist/web/app/settings/page.d.ts +0 -1
- package/dist/web/app/settings/page.js +0 -6
- package/dist/web/app/shortcuts/page.d.ts +0 -1
- package/dist/web/app/shortcuts/page.js +0 -6
- package/dist/web/atoms/sidebar.d.ts +0 -16
- package/dist/web/atoms/sidebar.js +0 -58
- package/dist/web/atoms/state.d.ts +0 -24
- package/dist/web/atoms/state.js +0 -43
- package/dist/web/components/command-palette.d.ts +0 -6
- package/dist/web/components/command-palette.js +0 -297
- package/dist/web/components/main-view.d.ts +0 -1
- package/dist/web/components/main-view.js +0 -93
- package/dist/web/components/overlay/page-overlay.d.ts +0 -16
- package/dist/web/components/overlay/page-overlay.js +0 -84
- package/dist/web/components/pane-view.d.ts +0 -5
- package/dist/web/components/pane-view.js +0 -168
- package/dist/web/components/project-files-view.d.ts +0 -6
- package/dist/web/components/project-files-view.js +0 -205
- package/dist/web/components/project-planning-view.d.ts +0 -6
- package/dist/web/components/project-planning-view.js +0 -146
- package/dist/web/components/session-view.d.ts +0 -6
- package/dist/web/components/session-view.js +0 -211
- package/dist/web/components/sessions-list-view.d.ts +0 -1
- package/dist/web/components/sessions-list-view.js +0 -118
- package/dist/web/components/sidebar/index.d.ts +0 -9
- package/dist/web/components/sidebar/index.js +0 -29
- package/dist/web/components/sidebar/kbd.d.ts +0 -17
- package/dist/web/components/sidebar/kbd.js +0 -47
- package/dist/web/components/sidebar/nav-group.d.ts +0 -22
- package/dist/web/components/sidebar/nav-group.js +0 -43
- package/dist/web/components/sidebar/nav-item.d.ts +0 -17
- package/dist/web/components/sidebar/nav-item.js +0 -38
- package/dist/web/components/sidebar/sidebar-header.d.ts +0 -9
- package/dist/web/components/sidebar/sidebar-header.js +0 -18
- package/dist/web/components/sidebar/sidebar-nav.d.ts +0 -7
- package/dist/web/components/sidebar/sidebar-nav.js +0 -505
- package/dist/web/components/sidebar/sidebar-search.d.ts +0 -7
- package/dist/web/components/sidebar/sidebar-search.js +0 -18
- package/dist/web/components/sidebar/sidebar-settings.d.ts +0 -4
- package/dist/web/components/sidebar/sidebar-settings.js +0 -28
- package/dist/web/components/sidebar/sidebar-transition.d.ts +0 -12
- package/dist/web/components/sidebar/sidebar-transition.js +0 -58
- package/dist/web/components/status-bar.d.ts +0 -1
- package/dist/web/components/status-bar.js +0 -53
- package/dist/web/components/terminal.d.ts +0 -4
- package/dist/web/components/terminal.js +0 -324
- package/dist/web/components/toast.d.ts +0 -7
- package/dist/web/components/toast.js +0 -72
- package/dist/web/hooks/use-keybindings.d.ts +0 -30
- package/dist/web/hooks/use-keybindings.js +0 -322
- package/dist/web/hooks/use-state.d.ts +0 -11
- package/dist/web/hooks/use-state.js +0 -84
- package/dist/web/lib/api.d.ts +0 -179
- package/dist/web/lib/api.js +0 -79
- package/dist/web/lib/paths.d.ts +0 -2
- package/dist/web/lib/paths.js +0 -26
- package/dist/web/lib/utils.d.ts +0 -2
- package/dist/web/lib/utils.js +0 -5
- package/dist/web/lib/ws.d.ts +0 -18
- package/dist/web/lib/ws.js +0 -138
- package/dist/web/next.config.d.ts +0 -3
- package/dist/web/next.config.js +0 -9
- package/scripts/generate-manifest.ts +0 -44
- package/src/cli/base-command.ts +0 -233
- package/src/cli/commands/__tests__/annotations.test.ts +0 -704
- package/src/cli/commands/__tests__/bridge.test.ts +0 -101
- package/src/cli/commands/__tests__/daemon.test.ts +0 -79
- package/src/cli/commands/agent/list.ts +0 -75
- package/src/cli/commands/annotation/ack.ts +0 -37
- package/src/cli/commands/annotation/create.ts +0 -67
- package/src/cli/commands/annotation/events.ts +0 -63
- package/src/cli/commands/annotation/export.ts +0 -67
- package/src/cli/commands/annotation/import.ts +0 -98
- package/src/cli/commands/annotation/ingest.ts +0 -112
- package/src/cli/commands/annotation/list.ts +0 -57
- package/src/cli/commands/annotation/reply.ts +0 -46
- package/src/cli/commands/annotation/resolve.ts +0 -37
- package/src/cli/commands/auto/index.ts +0 -755
- package/src/cli/commands/backlog/add.ts +0 -74
- package/src/cli/commands/backlog/claim.ts +0 -53
- package/src/cli/commands/backlog/complete.ts +0 -51
- package/src/cli/commands/backlog/list.ts +0 -107
- package/src/cli/commands/backlog/pick.ts +0 -50
- package/src/cli/commands/backlog/sync.ts +0 -131
- package/src/cli/commands/bootstrap.ts +0 -205
- package/src/cli/commands/bridge.ts +0 -233
- package/src/cli/commands/context/inject.ts +0 -103
- package/src/cli/commands/context/list.ts +0 -112
- package/src/cli/commands/context/publish.ts +0 -83
- package/src/cli/commands/context/read.ts +0 -85
- package/src/cli/commands/daemon.ts +0 -1809
- package/src/cli/commands/digest/index.ts +0 -245
- package/src/cli/commands/docs/lint.ts +0 -93
- package/src/cli/commands/docs/sync.ts +0 -90
- package/src/cli/commands/doctor.ts +0 -267
- package/src/cli/commands/find/index.ts +0 -313
- package/src/cli/commands/history/index.ts +0 -269
- package/src/cli/commands/hooks/guard.ts +0 -71
- package/src/cli/commands/hooks/list.ts +0 -139
- package/src/cli/commands/hooks/lock.ts +0 -47
- package/src/cli/commands/hooks/status.ts +0 -56
- package/src/cli/commands/hooks/test.ts +0 -190
- package/src/cli/commands/hooks/unlock.ts +0 -56
- package/src/cli/commands/list.e2e.test.ts +0 -58
- package/src/cli/commands/list.ts +0 -96
- package/src/cli/commands/login.ts +0 -236
- package/src/cli/commands/logout.ts +0 -45
- package/src/cli/commands/panes/broker.ts +0 -68
- package/src/cli/commands/panes/pipe-sink.ts +0 -101
- package/src/cli/commands/panes/snapshot.ts +0 -156
- package/src/cli/commands/plan.e2e.test.ts +0 -90
- package/src/cli/commands/plan.ts +0 -68
- package/src/cli/commands/preview/index.ts +0 -282
- package/src/cli/commands/preview/list.ts +0 -116
- package/src/cli/commands/preview/status.ts +0 -137
- package/src/cli/commands/preview/stop.ts +0 -165
- package/src/cli/commands/project/add.ts +0 -110
- package/src/cli/commands/project/list.ts +0 -136
- package/src/cli/commands/project/remove.ts +0 -60
- package/src/cli/commands/push.ts +0 -115
- package/src/cli/commands/reference/add.ts +0 -266
- package/src/cli/commands/reference/delete.ts +0 -67
- package/src/cli/commands/reference/extract.ts +0 -389
- package/src/cli/commands/reference/list.ts +0 -117
- package/src/cli/commands/reference/normalize.ts +0 -90
- package/src/cli/commands/reference/open.ts +0 -92
- package/src/cli/commands/reference/save.ts +0 -103
- package/src/cli/commands/reference/search.ts +0 -85
- package/src/cli/commands/reference/show.ts +0 -174
- package/src/cli/commands/reference/update-index.ts +0 -103
- package/src/cli/commands/reference/update.ts +0 -136
- package/src/cli/commands/report/blocked.ts +0 -165
- package/src/cli/commands/report/complete.ts +0 -179
- package/src/cli/commands/report/progress.ts +0 -142
- package/src/cli/commands/report/start.ts +0 -140
- package/src/cli/commands/resource/acquire.ts +0 -116
- package/src/cli/commands/resource/list.ts +0 -77
- package/src/cli/commands/resource/release.ts +0 -64
- package/src/cli/commands/resource/wait.ts +0 -93
- package/src/cli/commands/review.ts +0 -105
- package/src/cli/commands/session/attach.ts +0 -200
- package/src/cli/commands/session/await.ts +0 -83
- package/src/cli/commands/session/complete.ts +0 -100
- package/src/cli/commands/session/create.ts +0 -92
- package/src/cli/commands/session/heartbeat.ts +0 -63
- package/src/cli/commands/session/list.ts +0 -281
- package/src/cli/commands/session/mark-done.ts +0 -132
- package/src/cli/commands/session/mine.ts +0 -189
- package/src/cli/commands/session/replay.ts +0 -659
- package/src/cli/commands/session/run.ts +0 -44
- package/src/cli/commands/session/show.ts +0 -177
- package/src/cli/commands/session/start.ts +0 -580
- package/src/cli/commands/session/state/cleanup.ts +0 -61
- package/src/cli/commands/session/state/end.ts +0 -47
- package/src/cli/commands/session/state/get.ts +0 -65
- package/src/cli/commands/session/state/init.ts +0 -50
- package/src/cli/commands/session/state/list.ts +0 -68
- package/src/cli/commands/session/state/update.ts +0 -108
- package/src/cli/commands/session/stop.ts +0 -134
- package/src/cli/commands/session/view.ts +0 -186
- package/src/cli/commands/start.ts +0 -256
- package/src/cli/commands/state/dump.ts +0 -449
- package/src/cli/commands/status.ts +0 -244
- package/src/cli/commands/sync.ts +0 -174
- package/src/cli/commands/trace/export.ts +0 -255
- package/src/cli/commands/triage/claim.ts +0 -203
- package/src/cli/commands/triage/list.ts +0 -137
- package/src/cli/commands/triage/next.ts +0 -73
- package/src/cli/commands/triage/pull.ts +0 -97
- package/src/cli/commands/triage/stats.ts +0 -82
- package/src/cli/commands/tunnel/list.ts +0 -113
- package/src/cli/commands/tunnel/start.ts +0 -122
- package/src/cli/commands/tunnel/stop.ts +0 -108
- package/src/cli/commands/tunnel/url.ts +0 -82
- package/src/cli/commands/web/start.ts +0 -125
- package/src/cli/commands/windows/context.ts +0 -439
- package/src/cli/commands/windows/focus.ts +0 -130
- package/src/cli/commands/windows/list.ts +0 -213
- package/src/cli/commands/windows/map.ts +0 -223
- package/src/cli/commands/windows/read.ts +0 -279
- package/src/cli/commands/windows/search.ts +0 -219
- package/src/cli/commands/windows/show.ts +0 -188
- package/src/cli/commands/windows/watch.ts +0 -262
- package/src/lib/__tests__/annotations-convex.test.ts +0 -104
- package/src/lib/active-sessions.ts +0 -1486
- package/src/lib/agent-adapters.ts +0 -412
- package/src/lib/agent-sessions.ts +0 -671
- package/src/lib/agent-trace.test.ts +0 -296
- package/src/lib/agent-trace.ts +0 -513
- package/src/lib/analytics.ts +0 -178
- package/src/lib/annotations-convex.ts +0 -296
- package/src/lib/annotations.test.ts +0 -274
- package/src/lib/annotations.ts +0 -836
- package/src/lib/auto/discover.ts +0 -545
- package/src/lib/auto/ideate.ts +0 -412
- package/src/lib/auto/spawn.ts +0 -549
- package/src/lib/auto/workspace.ts +0 -282
- package/src/lib/backlog.test.ts +0 -194
- package/src/lib/backlog.ts +0 -428
- package/src/lib/config-loader.ts +0 -391
- package/src/lib/config-sync/adapters/claude.ts +0 -91
- package/src/lib/config-sync/adapters/codex.ts +0 -135
- package/src/lib/config-sync/adapters/copilot.ts +0 -98
- package/src/lib/config-sync/adapters/gemini.ts +0 -86
- package/src/lib/config-sync/adapters/index.ts +0 -39
- package/src/lib/config-sync/adapters/opencode.ts +0 -94
- package/src/lib/config-sync/index.ts +0 -399
- package/src/lib/config-sync/types.ts +0 -92
- package/src/lib/config-sync/writer.ts +0 -188
- package/src/lib/content-sync/index.ts +0 -882
- package/src/lib/content-sync/types.ts +0 -104
- package/src/lib/contracts.test.ts +0 -186
- package/src/lib/contracts.ts +0 -195
- package/src/lib/convex.ts +0 -54
- package/src/lib/device.ts +0 -41
- package/src/lib/digest/index.ts +0 -529
- package/src/lib/docs/lint.test.ts +0 -135
- package/src/lib/docs/lint.ts +0 -310
- package/src/lib/docs/sync.ts +0 -184
- package/src/lib/doctor/index.ts +0 -647
- package/src/lib/doctor/repos.ts +0 -381
- package/src/lib/doctor/templates.ts +0 -191
- package/src/lib/errors.ts +0 -111
- package/src/lib/events.ts +0 -479
- package/src/lib/heartbeat.test.ts +0 -164
- package/src/lib/heartbeat.ts +0 -326
- package/src/lib/hooks/adapters/claude.ts +0 -115
- package/src/lib/hooks/adapters/codex.ts +0 -92
- package/src/lib/hooks/adapters/copilot.ts +0 -141
- package/src/lib/hooks/context.ts +0 -174
- package/src/lib/hooks/index.ts +0 -39
- package/src/lib/hooks/registry.ts +0 -101
- package/src/lib/hooks/runner.ts +0 -208
- package/src/lib/hooks/types.ts +0 -89
- package/src/lib/index.test.ts +0 -426
- package/src/lib/managed-session.ts +0 -117
- package/src/lib/math.test.ts +0 -299
- package/src/lib/math.ts +0 -120
- package/src/lib/ngrok.ts +0 -441
- package/src/lib/nvim/discovery.test.ts +0 -157
- package/src/lib/nvim/discovery.ts +0 -181
- package/src/lib/nvim/index.ts +0 -28
- package/src/lib/nvim/remote.test.ts +0 -21
- package/src/lib/nvim/remote.ts +0 -184
- package/src/lib/panes/README.md +0 -20
- package/src/lib/panes/broker.ts +0 -261
- package/src/lib/panes/index.ts +0 -1
- package/src/lib/panes/server.ts +0 -379
- package/src/lib/preview/detect.ts +0 -184
- package/src/lib/preview/index.ts +0 -1
- package/src/lib/process/index.ts +0 -16
- package/src/lib/process/snapshot.test.ts +0 -188
- package/src/lib/process/snapshot.ts +0 -257
- package/src/lib/provider-auth.ts +0 -258
- package/src/lib/references.ts +0 -481
- package/src/lib/report.ts +0 -973
- package/src/lib/resources.test.ts +0 -132
- package/src/lib/resources.ts +0 -429
- package/src/lib/runner.test.ts +0 -288
- package/src/lib/runner.ts +0 -1223
- package/src/lib/session-artifacts.test.ts +0 -107
- package/src/lib/session-artifacts.ts +0 -193
- package/src/lib/session-manager.test.ts +0 -402
- package/src/lib/session-manager.ts +0 -150
- package/src/lib/session-result.test.ts +0 -98
- package/src/lib/session-result.ts +0 -262
- package/src/lib/session-state.ts +0 -470
- package/src/lib/slack-workspace.ts +0 -25
- package/src/lib/tmux/bridge.ts +0 -439
- package/src/lib/tmux/context.test.ts +0 -242
- package/src/lib/tmux/context.ts +0 -380
- package/src/lib/tmux/index.ts +0 -46
- package/src/lib/tmux/map.test.ts +0 -99
- package/src/lib/tmux/map.ts +0 -252
- package/src/lib/tmux/panes.ts +0 -170
- package/src/lib/tmux/redaction.test.ts +0 -231
- package/src/lib/tmux/redaction.ts +0 -201
- package/src/lib/triage-llm.ts +0 -312
- package/src/lib/triage-tracker.ts +0 -400
- package/src/lib/triage.ts +0 -655
- package/src/lib/types.ts +0 -61
- package/src/lib/windows/index.ts +0 -2
- package/src/lib/windows/inventory.test.ts +0 -370
- package/src/lib/windows/inventory.ts +0 -352
- package/src/lib/windows/types.ts +0 -46
- package/src/lib.ts +0 -260
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { basename, resolve } from "node:path";
|
|
2
|
-
import { getStoredClerkId } from "@creativeintelligence/sdk/config";
|
|
3
|
-
import { api, getHttpClient, isConvexConfigured } from "@creativeintelligence/sdk/convex";
|
|
4
|
-
import { Args, Flags } from "@oclif/core";
|
|
5
|
-
import { BaseCommand } from "../../base-command.js";
|
|
6
|
-
|
|
7
|
-
interface ActiveServer {
|
|
8
|
-
_id: string;
|
|
9
|
-
workspaceId: string;
|
|
10
|
-
workspaceDisplayName?: string | null;
|
|
11
|
-
status?: string;
|
|
12
|
-
name: string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Stop a preview server.
|
|
17
|
-
*/
|
|
18
|
-
export default class PreviewStop extends BaseCommand {
|
|
19
|
-
static override description = "Stop a preview server";
|
|
20
|
-
static override hidden = false;
|
|
21
|
-
|
|
22
|
-
static override examples = [
|
|
23
|
-
"<%= config.bin %> preview stop",
|
|
24
|
-
"<%= config.bin %> preview stop --project my-app",
|
|
25
|
-
"<%= config.bin %> preview stop --all",
|
|
26
|
-
"<%= config.bin %> preview stop --json",
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
static override args = {
|
|
30
|
-
project: Args.string({
|
|
31
|
-
description: "Project name or path (defaults to current directory)",
|
|
32
|
-
}),
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
static override flags = {
|
|
36
|
-
...BaseCommand.baseFlags,
|
|
37
|
-
project: Flags.string({
|
|
38
|
-
char: "p",
|
|
39
|
-
description: "Project name or path",
|
|
40
|
-
}),
|
|
41
|
-
all: Flags.boolean({
|
|
42
|
-
description: "Stop all running previews",
|
|
43
|
-
default: false,
|
|
44
|
-
}),
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
protected async execute(): Promise<unknown> {
|
|
48
|
-
const { args, flags } = await this.parse(PreviewStop);
|
|
49
|
-
this.parsedFlags = flags;
|
|
50
|
-
|
|
51
|
-
if (!isConvexConfigured()) {
|
|
52
|
-
this.error("Convex not configured. Set CONVEX_URL or convexUrl in ~/.abbie/config.json");
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const clerkId = getStoredClerkId();
|
|
56
|
-
if (!clerkId) {
|
|
57
|
-
this.error("Not authenticated. Log in via the web UI first.");
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const isJson = flags.json || flags.format === "json";
|
|
61
|
-
const http = getHttpClient();
|
|
62
|
-
|
|
63
|
-
// Get all active servers
|
|
64
|
-
const servers = (await http.query(api["functions/sandbox/servers"].listActive, { clerkId })) as
|
|
65
|
-
ActiveServer[];
|
|
66
|
-
|
|
67
|
-
// Stop all
|
|
68
|
-
if (flags.all) {
|
|
69
|
-
const results: Array<{
|
|
70
|
-
project: string;
|
|
71
|
-
server_id: string;
|
|
72
|
-
stopped: boolean;
|
|
73
|
-
error?: string;
|
|
74
|
-
}> = [];
|
|
75
|
-
|
|
76
|
-
for (const server of servers) {
|
|
77
|
-
const project = server.workspaceDisplayName?.replace("preview-", "") ?? "unknown";
|
|
78
|
-
try {
|
|
79
|
-
await http.action(api["functions/sandbox/servers"].stop, {
|
|
80
|
-
clerkId,
|
|
81
|
-
workspaceId: server.workspaceId,
|
|
82
|
-
serverId: server._id,
|
|
83
|
-
});
|
|
84
|
-
results.push({ project, server_id: server._id, stopped: true });
|
|
85
|
-
} catch (err) {
|
|
86
|
-
results.push({
|
|
87
|
-
project,
|
|
88
|
-
server_id: server._id,
|
|
89
|
-
stopped: false,
|
|
90
|
-
error: err instanceof Error ? err.message : String(err),
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (isJson) {
|
|
96
|
-
return { success: true, stopped: results };
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (results.length === 0) {
|
|
100
|
-
this.logInfo("No running previews found");
|
|
101
|
-
} else {
|
|
102
|
-
this.log(`Stopped ${results.filter((r) => r.stopped).length} preview(s):`);
|
|
103
|
-
for (const r of results) {
|
|
104
|
-
this.log(` ${r.project}: ${r.stopped ? "✓" : "✗"} ${r.error || ""}`);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return { success: true, stopped: results };
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// Stop specific project
|
|
112
|
-
const projectInput = flags.project || args.project || process.cwd();
|
|
113
|
-
const projectPath = resolve(projectInput);
|
|
114
|
-
const projectName = basename(projectPath);
|
|
115
|
-
|
|
116
|
-
// Find matching server by workspace display name
|
|
117
|
-
const match = servers.find((s) => {
|
|
118
|
-
const wsName = s.workspaceDisplayName ?? "";
|
|
119
|
-
return (
|
|
120
|
-
wsName === `preview-${projectName}` ||
|
|
121
|
-
wsName === projectName ||
|
|
122
|
-
s.name === `preview-${projectName}`
|
|
123
|
-
);
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
if (!match) {
|
|
127
|
-
if (isJson) {
|
|
128
|
-
return { success: false, error: `No active preview found for ${projectName}` };
|
|
129
|
-
}
|
|
130
|
-
this.error(
|
|
131
|
-
`No active preview found for ${projectName}. Run 'abbie preview list' to see active servers.`,
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
this.logInfo(`Stopping preview for ${projectName}...`);
|
|
136
|
-
|
|
137
|
-
try {
|
|
138
|
-
await http.action(api["functions/sandbox/servers"].stop, {
|
|
139
|
-
clerkId,
|
|
140
|
-
workspaceId: match.workspaceId,
|
|
141
|
-
serverId: match._id,
|
|
142
|
-
});
|
|
143
|
-
} catch (err) {
|
|
144
|
-
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
145
|
-
if (isJson) {
|
|
146
|
-
return { success: false, project: projectName, error: errorMsg };
|
|
147
|
-
}
|
|
148
|
-
this.error(`Failed to stop: ${errorMsg}`);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
const result = {
|
|
152
|
-
success: true,
|
|
153
|
-
project: projectName,
|
|
154
|
-
server_id: match._id,
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
if (isJson) {
|
|
158
|
-
return result;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
this.log(`✓ Stopped preview for ${projectName}`);
|
|
162
|
-
|
|
163
|
-
return result;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { existsSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { Args, Flags } from "@oclif/core";
|
|
4
|
-
import { findProjectPath } from "../../../lib/config-loader.js";
|
|
5
|
-
import { ensureManagedSession, hasProjectWindow } from "../../../lib/managed-session.js";
|
|
6
|
-
import { BaseCommand } from "../../base-command.js";
|
|
7
|
-
|
|
8
|
-
export default class ProjectAdd extends BaseCommand {
|
|
9
|
-
static override description = "Add a project to the managed abbie workspace";
|
|
10
|
-
static override hidden = false;
|
|
11
|
-
|
|
12
|
-
static override examples = [
|
|
13
|
-
"<%= config.bin %> project add arbor",
|
|
14
|
-
"<%= config.bin %> project add arbor ~/Developer/apps/arbor/arbor-xyz",
|
|
15
|
-
"<%= config.bin %> project add arbor --bootstrap",
|
|
16
|
-
];
|
|
17
|
-
|
|
18
|
-
static override args = {
|
|
19
|
-
name: Args.string({ required: true, description: "Project name" }),
|
|
20
|
-
path: Args.string({ required: false, description: "Project path (auto-resolved if omitted)" }),
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
static override flags = {
|
|
24
|
-
...BaseCommand.baseFlags,
|
|
25
|
-
bootstrap: Flags.boolean({
|
|
26
|
-
description: "Run bootstrap if .abbie/config.json is missing",
|
|
27
|
-
default: false,
|
|
28
|
-
}),
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
protected async execute(): Promise<unknown> {
|
|
32
|
-
const { args, flags } = await this.parse(ProjectAdd);
|
|
33
|
-
this.parsedFlags = flags;
|
|
34
|
-
|
|
35
|
-
const name = args.name;
|
|
36
|
-
|
|
37
|
-
// Ensure the managed abbie tmux session exists
|
|
38
|
-
const session = await ensureManagedSession();
|
|
39
|
-
|
|
40
|
-
// Check if project window already exists
|
|
41
|
-
if (await hasProjectWindow(name)) {
|
|
42
|
-
this.error(`Project "${name}" already exists in the ${session} session`);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Resolve project path
|
|
46
|
-
let projectPath = args.path;
|
|
47
|
-
if (!projectPath) {
|
|
48
|
-
projectPath = findProjectPath(name);
|
|
49
|
-
if (!projectPath) {
|
|
50
|
-
this.error(
|
|
51
|
-
`Could not find project "${name}". Provide an explicit path: abbie project add ${name} /path/to/project`,
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (!existsSync(projectPath)) {
|
|
57
|
-
this.error(`Path does not exist: ${projectPath}`);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Check for config
|
|
61
|
-
const configPath = join(projectPath, ".abbie", "config.json");
|
|
62
|
-
const hasConfig = existsSync(configPath);
|
|
63
|
-
|
|
64
|
-
// Create tmux window with nvim
|
|
65
|
-
const { newWindow } = await import("../../../lib/tmux/bridge.js");
|
|
66
|
-
await newWindow({
|
|
67
|
-
name,
|
|
68
|
-
cwd: projectPath,
|
|
69
|
-
session,
|
|
70
|
-
command: "nvim",
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
const isJson = flags.json || flags.format === "json";
|
|
74
|
-
|
|
75
|
-
if (!isJson) {
|
|
76
|
-
this.log(`Added project: ${name}`);
|
|
77
|
-
this.log(`Path: ${projectPath}`);
|
|
78
|
-
this.log(`Session: ${session}`);
|
|
79
|
-
if (!hasConfig) {
|
|
80
|
-
this.log(`Note: No .abbie/config.json found. Run: abbie bootstrap --path ${projectPath}`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// Run bootstrap if requested and config missing
|
|
85
|
-
if (flags.bootstrap && !hasConfig) {
|
|
86
|
-
this.logInfo(`Bootstrapping .abbie for ${name}...`);
|
|
87
|
-
const { spawn } = await import("node:child_process");
|
|
88
|
-
await new Promise<void>((resolve) => {
|
|
89
|
-
const proc = spawn("abbie", ["bootstrap", "--path", projectPath!], {
|
|
90
|
-
stdio: "inherit",
|
|
91
|
-
});
|
|
92
|
-
proc.on("close", () => resolve());
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const result = {
|
|
97
|
-
name,
|
|
98
|
-
path: projectPath,
|
|
99
|
-
session,
|
|
100
|
-
hasConfig,
|
|
101
|
-
status: "added" as const,
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
if (isJson) {
|
|
105
|
-
return result;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return result;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { findProject, loadConfigFromPath } from "../../../lib/config-loader.js";
|
|
2
|
-
import { getManagedSessionName, listManagedWindows } from "../../../lib/managed-session.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
|
|
5
|
-
interface ProjectInfo {
|
|
6
|
-
name: string;
|
|
7
|
-
path: string;
|
|
8
|
-
windowIndex: number;
|
|
9
|
-
hasConfig: boolean;
|
|
10
|
-
emoji?: string;
|
|
11
|
-
team?: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const INTERNAL_WINDOW_NAMES = new Set(["_abbie"]);
|
|
15
|
-
const INTERNAL_SHELL_COMMANDS = new Set(["zsh", "bash", "fish", "sh"]);
|
|
16
|
-
|
|
17
|
-
function abbreviateHome(path: string): string {
|
|
18
|
-
const home = process.env.HOME;
|
|
19
|
-
if (!home) return path;
|
|
20
|
-
if (path === home) return "~";
|
|
21
|
-
if (path.startsWith(`${home}/`)) return `~/${path.slice(home.length + 1)}`;
|
|
22
|
-
return path;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export default class ProjectList extends BaseCommand {
|
|
26
|
-
static override description = "List projects in the managed abbie workspace";
|
|
27
|
-
static override hidden = false;
|
|
28
|
-
|
|
29
|
-
static override examples = [
|
|
30
|
-
"<%= config.bin %> project list",
|
|
31
|
-
"<%= config.bin %> project list --json --quiet",
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
static override flags = {
|
|
35
|
-
...BaseCommand.baseFlags,
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
protected async execute(): Promise<unknown> {
|
|
39
|
-
const { flags } = await this.parse(ProjectList);
|
|
40
|
-
this.parsedFlags = flags;
|
|
41
|
-
|
|
42
|
-
const session = getManagedSessionName();
|
|
43
|
-
const windows = await listManagedWindows();
|
|
44
|
-
|
|
45
|
-
// Enrich each window with project config metadata
|
|
46
|
-
const projects: ProjectInfo[] = [];
|
|
47
|
-
for (const win of windows) {
|
|
48
|
-
// Exclude internal/session bootstrap window from project list
|
|
49
|
-
if (INTERNAL_WINDOW_NAMES.has(win.name)) continue;
|
|
50
|
-
|
|
51
|
-
// Get pane cwd for config lookup
|
|
52
|
-
let path = "";
|
|
53
|
-
let currentCommand = "";
|
|
54
|
-
let hasConfig = false;
|
|
55
|
-
let emoji: string | undefined;
|
|
56
|
-
let team: string | undefined;
|
|
57
|
-
|
|
58
|
-
try {
|
|
59
|
-
const { listPanes } = await import("../../../lib/tmux/bridge.js");
|
|
60
|
-
const panes = await listPanes(win.index, session);
|
|
61
|
-
if (panes.length > 0) {
|
|
62
|
-
path = panes[0].currentPath;
|
|
63
|
-
currentCommand = panes[0].currentCommand;
|
|
64
|
-
}
|
|
65
|
-
} catch {
|
|
66
|
-
// Fall back to discovery
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Best-effort heuristic to hide legacy bootstrap windows created before `_abbie`
|
|
70
|
-
if (
|
|
71
|
-
win.index === 0 &&
|
|
72
|
-
INTERNAL_SHELL_COMMANDS.has(currentCommand) &&
|
|
73
|
-
win.name === currentCommand
|
|
74
|
-
) {
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Try to load config from pane path
|
|
79
|
-
if (path) {
|
|
80
|
-
try {
|
|
81
|
-
const loaded = loadConfigFromPath(path);
|
|
82
|
-
if (loaded) {
|
|
83
|
-
hasConfig = true;
|
|
84
|
-
emoji = loaded.config.emoji;
|
|
85
|
-
team = loaded.config.team;
|
|
86
|
-
}
|
|
87
|
-
} catch {
|
|
88
|
-
// No config — fine
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Fall back to project discovery
|
|
93
|
-
if (!hasConfig) {
|
|
94
|
-
const discovered = findProject(win.name);
|
|
95
|
-
if (discovered) {
|
|
96
|
-
if (!path) path = discovered.path;
|
|
97
|
-
hasConfig = discovered.hasConfig;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
projects.push({
|
|
102
|
-
name: win.name,
|
|
103
|
-
path,
|
|
104
|
-
windowIndex: win.index,
|
|
105
|
-
hasConfig,
|
|
106
|
-
emoji,
|
|
107
|
-
team,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
const isJson = flags.json || flags.format === "json";
|
|
112
|
-
|
|
113
|
-
if (isJson) {
|
|
114
|
-
return { session, projects };
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (projects.length === 0) {
|
|
118
|
-
this.log(`No projects in ${session} session`);
|
|
119
|
-
this.log("");
|
|
120
|
-
this.log("Add one with: abbie project add <name> [path]");
|
|
121
|
-
return { session, projects };
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// Table output
|
|
125
|
-
this.log(`Projects in ${session} session:\n`);
|
|
126
|
-
for (const p of projects) {
|
|
127
|
-
const icon = p.emoji ?? "○";
|
|
128
|
-
const configMark = p.hasConfig ? "✓" : "-";
|
|
129
|
-
const teamLabel = p.team ? ` [${p.team}]` : "";
|
|
130
|
-
this.log(` ${icon} ${p.name}${teamLabel} ${abbreviateHome(p.path)} config:${configMark}`);
|
|
131
|
-
}
|
|
132
|
-
this.log(`\n${projects.length} project(s)`);
|
|
133
|
-
|
|
134
|
-
return { session, projects };
|
|
135
|
-
}
|
|
136
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Args, Flags } from "@oclif/core";
|
|
2
|
-
import { getManagedSessionName, listManagedWindows } from "../../../lib/managed-session.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
|
|
5
|
-
export default class ProjectRemove extends BaseCommand {
|
|
6
|
-
static override description = "Remove a project from the managed abbie workspace";
|
|
7
|
-
static override hidden = false;
|
|
8
|
-
|
|
9
|
-
static override examples = [
|
|
10
|
-
"<%= config.bin %> project remove arbor",
|
|
11
|
-
"<%= config.bin %> project remove arbor --force",
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
static override args = {
|
|
15
|
-
name: Args.string({ required: true, description: "Project name" }),
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
static override flags = {
|
|
19
|
-
...BaseCommand.baseFlags,
|
|
20
|
-
force: Flags.boolean({
|
|
21
|
-
char: "f",
|
|
22
|
-
description: "Skip confirmation",
|
|
23
|
-
default: false,
|
|
24
|
-
}),
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
protected async execute(): Promise<unknown> {
|
|
28
|
-
const { args, flags } = await this.parse(ProjectRemove);
|
|
29
|
-
this.parsedFlags = flags;
|
|
30
|
-
|
|
31
|
-
const name = args.name;
|
|
32
|
-
const session = getManagedSessionName();
|
|
33
|
-
|
|
34
|
-
// Find the window
|
|
35
|
-
const windows = await listManagedWindows();
|
|
36
|
-
const target = windows.find((w) => w.name === name);
|
|
37
|
-
|
|
38
|
-
if (!target) {
|
|
39
|
-
this.error(`Project "${name}" not found in the ${session} session`);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Kill the window
|
|
43
|
-
const { killWindow } = await import("../../../lib/tmux/bridge.js");
|
|
44
|
-
await killWindow(target.index, session);
|
|
45
|
-
|
|
46
|
-
const isJson = flags.json || flags.format === "json";
|
|
47
|
-
|
|
48
|
-
if (!isJson) {
|
|
49
|
-
this.log(`Removed project: ${name}`);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const result = { name, status: "removed" as const };
|
|
53
|
-
|
|
54
|
-
if (isJson) {
|
|
55
|
-
return result;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
60
|
-
}
|
package/src/cli/commands/push.ts
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* abbie push — upload local rules/skills/hooks to Convex.
|
|
3
|
-
*
|
|
4
|
-
* Default: dry-run showing what would be pushed.
|
|
5
|
-
* --apply: actually push to Convex.
|
|
6
|
-
* --type: push specific content type only.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { Flags } from "@oclif/core";
|
|
10
|
-
import { api, getHttpClient, isConvexConfigured } from "@creativeintelligence/sdk/convex";
|
|
11
|
-
import { getStoredClerkId } from "@creativeintelligence/sdk/config";
|
|
12
|
-
import {
|
|
13
|
-
ContentSyncRunner,
|
|
14
|
-
type ContentPushResult,
|
|
15
|
-
type ContentType,
|
|
16
|
-
} from "../../lib/content-sync/index.js";
|
|
17
|
-
import { BaseCommand } from "../base-command.js";
|
|
18
|
-
|
|
19
|
-
export default class PushCommand extends BaseCommand {
|
|
20
|
-
static override summary =
|
|
21
|
-
"Push local rules, skills, and hooks to Convex";
|
|
22
|
-
|
|
23
|
-
static override description = `Scans ~/.abbie/rules/, ~/.abbie/skills/, and ~/.abbie/hooks/
|
|
24
|
-
and uploads content to Convex for cross-device sync.
|
|
25
|
-
|
|
26
|
-
Default mode is dry-run — shows what would be pushed.
|
|
27
|
-
Use --apply to actually push.`;
|
|
28
|
-
|
|
29
|
-
static override examples = [
|
|
30
|
-
"$ abbie push",
|
|
31
|
-
"$ abbie push --apply",
|
|
32
|
-
"$ abbie push --type rules --apply",
|
|
33
|
-
"$ abbie push --type skills --apply",
|
|
34
|
-
"$ abbie push --json --quiet",
|
|
35
|
-
];
|
|
36
|
-
|
|
37
|
-
static override flags = {
|
|
38
|
-
...BaseCommand.baseFlags,
|
|
39
|
-
apply: Flags.boolean({
|
|
40
|
-
description: "Apply changes (default is dry-run)",
|
|
41
|
-
default: false,
|
|
42
|
-
}),
|
|
43
|
-
type: Flags.string({
|
|
44
|
-
char: "t",
|
|
45
|
-
description: "Push specific content type",
|
|
46
|
-
options: ["rules", "skills", "hooks"],
|
|
47
|
-
}),
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
async execute(): Promise<ContentPushResult> {
|
|
51
|
-
const { flags } = await this.parse(PushCommand);
|
|
52
|
-
this.parsedFlags = flags;
|
|
53
|
-
|
|
54
|
-
if (!isConvexConfigured()) {
|
|
55
|
-
this.logWarn("Convex not configured. Run `abbie login` first.");
|
|
56
|
-
return { ok: false, pushed: [], errors: [] };
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const clerkId = getStoredClerkId();
|
|
60
|
-
if (!clerkId) {
|
|
61
|
-
this.logWarn("Not authenticated. Run `abbie login` first.");
|
|
62
|
-
return { ok: false, pushed: [], errors: [] };
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const dryRun = !flags.apply;
|
|
66
|
-
const types = flags.type
|
|
67
|
-
? [flags.type as ContentType]
|
|
68
|
-
: (["rules", "skills", "hooks"] as ContentType[]);
|
|
69
|
-
|
|
70
|
-
const client = getHttpClient();
|
|
71
|
-
|
|
72
|
-
const runner = new ContentSyncRunner({
|
|
73
|
-
fetchSnapshot: async () => {
|
|
74
|
-
return await client.query(api.contentSync.getSnapshot, { clerkId });
|
|
75
|
-
},
|
|
76
|
-
upsertRule: async (rule) => {
|
|
77
|
-
await client.mutation(api.contentSync.upsertRule, rule);
|
|
78
|
-
},
|
|
79
|
-
upsertSkill: async (skill) => {
|
|
80
|
-
await client.mutation(api.contentSync.upsertSkill, skill);
|
|
81
|
-
},
|
|
82
|
-
upsertHook: async (hook) => {
|
|
83
|
-
await client.mutation(api.contentSync.upsertHook, hook);
|
|
84
|
-
},
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
const result = await runner.push(clerkId, { types, dryRun });
|
|
88
|
-
|
|
89
|
-
// Format output
|
|
90
|
-
const isJson = flags.json || flags.format === "json";
|
|
91
|
-
if (!isJson) {
|
|
92
|
-
if (dryRun) {
|
|
93
|
-
this.logInfo("dry-run (use --apply to push changes)");
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (result.pushed.length === 0 && result.errors.length === 0) {
|
|
97
|
-
this.logInfo("nothing to push — no local content found");
|
|
98
|
-
} else {
|
|
99
|
-
for (const p of result.pushed) {
|
|
100
|
-
this.log(` ✓ ${p.type}/${p.name}: ${p.action}`);
|
|
101
|
-
}
|
|
102
|
-
for (const e of result.errors) {
|
|
103
|
-
this.log(` ✗ ${e.type}/${e.name}: ${e.error}`);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const total = result.pushed.length + result.errors.length;
|
|
107
|
-
this.logInfo(
|
|
108
|
-
`${result.pushed.length}/${total} ${dryRun ? "would be pushed" : "pushed"}`,
|
|
109
|
-
);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return result;
|
|
114
|
-
}
|
|
115
|
-
}
|