monoco-toolkit 0.1.1__py3-none-any.whl → 0.2.8__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.
Files changed (76) hide show
  1. monoco/cli/__init__.py +0 -0
  2. monoco/cli/project.py +87 -0
  3. monoco/cli/workspace.py +46 -0
  4. monoco/core/agent/__init__.py +5 -0
  5. monoco/core/agent/action.py +144 -0
  6. monoco/core/agent/adapters.py +129 -0
  7. monoco/core/agent/protocol.py +31 -0
  8. monoco/core/agent/state.py +106 -0
  9. monoco/core/config.py +212 -17
  10. monoco/core/execution.py +62 -0
  11. monoco/core/feature.py +58 -0
  12. monoco/core/git.py +51 -2
  13. monoco/core/injection.py +196 -0
  14. monoco/core/integrations.py +242 -0
  15. monoco/core/lsp.py +68 -0
  16. monoco/core/output.py +21 -3
  17. monoco/core/registry.py +36 -0
  18. monoco/core/resources/en/AGENTS.md +8 -0
  19. monoco/core/resources/en/SKILL.md +66 -0
  20. monoco/core/resources/zh/AGENTS.md +8 -0
  21. monoco/core/resources/zh/SKILL.md +65 -0
  22. monoco/core/setup.py +96 -110
  23. monoco/core/skills.py +444 -0
  24. monoco/core/state.py +53 -0
  25. monoco/core/sync.py +224 -0
  26. monoco/core/telemetry.py +4 -1
  27. monoco/core/workspace.py +85 -20
  28. monoco/daemon/app.py +127 -58
  29. monoco/daemon/models.py +4 -0
  30. monoco/daemon/services.py +56 -155
  31. monoco/features/config/commands.py +125 -44
  32. monoco/features/i18n/adapter.py +29 -0
  33. monoco/features/i18n/commands.py +89 -10
  34. monoco/features/i18n/core.py +113 -27
  35. monoco/features/i18n/resources/en/AGENTS.md +8 -0
  36. monoco/features/i18n/resources/en/SKILL.md +94 -0
  37. monoco/features/i18n/resources/zh/AGENTS.md +8 -0
  38. monoco/features/i18n/resources/zh/SKILL.md +94 -0
  39. monoco/features/issue/adapter.py +34 -0
  40. monoco/features/issue/commands.py +343 -101
  41. monoco/features/issue/core.py +384 -150
  42. monoco/features/issue/domain/__init__.py +0 -0
  43. monoco/features/issue/domain/lifecycle.py +126 -0
  44. monoco/features/issue/domain/models.py +170 -0
  45. monoco/features/issue/domain/parser.py +223 -0
  46. monoco/features/issue/domain/workspace.py +104 -0
  47. monoco/features/issue/engine/__init__.py +22 -0
  48. monoco/features/issue/engine/config.py +172 -0
  49. monoco/features/issue/engine/machine.py +185 -0
  50. monoco/features/issue/engine/models.py +18 -0
  51. monoco/features/issue/linter.py +325 -120
  52. monoco/features/issue/lsp/__init__.py +3 -0
  53. monoco/features/issue/lsp/definition.py +72 -0
  54. monoco/features/issue/migration.py +134 -0
  55. monoco/features/issue/models.py +46 -24
  56. monoco/features/issue/monitor.py +94 -0
  57. monoco/features/issue/resources/en/AGENTS.md +20 -0
  58. monoco/features/issue/resources/en/SKILL.md +111 -0
  59. monoco/features/issue/resources/zh/AGENTS.md +20 -0
  60. monoco/features/issue/resources/zh/SKILL.md +138 -0
  61. monoco/features/issue/validator.py +455 -0
  62. monoco/features/spike/adapter.py +30 -0
  63. monoco/features/spike/commands.py +45 -24
  64. monoco/features/spike/core.py +6 -40
  65. monoco/features/spike/resources/en/AGENTS.md +7 -0
  66. monoco/features/spike/resources/en/SKILL.md +74 -0
  67. monoco/features/spike/resources/zh/AGENTS.md +7 -0
  68. monoco/features/spike/resources/zh/SKILL.md +74 -0
  69. monoco/main.py +91 -2
  70. monoco_toolkit-0.2.8.dist-info/METADATA +136 -0
  71. monoco_toolkit-0.2.8.dist-info/RECORD +83 -0
  72. monoco_toolkit-0.1.1.dist-info/METADATA +0 -93
  73. monoco_toolkit-0.1.1.dist-info/RECORD +0 -33
  74. {monoco_toolkit-0.1.1.dist-info → monoco_toolkit-0.2.8.dist-info}/WHEEL +0 -0
  75. {monoco_toolkit-0.1.1.dist-info → monoco_toolkit-0.2.8.dist-info}/entry_points.txt +0 -0
  76. {monoco_toolkit-0.1.1.dist-info → monoco_toolkit-0.2.8.dist-info}/licenses/LICENSE +0 -0
@@ -1,12 +1,12 @@
1
1
  import os
2
2
  import shutil
3
3
  import subprocess
4
- import yaml
4
+
5
5
  from pathlib import Path
6
6
  from typing import Dict, Optional, List, Any
7
7
  from rich.console import Console
8
8
 
9
- from monoco.core.config import get_config
9
+ from monoco.core.config import get_config, load_raw_config, save_raw_config, ConfigScope
10
10
 
11
11
  console = Console()
12
12
 
@@ -29,33 +29,10 @@ def run_git_command(cmd: List[str], cwd: Path) -> bool:
29
29
  console.print("[red]Error:[/red] git command not found.")
30
30
  return False
31
31
 
32
- def get_config_file_path(root: Path) -> Path:
33
- """Determine the config file to update."""
34
- # Priority 1: .monoco/config.yaml
35
- hidden = root / ".monoco" / "config.yaml"
36
- if hidden.exists():
37
- return hidden
38
-
39
- # Priority 2: monoco.yaml
40
- visible = root / "monoco.yaml"
41
- if visible.exists():
42
- return visible
43
-
44
- # Default to .monoco/config.yaml for new files
45
- hidden.parent.mkdir(exist_ok=True)
46
- return hidden
47
-
48
32
  def update_config_repos(root: Path, repo_name: str, repo_url: str, remove: bool = False):
49
33
  """Update the repos list in the config file."""
50
- config_path = get_config_file_path(root)
51
-
52
- data = {}
53
- if config_path.exists():
54
- try:
55
- with open(config_path, "r") as f:
56
- data = yaml.safe_load(f) or {}
57
- except Exception:
58
- data = {}
34
+ # Use core config utils
35
+ data = load_raw_config(ConfigScope.PROJECT, project_root=str(root))
59
36
 
60
37
  # Ensure structure exists
61
38
  if "project" not in data:
@@ -69,8 +46,7 @@ def update_config_repos(root: Path, repo_name: str, repo_url: str, remove: bool
69
46
  else:
70
47
  data["project"]["spike_repos"][repo_name] = repo_url
71
48
 
72
- with open(config_path, "w") as f:
73
- yaml.dump(data, f, sort_keys=False, default_flow_style=False)
49
+ save_raw_config(ConfigScope.PROJECT, data, project_root=str(root))
74
50
 
75
51
  def ensure_gitignore(root: Path, target_dir_name: str):
76
52
  """Ensure the target directory is in .gitignore."""
@@ -131,24 +107,14 @@ This skill normalizes how we introduce external code repositories.
131
107
  3. **Remove**: `monoco spike remove <name>`
132
108
  """
133
109
 
134
- PROMPT_CONTENT = """### Spike (Research)
135
- Manage external reference repositories.
136
- - **Add Repo**: `monoco spike add <url>` (Available in `.reference/<name>` for reading)
137
- - **Sync**: `monoco spike sync` (Run to download content)
138
- - **Constraint**: Never edit files in `.reference/`. Treat them as read-only external knowledge."""
139
-
140
110
  def init(root: Path, spikes_dir_name: str):
141
111
  """Initialize Spike environment."""
142
112
  ensure_gitignore(root, spikes_dir_name)
143
113
  (root / spikes_dir_name).mkdir(exist_ok=True)
144
114
 
145
- def get_resources() -> Dict[str, Any]:
146
115
  return {
147
116
  "skills": {
148
117
  "git-repo-spike": SKILL_CONTENT
149
118
  },
150
- "prompts": {
151
- "spike": PROMPT_CONTENT
152
- }
119
+ "prompts": {} # Handled by adapter via resource files
153
120
  }
154
-
@@ -0,0 +1,7 @@
1
+ ### Spike (Research)
2
+
3
+ Manage external reference repositories.
4
+
5
+ - **Add Repo**: `monoco spike add <url>` (Available in `.reference/<name>` for reading)
6
+ - **Sync**: `monoco spike sync` (Run to download content)
7
+ - **Constraint**: Never edit files in `.reference/`. Treat them as read-only external knowledge.
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: monoco-spike
3
+ description: Manage external reference repositories for research and learning. Provides read-only access to curated codebases.
4
+ ---
5
+
6
+ # Spike (Research)
7
+
8
+ Manage external reference repositories in Monoco projects.
9
+
10
+ ## Overview
11
+
12
+ The Spike feature allows you to:
13
+
14
+ - **Add external repositories** as read-only references
15
+ - **Sync repository content** to local `.references/` directory
16
+ - **Access curated knowledge** without modifying source code
17
+
18
+ ## Key Commands
19
+
20
+ ### Add Repository
21
+
22
+ ```bash
23
+ monoco spike add <url>
24
+ ```
25
+
26
+ Adds an external repository as a reference. The repository will be cloned to `.references/<name>/` where `<name>` is derived from the repository URL.
27
+
28
+ **Example**:
29
+
30
+ ```bash
31
+ monoco spike add https://github.com/example/awesome-project
32
+ # Available at: .references/awesome-project/
33
+ ```
34
+
35
+ ### Sync Repositories
36
+
37
+ ```bash
38
+ monoco spike sync
39
+ ```
40
+
41
+ Downloads or updates all configured spike repositories from `.monoco/config.yaml`.
42
+
43
+ ### List Spikes
44
+
45
+ ```bash
46
+ monoco spike list
47
+ ```
48
+
49
+ Shows all configured spike repositories and their sync status.
50
+
51
+ ## Configuration
52
+
53
+ Spike repositories are configured in `.monoco/config.yaml`:
54
+
55
+ ```yaml
56
+ project:
57
+ spike_repos:
58
+ awesome-project: https://github.com/example/awesome-project
59
+ another-ref: https://github.com/example/another-ref
60
+ ```
61
+
62
+ ## Best Practices
63
+
64
+ 1. **Read-Only Access**: Never edit files in `.references/`. Treat them as external knowledge.
65
+ 2. **Curated Selection**: Only add high-quality, relevant repositories.
66
+ 3. **Regular Sync**: Run `monoco spike sync` periodically to get updates.
67
+ 4. **Commit Configuration**: Add spike repo URLs to version control for team consistency.
68
+
69
+ ## Use Cases
70
+
71
+ - **Learning from Examples**: Study well-architected codebases
72
+ - **API Reference**: Keep framework documentation locally
73
+ - **Pattern Library**: Maintain a collection of design patterns
74
+ - **Competitive Analysis**: Reference similar projects
@@ -0,0 +1,7 @@
1
+ ### Spike (研究)
2
+
3
+ 管理外部参考仓库。
4
+
5
+ - **添加仓库**: `monoco spike add <url>` (在 `.reference/<name>` 中可读)
6
+ - **同步**: `monoco spike sync` (运行以下载内容)
7
+ - **约束**: 永远不要编辑 `.reference/` 中的文件。将它们视为只读的外部知识。
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: monoco-spike
3
+ description: 管理用于研究和学习的外部参考仓库。提供对精选代码库的只读访问。
4
+ ---
5
+
6
+ # Spike (研究)
7
+
8
+ 在 Monoco 项目中管理外部参考仓库。
9
+
10
+ ## 概述
11
+
12
+ Spike 功能允许你:
13
+
14
+ - **添加外部仓库**作为只读参考
15
+ - **同步仓库内容**到本地 `.references/` 目录
16
+ - **访问精选知识**而不修改源代码
17
+
18
+ ## 核心命令
19
+
20
+ ### 添加仓库
21
+
22
+ ```bash
23
+ monoco spike add <url>
24
+ ```
25
+
26
+ 将外部仓库添加为参考。仓库将被克隆到 `.references/<name>/`,其中 `<name>` 从仓库 URL 派生。
27
+
28
+ **示例**:
29
+
30
+ ```bash
31
+ monoco spike add https://github.com/example/awesome-project
32
+ # 可在以下位置访问: .references/awesome-project/
33
+ ```
34
+
35
+ ### 同步仓库
36
+
37
+ ```bash
38
+ monoco spike sync
39
+ ```
40
+
41
+ 从 `.monoco/config.yaml` 下载或更新所有配置的 spike 仓库。
42
+
43
+ ### 列出 Spikes
44
+
45
+ ```bash
46
+ monoco spike list
47
+ ```
48
+
49
+ 显示所有配置的 spike 仓库及其同步状态。
50
+
51
+ ## 配置
52
+
53
+ Spike 仓库在 `.monoco/config.yaml` 中配置:
54
+
55
+ ```yaml
56
+ project:
57
+ spike_repos:
58
+ awesome-project: https://github.com/example/awesome-project
59
+ another-ref: https://github.com/example/another-ref
60
+ ```
61
+
62
+ ## 最佳实践
63
+
64
+ 1. **只读访问**: 永远不要编辑 `.references/` 中的文件。将它们视为外部知识。
65
+ 2. **精选选择**: 只添加高质量、相关的仓库。
66
+ 3. **定期同步**: 定期运行 `monoco spike sync` 以获取更新。
67
+ 4. **提交配置**: 将 spike 仓库 URL 添加到版本控制以保持团队一致性。
68
+
69
+ ## 使用场景
70
+
71
+ - **从示例中学习**: 研究架构良好的代码库
72
+ - **API 参考**: 在本地保存框架文档
73
+ - **模式库**: 维护设计模式集合
74
+ - **竞品分析**: 参考类似项目
monoco/main.py CHANGED
@@ -11,8 +11,45 @@ app = typer.Typer(
11
11
  )
12
12
 
13
13
 
14
+ def version_callback(value: bool):
15
+ if value:
16
+ # Try to read from pyproject.toml first (for dev mode)
17
+ from pathlib import Path
18
+
19
+ version = "unknown"
20
+
21
+ try:
22
+ # Look for pyproject.toml relative to this file
23
+ # monoco/main.py -> ../pyproject.toml
24
+ pyproject_path = Path(__file__).parent.parent / "pyproject.toml"
25
+ if pyproject_path.exists():
26
+ with open(pyproject_path, "r", encoding="utf-8") as f:
27
+ for line in f:
28
+ if line.strip().startswith('version = "'):
29
+ version = line.split('"')[1]
30
+ break
31
+
32
+ if version == "unknown":
33
+ import importlib.metadata
34
+ version = importlib.metadata.version("monoco-toolkit")
35
+ except Exception:
36
+ # Fallback
37
+ pass
38
+
39
+ print(f"Monoco Toolkit v{version}")
40
+ raise typer.Exit()
41
+
42
+
14
43
  @app.callback()
15
- def main(ctx: typer.Context):
44
+ def main(
45
+ ctx: typer.Context,
46
+ version: Optional[bool] = typer.Option(
47
+ None, "--version", "-v", help="Show version and exit", callback=version_callback, is_eager=True
48
+ ),
49
+ root: Optional[str] = typer.Option(
50
+ None, "--root", help="Explicitly specify the Monoco Workspace root directory."
51
+ )
52
+ ):
16
53
  """
17
54
  Monoco Toolkit - The sensory and motor system for Monoco Agents.
18
55
  """
@@ -21,9 +58,49 @@ def main(ctx: typer.Context):
21
58
  if ctx.invoked_subcommand:
22
59
  capture_event("cli_command_executed", {"command": ctx.invoked_subcommand})
23
60
 
61
+ # Strict Workspace Resolution
62
+ # Commands allowed to run without a workspace
63
+ NO_WORKSPACE_COMMANDS = ["init", "clone"]
64
+
65
+ # Initialize Config
66
+ from monoco.core.config import get_config, find_monoco_root
67
+ from pathlib import Path
68
+
69
+ # If subcommand is not in whitelist, we enforce workspace
70
+ require_workspace = False
71
+ if ctx.invoked_subcommand and ctx.invoked_subcommand not in NO_WORKSPACE_COMMANDS:
72
+ require_workspace = True
73
+
74
+ try:
75
+ # We pass root if provided. If require_workspace is True, get_config will throw if not found.
76
+ # Note: If root is None, it defaults to CWD in get_config.
77
+
78
+ # Auto-discover root if not provided
79
+ config_root = root
80
+ if config_root is None:
81
+ discovered = find_monoco_root()
82
+ # Only use discovered root if it actually has .monoco
83
+ if (discovered / ".monoco").exists():
84
+ config_root = str(discovered)
85
+
86
+ get_config(project_root=config_root, require_project=require_workspace)
87
+ except FileNotFoundError as e:
88
+ # Graceful exit for workspace errors
89
+ from rich.console import Console
90
+ console = Console()
91
+ console.print(f"[bold red]Error:[/bold red] {e}")
92
+ console.print(f"[yellow]Tip:[/yellow] Run this command in a Monoco Workspace root (containing .monoco), or use [bold]--root <path>[/bold].")
93
+ raise typer.Exit(code=1)
94
+
24
95
  from monoco.core.setup import init_cli
25
96
  app.command(name="init")(init_cli)
26
97
 
98
+ from monoco.core.sync import sync_command, uninstall_command
99
+ app.command(name="sync")(sync_command)
100
+ app.command(name="uninstall")(uninstall_command)
101
+
102
+
103
+
27
104
  @app.command()
28
105
  def info():
29
106
  """
@@ -42,8 +119,14 @@ def info():
42
119
 
43
120
  mode = "Agent (JSON)" if os.getenv("AGENT_FLAG") == "true" else "Human (Rich)"
44
121
 
122
+ import importlib.metadata
123
+ try:
124
+ version = importlib.metadata.version("monoco-toolkit")
125
+ except importlib.metadata.PackageNotFoundError:
126
+ version = "unknown"
127
+
45
128
  status = Status(
46
- version="0.1.0",
129
+ version=version,
47
130
  mode=mode,
48
131
  root=os.getcwd(),
49
132
  project=f"{settings.project.name} ({settings.project.key})"
@@ -60,11 +143,17 @@ from monoco.features.issue import commands as issue_cmd
60
143
  from monoco.features.spike import commands as spike_cmd
61
144
  from monoco.features.i18n import commands as i18n_cmd
62
145
  from monoco.features.config import commands as config_cmd
146
+ from monoco.cli import project as project_cmd
147
+ from monoco.cli import workspace as workspace_cmd
63
148
 
64
149
  app.add_typer(issue_cmd.app, name="issue", help="Manage development issues")
65
150
  app.add_typer(spike_cmd.app, name="spike", help="Manage research spikes")
66
151
  app.add_typer(i18n_cmd.app, name="i18n", help="Manage documentation i18n")
67
152
  app.add_typer(config_cmd.app, name="config", help="Manage configuration")
153
+ app.add_typer(project_cmd.app, name="project", help="Manage projects")
154
+ app.add_typer(workspace_cmd.app, name="workspace", help="Manage workspace")
155
+
156
+
68
157
 
69
158
  from monoco.daemon.commands import serve
70
159
  app.command(name="serve")(serve)
@@ -0,0 +1,136 @@
1
+ Metadata-Version: 2.4
2
+ Name: monoco-toolkit
3
+ Version: 0.2.8
4
+ Summary: Agent Native Toolkit for Monoco - Task Management & Kanban for AI Agents
5
+ Project-URL: Homepage, https://monoco.io
6
+ Project-URL: Repository, https://github.com/IndenScale/Monoco
7
+ Project-URL: Documentation, https://monoco.io/docs
8
+ Project-URL: Issues, https://github.com/IndenScale/Monoco/issues
9
+ Author-email: Monoco Team <dev@monoco.io>
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: agent-native,ai-agents,cli,kanban,monoco,task-management,workflow
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Office/Business :: Groupware
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Classifier: Topic :: Software Development :: Quality Assurance
23
+ Requires-Python: >=3.10
24
+ Requires-Dist: fastapi>=0.100.0
25
+ Requires-Dist: httpx>=0.28.1
26
+ Requires-Dist: prompt-toolkit>=3.0.0
27
+ Requires-Dist: pydantic>=2.0.0
28
+ Requires-Dist: pyyaml>=6.0
29
+ Requires-Dist: rich>=13.0.0
30
+ Requires-Dist: sse-starlette>=1.6.0
31
+ Requires-Dist: typer[all]>=0.9.0
32
+ Requires-Dist: uvicorn[standard]>=0.20.0
33
+ Requires-Dist: watchdog>=6.0.0
34
+ Description-Content-Type: text/markdown
35
+
36
+ # Monoco Toolkit
37
+
38
+ [![Version](https://img.shields.io/pypi/v/monoco-toolkit)](https://pypi.org/project/monoco-toolkit/)
39
+ [![License](https://img.shields.io/github/license/IndenScale/Monoco)](LICENSE)
40
+
41
+ > **The Operating System for Agentic Engineering.**
42
+ >
43
+ > Ground your AI Agents into deterministic workflows. Turn vague "chats" into structured, validatable, and shippable engineering units.
44
+
45
+ ---
46
+
47
+ ## ⚡️ Why Monoco?
48
+
49
+ In the era of LLMs, the bottleneck isn't **intelligence**—it's **control**.
50
+
51
+ Generating code is easy. Managing the lifecycle of thousands of agent-generated tasks, validating their outputs, and maintaining a coherent project state is hard. **Monoco** is the missing control plane that bridges the gap between raw AI velocity and strict engineering rigor.
52
+
53
+ Monoco handles the **"BizOps Logic"** of your development process, allowing you to orchestrate human and AI labor within a unified, version-controlled environment.
54
+
55
+ ## 🌟 Core Features
56
+
57
+ ### 1. Issue as Code (IaaC)
58
+
59
+ Treat your project management like your code.
60
+
61
+ - **Markdown Native**: All tasks (Epics, Features, Chores) are stored as structured Markdown files in your repository.
62
+ - **Git Backed**: Version control your roadmap. Review changes to requirements via Pull Requests.
63
+ - **Universal Context**: Provides a standardized, hallucination-free state representation for AI Agents.
64
+
65
+ ### 2. The Agent Cockpit (VS Code Extension)
66
+
67
+ Stop context switching. Manage your entire agentic workflow directly inside your editor.
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.
78
+
79
+ ## 🚀 Quick Start
80
+
81
+ ### Installation
82
+
83
+ Monoco is available as a Python CLI tool.
84
+
85
+ ```bash
86
+ pip install monoco-toolkit
87
+ ```
88
+
89
+ ### Initialization
90
+
91
+ Turn any directory into a Monoco workspace.
92
+
93
+ ```bash
94
+ monoco init
95
+ ```
96
+
97
+ ### Workflow
98
+
99
+ 1. **Plan**: Create a new feature request.
100
+ ```bash
101
+ monoco issue create feature -t "Implement Dark Mode"
102
+ ```
103
+ 2. **Start**: Create a feature branch automatically.
104
+ ```bash
105
+ monoco issue start FEAT-001 --branch
106
+ ```
107
+ 3. **Code & Sync**: Track modified files automatically.
108
+ ```bash
109
+ monoco issue sync-files
110
+ ```
111
+ 4. **Visualize**: Open the board in VS Code or via CLI.
112
+ ```bash
113
+ # Starts the local server
114
+ monoco serve
115
+ ```
116
+
117
+ ## 📦 Extension for VS Code
118
+
119
+ The **Monoco VS Code Extension** is the primary visual interface for the toolkit.
120
+
121
+ - **Install from Marketplace**: Search for `Monoco`.
122
+ - **Keybinding**: `Cmd+Shift+P` -> `Monoco: Open Kanban Board`.
123
+
124
+ ## 🛠️ Tech Stack & Architecture
125
+
126
+ - **Core**: Python (CLI & Logic Layer)
127
+ - **Extension**: TypeScript (VS Code Client & LSP)
128
+ - **Data**: Local Filesystem (Markdown/YAML)
129
+
130
+ ## 🤝 Contributing
131
+
132
+ Monoco is designed for the community. We welcome contributions to both the core CLI and the VS Code extension.
133
+
134
+ ## 📄 License
135
+
136
+ MIT © [IndenScale](https://github.com/IndenScale)
@@ -0,0 +1,83 @@
1
+ monoco/main.py,sha256=wWOtB54RB4_opq_DuRQyEStAYbJHgGCZfQglUup6q28,5370
2
+ monoco/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ monoco/cli/project.py,sha256=w4oUWzOV42qh34g4klyzZfTUg6ux0oEdSinMCzmhH3E,2786
4
+ monoco/cli/workspace.py,sha256=vhRsbjgO6ek6PWYdmhk9EeYW_xWRV196yl7-xPfcRAI,1305
5
+ monoco/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ monoco/core/config.py,sha256=UpP6OE3wex8ZesnMZVZKPRy1peHrjq8nXv_BVtZzNIk,12105
7
+ monoco/core/execution.py,sha256=rySL0ueJvTEQ1JhdpumsNBQHJpj08nfaHQMlX-1uh6k,1846
8
+ monoco/core/feature.py,sha256=oAtQWUHMuqIFbq2gj8sPfYBlJZvMMXZqyUlCMrIVGUE,2007
9
+ monoco/core/git.py,sha256=i_NKT9_n57S9EKeb8kF2yTEdw70FZ88-lpMqW4lzVds,8228
10
+ monoco/core/injection.py,sha256=4BuQ5RVozyU99uSOzPwgc6MFMZUcECerTik5lF39I9A,7078
11
+ monoco/core/integrations.py,sha256=MGw6dCipX2S5GtnboFwVxpkuWMGa_I6T9s0owsIjU4o,7885
12
+ monoco/core/lsp.py,sha256=23OxtVomvvE0GgAbdw_8-DclIac1SzjJGt8urbPKXEA,2006
13
+ monoco/core/output.py,sha256=S5jbOBRuLleBPfypS5nUUoNIUAdub4zJO63RePLb0LU,3787
14
+ monoco/core/registry.py,sha256=xix21TDeJgRiZ2kvHitnac4RsqMdp1aERpYGSrwfIpY,1180
15
+ monoco/core/setup.py,sha256=5fAsj4HZAC1sG-pEn5hKTZ6JsCAqNa8-eWOs739wpqs,9657
16
+ monoco/core/skills.py,sha256=5qK-0YlOnNQLqyo6-T4GVBrkjsbrszb5ugXeXRRcQ00,16597
17
+ monoco/core/state.py,sha256=KlmOn0KXO8g9S_KUIrUylAKdBpyH_1AOBvrYSj_khdE,1884
18
+ monoco/core/sync.py,sha256=s0qQ5PsVn_IWGWUNThdvNFS-CncztDzsTM3QLupC6Og,8514
19
+ monoco/core/telemetry.py,sha256=DZQGOhvpe0XL34RCDaTZEUhmkD4abBTZumZJQlALzpY,2923
20
+ monoco/core/workspace.py,sha256=0RWx8H_Kx56TYVrAURTSJW4aWOUylXofkvXBhRNjP_E,3074
21
+ monoco/core/agent/__init__.py,sha256=tBCm6PDqPFo81yO949nW897INjl7ot46CPup9IrXExE,108
22
+ monoco/core/agent/action.py,sha256=HpOLzp-mttJY0SDVbRlstDVqjFKozIAdjQdJ4Gp3xiY,5161
23
+ monoco/core/agent/adapters.py,sha256=s8dzeXZY-m1pb8re5U5O1ED4d6MT9WNFWIeSpHBcmRg,4391
24
+ monoco/core/agent/protocol.py,sha256=E7y_i2JzYGpzSCRCUIuzu1ATav-Xu1K01ka6Zncm4-o,831
25
+ monoco/core/agent/state.py,sha256=sRav6uwkXao8yPl08CEB-cqK1EfiDyMnVxoSYxvYcis,3523
26
+ monoco/core/resources/en/AGENTS.md,sha256=3TpCLNC1s_lIbDfJJBRmmROMoy9sZXu8BOag8M9NXI0,327
27
+ monoco/core/resources/en/SKILL.md,sha256=1PrBqCgjDxT1LMSeu11BzlMhfboo_UlgZxdzBm7Tp9c,2161
28
+ monoco/core/resources/zh/AGENTS.md,sha256=pGQOLt8mcRygJotd5oC8l9604hikQoUiS99QsHCe-UM,298
29
+ monoco/core/resources/zh/SKILL.md,sha256=8py8tD7s23cw2srKFnTjLO_miyuGXb3NLyEbk5gchqA,1886
30
+ monoco/daemon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ monoco/daemon/app.py,sha256=I_BWs4WcJoTobssFKRBlAcD2CRnJtr6EPlFoGB5Hy-Y,15586
32
+ monoco/daemon/commands.py,sha256=dN4D8ca0vPjj0WyjCSs8senneta1afm_bnNYv_kmGlU,1125
33
+ monoco/daemon/models.py,sha256=5T2SggaTdKWKRihjGhFOQM57s7WwF4Nx7c6C4YUeMSw,967
34
+ monoco/daemon/reproduce_stats.py,sha256=Q_zAj0Yj8l-77QDdtsLz1kWr68HeO7f1T6xC6VP43Vo,1261
35
+ monoco/daemon/services.py,sha256=dMhy2ddzGtBBWTGtI14R-2aikENAgPsphxDkno1JAPU,5377
36
+ monoco/daemon/stats.py,sha256=r-L0k6CdxkAkwLZV3V-jW7PldB9S3uNklQGLCEKA3Sc,4563
37
+ monoco/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ monoco/features/config/commands.py,sha256=PQaSq81zH4h8d1bFa4B2ANSXSdyjBFqVm_nBvEq1rNE,4889
39
+ monoco/features/i18n/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ monoco/features/i18n/adapter.py,sha256=M9iSEKykEiUe1YobHKmvfEjv7x7KgGuh-6yhgUJuN_s,973
41
+ monoco/features/i18n/commands.py,sha256=GxU3YSYVKKQKsVy35VZECRXgnZz0xl-xfgO-99qwbkw,8210
42
+ monoco/features/i18n/core.py,sha256=s0r-48yMxrIrpWNX7r8JhtGX4X-Kd1P1bDAgNyluQ24,9227
43
+ monoco/features/i18n/resources/en/AGENTS.md,sha256=zzuF7BW6x8Mj6LZZmeM6wTbG5CSCDMShf4rwtN7XITg,197
44
+ monoco/features/i18n/resources/en/SKILL.md,sha256=Z8fAAqeMvpLDw1D_9AzZIykS5-HLVM9nnlRZLWBTPqM,2203
45
+ monoco/features/i18n/resources/zh/AGENTS.md,sha256=lKkwLLCADRH7UDq9no4eQY2sRfJrb64JoZ_HNved8vA,175
46
+ monoco/features/i18n/resources/zh/SKILL.md,sha256=Wynk7zVBW7CO0_6AEQNUvlD_3eMW_7EPnzEn9QUaiDs,1884
47
+ monoco/features/issue/adapter.py,sha256=Y-ghwRoSEgm_A-cqY8Un-5srxydXdb9ytlKHLm89eJQ,1265
48
+ monoco/features/issue/commands.py,sha256=6nm0CPbHYXWQFKRJ1rV8opXYq4zGinKpVvudSYtMOAs,36041
49
+ monoco/features/issue/core.py,sha256=Xw_BIBGL071aJVhU4uI0OlwKhRbgFXy39GncG9Q3NGk,50838
50
+ monoco/features/issue/linter.py,sha256=TD2YifpJ1U0Co2t5O8KHu65J7M6H6im2jMnJbsB3kEY,17208
51
+ monoco/features/issue/migration.py,sha256=9gtgFi1V1pzwXo0-H4cIoBvSBERIWopXLCB4oSxTQLc,4715
52
+ monoco/features/issue/models.py,sha256=3OsJPXNGw5i_fNmrYS4mlaZrHvxR77qd7ZuVUxjxVu4,5804
53
+ monoco/features/issue/monitor.py,sha256=QEN0mqZ3tKwBfMjN87-LdrVoIEe0prA-uMHOBGy1VZk,3476
54
+ monoco/features/issue/validator.py,sha256=a2HCvZmg8azeMMekuJl2MEFY3S0lYXM8pzSrwuOAOuE,20576
55
+ monoco/features/issue/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ monoco/features/issue/domain/lifecycle.py,sha256=-WreIDCeEQPjD82Q4wJMs_S5-9SQHCvGlPgtMllvXGw,4943
57
+ monoco/features/issue/domain/models.py,sha256=pjeb_Lp0zykNzAfrRma26IMkdlxYDQ0IdvNmM_7tepU,5720
58
+ monoco/features/issue/domain/parser.py,sha256=HfJh9uBN7Q7KyeXz1tk3tBjszu8ffStfZf9IS27v0K8,8770
59
+ monoco/features/issue/domain/workspace.py,sha256=AOv7H_he39UnYplCaEex6mdFgpAlGk6T8cDMxKwQLz0,3833
60
+ monoco/features/issue/engine/__init__.py,sha256=bWONZnIb0IkAhw09_pMbyqrDh-oUOLTrNvlQfypHXYw,785
61
+ monoco/features/issue/engine/config.py,sha256=BhTw9S8Oe10P1VfdLN64Nk0Woj613dHwfHiX87_AgJo,5762
62
+ monoco/features/issue/engine/machine.py,sha256=8wr5txLlzv0QO2sAlPl7JSPN-VkxJUpRNK25F7L7DVI,7530
63
+ monoco/features/issue/engine/models.py,sha256=u8Z7ilB702Jj6Imv4_vXpP8QTSWEnQdPxv8JA_9g1GU,579
64
+ monoco/features/issue/lsp/__init__.py,sha256=8bl8-WzSj3C4SkPKgVGnCeyemmvHVWBsuMZsJuJggG8,77
65
+ monoco/features/issue/lsp/definition.py,sha256=Y4dX7MmrEfYbWuh85W0djwUj_qed7cDpGadtiXEZDh4,3107
66
+ monoco/features/issue/resources/en/AGENTS.md,sha256=7lMJdLhokispHVTrViIyMaz5TOJ88GkPKfWZp4FlgRQ,1015
67
+ monoco/features/issue/resources/en/SKILL.md,sha256=ODE-bB5fwLXQ4U-q24HfnssTQvzowMpkVaVIX7gmYvQ,3756
68
+ monoco/features/issue/resources/zh/AGENTS.md,sha256=veb22lU0qindYcsNsuGLqzpBEjExCPDOkX5Q39OjZz0,1113
69
+ monoco/features/issue/resources/zh/SKILL.md,sha256=XFE33cCCos0U1IVNkMhU7fGuqVqfxo_FNKdp1aScaoM,5055
70
+ monoco/features/skills/__init__.py,sha256=L8YNGPWyyFWq5WqNossfeB0AKHJF_omrn1VzJBrRFcM,23
71
+ monoco/features/skills/core.py,sha256=mpd0Cq-k2MvHRTPq9saFvZgYXUBGJ9pnK5lUmzUfZbY,3418
72
+ monoco/features/spike/adapter.py,sha256=npJ4J775Df0DDi-LH-3u2jCuKjTIXyZUbLD0KNvHlcc,1062
73
+ monoco/features/spike/commands.py,sha256=ctC2Kbe0fgpeDfw5106P0rsKEBDue0rFI4eMNRpXMDw,3880
74
+ monoco/features/spike/core.py,sha256=oP1yAalOnoA5fHpf2o4gteKx73XGwZ6G0WrO86z2iWE,4174
75
+ monoco/features/spike/resources/en/AGENTS.md,sha256=NG3CMnlDk_0J8hnRUcueAM9lgIQr_dZ42R_31-LC48E,306
76
+ monoco/features/spike/resources/en/SKILL.md,sha256=qKDcVh0D3pDRvfNLh1Bzo4oQU3obpl4tqdlzxeiWYMk,1911
77
+ monoco/features/spike/resources/zh/AGENTS.md,sha256=5RHNl7fc3RdYYTFH483ojJl_arGPKkyYziOuGgFbqqg,290
78
+ monoco/features/spike/resources/zh/SKILL.md,sha256=Q82e9lCQOAYIwBs5rGnvlVUDq7bp0pz8yvO10KTWFYQ,1710
79
+ monoco_toolkit-0.2.8.dist-info/METADATA,sha256=FGlYFtlrI0jOh2NIBG1DsqOgi6_s96U-vdfPOyudeT0,4866
80
+ monoco_toolkit-0.2.8.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
81
+ monoco_toolkit-0.2.8.dist-info/entry_points.txt,sha256=iYj7FWYBdtClU15-Du1skqD0s6SFSIhJvxJ29VWp8ng,43
82
+ monoco_toolkit-0.2.8.dist-info/licenses/LICENSE,sha256=ACAGGjV6aod4eIlVUTx1q9PZbnZGN5bBwkSs9RHj83s,1071
83
+ monoco_toolkit-0.2.8.dist-info/RECORD,,