monoco-toolkit 0.3.3__py3-none-any.whl → 0.3.6__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.
- monoco/features/issue/commands.py +0 -15
- monoco/features/issue/core.py +4 -0
- monoco/features/issue/engine/machine.py +0 -29
- monoco/features/issue/linter.py +35 -40
- monoco/features/issue/models.py +43 -13
- monoco/features/issue/resolver.py +177 -0
- monoco/features/issue/resources/en/AGENTS.md +6 -4
- monoco/features/issue/resources/zh/AGENTS.md +6 -4
- monoco/features/issue/test_priority_integration.py +103 -0
- monoco/features/issue/test_resolver.py +83 -0
- monoco/features/issue/validator.py +50 -21
- monoco/features/memo/__init__.py +3 -0
- monoco/features/memo/cli.py +90 -0
- monoco/features/memo/core.py +87 -0
- monoco/features/scheduler/cli.py +94 -13
- monoco/features/scheduler/config.py +51 -15
- monoco/features/scheduler/engines.py +149 -0
- monoco/features/scheduler/reliability.py +11 -4
- monoco/features/scheduler/session.py +3 -4
- monoco/features/scheduler/worker.py +9 -5
- monoco/main.py +5 -0
- {monoco_toolkit-0.3.3.dist-info → monoco_toolkit-0.3.6.dist-info}/METADATA +37 -46
- {monoco_toolkit-0.3.3.dist-info → monoco_toolkit-0.3.6.dist-info}/RECORD +26 -19
- {monoco_toolkit-0.3.3.dist-info → monoco_toolkit-0.3.6.dist-info}/WHEEL +0 -0
- {monoco_toolkit-0.3.3.dist-info → monoco_toolkit-0.3.6.dist-info}/entry_points.txt +0 -0
- {monoco_toolkit-0.3.3.dist-info → monoco_toolkit-0.3.6.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Agent Engine Adapters for Monoco Scheduler.
|
|
3
|
+
|
|
4
|
+
This module provides a unified interface for different AI agent execution engines,
|
|
5
|
+
allowing the Worker to seamlessly switch between Gemini, Claude, and future engines.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from abc import ABC, abstractmethod
|
|
9
|
+
from typing import List
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class EngineAdapter(ABC):
|
|
13
|
+
"""
|
|
14
|
+
Abstract base class for agent engine adapters.
|
|
15
|
+
|
|
16
|
+
Each adapter is responsible for:
|
|
17
|
+
1. Constructing the correct CLI command for its engine
|
|
18
|
+
2. Handling engine-specific error scenarios
|
|
19
|
+
3. Providing metadata about the engine's capabilities
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
@abstractmethod
|
|
23
|
+
def build_command(self, prompt: str) -> List[str]:
|
|
24
|
+
"""
|
|
25
|
+
Build the CLI command to execute the agent with the given prompt.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
prompt: The instruction/context to send to the agent
|
|
29
|
+
|
|
30
|
+
Returns:
|
|
31
|
+
List of command arguments (e.g., ["gemini", "-y", "prompt text"])
|
|
32
|
+
"""
|
|
33
|
+
pass
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
@abstractmethod
|
|
37
|
+
def name(self) -> str:
|
|
38
|
+
"""Return the canonical name of this engine."""
|
|
39
|
+
pass
|
|
40
|
+
|
|
41
|
+
@property
|
|
42
|
+
def supports_yolo_mode(self) -> bool:
|
|
43
|
+
"""Whether this engine supports auto-approval mode."""
|
|
44
|
+
return False
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class GeminiAdapter(EngineAdapter):
|
|
48
|
+
"""
|
|
49
|
+
Adapter for Google Gemini CLI.
|
|
50
|
+
|
|
51
|
+
Command format: gemini -y <prompt>
|
|
52
|
+
The -y flag enables "YOLO mode" (auto-approval of actions).
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
def build_command(self, prompt: str) -> List[str]:
|
|
56
|
+
return ["gemini", "-y", prompt]
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def name(self) -> str:
|
|
60
|
+
return "gemini"
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def supports_yolo_mode(self) -> bool:
|
|
64
|
+
return True
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class ClaudeAdapter(EngineAdapter):
|
|
68
|
+
"""
|
|
69
|
+
Adapter for Anthropic Claude CLI.
|
|
70
|
+
|
|
71
|
+
Command format: claude -p <prompt>
|
|
72
|
+
The -p/--print flag enables non-interactive mode (print response and exit).
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
def build_command(self, prompt: str) -> List[str]:
|
|
76
|
+
return ["claude", "-p", prompt]
|
|
77
|
+
|
|
78
|
+
@property
|
|
79
|
+
def name(self) -> str:
|
|
80
|
+
return "claude"
|
|
81
|
+
|
|
82
|
+
@property
|
|
83
|
+
def supports_yolo_mode(self) -> bool:
|
|
84
|
+
# Claude uses -p for non-interactive mode, similar concept
|
|
85
|
+
return True
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class QwenAdapter(EngineAdapter):
|
|
89
|
+
"""
|
|
90
|
+
Adapter for Qwen Code CLI.
|
|
91
|
+
|
|
92
|
+
Command format: qwen -y <prompt>
|
|
93
|
+
The -y flag enables "YOLO mode" (auto-approval of actions).
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
def build_command(self, prompt: str) -> List[str]:
|
|
97
|
+
return ["qwen", "-y", prompt]
|
|
98
|
+
|
|
99
|
+
@property
|
|
100
|
+
def name(self) -> str:
|
|
101
|
+
return "qwen"
|
|
102
|
+
|
|
103
|
+
@property
|
|
104
|
+
def supports_yolo_mode(self) -> bool:
|
|
105
|
+
return True
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
class EngineFactory:
|
|
109
|
+
"""
|
|
110
|
+
Factory for creating engine adapter instances.
|
|
111
|
+
|
|
112
|
+
Usage:
|
|
113
|
+
adapter = EngineFactory.create("gemini")
|
|
114
|
+
command = adapter.build_command("Write a test")
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
_adapters = {
|
|
118
|
+
"gemini": GeminiAdapter,
|
|
119
|
+
"claude": ClaudeAdapter,
|
|
120
|
+
"qwen": QwenAdapter,
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@classmethod
|
|
124
|
+
def create(cls, engine_name: str) -> EngineAdapter:
|
|
125
|
+
"""
|
|
126
|
+
Create an adapter instance for the specified engine.
|
|
127
|
+
|
|
128
|
+
Args:
|
|
129
|
+
engine_name: Name of the engine (e.g., "gemini", "claude")
|
|
130
|
+
|
|
131
|
+
Returns:
|
|
132
|
+
An instance of the appropriate EngineAdapter
|
|
133
|
+
|
|
134
|
+
Raises:
|
|
135
|
+
ValueError: If the engine is not supported
|
|
136
|
+
"""
|
|
137
|
+
adapter_class = cls._adapters.get(engine_name.lower())
|
|
138
|
+
if not adapter_class:
|
|
139
|
+
supported = ", ".join(cls._adapters.keys())
|
|
140
|
+
raise ValueError(
|
|
141
|
+
f"Unsupported engine: '{engine_name}'. "
|
|
142
|
+
f"Supported engines: {supported}"
|
|
143
|
+
)
|
|
144
|
+
return adapter_class()
|
|
145
|
+
|
|
146
|
+
@classmethod
|
|
147
|
+
def supported_engines(cls) -> List[str]:
|
|
148
|
+
"""Return a list of all supported engine names."""
|
|
149
|
+
return list(cls._adapters.keys())
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
from monoco.core.config import get_config
|
|
1
3
|
from .manager import SessionManager
|
|
2
4
|
from .session import RuntimeSession
|
|
3
|
-
from .
|
|
5
|
+
from .config import load_scheduler_config
|
|
4
6
|
|
|
5
7
|
|
|
6
8
|
class ApoptosisManager:
|
|
@@ -11,10 +13,15 @@ class ApoptosisManager:
|
|
|
11
13
|
|
|
12
14
|
def __init__(self, session_manager: SessionManager):
|
|
13
15
|
self.session_manager = session_manager
|
|
16
|
+
|
|
17
|
+
# Load roles dynamically based on current project context
|
|
18
|
+
settings = get_config()
|
|
19
|
+
project_root = Path(settings.paths.root).resolve()
|
|
20
|
+
roles = load_scheduler_config(project_root)
|
|
21
|
+
|
|
14
22
|
# Find coroner role
|
|
15
|
-
self.coroner_role =
|
|
16
|
-
|
|
17
|
-
)
|
|
23
|
+
self.coroner_role = roles.get("coroner")
|
|
24
|
+
|
|
18
25
|
if not self.coroner_role:
|
|
19
26
|
raise ValueError("Coroner role not defined!")
|
|
20
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
2
|
from typing import Optional
|
|
3
|
-
from pydantic import BaseModel, Field
|
|
3
|
+
from pydantic import BaseModel, Field, ConfigDict
|
|
4
4
|
from .worker import Worker
|
|
5
5
|
|
|
6
6
|
|
|
@@ -10,6 +10,8 @@ class Session(BaseModel):
|
|
|
10
10
|
Persisted state of the session.
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
+
model_config = ConfigDict(arbitrary_types_allowed=True)
|
|
14
|
+
|
|
13
15
|
id: str = Field(..., description="Unique session ID (likely UUID)")
|
|
14
16
|
issue_id: str = Field(..., description="The Issue ID this session is working on")
|
|
15
17
|
role_name: str = Field(..., description="Name of the role employed")
|
|
@@ -24,9 +26,6 @@ class Session(BaseModel):
|
|
|
24
26
|
# History could be a list of logs or pointers to git commits
|
|
25
27
|
# For now, let's keep it simple. The git log IS the history.
|
|
26
28
|
|
|
27
|
-
class Config:
|
|
28
|
-
arbitrary_types_allowed = True
|
|
29
|
-
|
|
30
29
|
|
|
31
30
|
class RuntimeSession:
|
|
32
31
|
"""
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
2
|
from .models import RoleTemplate
|
|
3
|
+
from .engines import EngineFactory
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
class Worker:
|
|
@@ -37,7 +38,8 @@ class Worker:
|
|
|
37
38
|
import sys
|
|
38
39
|
|
|
39
40
|
# Prepare the prompt
|
|
40
|
-
|
|
41
|
+
# We treat 'crafter' as a drafter when context is provided (Draft Mode)
|
|
42
|
+
if (self.role.name == "drafter" or self.role.name == "crafter") and context:
|
|
41
43
|
issue_type = context.get("type", "feature")
|
|
42
44
|
description = context.get("description", "No description")
|
|
43
45
|
prompt = (
|
|
@@ -64,10 +66,9 @@ class Worker:
|
|
|
64
66
|
print(f"[{self.role.name}] Goal: {self.role.goal}")
|
|
65
67
|
|
|
66
68
|
try:
|
|
67
|
-
#
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
)
|
|
69
|
+
# Use factory to get the appropriate engine adapter
|
|
70
|
+
adapter = EngineFactory.create(engine)
|
|
71
|
+
engine_args = adapter.build_command(prompt)
|
|
71
72
|
|
|
72
73
|
self._process = subprocess.Popen(
|
|
73
74
|
engine_args, stdout=sys.stdout, stderr=sys.stderr, text=True
|
|
@@ -77,6 +78,9 @@ class Worker:
|
|
|
77
78
|
# DO NOT WAIT HERE.
|
|
78
79
|
# The scheduler/monitoring loop is responsible for checking status.
|
|
79
80
|
|
|
81
|
+
except ValueError as e:
|
|
82
|
+
# Engine not supported by factory
|
|
83
|
+
raise RuntimeError(f"Unsupported engine '{engine}'. {str(e)}")
|
|
80
84
|
except FileNotFoundError:
|
|
81
85
|
raise RuntimeError(
|
|
82
86
|
f"Agent engine '{engine}' not found. Please ensure it is installed and in PATH."
|
monoco/main.py
CHANGED
|
@@ -169,6 +169,11 @@ app.add_typer(workspace_cmd.app, name="workspace", help="Manage workspace")
|
|
|
169
169
|
from monoco.features.scheduler import cli as scheduler_cmd
|
|
170
170
|
|
|
171
171
|
app.add_typer(scheduler_cmd.app, name="agent", help="Manage agent sessions")
|
|
172
|
+
app.add_typer(scheduler_cmd.role_app, name="role", help="Manage agent roles")
|
|
173
|
+
|
|
174
|
+
from monoco.features.memo import app as memo_app
|
|
175
|
+
|
|
176
|
+
app.add_typer(memo_app, name="memo", help="Manage fleeting notes (memos)")
|
|
172
177
|
|
|
173
178
|
|
|
174
179
|
from monoco.daemon.commands import serve
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: monoco-toolkit
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.6
|
|
4
4
|
Summary: Agent Native Toolkit for Monoco - Task Management & Kanban for AI Agents
|
|
5
5
|
Project-URL: Homepage, https://monoco.io
|
|
6
6
|
Project-URL: Repository, https://github.com/IndenScale/Monoco
|
|
@@ -40,45 +40,37 @@ Description-Content-Type: text/markdown
|
|
|
40
40
|
|
|
41
41
|
> **The Operating System for Agentic Engineering.**
|
|
42
42
|
>
|
|
43
|
-
>
|
|
43
|
+
> Stop chatting. Start building.
|
|
44
|
+
> Monoco grounds your AI Agents into deterministic, validatable, and shippable engineering workflows.
|
|
44
45
|
|
|
45
46
|
---
|
|
46
47
|
|
|
47
|
-
## ⚡️
|
|
48
|
+
## ⚡️ The Gap: "Chat" is not Engineering.
|
|
48
49
|
|
|
49
|
-
|
|
50
|
+
Generating code is easy. **Engineering**—managing dependencies, maintaining state, validation, and version control—is hard.
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
Most Agent workflows today are fragile "chats". Monoco turns them into **Software Engineering Processes**. It acts as the "BizOps" layer for your Agents, ensuring that every line of code generated is tracked, reviewed, and aligned with the project roadmap.
|
|
52
53
|
|
|
53
|
-
|
|
54
|
+
## 🌟 Core Philosophy
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
### 1. Co-pilot by Design
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
**Just-enough Automation.**
|
|
59
|
+
Monoco abstracts away the tedious details (Git ops, state tracking) while keeping you securely in the driver's seat. Agents can suggest and build, but **you** always have the final say on what gets merged.
|
|
58
60
|
|
|
59
|
-
|
|
61
|
+
### 2. Battle-Tested Best Practices
|
|
60
62
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
- **Universal Context**: Provides a standardized, hallucination-free state representation for AI Agents.
|
|
63
|
+
**Senior Engineer Intuition.**
|
|
64
|
+
Monoco enforces **Issue Driven Development (IDD)** and standard **Git Workflows**. We bake the rigorous habits of effective software teams into the Agent's core loop, ensuring every line of code is traceable and reviewed.
|
|
64
65
|
|
|
65
|
-
###
|
|
66
|
+
### 3. Radical Transparency (Dogfooding)
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
- **Native Kanban Board**: Visualize and drag-and-drop tasks without leaving VS Code.
|
|
70
|
-
- **Hierarchical Tree View**: Drill down from high-level Epics to atomic Implementation Tasks.
|
|
71
|
-
- **Agent Integration**: Bind specific Agent Providers (Gemini, Claude, etc.) to specific tasks.
|
|
72
|
-
|
|
73
|
-
### 3. Traceable Execution
|
|
74
|
-
|
|
75
|
-
- **Deterministic State Machine**: Every task follows a strict lifecycle (Proposed -> Approved -> Doing -> Review -> Done).
|
|
76
|
-
- **Audit Trails**: Agents log their actions and decisions directly into the task file.
|
|
77
|
-
- **Sanity Checks**: Built-in linters ensure your task definitions are complete and valid before execution.
|
|
68
|
+
**Process as Product.**
|
|
69
|
+
Monoco is built by Monoco. We believe in open-sourcing not just the code, but the engineering process itself. Every design decision, interaction log, and failure is public—providing a live blueprint for Agentic Engineering.
|
|
78
70
|
|
|
79
71
|
## 🚀 Quick Start
|
|
80
72
|
|
|
81
|
-
### Installation
|
|
73
|
+
### 1. Installation
|
|
82
74
|
|
|
83
75
|
Monoco is available as a Python CLI tool.
|
|
84
76
|
|
|
@@ -86,33 +78,32 @@ Monoco is available as a Python CLI tool.
|
|
|
86
78
|
pip install monoco-toolkit
|
|
87
79
|
```
|
|
88
80
|
|
|
89
|
-
### Initialization
|
|
81
|
+
### 2. Workspace Initialization
|
|
90
82
|
|
|
91
|
-
Turn any directory into a Monoco
|
|
83
|
+
Turn any directory into a Monoco Workspace. This creates the `.monoco` config and the `Issues/` directory.
|
|
92
84
|
|
|
93
85
|
```bash
|
|
94
86
|
monoco init
|
|
95
87
|
```
|
|
96
88
|
|
|
97
|
-
###
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
```
|
|
89
|
+
### 3. Agent Synchronization
|
|
90
|
+
|
|
91
|
+
**Crucial Step**: This injects the "Monoco System Neural Network" (System Prompts & Skills) into your agent configuration files (e.g., `GEMINI.md`, `CLAUDE.md`).
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
monoco sync
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 4. The Engineering Loop (Agent-First)
|
|
98
|
+
|
|
99
|
+
In Monoco, you don't need to memorize CLI commands. **The Agent is your DevOps Engineer.**
|
|
100
|
+
|
|
101
|
+
1. **Chat**: Tell your Agent in the chatbox (e.g., _"Implement Dark Mode"_).
|
|
102
|
+
2. **Plan**: The Agent investigates and proposes an **Issue Ticket** for your review.
|
|
103
|
+
3. **Build**: Once approved, the Agent creates a branch, writes code, and submits changes.
|
|
104
|
+
4. **Ship**: You accept the results. The Agent handles the merge and closure.
|
|
105
|
+
|
|
106
|
+
---
|
|
116
107
|
|
|
117
108
|
## 📦 Extension for VS Code
|
|
118
109
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
monoco/main.py,sha256=
|
|
1
|
+
monoco/main.py,sha256=IF8pN71fFL0AwxtnRxXQaoi9NgBf0YAhppWlc8SuiTM,5688
|
|
2
2
|
monoco/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
monoco/cli/project.py,sha256=FqLaDD3hiWxa0_TKzxEF7PYH9RPsvmLyjO3NYVckgGs,2737
|
|
4
4
|
monoco/cli/workspace.py,sha256=1TVVS835XyirLDvBGQXSblIaYVhe2Pk9EpORDvcktyk,1538
|
|
@@ -41,15 +41,18 @@ monoco/features/i18n/resources/en/SKILL.md,sha256=Z8fAAqeMvpLDw1D_9AzZIykS5-HLVM
|
|
|
41
41
|
monoco/features/i18n/resources/zh/AGENTS.md,sha256=lKkwLLCADRH7UDq9no4eQY2sRfJrb64JoZ_HNved8vA,175
|
|
42
42
|
monoco/features/i18n/resources/zh/SKILL.md,sha256=Wynk7zVBW7CO0_6AEQNUvlD_3eMW_7EPnzEn9QUaiDs,1884
|
|
43
43
|
monoco/features/issue/adapter.py,sha256=4dzKg4-0XH63uORoh8qcolvKxJR6McBDIYxYEcZJJkA,1204
|
|
44
|
-
monoco/features/issue/commands.py,sha256=
|
|
45
|
-
monoco/features/issue/core.py,sha256=
|
|
44
|
+
monoco/features/issue/commands.py,sha256=vaScb2J4qjUvO8DSlKhTrGDSfIyJ4zIUr14jhBlG6tE,37581
|
|
45
|
+
monoco/features/issue/core.py,sha256=9b5BVJJz5Ek3QNKqOhn6GSgvkmpAN45zmb8CQJVsPjc,51452
|
|
46
46
|
monoco/features/issue/domain_commands.py,sha256=eatSF_uZp4nGpVr2PIgb00MWfEBm0OnyAd4JvUJEAAA,1535
|
|
47
47
|
monoco/features/issue/domain_service.py,sha256=bEs_WXOWmotgIR-lGwyWekF4nonvjsgrK1YG3pyVfwk,2564
|
|
48
|
-
monoco/features/issue/linter.py,sha256=
|
|
48
|
+
monoco/features/issue/linter.py,sha256=LLtJEVIzoGTNm1liZARJHM3-V-EODkGRuw3ExCZtEjY,26115
|
|
49
49
|
monoco/features/issue/migration.py,sha256=i0xlxZjrpmuHGHOAIN4iu31EwwVIvZn7yjveS-kU22c,4896
|
|
50
|
-
monoco/features/issue/models.py,sha256=
|
|
50
|
+
monoco/features/issue/models.py,sha256=pIgun9dDTelDJa6RqhLJb2OR201cimOoNEB78qUsvG0,7286
|
|
51
51
|
monoco/features/issue/monitor.py,sha256=vZN0TbR3V5fHKHRGkIhimO6UwWcwYjDHQs2qzjEG174,3549
|
|
52
|
-
monoco/features/issue/
|
|
52
|
+
monoco/features/issue/resolver.py,sha256=mAU9s7TNNHY9A2278JTwJvxU-jalGKTDJfJdjONev3E,5655
|
|
53
|
+
monoco/features/issue/test_priority_integration.py,sha256=pTBg3Wjv6lLYxWL6vjbo2NGVE-X0MRB3Ha8bqObZrU4,2791
|
|
54
|
+
monoco/features/issue/test_resolver.py,sha256=luFhK37DUvh4a3TTcFYVO-oOIJljQVCSYicwSWyDleQ,2530
|
|
55
|
+
monoco/features/issue/validator.py,sha256=GYqbx2-ZxXfk1HicgBXkpL__v83KK-jcOyo7eW-VRUs,27793
|
|
53
56
|
monoco/features/issue/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
57
|
monoco/features/issue/domain/lifecycle.py,sha256=oIuLYTVy1RRHGngAzbNU4kTWOHMBhjuw_TuYCwNqMJw,4991
|
|
55
58
|
monoco/features/issue/domain/models.py,sha256=2vuSAGaFrbAEkQapwkGG_T8cHlsmARN71fTA44PIVSM,5850
|
|
@@ -57,23 +60,27 @@ monoco/features/issue/domain/parser.py,sha256=axfB9BjY-m4DQqYwTQBm_38plOidZaDqFt
|
|
|
57
60
|
monoco/features/issue/domain/workspace.py,sha256=nyTEFNmpLPuX7nssMCBiFI1XBhY9zbqG877Ppp_s0Fg,3658
|
|
58
61
|
monoco/features/issue/engine/__init__.py,sha256=-SBvzjlZJz0O-IB1c95d9pbhr3lydJNLq2vhnfkZ8PQ,747
|
|
59
62
|
monoco/features/issue/engine/config.py,sha256=7enjPW4J_fpuK08ov6LpfQ-9h2T1D4Hc5yIXOPuQvLs,5761
|
|
60
|
-
monoco/features/issue/engine/machine.py,sha256=
|
|
63
|
+
monoco/features/issue/engine/machine.py,sha256=BTYjp8NQAzu8JVP95bQdkOLrJjFsRNR7uC8tjsUTqCk,6393
|
|
61
64
|
monoco/features/issue/engine/models.py,sha256=595Sx3ncrpg_PhnbBLthohAvuhnjA-_9oXcrsT6Lv0k,574
|
|
62
65
|
monoco/features/issue/lsp/__init__.py,sha256=8bl8-WzSj3C4SkPKgVGnCeyemmvHVWBsuMZsJuJggG8,77
|
|
63
66
|
monoco/features/issue/lsp/definition.py,sha256=cF6Quw1OztuKMJ1zLvgA_ek7lTAdzHF0m4LVznpbAPw,3203
|
|
64
|
-
monoco/features/issue/resources/en/AGENTS.md,sha256=
|
|
67
|
+
monoco/features/issue/resources/en/AGENTS.md,sha256=eHHXjLRDAV7IKrYPQSilxu0X5D0SBCAFBXmlSoc9r48,1278
|
|
65
68
|
monoco/features/issue/resources/en/SKILL.md,sha256=M5khTJdraQenX0tf7RHOVcqyKHC285qwDzWdsCJ7XPI,4032
|
|
66
|
-
monoco/features/issue/resources/zh/AGENTS.md,sha256=
|
|
69
|
+
monoco/features/issue/resources/zh/AGENTS.md,sha256=oRHHqeDYx6aEc5FfdL7a-zqT7uh4SYIYt8QBRKEKrYM,1351
|
|
67
70
|
monoco/features/issue/resources/zh/SKILL.md,sha256=XFE33cCCos0U1IVNkMhU7fGuqVqfxo_FNKdp1aScaoM,5055
|
|
71
|
+
monoco/features/memo/__init__.py,sha256=ledMrs-h5k_4wssXWv4MBYTDi-HHo3Fv8QAMpqlQI_M,40
|
|
72
|
+
monoco/features/memo/cli.py,sha256=nw5Kg7Qu33ucwrBaJS5CIkPRA_6TlJQQz2TvDWL2Nqc,2685
|
|
73
|
+
monoco/features/memo/core.py,sha256=HUQLohVZ6KCU2chi18tEQYtohzl1-bOR5F12W40QkIc,2226
|
|
68
74
|
monoco/features/scheduler/__init__.py,sha256=hvE9A14qFTeTYbWlK9iMRdXIFLMBuG8724GEZzFTHB8,483
|
|
69
|
-
monoco/features/scheduler/cli.py,sha256=
|
|
70
|
-
monoco/features/scheduler/config.py,sha256=
|
|
75
|
+
monoco/features/scheduler/cli.py,sha256=NgsGwCf615YA4VGd-mqMpGp5VCjdMUqoZqiHZFnDdLU,8325
|
|
76
|
+
monoco/features/scheduler/config.py,sha256=69PTvKGHJ33fA2yhFJAq0WVq70Zbmdd5X8Wl0vIYAak,2336
|
|
71
77
|
monoco/features/scheduler/defaults.py,sha256=4Ne3RpF7gZ46BmHtF0hC8wYkuCIkDSuKB7hGnHhGXms,2208
|
|
78
|
+
monoco/features/scheduler/engines.py,sha256=ICKw4Kfme6UNl_JLJvT7hADKHo76Yr8wpFFEvtEV6z4,3799
|
|
72
79
|
monoco/features/scheduler/manager.py,sha256=PmNKqfktgrdpUwE-jPE_WX3IvzZat0JKdEcmzse08-0,1680
|
|
73
80
|
monoco/features/scheduler/models.py,sha256=rb8rx8t_TD5ilUC6xU3jvK0sud7YUZE_iEdes9Np8R0,877
|
|
74
|
-
monoco/features/scheduler/reliability.py,sha256=
|
|
75
|
-
monoco/features/scheduler/session.py,sha256=
|
|
76
|
-
monoco/features/scheduler/worker.py,sha256=
|
|
81
|
+
monoco/features/scheduler/reliability.py,sha256=zVwtnksug5wr0_tigC2Qjl_C8VNyrheN_34ItUceGoo,3846
|
|
82
|
+
monoco/features/scheduler/session.py,sha256=5xga191nWXqJOLgl3MTTJ3zDrVZcj8SxZcxYM6-CtLU,2969
|
|
83
|
+
monoco/features/scheduler/worker.py,sha256=4OU2Y7nG5EKadNIKDF5GWl5V7vgVl3OPlYHShfiEeBI,4538
|
|
77
84
|
monoco/features/skills/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
85
|
monoco/features/skills/core.py,sha256=BXVvMot8E457-pj9U19lPHypBVhdLQRsx0zEAXJxpGY,3436
|
|
79
86
|
monoco/features/spike/adapter.py,sha256=ZIpw-xNVoA2IIP18dbR-dmQGbQmK5ua_P-uGXuDjCeI,1021
|
|
@@ -83,8 +90,8 @@ monoco/features/spike/resources/en/AGENTS.md,sha256=NG3CMnlDk_0J8hnRUcueAM9lgIQr
|
|
|
83
90
|
monoco/features/spike/resources/en/SKILL.md,sha256=qKDcVh0D3pDRvfNLh1Bzo4oQU3obpl4tqdlzxeiWYMk,1911
|
|
84
91
|
monoco/features/spike/resources/zh/AGENTS.md,sha256=5RHNl7fc3RdYYTFH483ojJl_arGPKkyYziOuGgFbqqg,290
|
|
85
92
|
monoco/features/spike/resources/zh/SKILL.md,sha256=Q82e9lCQOAYIwBs5rGnvlVUDq7bp0pz8yvO10KTWFYQ,1710
|
|
86
|
-
monoco_toolkit-0.3.
|
|
87
|
-
monoco_toolkit-0.3.
|
|
88
|
-
monoco_toolkit-0.3.
|
|
89
|
-
monoco_toolkit-0.3.
|
|
90
|
-
monoco_toolkit-0.3.
|
|
93
|
+
monoco_toolkit-0.3.6.dist-info/METADATA,sha256=UZH_Na2LgWBEQ8KWU084wgO8l9AK_HlTRc2YD58DT8o,4732
|
|
94
|
+
monoco_toolkit-0.3.6.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
95
|
+
monoco_toolkit-0.3.6.dist-info/entry_points.txt,sha256=iYj7FWYBdtClU15-Du1skqD0s6SFSIhJvxJ29VWp8ng,43
|
|
96
|
+
monoco_toolkit-0.3.6.dist-info/licenses/LICENSE,sha256=ACAGGjV6aod4eIlVUTx1q9PZbnZGN5bBwkSs9RHj83s,1071
|
|
97
|
+
monoco_toolkit-0.3.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|