@bastani/atomic 0.8.14 → 0.8.15

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 (53) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +0 -8
  3. package/dist/builtin/intercom/CHANGELOG.md +5 -0
  4. package/dist/builtin/intercom/package.json +1 -1
  5. package/dist/builtin/mcp/CHANGELOG.md +5 -0
  6. package/dist/builtin/mcp/index.ts +4 -8
  7. package/dist/builtin/mcp/package.json +1 -1
  8. package/dist/builtin/subagents/CHANGELOG.md +2 -0
  9. package/dist/builtin/subagents/package.json +1 -1
  10. package/dist/builtin/subagents/skills/tmux/SKILL.md +220 -0
  11. package/dist/builtin/subagents/skills/tmux/scripts/find-sessions.sh +112 -0
  12. package/dist/builtin/subagents/skills/tmux/scripts/wait-for-text.sh +83 -0
  13. package/dist/builtin/web-access/CHANGELOG.md +5 -0
  14. package/dist/builtin/web-access/package.json +1 -1
  15. package/dist/builtin/workflows/CHANGELOG.md +12 -1
  16. package/dist/builtin/workflows/README.md +3 -1
  17. package/dist/builtin/workflows/builtin/ralph.ts +222 -295
  18. package/dist/builtin/workflows/package.json +1 -1
  19. package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +20 -11
  20. package/dist/builtin/workflows/src/extension/index.ts +1 -0
  21. package/dist/builtin/workflows/src/extension/status-writer.ts +18 -3
  22. package/dist/builtin/workflows/src/runs/background/runner.ts +8 -10
  23. package/dist/builtin/workflows/src/runs/foreground/executor.ts +484 -91
  24. package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +13 -2
  25. package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +41 -15
  26. package/dist/builtin/workflows/src/runs/shared/graph-inference.ts +31 -0
  27. package/dist/builtin/workflows/src/runs/shared/prompt-callsite.ts +98 -0
  28. package/dist/builtin/workflows/src/shared/persistence-restore.ts +3 -1
  29. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +4 -0
  30. package/dist/builtin/workflows/src/shared/store-types.ts +12 -1
  31. package/dist/builtin/workflows/src/shared/store.ts +77 -3
  32. package/dist/builtin/workflows/src/tui/graph-view.ts +17 -1
  33. package/dist/builtin/workflows/src/tui/prompt-card.ts +185 -30
  34. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +386 -21
  35. package/docs/changelog.mdx +41 -14
  36. package/docs/docs.json +1 -0
  37. package/docs/extensions.md +19 -19
  38. package/docs/images/workflow-input-picker.png +0 -0
  39. package/docs/images/workflow-list.png +0 -0
  40. package/docs/index.md +33 -27
  41. package/docs/providers.md +2 -2
  42. package/docs/quickstart.md +15 -15
  43. package/docs/sdk.md +8 -8
  44. package/docs/sessions.md +5 -5
  45. package/docs/settings.md +27 -1
  46. package/docs/skills.md +2 -2
  47. package/docs/subagents.md +157 -0
  48. package/docs/usage.md +7 -7
  49. package/docs/windows.md +8 -0
  50. package/docs/workflows.md +62 -9
  51. package/package.json +2 -1
  52. package/docs/images/doom-extension.png +0 -0
  53. package/docs/images/exy.png +0 -3
@@ -133,7 +133,7 @@ Additional paths via `settings.json`:
133
133
  }
134
134
  ```
135
135
 
136
- To share extensions via npm or git as Atomic packages, see [packages.md](packages.md).
136
+ To share extensions via npm or git as Atomic packages, see [Atomic packages](/packages).
137
137
 
138
138
  ## Available Imports
139
139
 
@@ -368,7 +368,7 @@ pi.on("resources_discover", async (event, _ctx) => {
368
368
 
369
369
  ### Session Events
370
370
 
371
- See [Session Format](session-format.md) for session storage internals and the SessionManager API.
371
+ See [Session Format](/session-format) for session storage internals and the SessionManager API.
372
372
 
373
373
  #### session_start
374
374
 
@@ -420,7 +420,7 @@ Do cleanup work in `session_shutdown`, then reestablish any in-memory state in `
420
420
 
421
421
  #### session_before_compact / session_compact
422
422
 
423
- Fired on compaction. See [compaction.md](compaction.md) for details.
423
+ Fired on compaction. See [Compaction](/compaction) for details.
424
424
 
425
425
  ```typescript
426
426
  pi.on("session_before_compact", async (event, ctx) => {
@@ -447,7 +447,7 @@ pi.on("session_compact", async (event, ctx) => {
447
447
 
448
448
  #### session_before_tree / session_tree
449
449
 
450
- Fired on `/tree` navigation. See [Sessions](sessions.md) for tree navigation concepts.
450
+ Fired on `/tree` navigation. See [Sessions](/sessions) for tree navigation concepts.
451
451
 
452
452
  ```typescript
453
453
  pi.on("session_before_tree", async (event, ctx) => {
@@ -601,7 +601,7 @@ pi.on("tool_execution_end", async (event, ctx) => {
601
601
 
602
602
  #### context
603
603
 
604
- Fired before each LLM call. Modify messages non-destructively. See [Session Format](session-format.md) for message types.
604
+ Fired before each LLM call. Modify messages non-destructively. See [Session Format](/session-format) for message types.
605
605
 
606
606
  ```typescript
607
607
  pi.on("context", async (event, ctx) => {
@@ -872,7 +872,7 @@ UI methods for user interaction. See [Custom UI](#custom-ui) for full details.
872
872
 
873
873
  ### ctx.hasUI
874
874
 
875
- `false` in print mode (`-p`) and JSON mode. `true` in interactive and RPC mode. In RPC mode, dialog methods (`select`, `confirm`, `input`, `editor`) work via the extension UI sub-protocol, and fire-and-forget methods (`notify`, `setStatus`, `setWidget`, `setTitle`, `setEditorText`) emit requests to the client. Some TUI-specific methods are no-ops or return defaults (see [rpc.md](rpc.md#extension-ui-protocol)).
875
+ `false` in print mode (`-p`) and JSON mode. `true` in interactive and RPC mode. In RPC mode, dialog methods (`select`, `confirm`, `input`, `editor`) work via the extension UI sub-protocol, and fire-and-forget methods (`notify`, `setStatus`, `setWidget`, `setTitle`, `setEditorText`) emit requests to the client. Some TUI-specific methods are no-ops or return defaults (see [RPC mode](/rpc#extension-ui-protocol)).
876
876
 
877
877
  ### ctx.cwd
878
878
 
@@ -880,7 +880,7 @@ Current working directory.
880
880
 
881
881
  ### ctx.sessionManager
882
882
 
883
- Read-only access to session state. See [Session Format](session-format.md) for the full SessionManager API and entry types.
883
+ Read-only access to session state. See [Session Format](/session-format) for the full SessionManager API and entry types.
884
884
 
885
885
  For `tool_call`, this state is synchronized through the current assistant message before handlers run. In parallel tool execution mode it is still not guaranteed to include sibling tool results from the same assistant message.
886
886
 
@@ -1456,7 +1456,7 @@ Register a custom TUI renderer for messages with your `customType`. See [Custom
1456
1456
 
1457
1457
  ### pi.registerShortcut(shortcut, options)
1458
1458
 
1459
- Register a keyboard shortcut. See [keybindings.md](keybindings.md) for the shortcut format and built-in keybindings.
1459
+ Register a keyboard shortcut. See [Keybindings](/keybindings) for the shortcut format and built-in keybindings.
1460
1460
 
1461
1461
  ```typescript
1462
1462
  pi.registerShortcut("ctrl+shift+p", {
@@ -1521,7 +1521,7 @@ Typical `sourceInfo.source` values:
1521
1521
 
1522
1522
  ### pi.setModel(model)
1523
1523
 
1524
- Set the current model. Returns `false` if no API key is available for the model. See [models.md](models.md) for configuring custom models.
1524
+ Set the current model. Returns `false` if no API key is available for the model. See [Custom models](/models) for configuring custom models.
1525
1525
 
1526
1526
  ```typescript
1527
1527
  const model = ctx.modelRegistry.find("anthropic", "claude-sonnet-4-5");
@@ -1619,7 +1619,7 @@ pi.registerProvider("corporate-ai", {
1619
1619
  - `oauth` - OAuth provider config for `/login` support. When provided, the provider appears in the login menu.
1620
1620
  - `streamSimple` - Custom streaming implementation for non-standard APIs.
1621
1621
 
1622
- See [custom-provider.md](custom-provider.md) for advanced topics: custom streaming APIs, OAuth details, model definition reference.
1622
+ See [Custom providers](/custom-provider) for advanced topics: custom streaming APIs, OAuth details, model definition reference.
1623
1623
 
1624
1624
  ### pi.unregisterProvider(name)
1625
1625
 
@@ -1987,7 +1987,7 @@ export default function (pi: ExtensionAPI) {
1987
1987
 
1988
1988
  ### Custom Rendering
1989
1989
 
1990
- Tools can provide `renderCall` and `renderResult` for custom TUI display. See [tui.md](tui.md) for the full component API and [tool-execution.ts](https://github.com/earendil-works/pi-mono/blob/main/packages/coding-agent/src/modes/interactive/components/tool-execution.ts) for how tool rows are composed.
1990
+ Tools can provide `renderCall` and `renderResult` for custom TUI display. See [TUI components](/tui) for the full component API and [tool-execution.ts](https://github.com/earendil-works/pi-mono/blob/main/packages/coding-agent/src/modes/interactive/components/tool-execution.ts) for how tool rows are composed.
1991
1991
 
1992
1992
  By default, tool output is wrapped in a `Box` that handles padding and background. A defined `renderCall` or `renderResult` must return a `Component`. If a slot renderer is not defined, `tool-execution.ts` uses fallback rendering for that slot.
1993
1993
 
@@ -2088,7 +2088,7 @@ Use namespaced keybinding ids:
2088
2088
  - Coding-agent ids use the `app.*` namespace, for example `app.tools.expand`, `app.editor.external`, `app.session.rename`
2089
2089
  - Shared TUI ids use the `tui.*` namespace, for example `tui.select.confirm`, `tui.select.cancel`, `tui.input.tab`
2090
2090
 
2091
- For the exhaustive list of keybinding ids and defaults, see [keybindings.md](keybindings.md). `keybindings.json` uses those same namespaced ids.
2091
+ For the exhaustive list of keybinding ids and defaults, see [Keybindings](/keybindings). `keybindings.json` uses those same namespaced ids.
2092
2092
 
2093
2093
  Custom editors and `ctx.ui.custom()` components receive `keybindings: KeybindingsManager` as an injected argument. They should use that injected manager directly instead of calling `getKeybindings()` or `setKeybindings()`.
2094
2094
 
@@ -2114,7 +2114,7 @@ If a slot renderer is not defined or throws:
2114
2114
 
2115
2115
  Extensions can interact with users via `ctx.ui` methods and customize how messages/tools render.
2116
2116
 
2117
- **For custom components, see [tui.md](tui.md)** which has copy-paste patterns for:
2117
+ **For custom components, see [TUI components](/tui)** which has copy-paste patterns for:
2118
2118
  - Selection dialogs (SelectList)
2119
2119
  - Async operations with cancel (BorderedLoader)
2120
2120
  - Settings toggles (SettingsList)
@@ -2367,7 +2367,7 @@ The callback receives:
2367
2367
  - `keybindings` - App keybinding manager (for checking shortcuts)
2368
2368
  - `done(value)` - Call to close component and return value
2369
2369
 
2370
- See [tui.md](tui.md) for the full component API.
2370
+ See [TUI components](/tui) for the full component API.
2371
2371
 
2372
2372
  #### Overlay Mode (Experimental)
2373
2373
 
@@ -2393,7 +2393,7 @@ const result = await ctx.ui.custom<string | null>(
2393
2393
  );
2394
2394
  ```
2395
2395
 
2396
- See [tui.md](tui.md) for the full `OverlayOptions` API and [overlay-qa-tests.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/overlay-qa-tests.ts) for examples.
2396
+ See [TUI components](/tui) for the full `OverlayOptions` API and [overlay-qa-tests.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/overlay-qa-tests.ts) for examples.
2397
2397
 
2398
2398
  ### Custom Editor
2399
2399
 
@@ -2444,7 +2444,7 @@ ctx.ui.setEditorComponent((tui, theme, keybindings) =>
2444
2444
  );
2445
2445
  ```
2446
2446
 
2447
- See [tui.md](tui.md) Pattern 7 for a complete example with mode indicator.
2447
+ See [TUI components](/tui) Pattern 7 for a complete example with mode indicator.
2448
2448
 
2449
2449
  ### Message Rendering
2450
2450
 
@@ -2479,7 +2479,7 @@ pi.sendMessage({
2479
2479
 
2480
2480
  ### Theme Colors
2481
2481
 
2482
- All render functions receive a `theme` object. See [themes.md](themes.md) for creating custom themes and the full color palette.
2482
+ All render functions receive a `theme` object. See [Themes](/themes) for creating custom themes and the full color palette.
2483
2483
 
2484
2484
  ```typescript
2485
2485
  // Foreground colors
@@ -2521,8 +2521,8 @@ const highlighted = highlightCode(code, lang, theme);
2521
2521
  | Mode | UI Methods | Notes |
2522
2522
  |------|-----------|-------|
2523
2523
  | Interactive | Full TUI | Normal operation |
2524
- | RPC (`--mode rpc`) | JSON protocol | Host handles UI, see [rpc.md](rpc.md) |
2525
- | JSON (`--mode json`) | No-op | Event stream to stdout, see [json.md](json.md) |
2524
+ | RPC (`--mode rpc`) | JSON protocol | Host handles UI, see [RPC mode](/rpc) |
2525
+ | JSON (`--mode json`) | No-op | Event stream to stdout, see [JSON mode](/json) |
2526
2526
  | Print (`-p`) | No-op | Extensions run but can't prompt |
2527
2527
 
2528
2528
  In non-interactive modes, check `ctx.hasUI` before using UI methods.
Binary file
package/docs/index.md CHANGED
@@ -1,3 +1,8 @@
1
+ ---
2
+ title: "Overview"
3
+ description: "Atomic documentation overview"
4
+ ---
5
+
1
6
  # Atomic Documentation
2
7
 
3
8
  Atomic is a minimal terminal coding harness. It is designed to stay small at the core while being extended through TypeScript extensions, skills, prompt templates, themes, and Atomic packages.
@@ -29,48 +34,49 @@ atomic
29
34
 
30
35
  Authenticate with `/login` for subscription providers, or set an API key such as `ANTHROPIC_API_KEY` before starting Atomic.
31
36
 
32
- For the full first-run flow, see [Quickstart](quickstart.md).
37
+ For the full first-run flow, see [Quickstart](/quickstart).
33
38
 
34
39
  ## Start here
35
40
 
36
- - [Quickstart](quickstart.md) - install, authenticate, and run a first session.
37
- - [Using Atomic](usage.md) - interactive mode, slash commands, context files, and CLI reference.
38
- - [Providers](providers.md) - subscription and API-key setup for built-in providers.
39
- - [Settings](settings.md) - global and project settings.
40
- - [Keybindings](keybindings.md) - default shortcuts and custom keybindings.
41
- - [Sessions](sessions.md) - session management, branching, and tree navigation.
42
- - [Compaction](compaction.md) - context compaction and branch summarization.
41
+ - [Quickstart](/quickstart) - install, authenticate, and run a first session.
42
+ - [Using Atomic](/usage) - interactive mode, slash commands, context files, and CLI reference.
43
+ - [Providers](/providers) - subscription and API-key setup for built-in providers.
44
+ - [Settings](/settings) - global and project settings.
45
+ - [Keybindings](/keybindings) - default shortcuts and custom keybindings.
46
+ - [Sessions](/sessions) - session management, branching, and tree navigation.
47
+ - [Compaction](/compaction) - context compaction and branch summarization.
43
48
 
44
49
  ## Customization
45
50
 
46
- - [Extensions](extensions.md) - TypeScript modules for tools, commands, events, and custom UI.
47
- - [Skills](skills.md) - Agent Skills for reusable on-demand capabilities.
48
- - [Workflows](workflows.md) - reusable multi-stage automation with tracked stages and resumable runs.
49
- - [Prompt templates](prompt-templates.md) - reusable prompts that expand from slash commands.
50
- - [Themes](themes.md) - built-in and custom terminal themes.
51
- - [Atomic packages](packages.md) - bundle and share extensions, skills, prompts, and themes.
52
- - [Custom models](models.md) - add model entries for supported provider APIs.
53
- - [Custom providers](custom-provider.md) - implement custom APIs and OAuth flows.
51
+ - [Extensions](/extensions) - TypeScript modules for tools, commands, events, and custom UI.
52
+ - [Skills](/skills) - Agent Skills for reusable on-demand capabilities.
53
+ - [Subagents](/subagents) - focused child agents for research, analysis, debugging, cleanup, and review compositions.
54
+ - [Workflows](/workflows) - reusable multi-stage automation with tracked stages and resumable runs.
55
+ - [Prompt templates](/prompt-templates) - reusable prompts that expand from slash commands.
56
+ - [Themes](/themes) - built-in and custom terminal themes.
57
+ - [Atomic packages](/packages) - bundle and share extensions, skills, prompts, and themes.
58
+ - [Custom models](/models) - add model entries for supported provider APIs.
59
+ - [Custom providers](/custom-provider) - implement custom APIs and OAuth flows.
54
60
 
55
61
  ## Programmatic usage
56
62
 
57
- - [SDK](sdk.md) - embed Atomic in Node.js applications.
58
- - [RPC mode](rpc.md) - integrate over stdin/stdout JSONL.
59
- - [JSON event stream mode](json.md) - print mode with structured events.
60
- - [TUI components](tui.md) - build custom terminal UI for extensions.
63
+ - [SDK](/sdk) - embed Atomic in Node.js applications.
64
+ - [RPC mode](/rpc) - integrate over stdin/stdout JSONL.
65
+ - [JSON event stream mode](/json) - print mode with structured events.
66
+ - [TUI components](/tui) - build custom terminal UI for extensions.
61
67
 
62
68
  ## Reference
63
69
 
64
- - [Session format](session-format.md) - JSONL session file format, entry types, and SessionManager API.
70
+ - [Session format](/session-format) - JSONL session file format, entry types, and SessionManager API.
65
71
 
66
72
  ## Platform setup
67
73
 
68
- - [Windows](windows.md)
69
- - [Termux on Android](termux.md)
70
- - [tmux](tmux.md)
71
- - [Terminal setup](terminal-setup.md)
72
- - [Shell aliases](shell-aliases.md)
74
+ - [Windows](/windows)
75
+ - [Termux on Android](/termux)
76
+ - [tmux](/tmux)
77
+ - [Terminal setup](/terminal-setup)
78
+ - [Shell aliases](/shell-aliases)
73
79
 
74
80
  ## Development
75
81
 
76
- - [Development](development.md) - local setup, project structure, and debugging.
82
+ - [Development](/development) - local setup, project structure, and debugging.
package/docs/providers.md CHANGED
@@ -229,9 +229,9 @@ Or set `GOOGLE_APPLICATION_CREDENTIALS` to a service account key file.
229
229
 
230
230
  ## Custom Providers
231
231
 
232
- **Via models.json:** Add Ollama, LM Studio, vLLM, or any provider that speaks a supported API (OpenAI Completions, OpenAI Responses, Anthropic Messages, Google Generative AI). See [models.md](models.md).
232
+ **Via models.json:** Add Ollama, LM Studio, vLLM, or any provider that speaks a supported API (OpenAI Completions, OpenAI Responses, Anthropic Messages, Google Generative AI). See [Custom models](/models).
233
233
 
234
- **Via extensions:** For providers that need custom API implementations or OAuth flows, create an extension. See [custom-provider.md](custom-provider.md) and [examples/extensions/custom-provider-gitlab-duo](https://github.com/flora131/atomic/tree/main/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo).
234
+ **Via extensions:** For providers that need custom API implementations or OAuth flows, create an extension. See [Custom providers](/custom-provider) and [examples/extensions/custom-provider-gitlab-duo](https://github.com/flora131/atomic/tree/main/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo).
235
235
 
236
236
  ## Resolution Order
237
237
 
@@ -7,7 +7,7 @@ This page gets you from install to a useful first Atomic session.
7
7
  - **Node.js 24 LTS or newer** — Atomic requires the latest Node LTS runtime. Check with `node --version`.
8
8
  - **A package manager** — use npm (included with Node), pnpm, Yarn, or Bun. Use Bun 1.3.14+ for Bun installs or workflow-authoring examples.
9
9
  - **Model-provider access** — bring an API key or sign in with `/login` after startup.
10
- - **A compatible terminal** — for the best TUI experience, use a terminal with Kitty keyboard protocol support. See [Terminal setup](terminal-setup.md). On Windows, use Git Bash or WSL.
10
+ - **A compatible terminal** — for the best TUI experience, use a terminal with Kitty keyboard protocol support. See [Terminal setup](/terminal-setup). On Windows, use Git Bash or WSL.
11
11
 
12
12
  ## Install
13
13
 
@@ -58,7 +58,7 @@ atomic
58
58
 
59
59
  You can also run `/login` and select an API-key provider to store the key in `~/.atomic/agent/auth.json`.
60
60
 
61
- See [Providers](providers.md) for all supported providers, environment variables, and cloud-provider setup.
61
+ See [Providers](/providers) for all supported providers, environment variables, and cloud-provider setup.
62
62
 
63
63
  ## First session
64
64
 
@@ -73,7 +73,7 @@ Atomic ships with three workflows you can run immediately. Use `/workflow list`
73
73
  | Workflow | When to use | Example |
74
74
  |---|---|---|
75
75
  | `deep-research-codebase` | Broad, cross-cutting research before you decide what to change. Scout → research-history → parallel specialist waves → aggregator. | `/workflow deep-research-codebase prompt="How do payment retries work end to end?"` |
76
- | `ralph` | Larger implementation loops with built-in plan → orchestrate → simplify → parallel review iteration. | `/workflow ralph prompt="Implement specs/2026-03-rate-limit.md and validate the behavior" max_loops=5` |
76
+ | `ralph` | Larger implementation loops with built-in plan → orchestrate → simplify → review iteration, plus final PR preparation when repo state, branch target, and GitHub credentials allow it. | `/workflow ralph prompt="Implement specs/2026-03-rate-limit.md and validate the behavior" max_loops=5` |
77
77
  | `open-claude-design` | UI and design-system work with generation, critique, and refinement loops; renders a live `preview.html` you can iterate against. | `/workflow open-claude-design prompt="Refresh the settings page hierarchy" output_type=page` |
78
78
 
79
79
  <p align="center"><img src="images/workflow-list.png" alt="Workflow List" width="600" /></p>
@@ -86,7 +86,7 @@ You can also launch workflows with **natural language** — just describe the ta
86
86
  Run a deep codebase research workflow on how the rate limiter behaves under burst traffic.
87
87
  ```
88
88
 
89
- Atomic picks the workflow, fills in inputs from the request, and confirms before launch.
89
+ Atomic picks the workflow, fills in inputs from the request, and confirms before launch. Ralph may create a pull request at the end only when the current repository state, remote/branch target, and available GitHub credentials make that safe; otherwise it reports the exact follow-up steps.
90
90
 
91
91
  ### Monitor and steer a run
92
92
 
@@ -101,7 +101,7 @@ Named workflow runs execute in the background. After launch you get a run id; us
101
101
  /workflow kill <run-id> # destructive abort
102
102
  ```
103
103
 
104
- Human-in-the-loop prompts (`ctx.ui.input`, `confirm`, `select`, `editor`) surface in the graph viewer, not as chat modals — connect to the run to answer them. See [Workflows](workflows.md) for the full reference and authoring guide.
104
+ Human-in-the-loop prompts (`ctx.ui.input`, `confirm`, `select`, `editor`) surface in the graph viewer, not as chat modals — connect to the run to answer them. See [Workflows](/workflows) for the full reference and authoring guide.
105
105
 
106
106
  ### Top skills to invoke directly
107
107
 
@@ -119,7 +119,7 @@ Use `/skill:research-codebase` for a focused area and `/workflow deep-research-c
119
119
 
120
120
  ### Create your own workflow in natural language
121
121
 
122
- You do not have to write TypeScript to add a new workflow. Describe what you want in plain chat and Atomic will design and write it for you using the [Workflows](workflows.md) reference as the source of truth:
122
+ You do not have to write TypeScript to add a new workflow. Describe what you want in plain chat and Atomic will design and write it for you using the [Workflows](/workflows) reference as the source of truth:
123
123
 
124
124
  ```text
125
125
  Create a reusable Atomic workflow called review-changes. It takes one
@@ -136,7 +136,7 @@ Atomic will:
136
136
  - write a `.atomic/workflows/<name>.ts` definition that uses `defineWorkflow(...).input(...).run(...).compile()`,
137
137
  - and reload so you can immediately run it with `/workflow <name>`.
138
138
 
139
- The same plain-chat approach works for editing or hardening an existing workflow — ask Atomic to add a stage, switch a model, save artifacts, or wire in a human approval gate. For the full authoring reference, see [Workflows](workflows.md).
139
+ The same plain-chat approach works for editing or hardening an existing workflow — ask Atomic to add a stage, switch a model, save artifacts, or wire in a human approval gate. For the full authoring reference, see [Workflows](/workflows).
140
140
 
141
141
  ### Default tools and prompts
142
142
 
@@ -229,12 +229,12 @@ Use `--mode json` for JSON event output or `--mode rpc` for process integration.
229
229
 
230
230
  ## Next steps
231
231
 
232
- - [Using Atomic](usage.md) - interactive mode, slash commands, sessions, context files, and CLI reference.
233
- - [Workflows](workflows.md) - run, inspect, and author multi-stage automation (including the three built-in workflows).
234
- - [Skills](skills.md) - reusable expert instructions invoked with `/skill:<name>`.
235
- - [Providers](providers.md) - authentication and model setup.
236
- - [Settings](settings.md) - global and project configuration.
237
- - [Keybindings](keybindings.md) - shortcuts and customization.
238
- - [Atomic Packages](packages.md) - install shared extensions, skills, prompts, and themes.
232
+ - [Using Atomic](/usage) - interactive mode, slash commands, sessions, context files, and CLI reference.
233
+ - [Workflows](/workflows) - run, inspect, and author multi-stage automation (including the three built-in workflows).
234
+ - [Skills](/skills) - reusable expert instructions invoked with `/skill:<name>`.
235
+ - [Providers](/providers) - authentication and model setup.
236
+ - [Settings](/settings) - global and project configuration.
237
+ - [Keybindings](/keybindings) - shortcuts and customization.
238
+ - [Atomic Packages](/packages) - install shared extensions, skills, prompts, and themes.
239
239
 
240
- Platform notes: [Windows](windows.md), [Termux](termux.md), [tmux](tmux.md), [Terminal setup](terminal-setup.md), [Shell aliases](shell-aliases.md).
240
+ Platform notes: [Windows](/windows), [Termux](/termux), [tmux](/tmux), [Terminal setup](/terminal-setup), [Shell aliases](/shell-aliases).
package/docs/sdk.md CHANGED
@@ -1,4 +1,4 @@
1
- > pi can help you use the SDK. Ask it to build an integration for your use case.
1
+ > Atomic can help you use the SDK. Ask it to build an integration for your use case.
2
2
 
3
3
  # SDK
4
4
 
@@ -582,7 +582,7 @@ await loader.reload();
582
582
  const { session } = await createAgentSession({ resourceLoader: loader });
583
583
  ```
584
584
 
585
- Extensions can register tools, subscribe to events, add commands, and more. See [extensions.md](extensions.md) for the full API.
585
+ Extensions can register tools, subscribe to events, add commands, and more. See [Extensions](/extensions) for the full API.
586
586
 
587
587
  **Event Bus:** Extensions can communicate via `pi.events`. Pass a shared `eventBus` to `DefaultResourceLoader` if you need to emit or listen from outside:
588
588
 
@@ -598,7 +598,7 @@ await loader.reload();
598
598
  eventBus.on("my-extension:status", (data) => console.log(data));
599
599
  ```
600
600
 
601
- > See [examples/sdk/06-extensions.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/06-extensions.ts) and [docs/extensions.md](extensions.md)
601
+ > See [examples/sdk/06-extensions.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/06-extensions.ts) and [Extensions](/extensions)
602
602
 
603
603
  ### Skills
604
604
 
@@ -781,7 +781,7 @@ sm.branchWithSummary(id, "Summary..."); // Branch with context summary
781
781
  sm.createBranchedSession(leafId); // Extract path to new file
782
782
  ```
783
783
 
784
- > See [examples/sdk/11-sessions.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/11-sessions.ts) and [Session Format](session-format.md)
784
+ > See [examples/sdk/11-sessions.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/11-sessions.ts) and [Session Format](/session-format)
785
785
 
786
786
  ### Settings Management
787
787
 
@@ -1074,17 +1074,17 @@ const runtime = await createAgentSessionRuntime(createRuntime, {
1074
1074
  await runRpcMode(runtime);
1075
1075
  ```
1076
1076
 
1077
- See [RPC documentation](rpc.md) for the JSON protocol.
1077
+ See [RPC documentation](/rpc) for the JSON protocol.
1078
1078
 
1079
1079
  ## RPC Mode Alternative
1080
1080
 
1081
1081
  For subprocess-based integration without building with the SDK, use the CLI directly:
1082
1082
 
1083
1083
  ```bash
1084
- pi --mode rpc --no-session
1084
+ atomic --mode rpc --no-session
1085
1085
  ```
1086
1086
 
1087
- See [RPC documentation](rpc.md) for the JSON protocol.
1087
+ See [RPC documentation](/rpc) for the JSON protocol.
1088
1088
 
1089
1089
  The SDK is preferred when:
1090
1090
  - You want type safety
@@ -1140,4 +1140,4 @@ type PromptTemplate
1140
1140
  type Tool
1141
1141
  ```
1142
1142
 
1143
- For extension types, see [extensions.md](extensions.md) for the full API.
1143
+ For extension types, see [Extensions](/extensions) for the full API.
package/docs/sessions.md CHANGED
@@ -16,7 +16,7 @@ atomic --fork <path|id> # Fork a session file or partial session ID into a ne
16
16
 
17
17
  Use `/session` in interactive mode to see the current session file, session ID, message count, tokens, and cost.
18
18
 
19
- For the JSONL file format and SessionManager API, see [Session Format](session-format.md).
19
+ For the JSONL file format and SessionManager API, see [Session Format](/session-format).
20
20
 
21
21
  ## Session Commands
22
22
 
@@ -29,7 +29,7 @@ For the JSONL file format and SessionManager API, see [Session Format](session-f
29
29
  | `/tree` | Navigate the current session tree |
30
30
  | `/fork` | Create a new session from a previous user message |
31
31
  | `/clone` | Duplicate the current active branch into a new session |
32
- | `/compact [prompt]` | Summarize older context; see [Compaction](compaction.md) |
32
+ | `/compact [prompt]` | Summarize older context; see [Compaction](/compaction) |
33
33
  | `/export [file]` | Export session to HTML |
34
34
  | `/share` | Upload as private GitHub gist with shareable HTML link |
35
35
 
@@ -89,7 +89,7 @@ Example shape:
89
89
  | Escape/CTRL+C | Cancel |
90
90
  | CTRL+O | Cycle filter mode |
91
91
 
92
- Filter modes are: default, no-tools, user-only, labeled-only, and all. Configure the default with `treeFilterMode` in [Settings](settings.md).
92
+ Filter modes are: default, no-tools, user-only, labeled-only, and all. Configure the default with `treeFilterMode` in [Settings](/settings).
93
93
 
94
94
  ### Selection Behavior
95
95
 
@@ -128,10 +128,10 @@ When prompted, choose one of:
128
128
  2. summarize with the default prompt
129
129
  3. summarize with custom focus instructions
130
130
 
131
- See [Compaction](compaction.md) for branch summarization internals and extension hooks.
131
+ See [Compaction](/compaction) for branch summarization internals and extension hooks.
132
132
 
133
133
  ## Session Format
134
134
 
135
135
  Session files are JSONL and contain message entries, model changes, thinking-level changes, labels, compactions, branch summaries, and extension entries.
136
136
 
137
- For parsers, extensions, SDK usage, and the full SessionManager API, see [Session Format](session-format.md).
137
+ For parsers, extensions, SDK usage, and the full SessionManager API, see [Session Format](/session-format).
package/docs/settings.md CHANGED
@@ -121,6 +121,31 @@ When a provider requests a retry delay longer than `retry.provider.maxRetryDelay
121
121
  }
122
122
  ```
123
123
 
124
+ ### HTTP
125
+
126
+ | Setting | Type | Default | Description |
127
+ |---------|------|---------|-------------|
128
+ | `httpIdleTimeoutMs` | number | `300000` | HTTP header/body idle timeout in milliseconds. Must be a non-negative finite number; decimals are rounded down. Set to `0` to disable the idle timeout. |
129
+
130
+ Atomic applies this timeout to the global HTTP dispatcher used by `fetch` and provider SDK HTTP clients. The default is 300,000 ms (5 minutes), which keeps long-running requests working while reclaiming stale idle connections.
131
+
132
+ The `/settings` picker offers these presets:
133
+
134
+ | Label | Value |
135
+ |-------|-------|
136
+ | `30 sec` | `30000` |
137
+ | `1 min` | `60000` |
138
+ | `5 min` | `300000` |
139
+ | `10 min` | `600000` |
140
+ | `30 min` | `1800000` |
141
+ | `Disabled` | `0` |
142
+
143
+ ```json
144
+ {
145
+ "httpIdleTimeoutMs": 300000
146
+ }
147
+ ```
148
+
124
149
  ### Message Delivery
125
150
 
126
151
  | Setting | Type | Default | Description |
@@ -230,7 +255,7 @@ Object form filters which resources to load:
230
255
  }
231
256
  ```
232
257
 
233
- See [packages.md](packages.md) for package management details.
258
+ See [Atomic packages](/packages) for package management details.
234
259
 
235
260
  ## Example
236
261
 
@@ -249,6 +274,7 @@ See [packages.md](packages.md) for package management details.
249
274
  "enabled": true,
250
275
  "maxRetries": 3
251
276
  },
277
+ "httpIdleTimeoutMs": 300000,
252
278
  "enabledModels": ["claude-*", "gpt-4o"],
253
279
  "warnings": {
254
280
  "anthropicExtraUsage": true
package/docs/skills.md CHANGED
@@ -135,10 +135,10 @@ cd /path/to/skill && pnpm install
135
135
  ```
136
136
  ````
137
137
 
138
- Use relative paths from the skill directory:
138
+ Use relative file paths from the skill directory (these are bundled skill files, not docs routes):
139
139
 
140
140
  ```markdown
141
- See [the reference guide](references/REFERENCE.md) for details.
141
+ See the API reference at `references/api-reference.md` for details.
142
142
  ```
143
143
 
144
144
  ## Frontmatter