alpiecode 8.0.2__tar.gz → 8.0.5__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.
- {alpiecode-8.0.2 → alpiecode-8.0.5}/PKG-INFO +1 -1
- {alpiecode-8.0.2 → alpiecode-8.0.5}/pyproject.toml +1 -1
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/alpiecode.egg-info/PKG-INFO +1 -1
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/__init__.py +1 -1
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/extension/alpiecode.vsix +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/orchestrator.py +22 -2
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/prompt.py +14 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/README.md +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/setup.cfg +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/alpiecode/__init__.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/alpiecode.egg-info/SOURCES.txt +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/alpiecode.egg-info/dependency_links.txt +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/alpiecode.egg-info/entry_points.txt +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/alpiecode.egg-info/requires.txt +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/alpiecode.egg-info/top_level.txt +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/agent.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/backends/__init__.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/backends/base.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/backends/local_backend.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/backends/openai_backend.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/cache.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/cli.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/client.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/compaction.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/config.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/context.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/discovery.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/doctor.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/executor.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/git_ops.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/github.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/guardian.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/guardrails.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/ipython_ext.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/local_model.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/media.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/memory.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/progress.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/rephraser.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/server.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/session.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/tools.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/updater.py +0 -0
- {alpiecode-8.0.2 → alpiecode-8.0.5}/src/codeagent/vscode_installer.py +0 -0
|
Binary file
|
|
@@ -329,7 +329,17 @@ class AgentOrchestrator:
|
|
|
329
329
|
})
|
|
330
330
|
session.context.add_tool_result(res.tool_call_id, res.content)
|
|
331
331
|
|
|
332
|
-
|
|
332
|
+
if resp.content:
|
|
333
|
+
# Clean duplicate DONE: if repeated
|
|
334
|
+
if resp.content.upper().count("DONE:") > 1:
|
|
335
|
+
parts = re.split(r"(?i)\bDONE:\s*", resp.content)
|
|
336
|
+
if len(parts) >= 3 and parts[1].strip() == parts[2].strip():
|
|
337
|
+
resp.content = parts[0] + "DONE: " + parts[1].strip()
|
|
338
|
+
|
|
339
|
+
# Only yield 'message' if tokens were NOT already streamed chunk-by-chunk
|
|
340
|
+
if not (hasattr(self.backend, "chat_completion_stream") and not is_offline):
|
|
341
|
+
yield AgentEvent("message", {"content": resp.content})
|
|
342
|
+
|
|
333
343
|
extract_and_save_memories(session.workdir, session.context.messages)
|
|
334
344
|
|
|
335
345
|
# Generate and write real walkthrough.md file to the project workspace
|
|
@@ -423,7 +433,17 @@ class AgentOrchestrator:
|
|
|
423
433
|
except Exception:
|
|
424
434
|
pass
|
|
425
435
|
|
|
426
|
-
|
|
436
|
+
if resp.content:
|
|
437
|
+
# Clean duplicate DONE: if repeated
|
|
438
|
+
if resp.content.upper().count("DONE:") > 1:
|
|
439
|
+
parts = re.split(r"(?i)\bDONE:\s*", resp.content)
|
|
440
|
+
if len(parts) >= 3 and parts[1].strip() == parts[2].strip():
|
|
441
|
+
resp.content = parts[0] + "DONE: " + parts[1].strip()
|
|
442
|
+
|
|
443
|
+
# Only yield 'message' if tokens were NOT already streamed chunk-by-chunk
|
|
444
|
+
if not (hasattr(self.backend, "chat_completion_stream") and not is_offline):
|
|
445
|
+
yield AgentEvent("message", {"content": resp.content})
|
|
446
|
+
|
|
427
447
|
extract_and_save_memories(session.workdir, session.context.messages)
|
|
428
448
|
yield AgentEvent("done", {"summary": resp.content})
|
|
429
449
|
return
|
|
@@ -101,6 +101,13 @@ You are AlpieCode, an autonomous software-engineering agent built by 169Pi. \
|
|
|
101
101
|
You write complete, working code in a single pass and verify it by running it.
|
|
102
102
|
|
|
103
103
|
# CRITICAL RULE: WRITE CODE FIRST
|
|
104
|
+
|
|
105
|
+
# CRITICAL: FAST TESTING & EXECUTION (NO REAL SLEEP)
|
|
106
|
+
- NEVER use real `time.sleep()` in unit tests for timers, rate limiters, token buckets, or delays.
|
|
107
|
+
- Real sleep blocks the test suite for seconds and degrades agent speed.
|
|
108
|
+
- ALWAYS use virtual clocks or mock time: `unittest.mock.patch('time.monotonic')`, `unittest.mock.patch('time.time')`, or pass a custom `time_func` to advance time instantaneously.
|
|
109
|
+
- All unit tests MUST finish in under 0.05 seconds.
|
|
110
|
+
|
|
104
111
|
Your #1 priority is to PRODUCE CODE on Turn 1. Do NOT explore, list files, \
|
|
105
112
|
or read project structure before writing code unless you are modifying an \
|
|
106
113
|
existing file. For new projects, WRITE THE COMPLETE CODE IMMEDIATELY.
|
|
@@ -248,6 +255,13 @@ You are AlpieCode, an autonomous software engineering AI agent built by 169Pi.
|
|
|
248
255
|
You are running in OFFLINE mode — there is NO internet access.
|
|
249
256
|
|
|
250
257
|
# CRITICAL RULE: WRITE CODE FIRST
|
|
258
|
+
|
|
259
|
+
# CRITICAL: FAST TESTING & EXECUTION (NO REAL SLEEP)
|
|
260
|
+
- NEVER use real `time.sleep()` in unit tests for timers, rate limiters, token buckets, or delays.
|
|
261
|
+
- Real sleep blocks the test suite for seconds and degrades agent speed.
|
|
262
|
+
- ALWAYS use virtual clocks or mock time: `unittest.mock.patch('time.monotonic')`, `unittest.mock.patch('time.time')`, or pass a custom `time_func` to advance time instantaneously.
|
|
263
|
+
- All unit tests MUST finish in under 0.05 seconds.
|
|
264
|
+
|
|
251
265
|
Write the complete code on Turn 1. Verify by running it. Fix if needed.
|
|
252
266
|
|
|
253
267
|
Rules:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|