@creativeintelligence/abbie 0.1.4 → 0.1.6
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/login.js +26 -0
- package/dist/cli/commands/start.js +2 -1
- package/oclif.manifest.json +1 -1
- package/package.json +9 -5
- 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,74 +0,0 @@
|
|
|
1
|
-
import { Args, Flags } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
|
|
5
|
-
export default class BacklogAdd extends BaseCommand {
|
|
6
|
-
static override description = "Add an item to the backlog";
|
|
7
|
-
static override hidden = false;
|
|
8
|
-
|
|
9
|
-
static override examples = [
|
|
10
|
-
'<%= config.bin %> backlog add hostagent --ref ZO-123 --title "Fix auth bug"',
|
|
11
|
-
'<%= config.bin %> backlog add hostagent --ref task-1 --title "Refactor API" --type task --priority 2',
|
|
12
|
-
'<%= config.bin %> backlog add hostagent --ref "#456" --title "PR review" --type pr --source github',
|
|
13
|
-
];
|
|
14
|
-
|
|
15
|
-
static override args = {
|
|
16
|
-
project: Args.string({
|
|
17
|
-
description: "Project name",
|
|
18
|
-
required: true,
|
|
19
|
-
}),
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
static override flags = {
|
|
23
|
-
...BaseCommand.baseFlags,
|
|
24
|
-
ref: Flags.string({
|
|
25
|
-
char: "r",
|
|
26
|
-
description: "Reference (e.g., ZO-123, #456)",
|
|
27
|
-
required: true,
|
|
28
|
-
}),
|
|
29
|
-
title: Flags.string({
|
|
30
|
-
char: "t",
|
|
31
|
-
description: "Item title",
|
|
32
|
-
required: true,
|
|
33
|
-
}),
|
|
34
|
-
type: Flags.string({
|
|
35
|
-
description: "Item type",
|
|
36
|
-
options: ["issue", "pr", "task"],
|
|
37
|
-
default: "task",
|
|
38
|
-
}),
|
|
39
|
-
priority: Flags.integer({
|
|
40
|
-
char: "p",
|
|
41
|
-
description: "Priority (1=urgent, 4=low)",
|
|
42
|
-
default: 3,
|
|
43
|
-
}),
|
|
44
|
-
source: Flags.string({
|
|
45
|
-
char: "s",
|
|
46
|
-
description: "Source",
|
|
47
|
-
options: ["linear", "github", "manual"],
|
|
48
|
-
default: "manual",
|
|
49
|
-
}),
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
protected async execute(): Promise<unknown> {
|
|
53
|
-
const { args, flags } = await this.parse(BacklogAdd);
|
|
54
|
-
this.parsedFlags = flags;
|
|
55
|
-
|
|
56
|
-
const backlog = getBacklogManager();
|
|
57
|
-
|
|
58
|
-
const item = backlog.add({
|
|
59
|
-
type: flags.type as "issue" | "pr" | "task",
|
|
60
|
-
ref: flags.ref,
|
|
61
|
-
title: flags.title,
|
|
62
|
-
project: args.project,
|
|
63
|
-
priority: flags.priority,
|
|
64
|
-
source: flags.source as "linear" | "github" | "manual",
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
if (flags.json || flags.format === "json") {
|
|
68
|
-
return item;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
this.logInfo(`Added: ${item.ref} (${item.id})`);
|
|
72
|
-
return item;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Args, Flags } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
|
|
5
|
-
export default class BacklogClaim extends BaseCommand {
|
|
6
|
-
static override description = "Claim a backlog item for a session";
|
|
7
|
-
static override hidden = false;
|
|
8
|
-
|
|
9
|
-
static override examples = [
|
|
10
|
-
"<%= config.bin %> backlog claim hostagent ITEM_ID --session SESSION_ID",
|
|
11
|
-
"<%= config.bin %> backlog claim hostagent ITEM_ID --session SESSION_ID --json",
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
static override args = {
|
|
15
|
-
project: Args.string({
|
|
16
|
-
description: "Project name",
|
|
17
|
-
required: true,
|
|
18
|
-
}),
|
|
19
|
-
item_id: Args.string({
|
|
20
|
-
description: "Item ID to claim",
|
|
21
|
-
required: true,
|
|
22
|
-
}),
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
static override flags = {
|
|
26
|
-
...BaseCommand.baseFlags,
|
|
27
|
-
session: Flags.string({
|
|
28
|
-
char: "s",
|
|
29
|
-
description: "Session ID claiming the item",
|
|
30
|
-
required: true,
|
|
31
|
-
}),
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
protected async execute(): Promise<unknown> {
|
|
35
|
-
const { args, flags } = await this.parse(BacklogClaim);
|
|
36
|
-
this.parsedFlags = flags;
|
|
37
|
-
|
|
38
|
-
const backlog = getBacklogManager();
|
|
39
|
-
const result = backlog.claim(args.project, args.item_id, flags.session);
|
|
40
|
-
|
|
41
|
-
if (flags.json || flags.format === "json") {
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
if (result.success) {
|
|
46
|
-
this.logInfo(`Claimed: ${result.item?.ref}`);
|
|
47
|
-
} else {
|
|
48
|
-
this.logInfo(`Failed to claim: ${result.reason}`);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return result;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Args } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
|
|
5
|
-
export default class BacklogComplete extends BaseCommand {
|
|
6
|
-
static override description = "Mark a backlog item as complete";
|
|
7
|
-
static override hidden = false;
|
|
8
|
-
|
|
9
|
-
static override examples = [
|
|
10
|
-
"<%= config.bin %> backlog complete hostagent ITEM_ID",
|
|
11
|
-
"<%= config.bin %> backlog complete hostagent ITEM_ID --json",
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
static override args = {
|
|
15
|
-
project: Args.string({
|
|
16
|
-
description: "Project name",
|
|
17
|
-
required: true,
|
|
18
|
-
}),
|
|
19
|
-
item_id: Args.string({
|
|
20
|
-
description: "Item ID to complete",
|
|
21
|
-
required: true,
|
|
22
|
-
}),
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
static override flags = {
|
|
26
|
-
...BaseCommand.baseFlags,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
protected async execute(): Promise<unknown> {
|
|
30
|
-
const { args, flags } = await this.parse(BacklogComplete);
|
|
31
|
-
this.parsedFlags = flags;
|
|
32
|
-
|
|
33
|
-
const backlog = getBacklogManager();
|
|
34
|
-
const item = backlog.complete(args.project, args.item_id);
|
|
35
|
-
|
|
36
|
-
if (!item) {
|
|
37
|
-
if (flags.json || flags.format === "json") {
|
|
38
|
-
return { success: false, reason: "Item not found" };
|
|
39
|
-
}
|
|
40
|
-
this.logInfo("Item not found");
|
|
41
|
-
return { success: false };
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (flags.json || flags.format === "json") {
|
|
45
|
-
return { success: true, item };
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
this.logInfo(`Completed: ${item.ref}`);
|
|
49
|
-
return { success: true, item };
|
|
50
|
-
}
|
|
51
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Args, Flags } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
|
|
5
|
-
export default class BacklogList extends BaseCommand {
|
|
6
|
-
static override description = "List backlog items for a project";
|
|
7
|
-
static override hidden = false;
|
|
8
|
-
|
|
9
|
-
static override examples = [
|
|
10
|
-
"<%= config.bin %> backlog list hostagent",
|
|
11
|
-
"<%= config.bin %> backlog list hostagent --status pending",
|
|
12
|
-
"<%= config.bin %> backlog list hostagent --json",
|
|
13
|
-
];
|
|
14
|
-
|
|
15
|
-
static override args = {
|
|
16
|
-
project: Args.string({
|
|
17
|
-
description: "Project name",
|
|
18
|
-
required: true,
|
|
19
|
-
}),
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
static override flags = {
|
|
23
|
-
...BaseCommand.baseFlags,
|
|
24
|
-
status: Flags.string({
|
|
25
|
-
char: "s",
|
|
26
|
-
description: "Filter by status",
|
|
27
|
-
options: ["pending", "claimed", "in_progress", "blocked", "completed", "abandoned"],
|
|
28
|
-
}),
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
protected async execute(): Promise<unknown> {
|
|
32
|
-
const { args, flags } = await this.parse(BacklogList);
|
|
33
|
-
this.parsedFlags = flags;
|
|
34
|
-
|
|
35
|
-
const backlog = getBacklogManager();
|
|
36
|
-
let items = backlog.listItems(args.project);
|
|
37
|
-
|
|
38
|
-
if (flags.status) {
|
|
39
|
-
items = items.filter((item) => item.status === flags.status);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (flags.json || flags.format === "json") {
|
|
43
|
-
return items;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// NDJSON: one item per line
|
|
47
|
-
if (this.ndjsonEnabled()) {
|
|
48
|
-
this.outputNdjson(items);
|
|
49
|
-
return items;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (items.length === 0) {
|
|
53
|
-
this.logInfo(`No items in ${args.project} backlog`);
|
|
54
|
-
return [];
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
this.logInfo(`${args.project} backlog (${items.length} items):\n`);
|
|
58
|
-
|
|
59
|
-
for (const item of items) {
|
|
60
|
-
const statusIcon = this.getStatusIcon(item.status);
|
|
61
|
-
const priorityIcon = this.getPriorityIcon(item.priority);
|
|
62
|
-
|
|
63
|
-
this.log(`${statusIcon} ${item.ref}: ${item.title}`);
|
|
64
|
-
this.log(` ${priorityIcon} Priority ${item.priority} | Source: ${item.source}`);
|
|
65
|
-
if (item.claimed_by) {
|
|
66
|
-
this.log(` Claimed by: ${item.claimed_by}`);
|
|
67
|
-
}
|
|
68
|
-
this.log("");
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return items;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
private getStatusIcon(status: string): string {
|
|
75
|
-
switch (status) {
|
|
76
|
-
case "pending":
|
|
77
|
-
return "⏳";
|
|
78
|
-
case "claimed":
|
|
79
|
-
return "🔒";
|
|
80
|
-
case "in_progress":
|
|
81
|
-
return "🚀";
|
|
82
|
-
case "blocked":
|
|
83
|
-
return "🔴";
|
|
84
|
-
case "completed":
|
|
85
|
-
return "✅";
|
|
86
|
-
case "abandoned":
|
|
87
|
-
return "❌";
|
|
88
|
-
default:
|
|
89
|
-
return "•";
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
private getPriorityIcon(priority: number): string {
|
|
94
|
-
switch (priority) {
|
|
95
|
-
case 1:
|
|
96
|
-
return "🔥";
|
|
97
|
-
case 2:
|
|
98
|
-
return "⚡";
|
|
99
|
-
case 3:
|
|
100
|
-
return "📌";
|
|
101
|
-
case 4:
|
|
102
|
-
return "📋";
|
|
103
|
-
default:
|
|
104
|
-
return "•";
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Args, Flags } from "@oclif/core";
|
|
2
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
3
|
-
import { BaseCommand } from "../../base-command.js";
|
|
4
|
-
|
|
5
|
-
export default class BacklogPick extends BaseCommand {
|
|
6
|
-
static override description = "Pick and claim the next available backlog item";
|
|
7
|
-
static override hidden = false;
|
|
8
|
-
|
|
9
|
-
static override examples = [
|
|
10
|
-
"<%= config.bin %> backlog pick hostagent --session SESSION_ID",
|
|
11
|
-
"<%= config.bin %> backlog pick hostagent --session SESSION_ID --json",
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
static override args = {
|
|
15
|
-
project: Args.string({
|
|
16
|
-
description: "Project name",
|
|
17
|
-
required: true,
|
|
18
|
-
}),
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
static override flags = {
|
|
22
|
-
...BaseCommand.baseFlags,
|
|
23
|
-
session: Flags.string({
|
|
24
|
-
char: "s",
|
|
25
|
-
description: "Session ID claiming the item",
|
|
26
|
-
required: true,
|
|
27
|
-
}),
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
protected async execute(): Promise<unknown> {
|
|
31
|
-
const { args, flags } = await this.parse(BacklogPick);
|
|
32
|
-
this.parsedFlags = flags;
|
|
33
|
-
|
|
34
|
-
const backlog = getBacklogManager();
|
|
35
|
-
const result = backlog.pickNext(args.project, flags.session);
|
|
36
|
-
|
|
37
|
-
if (flags.json || flags.format === "json") {
|
|
38
|
-
return result;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (result.success && result.item) {
|
|
42
|
-
this.logInfo(`Picked: ${result.item.ref} - ${result.item.title}`);
|
|
43
|
-
this.log(result.item.id);
|
|
44
|
-
} else {
|
|
45
|
-
this.logInfo(result.reason || "No items available");
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return result;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
import { Args, Flags } from "@oclif/core";
|
|
3
|
-
import { getBacklogManager } from "../../../lib/backlog.js";
|
|
4
|
-
import { BaseCommand } from "../../base-command.js";
|
|
5
|
-
|
|
6
|
-
export default class BacklogSync extends BaseCommand {
|
|
7
|
-
static override description = "Sync backlog from Linear or GitHub";
|
|
8
|
-
static override hidden = false;
|
|
9
|
-
|
|
10
|
-
static override examples = [
|
|
11
|
-
"<%= config.bin %> backlog sync hostagent --source linear --team ZO",
|
|
12
|
-
"<%= config.bin %> backlog sync hostagent --source github --repo owner/repo",
|
|
13
|
-
'<%= config.bin %> backlog sync hostagent --source linear --team ZO --state "Ready"',
|
|
14
|
-
];
|
|
15
|
-
|
|
16
|
-
static override args = {
|
|
17
|
-
project: Args.string({
|
|
18
|
-
description: "Project name",
|
|
19
|
-
required: true,
|
|
20
|
-
}),
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
static override flags = {
|
|
24
|
-
...BaseCommand.baseFlags,
|
|
25
|
-
source: Flags.string({
|
|
26
|
-
char: "s",
|
|
27
|
-
description: "Source to sync from",
|
|
28
|
-
required: true,
|
|
29
|
-
options: ["linear", "github"],
|
|
30
|
-
}),
|
|
31
|
-
team: Flags.string({
|
|
32
|
-
char: "t",
|
|
33
|
-
description: "Linear team (required for linear source)",
|
|
34
|
-
}),
|
|
35
|
-
repo: Flags.string({
|
|
36
|
-
char: "r",
|
|
37
|
-
description: "GitHub repo (required for github source)",
|
|
38
|
-
}),
|
|
39
|
-
state: Flags.string({
|
|
40
|
-
description: "Linear state filter",
|
|
41
|
-
default: "Ready",
|
|
42
|
-
}),
|
|
43
|
-
workspace: Flags.string({
|
|
44
|
-
char: "w",
|
|
45
|
-
description: "Linear workspace",
|
|
46
|
-
}),
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
protected async execute(): Promise<unknown> {
|
|
50
|
-
const { args, flags } = await this.parse(BacklogSync);
|
|
51
|
-
this.parsedFlags = flags;
|
|
52
|
-
|
|
53
|
-
const backlog = getBacklogManager();
|
|
54
|
-
let added = 0;
|
|
55
|
-
|
|
56
|
-
if (flags.source === "linear") {
|
|
57
|
-
if (!flags.team) {
|
|
58
|
-
this.error("--team is required for linear source");
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const issues = this.fetchLinearIssues(flags.team, flags.state, flags.workspace);
|
|
62
|
-
added = backlog.syncFromLinear(args.project, issues);
|
|
63
|
-
} else if (flags.source === "github") {
|
|
64
|
-
if (!flags.repo) {
|
|
65
|
-
this.error("--repo is required for github source");
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
const items = this.fetchGitHubItems(flags.repo);
|
|
69
|
-
added = backlog.syncFromGitHub(args.project, items);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const result = { source: flags.source, added };
|
|
73
|
-
|
|
74
|
-
if (flags.json || flags.format === "json") {
|
|
75
|
-
return result;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
this.logInfo(`Synced from ${flags.source}: ${added} items added`);
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
private fetchLinearIssues(
|
|
83
|
-
team: string,
|
|
84
|
-
state: string,
|
|
85
|
-
workspace?: string,
|
|
86
|
-
): Array<{ id: string; title: string; priority: number; identifier: string }> {
|
|
87
|
-
try {
|
|
88
|
-
const wsFlag = workspace ? `--workspace ${workspace}` : "";
|
|
89
|
-
const cmd = `linear issue list --team ${team} --state "${state}" ${wsFlag} --json --quiet`;
|
|
90
|
-
const output = execSync(cmd, { encoding: "utf-8" });
|
|
91
|
-
const issues = JSON.parse(output);
|
|
92
|
-
|
|
93
|
-
return issues.map(
|
|
94
|
-
(issue: { id: string; title: string; priority?: number; identifier: string }) => ({
|
|
95
|
-
id: issue.id,
|
|
96
|
-
title: issue.title,
|
|
97
|
-
priority: issue.priority || 3,
|
|
98
|
-
identifier: issue.identifier,
|
|
99
|
-
}),
|
|
100
|
-
);
|
|
101
|
-
} catch {
|
|
102
|
-
return [];
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
private fetchGitHubItems(
|
|
107
|
-
repo: string,
|
|
108
|
-
): Array<{ number: number; title: string; type: "issue" | "pr" }> {
|
|
109
|
-
try {
|
|
110
|
-
// Fetch issues
|
|
111
|
-
const issuesCmd = `gh issue list --repo ${repo} --json number,title --limit 50`;
|
|
112
|
-
const issuesOutput = execSync(issuesCmd, { encoding: "utf-8" });
|
|
113
|
-
const issues = JSON.parse(issuesOutput).map((i: { number: number; title: string }) => ({
|
|
114
|
-
...i,
|
|
115
|
-
type: "issue" as const,
|
|
116
|
-
}));
|
|
117
|
-
|
|
118
|
-
// Fetch PRs
|
|
119
|
-
const prsCmd = `gh pr list --repo ${repo} --json number,title --limit 50`;
|
|
120
|
-
const prsOutput = execSync(prsCmd, { encoding: "utf-8" });
|
|
121
|
-
const prs = JSON.parse(prsOutput).map((p: { number: number; title: string }) => ({
|
|
122
|
-
...p,
|
|
123
|
-
type: "pr" as const,
|
|
124
|
-
}));
|
|
125
|
-
|
|
126
|
-
return [...issues, ...prs];
|
|
127
|
-
} catch {
|
|
128
|
-
return [];
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import { existsSync, mkdirSync, readFileSync } from "node:fs";
|
|
3
|
-
import { basename, join } from "node:path";
|
|
4
|
-
import { Flags } from "@oclif/core";
|
|
5
|
-
import { BaseCommand } from "../base-command.js";
|
|
6
|
-
|
|
7
|
-
export default class Bootstrap extends BaseCommand {
|
|
8
|
-
static override description = "Bootstrap .abbie directory using Claude to explore and configure";
|
|
9
|
-
static override hidden = false;
|
|
10
|
-
|
|
11
|
-
static override examples = [
|
|
12
|
-
"<%= config.bin %> bootstrap",
|
|
13
|
-
"<%= config.bin %> bootstrap --path ~/Developer/apps/arbor",
|
|
14
|
-
"<%= config.bin %> bootstrap --if-missing",
|
|
15
|
-
"<%= config.bin %> bootstrap --dry-run",
|
|
16
|
-
];
|
|
17
|
-
|
|
18
|
-
static override flags = {
|
|
19
|
-
...BaseCommand.baseFlags,
|
|
20
|
-
path: Flags.string({
|
|
21
|
-
char: "p",
|
|
22
|
-
description: "Project path (default: cwd)",
|
|
23
|
-
}),
|
|
24
|
-
"if-missing": Flags.boolean({
|
|
25
|
-
description: "Only bootstrap if .abbie does not exist",
|
|
26
|
-
default: false,
|
|
27
|
-
}),
|
|
28
|
-
"dry-run": Flags.boolean({
|
|
29
|
-
description: "Preview prompt without running Claude",
|
|
30
|
-
default: false,
|
|
31
|
-
}),
|
|
32
|
-
force: Flags.boolean({
|
|
33
|
-
char: "f",
|
|
34
|
-
description: "Overwrite existing .abbie directory",
|
|
35
|
-
default: false,
|
|
36
|
-
}),
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
protected async execute(): Promise<unknown> {
|
|
40
|
-
const { flags } = await this.parse(Bootstrap);
|
|
41
|
-
this.parsedFlags = flags;
|
|
42
|
-
|
|
43
|
-
const projectPath = flags.path || process.cwd();
|
|
44
|
-
const agentsDir = join(projectPath, ".abbie");
|
|
45
|
-
const projectName = basename(projectPath);
|
|
46
|
-
|
|
47
|
-
// Check if already exists
|
|
48
|
-
if (existsSync(agentsDir) && !flags.force) {
|
|
49
|
-
if (flags["if-missing"]) {
|
|
50
|
-
this.logInfo(`✓ .abbie already exists at ${agentsDir}`);
|
|
51
|
-
return { status: "skipped", reason: "already exists", path: agentsDir };
|
|
52
|
-
}
|
|
53
|
-
this.error(`.abbie already exists at ${agentsDir}. Use --force to overwrite.`);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Load projects.json for emoji/team hints
|
|
57
|
-
let projectHints = "";
|
|
58
|
-
const projectsPath = join(process.env.HOME || "", ".abbie", "projects.json");
|
|
59
|
-
if (existsSync(projectsPath)) {
|
|
60
|
-
try {
|
|
61
|
-
const projects = JSON.parse(readFileSync(projectsPath, "utf-8"));
|
|
62
|
-
const proj = projects.projects?.[projectName];
|
|
63
|
-
if (proj) {
|
|
64
|
-
projectHints = `Known project: emoji=${proj.emoji}, linearTeam=${proj.linearTeam || "none"}`;
|
|
65
|
-
}
|
|
66
|
-
} catch {
|
|
67
|
-
// ignore
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const prompt = this.buildPrompt(projectPath, projectName, agentsDir, projectHints);
|
|
72
|
-
|
|
73
|
-
if (flags["dry-run"]) {
|
|
74
|
-
this.logInfo("=== DRY RUN - Would send this prompt to Claude ===\n");
|
|
75
|
-
this.log(prompt);
|
|
76
|
-
return { status: "dry-run", prompt };
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Create .abbie directory
|
|
80
|
-
mkdirSync(agentsDir, { recursive: true });
|
|
81
|
-
|
|
82
|
-
this.logInfo(`Bootstrapping ${projectName} with Claude...`);
|
|
83
|
-
|
|
84
|
-
try {
|
|
85
|
-
const result = await this.runClaude(prompt, projectPath);
|
|
86
|
-
this.logInfo(`✓ Bootstrap complete for ${projectName}`);
|
|
87
|
-
return {
|
|
88
|
-
status: "completed",
|
|
89
|
-
project: projectName,
|
|
90
|
-
path: projectPath,
|
|
91
|
-
agentsDir,
|
|
92
|
-
claudeOutput: result,
|
|
93
|
-
};
|
|
94
|
-
} catch (err) {
|
|
95
|
-
this.error(`Bootstrap failed: ${(err as Error).message}`);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
private buildPrompt(
|
|
100
|
-
projectPath: string,
|
|
101
|
-
projectName: string,
|
|
102
|
-
agentsDir: string,
|
|
103
|
-
hints: string,
|
|
104
|
-
): string {
|
|
105
|
-
return `Bootstrap .abbie directory for this project.
|
|
106
|
-
|
|
107
|
-
Project: ${projectName}
|
|
108
|
-
Path: ${projectPath}
|
|
109
|
-
${hints}
|
|
110
|
-
|
|
111
|
-
## Your task
|
|
112
|
-
|
|
113
|
-
1. Explore this project:
|
|
114
|
-
- Run \`ls -la\` to see structure
|
|
115
|
-
- Check for package.json, Cargo.toml, go.mod, *.xcodeproj, etc.
|
|
116
|
-
- If monorepo, check subdirectories
|
|
117
|
-
- Look at recent git history: \`git log --oneline -5\`
|
|
118
|
-
|
|
119
|
-
2. Create ${agentsDir}/config.json with:
|
|
120
|
-
- name: project name
|
|
121
|
-
- emoji: from hints or pick appropriate one
|
|
122
|
-
- team: Linear team key (from hints) or null
|
|
123
|
-
- workspace: "luke-labs"
|
|
124
|
-
- type: what kind of project (e.g., "convex-next", "swift-ios", "rust-cli")
|
|
125
|
-
- stack: { runtime, framework, database } - only what's actually used
|
|
126
|
-
- commands: { dev, test, lint, build } - actual commands from package.json/Makefile
|
|
127
|
-
- quality_gates: what must pass before commit
|
|
128
|
-
|
|
129
|
-
3. Create ${agentsDir}/context.md (~300 tokens max) with:
|
|
130
|
-
- Brief project description
|
|
131
|
-
- Key directories and their purpose
|
|
132
|
-
- Important patterns or conventions
|
|
133
|
-
- How to find active work (Linear team, git log)
|
|
134
|
-
|
|
135
|
-
## Important
|
|
136
|
-
|
|
137
|
-
- Use ACTUAL values from the project, not assumptions
|
|
138
|
-
- Check package.json scripts for real commands
|
|
139
|
-
- If pnpm-lock.yaml exists, use pnpm. If yarn.lock, use yarn. etc.
|
|
140
|
-
- Write the files directly using the Write tool
|
|
141
|
-
- Keep context.md concise - it's loaded on every agent session`;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
private async runClaude(prompt: string, cwd: string): Promise<string> {
|
|
145
|
-
return new Promise((resolve, reject) => {
|
|
146
|
-
// Write prompt to temp file to avoid arg length issues
|
|
147
|
-
const promptFile = `/tmp/bootstrap-prompt-${Date.now()}.md`;
|
|
148
|
-
require("node:fs").writeFileSync(promptFile, prompt);
|
|
149
|
-
|
|
150
|
-
// Use --print mode, read prompt from stdin
|
|
151
|
-
const child = spawn(
|
|
152
|
-
"claude",
|
|
153
|
-
[
|
|
154
|
-
"--print",
|
|
155
|
-
"--permission-mode",
|
|
156
|
-
"bypassPermissions",
|
|
157
|
-
"--allowedTools",
|
|
158
|
-
"Write,Read,Bash,Glob",
|
|
159
|
-
],
|
|
160
|
-
{
|
|
161
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
162
|
-
cwd,
|
|
163
|
-
},
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
let stdout = "";
|
|
167
|
-
let stderr = "";
|
|
168
|
-
|
|
169
|
-
child.stdout.on("data", (data) => {
|
|
170
|
-
stdout += data.toString();
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
child.stderr.on("data", (data) => {
|
|
174
|
-
stderr += data.toString();
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
child.on("close", (code) => {
|
|
178
|
-
// Clean up prompt file
|
|
179
|
-
try {
|
|
180
|
-
require("node:fs").unlinkSync(promptFile);
|
|
181
|
-
} catch {
|
|
182
|
-
/* ignore */
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
if (code === 0) {
|
|
186
|
-
resolve(stdout);
|
|
187
|
-
} else {
|
|
188
|
-
reject(new Error(`claude exited with code ${code}: ${stderr}`));
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
child.on("error", reject);
|
|
193
|
-
|
|
194
|
-
// Send prompt via stdin
|
|
195
|
-
child.stdin.write(prompt);
|
|
196
|
-
child.stdin.end();
|
|
197
|
-
|
|
198
|
-
// Timeout after 180s (Claude needs time to explore and write)
|
|
199
|
-
setTimeout(() => {
|
|
200
|
-
child.kill();
|
|
201
|
-
reject(new Error("claude timeout"));
|
|
202
|
-
}, 180000);
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
}
|