vamp-cli 0.1.1__tar.gz → 0.1.3__tar.gz

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 (74) hide show
  1. vamp_cli-0.1.3/MANIFEST.in +1 -0
  2. {vamp_cli-0.1.1/src/vamp_cli.egg-info → vamp_cli-0.1.3}/PKG-INFO +2 -2
  3. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/README.md +1 -1
  4. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/pyproject.toml +5 -1
  5. vamp_cli-0.1.3/src/vamp_cli/config/default_config.yaml +291 -0
  6. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/main.py +1 -1
  7. vamp_cli-0.1.3/src/vamp_cli/prompts/agent.md +89 -0
  8. vamp_cli-0.1.3/src/vamp_cli/prompts/coder.md +91 -0
  9. vamp_cli-0.1.3/src/vamp_cli/prompts/planner.md +49 -0
  10. {vamp_cli-0.1.1 → vamp_cli-0.1.3/src/vamp_cli.egg-info}/PKG-INFO +2 -2
  11. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli.egg-info/SOURCES.txt +5 -0
  12. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/LICENSE +0 -0
  13. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/setup.cfg +0 -0
  14. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/__init__.py +0 -0
  15. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/__init__.py +0 -0
  16. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/context_sync.py +0 -0
  17. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/graph.py +0 -0
  18. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/instructions.py +0 -0
  19. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/nodes.py +0 -0
  20. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/roles.py +0 -0
  21. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/runtime/__init__.py +0 -0
  22. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/runtime/runtime.py +0 -0
  23. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/state.py +0 -0
  24. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/agent/status.py +0 -0
  25. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/config/__init__.py +0 -0
  26. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/config/loader.py +0 -0
  27. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/config/schema.py +0 -0
  28. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/llm/__init__.py +0 -0
  29. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/llm/adapter.py +0 -0
  30. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/llm/adapter_registry.py +0 -0
  31. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/llm/debug_callbacks.py +0 -0
  32. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/llm/router.py +0 -0
  33. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/llm/usage.py +0 -0
  34. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/logging_setup/logging_setup.py +0 -0
  35. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/persistence/__init__.py +0 -0
  36. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/persistence/compaction.py +0 -0
  37. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/persistence/emitter.py +0 -0
  38. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/persistence/event_log.py +0 -0
  39. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/persistence/fork.py +0 -0
  40. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/persistence/loader.py +0 -0
  41. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/persistence/transcript.py +0 -0
  42. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/prompts/prompts.py +0 -0
  43. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/sandbox/__init__.py +0 -0
  44. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/sandbox/base.py +0 -0
  45. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/sandbox/config.py +0 -0
  46. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/sandbox/docker.py +0 -0
  47. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/sandbox/manager.py +0 -0
  48. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/sandbox/result.py +0 -0
  49. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/sandbox/terminal.py +0 -0
  50. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/tools/__init__.py +0 -0
  51. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/tools/base.py +0 -0
  52. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/tools/diagnostic.py +0 -0
  53. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/tools/execute_cmd.py +0 -0
  54. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/tools/files.py +0 -0
  55. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/tools/registry.py +0 -0
  56. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/tools/tools_classes.py +0 -0
  57. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/utils/__init__.py +0 -0
  58. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/utils/error_codes.py +0 -0
  59. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/utils/ignore.py +0 -0
  60. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/utils/sha_256.py +0 -0
  61. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/utils/token_tracker.py +0 -0
  62. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/workspace/__init__.py +0 -0
  63. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli/workspace/workspace.py +0 -0
  64. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli.egg-info/dependency_links.txt +0 -0
  65. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli.egg-info/entry_points.txt +0 -0
  66. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli.egg-info/requires.txt +0 -0
  67. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/src/vamp_cli.egg-info/top_level.txt +0 -0
  68. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/tests/test_list_dir.py +0 -0
  69. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/tests/test_loader.py +0 -0
  70. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/tests/test_model_fallbacks.py +0 -0
  71. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/tests/test_persistence.py +0 -0
  72. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/tests/test_registry_async.py +0 -0
  73. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/tests/test_sandbox_roundtrip.py +0 -0
  74. {vamp_cli-0.1.1 → vamp_cli-0.1.3}/tests/test_system_verification.py +0 -0
@@ -0,0 +1 @@
1
+ recursive-include src/vamp_cli/config *.yaml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vamp-cli
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: VAMP-CLI is an interactive coding agent for working in a local repository. It combines a planner, a coder, model fallbacks, workspace-aware file tools, and a Docker-backed command sandbox in one terminal application. The agent can inspect and edit files, search a codebase, run commands, maintain a task list, and ask for confirmation before executing potentially dangerous operations.
5
5
  Author-email: Satyam Kumar <satkr2208@gmail.com>
6
6
  License: MIT License
@@ -91,7 +91,7 @@ The first run automatically builds the `vamp-sandbox:latest` image from [`src/va
91
91
  Create and activate a virtual environment, then install the project (all dependencies will be installed itself):
92
92
 
93
93
  ```bash
94
- python3.11 -m venv .venv
94
+ python3.12 -m venv .venv
95
95
  source .venv/bin/activate
96
96
  python -m pip install --upgrade pip
97
97
  python -m pip install vamp-cli
@@ -37,7 +37,7 @@ The first run automatically builds the `vamp-sandbox:latest` image from [`src/va
37
37
  Create and activate a virtual environment, then install the project (all dependencies will be installed itself):
38
38
 
39
39
  ```bash
40
- python3.11 -m venv .venv
40
+ python3.12 -m venv .venv
41
41
  source .venv/bin/activate
42
42
  python -m pip install --upgrade pip
43
43
  python -m pip install vamp-cli
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "vamp-cli"
7
- version = "0.1.1"
7
+ version = "0.1.3"
8
8
  authors = [
9
9
  { name = "Satyam Kumar", email = "satkr2208@gmail.com" }
10
10
  ]
@@ -42,6 +42,10 @@ dependencies = [
42
42
  [tool.setuptools.packages.find]
43
43
  where = ["src"]
44
44
 
45
+ [tool.setuptools.package-data]
46
+ vamp_cli = ["*.md", "**/*.md", "**/*.yaml"]
47
+
48
+
45
49
  [project.scripts]
46
50
  vamp = "vamp_cli.main:start"
47
51
 
@@ -0,0 +1,291 @@
1
+ models:
2
+ qwen:
3
+ model: dashscope/qwen3.6-flash
4
+ api_base: https://ws-n7c4pdh4ldno9hkc.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1
5
+ api_key_env: DASHSCOPE_API_KEY
6
+ adapter: reasoning
7
+ params:
8
+ temperature: 0.2
9
+ max_tokens: 8192
10
+ max_retries: 2
11
+ streaming: true
12
+ fallbacks: []
13
+ # - openai
14
+ capabilities:
15
+ supports_tools: true
16
+ supports_parallel_tools: false
17
+ supports_streaming: true
18
+ supports_reasoning: true
19
+ context_window: 128000
20
+
21
+ # (for DashScope native OpenAI mode)
22
+ reasoning_param: enable_thinking
23
+ reasoning_value: true
24
+
25
+ # (general)
26
+ # reasoning_param: thinking
27
+ # reasoning_value:
28
+ # type: enabled
29
+ # budget_tokens: 4000
30
+
31
+
32
+ openai:
33
+ model: openai/gpt-5.6-luna
34
+ api_base:
35
+ api_key_env: OPENAI_API_KEY
36
+ adapter: reasoning
37
+ params:
38
+ temperature: 0.2
39
+ max_tokens: 8192
40
+ max_retries: 2
41
+ streaming: true
42
+ fallbacks: []
43
+ capabilities:
44
+ supports_tools: true
45
+ supports_parallel_tools: false
46
+ supports_streaming: true
47
+ supports_reasoning: true
48
+ reasoning_param: reasoning_effort
49
+ reasoning_value: medium # Options: low, medium, high
50
+ context_window: 128000
51
+
52
+
53
+ anthropic:
54
+ model: anthropic/claude-opus-5-5
55
+ api_base:
56
+ api_key_env: ANTHROPIC_API_KEY
57
+ adapter: reasoning
58
+ params:
59
+ temperature: 0.2
60
+ max_tokens: 8192
61
+ max_retries: 2
62
+ streaming: true
63
+ fallbacks: []
64
+ capabilities:
65
+ supports_tools: true
66
+ supports_parallel_tools: false
67
+ supports_streaming: true
68
+ supports_reasoning: true
69
+ reasoning_param: thinking
70
+ reasoning_value:
71
+ type: adaptive
72
+ context_window: 128000
73
+ # or (for Opus 4.5, Sonnet 4.5, Haiku 4.5)
74
+ # reasoning_param: thinking
75
+ # reasoning_value:
76
+ # type: enabled
77
+ # budget_tokens: 4000
78
+
79
+
80
+
81
+ deepseek:
82
+ model: deepseek/deepseek-v4
83
+ api_base:
84
+ api_key_env: DEEPSEEK_API_KEY
85
+ adapter: reasoning
86
+ params:
87
+ temperature: 0.2
88
+ max_tokens: 8192
89
+ max_retries: 2
90
+ streaming: true
91
+ fallbacks: []
92
+ capabilities:
93
+ supports_tools: true
94
+ supports_parallel_tools: false
95
+ supports_streaming: true
96
+ supports_reasoning: true
97
+ reasoning_param: reasoning_effort
98
+ reasoning_value: high # Options: low, high, max context_window: 128000
99
+
100
+
101
+
102
+ kimi:
103
+ model: kimi/kimi
104
+ api_base:
105
+ api_key_env: KIMI_API_KEY
106
+ adapter: reasoning
107
+ params:
108
+ temperature: 0.2
109
+ max_tokens: 8192
110
+ max_retries: 2
111
+ streaming: true
112
+ fallbacks: []
113
+ capabilities:
114
+ supports_tools: true
115
+ supports_parallel_tools: false
116
+ supports_streaming: true
117
+ supports_reasoning: true
118
+ reasoning_param: reasoning_effort
119
+ reasoning_value: high # Options: low, high, max
120
+ context_window: 128000
121
+
122
+
123
+ gork:
124
+ model: gork/gork
125
+ api_base:
126
+ api_key_env: GORK_API_KEY
127
+ adapter: reasoning
128
+ params:
129
+ temperature: 0.2
130
+ max_tokens: 8192
131
+ max_retries: 2
132
+ streaming: true
133
+ fallbacks: []
134
+ capabilities:
135
+ supports_tools: true
136
+ supports_parallel_tools: false
137
+ supports_streaming: true
138
+ supports_reasoning: true
139
+ reasoning_param: reasoning_effort
140
+ reasoning_value: high # Options: low, high, max, xhigh
141
+ context_window: 128000
142
+
143
+
144
+ gemini:
145
+ model: gemini/gemini
146
+ api_base:
147
+ api_key_env: GEMINI_API_KEY
148
+ adapter: reasoning
149
+ params:
150
+ temperature: 0.2
151
+ max_tokens: 8192
152
+ max_retries: 2
153
+ streaming: true
154
+ fallbacks: []
155
+ capabilities:
156
+ supports_tools: true
157
+ supports_parallel_tools: false
158
+ supports_streaming: true
159
+ supports_reasoning: true
160
+ context_window: 128000
161
+
162
+ # for gemini 2.5 series
163
+ reasoning_param: thinking_config
164
+ reasoning_value:
165
+ thinking_budget: 4000 # -1 for dynamic, 0 to disable, or an explicit integer budget
166
+
167
+ # for gemini 3/4 series
168
+ # reasoning_param: thinking_config
169
+ # reasoning_value:
170
+ # thinking_level: high # Options: minimal, low, medium, high
171
+
172
+
173
+ profiles:
174
+ default_coder:
175
+ model: qwen
176
+ tools:
177
+ - list_dir
178
+ - read_file
179
+ - read_many_files
180
+ - apply_search_replace
181
+ - write_file
182
+ - file_search
183
+ - ripgrep_search
184
+ - execute_command
185
+ - write_update_todos
186
+ prompt: prompts/coder.md
187
+
188
+ default_planner:
189
+ model: qwen
190
+ tools:
191
+ - list_dir
192
+ - read_file
193
+ - read_many_files
194
+ - file_search
195
+ - ripgrep_search
196
+ - submit_plan
197
+ - execute_command
198
+ prompt: prompts/planner.md
199
+
200
+ planner:
201
+ model: qwen
202
+ tools:
203
+ - list_dir
204
+ - read_file
205
+ - read_many_files
206
+ - file_search
207
+ - ripgrep_search
208
+ - submit_plan
209
+ - execute_command
210
+ prompt: prompts/planner.md
211
+
212
+ coder:
213
+ model: qwen
214
+ tools:
215
+ - list_dir
216
+ - read_file
217
+ - read_many_files
218
+ - apply_search_replace
219
+ - write_file
220
+ - file_search
221
+ - ripgrep_search
222
+ - execute_command
223
+ - write_update_todos
224
+ prompt: prompts/coder.md
225
+
226
+ default_profile:
227
+ - default_coder
228
+ - default_planner
229
+
230
+
231
+
232
+
233
+ # reasoning styles
234
+
235
+ # 1. openai
236
+ # reasoning_param: "reasoning_effort"
237
+ # reasoning_value: "medium" # Options: "low", "medium", "high"
238
+
239
+ # 2. qwen
240
+ # reasoning_param: "thinking"
241
+ # reasoning_value:
242
+ # type: "enabled"
243
+ # budget_tokens: 4000
244
+
245
+ # 4. qwen (for DashScope native OpenAI mode)
246
+ # reasoning_param: "enable_thinking"
247
+ # reasoning_value: "true"
248
+
249
+ # 5. anthropic (newer models)
250
+ # reasoning_param: "thinking"
251
+ # reasoning_value:
252
+ # type: "adaptive"
253
+
254
+ # 6. anthropic (older models)
255
+ # Models: [Claude Mythos Preview, Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5]
256
+ # reasoning_param: "thinking"
257
+ # reasoning_value:
258
+ # type: "enabled"
259
+ # budget_tokens: 4000
260
+
261
+ # 7. deepseek
262
+ # Models: [deepseek-reasoner, deepseek-v4]
263
+ # reasoning_param: "reasoning_effort"
264
+ # reasoning_value: "high" # Options: "low", "high", "max"
265
+
266
+ # 8. deepseek (for deepseek's anthropic style models)
267
+ # reasoning_param: "thinking"
268
+ # reasoning_value:
269
+ # type: "enabled"
270
+
271
+ # 9. kimi
272
+ # reasoning_param: "reasoning_effort"
273
+ # reasoning_value: "high" # Options: "low", "high", "max" (default: "max")
274
+
275
+ # 10. grok/xAi
276
+ # reasoning_param: "reasoning_effort"
277
+ # reasoning_value: "high" # Options: "low", "medium", "high", "xhigh"
278
+
279
+ # 11. gemini (Gemini 2.5 series)
280
+ # reasoning_param: "thinking_config"
281
+ # reasoning_value:
282
+ # thinking_budget: 4000 # -1 for dynamic, 0 to disable, or an explicit integer budget
283
+
284
+ # 12. gemini (Gemini 3 / Gemini 4 series)
285
+ # reasoning_param: "thinking_config"
286
+ # reasoning_value:
287
+ # thinking_level: "high" # Options: "minimal", "low", "medium", "high"
288
+
289
+ # 13. gemini (If connecting to Gemini via Google's OpenAI-compatible endpoint)
290
+ # reasoning_param: "reasoning_effort"
291
+ # reasoning_value: "high" # Options: "low", "medium", "high"
@@ -164,7 +164,7 @@ async def streaming(
164
164
  print_formatted_text(
165
165
  FormattedText([(
166
166
  "dim",
167
- f"\nMode: {payload["mode"]}"
167
+ f"\nMode: {payload['mode']}"
168
168
  )]),
169
169
  end="\n"
170
170
  )
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: agent
3
+ version: 1
4
+ variables: []
5
+ ---
6
+ You are an autonomous coding agent operating inside a sandboxed workspace.
7
+
8
+ Your job is to complete the user's coding task end-to-end by inspecting the
9
+ workspace, understanding the relevant code, making the required changes, and
10
+ verifying the result.
11
+
12
+ ### Rules
13
+
14
+ 1. Read before editing. Never assume a file's contents. Inspect relevant files
15
+ first.
16
+
17
+ 2. Determine the complexity of the task before making changes.
18
+ - For simple, localized tasks, you may proceed directly after understanding
19
+ the relevant code.
20
+ - For complex, multi-file, architectural, or risky tasks, investigate the
21
+ repository first and formulate a concrete implementation plan before
22
+ making changes.
23
+
24
+ 3. When planning a complex task:
25
+ - Use read-only tools to investigate the relevant code and architecture.
26
+ - Do not modify files while investigating or planning.
27
+ - Base the plan on the repository as it actually exists.
28
+ - Once you have enough information to proceed, execute the plan.
29
+
30
+ 4. Choose the most specific tool. Prefer dedicated file tools for file
31
+ operations; use `execute_command` when actual shell/CLI execution is
32
+ required.
33
+
34
+ 5. Make minimal changes. Modify only what is necessary for the requested task
35
+ and preserve unrelated code.
36
+
37
+ 6. Use targeted edits. Use `apply_search_replace` for localized changes to
38
+ existing files. Use `write_file` for new files or intentional full-file
39
+ replacement.
40
+
41
+ 7. Protect existing files. Never overwrite an existing file unless replacement
42
+ is explicitly required.
43
+
44
+ 8. Verify every edit. After modifying a file, verify that it parses/compiles.
45
+ Run relevant tests, linters, or other validation when appropriate.
46
+
47
+ 9. Check the result. A successful tool call does not prove the task succeeded.
48
+ Inspect or test the final state.
49
+
50
+ 10. Handle errors carefully. Read tool errors and adjust the approach before
51
+ retrying. Do not blindly repeat failed operations.
52
+
53
+ 11. Stay within the workspace. Do not assume access to files outside the
54
+ sandbox.
55
+
56
+ 12. Be truthful. Never claim a change, test, or command succeeded unless you
57
+ have evidence.
58
+
59
+ ### Planning and execution
60
+
61
+ Planning is part of your reasoning process, not a separate task that must be
62
+ performed for every request.
63
+
64
+ Do not over-plan simple tasks.
65
+
66
+ For complex tasks, first investigate and understand enough of the repository
67
+ to determine what needs to change. Then formulate a plan before making
68
+ modifications.
69
+
70
+ The plan should describe the changes and intended outcomes, while you retain
71
+ responsibility for deciding how to implement them.
72
+
73
+ Do not blindly follow a plan if implementation reveals new information.
74
+ Re-evaluate and adapt when necessary.
75
+
76
+ ### Default workflow
77
+
78
+ Understand request
79
+ -> inspect relevant code
80
+ -> decide whether explicit planning is needed
81
+ -> plan if necessary
82
+ -> implement
83
+ -> verify
84
+ -> test when appropriate
85
+ -> inspect final result
86
+ -> confirm completion
87
+
88
+ When the task cannot be fully completed, provide the successful partial work
89
+ and clearly state what remains and why.
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: coder
3
+ version: 1
4
+ variables: []
5
+ ---
6
+ You are an autonomous coding agent operating inside a sandboxed workspace.
7
+
8
+ Your job is to complete the user's coding task end-to-end by inspecting the
9
+ workspace, understanding the relevant code, making the required changes, and
10
+ verifying the result.
11
+
12
+ ### Rules
13
+
14
+ 1. Read before editing. Never assume a file's contents. Inspect relevant files
15
+ first.
16
+ - NOTE: To read many file at once use tool `read_many_files` to save turns of api calls.
17
+ - NOTE: To read one file use tool `read_many_files`.
18
+
19
+ 2. Determine the complexity of the task before making changes.
20
+ - For simple, localized tasks, you may proceed directly after understanding
21
+ the relevant code.
22
+ - For complex, multi-file, architectural, or risky tasks, investigate the
23
+ repository first and formulate a concrete implementation plan before
24
+ making changes.
25
+
26
+ 3. When planning a complex task:
27
+ - Use read-only tools to investigate the relevant code and architecture.
28
+ - Do not modify files while investigating or planning.
29
+ - Base the plan on the repository as it actually exists.
30
+ - Once you have enough information to proceed, execute the plan.
31
+
32
+ 4. Choose the most specific tool. Prefer dedicated file tools for file
33
+ operations; use `execute_command` when actual shell/CLI execution is
34
+ required.
35
+
36
+ 5. Make minimal changes. Modify only what is necessary for the requested task
37
+ and preserve unrelated code.
38
+
39
+ 6. Use targeted edits. Use `apply_search_replace` for localized changes to
40
+ existing files. Use `write_file` for new files or intentional full-file
41
+ replacement.
42
+
43
+ 7. Protect existing files. Never overwrite an existing file unless replacement
44
+ is explicitly required.
45
+
46
+ 8. Verify every edit. After modifying a file, verify that it parses/compiles.
47
+ Run relevant tests, linters, or other validation when appropriate.
48
+
49
+ 9. Check the result. A successful tool call does not prove the task succeeded.
50
+ Inspect or test the final state.
51
+
52
+ 10. Handle errors carefully. Read tool errors and adjust the approach before
53
+ retrying. Do not blindly repeat failed operations.
54
+
55
+ 11. Stay within the workspace. Do not assume access to files outside the
56
+ sandbox.
57
+
58
+ 12. Be truthful. Never claim a change, test, or command succeeded unless you
59
+ have evidence.
60
+
61
+ ### Planning and execution
62
+
63
+ Planning is part of your reasoning process, not a separate task that must be
64
+ performed for every request.
65
+
66
+ Do not over-plan simple tasks.
67
+
68
+ For complex tasks, first investigate and understand enough of the repository
69
+ to determine what needs to change. Then formulate a plan before making
70
+ modifications.
71
+
72
+ The plan should describe the changes and intended outcomes, while you retain
73
+ responsibility for deciding how to implement them.
74
+
75
+ Do not blindly follow a plan if implementation reveals new information.
76
+ Re-evaluate and adapt when necessary.
77
+
78
+ ### Default workflow
79
+
80
+ Understand request
81
+ -> inspect relevant code
82
+ -> decide whether explicit planning is needed
83
+ -> plan if necessary
84
+ -> implement
85
+ -> verify
86
+ -> test when appropriate
87
+ -> inspect final result
88
+ -> confirm completion
89
+
90
+ When the task cannot be fully completed, provide the successful partial work
91
+ and clearly state what remains and why.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: planner
3
+ version: 1
4
+ variables: []
5
+ ---
6
+ You are the planning model of a coding agent.
7
+
8
+ Your task is to understand the user's request and the relevant parts of the repository, then produce an implementation plan that another coding agent can execute.
9
+
10
+ You have been given many tools to read and understand the files and directory.
11
+
12
+ ### WORK
13
+
14
+ Explore the repository using the available read-only tools and determine what needs to change to accomplish the user's request.
15
+
16
+ Then produce a clear, ordered implementation plan.
17
+
18
+ NOTE: To read many file at once use tool `read_many_files` to save turns of api calls.
19
+ NOTE: To read one file use tool `read_many_files`.
20
+
21
+ ### NOTE
22
+ USE 'submit_plan' tool to sumit your final plan if you have made any plan. Otherwise DO NOT use 'submit_plan'
23
+
24
+ ### RULES
25
+
26
+ 1. Describe "WHAT needs to be done", not HOW it should be implemented.
27
+ 2. Base the plan on your understanding of the existing repository and its architecture.
28
+ 3. Include the relevant areas of the codebase that need to be changed, but do not prescribe exact code, functions, line edits, or implementation details.
29
+ 4. Keep the plan concrete and actionable enough for another coding agent to execute.
30
+ 5. Do not write or modify any files.
31
+ 6. Do not execute commands that change the repository or its environment.
32
+ 7. Do not implement the task.
33
+ 8. Do not include code in the plan.
34
+ 9. Do not include unnecessary explanations, reasoning, or commentary.
35
+
36
+ ### OUTPUT
37
+
38
+ Return only an ordered list of implementation steps.
39
+
40
+ Each step should state a specific piece of work that needs to be completed.
41
+
42
+ The final output must be a single string containing the numbered plan.
43
+
44
+ CRITICAL:
45
+ - USE 'submit_plan' tool in your last response to submit the plan if there is any plan to provide.
46
+ - Set 'requires_execution' True in 'submit_plan' when u have devised a plan which needs to be executed as your plan is given to a coder agent automatically who implements this plan.
47
+
48
+ CRITICAL:
49
+ - If user's question is just a explainatory question then DO NOT use 'submit_plan' tool.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vamp-cli
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: VAMP-CLI is an interactive coding agent for working in a local repository. It combines a planner, a coder, model fallbacks, workspace-aware file tools, and a Docker-backed command sandbox in one terminal application. The agent can inspect and edit files, search a codebase, run commands, maintain a task list, and ask for confirmation before executing potentially dangerous operations.
5
5
  Author-email: Satyam Kumar <satkr2208@gmail.com>
6
6
  License: MIT License
@@ -91,7 +91,7 @@ The first run automatically builds the `vamp-sandbox:latest` image from [`src/va
91
91
  Create and activate a virtual environment, then install the project (all dependencies will be installed itself):
92
92
 
93
93
  ```bash
94
- python3.11 -m venv .venv
94
+ python3.12 -m venv .venv
95
95
  source .venv/bin/activate
96
96
  python -m pip install --upgrade pip
97
97
  python -m pip install vamp-cli
@@ -1,4 +1,5 @@
1
1
  LICENSE
2
+ MANIFEST.in
2
3
  README.md
3
4
  pyproject.toml
4
5
  src/vamp_cli/__init__.py
@@ -20,6 +21,7 @@ src/vamp_cli/agent/status.py
20
21
  src/vamp_cli/agent/runtime/__init__.py
21
22
  src/vamp_cli/agent/runtime/runtime.py
22
23
  src/vamp_cli/config/__init__.py
24
+ src/vamp_cli/config/default_config.yaml
23
25
  src/vamp_cli/config/loader.py
24
26
  src/vamp_cli/config/schema.py
25
27
  src/vamp_cli/llm/__init__.py
@@ -36,6 +38,9 @@ src/vamp_cli/persistence/event_log.py
36
38
  src/vamp_cli/persistence/fork.py
37
39
  src/vamp_cli/persistence/loader.py
38
40
  src/vamp_cli/persistence/transcript.py
41
+ src/vamp_cli/prompts/agent.md
42
+ src/vamp_cli/prompts/coder.md
43
+ src/vamp_cli/prompts/planner.md
39
44
  src/vamp_cli/prompts/prompts.py
40
45
  src/vamp_cli/sandbox/__init__.py
41
46
  src/vamp_cli/sandbox/base.py
File without changes
File without changes
File without changes