@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.
- package/CHANGELOG.md +29 -0
- package/README.md +0 -8
- package/dist/builtin/intercom/CHANGELOG.md +5 -0
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/mcp/CHANGELOG.md +5 -0
- package/dist/builtin/mcp/index.ts +4 -8
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +2 -0
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/skills/tmux/SKILL.md +220 -0
- package/dist/builtin/subagents/skills/tmux/scripts/find-sessions.sh +112 -0
- package/dist/builtin/subagents/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/dist/builtin/web-access/CHANGELOG.md +5 -0
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +12 -1
- package/dist/builtin/workflows/README.md +3 -1
- package/dist/builtin/workflows/builtin/ralph.ts +222 -295
- package/dist/builtin/workflows/package.json +1 -1
- package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +20 -11
- package/dist/builtin/workflows/src/extension/index.ts +1 -0
- package/dist/builtin/workflows/src/extension/status-writer.ts +18 -3
- package/dist/builtin/workflows/src/runs/background/runner.ts +8 -10
- package/dist/builtin/workflows/src/runs/foreground/executor.ts +484 -91
- package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +13 -2
- package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +41 -15
- package/dist/builtin/workflows/src/runs/shared/graph-inference.ts +31 -0
- package/dist/builtin/workflows/src/runs/shared/prompt-callsite.ts +98 -0
- package/dist/builtin/workflows/src/shared/persistence-restore.ts +3 -1
- package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +4 -0
- package/dist/builtin/workflows/src/shared/store-types.ts +12 -1
- package/dist/builtin/workflows/src/shared/store.ts +77 -3
- package/dist/builtin/workflows/src/tui/graph-view.ts +17 -1
- package/dist/builtin/workflows/src/tui/prompt-card.ts +185 -30
- package/dist/builtin/workflows/src/tui/stage-chat-view.ts +386 -21
- package/docs/changelog.mdx +41 -14
- package/docs/docs.json +1 -0
- package/docs/extensions.md +19 -19
- package/docs/images/workflow-input-picker.png +0 -0
- package/docs/images/workflow-list.png +0 -0
- package/docs/index.md +33 -27
- package/docs/providers.md +2 -2
- package/docs/quickstart.md +15 -15
- package/docs/sdk.md +8 -8
- package/docs/sessions.md +5 -5
- package/docs/settings.md +27 -1
- package/docs/skills.md +2 -2
- package/docs/subagents.md +157 -0
- package/docs/usage.md +7 -7
- package/docs/windows.md +8 -0
- package/docs/workflows.md +62 -9
- package/package.json +2 -1
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -3
package/docs/extensions.md
CHANGED
|
@@ -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
|
|
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
|
|
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 [
|
|
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
|
|
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
|
|
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 [
|
|
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
|
|
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 [
|
|
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
|
|
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 [
|
|
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 [
|
|
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 [
|
|
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 [
|
|
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 [
|
|
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 [
|
|
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 [
|
|
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 [
|
|
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 [
|
|
2525
|
-
| JSON (`--mode json`) | No-op | Event stream to stdout, see [
|
|
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
|
|
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
|
|
37
|
+
For the full first-run flow, see [Quickstart](/quickstart).
|
|
33
38
|
|
|
34
39
|
## Start here
|
|
35
40
|
|
|
36
|
-
- [Quickstart](quickstart
|
|
37
|
-
- [Using Atomic](usage
|
|
38
|
-
- [Providers](providers
|
|
39
|
-
- [Settings](settings
|
|
40
|
-
- [Keybindings](keybindings
|
|
41
|
-
- [Sessions](sessions
|
|
42
|
-
- [Compaction](compaction
|
|
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
|
|
47
|
-
- [Skills](skills
|
|
48
|
-
- [
|
|
49
|
-
- [
|
|
50
|
-
- [
|
|
51
|
-
- [
|
|
52
|
-
- [
|
|
53
|
-
- [Custom
|
|
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
|
|
58
|
-
- [RPC mode](rpc
|
|
59
|
-
- [JSON event stream mode](json
|
|
60
|
-
- [TUI components](tui
|
|
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
|
|
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
|
|
69
|
-
- [Termux on Android](termux
|
|
70
|
-
- [tmux](tmux
|
|
71
|
-
- [Terminal setup](terminal-setup
|
|
72
|
-
- [Shell aliases](shell-aliases
|
|
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
|
|
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
|
|
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 [
|
|
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
|
|
package/docs/quickstart.md
CHANGED
|
@@ -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
|
|
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
|
|
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 →
|
|
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
|
|
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
|
|
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
|
|
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
|
|
233
|
-
- [Workflows](workflows
|
|
234
|
-
- [Skills](skills
|
|
235
|
-
- [Providers](providers
|
|
236
|
-
- [Settings](settings
|
|
237
|
-
- [Keybindings](keybindings
|
|
238
|
-
- [Atomic Packages](packages
|
|
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
|
|
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
|
-
>
|
|
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 [
|
|
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 [
|
|
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
|
|
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
|
|
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
|
-
|
|
1084
|
+
atomic --mode rpc --no-session
|
|
1085
1085
|
```
|
|
1086
1086
|
|
|
1087
|
-
See [RPC documentation](rpc
|
|
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 [
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
141
|
+
See the API reference at `references/api-reference.md` for details.
|
|
142
142
|
```
|
|
143
143
|
|
|
144
144
|
## Frontmatter
|