mapify-cli 1.0.0__tar.gz → 1.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/.gitignore +2 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/PKG-INFO +14 -2
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/README.md +13 -1
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/pyproject.toml +1 -1
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/__init__.py +64 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/actor.md +489 -8
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/evaluator.md +4 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/monitor.md +111 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/task-decomposer.md +432 -5
- mapify_cli-1.0.3/src/mapify_cli/tools/__init__.py +28 -0
- mapify_cli-1.0.3/src/mapify_cli/tools/validate_dependencies.py +765 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/.claude/agents/README.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/.claude/hooks/README.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/docs/context-engineering/README.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/playbook_manager.py +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/recitation_manager.py +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/semantic_search.py +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/CHANGELOG.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/MCP-PATTERNS.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/README.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/curator.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/documentation-reviewer.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/predictor.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/reflector.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/agents/test-generator.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/commands/map-debug.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/commands/map-feature.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/commands/map-refactor.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/commands/map-review.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/hooks/README.md +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/hooks/validate-agent-templates.sh +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/templates/settings.hooks.json +0 -0
- {mapify_cli-1.0.0 → mapify_cli-1.0.3}/src/mapify_cli/workflow_logger.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mapify-cli
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.3
|
|
4
4
|
Summary: MAP Framework installer - Modular Agentic Planner for Claude Code
|
|
5
5
|
Project-URL: Homepage, https://github.com/azalio/map-framework
|
|
6
6
|
Project-URL: Repository, https://github.com/azalio/map-framework.git
|
|
@@ -40,7 +40,7 @@ Implementation of **Modular Agentic Planner (MAP)** — a cognitive architecture
|
|
|
40
40
|
- **README** (this file) - Quick start and overview
|
|
41
41
|
- **[INSTALL.md](docs/INSTALL.md)** - Complete installation guide with PATH setup and troubleshooting
|
|
42
42
|
- **[ARCHITECTURE.md](docs/ARCHITECTURE.md)** - Technical deep dive, customization, and MCP integration
|
|
43
|
-
- **[USAGE.md](docs/USAGE.md)** - Practical examples, best practices, and
|
|
43
|
+
- **[USAGE.md](docs/USAGE.md)** - Practical examples, best practices, cost optimization, and dependency validation
|
|
44
44
|
|
|
45
45
|
## 🚀 Quick Start
|
|
46
46
|
|
|
@@ -92,6 +92,12 @@ mapify --version
|
|
|
92
92
|
# Initialize in your project
|
|
93
93
|
cd your-project
|
|
94
94
|
mapify init
|
|
95
|
+
|
|
96
|
+
# Available commands
|
|
97
|
+
mapify --help # Show all available commands
|
|
98
|
+
mapify validate graph <file> # Validate task dependency graphs
|
|
99
|
+
mapify playbook search <query> # Search playbook patterns
|
|
100
|
+
mapify recitation get-context # Get current task plan
|
|
95
101
|
```
|
|
96
102
|
|
|
97
103
|
**Version Pinning:**
|
|
@@ -192,6 +198,7 @@ Built-in learning system that improves with each task:
|
|
|
192
198
|
- **Reflector** extracts patterns from successes and failures
|
|
193
199
|
- **Curator** maintains structured knowledge base with quality tracking
|
|
194
200
|
- **Semantic search** (optional) finds patterns by meaning, not keywords
|
|
201
|
+
- **Dependency validation** ensures valid task graphs before execution
|
|
195
202
|
- Automatically grows high-quality pattern library
|
|
196
203
|
|
|
197
204
|
### Playbook Commands
|
|
@@ -205,12 +212,17 @@ mapify playbook search "JWT authentication"
|
|
|
205
212
|
|
|
206
213
|
# View high-quality patterns
|
|
207
214
|
mapify playbook sync
|
|
215
|
+
|
|
216
|
+
# Validate task dependencies with visualization
|
|
217
|
+
python scripts/validate-dependencies.py decomposer-output.json --visualize
|
|
208
218
|
```
|
|
209
219
|
|
|
210
220
|
**Optional semantic search**: `pip install -r requirements-semantic.txt` for meaning-based matching. Details in [SEMANTIC_SEARCH_SETUP.md](docs/SEMANTIC_SEARCH_SETUP.md) and [ARCHITECTURE.md](docs/ARCHITECTURE.md#semantic-search).
|
|
211
221
|
|
|
212
222
|
**Playbook configuration**: See [ARCHITECTURE.md](docs/ARCHITECTURE.md#playbook-configuration) for top_k settings and optimization.
|
|
213
223
|
|
|
224
|
+
**Dependency validation**: See [USAGE.md](docs/USAGE.md#dependency-validation) for comprehensive guide on validating TaskDecomposer output, including cycle detection, visualization, and CI/CD integration.
|
|
225
|
+
|
|
214
226
|
## 💰 Cost Optimization
|
|
215
227
|
|
|
216
228
|
MAP Framework uses intelligent model selection per agent:
|
|
@@ -10,7 +10,7 @@ Implementation of **Modular Agentic Planner (MAP)** — a cognitive architecture
|
|
|
10
10
|
- **README** (this file) - Quick start and overview
|
|
11
11
|
- **[INSTALL.md](docs/INSTALL.md)** - Complete installation guide with PATH setup and troubleshooting
|
|
12
12
|
- **[ARCHITECTURE.md](docs/ARCHITECTURE.md)** - Technical deep dive, customization, and MCP integration
|
|
13
|
-
- **[USAGE.md](docs/USAGE.md)** - Practical examples, best practices, and
|
|
13
|
+
- **[USAGE.md](docs/USAGE.md)** - Practical examples, best practices, cost optimization, and dependency validation
|
|
14
14
|
|
|
15
15
|
## 🚀 Quick Start
|
|
16
16
|
|
|
@@ -62,6 +62,12 @@ mapify --version
|
|
|
62
62
|
# Initialize in your project
|
|
63
63
|
cd your-project
|
|
64
64
|
mapify init
|
|
65
|
+
|
|
66
|
+
# Available commands
|
|
67
|
+
mapify --help # Show all available commands
|
|
68
|
+
mapify validate graph <file> # Validate task dependency graphs
|
|
69
|
+
mapify playbook search <query> # Search playbook patterns
|
|
70
|
+
mapify recitation get-context # Get current task plan
|
|
65
71
|
```
|
|
66
72
|
|
|
67
73
|
**Version Pinning:**
|
|
@@ -162,6 +168,7 @@ Built-in learning system that improves with each task:
|
|
|
162
168
|
- **Reflector** extracts patterns from successes and failures
|
|
163
169
|
- **Curator** maintains structured knowledge base with quality tracking
|
|
164
170
|
- **Semantic search** (optional) finds patterns by meaning, not keywords
|
|
171
|
+
- **Dependency validation** ensures valid task graphs before execution
|
|
165
172
|
- Automatically grows high-quality pattern library
|
|
166
173
|
|
|
167
174
|
### Playbook Commands
|
|
@@ -175,12 +182,17 @@ mapify playbook search "JWT authentication"
|
|
|
175
182
|
|
|
176
183
|
# View high-quality patterns
|
|
177
184
|
mapify playbook sync
|
|
185
|
+
|
|
186
|
+
# Validate task dependencies with visualization
|
|
187
|
+
python scripts/validate-dependencies.py decomposer-output.json --visualize
|
|
178
188
|
```
|
|
179
189
|
|
|
180
190
|
**Optional semantic search**: `pip install -r requirements-semantic.txt` for meaning-based matching. Details in [SEMANTIC_SEARCH_SETUP.md](docs/SEMANTIC_SEARCH_SETUP.md) and [ARCHITECTURE.md](docs/ARCHITECTURE.md#semantic-search).
|
|
181
191
|
|
|
182
192
|
**Playbook configuration**: See [ARCHITECTURE.md](docs/ARCHITECTURE.md#playbook-configuration) for top_k settings and optimization.
|
|
183
193
|
|
|
194
|
+
**Dependency validation**: See [USAGE.md](docs/USAGE.md#dependency-validation) for comprehensive guide on validating TaskDecomposer output, including cycle detection, visualization, and CI/CD integration.
|
|
195
|
+
|
|
184
196
|
## 💰 Cost Optimization
|
|
185
197
|
|
|
186
198
|
MAP Framework uses intelligent model selection per agent:
|
|
@@ -358,9 +358,11 @@ app = typer.Typer(
|
|
|
358
358
|
# Create subcommand groups
|
|
359
359
|
recitation_app = typer.Typer(name="recitation", help="Manage task execution plans (recitation pattern)")
|
|
360
360
|
playbook_app = typer.Typer(name="playbook", help="Manage and search playbook patterns")
|
|
361
|
+
validate_app = typer.Typer(name="validate", help="Validate task dependency graphs")
|
|
361
362
|
|
|
362
363
|
app.add_typer(recitation_app, name="recitation")
|
|
363
364
|
app.add_typer(playbook_app, name="playbook")
|
|
365
|
+
app.add_typer(validate_app, name="validate")
|
|
364
366
|
|
|
365
367
|
|
|
366
368
|
def show_banner():
|
|
@@ -1937,6 +1939,68 @@ def playbook_sync(threshold: int = typer.Option(5, help="Minimum helpful count")
|
|
|
1937
1939
|
patterns = manager.get_bullets_for_sync(threshold=threshold)
|
|
1938
1940
|
console.print_json(data={"threshold": threshold, "count": len(patterns), "patterns": [{"id": p.get("id"), "helpful_count": p.get("helpful_count")} for p in patterns]})
|
|
1939
1941
|
|
|
1942
|
+
# Validate commands
|
|
1943
|
+
|
|
1944
|
+
@validate_app.command("graph")
|
|
1945
|
+
def validate_graph(
|
|
1946
|
+
input_file: Optional[Path] = typer.Argument(None, help="JSON file to validate (or use stdin)"),
|
|
1947
|
+
visualize: bool = typer.Option(False, "--visualize", help="Show ASCII dependency tree"),
|
|
1948
|
+
no_color: bool = typer.Option(False, "--no-color", help="Disable colored output"),
|
|
1949
|
+
format: str = typer.Option("json", "-f", "--format", help="Output format: json or text"),
|
|
1950
|
+
strict: bool = typer.Option(False, "--strict", help="Fail on warnings (e.g., orphaned tasks), not just critical errors (cycles, forward refs)")
|
|
1951
|
+
):
|
|
1952
|
+
"""Validate TaskDecomposer dependency graph
|
|
1953
|
+
|
|
1954
|
+
Exit codes:
|
|
1955
|
+
0 - Valid graph (no critical errors; warnings allowed unless --strict)
|
|
1956
|
+
1 - Invalid graph (critical errors found, or warnings with --strict)
|
|
1957
|
+
2 - Malformed input (invalid JSON or missing required fields)
|
|
1958
|
+
"""
|
|
1959
|
+
from mapify_cli.tools.validate_dependencies import (
|
|
1960
|
+
load_input, DependencyValidator, ASCIIGraphRenderer, print_report
|
|
1961
|
+
)
|
|
1962
|
+
|
|
1963
|
+
try:
|
|
1964
|
+
# Load input
|
|
1965
|
+
data = load_input(str(input_file) if input_file else None)
|
|
1966
|
+
|
|
1967
|
+
# Validate
|
|
1968
|
+
validator = DependencyValidator(data)
|
|
1969
|
+
is_valid = validator.validate_all()
|
|
1970
|
+
report = validator.get_report()
|
|
1971
|
+
|
|
1972
|
+
# Print report
|
|
1973
|
+
print_report(report, format)
|
|
1974
|
+
|
|
1975
|
+
# Display visualization if requested
|
|
1976
|
+
if visualize:
|
|
1977
|
+
console.print() # Add blank line separator
|
|
1978
|
+
renderer = ASCIIGraphRenderer(validator)
|
|
1979
|
+
visualization = renderer.render(use_colors=not no_color)
|
|
1980
|
+
console.print(visualization)
|
|
1981
|
+
|
|
1982
|
+
# Determine exit code based on issue severity
|
|
1983
|
+
has_critical = report.get("critical_issues", 0) > 0
|
|
1984
|
+
has_warnings = report.get("warnings", 0) > 0
|
|
1985
|
+
|
|
1986
|
+
if has_critical:
|
|
1987
|
+
# Critical errors always fail
|
|
1988
|
+
raise typer.Exit(1)
|
|
1989
|
+
elif has_warnings and strict:
|
|
1990
|
+
# Warnings fail only in strict mode
|
|
1991
|
+
raise typer.Exit(1)
|
|
1992
|
+
# Otherwise exit 0 (success)
|
|
1993
|
+
|
|
1994
|
+
except ValueError as e:
|
|
1995
|
+
# Input validation error (malformed JSON, missing fields)
|
|
1996
|
+
error_report = {
|
|
1997
|
+
"valid": False,
|
|
1998
|
+
"error": str(e),
|
|
1999
|
+
"error_type": "input_validation"
|
|
2000
|
+
}
|
|
2001
|
+
console.print_json(data=error_report)
|
|
2002
|
+
raise typer.Exit(2)
|
|
2003
|
+
|
|
1940
2004
|
|
|
1941
2005
|
def main():
|
|
1942
2006
|
app()
|