iosm-cli 0.1.2 → 0.1.3

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 (83) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +6 -3
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +4 -2
  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 +1 -0
  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 +3 -0
  11. package/dist/core/agent-session.js.map +1 -1
  12. package/dist/core/sdk.d.ts +3 -3
  13. package/dist/core/sdk.d.ts.map +1 -1
  14. package/dist/core/sdk.js +11 -19
  15. package/dist/core/sdk.js.map +1 -1
  16. package/dist/core/semantic/chunking.d.ts +10 -0
  17. package/dist/core/semantic/chunking.d.ts.map +1 -0
  18. package/dist/core/semantic/chunking.js +82 -0
  19. package/dist/core/semantic/chunking.js.map +1 -0
  20. package/dist/core/semantic/cli.d.ts +23 -0
  21. package/dist/core/semantic/cli.d.ts.map +1 -0
  22. package/dist/core/semantic/cli.js +86 -0
  23. package/dist/core/semantic/cli.js.map +1 -0
  24. package/dist/core/semantic/config.d.ts +8 -0
  25. package/dist/core/semantic/config.d.ts.map +1 -0
  26. package/dist/core/semantic/config.js +261 -0
  27. package/dist/core/semantic/config.js.map +1 -0
  28. package/dist/core/semantic/index-store.d.ts +21 -0
  29. package/dist/core/semantic/index-store.d.ts.map +1 -0
  30. package/dist/core/semantic/index-store.js +73 -0
  31. package/dist/core/semantic/index-store.js.map +1 -0
  32. package/dist/core/semantic/index.d.ts +8 -0
  33. package/dist/core/semantic/index.d.ts.map +1 -0
  34. package/dist/core/semantic/index.js +7 -0
  35. package/dist/core/semantic/index.js.map +1 -0
  36. package/dist/core/semantic/providers.d.ts +22 -0
  37. package/dist/core/semantic/providers.d.ts.map +1 -0
  38. package/dist/core/semantic/providers.js +317 -0
  39. package/dist/core/semantic/providers.js.map +1 -0
  40. package/dist/core/semantic/runtime.d.ts +32 -0
  41. package/dist/core/semantic/runtime.d.ts.map +1 -0
  42. package/dist/core/semantic/runtime.js +499 -0
  43. package/dist/core/semantic/runtime.js.map +1 -0
  44. package/dist/core/semantic/types.d.ts +151 -0
  45. package/dist/core/semantic/types.d.ts.map +1 -0
  46. package/dist/core/semantic/types.js +17 -0
  47. package/dist/core/semantic/types.js.map +1 -0
  48. package/dist/core/slash-commands.d.ts.map +1 -1
  49. package/dist/core/slash-commands.js +4 -0
  50. package/dist/core/slash-commands.js.map +1 -1
  51. package/dist/core/system-prompt.d.ts.map +1 -1
  52. package/dist/core/system-prompt.js +19 -3
  53. package/dist/core/system-prompt.js.map +1 -1
  54. package/dist/core/tools/ast-grep.js +1 -1
  55. package/dist/core/tools/ast-grep.js.map +1 -1
  56. package/dist/core/tools/comby.js +1 -1
  57. package/dist/core/tools/comby.js.map +1 -1
  58. package/dist/core/tools/index.d.ts +9 -0
  59. package/dist/core/tools/index.d.ts.map +1 -1
  60. package/dist/core/tools/index.js +6 -0
  61. package/dist/core/tools/index.js.map +1 -1
  62. package/dist/core/tools/rg.js +1 -1
  63. package/dist/core/tools/rg.js.map +1 -1
  64. package/dist/core/tools/semantic-search.d.ts +21 -0
  65. package/dist/core/tools/semantic-search.d.ts.map +1 -0
  66. package/dist/core/tools/semantic-search.js +122 -0
  67. package/dist/core/tools/semantic-search.js.map +1 -0
  68. package/dist/index.d.ts +4 -2
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +3 -2
  71. package/dist/index.js.map +1 -1
  72. package/dist/main.d.ts.map +1 -1
  73. package/dist/main.js +117 -0
  74. package/dist/main.js.map +1 -1
  75. package/dist/modes/interactive/interactive-mode.d.ts +15 -0
  76. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  77. package/dist/modes/interactive/interactive-mode.js +687 -4
  78. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  79. package/docs/cli-reference.md +18 -1
  80. package/docs/configuration.md +74 -2
  81. package/docs/getting-started.md +1 -0
  82. package/docs/interactive-mode.md +5 -1
  83. package/package.json +1 -1
@@ -98,6 +98,22 @@ View and manage configuration.
98
98
  iosm config
99
99
  ```
100
100
 
101
+ ### `iosm semantic`
102
+
103
+ Semantic index management for meaning-based retrieval.
104
+
105
+ ```bash
106
+ iosm semantic help
107
+ iosm semantic status
108
+ iosm semantic index
109
+ iosm semantic rebuild
110
+ iosm semantic query "<text>" [--top-k N]
111
+ ```
112
+
113
+ Notes:
114
+ - If semantic config is missing, the command prints actionable paths and suggests `/semantic setup`.
115
+ - `query` auto-refreshes stale indexes incrementally; provider/chunk/filter changes require `rebuild`.
116
+
101
117
  ---
102
118
 
103
119
  ## Core Options
@@ -209,12 +225,13 @@ iosm --api-key sk-test-123 # Override for this run
209
225
 
210
226
  ### Available Tools
211
227
 
212
- `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`, `rg`, `fd`, `ast_grep`, `comby`, `jq`, `yq`, `semgrep`, `sed`
228
+ `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`, `rg`, `fd`, `ast_grep`, `comby`, `jq`, `yq`, `semgrep`, `sed`, `semantic_search`
213
229
 
214
230
  Tool notes:
215
231
  - `rg`, `fd` are managed by iosm-cli and auto-resolved when missing.
216
232
  - `ast_grep`, `comby`, `jq`, `yq`, `semgrep` are optional external CLIs and should be available in `PATH` to use their tools.
217
233
  - `sed` tool is preview/extraction-oriented; in-place edits are intentionally blocked.
234
+ - `semantic_search` uses configured embeddings provider/index (`/semantic setup`).
218
235
 
219
236
  **Examples:**
220
237
 
@@ -12,6 +12,7 @@ Complete reference for `iosm-cli` settings, environment variables, profiles, and
12
12
  ~/.iosm/agent/
13
13
  ├── settings.json # Global settings
14
14
  ├── mcp.json # User MCP servers
15
+ ├── semantic.json # User semantic search config
15
16
  ├── models.json # Model configuration and preferences
16
17
  ├── auth.json # Provider credentials (OAuth + API keys via /login)
17
18
  ├── keybindings.json # Custom keyboard shortcuts
@@ -28,6 +29,7 @@ Complete reference for `iosm-cli` settings, environment variables, profiles, and
28
29
  ```
29
30
  .iosm/
30
31
  ├── settings.json # Project-specific settings
32
+ ├── semantic.json # Project semantic search overrides
31
33
  ├── extensions/ # Project extensions
32
34
  ├── skills/ # Project skills
33
35
  ├── prompts/ # Project prompt templates
@@ -105,6 +107,76 @@ MCP configs are loaded with project override precedence:
105
107
 
106
108
  ---
107
109
 
110
+ ## Semantic Search Configuration
111
+
112
+ Semantic search is configured separately from settings and supports user/project override merge:
113
+
114
+ 1. `~/.iosm/agent/semantic.json`
115
+ 2. `.iosm/semantic.json` (project root, overrides user)
116
+
117
+ Interactive setup:
118
+
119
+ ```bash
120
+ /semantic setup
121
+ ```
122
+
123
+ CLI actions:
124
+
125
+ ```bash
126
+ iosm semantic status
127
+ iosm semantic index
128
+ iosm semantic query "where auth token is validated" --top-k 8
129
+ iosm semantic rebuild
130
+ ```
131
+
132
+ Schema (`semanticSearch` object):
133
+
134
+ ```json
135
+ {
136
+ "semanticSearch": {
137
+ "enabled": true,
138
+ "provider": {
139
+ "type": "openrouter",
140
+ "model": "openai/text-embedding-3-small",
141
+ "baseUrl": "optional",
142
+ "apiKeyEnv": "optional",
143
+ "headers": {
144
+ "KEY": "VALUE"
145
+ },
146
+ "batchSize": 32,
147
+ "timeoutMs": 30000
148
+ },
149
+ "index": {
150
+ "includeGlobs": [
151
+ "**/*.{ts,tsx,js,jsx,py,go,rs,java,md,json,yaml,yml}"
152
+ ],
153
+ "excludeGlobs": [
154
+ "**/.git/**",
155
+ "**/node_modules/**",
156
+ "**/dist/**",
157
+ "**/build/**",
158
+ "**/.iosm/**"
159
+ ],
160
+ "chunkMaxChars": 1200,
161
+ "chunkOverlapChars": 200,
162
+ "maxFileBytes": 262144,
163
+ "maxFiles": 20000
164
+ }
165
+ }
166
+ }
167
+ ```
168
+
169
+ Index storage (global cache):
170
+
171
+ ```
172
+ ~/.iosm/agent/semantic/indexes/<project-hash>/
173
+ ├── meta.json
174
+ ├── chunks.jsonl
175
+ └── vectors.jsonl
176
+ ```
177
+
178
+ ---
179
+
108
180
  ## Environment Variables
109
181
 
110
182
  ### Provider API Keys
@@ -118,7 +190,7 @@ MCP configs are loaded with project override precedence:
118
190
  | `GROQ_API_KEY` | Groq | |
119
191
  | `CEREBRAS_API_KEY` | Cerebras | |
120
192
  | `XAI_API_KEY` | xAI (Grok) | |
121
- | `OPENROUTER_API_KEY` | OpenRouter | Multi-provider gateway |
193
+ | `OPENROUTER_API_KEY` | OpenRouter | Multi-provider gateway + default semantic embeddings key |
122
194
  | `MISTRAL_API_KEY` | Mistral | |
123
195
  | `MINIMAX_API_KEY` | MiniMax | |
124
196
  | `KIMI_API_KEY` | Kimi | |
@@ -165,7 +237,7 @@ Profiles control the agent's behavior, available tools, and system prompt.
165
237
 
166
238
  | Profile | Tools | Behavior |
167
239
  |---------|-------|----------|
168
- | `full` | All built-ins (read, bash, edit, write, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed) | Default full development capabilities |
240
+ | `full` | All built-ins (read, bash, edit, write, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search) | Default full development capabilities |
169
241
  | `plan` | Read-only (read, grep, find, ls) | Architecture planning and code review |
170
242
  | `iosm` | All + IOSM context | IOSM cycle execution with artifact synchronization |
171
243
 
@@ -92,6 +92,7 @@ You'll see a prompt where you can type messages. The agent has access to your fi
92
92
  |---------|-------------|
93
93
  | `/model` | Pick or change the active model |
94
94
  | `/login` | Authenticate with OAuth providers (including Qwen) or add OpenRouter API key |
95
+ | `/semantic` | Configure semantic provider and index/query meaning-based code search |
95
96
  | `/init` | Bootstrap IOSM artifacts for the current project |
96
97
  | `/agents` | View available custom/system agents |
97
98
  | `/settings` | View and modify settings |
@@ -53,6 +53,7 @@ iosm --continue
53
53
  | `/model` | Open provider-first model selector (`provider -> model`) | `/model` |
54
54
  | `/scoped-models` | Manage model rotation | `/scoped-models` |
55
55
  | `/mcp` | Open MCP manager UI and run MCP subcommands | `/mcp` |
56
+ | `/semantic` | Open semantic search manager (`setup/status/index/rebuild/query`) | `/semantic` |
56
57
  | `/memory` | Interactive memory manager (`add/edit/remove/scope/path`) | `/memory` |
57
58
  | `/settings` | View/modify settings | `/settings` |
58
59
  | `/hotkeys` | View keyboard shortcuts | `/hotkeys` |
@@ -97,6 +98,9 @@ iosm --continue
97
98
  | `/logout` | Clear saved provider credentials | `/logout` |
98
99
 
99
100
  `/mcp add` without flags starts a guided wizard in the terminal UI.
101
+ `/semantic` opens an interactive setup/status/index/query manager for embeddings search.
102
+ `/semantic setup` now auto-loads model catalogs for OpenRouter (`/api/v1/embeddings/models`) and Ollama (`/api/tags`) with manual fallback.
103
+ In `/semantic setup`, the headers step is optional: press `Enter` on empty input to skip.
100
104
  `/memory` opens an interactive manager. `/memory <text>` saves a note to `memory.md` and reloads session context. Use `/memory edit <index> <text>` for direct updates.
101
105
 
102
106
  ---
@@ -161,7 +165,7 @@ Profiles change the agent's behavior, available tools, and system prompt:
161
165
 
162
166
  | Profile | Tools | Use Case |
163
167
  |---------|-------|----------|
164
- | `full` | All built-ins (read, bash, edit, write, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed) | Default development work |
168
+ | `full` | All built-ins (read, bash, edit, write, grep, find, ls, rg, fd, ast_grep, comby, jq, yq, semgrep, sed, semantic_search) | Default development work |
165
169
  | `plan` | Read-only (read, grep, find, ls) | Architecture planning, code review |
166
170
  | `iosm` | All + IOSM context | IOSM cycle execution with artifact sync |
167
171
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iosm-cli",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Standalone IOSM CLI with agent tooling, session management, and IOSM artifact orchestration",
5
5
  "type": "module",
6
6
  "iosmConfig": {