iosm-cli 0.2.7 → 0.2.8

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 (97) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/README.md +2 -2
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +7 -3
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/core/agent-profiles.d.ts.map +1 -1
  7. package/dist/core/agent-profiles.js +10 -1
  8. package/dist/core/agent-profiles.js.map +1 -1
  9. package/dist/core/agent-session.d.ts.map +1 -1
  10. package/dist/core/agent-session.js +26 -0
  11. package/dist/core/agent-session.js.map +1 -1
  12. package/dist/core/sdk.d.ts +2 -2
  13. package/dist/core/sdk.d.ts.map +1 -1
  14. package/dist/core/sdk.js +3 -3
  15. package/dist/core/sdk.js.map +1 -1
  16. package/dist/core/settings-manager.d.ts +39 -0
  17. package/dist/core/settings-manager.d.ts.map +1 -1
  18. package/dist/core/settings-manager.js +168 -0
  19. package/dist/core/settings-manager.js.map +1 -1
  20. package/dist/core/shadow-guard.js +1 -1
  21. package/dist/core/shadow-guard.js.map +1 -1
  22. package/dist/core/system-prompt.d.ts.map +1 -1
  23. package/dist/core/system-prompt.js +78 -4
  24. package/dist/core/system-prompt.js.map +1 -1
  25. package/dist/core/tools/git-common.d.ts +45 -0
  26. package/dist/core/tools/git-common.d.ts.map +1 -0
  27. package/dist/core/tools/git-common.js +185 -0
  28. package/dist/core/tools/git-common.js.map +1 -0
  29. package/dist/core/tools/git-read.d.ts +15 -13
  30. package/dist/core/tools/git-read.d.ts.map +1 -1
  31. package/dist/core/tools/git-read.js +101 -153
  32. package/dist/core/tools/git-read.js.map +1 -1
  33. package/dist/core/tools/git-write.d.ts +75 -0
  34. package/dist/core/tools/git-write.d.ts.map +1 -0
  35. package/dist/core/tools/git-write.js +298 -0
  36. package/dist/core/tools/git-write.js.map +1 -0
  37. package/dist/core/tools/index.d.ts +47 -1
  38. package/dist/core/tools/index.d.ts.map +1 -1
  39. package/dist/core/tools/index.js +10 -0
  40. package/dist/core/tools/index.js.map +1 -1
  41. package/dist/core/tools/task.js +1 -1
  42. package/dist/core/tools/task.js.map +1 -1
  43. package/dist/core/tools/web-search.d.ts +72 -0
  44. package/dist/core/tools/web-search.d.ts.map +1 -0
  45. package/dist/core/tools/web-search.js +702 -0
  46. package/dist/core/tools/web-search.js.map +1 -0
  47. package/dist/index.d.ts +2 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  52. package/dist/modes/interactive/components/config-selector.js +7 -2
  53. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  54. package/dist/modes/interactive/components/mcp-selector.d.ts.map +1 -1
  55. package/dist/modes/interactive/components/mcp-selector.js +3 -1
  56. package/dist/modes/interactive/components/mcp-selector.js.map +1 -1
  57. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  58. package/dist/modes/interactive/components/model-selector.js +12 -2
  59. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  60. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  61. package/dist/modes/interactive/components/oauth-selector.js +11 -0
  62. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  63. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  64. package/dist/modes/interactive/components/scoped-models-selector.js +16 -5
  65. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  66. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  67. package/dist/modes/interactive/components/session-selector.js +4 -2
  68. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  69. package/dist/modes/interactive/components/settings-selector.d.ts +25 -0
  70. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  71. package/dist/modes/interactive/components/settings-selector.js +182 -2
  72. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  73. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  74. package/dist/modes/interactive/components/show-images-selector.js +7 -2
  75. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  76. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  77. package/dist/modes/interactive/components/theme-selector.js +7 -2
  78. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  79. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  80. package/dist/modes/interactive/components/thinking-selector.js +7 -2
  81. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  82. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  83. package/dist/modes/interactive/components/tree-selector.js +18 -3
  84. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  85. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  86. package/dist/modes/interactive/components/user-message-selector.js +8 -0
  87. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  88. package/dist/modes/interactive/interactive-mode.d.ts +4 -0
  89. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  90. package/dist/modes/interactive/interactive-mode.js +128 -2
  91. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  92. package/docs/cli-reference.md +17 -2
  93. package/docs/configuration.md +11 -2
  94. package/docs/development-and-testing.md +1 -1
  95. package/docs/interactive-mode.md +2 -2
  96. package/docs/rpc-json-sdk.md +1 -1
  97. package/package.json +1 -1
@@ -257,7 +257,7 @@ iosm --api-key sk-test-123 # Override for this run
257
257
 
258
258
  ### Available Tools
259
259
 
260
- `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`, `rg`, `fd`, `ast_grep`, `comby`, `jq`, `yq`, `semgrep`, `sed`, `semantic_search`, `fetch`, `git_read`, `fs_ops`
260
+ `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`, `rg`, `fd`, `ast_grep`, `comby`, `jq`, `yq`, `semgrep`, `sed`, `semantic_search`, `fetch`, `web_search`, `git_read`, `git_write`, `fs_ops`, `todo_read`, `todo_write`
261
261
 
262
262
  Tool notes:
263
263
  - `rg`, `fd` are managed by iosm-cli and auto-resolved when missing.
@@ -265,8 +265,23 @@ Tool notes:
265
265
  - `sed` tool is preview/extraction-oriented; in-place edits are intentionally blocked.
266
266
  - `semantic_search` uses configured embeddings provider/index (`/semantic setup`).
267
267
  - `fetch` is profile-aware: read-only profiles allow only `GET/HEAD/OPTIONS`; write-capable profiles allow full HTTP method set.
268
- - `git_read` provides structured read-only git actions (`status`, `diff`, `log`, `blame`) without raw shell passthrough.
268
+ - `fetch` can be used for remote GitHub inspection without cloning via GitHub API/RAW endpoints (for example `api.github.com`, `raw.githubusercontent.com`).
269
+ - `web_search` is discovery-oriented (Tavily primary, fallback chain configurable via settings/environment). Use `fetch` to read specific URLs.
270
+ - `git_read` provides structured read-only git actions (`status`, `diff`, `log`, `blame`, `show`, `branch_list`, `remote_list`, `rev_parse`) without raw shell passthrough.
271
+ - `git_write` provides structured git write actions (`add`, `restore`, `reset_index`, `commit`, `switch`, `branch_create`, `fetch`, `pull`, `push`, `stash_*`) with action-specific validation and no raw passthrough. Network actions require enabling GitHub tools network access in settings.
269
272
  - `fs_ops` performs structured filesystem mutations (`mkdir`, `move`, `copy`, `delete`) with explicit `recursive`/`force` safety flags.
273
+ - `todo_read` / `todo_write` provide persistent task-state tracking for multi-step work in the current workspace.
274
+
275
+ Best-practice patterns:
276
+ - Git analysis: `git_read status` -> targeted `git_read diff/log/blame/show` on the exact files/refs you need.
277
+ - Git mutation: perform minimal-scope `git_write` actions first (explicit files/branch/message), then re-check with `git_read status/diff`.
278
+ - Web research: use `web_search` for discovery (prefer `include_domains`, `exclude_domains`, `days`, `topic` for tighter scope), then validate claims with `fetch` on primary URLs.
279
+ - For API endpoints via `fetch`, prefer `response_format=json`; for HTML/text pages use `response_format=text` (or `auto`) and tune `max_bytes`/`timeout` to keep output usable.
280
+ - File exploration: use bounded reads/searches (`path`, `glob`, `context`, `limit`); for large files, page with `read` using `offset`/`limit` instead of dumping whole files.
281
+ - File mutation: prefer `edit` for surgical changes and `write` for full rewrites; use `fs_ops` for `mkdir/move/copy/delete`, with `force=true` only when replacement/no-op behavior is intentional.
282
+ - Structured data transforms: use `jq`/`yq` to compute/preview transforms, then persist the final state through `edit`/`write`.
283
+ - Semantic retrieval: use `semantic_search status` first when relevance looks stale, then run `query`; run `index`/`rebuild` when config or index freshness requires it.
284
+ - Multi-step execution: keep task progress synchronized with `todo_write` and recover state with `todo_read` before resuming long threads.
270
285
 
271
286
  **Examples:**
272
287
 
@@ -78,12 +78,19 @@ Settings are merged in this order (later wins):
78
78
  "shell": "/bin/zsh",
79
79
  "cols": 120
80
80
  },
81
+ "githubTools": {
82
+ "networkEnabled": false,
83
+ "token": "optional-gh-token"
84
+ },
81
85
  "permissions": {
82
86
  "autoApprove": false
83
87
  }
84
88
  }
85
89
  ```
86
90
 
91
+ `githubTools.networkEnabled` controls whether `git_write` network actions (`fetch`, `pull`, `push`) are allowed.
92
+ `githubTools.token` is optional and, when set, is injected for GitHub HTTPS authentication during network git actions.
93
+
87
94
  ## MCP Configuration
88
95
 
89
96
  Manage MCP servers from CLI and interactive mode:
@@ -218,6 +225,8 @@ The table below lists common environment variables, but is not exhaustive.
218
225
  | `IOSM_SHARE_VIEWER_URL` | Default | Custom base URL for `/share` links |
219
226
  | `IOSM_AI_ANTIGRAVITY_VERSION` | Auto | Override Antigravity user-agent version |
220
227
  | `IOSM_SKIP_VERSION_CHECK` | `false` | Disable update/version checks |
228
+ | `TAVILY_API_KEY` | unset | Enables Tavily primary provider for `web_search` |
229
+ | `IOSM_WEB_SEARCH_SEARXNG_URL` | unset | Optional SearXNG fallback base URL for `web_search` (legacy alias: `PI_WEB_SEARCH_SEARXNG_URL`) |
221
230
 
222
231
  ### Example: Shell Configuration
223
232
 
@@ -245,8 +254,8 @@ Profiles control the agent's behavior, available tools, and system prompt.
245
254
 
246
255
  | Profile | Tools | Behavior |
247
256
  |---------|-------|----------|
248
- | `full` | All built-ins (read, bash, edit, write, fs_ops, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search, fetch, git_read) | Default full development capabilities |
249
- | `plan` | Read-only bundle (read, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search, fetch, git_read) | Architecture planning and code review |
257
+ | `full` | All built-ins (read, bash, edit, write, git_write, fs_ops, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search, fetch, web_search, git_read) | Default full development capabilities |
258
+ | `plan` | Read-only bundle (read, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search, fetch, web_search, git_read) | Architecture planning and code review |
250
259
  | `iosm` | All + IOSM context | IOSM cycle execution with artifact synchronization |
251
260
  | `meta` | Full tools + orchestration-first contract | Adaptive multi-agent/delegate execution with verification closure |
252
261
 
@@ -157,7 +157,7 @@ Tests are organized by feature area:
157
157
 
158
158
  | Area | Test Files | Coverage |
159
159
  |------|-----------|----------|
160
- | **Tools** | `tools.test.ts` | Built-in tools (`read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`, `rg`, `fd`, `ast_grep`, `comby`, `jq`, `yq`, `semgrep`, `sed`) |
160
+ | **Tools** | `tools.test.ts` | Built-in tools (`read`, `bash`, `edit`, `write`, `git_write`, `fs_ops`, `grep`, `find`, `ls`, `rg`, `fd`, `ast_grep`, `comby`, `jq`, `yq`, `semgrep`, `sed`, `semantic_search`, `fetch`, `web_search`, `git_read`) |
161
161
  | **Session** | `session-manager/`, `session-*.test.ts` | Persistence, branching, migration |
162
162
  | **Extensions** | `extensions-*.test.ts` | Discovery, running, hooks, input events |
163
163
  | **Compaction** | `compaction*.test.ts` | Context summarization |
@@ -336,8 +336,8 @@ Profiles change the agent's behavior, available tools, and system prompt:
336
336
 
337
337
  | Profile | Tools | Use Case |
338
338
  |---------|-------|----------|
339
- | `full` | All built-ins (read, bash, edit, write, fs_ops, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search, fetch, git_read) | Default development work |
340
- | `plan` | Read-only bundle (read, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search, fetch, git_read) | Architecture planning, code review |
339
+ | `full` | All built-ins (read, bash, edit, write, git_write, fs_ops, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search, fetch, web_search, git_read) | Default development work |
340
+ | `plan` | Read-only bundle (read, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search, fetch, web_search, git_read) | Architecture planning, code review |
341
341
  | `iosm` | All + IOSM context | IOSM cycle execution with artifact sync |
342
342
  | `meta` | Full toolset + orchestration-first contract | Adaptive multi-agent/delegate execution with verification closure |
343
343
 
@@ -233,7 +233,7 @@ const { session } = await createAgentSession({
233
233
  import { readOnlyTools } from "iosm-cli";
234
234
 
235
235
  const { session } = await createAgentSession({
236
- tools: readOnlyTools, // Read-only bundle (code search + semantic + HTTP/git introspection)
236
+ tools: readOnlyTools, // Read-only bundle (code search + semantic + web discovery + HTTP/git introspection)
237
237
  authStorage,
238
238
  modelRegistry,
239
239
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iosm-cli",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "Standalone IOSM CLI with agent tooling, session management, and IOSM artifact orchestration",
5
5
  "type": "module",
6
6
  "iosmConfig": {