@bastani/atomic 0.5.5-0 → 0.5.6-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +60 -34
  2. package/dist/sdk/components/compact-switcher.d.ts +10 -0
  3. package/dist/sdk/components/compact-switcher.d.ts.map +1 -0
  4. package/dist/sdk/components/orchestrator-panel-store.d.ts +21 -1
  5. package/dist/sdk/components/orchestrator-panel-store.d.ts.map +1 -1
  6. package/dist/sdk/components/orchestrator-panel-types.d.ts +1 -0
  7. package/dist/sdk/components/orchestrator-panel-types.d.ts.map +1 -1
  8. package/dist/sdk/components/session-graph-panel.d.ts.map +1 -1
  9. package/dist/sdk/components/statusline.d.ts.map +1 -1
  10. package/dist/sdk/runtime/executor.d.ts +3 -2
  11. package/dist/sdk/runtime/executor.d.ts.map +1 -1
  12. package/dist/sdk/runtime/tmux.d.ts +82 -2
  13. package/dist/sdk/runtime/tmux.d.ts.map +1 -1
  14. package/dist/sdk/workflows/index.d.ts +2 -2
  15. package/dist/sdk/workflows/index.d.ts.map +1 -1
  16. package/package.json +4 -2
  17. package/src/cli.ts +150 -27
  18. package/src/commands/cli/chat/index.ts +25 -14
  19. package/src/commands/cli/completions.ts +24 -0
  20. package/src/commands/cli/session.test.ts +491 -0
  21. package/src/commands/cli/session.ts +265 -0
  22. package/src/commands/cli/workflow.ts +1 -1
  23. package/src/completions/bash.ts +107 -0
  24. package/src/completions/fish.ts +126 -0
  25. package/src/completions/index.ts +7 -0
  26. package/src/completions/powershell.ts +184 -0
  27. package/src/completions/zsh.ts +144 -0
  28. package/src/sdk/components/compact-switcher.tsx +73 -0
  29. package/src/sdk/components/orchestrator-panel-store.test.ts +124 -0
  30. package/src/sdk/components/orchestrator-panel-store.ts +36 -1
  31. package/src/sdk/components/orchestrator-panel-types.ts +2 -0
  32. package/src/sdk/components/session-graph-panel.tsx +138 -10
  33. package/src/sdk/components/statusline.tsx +13 -8
  34. package/src/sdk/runtime/executor.ts +18 -27
  35. package/src/sdk/runtime/tmux.conf +18 -0
  36. package/src/sdk/runtime/tmux.ts +198 -24
  37. package/src/sdk/workflows/index.ts +7 -1
package/README.md CHANGED
@@ -107,9 +107,9 @@ bun install -g @bastani/atomic
107
107
 
108
108
  This installs the `atomic` binary on your PATH. `bun update -g @bastani/atomic` upgrades to the latest release.
109
109
 
110
- **Option C — Bootstrap script (installs bun + atomic in one step):**
110
+ **Option C — Bootstrap script (installs bun + atomic + shell completions in one step):**
111
111
 
112
- For machines without Bun, the bootstrap scripts install Node (via fnm), Bun, and Atomic together:
112
+ For machines without Bun, the bootstrap scripts install Bun, Atomic, and shell completions together:
113
113
 
114
114
  macOS / Linux:
115
115
 
@@ -149,25 +149,23 @@ This explores your codebase using sub-agents and generates documentation that gi
149
149
 
150
150
  ### 4. Managing Sessions
151
151
 
152
- Atomic runs every chat and workflow session inside [tmux](https://github.com/tmux/tmux) on a dedicated socket called `atomic`. This keeps Atomic sessions isolated from any personal tmux sessions you may have running.
152
+ Atomic runs every chat and workflow session inside [tmux](https://github.com/tmux/tmux) on a dedicated socket, isolated from any personal tmux sessions you may have running. Use the built-in `session` commands to manage them:
153
153
 
154
- When you start a session you'll see a line like:
155
-
156
- ```
157
- [atomic] Session: atomic-chat-a1b2c3d4 (FYI all atomic sessions run on tmux -L atomic)
158
- ```
154
+ ```bash
155
+ # List all running sessions
156
+ atomic session list
159
157
 
160
- Use standard tmux commands with `-L atomic` to manage your sessions:
158
+ # List only chat sessions
159
+ atomic chat session list
161
160
 
162
- ```bash
163
- # List all running Atomic sessions
164
- tmux -L atomic list-sessions
161
+ # List only workflow sessions
162
+ atomic workflow session list
165
163
 
166
- # Re-attach to a running session
167
- tmux -L atomic attach-session -t <session-name>
164
+ # Connect to a session by name
165
+ atomic session connect <session-name>
168
166
 
169
- # Kill a session you no longer need
170
- tmux -L atomic kill-session -t <session-name>
167
+ # Interactive session picker (fuzzy-search)
168
+ atomic session connect
171
169
  ```
172
170
 
173
171
  Session names follow a predictable pattern:
@@ -177,7 +175,7 @@ Session names follow a predictable pattern:
177
175
  | Chat | `atomic-chat-<id>` | `atomic-chat-a1b2c3d4` |
178
176
  | Workflow | `atomic-wf-<workflow>-<id>` | `atomic-wf-ralph-x9y8z7w6` |
179
177
 
180
- > **Tip:** If your terminal disconnects or you accidentally close the window, your session is still alive — just run `tmux -L atomic attach-session -t <session-name>` to pick up where you left off.
178
+ > **Tip:** If your terminal disconnects or you accidentally close the window, your session is still alive — just run `atomic session connect <session-name>` to pick up where you left off.
181
179
 
182
180
  ### 5. Build a Workflow
183
181
 
@@ -812,23 +810,15 @@ During `atomic chat`, there is no Atomic-owned TUI — `atomic chat -a <agent>`
812
810
 
813
811
  ### CLI Commands
814
812
 
815
- | Command | Description |
816
- | --------------------------- | --------------------------------------------------------------------- |
817
- | `atomic init` | Interactive project setup (agent selection, SCM choice, config sync) |
818
- | `atomic chat` | Spawn the native agent CLI inside a tmux/psmux session |
819
- | `atomic workflow` | Run a multi-session agent workflow with the Atomic orchestrator panel |
820
- | `atomic config set <k> <v>` | Set configuration values (currently supports `telemetry`) |
821
-
822
- ### Session Management (tmux)
823
-
824
- All Atomic sessions run on a dedicated tmux socket (`-L atomic`), separate from your personal tmux server. Use these commands to manage running sessions:
825
-
826
- | Command | Description |
827
- | ---------------------------------------------------- | ------------------------------------------- |
828
- | `tmux -L atomic list-sessions` | List all running Atomic sessions |
829
- | `tmux -L atomic attach-session -t <session-name>` | Re-attach to a session (e.g. after disconnect) |
830
- | `tmux -L atomic kill-session -t <session-name>` | Terminate a session |
831
- | `tmux -L atomic list-windows -t <session-name>` | List windows inside a workflow session |
813
+ | Command | Description |
814
+ | -------------------------------- | --------------------------------------------------------------------- |
815
+ | `atomic init` | Interactive project setup (agent selection, SCM choice, config sync) |
816
+ | `atomic chat` | Spawn the native agent CLI inside a tmux/psmux session |
817
+ | `atomic workflow` | Run a multi-session agent workflow with the Atomic orchestrator panel |
818
+ | `atomic session list` | List all running sessions on the atomic tmux socket |
819
+ | `atomic session connect [name]` | Attach to a session (interactive picker when no name given) |
820
+ | `atomic completions <shell>` | Output shell completion script (bash, zsh, fish, powershell) |
821
+ | `atomic config set <k> <v>` | Set configuration values (currently supports `telemetry`) |
832
822
 
833
823
  #### Global Flags
834
824
 
@@ -853,6 +843,29 @@ atomic init -a claude -s github # Pre-select agent and SCM
853
843
  atomic init --yes # Auto-confirm all prompts
854
844
  ```
855
845
 
846
+ #### `atomic session` Subcommands
847
+
848
+ The `session` command is available at three levels — scoped or global:
849
+
850
+ | Command | Description |
851
+ | ------------------------------------------ | ---------------------------------------------------- |
852
+ | `atomic session list` | List all running sessions |
853
+ | `atomic session connect [name]` | Attach to a session (interactive picker when no name) |
854
+ | `atomic chat session list` | List running chat sessions only |
855
+ | `atomic chat session connect [name]` | Attach to a chat session |
856
+ | `atomic workflow session list` | List running workflow sessions only |
857
+ | `atomic workflow session connect [name]` | Attach to a workflow session |
858
+
859
+ Both `list` and `connect` accept `-a <agent>` (repeatable) to filter by agent backend.
860
+
861
+ ```bash
862
+ atomic session list # All sessions
863
+ atomic session list -a claude # Only Claude sessions
864
+ atomic session connect my-session # Attach by name
865
+ atomic session connect # Interactive picker
866
+ atomic chat session list -a copilot # Chat sessions for Copilot only
867
+ ```
868
+
856
869
  #### `atomic chat` Flags
857
870
 
858
871
  | Flag | Description |
@@ -899,6 +912,19 @@ atomic workflow -n gen-spec -a claude \
899
912
 
900
913
  Workflows that declare an `inputs: WorkflowInput[]` schema get CLI flag validation for free — missing required fields and invalid enum values are rejected before any tmux session is spawned, with error messages that spell out the expected flag set. Workflows that don't declare a schema still accept a single positional prompt, which the runtime stores under `ctx.inputs.prompt`. **Builtin workflows (like `ralph`) are reserved names** — a local or global workflow with the same name will not shadow a builtin at resolution time.
901
914
 
915
+ #### `atomic completions` — Shell Completions
916
+
917
+ Atomic ships tab-completion for **bash**, **zsh**, **fish**, and **PowerShell**. The `atomic completions <shell>` command prints the completion script to stdout — pipe it into your shell's config to enable.
918
+
919
+ | Shell | One-liner (add to your rc file) |
920
+ | ---------- | ---------------------------------------------------------------------------------------- |
921
+ | Bash | `eval "$(atomic completions bash)"` — add to `~/.bashrc` |
922
+ | Zsh | `eval "$(atomic completions zsh)"` — add to `~/.zshrc` |
923
+ | Fish | `atomic completions fish > ~/.config/fish/completions/atomic.fish` |
924
+ | PowerShell | `atomic completions powershell \| Invoke-Expression` — add to `$PROFILE` |
925
+
926
+ > **Tip:** The bootstrap installer (`install.sh` / `install.ps1`) automatically installs completions for your detected shell.
927
+
902
928
  ### Atomic-Provided Skills (invokable from any agent chat)
903
929
 
904
930
  Atomic ships skills — not slash commands. Skills are auto-discovered by Claude Code, OpenCode, and Copilot CLI and are invoked either by typing `/<skill-name>` (Claude Code) or by natural-language reference (OpenCode / Copilot CLI). The list below covers the headline workflow skills; see **Built-in Skills** below for the full catalog.
@@ -0,0 +1,10 @@
1
+ /** @jsxImportSource @opentui/react */
2
+ /**
3
+ * CompactSwitcher — a lightweight popup that lists all agents for quick
4
+ * direct-jump navigation. Opened with "/" from any view mode.
5
+ */
6
+ export interface CompactSwitcherProps {
7
+ selectedIndex: number;
8
+ }
9
+ export declare function CompactSwitcher({ selectedIndex }: CompactSwitcherProps): import("react").ReactNode;
10
+ //# sourceMappingURL=compact-switcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-switcher.d.ts","sourceRoot":"","sources":["../../../src/sdk/components/compact-switcher.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;GAGG;AAMH,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,EAAE,aAAa,EAAE,EAAE,oBAAoB,6BA0DtE"}
@@ -1,4 +1,4 @@
1
- import type { SessionData, PanelSession } from "./orchestrator-panel-types.ts";
1
+ import type { SessionData, PanelSession, ViewMode } from "./orchestrator-panel-types.ts";
2
2
  type Listener = () => void;
3
3
  export declare class PanelStore {
4
4
  version: number;
@@ -14,6 +14,10 @@ export declare class PanelStore {
14
14
  completionReached: boolean;
15
15
  exitResolve: (() => void) | null;
16
16
  abortResolve: (() => void) | null;
17
+ /** Current view mode — graph overview or attached to a specific agent. */
18
+ viewMode: ViewMode;
19
+ /** ID of the agent currently attached to (only meaningful when viewMode === "attached"). */
20
+ activeAgentId: string;
17
21
  private listeners;
18
22
  subscribe: (fn: Listener) => (() => void);
19
23
  private emit;
@@ -24,6 +28,22 @@ export declare class PanelStore {
24
28
  addSession(session: SessionData): void;
25
29
  setCompletion(workflowName: string, transcriptsPath: string): void;
26
30
  setFatalError(message: string): void;
31
+ /**
32
+ * Switch between graph and attached view modes.
33
+ * When switching to "attached", provide the agent ID to attach to.
34
+ * Switching to "graph" clears the active agent.
35
+ */
36
+ setViewMode(mode: ViewMode, agentId?: string): void;
37
+ /**
38
+ * Return non-orchestrator agents that have started (not pending).
39
+ * Used for the tmux status bar agent count and active-agent index.
40
+ */
41
+ getSubagents(): SessionData[];
42
+ /**
43
+ * Return the 0-based index of the active agent within the subagent list,
44
+ * or -1 if not found.
45
+ */
46
+ getActiveAgentIndex(): number;
27
47
  /** Safely invoke exitResolve at most once, guarding against rapid repeated calls. */
28
48
  resolveExit(): void;
29
49
  /** Safely invoke abortResolve at most once to signal mid-execution quit. */
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-panel-store.d.ts","sourceRoot":"","sources":["../../../src/sdk/components/orchestrator-panel-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE9F,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B,qBAAa,UAAU;IACrB,OAAO,SAAK;IACZ,YAAY,SAAM;IAClB,KAAK,SAAM;IACX,MAAM,SAAM;IACZ,QAAQ,EAAE,WAAW,EAAE,CAAM;IAC7B,cAAc,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IAChF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,iBAAiB,UAAS;IAC1B,WAAW,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IACxC,YAAY,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEzC,OAAO,CAAC,SAAS,CAAuB;IAExC,SAAS,GAAI,IAAI,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC,CAGtC;IAEF,OAAO,CAAC,IAAI;IAKZ,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,EAAE,MAAM,GACb,IAAI;IAuBP,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQhC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQnC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAS9C,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKtC,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAUlE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAWpC,qFAAqF;IACrF,WAAW,IAAI,IAAI;IAQnB,4EAA4E;IAC5E,YAAY,IAAI,IAAI;IAQpB,gFAAgF;IAChF,WAAW,IAAI,IAAI;IAQnB,qBAAqB,IAAI,IAAI;CAI9B"}
1
+ {"version":3,"file":"orchestrator-panel-store.d.ts","sourceRoot":"","sources":["../../../src/sdk/components/orchestrator-panel-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAExG,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B,qBAAa,UAAU;IACrB,OAAO,SAAK;IACZ,YAAY,SAAM;IAClB,KAAK,SAAM;IACX,MAAM,SAAM;IACZ,QAAQ,EAAE,WAAW,EAAE,CAAM;IAC7B,cAAc,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IAChF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,iBAAiB,UAAS;IAC1B,WAAW,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IACxC,YAAY,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEzC,0EAA0E;IAC1E,QAAQ,EAAE,QAAQ,CAAW;IAC7B,4FAA4F;IAC5F,aAAa,SAAM;IAEnB,OAAO,CAAC,SAAS,CAAuB;IAExC,SAAS,GAAI,IAAI,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC,CAGtC;IAEF,OAAO,CAAC,IAAI;IAKZ,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,EAAE,MAAM,GACb,IAAI;IAuBP,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQhC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQnC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAS9C,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKtC,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAUlE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAWpC;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnD;;;OAGG;IACH,YAAY,IAAI,WAAW,EAAE;IAM7B;;;OAGG;IACH,mBAAmB,IAAI,MAAM;IAK7B,qFAAqF;IACrF,WAAW,IAAI,IAAI;IAQnB,4EAA4E;IAC5E,YAAY,IAAI,IAAI;IAQpB,gFAAgF;IAChF,WAAW,IAAI,IAAI;IAQnB,qBAAqB,IAAI,IAAI;CAI9B"}
@@ -1,4 +1,5 @@
1
1
  export type SessionStatus = "pending" | "running" | "complete" | "error";
2
+ export type ViewMode = "graph" | "attached";
2
3
  export interface PanelSession {
3
4
  name: string;
4
5
  parents: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-panel-types.d.ts","sourceRoot":"","sources":["../../../src/sdk/components/orchestrator-panel-types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB"}
1
+ {"version":3,"file":"orchestrator-panel-types.d.ts","sourceRoot":"","sources":["../../../src/sdk/components/orchestrator-panel-types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzE,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-graph-panel.d.ts","sourceRoot":"","sources":["../../../src/sdk/components/session-graph-panel.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;GAGG;AAwCH,wBAAgB,iBAAiB,8BAkThC"}
1
+ {"version":3,"file":"session-graph-panel.d.ts","sourceRoot":"","sources":["../../../src/sdk/components/session-graph-panel.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;GAGG;AAgDH,wBAAgB,iBAAiB,8BA0ahC"}
@@ -1 +1 @@
1
- {"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../../../src/sdk/components/statusline.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAItC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,UAAU,CAAC,EACzB,WAAW,EACX,SAAS,GACV,EAAE;IACD,WAAW,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB,6BAgDA"}
1
+ {"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../../../src/sdk/components/statusline.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAItC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,UAAU,CAAC,EACzB,WAAW,EACX,SAAS,GACV,EAAE;IACD,WAAW,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB,6BAqDA"}
@@ -58,8 +58,9 @@ export declare function parseInputsEnv(raw: string | undefined): Record<string,
58
58
  /**
59
59
  * Called by `atomic workflow -n <name> -a <agent> <prompt>`.
60
60
  *
61
- * Creates a tmux session with the orchestrator as the initial pane,
62
- * then attaches so the user sees everything live.
61
+ * Always creates a tmux session in the atomic socket with the
62
+ * orchestrator as the initial pane, then attaches so the user sees
63
+ * everything live — even when invoked from inside another tmux session.
63
64
  */
64
65
  export declare function executeWorkflow(options: WorkflowRunOptions): Promise<void>;
65
66
  /** Type guard for objects with a string `content` property (Copilot assistant.message data). */
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/sdk/runtime/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAMlB,SAAS,EAET,YAAY,EAMb,MAAM,aAAa,CAAC;AAgErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5C,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA0HD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKzC;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB9E;AAMD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAmFf;AAcD,gGAAgG;AAChG,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAOvE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAkDrE;AAwdD,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAsJrD"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/sdk/runtime/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAMlB,SAAS,EAET,YAAY,EAMb,MAAM,aAAa,CAAC;AAgErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5C,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA0HD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKzC;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB9E;AAMD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAyEf;AAcD,gGAAgG;AAChG,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAOvE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAkDrE;AAwdD,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAsJrD"}
@@ -16,6 +16,16 @@ export type TmuxResult = {
16
16
  ok: false;
17
17
  stderr: string;
18
18
  };
19
+ export declare const TMUX_DEFAULT_STATUS_LEFT = " ";
20
+ export declare const TMUX_DEFAULT_STATUS_LEFT_LENGTH = "10";
21
+ export declare const TMUX_DEFAULT_STATUS_RIGHT = " #{session_name} | %H:%M ";
22
+ export declare const TMUX_DEFAULT_STATUS_RIGHT_LENGTH = "60";
23
+ /**
24
+ * Escape a string for safe interpolation into tmux format strings.
25
+ * Replaces `#` with `##` to prevent tmux from interpreting `#[...]`
26
+ * as style directives or `#(...)` as shell command expansions.
27
+ */
28
+ export declare function escapeTmuxFormat(value: string): string;
19
29
  /**
20
30
  * Resolve the terminal multiplexer binary for the current platform.
21
31
  *
@@ -39,6 +49,14 @@ export declare function isTmuxInstalled(): boolean;
39
49
  * Check if we're currently inside a tmux session.
40
50
  */
41
51
  export declare function isInsideTmux(): boolean;
52
+ /**
53
+ * Check if we're inside the atomic tmux socket specifically.
54
+ *
55
+ * The `TMUX` env var has the format `<socket_path>,<pid>,<index>`.
56
+ * On Unix this looks like `/tmp/tmux-1000/atomic,12345,0` when the
57
+ * socket name is "atomic".
58
+ */
59
+ export declare function isInsideAtomicSocket(): boolean;
42
60
  /**
43
61
  * Run a tmux command and return a result object.
44
62
  * Prefers this over the throwing `tmux()` for cases where callers
@@ -78,8 +96,8 @@ export declare function createPane(sessionName: string, command: string): string
78
96
  * Send literal text to a tmux pane using `-l` flag (no special key interpretation).
79
97
  * Uses `--` to prevent text starting with `-` from being parsed as flags.
80
98
  *
81
- * Long texts are chunked to avoid OS `ARG_MAX` / `MAX_ARG_STRLEN` limits
82
- * that cause `tmux send-keys` to fail with "command too long".
99
+ * For large text payloads, prefer {@link sendViaPasteBuffer} which bypasses
100
+ * tmux's ~16 KB internal message buffer limit.
83
101
  */
84
102
  export declare function sendLiteralText(paneId: string, text: string): void;
85
103
  /**
@@ -136,6 +154,56 @@ export declare function killWindow(sessionName: string, windowName: string): voi
136
154
  * Check if a tmux session exists.
137
155
  */
138
156
  export declare function sessionExists(sessionName: string): boolean;
157
+ /**
158
+ * Set a session-level environment variable.
159
+ * Uses `tmux set-environment -t <session>` so the value is scoped to
160
+ * the individual session, not the global server environment.
161
+ */
162
+ export declare function setSessionEnv(sessionName: string, key: string, value: string): void;
163
+ /**
164
+ * Read a session-level environment variable.
165
+ * Returns `null` when the session doesn't exist or the variable isn't set.
166
+ */
167
+ export declare function getSessionEnv(sessionName: string, key: string): string | null;
168
+ /** Session type derived from the session name prefix. */
169
+ export type SessionType = "chat" | "workflow";
170
+ /**
171
+ * Parse a session name into its type and agent.
172
+ *
173
+ * Naming conventions:
174
+ * Chat: atomic-chat-<agent>-<id>
175
+ * Workflow: atomic-wf-<agent>-<name>-<id>
176
+ *
177
+ * Agent names are a known, hyphen-free set (claude, copilot, opencode)
178
+ * so parsing is unambiguous even when the workflow name contains hyphens.
179
+ */
180
+ export declare function parseSessionName(name: string): {
181
+ type?: SessionType;
182
+ agent?: string;
183
+ };
184
+ /** A single tmux session on the atomic socket. */
185
+ export interface TmuxSession {
186
+ /** Session name (e.g. "atomic-chat-claude-a1b2c3d4") */
187
+ name: string;
188
+ /** Number of windows in the session */
189
+ windows: number;
190
+ /** ISO 8601 creation timestamp */
191
+ created: string;
192
+ /** Whether a client is currently attached */
193
+ attached: boolean;
194
+ /** Session type derived from the name prefix */
195
+ type?: SessionType;
196
+ /** Agent backend that owns this session (e.g. "claude", "copilot", "opencode") */
197
+ agent?: string;
198
+ }
199
+ /**
200
+ * List all sessions on the atomic tmux socket.
201
+ *
202
+ * Uses a custom format string so output is machine-parseable regardless of
203
+ * locale. Returns an empty array when the server isn't running or has no
204
+ * sessions (tmux exits non-zero in both cases).
205
+ */
206
+ export declare function listSessions(): TmuxSession[];
139
207
  /**
140
208
  * Attach to an existing tmux session (takes over the current terminal).
141
209
  */
@@ -165,6 +233,18 @@ export declare function getCurrentSession(): string | null;
165
233
  * - Inside tmux: runs `switch-client` (returns immediately).
166
234
  */
167
235
  export declare function attachOrSwitch(sessionName: string): void;
236
+ /**
237
+ * Detach from the user's current tmux session and replace the client
238
+ * with an attach to a session on the atomic socket.
239
+ *
240
+ * Uses `detach-client -E` so the user's terminal seamlessly transitions
241
+ * from their tmux session to the atomic session — no nesting.
242
+ * Their original tmux session stays alive; they can re-attach with
243
+ * `tmux attach` after leaving the atomic session.
244
+ *
245
+ * Only call when {@link isInsideTmux} returns `true`.
246
+ */
247
+ export declare function detachAndAttachAtomic(sessionName: string): void;
168
248
  /**
169
249
  * Select (switch to) a window within the current tmux session.
170
250
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../../src/sdk/runtime/tmux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../../src/sdk/runtime/tmux.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,8 @@ export { createClaudeSession, claudeQuery, clearClaudeSession, validateClaudeWor
14
14
  export type { ClaudeSessionOptions, ClaudeQueryOptions, ClaudeQueryResult } from "../providers/claude.ts";
15
15
  export { validateCopilotWorkflow } from "../providers/copilot.ts";
16
16
  export { validateOpenCodeWorkflow } from "../providers/opencode.ts";
17
- export type { TmuxResult } from "../runtime/tmux.ts";
18
- export { SOCKET_NAME, isTmuxInstalled, getMuxBinary, resetMuxBinaryCache, isInsideTmux, createSession, createWindow, createPane, sendLiteralText, sendSpecialKey, sendKeysAndSubmit, capturePane, capturePaneVisible, capturePaneScrollback, killSession, killWindow, sessionExists, attachSession, spawnMuxAttach, switchClient, getCurrentSession, attachOrSwitch, selectWindow, waitForOutput, tmuxRun, normalizeTmuxCapture, normalizeTmuxLines, paneLooksReady, paneHasActiveTask, paneIsIdle, waitForPaneReady, attemptSubmitRounds, } from "../runtime/tmux.ts";
17
+ export type { TmuxResult, TmuxSession, SessionType } from "../runtime/tmux.ts";
18
+ export { SOCKET_NAME, isTmuxInstalled, getMuxBinary, resetMuxBinaryCache, isInsideTmux, isInsideAtomicSocket, createSession, createWindow, createPane, sendLiteralText, sendSpecialKey, sendKeysAndSubmit, capturePane, capturePaneVisible, capturePaneScrollback, killSession, killWindow, sessionExists, listSessions, attachSession, spawnMuxAttach, switchClient, getCurrentSession, attachOrSwitch, detachAndAttachAtomic, selectWindow, setSessionEnv, getSessionEnv, parseSessionName, waitForOutput, tmuxRun, normalizeTmuxCapture, normalizeTmuxLines, paneLooksReady, paneHasActiveTask, paneIsIdle, waitForPaneReady, attemptSubmitRounds, } from "../runtime/tmux.ts";
19
19
  export { AGENTS, discoverWorkflows, findWorkflow, loadWorkflowsMetadata, WORKFLOWS_GITIGNORE, } from "../runtime/discovery.ts";
20
20
  export type { DiscoveredWorkflow, WorkflowWithMetadata, } from "../runtime/discovery.ts";
21
21
  export { WorkflowLoader } from "../runtime/loader.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/workflows/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExE,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EAAE,qBAAqB,IAAI,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,YAAY,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAG7F,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtH,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE1G,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/workflows/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExE,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EAAE,qBAAqB,IAAI,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,YAAY,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAG7F,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtH,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE1G,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/atomic",
3
- "version": "0.5.5-0",
3
+ "version": "0.5.6-0",
4
4
  "description": "Configuration management CLI and SDK for coding agents",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -56,7 +56,9 @@
56
56
  "lint:fix": "oxlint --config=oxlint.json --fix src",
57
57
  "prepare": "lefthook install || true"
58
58
  },
59
- "trustedDependencies": ["lefthook"],
59
+ "trustedDependencies": [
60
+ "lefthook"
61
+ ],
60
62
  "devDependencies": {
61
63
  "@types/bun": "^1.3.12",
62
64
  "@types/react": "^19.2.14",