indusagi-coding-agent 0.1.28 → 0.1.30
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 +23 -0
- package/LICENSE.md +22 -0
- package/README.md +2 -0
- package/dist/core/messages.d.ts +1 -76
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +1 -122
- package/dist/core/messages.js.map +1 -1
- package/dist/core/session-manager.d.ts +1 -447
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +1 -1203
- package/dist/core/session-manager.js.map +1 -1
- package/package.json +2 -2
- package/docs/COMPLETE-GUIDE.md +0 -300
- package/docs/COMPREHENSIVE-CLI-SUMMARY.md +0 -900
- package/docs/MODES-ARCHITECTURE.md +0 -565
- package/docs/PRINT-MODE-GUIDE.md +0 -456
- package/docs/README.md +0 -78
- package/docs/RPC-GUIDE.md +0 -705
- package/docs/UTILS-IMPLEMENTATION-SUMMARY.md +0 -647
- package/docs/UTILS-MODULE-OVERVIEW.md +0 -1480
- package/docs/UTILS-QA-CHECKLIST.md +0 -1061
- package/docs/UTILS-USAGE-GUIDE.md +0 -1419
- package/docs/compaction.md +0 -390
- package/docs/custom-provider.md +0 -538
- package/docs/development.md +0 -69
- package/docs/extensions.md +0 -1733
- package/docs/hooks.md +0 -378
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/json.md +0 -79
- package/docs/keybindings.md +0 -162
- package/docs/models.md +0 -193
- package/docs/packages.md +0 -163
- package/docs/prompt-templates.md +0 -67
- package/docs/providers.md +0 -147
- package/docs/rpc.md +0 -1048
- package/docs/sdk.md +0 -969
- package/docs/session.md +0 -412
- package/docs/settings.md +0 -219
- package/docs/shell-aliases.md +0 -13
- package/docs/skills.md +0 -226
- package/docs/subagents.md +0 -225
- package/docs/terminal-setup.md +0 -65
- package/docs/themes.md +0 -295
- package/docs/tree.md +0 -219
- package/docs/tui.md +0 -887
- package/docs/web-tools.md +0 -304
- package/docs/windows.md +0 -17
- package/examples/README.md +0 -25
- package/examples/extensions/README.md +0 -192
- package/examples/extensions/antigravity-image-gen.ts +0 -414
- package/examples/extensions/auto-commit-on-exit.ts +0 -49
- package/examples/extensions/bookmark.ts +0 -50
- package/examples/extensions/claude-rules.ts +0 -86
- package/examples/extensions/confirm-destructive.ts +0 -59
- package/examples/extensions/custom-compaction.ts +0 -115
- package/examples/extensions/custom-footer.ts +0 -65
- package/examples/extensions/custom-header.ts +0 -73
- package/examples/extensions/custom-provider-anthropic/index.ts +0 -605
- package/examples/extensions/custom-provider-anthropic/package-lock.json +0 -24
- package/examples/extensions/custom-provider-anthropic/package.json +0 -19
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +0 -350
- package/examples/extensions/custom-provider-gitlab-duo/package.json +0 -16
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -83
- package/examples/extensions/dirty-repo-guard.ts +0 -56
- package/examples/extensions/doom-overlay/README.md +0 -46
- package/examples/extensions/doom-overlay/doom/build/doom.js +0 -21
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +0 -152
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
- package/examples/extensions/doom-overlay/doom-component.ts +0 -133
- package/examples/extensions/doom-overlay/doom-engine.ts +0 -173
- package/examples/extensions/doom-overlay/doom-keys.ts +0 -105
- package/examples/extensions/doom-overlay/index.ts +0 -74
- package/examples/extensions/doom-overlay/wad-finder.ts +0 -51
- package/examples/extensions/event-bus.ts +0 -43
- package/examples/extensions/file-trigger.ts +0 -41
- package/examples/extensions/git-checkpoint.ts +0 -53
- package/examples/extensions/handoff.ts +0 -151
- package/examples/extensions/hello.ts +0 -25
- package/examples/extensions/inline-bash.ts +0 -94
- package/examples/extensions/input-transform.ts +0 -43
- package/examples/extensions/interactive-shell.ts +0 -196
- package/examples/extensions/mac-system-theme.ts +0 -47
- package/examples/extensions/message-renderer.ts +0 -60
- package/examples/extensions/modal-editor.ts +0 -86
- package/examples/extensions/model-status.ts +0 -31
- package/examples/extensions/notify.ts +0 -25
- package/examples/extensions/overlay-qa-tests.ts +0 -882
- package/examples/extensions/overlay-test.ts +0 -151
- package/examples/extensions/permission-gate.ts +0 -34
- package/examples/extensions/pirate.ts +0 -47
- package/examples/extensions/plan-mode/README.md +0 -65
- package/examples/extensions/plan-mode/index.ts +0 -341
- package/examples/extensions/plan-mode/utils.ts +0 -168
- package/examples/extensions/preset.ts +0 -399
- package/examples/extensions/protected-paths.ts +0 -30
- package/examples/extensions/qna.ts +0 -120
- package/examples/extensions/question.ts +0 -265
- package/examples/extensions/questionnaire.ts +0 -428
- package/examples/extensions/rainbow-editor.ts +0 -88
- package/examples/extensions/sandbox/index.ts +0 -318
- package/examples/extensions/sandbox/package-lock.json +0 -92
- package/examples/extensions/sandbox/package.json +0 -19
- package/examples/extensions/send-user-message.ts +0 -97
- package/examples/extensions/session-name.ts +0 -27
- package/examples/extensions/shutdown-command.ts +0 -63
- package/examples/extensions/snake.ts +0 -344
- package/examples/extensions/space-invaders.ts +0 -561
- package/examples/extensions/ssh.ts +0 -220
- package/examples/extensions/status-line.ts +0 -40
- package/examples/extensions/subagent/README.md +0 -172
- package/examples/extensions/subagent/agents/planner.md +0 -37
- package/examples/extensions/subagent/agents/reviewer.md +0 -35
- package/examples/extensions/subagent/agents/scout.md +0 -50
- package/examples/extensions/subagent/agents/worker.md +0 -24
- package/examples/extensions/subagent/agents.ts +0 -127
- package/examples/extensions/subagent/index.ts +0 -964
- package/examples/extensions/subagent/prompts/implement-and-review.md +0 -10
- package/examples/extensions/subagent/prompts/implement.md +0 -10
- package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -9
- package/examples/extensions/summarize.ts +0 -196
- package/examples/extensions/timed-confirm.ts +0 -70
- package/examples/extensions/todo.ts +0 -300
- package/examples/extensions/tool-override.ts +0 -144
- package/examples/extensions/tools.ts +0 -147
- package/examples/extensions/trigger-compact.ts +0 -40
- package/examples/extensions/truncated-tool.ts +0 -193
- package/examples/extensions/widget-placement.ts +0 -17
- package/examples/extensions/with-deps/index.ts +0 -36
- package/examples/extensions/with-deps/package-lock.json +0 -31
- package/examples/extensions/with-deps/package.json +0 -22
- package/examples/sdk/01-minimal.ts +0 -22
- package/examples/sdk/02-custom-model.ts +0 -50
- package/examples/sdk/03-custom-prompt.ts +0 -55
- package/examples/sdk/04-skills.ts +0 -46
- package/examples/sdk/05-tools.ts +0 -56
- package/examples/sdk/06-extensions.ts +0 -88
- package/examples/sdk/07-context-files.ts +0 -40
- package/examples/sdk/08-prompt-templates.ts +0 -47
- package/examples/sdk/09-api-keys-and-oauth.ts +0 -48
- package/examples/sdk/10-settings.ts +0 -38
- package/examples/sdk/11-sessions.ts +0 -48
- package/examples/sdk/12-full-control.ts +0 -82
- package/examples/sdk/13-codex-oauth.ts +0 -37
- package/examples/sdk/README.md +0 -144
package/docs/skills.md
DELETED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
> indusagi can create skills. Ask it to build one for your use case.
|
|
2
|
-
|
|
3
|
-
# Skills
|
|
4
|
-
|
|
5
|
-
Skills are self-contained capability packages that the agent loads on-demand. A skill provides specialized workflows, setup instructions, helper scripts, and reference documentation for specific tasks.
|
|
6
|
-
|
|
7
|
-
Indusagi implements the [Agent Skills standard](https://agentskills.io/specification), warning about violations but remaining lenient.
|
|
8
|
-
|
|
9
|
-
## Table of Contents
|
|
10
|
-
|
|
11
|
-
- [Locations](#locations)
|
|
12
|
-
- [How Skills Work](#how-skills-work)
|
|
13
|
-
- [Skill Commands](#skill-commands)
|
|
14
|
-
- [Skill Structure](#skill-structure)
|
|
15
|
-
- [Frontmatter](#frontmatter)
|
|
16
|
-
- [Validation](#validation)
|
|
17
|
-
- [Example](#example)
|
|
18
|
-
- [Skill Repositories](#skill-repositories)
|
|
19
|
-
|
|
20
|
-
## Locations
|
|
21
|
-
|
|
22
|
-
> **Security:** Skills can instruct the model to perform any action and may include executable code the model invokes. Review skill content before use.
|
|
23
|
-
|
|
24
|
-
Indusagi loads skills from:
|
|
25
|
-
|
|
26
|
-
- Global: `~/.indusagi/agent/skills/`
|
|
27
|
-
- Project: `.indusagi/skills/`
|
|
28
|
-
- Packages: `skills/` directories or `indusagi.skills` entries in `package.json`
|
|
29
|
-
- Settings: `skills` array with files or directories
|
|
30
|
-
- CLI: `--skill <path>` (repeatable, additive even with `--no-skills`)
|
|
31
|
-
|
|
32
|
-
Discovery rules:
|
|
33
|
-
- Direct `.md` files in the skills directory root
|
|
34
|
-
- Recursive `SKILL.md` files under subdirectories
|
|
35
|
-
|
|
36
|
-
Disable discovery with `--no-skills` (explicit `--skill` paths still load).
|
|
37
|
-
|
|
38
|
-
### Using Skills from Other Harnesses
|
|
39
|
-
|
|
40
|
-
To use skills from Claude Code or OpenAI Codex, add their directories to settings:
|
|
41
|
-
|
|
42
|
-
```json
|
|
43
|
-
{
|
|
44
|
-
"skills": [
|
|
45
|
-
"~/.claude/skills",
|
|
46
|
-
"~/.codex/skills"
|
|
47
|
-
]
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
For project-level Claude Code skills, add to `.indusagi/settings.json`:
|
|
52
|
-
|
|
53
|
-
```json
|
|
54
|
-
{
|
|
55
|
-
"skills": ["../.claude/skills"]
|
|
56
|
-
}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## How Skills Work
|
|
60
|
-
|
|
61
|
-
1. At startup, indusagi scans skill locations and extracts names and descriptions
|
|
62
|
-
2. The system prompt includes available skills in XML format per the [specification](https://agentskills.io/integrate-skills)
|
|
63
|
-
3. When a task matches, the agent uses `read` to load the full SKILL.md (models don't always do this; use prompting or `/skill:name` to force it)
|
|
64
|
-
4. The agent follows the instructions, using relative paths to reference scripts and assets
|
|
65
|
-
|
|
66
|
-
This is progressive disclosure: only descriptions are always in context, full instructions load on-demand.
|
|
67
|
-
|
|
68
|
-
## Skill Commands
|
|
69
|
-
|
|
70
|
-
Skills register as `/skill:name` commands:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
/skill:brave-search # Load and execute the skill
|
|
74
|
-
/skill:pdf-tools extract # Load skill with arguments
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Arguments after the command are appended to the skill content as `User: <args>`.
|
|
78
|
-
|
|
79
|
-
Toggle skill commands via `/settings` in interactive mode or in `settings.json`:
|
|
80
|
-
|
|
81
|
-
```json
|
|
82
|
-
{
|
|
83
|
-
"enableSkillCommands": true
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Skill Structure
|
|
88
|
-
|
|
89
|
-
A skill is a directory with a `SKILL.md` file. Everything else is freeform.
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
my-skill/
|
|
93
|
-
├── SKILL.md # Required: frontmatter + instructions
|
|
94
|
-
├── scripts/ # Helper scripts
|
|
95
|
-
│ └── process.sh
|
|
96
|
-
├── references/ # Detailed docs loaded on-demand
|
|
97
|
-
│ └── api-reference.md
|
|
98
|
-
└── assets/
|
|
99
|
-
└── template.json
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### SKILL.md Format
|
|
103
|
-
|
|
104
|
-
```markdown
|
|
105
|
-
---
|
|
106
|
-
name: my-skill
|
|
107
|
-
description: What this skill does and when to use it. Be specific.
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
# My Skill
|
|
111
|
-
|
|
112
|
-
## Setup
|
|
113
|
-
|
|
114
|
-
Run once before first use:
|
|
115
|
-
\`\`\`bash
|
|
116
|
-
cd /path/to/skill && npm install
|
|
117
|
-
\`\`\`
|
|
118
|
-
|
|
119
|
-
## Usage
|
|
120
|
-
|
|
121
|
-
\`\`\`bash
|
|
122
|
-
./scripts/process.sh <input>
|
|
123
|
-
\`\`\`
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
Use relative paths from the skill directory:
|
|
127
|
-
|
|
128
|
-
```markdown
|
|
129
|
-
See [the reference guide](references/REFERENCE.md) for details.
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## Frontmatter
|
|
133
|
-
|
|
134
|
-
Per the [Agent Skills specification](https://agentskills.io/specification#frontmatter-required):
|
|
135
|
-
|
|
136
|
-
| Field | Required | Description |
|
|
137
|
-
|-------|----------|-------------|
|
|
138
|
-
| `name` | Yes | Max 64 chars. Lowercase a-z, 0-9, hyphens. Must match parent directory. |
|
|
139
|
-
| `description` | Yes | Max 1024 chars. What the skill does and when to use it. |
|
|
140
|
-
| `license` | No | License name or reference to bundled file. |
|
|
141
|
-
| `compatibility` | No | Max 500 chars. Environment requirements. |
|
|
142
|
-
| `metadata` | No | Arbitrary key-value mapping. |
|
|
143
|
-
| `allowed-tools` | No | Space-delimited list of pre-approved tools (experimental). |
|
|
144
|
-
| `disable-model-invocation` | No | When `true`, skill is hidden from system prompt. Users must use `/skill:name`. |
|
|
145
|
-
|
|
146
|
-
### Name Rules
|
|
147
|
-
|
|
148
|
-
- 1-64 characters
|
|
149
|
-
- Lowercase letters, numbers, hyphens only
|
|
150
|
-
- No leading/trailing hyphens
|
|
151
|
-
- No consecutive hyphens
|
|
152
|
-
- Must match parent directory name
|
|
153
|
-
|
|
154
|
-
Valid: `pdf-processing`, `data-analysis`, `code-review`
|
|
155
|
-
Invalid: `PDF-Processing`, `-pdf`, `pdf--processing`
|
|
156
|
-
|
|
157
|
-
### Description Best Practices
|
|
158
|
-
|
|
159
|
-
The description determines when the agent loads the skill. Be specific.
|
|
160
|
-
|
|
161
|
-
Good:
|
|
162
|
-
```yaml
|
|
163
|
-
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents.
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
Poor:
|
|
167
|
-
```yaml
|
|
168
|
-
description: Helps with PDFs.
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
## Validation
|
|
172
|
-
|
|
173
|
-
Indusagi validates skills against the Agent Skills standard. Most issues produce warnings but still load the skill:
|
|
174
|
-
|
|
175
|
-
- Name doesn't match parent directory
|
|
176
|
-
- Name exceeds 64 characters or contains invalid characters
|
|
177
|
-
- Name starts/ends with hyphen or has consecutive hyphens
|
|
178
|
-
- Description exceeds 1024 characters
|
|
179
|
-
- Unknown frontmatter fields
|
|
180
|
-
|
|
181
|
-
**Exception:** Skills with missing description are not loaded.
|
|
182
|
-
|
|
183
|
-
Name collisions (same name from different locations) warn and keep the first skill found.
|
|
184
|
-
|
|
185
|
-
## Example
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
brave-search/
|
|
189
|
-
├── SKILL.md
|
|
190
|
-
├── search.js
|
|
191
|
-
└── content.js
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
**SKILL.md:**
|
|
195
|
-
```markdown
|
|
196
|
-
---
|
|
197
|
-
name: brave-search
|
|
198
|
-
description: Web search and content extraction via Brave Search API. Use for searching documentation, facts, or any web content.
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
# Brave Search
|
|
202
|
-
|
|
203
|
-
## Setup
|
|
204
|
-
|
|
205
|
-
\`\`\`bash
|
|
206
|
-
cd /path/to/brave-search && npm install
|
|
207
|
-
\`\`\`
|
|
208
|
-
|
|
209
|
-
## Search
|
|
210
|
-
|
|
211
|
-
\`\`\`bash
|
|
212
|
-
./search.js "query" # Basic search
|
|
213
|
-
./search.js "query" --content # Include page content
|
|
214
|
-
\`\`\`
|
|
215
|
-
|
|
216
|
-
## Extract Page Content
|
|
217
|
-
|
|
218
|
-
\`\`\`bash
|
|
219
|
-
./content.js https://example.com
|
|
220
|
-
\`\`\`
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
## Skill Repositories
|
|
224
|
-
|
|
225
|
-
- [Anthropic Skills](https://github.com/anthropics/skills) - Document processing (docx, pdf, pptx, xlsx), web development
|
|
226
|
-
- [Indusagi Skills](https://github.com/badlogic/indusagi-skills) - Web search, browser automation, Google APIs, transcription
|
package/docs/subagents.md
DELETED
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
# Subagents
|
|
2
|
-
|
|
3
|
-
Subagents are specialized agents that run in isolated contexts with their own system prompts, tools, and model configurations. They're useful for delegating complex or multi-step tasks while keeping the primary context clean.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The subagent system consists of:
|
|
8
|
-
|
|
9
|
-
- **Task Tool** - Built-in `task` tool that the LLM can call to spawn subagents
|
|
10
|
-
- **Subagent Definitions** - Markdown files defining subagent behavior, tools, and model
|
|
11
|
-
- **SubagentStore** - Discovers and manages available subagent definitions
|
|
12
|
-
|
|
13
|
-
## Using Subagents
|
|
14
|
-
|
|
15
|
-
The LLM can spawn subagents via the `task` tool:
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
Use the explore subagent to search for authentication-related code
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
The task tool parameters:
|
|
22
|
-
|
|
23
|
-
| Parameter | Type | Description |
|
|
24
|
-
|-----------|------|-------------|
|
|
25
|
-
| `description` | string | Short (3-5 words) description of the task |
|
|
26
|
-
| `prompt` | string | The task for the subagent to perform |
|
|
27
|
-
| `subagent_type` | string | Type of subagent (e.g., "general", "explore") |
|
|
28
|
-
| `task_id` | string? | Resume a previous task by ID |
|
|
29
|
-
|
|
30
|
-
## Built-in Subagents
|
|
31
|
-
|
|
32
|
-
### general
|
|
33
|
-
|
|
34
|
-
General-purpose subagent for multi-step tasks and research.
|
|
35
|
-
|
|
36
|
-
- **Tools**: read, bash, edit, write, grep, find, ls
|
|
37
|
-
- **Mode**: subagent only
|
|
38
|
-
|
|
39
|
-
### explore
|
|
40
|
-
|
|
41
|
-
Specialized in codebase exploration and search.
|
|
42
|
-
|
|
43
|
-
- **Tools**: read, grep, find, ls (read-only)
|
|
44
|
-
- **Mode**: subagent only
|
|
45
|
-
|
|
46
|
-
## Custom Subagent Definitions
|
|
47
|
-
|
|
48
|
-
Create subagent definitions in:
|
|
49
|
-
|
|
50
|
-
- **Global**: `~/.indusagi/agent/agents/*.md`
|
|
51
|
-
- **Project**: `.indusagi/agents/*.md`
|
|
52
|
-
|
|
53
|
-
### Definition Format
|
|
54
|
-
|
|
55
|
-
```markdown
|
|
56
|
-
---
|
|
57
|
-
name: my-agent
|
|
58
|
-
description: What this agent does and when to use it
|
|
59
|
-
tools: read, grep, find, ls
|
|
60
|
-
model: anthropic/claude-sonnet-4-5
|
|
61
|
-
thinkingLevel: medium
|
|
62
|
-
mode: subagent
|
|
63
|
-
hidden: false
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
System prompt for the agent goes here. This becomes the subagent's
|
|
67
|
-
system prompt, replacing the default.
|
|
68
|
-
|
|
69
|
-
Use this space to define:
|
|
70
|
-
- The agent's specialization
|
|
71
|
-
- How it should approach tasks
|
|
72
|
-
- Output format expectations
|
|
73
|
-
- Any constraints or guidelines
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Frontmatter Fields
|
|
77
|
-
|
|
78
|
-
| Field | Required | Description |
|
|
79
|
-
|-------|----------|-------------|
|
|
80
|
-
| `name` | Yes | Unique identifier (lowercase, hyphens allowed) |
|
|
81
|
-
| `description` | No | Brief description of the agent's purpose |
|
|
82
|
-
| `tools` | No | Comma-separated list of tools: `read, bash, edit, write, grep, find, ls` |
|
|
83
|
-
| `model` | No | Model in `provider/id` format (e.g., `anthropic/claude-sonnet-4-5`) |
|
|
84
|
-
| `thinkingLevel` | No | Thinking level: `off`, `minimal`, `low`, `medium`, `high`, `xhigh` |
|
|
85
|
-
| `mode` | No | Visibility: `subagent` (default), `primary`, `all` |
|
|
86
|
-
| `hidden` | No | Hide from LLM discovery (default: `false`) |
|
|
87
|
-
|
|
88
|
-
### Mode Values
|
|
89
|
-
|
|
90
|
-
| Mode | Description |
|
|
91
|
-
|------|-------------|
|
|
92
|
-
| `subagent` | Only available as a subagent via task tool (default) |
|
|
93
|
-
| `primary` | Only available as primary agent (not as subagent) |
|
|
94
|
-
| `all` | Available in both contexts |
|
|
95
|
-
|
|
96
|
-
### Tool Options
|
|
97
|
-
|
|
98
|
-
Available tools for subagents:
|
|
99
|
-
|
|
100
|
-
| Tool | Description |
|
|
101
|
-
|------|-------------|
|
|
102
|
-
| `read` | Read file contents |
|
|
103
|
-
| `bash` | Execute shell commands |
|
|
104
|
-
| `edit` | Edit files by replacing text |
|
|
105
|
-
| `write` | Create or overwrite files |
|
|
106
|
-
| `grep` | Search file contents |
|
|
107
|
-
| `find` | Find files by pattern |
|
|
108
|
-
| `ls` | List directory contents |
|
|
109
|
-
|
|
110
|
-
## SubagentStore API
|
|
111
|
-
|
|
112
|
-
For programmatic access:
|
|
113
|
-
|
|
114
|
-
```typescript
|
|
115
|
-
import { SubagentStore } from "indusagi-coding-agent";
|
|
116
|
-
|
|
117
|
-
const store = new SubagentStore({
|
|
118
|
-
cwd: process.cwd(),
|
|
119
|
-
agentDir: "~/.indusagi/agent",
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
// List all available subagents
|
|
123
|
-
const agents = store.list();
|
|
124
|
-
// [{ name: "general", description: "...", tools: [...], ... }, ...]
|
|
125
|
-
|
|
126
|
-
// Get specific subagent
|
|
127
|
-
const agent = store.get("explore");
|
|
128
|
-
|
|
129
|
-
// Refresh after adding new definitions
|
|
130
|
-
store.refresh();
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
## How It Works
|
|
134
|
-
|
|
135
|
-
1. **Discovery**: SubagentStore scans `agents/` directories for `.md` files
|
|
136
|
-
2. **Registration**: Available subagents are listed in the task tool description
|
|
137
|
-
3. **Invocation**: When the LLM calls the task tool, a new `indusagi` subprocess is spawned
|
|
138
|
-
4. **Isolation**: The subagent runs with its own context, system prompt, and tool set
|
|
139
|
-
5. **Streaming**: Progress updates stream back to the primary session
|
|
140
|
-
6. **Completion**: Final result is returned to the primary agent
|
|
141
|
-
|
|
142
|
-
## Example: Code Review Agent
|
|
143
|
-
|
|
144
|
-
Create `.indusagi/agents/reviewer.md`:
|
|
145
|
-
|
|
146
|
-
```markdown
|
|
147
|
-
---
|
|
148
|
-
name: reviewer
|
|
149
|
-
description: Code review specialist. Use for reviewing pull requests, patches, or changes.
|
|
150
|
-
tools: read, grep, find, ls, bash
|
|
151
|
-
model: anthropic/claude-sonnet-4-5
|
|
152
|
-
---
|
|
153
|
-
|
|
154
|
-
You are a code review specialist. Your job is to:
|
|
155
|
-
|
|
156
|
-
1. Review code changes for correctness, security, and best practices
|
|
157
|
-
2. Identify potential bugs, performance issues, or code smells
|
|
158
|
-
3. Suggest improvements with specific, actionable feedback
|
|
159
|
-
4. Check for proper error handling and edge cases
|
|
160
|
-
|
|
161
|
-
Output format:
|
|
162
|
-
- Summary of changes reviewed
|
|
163
|
-
- Critical issues (if any)
|
|
164
|
-
- Suggestions for improvement
|
|
165
|
-
- Overall assessment
|
|
166
|
-
|
|
167
|
-
Be thorough but concise. Focus on actionable feedback.
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Use it:
|
|
171
|
-
|
|
172
|
-
```
|
|
173
|
-
Have the reviewer agent review the changes in src/auth/login.ts
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
## Example: Documentation Agent
|
|
177
|
-
|
|
178
|
-
Create `~/.indusagi/agent/agents/docs-writer.md`:
|
|
179
|
-
|
|
180
|
-
```markdown
|
|
181
|
-
---
|
|
182
|
-
name: docs-writer
|
|
183
|
-
description: Technical documentation writer. Use for creating or updating documentation.
|
|
184
|
-
tools: read, grep, find, ls, write
|
|
185
|
-
model: anthropic/claude-sonnet-4-5
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
You are a technical documentation specialist. Write clear, comprehensive documentation.
|
|
189
|
-
|
|
190
|
-
Guidelines:
|
|
191
|
-
- Use proper markdown formatting
|
|
192
|
-
- Include code examples where helpful
|
|
193
|
-
- Structure with clear headings and sections
|
|
194
|
-
- Add usage examples and common patterns
|
|
195
|
-
- Document parameters, return values, and edge cases
|
|
196
|
-
|
|
197
|
-
Do not modify code files - only create or update documentation (.md files).
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
## Task Tool in SDK
|
|
201
|
-
|
|
202
|
-
When creating tools programmatically:
|
|
203
|
-
|
|
204
|
-
```typescript
|
|
205
|
-
import { createTaskTool, SubagentStore } from "indusagi-coding-agent";
|
|
206
|
-
|
|
207
|
-
const subagentStore = new SubagentStore({ cwd: process.cwd() });
|
|
208
|
-
|
|
209
|
-
const taskTool = createTaskTool({
|
|
210
|
-
cwd: process.cwd(),
|
|
211
|
-
settingsManager,
|
|
212
|
-
modelRegistry,
|
|
213
|
-
subagentStore,
|
|
214
|
-
getDefaultModel: () => model,
|
|
215
|
-
getDefaultThinkingLevel: () => "medium",
|
|
216
|
-
contextFiles: [],
|
|
217
|
-
skills: [],
|
|
218
|
-
});
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
## Related
|
|
222
|
-
|
|
223
|
-
- [SDK Documentation](sdk.md) - Programmatic usage
|
|
224
|
-
- [Extensions](extensions.md) - Building custom extensions
|
|
225
|
-
- [Skills](skills.md) - On-demand capability packages
|
package/docs/terminal-setup.md
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# Terminal Setup
|
|
2
|
-
|
|
3
|
-
Indusagi uses the [Kitty keyboard protocol](https://sw.kovidgoyal.net/kitty/keyboard-protocol/) for reliable modifier key detection. Most modern terminals support this protocol, but some require configuration.
|
|
4
|
-
|
|
5
|
-
## Kitty, iTerm2
|
|
6
|
-
|
|
7
|
-
Work out of the box.
|
|
8
|
-
|
|
9
|
-
## Ghostty
|
|
10
|
-
|
|
11
|
-
Add to your Ghostty config (`~/.config/ghostty/config`):
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
keybind = alt+backspace=text:\x1b\x7f
|
|
15
|
-
keybind = shift+enter=text:\n
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## WezTerm
|
|
19
|
-
|
|
20
|
-
Create `~/.wezterm.lua`:
|
|
21
|
-
|
|
22
|
-
```lua
|
|
23
|
-
local wezterm = require 'wezterm'
|
|
24
|
-
local config = wezterm.config_builder()
|
|
25
|
-
config.enable_kitty_keyboard = true
|
|
26
|
-
return config
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## VS Code (Integrated Terminal)
|
|
30
|
-
|
|
31
|
-
Add to `keybindings.json` to enable `Shift+Enter` for multi-line input:
|
|
32
|
-
|
|
33
|
-
```json
|
|
34
|
-
{
|
|
35
|
-
"key": "shift+enter",
|
|
36
|
-
"command": "workbench.action.terminal.sendSequence",
|
|
37
|
-
"args": { "text": "\u001b[13;2u" },
|
|
38
|
-
"when": "terminalFocus"
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Windows Terminal
|
|
43
|
-
|
|
44
|
-
Add to `settings.json` (Ctrl+Shift+, or Settings → Open JSON file):
|
|
45
|
-
|
|
46
|
-
```json
|
|
47
|
-
{
|
|
48
|
-
"actions": [
|
|
49
|
-
{
|
|
50
|
-
"command": { "action": "sendInput", "input": "\u001b[13;2u" },
|
|
51
|
-
"keys": "shift+enter"
|
|
52
|
-
}
|
|
53
|
-
]
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
If you already have an `actions` array, add the object to it.
|
|
58
|
-
|
|
59
|
-
## IntelliJ IDEA (Integrated Terminal)
|
|
60
|
-
|
|
61
|
-
The built-in terminal has limited escape sequence support. Shift+Enter cannot be distinguished from Enter in IntelliJ's terminal.
|
|
62
|
-
|
|
63
|
-
If you want the hardware cursor visible, set `INDUSAGI_HARDWARE_CURSOR=1` before running indusagi (disabled by default for compatibility).
|
|
64
|
-
|
|
65
|
-
Consider using a dedicated terminal emulator for the best experience.
|