emdash-core 0.1.7__py3-none-any.whl → 0.1.33__py3-none-any.whl
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.
- emdash_core/__init__.py +6 -1
- emdash_core/agent/__init__.py +4 -0
- emdash_core/agent/events.py +52 -1
- emdash_core/agent/inprocess_subagent.py +123 -10
- emdash_core/agent/prompts/__init__.py +6 -0
- emdash_core/agent/prompts/main_agent.py +53 -3
- emdash_core/agent/prompts/plan_mode.py +255 -0
- emdash_core/agent/prompts/subagents.py +84 -16
- emdash_core/agent/prompts/workflow.py +270 -56
- emdash_core/agent/providers/base.py +4 -0
- emdash_core/agent/providers/factory.py +2 -2
- emdash_core/agent/providers/models.py +7 -0
- emdash_core/agent/providers/openai_provider.py +137 -13
- emdash_core/agent/runner/__init__.py +49 -0
- emdash_core/agent/runner/agent_runner.py +753 -0
- emdash_core/agent/runner/context.py +451 -0
- emdash_core/agent/runner/factory.py +108 -0
- emdash_core/agent/runner/plan.py +217 -0
- emdash_core/agent/runner/sdk_runner.py +324 -0
- emdash_core/agent/runner/utils.py +67 -0
- emdash_core/agent/skills.py +358 -0
- emdash_core/agent/toolkit.py +85 -5
- emdash_core/agent/toolkits/plan.py +9 -11
- emdash_core/agent/tools/__init__.py +3 -2
- emdash_core/agent/tools/coding.py +48 -4
- emdash_core/agent/tools/modes.py +207 -55
- emdash_core/agent/tools/search.py +4 -0
- emdash_core/agent/tools/skill.py +193 -0
- emdash_core/agent/tools/spec.py +61 -94
- emdash_core/agent/tools/task.py +41 -2
- emdash_core/agent/tools/tasks.py +15 -78
- emdash_core/api/agent.py +562 -8
- emdash_core/api/index.py +1 -1
- emdash_core/api/projectmd.py +4 -2
- emdash_core/api/router.py +2 -0
- emdash_core/api/skills.py +241 -0
- emdash_core/checkpoint/__init__.py +40 -0
- emdash_core/checkpoint/cli.py +175 -0
- emdash_core/checkpoint/git_operations.py +250 -0
- emdash_core/checkpoint/manager.py +231 -0
- emdash_core/checkpoint/models.py +107 -0
- emdash_core/checkpoint/storage.py +201 -0
- emdash_core/config.py +1 -1
- emdash_core/core/config.py +18 -2
- emdash_core/graph/schema.py +5 -5
- emdash_core/ingestion/orchestrator.py +19 -10
- emdash_core/models/agent.py +1 -1
- emdash_core/server.py +42 -0
- emdash_core/skills/frontend-design/SKILL.md +56 -0
- emdash_core/sse/stream.py +5 -0
- {emdash_core-0.1.7.dist-info → emdash_core-0.1.33.dist-info}/METADATA +2 -2
- {emdash_core-0.1.7.dist-info → emdash_core-0.1.33.dist-info}/RECORD +54 -37
- {emdash_core-0.1.7.dist-info → emdash_core-0.1.33.dist-info}/entry_points.txt +1 -0
- emdash_core/agent/runner.py +0 -601
- {emdash_core-0.1.7.dist-info → emdash_core-0.1.33.dist-info}/WHEEL +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Orchestrates the complete ingestion pipeline."""
|
|
2
2
|
|
|
3
|
-
from concurrent.futures import
|
|
3
|
+
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
from typing import Callable, Optional
|
|
6
6
|
|
|
@@ -25,8 +25,6 @@ from ..utils.logger import log
|
|
|
25
25
|
def _parse_file_worker(file_path: Path, repo_root: Path) -> FileEntities:
|
|
26
26
|
"""Worker function for parallel file parsing.
|
|
27
27
|
|
|
28
|
-
This is a module-level function so it can be pickled for ProcessPoolExecutor.
|
|
29
|
-
|
|
30
28
|
Args:
|
|
31
29
|
file_path: Path to source file
|
|
32
30
|
repo_root: Repository root path
|
|
@@ -94,7 +92,7 @@ class IngestionOrchestrator:
|
|
|
94
92
|
|
|
95
93
|
# Acquire write lock for the entire indexing operation
|
|
96
94
|
with write_lock_context("indexing", timeout=120):
|
|
97
|
-
self._run_index(repo_path, incremental, changed_only, skip_git, pr_limit)
|
|
95
|
+
return self._run_index(repo_path, incremental, changed_only, skip_git, pr_limit)
|
|
98
96
|
|
|
99
97
|
def _run_index(
|
|
100
98
|
self,
|
|
@@ -133,7 +131,7 @@ class IngestionOrchestrator:
|
|
|
133
131
|
changed_only = False
|
|
134
132
|
elif last_indexed_commit == current_commit:
|
|
135
133
|
log.info("No changes since last index - nothing to do")
|
|
136
|
-
return
|
|
134
|
+
return {"files": 0, "functions": 0, "classes": 0, "modules": 0, "commits": 0, "authors": 0, "prs": 0, "message": "No changes since last index"}
|
|
137
135
|
else:
|
|
138
136
|
extensions = ParserRegistry.get_all_extensions()
|
|
139
137
|
detector = ChangeDetector(repo, last_indexed_commit)
|
|
@@ -141,7 +139,7 @@ class IngestionOrchestrator:
|
|
|
141
139
|
|
|
142
140
|
if not changed_files:
|
|
143
141
|
log.info("No relevant file changes detected - nothing to do")
|
|
144
|
-
return
|
|
142
|
+
return {"files": 0, "functions": 0, "classes": 0, "modules": 0, "commits": 0, "authors": 0, "prs": 0, "message": "No relevant file changes"}
|
|
145
143
|
|
|
146
144
|
log.info(f"Changes detected: {changed_files.total_changes} files")
|
|
147
145
|
|
|
@@ -157,7 +155,7 @@ class IngestionOrchestrator:
|
|
|
157
155
|
# Parse only added and modified files
|
|
158
156
|
entities = self._parse_codebase(repo, file_filter=changed_files.all_to_index)
|
|
159
157
|
else:
|
|
160
|
-
log.info("Step 2:
|
|
158
|
+
log.info("Step 2: Indexing codebase (Layer A)...")
|
|
161
159
|
entities = self._parse_codebase(repo)
|
|
162
160
|
|
|
163
161
|
# Step 3: Extract git history (Layer B)
|
|
@@ -201,6 +199,17 @@ class IngestionOrchestrator:
|
|
|
201
199
|
log.info("✓ Indexing complete!")
|
|
202
200
|
self._print_summary(entities, git_data, prs)
|
|
203
201
|
|
|
202
|
+
# Return stats for API response
|
|
203
|
+
return {
|
|
204
|
+
"files": len(entities.files),
|
|
205
|
+
"functions": len(entities.functions),
|
|
206
|
+
"classes": len(entities.classes),
|
|
207
|
+
"modules": len(entities.modules),
|
|
208
|
+
"commits": len(git_data.commits) if git_data else 0,
|
|
209
|
+
"authors": len(git_data.authors) if git_data else 0,
|
|
210
|
+
"prs": len(prs) if prs else 0,
|
|
211
|
+
}
|
|
212
|
+
|
|
204
213
|
def _ensure_database_ready(self):
|
|
205
214
|
"""Ensure database connection and schema are ready."""
|
|
206
215
|
log.info("Connecting to Kuzu and ensuring schema...")
|
|
@@ -350,7 +359,7 @@ class IngestionOrchestrator:
|
|
|
350
359
|
last_reported_percent = (current_percent // 10) * 10
|
|
351
360
|
# Map parsing progress (0-100) to overall progress (10-70)
|
|
352
361
|
overall_percent = 10 + (last_reported_percent * 0.6)
|
|
353
|
-
self._progress_callback(
|
|
362
|
+
self._progress_callback("Parsing files", overall_percent)
|
|
354
363
|
|
|
355
364
|
return CodebaseEntities.merge(results)
|
|
356
365
|
|
|
@@ -373,7 +382,7 @@ class IngestionOrchestrator:
|
|
|
373
382
|
last_reported_percent = 0
|
|
374
383
|
completed = 0
|
|
375
384
|
|
|
376
|
-
with
|
|
385
|
+
with ThreadPoolExecutor(max_workers=self.config.ingestion.max_workers) as executor:
|
|
377
386
|
# Submit all tasks
|
|
378
387
|
futures = {
|
|
379
388
|
executor.submit(_parse_file_worker, file_path, repo_root): file_path
|
|
@@ -401,7 +410,7 @@ class IngestionOrchestrator:
|
|
|
401
410
|
if current_percent >= last_reported_percent + 10:
|
|
402
411
|
last_reported_percent = (current_percent // 10) * 10
|
|
403
412
|
overall_percent = 10 + (last_reported_percent * 0.6)
|
|
404
|
-
self._progress_callback(
|
|
413
|
+
self._progress_callback("Parsing files", overall_percent)
|
|
405
414
|
|
|
406
415
|
return CodebaseEntities.merge(results)
|
|
407
416
|
|
emdash_core/models/agent.py
CHANGED
|
@@ -26,7 +26,7 @@ class ImageData(BaseModel):
|
|
|
26
26
|
class AgentChatOptions(BaseModel):
|
|
27
27
|
"""Options for agent chat."""
|
|
28
28
|
|
|
29
|
-
max_iterations: int = Field(default=
|
|
29
|
+
max_iterations: int = Field(default=100, description="Maximum agent iterations")
|
|
30
30
|
verbose: bool = Field(default=True, description="Enable verbose output")
|
|
31
31
|
mode: AgentMode = Field(default=AgentMode.CODE, description="Agent mode")
|
|
32
32
|
context_threshold: float = Field(
|
emdash_core/server.py
CHANGED
|
@@ -38,6 +38,47 @@ def _load_env_files(repo_root: Optional[str] = None):
|
|
|
38
38
|
load_dotenv(env_path, override=True)
|
|
39
39
|
|
|
40
40
|
|
|
41
|
+
def _shutdown_executors():
|
|
42
|
+
"""Shutdown all module-level thread pool executors and database connections."""
|
|
43
|
+
from concurrent.futures import ThreadPoolExecutor
|
|
44
|
+
|
|
45
|
+
# Import all modules with executors and shut them down
|
|
46
|
+
executor_modules = [
|
|
47
|
+
"emdash_core.api.index",
|
|
48
|
+
"emdash_core.api.auth",
|
|
49
|
+
"emdash_core.api.swarm",
|
|
50
|
+
"emdash_core.api.tasks",
|
|
51
|
+
"emdash_core.api.research",
|
|
52
|
+
"emdash_core.api.spec",
|
|
53
|
+
"emdash_core.api.team",
|
|
54
|
+
"emdash_core.api.review",
|
|
55
|
+
"emdash_core.api.agent",
|
|
56
|
+
"emdash_core.api.projectmd",
|
|
57
|
+
"emdash_core.agent.inprocess_subagent",
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
for module_name in executor_modules:
|
|
61
|
+
try:
|
|
62
|
+
module = sys.modules.get(module_name)
|
|
63
|
+
if module and hasattr(module, "_executor"):
|
|
64
|
+
executor = getattr(module, "_executor")
|
|
65
|
+
if executor and isinstance(executor, ThreadPoolExecutor):
|
|
66
|
+
executor.shutdown(wait=False)
|
|
67
|
+
except Exception:
|
|
68
|
+
pass # Ignore errors during shutdown
|
|
69
|
+
|
|
70
|
+
# Close database connections
|
|
71
|
+
try:
|
|
72
|
+
from .graph.connection import get_connection, _read_connection
|
|
73
|
+
conn = get_connection()
|
|
74
|
+
if conn:
|
|
75
|
+
conn.close()
|
|
76
|
+
if _read_connection:
|
|
77
|
+
_read_connection.close()
|
|
78
|
+
except Exception:
|
|
79
|
+
pass # Ignore errors during shutdown
|
|
80
|
+
|
|
81
|
+
|
|
41
82
|
@asynccontextmanager
|
|
42
83
|
async def lifespan(app: FastAPI):
|
|
43
84
|
"""Application lifespan handler."""
|
|
@@ -57,6 +98,7 @@ async def lifespan(app: FastAPI):
|
|
|
57
98
|
|
|
58
99
|
# Shutdown
|
|
59
100
|
print("EmDash Core shutting down...")
|
|
101
|
+
_shutdown_executors()
|
|
60
102
|
if port_file.exists():
|
|
61
103
|
port_file.unlink()
|
|
62
104
|
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-design
|
|
3
|
+
description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
|
|
4
|
+
user_invocable: true
|
|
5
|
+
tools: []
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Frontend Design
|
|
9
|
+
|
|
10
|
+
This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.
|
|
11
|
+
|
|
12
|
+
The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.
|
|
13
|
+
|
|
14
|
+
## Design Thinking
|
|
15
|
+
|
|
16
|
+
Before coding, understand the context and commit to a BOLD aesthetic direction:
|
|
17
|
+
|
|
18
|
+
- **Purpose**: What problem does this interface solve? Who uses it?
|
|
19
|
+
- **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
|
|
20
|
+
- **Constraints**: Technical requirements (framework, performance, accessibility).
|
|
21
|
+
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
|
|
22
|
+
|
|
23
|
+
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
|
|
24
|
+
|
|
25
|
+
Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
|
|
26
|
+
|
|
27
|
+
- Production-grade and functional
|
|
28
|
+
- Visually striking and memorable
|
|
29
|
+
- Cohesive with a clear aesthetic point-of-view
|
|
30
|
+
- Meticulously refined in every detail
|
|
31
|
+
|
|
32
|
+
## Frontend Aesthetics Guidelines
|
|
33
|
+
|
|
34
|
+
Focus on:
|
|
35
|
+
|
|
36
|
+
- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
|
|
37
|
+
- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
|
|
38
|
+
- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
|
|
39
|
+
- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
|
|
40
|
+
- **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.
|
|
41
|
+
|
|
42
|
+
## What to Avoid
|
|
43
|
+
|
|
44
|
+
NEVER use generic AI-generated aesthetics like:
|
|
45
|
+
- Overused font families (Inter, Roboto, Arial, system fonts)
|
|
46
|
+
- Cliched color schemes (particularly purple gradients on white backgrounds)
|
|
47
|
+
- Predictable layouts and component patterns
|
|
48
|
+
- Cookie-cutter design that lacks context-specific character
|
|
49
|
+
|
|
50
|
+
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
|
|
51
|
+
|
|
52
|
+
## Implementation Complexity
|
|
53
|
+
|
|
54
|
+
**IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
|
|
55
|
+
|
|
56
|
+
Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
|
emdash_core/sse/stream.py
CHANGED
|
@@ -16,6 +16,10 @@ class EventType(str, Enum):
|
|
|
16
16
|
TOOL_START = "tool_start"
|
|
17
17
|
TOOL_RESULT = "tool_result"
|
|
18
18
|
|
|
19
|
+
# Sub-agent lifecycle
|
|
20
|
+
SUBAGENT_START = "subagent_start"
|
|
21
|
+
SUBAGENT_END = "subagent_end"
|
|
22
|
+
|
|
19
23
|
# Agent thinking/progress
|
|
20
24
|
THINKING = "thinking"
|
|
21
25
|
PROGRESS = "progress"
|
|
@@ -27,6 +31,7 @@ class EventType(str, Enum):
|
|
|
27
31
|
# Interaction
|
|
28
32
|
CLARIFICATION = "clarification"
|
|
29
33
|
CLARIFICATION_RESPONSE = "clarification_response"
|
|
34
|
+
PLAN_SUBMITTED = "plan_submitted"
|
|
30
35
|
|
|
31
36
|
# Errors
|
|
32
37
|
ERROR = "error"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: emdash-core
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.33
|
|
4
4
|
Summary: EmDash Core - FastAPI server for code intelligence
|
|
5
5
|
Author: Em Dash Team
|
|
6
6
|
Requires-Python: >=3.10,<4.0
|
|
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.14
|
|
13
13
|
Requires-Dist: astroid (>=3.0.1,<4.0.0)
|
|
14
14
|
Requires-Dist: beautifulsoup4 (>=4.12.0)
|
|
15
|
+
Requires-Dist: claude-agent-sdk (>=0.1.19)
|
|
15
16
|
Requires-Dist: duckduckgo-search (>=6.0.0)
|
|
16
17
|
Requires-Dist: fastapi (>=0.109.0)
|
|
17
18
|
Requires-Dist: gitpython (>=3.1.40,<4.0.0)
|
|
@@ -27,7 +28,6 @@ Requires-Dist: pydantic-settings (>=2.0.0,<3.0.0)
|
|
|
27
28
|
Requires-Dist: pygithub (>=2.1.1,<3.0.0)
|
|
28
29
|
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
|
|
29
30
|
Requires-Dist: python-louvain (>=0.16,<0.17)
|
|
30
|
-
Requires-Dist: scipy (>=1.11.4,<2.0.0)
|
|
31
31
|
Requires-Dist: sentence-transformers (>=2.2.0)
|
|
32
32
|
Requires-Dist: sse-starlette (>=2.0.0)
|
|
33
33
|
Requires-Dist: supabase (>=2.0.0)
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
emdash_core/__init__.py,sha256=
|
|
2
|
-
emdash_core/agent/__init__.py,sha256=
|
|
1
|
+
emdash_core/__init__.py,sha256=2VnFDN5zmKekKBa5rHZY9nz2Dhv2lB_O6dTcz-wyF8s,226
|
|
2
|
+
emdash_core/agent/__init__.py,sha256=rGY5MXggrv6TLHqNMp3v1oDldL_KErvLIoHARimlNbk,1195
|
|
3
3
|
emdash_core/agent/agents.py,sha256=CCsDJSl9Vwhitc71L9oQ6SO_qhhyumI7L07Osmgugcg,5825
|
|
4
4
|
emdash_core/agent/code_reviewer.py,sha256=oUXcDbk773kwYtcCsUNEjb_ipS9rLeCKIv_IEUiUA9k,16467
|
|
5
5
|
emdash_core/agent/compaction.py,sha256=_smuIjmzaiblr6viRFByQCekRzoZDTetcaXRLQol8CI,4102
|
|
6
6
|
emdash_core/agent/context_manager.py,sha256=3HBQFRwsq1bBx6R7FQp7xFsiW0zPLPnOF-8Ox4Y6K44,3676
|
|
7
|
-
emdash_core/agent/events.py,sha256=
|
|
7
|
+
emdash_core/agent/events.py,sha256=Qw6s6jzBFXIlsDNpPBiIwNB72tnjbAJNt6hhcblOslg,11930
|
|
8
8
|
emdash_core/agent/handlers.py,sha256=3zo76GT3cTfYayK1qvP2NFo14AXHfA36X-yaa7Xm3T0,7135
|
|
9
|
-
emdash_core/agent/inprocess_subagent.py,sha256=
|
|
9
|
+
emdash_core/agent/inprocess_subagent.py,sha256=spYScY2T2ej_XCuNkQE1CDoyb5cutbLseC8PbX2gpwA,15877
|
|
10
10
|
emdash_core/agent/mcp/__init__.py,sha256=qzQMJJOgOYVb6X2uyJxTIGgV5x35Dn7H3IglZxToX_c,1081
|
|
11
11
|
emdash_core/agent/mcp/client.py,sha256=_ae6CWRnJfG_mcCcIYZJYbWjajpZC-WmZgsZsRaahco,9753
|
|
12
12
|
emdash_core/agent/mcp/config.py,sha256=JrO7xIC3oSiFlxeTVynKm1pq2CrYdqzTsIJj9neSJLQ,9220
|
|
13
13
|
emdash_core/agent/mcp/manager.py,sha256=i4OIJyAwfBAw0E8fe6NIOvT-UTf1_hmDbEtIjtAhRjc,15382
|
|
14
14
|
emdash_core/agent/mcp/tool_factory.py,sha256=jtQJ2TW7KdGVSg3fUp9-rm7MbHjiwWmy0yLfwr0H4qc,6410
|
|
15
|
-
emdash_core/agent/prompts/__init__.py,sha256=
|
|
16
|
-
emdash_core/agent/prompts/main_agent.py,sha256=
|
|
17
|
-
emdash_core/agent/prompts/
|
|
18
|
-
emdash_core/agent/prompts/
|
|
15
|
+
emdash_core/agent/prompts/__init__.py,sha256=BuCvF0XLJdhXSWNz0NoJI6dBnomLzRcfZxdBWmkh8tg,987
|
|
16
|
+
emdash_core/agent/prompts/main_agent.py,sha256=d-OB18Kdw6H2CF8AUSvmFGDdI6-k_8P7nobyik37fQk,4828
|
|
17
|
+
emdash_core/agent/prompts/plan_mode.py,sha256=xGtYv8rvdhQhFKSqZpG4byawEPjQGSFuqO14cZcGThI,8070
|
|
18
|
+
emdash_core/agent/prompts/subagents.py,sha256=-hVDu465Rg_042YIr6Dkdy_rM-qzzjfrjQB9GqCoNv8,6946
|
|
19
|
+
emdash_core/agent/prompts/workflow.py,sha256=ou5ilg7eg3E7A0AgvT70u4trO_enKzkUpgNc74qKbOE,12898
|
|
19
20
|
emdash_core/agent/providers/__init__.py,sha256=q58ektAl1zwuS3z36ctHfLB8XruYghT97aq_oj1T_G0,776
|
|
20
|
-
emdash_core/agent/providers/base.py,sha256=
|
|
21
|
-
emdash_core/agent/providers/factory.py,sha256=
|
|
22
|
-
emdash_core/agent/providers/models.py,sha256=
|
|
23
|
-
emdash_core/agent/providers/openai_provider.py,sha256=
|
|
21
|
+
emdash_core/agent/providers/base.py,sha256=m1Vuac2Gtr191YDkefG_3qD64iIT9Ps2WoZC1LWmfJU,4351
|
|
22
|
+
emdash_core/agent/providers/factory.py,sha256=UgPVNQupa73dKugyG_JqFgVdj4y5YJIGbcGXEbzx_1c,3213
|
|
23
|
+
emdash_core/agent/providers/models.py,sha256=0mkkqiXOQKV25GbqJvm-85mPiJx3Cb3jbn3KTV4NbU0,8710
|
|
24
|
+
emdash_core/agent/providers/openai_provider.py,sha256=URUv4g7P_87yOuWNYPd9pZNlw3SuCdPe5bvX-I_2EW0,21037
|
|
24
25
|
emdash_core/agent/providers/transformers_provider.py,sha256=USSzYIcZrcTAKDKwiNobYUDS024ZVZ34WAuYWGbs9Nk,7167
|
|
25
26
|
emdash_core/agent/research/__init__.py,sha256=4LU9Skk3sxsDy8GzfOxCjNxxqaxOm94hV5cH-Nyqn7g,1992
|
|
26
27
|
emdash_core/agent/research/agent.py,sha256=dGjSZL2rsuJmSRpa8060R5gIvX8rIj57Zs21LsBJ-1U,3819
|
|
@@ -33,37 +34,45 @@ emdash_core/agent/research/state.py,sha256=P44YUTUhMrAmt--xsj8Hi0SzbDmrLXKPEf83H
|
|
|
33
34
|
emdash_core/agent/research/synthesizer.py,sha256=j4UvH8JxUjo7RF-h69tpRERgN6pHSb8qNBOoKrH2Qro,19016
|
|
34
35
|
emdash_core/agent/reviewer_profile.py,sha256=RkJ_Mk5vbp2U-e0UBWB-k59cHsTzLj0aro22KJVCbss,16075
|
|
35
36
|
emdash_core/agent/rules.py,sha256=GVwfM6YlRxrPXLZ0h2cZFOx4l_mPPl0Bdwt8oxfMBLI,3014
|
|
36
|
-
emdash_core/agent/runner.py,sha256=
|
|
37
|
+
emdash_core/agent/runner/__init__.py,sha256=FK3FUSsdKImso-QATYam5OnQhpCCHyXnXYRtmoLdQ80,1384
|
|
38
|
+
emdash_core/agent/runner/agent_runner.py,sha256=kDpiF7i5nxBMtJG9Y_ki0gfWBkS_eJzwEswZJr6zZFs,31706
|
|
39
|
+
emdash_core/agent/runner/context.py,sha256=Yw2A2q1Uisgpye3n1rqYQFSmZRidvbxWnUJdvm_EgpI,14124
|
|
40
|
+
emdash_core/agent/runner/factory.py,sha256=SXtfgD4F8R8cUDR4Tt-3LPHSDjyJwkyEAbxflXgjkqc,3288
|
|
41
|
+
emdash_core/agent/runner/plan.py,sha256=WMra-xpWeNJ0YtdnQMsd2aak5BhryrzUP_OtZMhlzeA,7336
|
|
42
|
+
emdash_core/agent/runner/sdk_runner.py,sha256=KrlWLagZc_01jqYBHioqz2WIJqXmb3INyFnYuTQnBZA,10587
|
|
43
|
+
emdash_core/agent/runner/utils.py,sha256=1feF3-rYA9x3Inh7pKdtPSGpMzNM5bBV5s6CJVCqqJQ,1826
|
|
37
44
|
emdash_core/agent/session.py,sha256=Zr7m8IK4-J6CDIMmN2QiSqpDT_O2S-SXu3Qmy9w6dk8,8517
|
|
45
|
+
emdash_core/agent/skills.py,sha256=0DPDmcSjG8J4LrUID90qH8MFBJ9OIFHS9CKH3jUl0Oc,10516
|
|
38
46
|
emdash_core/agent/spec_schema.py,sha256=tmTCrO4zKXkOblW6gRyrQ3_ZdYU-ehnLE8YmZbhPHWQ,1429
|
|
39
47
|
emdash_core/agent/specification.py,sha256=b1nUQiGT4NiRv42hDkYAXVX_RtsKcHrf4Ae1dx0UVnc,19105
|
|
40
48
|
emdash_core/agent/subagent.py,sha256=zIlhbHOCUEgYtYLYwiQ7dkSleqI60emyBA-5XLPaH_k,12150
|
|
41
49
|
emdash_core/agent/subagent_prompts.py,sha256=pJJPXh4FlnE8bt9d-Ruquz6j8W-BS9pMCbXRqpgwq4g,407
|
|
42
|
-
emdash_core/agent/toolkit.py,sha256=
|
|
50
|
+
emdash_core/agent/toolkit.py,sha256=bNDBNlxYEKwD5KkIsrZ4505ITKrlxt-W99H9pS_12BY,19897
|
|
43
51
|
emdash_core/agent/toolkits/__init__.py,sha256=HrWyA1M666V0UZ6P7YISnnQg4rblWbIFW_HcMKlHfK4,1814
|
|
44
52
|
emdash_core/agent/toolkits/base.py,sha256=Z4IMrli7UMi7K3rWhqfph_5vv9Tdnc0M8iCQDgE_3lM,2587
|
|
45
53
|
emdash_core/agent/toolkits/explore.py,sha256=ymyvLjIXy80h3lb4y_DZ06T0vADCal976qMW19J6N8A,1395
|
|
46
|
-
emdash_core/agent/toolkits/plan.py,sha256=
|
|
47
|
-
emdash_core/agent/tools/__init__.py,sha256=
|
|
54
|
+
emdash_core/agent/toolkits/plan.py,sha256=wUj98JI6l7TjWLgXnPfAsmqXDqe02EdQ1akJVMgC9vc,1666
|
|
55
|
+
emdash_core/agent/tools/__init__.py,sha256=gJ8mAi4yg-jAYjq0UidDt1x8thkfxybX8RbOCoN6ZHc,2966
|
|
48
56
|
emdash_core/agent/tools/analytics.py,sha256=tEP_RWFpKGfFW_Yc5inMMjAkDFzpDQ77Ui_Ca7LQu60,14837
|
|
49
57
|
emdash_core/agent/tools/base.py,sha256=3clLKgR7Og5eDijZJLEcpJS1YV8u1rW_pXr_iwHdxTo,3349
|
|
50
|
-
emdash_core/agent/tools/coding.py,sha256=
|
|
58
|
+
emdash_core/agent/tools/coding.py,sha256=tGGfDzjQySkIhMWMcGxDbC_c2p_hJSOLAyUJ-FCJzxo,16573
|
|
51
59
|
emdash_core/agent/tools/github_mcp.py,sha256=D4fu_z9j-rL8SHD8TA2tO-ED-8Q4QB_RHQoqsh7Bjy8,16870
|
|
52
60
|
emdash_core/agent/tools/history.py,sha256=Zaers4Aul9-hrlMaGRcQHwfU2xb7yCjHFHSDtfMe3c4,423
|
|
53
|
-
emdash_core/agent/tools/modes.py,sha256=
|
|
61
|
+
emdash_core/agent/tools/modes.py,sha256=g82igKjpBeC23HgYRgULCNbjCRZQ6C-rmMMbNEGNbEk,10587
|
|
54
62
|
emdash_core/agent/tools/plan.py,sha256=RRvZsDHcvvDv6uyDSGhTYIoImZmI_7CCxCarkeSZjbQ,7922
|
|
55
63
|
emdash_core/agent/tools/plan_write.py,sha256=o4EEHTUr1hRfH3WSjrh3-QTfaJuUhjsQ5bJNBPD_j5Q,4417
|
|
56
|
-
emdash_core/agent/tools/search.py,sha256=
|
|
57
|
-
emdash_core/agent/tools/
|
|
58
|
-
emdash_core/agent/tools/
|
|
64
|
+
emdash_core/agent/tools/search.py,sha256=aq5_jc8YT3R3oZtulgvKwmz1oljJom20NfF_q60o60Q,14353
|
|
65
|
+
emdash_core/agent/tools/skill.py,sha256=B7IefgH2DndHXFOaozSnJkhLQj9VQHNJH7-0ovgVmS0,6124
|
|
66
|
+
emdash_core/agent/tools/spec.py,sha256=R9Ib-1epCVrgbOB6C9qYkwvgut94x3P2g4_FM_tMd2M,10022
|
|
67
|
+
emdash_core/agent/tools/task.py,sha256=BQLqSXULtQPRw5BFix6MdiNvfMFo0TqAa4momN_wQys,10719
|
|
59
68
|
emdash_core/agent/tools/task_output.py,sha256=30EI8JAKBDw6gLmjF8bXAq00yMr-Qk14J7fv2kDVX1c,6421
|
|
60
|
-
emdash_core/agent/tools/tasks.py,sha256=
|
|
69
|
+
emdash_core/agent/tools/tasks.py,sha256=VT-oLFKzswmKu02H1hc_ercJ1blbseCo0Q0qRBh0DjM,11844
|
|
61
70
|
emdash_core/agent/tools/traversal.py,sha256=qQvHkledo_rT9q9kxk07pijY8XqkR4WWB5pFWVmG01I,20249
|
|
62
71
|
emdash_core/agent/tools/web.py,sha256=cqm4eiiBzeGCOmQE---uT9zlgsQUX9WY_YYz7wQbK1U,5521
|
|
63
72
|
emdash_core/analytics/__init__.py,sha256=5ky2djAly3-3lbQmUuNJlJTmBDaXjN2lOUw-OP2F1Zk,98
|
|
64
73
|
emdash_core/analytics/engine.py,sha256=f1go7SNnSlM_sFUEvmHrD4PTY9G39REBC7w01xdh3as,47738
|
|
65
74
|
emdash_core/api/__init__.py,sha256=L11AeV6gaCJjlZ8DU_q-lcuZYH9WV3BV4GYq8JF8BuI,92
|
|
66
|
-
emdash_core/api/agent.py,sha256=
|
|
75
|
+
emdash_core/api/agent.py,sha256=nLkdqaJvgKyKQTg8EpMvMdbK23rbWgDdZROeyCC_v6k,26207
|
|
67
76
|
emdash_core/api/agents.py,sha256=kInkI6iGnQuRxz5wS9w_Owq-4iceUJgugIOrWGDLkGA,3673
|
|
68
77
|
emdash_core/api/analyze.py,sha256=cR6wWzqSvp_5cNyUg0qACNF7DYdrcNkzhmRqgaqnd78,7593
|
|
69
78
|
emdash_core/api/auth.py,sha256=vnhH_xcsoTDYrCDBDytlm0LOV9yDoar04NL5FZKI8JU,4832
|
|
@@ -72,22 +81,29 @@ emdash_core/api/db.py,sha256=3Y702OOO-RTMRQxvKaaNW3x2f74agTSdyEKserPjyg4,3162
|
|
|
72
81
|
emdash_core/api/embed.py,sha256=fi7bvXRaYJg-lR7dMF6czYgyMi1Hcu4undoCEO6VqEM,4065
|
|
73
82
|
emdash_core/api/feature.py,sha256=DFqYMAjtmo4jzjdI1u1vWDBU-heCsUl_bziKW7qjheQ,4759
|
|
74
83
|
emdash_core/api/health.py,sha256=MBFvhauwjoY75omSO-X0jyh1Rr9WSLVy_DkSLpDbFn0,2370
|
|
75
|
-
emdash_core/api/index.py,sha256=
|
|
84
|
+
emdash_core/api/index.py,sha256=7FtyfTvB6K5Yh1mQZ3qlYWQ492QqCA4aTBbdeZBdfb4,5269
|
|
76
85
|
emdash_core/api/plan.py,sha256=k5b-nhSpo18Y-HI4RAqmabJWvLXTx9tt0cR3PNj9ewQ,3350
|
|
77
|
-
emdash_core/api/projectmd.py,sha256=
|
|
86
|
+
emdash_core/api/projectmd.py,sha256=KJmLpiTNwXK75_ADdUIWl2OfPLZU-WQaffsV1I5F8ZY,6105
|
|
78
87
|
emdash_core/api/query.py,sha256=90HuhYGRiPtolYMBdlYcgW8DV_SvYo0H2xZ_YUWVPRw,10188
|
|
79
88
|
emdash_core/api/research.py,sha256=_r0BDkvzLRE2sF4yMQye9IqSeu9yBGlXAYdr-LAlnm8,3511
|
|
80
89
|
emdash_core/api/review.py,sha256=zOGrwwThZP_himnFyBKCl4mo4gjniuEaWGNWqcKajb0,4766
|
|
81
|
-
emdash_core/api/router.py,sha256=
|
|
90
|
+
emdash_core/api/router.py,sha256=7dVshcIe4m_T-FlRTRvw1RB8U9-bLPef9GdI42ONMvI,1529
|
|
82
91
|
emdash_core/api/rules.py,sha256=BbIE_RKX8VGlUqxny0OK-tKoTK58bDBFXBf_1x3yN7g,3242
|
|
83
92
|
emdash_core/api/search.py,sha256=qPVVTNRExbyG4Ri3X3F5uGpILhlvtH99dHBv7ZVkRIw,3696
|
|
93
|
+
emdash_core/api/skills.py,sha256=8hF7IkM--aMMaNEaa16DoHl-8fBVx8oYCBnnqgsFkuE,6422
|
|
84
94
|
emdash_core/api/spec.py,sha256=ub09u1mkqpcF-z0Q1YU9FAkJb0LDyV_eG0_KXYLFmuk,2912
|
|
85
95
|
emdash_core/api/swarm.py,sha256=-CNY-NCVnwes0MlHV5yq_ZUie8pJxt0Fdg4g5R94dKo,6561
|
|
86
96
|
emdash_core/api/tasks.py,sha256=kyrhSc46wfwM3csOT26Gsx9SNjKSTwC9BQ5qMqe1uaY,3160
|
|
87
97
|
emdash_core/api/team.py,sha256=nHdsTIQ-ZDlpByNIVpSl4Ahf4q51A_HwQTnnmBq6agA,3308
|
|
88
98
|
emdash_core/auth/__init__.py,sha256=NpcoEyqtqYwUTKKFwNGKgroPOGtXS5rUpH2D9t2_4TY,290
|
|
89
99
|
emdash_core/auth/github.py,sha256=__qpcWbi9dWC4W9FQfyJ6KEg7N1gXQW9k9Aub45EQ_o,11269
|
|
90
|
-
emdash_core/
|
|
100
|
+
emdash_core/checkpoint/__init__.py,sha256=hN3CaoH2hqTb-KquSmdQlSyKb_3oFS10UbTgHSQRC5w,1184
|
|
101
|
+
emdash_core/checkpoint/cli.py,sha256=acq2qO6Ea5_a8GSJefPMOP0v8xv5a_afeY8c48z0bXE,5778
|
|
102
|
+
emdash_core/checkpoint/git_operations.py,sha256=cBn7fElPvr_11jmzvnw4ZMSVKBOwKIHuSJ4sSq71n2o,7652
|
|
103
|
+
emdash_core/checkpoint/manager.py,sha256=XHzZxaSw-rOguULtuddPeumhPRlxMJAzSAqFFS-KMgE,7420
|
|
104
|
+
emdash_core/checkpoint/models.py,sha256=0xfpeNHmLgVVzMzSo-C1dm-1bEWBAZvFED_1Du-RptI,3390
|
|
105
|
+
emdash_core/checkpoint/storage.py,sha256=AKUwxeMA05hmxwdRPFivwqv0GWGYgCBlV4m9auzlxpk,5970
|
|
106
|
+
emdash_core/config.py,sha256=i2M9iRxiZQiKlkc1I0goXwI7ac6ABEdku58u_mGbWbA,2216
|
|
91
107
|
emdash_core/context/__init__.py,sha256=_6hqH8FtCi4Q3OpuC9zDPDEXuBitLxrY20CdookRTsY,1496
|
|
92
108
|
emdash_core/context/models.py,sha256=eQdjaea5M6iQ-9ZxJ5IVQgiQEPbZz81Xe2B186GuSYI,1304
|
|
93
109
|
emdash_core/context/providers/__init__.py,sha256=cWokJwYatvihXoyhqM6BHbG4JQeImgWzyjLdj60BqS4,261
|
|
@@ -99,7 +115,7 @@ emdash_core/context/reranker.py,sha256=xoajICW7yhxBtq6yJnFDzQXRl0_G8W-ACQyalZ72U
|
|
|
99
115
|
emdash_core/context/service.py,sha256=vTSCUoXdNGTTs0ZtMHInX3uG5Wbol-lpCXEn4ICNCDo,9438
|
|
100
116
|
emdash_core/context/session.py,sha256=XqDELflx7TGosraTU3mBJcZLwD1Ihv2DtuFjeoxjF7A,12424
|
|
101
117
|
emdash_core/core/__init__.py,sha256=KW97frnmqf5PWHIvYpdZN7aaAPaUXWfsLEEicdZ3g80,1987
|
|
102
|
-
emdash_core/core/config.py,sha256=
|
|
118
|
+
emdash_core/core/config.py,sha256=OLI-tbeI8KGzX9GzpL0YcjRJbN1TgCxlaVXSCfkfesU,16044
|
|
103
119
|
emdash_core/core/exceptions.py,sha256=LA4bsgEmPJUKQiBmrMpbPT6Iatu4xQLdenGMceMD2Yk,1186
|
|
104
120
|
emdash_core/core/models.py,sha256=U2achHuaaP9Qr2qZEqBvdzpbxNN2z-SJWjjGpBBiCu4,7810
|
|
105
121
|
emdash_core/core/review_config.py,sha256=pP8d_0D6mzKg2iYLjrbF9XcI8FIPLwZa0onUDUTvgkM,1455
|
|
@@ -121,7 +137,7 @@ emdash_core/embeddings/service.py,sha256=nvSpMsqzoEnZA7iwLHwTWMqR3YzeFnbGFrL1RmN
|
|
|
121
137
|
emdash_core/graph/__init__.py,sha256=H8Ib_jH6Tu8EGKYw8pAaiFrmMMOvty7AMiOiypbKA4M,530
|
|
122
138
|
emdash_core/graph/builder.py,sha256=INh81gubFgmow25eNm2Z139p9VAmZhRx9pyylOhJxgw,4531
|
|
123
139
|
emdash_core/graph/connection.py,sha256=ZhMPQpPv_oQOUzdObfwswnuTivsYs90Mawi6DejbYI8,22113
|
|
124
|
-
emdash_core/graph/schema.py,sha256=
|
|
140
|
+
emdash_core/graph/schema.py,sha256=sKjW1GS3tutpFNeXF7TVMA17iOMEdnyfLGG3hbEigXA,13281
|
|
125
141
|
emdash_core/graph/writer.py,sha256=QleDLLB2PTj2cd3vFMrgZXZWk9-_sC1MZMFzFZHjFnE,26191
|
|
126
142
|
emdash_core/ingestion/__init__.py,sha256=hyGLUPT04C9RXj7zaJF_389-8KA6xQN8zCX8l2v_NZ0,276
|
|
127
143
|
emdash_core/ingestion/change_detector.py,sha256=LOAODz_apk4ZRfAINz4lf2gCEq1zqQk0bkRnfRrn9oM,5312
|
|
@@ -130,7 +146,7 @@ emdash_core/ingestion/git/commit_analyzer.py,sha256=4DftTUgycv6u695RxaVAIL4VzsTA
|
|
|
130
146
|
emdash_core/ingestion/github/__init__.py,sha256=G5SR95r5heXPfcgNUpvN241x8zXs0IuyOQjmbPIDOGM,156
|
|
131
147
|
emdash_core/ingestion/github/pr_fetcher.py,sha256=zs2xijWTkHEEYdHpNVVzq1W2V8hmBelS39H5b3Ei77c,9539
|
|
132
148
|
emdash_core/ingestion/github/task_extractor.py,sha256=PNkm8xEAlss3MWDY_iRdLlxmyJBca3jRjNCVYoRVp0E,2679
|
|
133
|
-
emdash_core/ingestion/orchestrator.py,sha256=
|
|
149
|
+
emdash_core/ingestion/orchestrator.py,sha256=8Cq-WHJmu2fUPOBfBT0wExFysS7aKtln-wcjjjHE_V0,20303
|
|
134
150
|
emdash_core/ingestion/parsers/__init__.py,sha256=_zathXaXCNKL-Qiezvi3UCxxRnBHCTUOXYOcpoteExU,347
|
|
135
151
|
emdash_core/ingestion/parsers/base_parser.py,sha256=rlNsMLfZ4nOp7ufqTbfd-7vXP9oPoqumgt5gW72efU4,2072
|
|
136
152
|
emdash_core/ingestion/parsers/call_graph_builder.py,sha256=GUqvKAOIM1gnGTph4risf-E6hJnXJhFpPbBsYPyxLu4,3703
|
|
@@ -143,7 +159,7 @@ emdash_core/ingestion/parsers/ts_ast_parser.js,sha256=bvFEl97bzI-UItTvYkyT5D0rxX
|
|
|
143
159
|
emdash_core/ingestion/parsers/typescript_parser.py,sha256=UHEuKUwaEkrscZ7NEisBWcZxJ1Ltn7pUvsdTdccqMGY,10928
|
|
144
160
|
emdash_core/ingestion/repository.py,sha256=ZyKw4NYTIgw35LbkYSsqwNmQoGkpVq06q0qm6lFMGGM,10287
|
|
145
161
|
emdash_core/models/__init__.py,sha256=zTsIg4Sy2o2eTWGIpYP9rb_yFdR-DFZ1BSWF9DcrHqU,625
|
|
146
|
-
emdash_core/models/agent.py,sha256=
|
|
162
|
+
emdash_core/models/agent.py,sha256=W0-5lVM7YxuMznWw90QkMs3vhkH-OZb22sBedbWMMwc,1817
|
|
147
163
|
emdash_core/models/index.py,sha256=1dohTHOYvtOLmphGUELwgGH7DkMbhK_ykFn2_YmOtag,2207
|
|
148
164
|
emdash_core/models/query.py,sha256=3ZRTUzZoBr9IRrniXNLq2egUkg3k5tb9BXyu4xPB2DY,3480
|
|
149
165
|
emdash_core/planning/__init__.py,sha256=6db3V1maLCicMlRuG3JfGCnH84MxcdRrwBsGddlxVCg,267
|
|
@@ -154,9 +170,10 @@ emdash_core/planning/feature_expander.py,sha256=ADNv3qsbRqPtXKRVDSZIf4lcaf_hxdGc
|
|
|
154
170
|
emdash_core/planning/llm_explainer.py,sha256=jJlgO5_u5_7TCl_6F-0qoJWtpeY3FTXnR5vvHcqa0Dc,7150
|
|
155
171
|
emdash_core/planning/similarity.py,sha256=j3jiSWoTqlakHZGa-TxVJYknru7DzRaWlIOow2NG02o,18876
|
|
156
172
|
emdash_core/planning/team_focus.py,sha256=fv3rCyh_8sHk4w_yjzuw36KlKPAJLPZPgVOo762aneU,32405
|
|
157
|
-
emdash_core/server.py,sha256=
|
|
173
|
+
emdash_core/server.py,sha256=W6x217nJcYLFaybatMiVxDtqkNH-HejZEBn5PLXGryc,5169
|
|
174
|
+
emdash_core/skills/frontend-design/SKILL.md,sha256=fdqIqRS8J_pTH_9h5D-ZUdvYAqor9-xTl2FEYrDAOKA,4338
|
|
158
175
|
emdash_core/sse/__init__.py,sha256=q6nfbsqvEX7uYTuLwRMb4E73hW-o_Cuv63APod_Kluw,129
|
|
159
|
-
emdash_core/sse/stream.py,sha256=
|
|
176
|
+
emdash_core/sse/stream.py,sha256=CNiXTrTBMNDV6ZMml5Q7XkrXD8-4EqV6kSSIsbcazJ4,5354
|
|
160
177
|
emdash_core/swarm/__init__.py,sha256=EyL9U64ByQCCcL19ntwu2OU7labME3i3dSpSF25X6Mo,448
|
|
161
178
|
emdash_core/swarm/merge_agent.py,sha256=Fp0rqdHsd0m0swoAApq46QuBNDw5ejDk4dRddc1cD-E,13038
|
|
162
179
|
emdash_core/swarm/session_manager.py,sha256=RyLGpfXw-qFXJuQBP3Acw4w7LC_ZIhlPaDDkqjm-ycU,8999
|
|
@@ -181,7 +198,7 @@ emdash_core/utils/__init__.py,sha256=tQj81F7ZW61jsNg_R2bA9tDLdk0dc5kQswYWwZSqigU
|
|
|
181
198
|
emdash_core/utils/git.py,sha256=j5kppemwAOWe4Bc5a9qUmYYfKqxyi9WLk5U9HgwkgO4,2336
|
|
182
199
|
emdash_core/utils/image.py,sha256=K8uKDuhZqsJXwNDQ57Q3w2j0PQPyid_aEbiq66zy3p0,14607
|
|
183
200
|
emdash_core/utils/logger.py,sha256=iLaMA5vkUvxCfWsvZ7WZSDQWv4Gh5gJHeYbAB6urDio,1473
|
|
184
|
-
emdash_core-0.1.
|
|
185
|
-
emdash_core-0.1.
|
|
186
|
-
emdash_core-0.1.
|
|
187
|
-
emdash_core-0.1.
|
|
201
|
+
emdash_core-0.1.33.dist-info/METADATA,sha256=DzKymxf8EVFNST9WBtIHeLDIxbRaWWqXtRNgf2181kU,1386
|
|
202
|
+
emdash_core-0.1.33.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
203
|
+
emdash_core-0.1.33.dist-info/entry_points.txt,sha256=WgC9h0Bcsh0VaLfDv4hAKaY5krcT2Ati4UyoIJNavdk,105
|
|
204
|
+
emdash_core-0.1.33.dist-info/RECORD,,
|