indusagi-coding-agent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/CHANGELOG.md +2249 -0
  2. package/README.md +546 -0
  3. package/dist/cli/args.js +282 -0
  4. package/dist/cli/config-selector.js +30 -0
  5. package/dist/cli/file-processor.js +78 -0
  6. package/dist/cli/list-models.js +91 -0
  7. package/dist/cli/session-picker.js +31 -0
  8. package/dist/cli.js +10 -0
  9. package/dist/config.js +158 -0
  10. package/dist/core/agent-session.js +2097 -0
  11. package/dist/core/auth-storage.js +278 -0
  12. package/dist/core/bash-executor.js +211 -0
  13. package/dist/core/compaction/branch-summarization.js +241 -0
  14. package/dist/core/compaction/compaction.js +606 -0
  15. package/dist/core/compaction/index.js +6 -0
  16. package/dist/core/compaction/utils.js +137 -0
  17. package/dist/core/diagnostics.js +1 -0
  18. package/dist/core/event-bus.js +24 -0
  19. package/dist/core/exec.js +70 -0
  20. package/dist/core/export-html/ansi-to-html.js +248 -0
  21. package/dist/core/export-html/index.js +221 -0
  22. package/dist/core/export-html/template.css +905 -0
  23. package/dist/core/export-html/template.html +54 -0
  24. package/dist/core/export-html/template.js +1549 -0
  25. package/dist/core/export-html/tool-renderer.js +56 -0
  26. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  27. package/dist/core/export-html/vendor/marked.min.js +6 -0
  28. package/dist/core/extensions/index.js +8 -0
  29. package/dist/core/extensions/loader.js +395 -0
  30. package/dist/core/extensions/runner.js +499 -0
  31. package/dist/core/extensions/types.js +31 -0
  32. package/dist/core/extensions/wrapper.js +101 -0
  33. package/dist/core/footer-data-provider.js +133 -0
  34. package/dist/core/index.js +8 -0
  35. package/dist/core/keybindings.js +140 -0
  36. package/dist/core/messages.js +122 -0
  37. package/dist/core/model-registry.js +454 -0
  38. package/dist/core/model-resolver.js +309 -0
  39. package/dist/core/package-manager.js +1142 -0
  40. package/dist/core/prompt-templates.js +250 -0
  41. package/dist/core/resource-loader.js +569 -0
  42. package/dist/core/sdk.js +225 -0
  43. package/dist/core/session-manager.js +1078 -0
  44. package/dist/core/settings-manager.js +430 -0
  45. package/dist/core/skills.js +339 -0
  46. package/dist/core/system-prompt.js +136 -0
  47. package/dist/core/timings.js +24 -0
  48. package/dist/core/tools/bash.js +226 -0
  49. package/dist/core/tools/edit-diff.js +242 -0
  50. package/dist/core/tools/edit.js +145 -0
  51. package/dist/core/tools/find.js +205 -0
  52. package/dist/core/tools/grep.js +238 -0
  53. package/dist/core/tools/index.js +60 -0
  54. package/dist/core/tools/ls.js +117 -0
  55. package/dist/core/tools/path-utils.js +52 -0
  56. package/dist/core/tools/read.js +165 -0
  57. package/dist/core/tools/truncate.js +204 -0
  58. package/dist/core/tools/write.js +77 -0
  59. package/dist/index.js +41 -0
  60. package/dist/main.js +565 -0
  61. package/dist/migrations.js +260 -0
  62. package/dist/modes/index.js +7 -0
  63. package/dist/modes/interactive/components/armin.js +328 -0
  64. package/dist/modes/interactive/components/assistant-message.js +86 -0
  65. package/dist/modes/interactive/components/bash-execution.js +155 -0
  66. package/dist/modes/interactive/components/bordered-loader.js +47 -0
  67. package/dist/modes/interactive/components/branch-summary-message.js +41 -0
  68. package/dist/modes/interactive/components/compaction-summary-message.js +42 -0
  69. package/dist/modes/interactive/components/config-selector.js +458 -0
  70. package/dist/modes/interactive/components/countdown-timer.js +27 -0
  71. package/dist/modes/interactive/components/custom-editor.js +61 -0
  72. package/dist/modes/interactive/components/custom-message.js +80 -0
  73. package/dist/modes/interactive/components/diff.js +132 -0
  74. package/dist/modes/interactive/components/dynamic-border.js +19 -0
  75. package/dist/modes/interactive/components/extension-editor.js +96 -0
  76. package/dist/modes/interactive/components/extension-input.js +54 -0
  77. package/dist/modes/interactive/components/extension-selector.js +70 -0
  78. package/dist/modes/interactive/components/footer.js +213 -0
  79. package/dist/modes/interactive/components/index.js +31 -0
  80. package/dist/modes/interactive/components/keybinding-hints.js +60 -0
  81. package/dist/modes/interactive/components/login-dialog.js +138 -0
  82. package/dist/modes/interactive/components/model-selector.js +253 -0
  83. package/dist/modes/interactive/components/oauth-selector.js +91 -0
  84. package/dist/modes/interactive/components/scoped-models-selector.js +262 -0
  85. package/dist/modes/interactive/components/session-selector-search.js +145 -0
  86. package/dist/modes/interactive/components/session-selector.js +698 -0
  87. package/dist/modes/interactive/components/settings-selector.js +250 -0
  88. package/dist/modes/interactive/components/show-images-selector.js +33 -0
  89. package/dist/modes/interactive/components/skill-invocation-message.js +44 -0
  90. package/dist/modes/interactive/components/theme-selector.js +43 -0
  91. package/dist/modes/interactive/components/thinking-selector.js +45 -0
  92. package/dist/modes/interactive/components/tool-execution.js +608 -0
  93. package/dist/modes/interactive/components/tree-selector.js +892 -0
  94. package/dist/modes/interactive/components/user-message-selector.js +109 -0
  95. package/dist/modes/interactive/components/user-message.js +15 -0
  96. package/dist/modes/interactive/components/visual-truncate.js +32 -0
  97. package/dist/modes/interactive/interactive-mode.js +3576 -0
  98. package/dist/modes/interactive/theme/dark.json +85 -0
  99. package/dist/modes/interactive/theme/light.json +84 -0
  100. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  101. package/dist/modes/interactive/theme/theme.js +938 -0
  102. package/dist/modes/print-mode.js +96 -0
  103. package/dist/modes/rpc/rpc-client.js +390 -0
  104. package/dist/modes/rpc/rpc-mode.js +448 -0
  105. package/dist/modes/rpc/rpc-types.js +7 -0
  106. package/dist/utils/changelog.js +86 -0
  107. package/dist/utils/clipboard-image.js +116 -0
  108. package/dist/utils/clipboard.js +58 -0
  109. package/dist/utils/frontmatter.js +25 -0
  110. package/dist/utils/git.js +5 -0
  111. package/dist/utils/image-convert.js +34 -0
  112. package/dist/utils/image-resize.js +180 -0
  113. package/dist/utils/mime.js +25 -0
  114. package/dist/utils/photon.js +120 -0
  115. package/dist/utils/shell.js +164 -0
  116. package/dist/utils/sleep.js +16 -0
  117. package/dist/utils/tools-manager.js +186 -0
  118. package/docs/compaction.md +390 -0
  119. package/docs/custom-provider.md +538 -0
  120. package/docs/development.md +69 -0
  121. package/docs/extensions.md +1733 -0
  122. package/docs/images/doom-extension.png +0 -0
  123. package/docs/images/interactive-mode.png +0 -0
  124. package/docs/images/tree-view.png +0 -0
  125. package/docs/json.md +79 -0
  126. package/docs/keybindings.md +162 -0
  127. package/docs/models.md +193 -0
  128. package/docs/packages.md +163 -0
  129. package/docs/prompt-templates.md +67 -0
  130. package/docs/providers.md +147 -0
  131. package/docs/rpc.md +1048 -0
  132. package/docs/sdk.md +957 -0
  133. package/docs/session.md +412 -0
  134. package/docs/settings.md +216 -0
  135. package/docs/shell-aliases.md +13 -0
  136. package/docs/skills.md +226 -0
  137. package/docs/terminal-setup.md +65 -0
  138. package/docs/themes.md +295 -0
  139. package/docs/tree.md +219 -0
  140. package/docs/tui.md +887 -0
  141. package/docs/windows.md +17 -0
  142. package/examples/README.md +25 -0
  143. package/examples/extensions/README.md +192 -0
  144. package/examples/extensions/antigravity-image-gen.ts +414 -0
  145. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  146. package/examples/extensions/bookmark.ts +50 -0
  147. package/examples/extensions/claude-rules.ts +86 -0
  148. package/examples/extensions/confirm-destructive.ts +59 -0
  149. package/examples/extensions/custom-compaction.ts +115 -0
  150. package/examples/extensions/custom-footer.ts +65 -0
  151. package/examples/extensions/custom-header.ts +73 -0
  152. package/examples/extensions/custom-provider-anthropic/index.ts +605 -0
  153. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  154. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  155. package/examples/extensions/custom-provider-gitlab-duo/index.ts +350 -0
  156. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  157. package/examples/extensions/custom-provider-gitlab-duo/test.ts +83 -0
  158. package/examples/extensions/dirty-repo-guard.ts +56 -0
  159. package/examples/extensions/doom-overlay/README.md +46 -0
  160. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  161. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  162. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  163. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  164. package/examples/extensions/doom-overlay/doom-component.ts +133 -0
  165. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  166. package/examples/extensions/doom-overlay/doom-keys.ts +105 -0
  167. package/examples/extensions/doom-overlay/index.ts +74 -0
  168. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  169. package/examples/extensions/event-bus.ts +43 -0
  170. package/examples/extensions/file-trigger.ts +41 -0
  171. package/examples/extensions/git-checkpoint.ts +53 -0
  172. package/examples/extensions/handoff.ts +151 -0
  173. package/examples/extensions/hello.ts +25 -0
  174. package/examples/extensions/inline-bash.ts +94 -0
  175. package/examples/extensions/input-transform.ts +43 -0
  176. package/examples/extensions/interactive-shell.ts +196 -0
  177. package/examples/extensions/mac-system-theme.ts +47 -0
  178. package/examples/extensions/message-renderer.ts +60 -0
  179. package/examples/extensions/modal-editor.ts +86 -0
  180. package/examples/extensions/model-status.ts +31 -0
  181. package/examples/extensions/notify.ts +25 -0
  182. package/examples/extensions/overlay-qa-tests.ts +882 -0
  183. package/examples/extensions/overlay-test.ts +151 -0
  184. package/examples/extensions/permission-gate.ts +34 -0
  185. package/examples/extensions/pirate.ts +47 -0
  186. package/examples/extensions/plan-mode/README.md +65 -0
  187. package/examples/extensions/plan-mode/index.ts +341 -0
  188. package/examples/extensions/plan-mode/utils.ts +168 -0
  189. package/examples/extensions/preset.ts +399 -0
  190. package/examples/extensions/protected-paths.ts +30 -0
  191. package/examples/extensions/qna.ts +120 -0
  192. package/examples/extensions/question.ts +265 -0
  193. package/examples/extensions/questionnaire.ts +428 -0
  194. package/examples/extensions/rainbow-editor.ts +88 -0
  195. package/examples/extensions/sandbox/index.ts +318 -0
  196. package/examples/extensions/sandbox/package-lock.json +92 -0
  197. package/examples/extensions/sandbox/package.json +19 -0
  198. package/examples/extensions/send-user-message.ts +97 -0
  199. package/examples/extensions/session-name.ts +27 -0
  200. package/examples/extensions/shutdown-command.ts +63 -0
  201. package/examples/extensions/snake.ts +344 -0
  202. package/examples/extensions/space-invaders.ts +561 -0
  203. package/examples/extensions/ssh.ts +220 -0
  204. package/examples/extensions/status-line.ts +40 -0
  205. package/examples/extensions/subagent/README.md +172 -0
  206. package/examples/extensions/subagent/agents/planner.md +37 -0
  207. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  208. package/examples/extensions/subagent/agents/scout.md +50 -0
  209. package/examples/extensions/subagent/agents/worker.md +24 -0
  210. package/examples/extensions/subagent/agents.ts +127 -0
  211. package/examples/extensions/subagent/index.ts +964 -0
  212. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  213. package/examples/extensions/subagent/prompts/implement.md +10 -0
  214. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  215. package/examples/extensions/summarize.ts +196 -0
  216. package/examples/extensions/timed-confirm.ts +70 -0
  217. package/examples/extensions/todo.ts +300 -0
  218. package/examples/extensions/tool-override.ts +144 -0
  219. package/examples/extensions/tools.ts +147 -0
  220. package/examples/extensions/trigger-compact.ts +40 -0
  221. package/examples/extensions/truncated-tool.ts +193 -0
  222. package/examples/extensions/widget-placement.ts +17 -0
  223. package/examples/extensions/with-deps/index.ts +36 -0
  224. package/examples/extensions/with-deps/package-lock.json +31 -0
  225. package/examples/extensions/with-deps/package.json +22 -0
  226. package/examples/sdk/01-minimal.ts +22 -0
  227. package/examples/sdk/02-custom-model.ts +50 -0
  228. package/examples/sdk/03-custom-prompt.ts +55 -0
  229. package/examples/sdk/04-skills.ts +46 -0
  230. package/examples/sdk/05-tools.ts +56 -0
  231. package/examples/sdk/06-extensions.ts +88 -0
  232. package/examples/sdk/07-context-files.ts +40 -0
  233. package/examples/sdk/08-prompt-templates.ts +47 -0
  234. package/examples/sdk/09-api-keys-and-oauth.ts +48 -0
  235. package/examples/sdk/10-settings.ts +38 -0
  236. package/examples/sdk/11-sessions.ts +48 -0
  237. package/examples/sdk/12-full-control.ts +82 -0
  238. package/examples/sdk/13-codex-oauth.ts +37 -0
  239. package/examples/sdk/README.md +144 -0
  240. package/package.json +85 -0
@@ -0,0 +1,144 @@
1
+ # SDK Examples
2
+
3
+ Programmatic usage of indusagi-coding-agent via `createAgentSession()`.
4
+
5
+ ## Examples
6
+
7
+ | File | Description |
8
+ |------|-------------|
9
+ | `01-minimal.ts` | Simplest usage with all defaults |
10
+ | `02-custom-model.ts` | Select model and thinking level |
11
+ | `03-custom-prompt.ts` | Replace or modify system prompt |
12
+ | `04-skills.ts` | Discover, filter, or replace skills |
13
+ | `05-tools.ts` | Built-in tools, custom tools |
14
+ | `06-extensions.ts` | Logging, blocking, result modification |
15
+ | `07-context-files.ts` | AGENTS.md context files |
16
+ | `08-slash-commands.ts` | File-based slash commands |
17
+ | `09-api-keys-and-oauth.ts` | API key resolution, OAuth config |
18
+ | `10-settings.ts` | Override compaction, retry, terminal settings |
19
+ | `11-sessions.ts` | In-memory, persistent, continue, list sessions |
20
+ | `12-full-control.ts` | Replace everything, no discovery |
21
+
22
+ ## Running
23
+
24
+ ```bash
25
+ cd packages/coding-agent
26
+ npx tsx examples/sdk/01-minimal.ts
27
+ ```
28
+
29
+ ## Quick Reference
30
+
31
+ ```typescript
32
+ import { getModel } from "indusagi-ai";
33
+ import {
34
+ AuthStorage,
35
+ createAgentSession,
36
+ DefaultResourceLoader,
37
+ ModelRegistry,
38
+ SessionManager,
39
+ SettingsManager,
40
+ codingTools,
41
+ readOnlyTools,
42
+ readTool, bashTool, editTool, writeTool,
43
+ } from "indusagi-coding-agent";
44
+
45
+ // Auth and models setup
46
+ const authStorage = new AuthStorage();
47
+ const modelRegistry = new ModelRegistry(authStorage);
48
+
49
+ // Minimal
50
+ const { session } = await createAgentSession({ authStorage, modelRegistry });
51
+
52
+ // Custom model
53
+ const model = getModel("anthropic", "claude-opus-4-5");
54
+ const { session } = await createAgentSession({ model, thinkingLevel: "high", authStorage, modelRegistry });
55
+
56
+ // Modify prompt
57
+ const loader = new DefaultResourceLoader({
58
+ systemPromptOverride: (base) => `${base}\n\nBe concise.`,
59
+ });
60
+ await loader.reload();
61
+ const { session } = await createAgentSession({ resourceLoader: loader, authStorage, modelRegistry });
62
+
63
+ // Read-only
64
+ const { session } = await createAgentSession({ tools: readOnlyTools, authStorage, modelRegistry });
65
+
66
+ // In-memory
67
+ const { session } = await createAgentSession({
68
+ sessionManager: SessionManager.inMemory(),
69
+ authStorage,
70
+ modelRegistry,
71
+ });
72
+
73
+ // Full control
74
+ const customAuth = new AuthStorage("/my/app/auth.json");
75
+ customAuth.setRuntimeApiKey("anthropic", process.env.MY_KEY!);
76
+ const customRegistry = new ModelRegistry(customAuth);
77
+
78
+ const resourceLoader = new DefaultResourceLoader({
79
+ systemPromptOverride: () => "You are helpful.",
80
+ extensionFactories: [myExtension],
81
+ skillsOverride: () => ({ skills: [], diagnostics: [] }),
82
+ agentsFilesOverride: () => ({ agentsFiles: [] }),
83
+ promptsOverride: () => ({ prompts: [], diagnostics: [] }),
84
+ });
85
+ await resourceLoader.reload();
86
+
87
+ const { session } = await createAgentSession({
88
+ model,
89
+ authStorage: customAuth,
90
+ modelRegistry: customRegistry,
91
+ resourceLoader,
92
+ tools: [readTool, bashTool],
93
+ customTools: [{ tool: myTool }],
94
+ sessionManager: SessionManager.inMemory(),
95
+ settingsManager: SettingsManager.inMemory(),
96
+ });
97
+
98
+ // Run prompts
99
+ session.subscribe((event) => {
100
+ if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
101
+ process.stdout.write(event.assistantMessageEvent.delta);
102
+ }
103
+ });
104
+ await session.prompt("Hello");
105
+ ```
106
+
107
+ ## Options
108
+
109
+ | Option | Default | Description |
110
+ |--------|---------|-------------|
111
+ | `authStorage` | `new AuthStorage()` | Credential storage |
112
+ | `modelRegistry` | `new ModelRegistry(authStorage)` | Model registry |
113
+ | `cwd` | `process.cwd()` | Working directory |
114
+ | `agentDir` | `~/.indusagi/agent` | Config directory |
115
+ | `model` | From settings/first available | Model to use |
116
+ | `thinkingLevel` | From settings/"off" | off, low, medium, high |
117
+ | `tools` | `codingTools` | Built-in tools |
118
+ | `customTools` | `[]` | Additional tool definitions |
119
+ | `resourceLoader` | DefaultResourceLoader | Resource loader for extensions, skills, prompts, themes |
120
+ | `sessionManager` | `SessionManager.create(cwd)` | Persistence |
121
+ | `settingsManager` | `SettingsManager.create(cwd, agentDir)` | Settings overrides |
122
+
123
+ ## Events
124
+
125
+ ```typescript
126
+ session.subscribe((event) => {
127
+ switch (event.type) {
128
+ case "message_update":
129
+ if (event.assistantMessageEvent.type === "text_delta") {
130
+ process.stdout.write(event.assistantMessageEvent.delta);
131
+ }
132
+ break;
133
+ case "tool_execution_start":
134
+ console.log(`Tool: ${event.toolName}`);
135
+ break;
136
+ case "tool_execution_end":
137
+ console.log(`Result: ${event.result}`);
138
+ break;
139
+ case "agent_end":
140
+ console.log("Done");
141
+ break;
142
+ }
143
+ });
144
+ ```
package/package.json ADDED
@@ -0,0 +1,85 @@
1
+ {
2
+ "name": "indusagi-coding-agent",
3
+ "version": "0.1.0",
4
+ "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
+ "type": "module",
6
+ "indusagiConfig": {
7
+ "name": "indusagi",
8
+ "configDir": ".indusagi"
9
+ },
10
+ "bin": {
11
+ "indus": "dist/cli.js",
12
+ "indusagi": "dist/cli.js"
13
+ },
14
+ "main": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.js"
20
+ },
21
+ "./hooks": {
22
+ "types": "./dist/core/hooks/index.d.ts",
23
+ "import": "./dist/core/hooks/index.js"
24
+ }
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "docs",
29
+ "examples",
30
+ "CHANGELOG.md"
31
+ ],
32
+ "scripts": {
33
+ "clean": "shx rm -rf dist",
34
+ "build": "tsc -p tsconfig.build.json && shx chmod +x dist/cli.js && npm run copy-assets",
35
+ "build:binary": "npm run build && bun build --compile ./dist/cli.js --outfile dist/indusagi && npm run copy-binary-assets",
36
+ "copy-assets": "shx mkdir -p dist/modes/interactive/theme && shx cp src/modes/interactive/theme/*.json dist/modes/interactive/theme/ && shx mkdir -p dist/core/export-html/vendor && shx cp src/core/export-html/template.html src/core/export-html/template.css src/core/export-html/template.js dist/core/export-html/ && shx cp src/core/export-html/vendor/*.js dist/core/export-html/vendor/",
37
+ "copy-binary-assets": "shx cp package.json dist/ && shx cp README.md dist/ && shx cp CHANGELOG.md dist/ && shx mkdir -p dist/theme && shx cp src/modes/interactive/theme/*.json dist/theme/ && shx mkdir -p dist/export-html/vendor && shx cp src/core/export-html/template.html dist/export-html/ && shx cp src/core/export-html/vendor/*.js dist/export-html/vendor/ && shx cp -r docs dist/ && shx cp -r examples dist/ && shx cp ../../node_modules/@silvia-odwyer/photon-node/photon_rs_bg.wasm dist/",
38
+ "test": "vitest --run",
39
+ "prepublishOnly": "npm run clean && npm run build"
40
+ },
41
+ "dependencies": {
42
+ "@mariozechner/clipboard": "^0.3.0",
43
+ "@mariozechner/jiti": "^2.6.2",
44
+ "@silvia-odwyer/photon-node": "^0.3.4",
45
+ "@sinclair/typebox": "^0.34.38",
46
+ "ajv": "^8.17.1",
47
+ "chalk": "^5.5.0",
48
+ "cli-highlight": "^2.1.11",
49
+ "diff": "^8.0.2",
50
+ "file-type": "^21.1.1",
51
+ "glob": "^11.0.3",
52
+ "indusagi": "^0.1.1",
53
+ "marked": "^15.0.12",
54
+ "minimatch": "^10.1.1",
55
+ "proper-lockfile": "^4.1.2",
56
+ "yaml": "^2.8.2"
57
+ },
58
+ "devDependencies": {
59
+ "@types/diff": "^7.0.2",
60
+ "@types/ms": "^2.1.0",
61
+ "@types/node": "^24.3.0",
62
+ "@types/proper-lockfile": "^4.1.4",
63
+ "shx": "^0.4.0",
64
+ "typescript": "^5.7.3",
65
+ "vitest": "^3.2.4"
66
+ },
67
+ "keywords": [
68
+ "coding-agent",
69
+ "ai",
70
+ "llm",
71
+ "cli",
72
+ "tui",
73
+ "agent"
74
+ ],
75
+ "author": "Mario Zechner",
76
+ "license": "MIT",
77
+ "repository": {
78
+ "type": "git",
79
+ "url": "git+https://github.com/badlogic/indusagi-mono.git",
80
+ "directory": "packages/coding-agent"
81
+ },
82
+ "engines": {
83
+ "node": ">=20.0.0"
84
+ }
85
+ }