moai-adk 0.3.0__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.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

Files changed (87) hide show
  1. moai_adk/__init__.py +8 -0
  2. moai_adk/__main__.py +86 -0
  3. moai_adk/cli/__init__.py +2 -0
  4. moai_adk/cli/commands/__init__.py +16 -0
  5. moai_adk/cli/commands/backup.py +56 -0
  6. moai_adk/cli/commands/doctor.py +184 -0
  7. moai_adk/cli/commands/init.py +284 -0
  8. moai_adk/cli/commands/restore.py +77 -0
  9. moai_adk/cli/commands/status.py +79 -0
  10. moai_adk/cli/commands/update.py +133 -0
  11. moai_adk/cli/main.py +12 -0
  12. moai_adk/cli/prompts/__init__.py +5 -0
  13. moai_adk/cli/prompts/init_prompts.py +159 -0
  14. moai_adk/core/__init__.py +2 -0
  15. moai_adk/core/git/__init__.py +24 -0
  16. moai_adk/core/git/branch.py +26 -0
  17. moai_adk/core/git/branch_manager.py +137 -0
  18. moai_adk/core/git/checkpoint.py +140 -0
  19. moai_adk/core/git/commit.py +68 -0
  20. moai_adk/core/git/event_detector.py +81 -0
  21. moai_adk/core/git/manager.py +127 -0
  22. moai_adk/core/project/__init__.py +2 -0
  23. moai_adk/core/project/backup_utils.py +84 -0
  24. moai_adk/core/project/checker.py +302 -0
  25. moai_adk/core/project/detector.py +105 -0
  26. moai_adk/core/project/initializer.py +174 -0
  27. moai_adk/core/project/phase_executor.py +297 -0
  28. moai_adk/core/project/validator.py +118 -0
  29. moai_adk/core/quality/__init__.py +6 -0
  30. moai_adk/core/quality/trust_checker.py +441 -0
  31. moai_adk/core/quality/validators/__init__.py +6 -0
  32. moai_adk/core/quality/validators/base_validator.py +19 -0
  33. moai_adk/core/template/__init__.py +8 -0
  34. moai_adk/core/template/backup.py +95 -0
  35. moai_adk/core/template/config.py +95 -0
  36. moai_adk/core/template/languages.py +44 -0
  37. moai_adk/core/template/merger.py +117 -0
  38. moai_adk/core/template/processor.py +310 -0
  39. moai_adk/templates/.claude/agents/alfred/cc-manager.md +474 -0
  40. moai_adk/templates/.claude/agents/alfred/code-builder.md +534 -0
  41. moai_adk/templates/.claude/agents/alfred/debug-helper.md +302 -0
  42. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +175 -0
  43. moai_adk/templates/.claude/agents/alfred/git-manager.md +200 -0
  44. moai_adk/templates/.claude/agents/alfred/project-manager.md +152 -0
  45. moai_adk/templates/.claude/agents/alfred/spec-builder.md +256 -0
  46. moai_adk/templates/.claude/agents/alfred/tag-agent.md +247 -0
  47. moai_adk/templates/.claude/agents/alfred/trust-checker.md +332 -0
  48. moai_adk/templates/.claude/commands/alfred/0-project.md +523 -0
  49. moai_adk/templates/.claude/commands/alfred/1-spec.md +531 -0
  50. moai_adk/templates/.claude/commands/alfred/2-build.md +413 -0
  51. moai_adk/templates/.claude/commands/alfred/3-sync.md +552 -0
  52. moai_adk/templates/.claude/hooks/alfred/README.md +238 -0
  53. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +165 -0
  54. moai_adk/templates/.claude/hooks/alfred/core/__init__.py +79 -0
  55. moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py +271 -0
  56. moai_adk/templates/.claude/hooks/alfred/core/context.py +110 -0
  57. moai_adk/templates/.claude/hooks/alfred/core/project.py +284 -0
  58. moai_adk/templates/.claude/hooks/alfred/core/tags.py +244 -0
  59. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +23 -0
  60. moai_adk/templates/.claude/hooks/alfred/handlers/compact.py +51 -0
  61. moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +25 -0
  62. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +80 -0
  63. moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +71 -0
  64. moai_adk/templates/.claude/hooks/alfred/handlers/user.py +41 -0
  65. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +635 -0
  66. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +691 -0
  67. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +469 -0
  68. moai_adk/templates/.claude/settings.json +135 -0
  69. moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +68 -0
  70. moai_adk/templates/.github/workflows/moai-gitflow.yml +255 -0
  71. moai_adk/templates/.gitignore +41 -0
  72. moai_adk/templates/.moai/config.json +89 -0
  73. moai_adk/templates/.moai/memory/development-guide.md +367 -0
  74. moai_adk/templates/.moai/memory/spec-metadata.md +277 -0
  75. moai_adk/templates/.moai/project/product.md +121 -0
  76. moai_adk/templates/.moai/project/structure.md +150 -0
  77. moai_adk/templates/.moai/project/tech.md +221 -0
  78. moai_adk/templates/CLAUDE.md +733 -0
  79. moai_adk/templates/__init__.py +2 -0
  80. moai_adk/utils/__init__.py +8 -0
  81. moai_adk/utils/banner.py +42 -0
  82. moai_adk/utils/logger.py +152 -0
  83. moai_adk-0.3.0.dist-info/METADATA +20 -0
  84. moai_adk-0.3.0.dist-info/RECORD +87 -0
  85. moai_adk-0.3.0.dist-info/WHEEL +4 -0
  86. moai_adk-0.3.0.dist-info/entry_points.txt +2 -0
  87. moai_adk-0.3.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,2 @@
1
+ # @CODE:TEST-INTEGRATION-001 | SPEC: SPEC-TEST-INTEGRATION-001.md
2
+ """MoAI-ADK Templates Package"""
@@ -0,0 +1,8 @@
1
+ # @CODE:LOGGING-001 | SPEC: SPEC-LOGGING-001.md | TEST: tests/unit/test_logger.py
2
+ """
3
+ MoAI-ADK utility module
4
+ """
5
+
6
+ from .logger import SensitiveDataFilter, setup_logger
7
+
8
+ __all__ = ["SensitiveDataFilter", "setup_logger"]
@@ -0,0 +1,42 @@
1
+ # @CODE:UTILS-001 | SPEC: SPEC-CLI-001.md
2
+ """ASCII banner module
3
+
4
+ Render the MoAI-ADK ASCII art banner
5
+ """
6
+
7
+ from rich.console import Console
8
+
9
+ console = Console()
10
+
11
+ MOAI_BANNER = """
12
+ ███╗ ███╗ ██████╗ █████╗ ██╗ █████╗ ██████╗ ██╗ ██╗
13
+ ████╗ ████║██╔═══██╗██╔══██╗██║ ██╔══██╗██╔══██╗██║ ██╔╝
14
+ ██╔████╔██║██║ ██║███████║██║█████╗███████║██║ ██║█████╔╝
15
+ ██║╚██╔╝██║██║ ██║██╔══██║██║╚════╝██╔══██║██║ ██║██╔═██╗
16
+ ██║ ╚═╝ ██║╚██████╔╝██║ ██║██║ ██║ ██║██████╔╝██║ ██╗
17
+ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝
18
+ """
19
+
20
+
21
+ def print_banner(version: str = "0.3.0") -> None:
22
+ """Print the MoAI-ADK banner
23
+
24
+ Args:
25
+ version: MoAI-ADK version
26
+ """
27
+ console.print(f"[cyan]{MOAI_BANNER}[/cyan]")
28
+ console.print(
29
+ "[dim] Modu-AI's Agentic Development Kit w/ SuperAgent 🎩 Alfred[/dim]\n"
30
+ )
31
+ console.print(f"[dim] Version: {version}[/dim]\n")
32
+
33
+
34
+ def print_welcome_message() -> None:
35
+ """Print the welcome message"""
36
+ console.print("[cyan bold]🚀 Welcome to MoAI-ADK Project Initialization![/cyan bold]\n")
37
+ console.print(
38
+ "[dim]This wizard will guide you through setting up your MoAI-ADK project.[/dim]"
39
+ )
40
+ console.print(
41
+ "[dim]You can press Ctrl+C at any time to cancel.\n[/dim]"
42
+ )
@@ -0,0 +1,152 @@
1
+ # @CODE:LOGGING-001 | SPEC: SPEC-LOGGING-001.md | TEST: tests/unit/test_logger.py
2
+ """
3
+ Logging system built on Python's logging module
4
+
5
+ SPEC requirements:
6
+ - Store logs at .moai/logs/moai.log
7
+ - Mask sensitive data: API Key, Email, Password
8
+ - Log levels: development (DEBUG), test (INFO), production (WARNING)
9
+ """
10
+
11
+ import logging
12
+ import os
13
+ import re
14
+ from pathlib import Path
15
+
16
+
17
+ class SensitiveDataFilter(logging.Filter):
18
+ """
19
+ Filter that masks sensitive information.
20
+
21
+ Automatically detects and obfuscates sensitive values in log messages.
22
+
23
+ Supported patterns:
24
+ - API Key: strings that start with sk-
25
+ - Email: standard email address format
26
+ - Password: values following password/passwd/pwd keywords
27
+
28
+ Example:
29
+ >>> filter_instance = SensitiveDataFilter()
30
+ >>> record = logging.LogRecord(
31
+ ... name="app", level=logging.INFO, pathname="", lineno=0,
32
+ ... msg="API Key: sk-secret123", args=(), exc_info=None
33
+ ... )
34
+ >>> filter_instance.filter(record)
35
+ >>> print(record.msg)
36
+ API Key: ***REDACTED***
37
+ """
38
+
39
+ # @CODE:LOGGING-001:DOMAIN - Define sensitive data patterns
40
+ PATTERNS = [
41
+ (r"sk-[a-zA-Z0-9]+", "***REDACTED***"), # API Key
42
+ (r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b", "***REDACTED***"), # Email
43
+ (r"(?i)(password|passwd|pwd)[\s:=]+\S+", r"\1: ***REDACTED***"), # Password
44
+ ]
45
+
46
+ def filter(self, record: logging.LogRecord) -> bool:
47
+ """
48
+ Mask sensitive data in the log record message.
49
+
50
+ Args:
51
+ record: Log record to inspect.
52
+
53
+ Returns:
54
+ True to keep the record.
55
+ """
56
+ message = record.getMessage()
57
+ for pattern, replacement in self.PATTERNS:
58
+ message = re.sub(pattern, replacement, message)
59
+
60
+ record.msg = message
61
+ record.args = () # Clear args so getMessage() returns msg unchanged
62
+
63
+ return True
64
+
65
+
66
+ def setup_logger(
67
+ name: str,
68
+ log_dir: str | None = None,
69
+ level: int | None = None,
70
+ ) -> logging.Logger:
71
+ """
72
+ Configure and return a logger instance.
73
+
74
+ Supports simultaneous console and file output while masking sensitive data.
75
+
76
+ Args:
77
+ name: Logger name (module or application).
78
+ log_dir: Directory where logs are written.
79
+ Default: .moai/logs (created automatically).
80
+ level: Logging level (logging.DEBUG, INFO, WARNING, etc.).
81
+ Default: derived from the MOAI_ENV environment variable.
82
+
83
+ Returns:
84
+ Configured Logger object with console and file handlers.
85
+
86
+ Log level per environment (MOAI_ENV):
87
+ - development: DEBUG (emit all logs)
88
+ - test: INFO (informational and above)
89
+ - production: WARNING (warnings and above)
90
+ - default: INFO (when the environment variable is unset)
91
+
92
+ Example:
93
+ >>> logger = setup_logger("my_app")
94
+ >>> logger.info("Application started")
95
+ >>> logger.debug("Detailed debug info")
96
+ >>> logger.error("Error occurred")
97
+
98
+ # Production environment (only WARNING and above)
99
+ >>> import os
100
+ >>> os.environ["MOAI_ENV"] = "production"
101
+ >>> prod_logger = setup_logger("prod_app")
102
+ >>> prod_logger.warning("This will be logged")
103
+ >>> prod_logger.info("This will NOT be logged")
104
+
105
+ Notes:
106
+ - Log files are written using UTF-8 encoding.
107
+ - Sensitive data (API Key, Email, Password) is automatically masked.
108
+ - Existing handlers are removed to prevent duplicates.
109
+ """
110
+ # @CODE:LOGGING-001:DOMAIN - Determine logging level
111
+ if level is None:
112
+ env = os.getenv("MOAI_ENV", "").lower()
113
+ level_map = {
114
+ "development": logging.DEBUG,
115
+ "test": logging.INFO,
116
+ "production": logging.WARNING,
117
+ }
118
+ level = level_map.get(env, logging.INFO)
119
+
120
+ # @CODE:LOGGING-001:INFRA - Create and configure logger
121
+ logger = logging.getLogger(name)
122
+ logger.setLevel(level)
123
+ logger.handlers.clear() # Remove existing handlers to avoid duplicates
124
+
125
+ # @CODE:LOGGING-001:INFRA - Ensure log directory exists
126
+ if log_dir is None:
127
+ log_dir = ".moai/logs"
128
+ log_path = Path(log_dir)
129
+ log_path.mkdir(parents=True, exist_ok=True)
130
+
131
+ # @CODE:LOGGING-001:INFRA - Define log format
132
+ formatter = logging.Formatter(
133
+ fmt="[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s",
134
+ datefmt="%Y-%m-%d %H:%M:%S",
135
+ )
136
+
137
+ # @CODE:LOGGING-001:INFRA - Console handler
138
+ console_handler = logging.StreamHandler()
139
+ console_handler.setLevel(level)
140
+ console_handler.setFormatter(formatter)
141
+ console_handler.addFilter(SensitiveDataFilter())
142
+ logger.addHandler(console_handler)
143
+
144
+ # @CODE:LOGGING-001:INFRA - File handler
145
+ log_file = log_path / "moai.log"
146
+ file_handler = logging.FileHandler(log_file, encoding="utf-8")
147
+ file_handler.setLevel(level)
148
+ file_handler.setFormatter(formatter)
149
+ file_handler.addFilter(SensitiveDataFilter())
150
+ logger.addHandler(file_handler)
151
+
152
+ return logger
@@ -0,0 +1,20 @@
1
+ Metadata-Version: 2.4
2
+ Name: moai-adk
3
+ Version: 0.3.0
4
+ Summary: MoAI Agentic Development Kit - SPEC-First TDD with Alfred SuperAgent
5
+ License-File: LICENSE
6
+ Requires-Python: >=3.13
7
+ Requires-Dist: click>=8.1.0
8
+ Requires-Dist: gitpython>=3.1.45
9
+ Requires-Dist: pyfiglet>=1.0.2
10
+ Requires-Dist: questionary>=2.0.0
11
+ Requires-Dist: rich>=13.0.0
12
+ Provides-Extra: dev
13
+ Requires-Dist: mypy>=1.7.0; extra == 'dev'
14
+ Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
15
+ Requires-Dist: pytest-xdist>=3.8.0; extra == 'dev'
16
+ Requires-Dist: pytest>=8.4.2; extra == 'dev'
17
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
18
+ Provides-Extra: security
19
+ Requires-Dist: bandit>=1.8.0; extra == 'security'
20
+ Requires-Dist: pip-audit>=2.7.0; extra == 'security'
@@ -0,0 +1,87 @@
1
+ moai_adk/__init__.py,sha256=bYBinLSImGFTSZtgpywu4X953jBWqzNs2HarxfeAkK0,216
2
+ moai_adk/__main__.py,sha256=FUUtsqo_NkeY3VR35EjPPtkP3vPkUqRraE30TXMGFL4,2502
3
+ moai_adk/cli/__init__.py,sha256=tidIaJnd4Pje_5QYRq7OvRRst4T3kaPlkw5QcPQ3l1Y,135
4
+ moai_adk/cli/main.py,sha256=mHACHi27AP2N7fg7zhzOo1tlF1Jrlw1_AcbxMfpGLVE,306
5
+ moai_adk/cli/commands/__init__.py,sha256=Gq_obgREC-eFpiYB3IEpYywWj0dy4N0eEbw6q7NxrKs,490
6
+ moai_adk/cli/commands/backup.py,sha256=Hzf3zc7NhfChAJu2OTN_0xARtUbNaB32fmPczchbrC4,1652
7
+ moai_adk/cli/commands/doctor.py,sha256=R4Cf9Jqwww1ng36u2SHTh6x0VdmnvaT7G9KVKJRX7N4,6623
8
+ moai_adk/cli/commands/init.py,sha256=LhmmrpQh2Wofe0QfMpuZI-DJvtTNzOM5n11NwO9A-cM,10907
9
+ moai_adk/cli/commands/restore.py,sha256=nIhFR9PUQ-XuxZApONVyN77x2lWCjNhn0orL94YD0xs,2691
10
+ moai_adk/cli/commands/status.py,sha256=YJhh7RoKnumxY0_ho7FWTWm5Nxh2jTnH9aSsapdLhyo,2277
11
+ moai_adk/cli/commands/update.py,sha256=muuDZVV1yQ_x2xTTZID-UZ7u0vwQqyDMQmfvDr-i-mw,4952
12
+ moai_adk/cli/prompts/__init__.py,sha256=a4_ctS4KEvGtmM9j7z8XIlMkpftohjVb9woUwZu38gE,136
13
+ moai_adk/cli/prompts/init_prompts.py,sha256=LDuszslENM-xpNk1e-XIHnFu5J1168rKAnyPsMGXYBU,4944
14
+ moai_adk/core/__init__.py,sha256=Nq5zaonDTRGFFfr0yH4Wcsjm5u_xCG1zg0nIAIdRqKc,124
15
+ moai_adk/core/git/__init__.py,sha256=Kpq2yU5X5bBBUV8ySYIB1_vMPvfdFS6hTYx2Ue-CoeQ,697
16
+ moai_adk/core/git/branch.py,sha256=QHYWwLcAhEaqWfrGViV1kUOzHJHpd2E1U-IikCZaIRU,612
17
+ moai_adk/core/git/branch_manager.py,sha256=K6SyO3vtVv111D2dudbSgyKBLlDX2aWTPj1qJV4PSMg,4143
18
+ moai_adk/core/git/checkpoint.py,sha256=tk23Wx5RtErwqCi6yRv_aaB92j2Z2rOiOule-DI1f9s,4358
19
+ moai_adk/core/git/commit.py,sha256=WBs6PucPoX3shVJqski7q7Is0n2Szku75jLA-JY-m_8,2038
20
+ moai_adk/core/git/event_detector.py,sha256=MI9byiAYZcUuXnXE6FZ1Lx7kG4EuJJxlBS7K_b1w0t0,2319
21
+ moai_adk/core/git/manager.py,sha256=lHFUQn8DGIvuhxC41cD5G3S6OgCpw9WkEOPVET97FJU,3629
22
+ moai_adk/core/project/__init__.py,sha256=w_VdJ6lJDkTMdYYEwj0Io6Ay3ekqsLO3qXInSfXX7Vs,134
23
+ moai_adk/core/project/backup_utils.py,sha256=SOdqgyWjFObcj1RuGAXn6wopamhITVi3wNmh56ZMMbk,2108
24
+ moai_adk/core/project/checker.py,sha256=tN1A2OWsTafDCEWcafDJ4JXM217FUUdLYdnLtWpdDgs,9533
25
+ moai_adk/core/project/detector.py,sha256=-Rhh8Bka224PuzARKQeaZQ8FJdZxVXP3FM3cXqMUaGs,3182
26
+ moai_adk/core/project/initializer.py,sha256=9Vhff8HaHeK8VOcdILUUj8CAa5w51dxPJ-BY7ORbNiY,5631
27
+ moai_adk/core/project/phase_executor.py,sha256=eoNYQAtd45qdMQjmDx0GRwb6Cyh_O8Vk6CaPSo1R1o0,9165
28
+ moai_adk/core/project/validator.py,sha256=m3OnLliQWhJiyBGEz_NscYrRAwcSn0-MhbDzQL_C1q8,3650
29
+ moai_adk/core/quality/__init__.py,sha256=94URwyH33kc9rUcvKffgFJNwC5otsupLlFvAYPdN_XA,210
30
+ moai_adk/core/quality/trust_checker.py,sha256=wzcL8ucNtP1f9wGfqQgdqtL4ZgnG5LZZ2GriD01EZqY,15208
31
+ moai_adk/core/quality/validators/__init__.py,sha256=xLf-kzWjvoFalIWOnO9H4Iwt3HmG4B-z9agwwNOH8eo,186
32
+ moai_adk/core/quality/validators/base_validator.py,sha256=u2a78TbuiEtcXqugiJ0D1clqKft1kdDTN5cvaMr0Ucw,437
33
+ moai_adk/core/template/__init__.py,sha256=BYSKBzkP3j5R5x0jdcnTtureUL74F2v6qCUpV9igmJA,349
34
+ moai_adk/core/template/backup.py,sha256=R187b3ZGQU5f-vQ-iBSFx0aIqbNHJAHODC4ODc3Skew,2869
35
+ moai_adk/core/template/config.py,sha256=UbDxqJ-yohwLW3Yzx_6-0RmjCxNRFqzw6bRIC2bS5-w,2712
36
+ moai_adk/core/template/languages.py,sha256=waeyA_MFy217bV9IiILc2gofG9RM9JhD-kdVGRyJzFk,1648
37
+ moai_adk/core/template/merger.py,sha256=dvKobOW4vXz-7GWKJpZFYxCMtR-LszcJZYbYFTL3XY0,4049
38
+ moai_adk/core/template/processor.py,sha256=RccILmWbtYeOoz8BTMHAZcTmwdQ4cNzQZzb_6vC8M-o,11177
39
+ moai_adk/templates/.gitignore,sha256=6VNKResdDpyaii3cmJA4pOLwK2PhYARIWkUODYtKyxg,310
40
+ moai_adk/templates/CLAUDE.md,sha256=d9YtiRYK3_h5EW9TuSUwH6YsY8o1nSs1P6STu0CVtFc,27631
41
+ moai_adk/templates/__init__.py,sha256=9YY0tDkKbDFCdUB7rJFtGq0CZbF2ftVSKF573iw0KJc,99
42
+ moai_adk/templates/.claude/settings.json,sha256=f99ViKE_lXk2vzpXx8A65jacDOBMBDLOIgft4voGXb4,3000
43
+ moai_adk/templates/.claude/agents/alfred/cc-manager.md,sha256=xP3V7QAI-08ga6hhF3J4fXbgiHUM08bJbT2nfE52Bq4,13883
44
+ moai_adk/templates/.claude/agents/alfred/code-builder.md,sha256=S438wTt3llxpqIIkotVRYuEUthNkdRzsel0LsWgtbpk,20654
45
+ moai_adk/templates/.claude/agents/alfred/debug-helper.md,sha256=2YDvuiLFcQBRhhHdOLX-o8YWwOSz3FwQ_lGTQiU-PH8,8497
46
+ moai_adk/templates/.claude/agents/alfred/doc-syncer.md,sha256=kLwLvI-5oRjEG6fSlq8CwwsH3TbqrAY-OWZDcS_3IMo,6223
47
+ moai_adk/templates/.claude/agents/alfred/git-manager.md,sha256=6mCCdAAwWUvT0dSJcRsgltwaCkX-oB5_DbQH3BcK880,8320
48
+ moai_adk/templates/.claude/agents/alfred/project-manager.md,sha256=ju9OhnZ8Rc7x-B9EIamJ1q4V_9WC0lkentzOSX4_3dM,5804
49
+ moai_adk/templates/.claude/agents/alfred/spec-builder.md,sha256=hpYLQ2A7TFP8Z1nUAYA1_c9o5qNFhc-Uuc8aSxU9ROI,10881
50
+ moai_adk/templates/.claude/agents/alfred/tag-agent.md,sha256=FGa-BuOl64XEp0fJbQJbvaP-4aoacKKeTo3XJ6PoCx4,8174
51
+ moai_adk/templates/.claude/agents/alfred/trust-checker.md,sha256=eIwFumcJfr66jWdAuWJ5LITHfzzsRBaITGD7iz8EYH4,11647
52
+ moai_adk/templates/.claude/commands/alfred/0-project.md,sha256=6a19UVvi6BV6mX0312WbQJyN4nsKB7pggTlLgtxwcFM,17831
53
+ moai_adk/templates/.claude/commands/alfred/1-spec.md,sha256=fs2S0yS8hKGTDlwLyT1nQOuUFIxLXT6g11w4GR2-jN4,20343
54
+ moai_adk/templates/.claude/commands/alfred/2-build.md,sha256=KXi_NN8jafbSZ89wf5Iz_3NuxFklMezbu6HJy2-eHkk,16615
55
+ moai_adk/templates/.claude/commands/alfred/3-sync.md,sha256=mxqGO8xKciTJkaBo0hYHXyV6IFAipQ4ra-mZzUVoASg,19393
56
+ moai_adk/templates/.claude/hooks/alfred/README.md,sha256=lSvkOMpk8XYpV5hiq2j2jVNT4RCL3p-ha6UCV4-CPOg,7008
57
+ moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py,sha256=I-fEEnx6ZtGfcY2pdy0Lv-uwEvI9Bm7ktAkZjI2Yphc,7215
58
+ moai_adk/templates/.claude/hooks/alfred/core/__init__.py,sha256=No6VZOruX83zHq48SGcOJiza6HIut9VtsVkevaaFT88,2490
59
+ moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py,sha256=vAm5hEqXUT2frkXFSrJf2W6uOd24Bi7O0Qr51ll51Jw,8543
60
+ moai_adk/templates/.claude/hooks/alfred/core/context.py,sha256=0FBagGq9cvYFqmjl8eZvDL9g5KAh1KvTvHpQMvtR6v4,3410
61
+ moai_adk/templates/.claude/hooks/alfred/core/project.py,sha256=h7s2D0e5zn0BKu3GReMVH93ojKOTkF6yyLWNnoJI6-0,9103
62
+ moai_adk/templates/.claude/hooks/alfred/core/tags.py,sha256=QAT7Oh8eupawGiZnaYDEcPhdlm1LGyzVF-Hv6SKZ_5g,7711
63
+ moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py,sha256=i3tvIYiSgc72KO9qGNdIPe0vFwEkoWqOlYrq4wR4tbw,643
64
+ moai_adk/templates/.claude/hooks/alfred/handlers/compact.py,sha256=H7vIyU8GrjvSE2DEeTh3MFkBmJ3xTQvku1_60Q95D3s,1529
65
+ moai_adk/templates/.claude/hooks/alfred/handlers/notification.py,sha256=MjwaCRSbK4f-YvRC9CG4Rg8dhQir1gzPqF02x9O_4Gc,655
66
+ moai_adk/templates/.claude/hooks/alfred/handlers/session.py,sha256=6zz0uJ3cYtnY8gXtoP0cRf6LmmQUfggLWIJduokd-Jw,2783
67
+ moai_adk/templates/.claude/hooks/alfred/handlers/tool.py,sha256=bR7QpIYxuypQseWbAPmLYClS2wZUGbFflFj-IiiE26w,2224
68
+ moai_adk/templates/.claude/hooks/alfred/handlers/user.py,sha256=iD0X_Aas8pwfFvPj30PaCPNs_Xo-9yVynxT27m-2O7k,1300
69
+ moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md,sha256=-Y0V-fRRZbAUH1f4kZX0y8i0Lo7GRjJddBMeZ0WV6gA,17906
70
+ moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md,sha256=NFnDfKsnKZlUrqmdXgxQT6jm2VQIyGvtBST1DJa9PiI,17232
71
+ moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md,sha256=M1Fz1GTKP_pIYqrW41OGq3aeGxWAcjQN5NwNboLHBrU,12197
72
+ moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md,sha256=Cbkc2YZzM1wiGC5XI0cbgksSvs7myJ8z9dqDynZas-E,2338
73
+ moai_adk/templates/.github/workflows/moai-gitflow.yml,sha256=aD36D-wKSvjWHGGfy5lRvriMHVWSjtRojn6qzBdztu0,8701
74
+ moai_adk/templates/.moai/config.json,sha256=pMmmcQgyZQJtbvsrpzjYiYZRwmLrSH9FBaMKTVNcj2w,2152
75
+ moai_adk/templates/.moai/memory/development-guide.md,sha256=BmcF7wyY04GtaeCojufyxmvJKD9HzSGMzmAX754K7Xs,15710
76
+ moai_adk/templates/.moai/memory/spec-metadata.md,sha256=EZ_GMCG-yRwvvCotD6oSGR350hg090fodQkxPuWNYso,7350
77
+ moai_adk/templates/.moai/project/product.md,sha256=Aglyj5iaasCW9nNB3gqFPoBslnzS5hXg_1n_QZQa15U,3661
78
+ moai_adk/templates/.moai/project/structure.md,sha256=bAImWQG01zH1EOd7F94rd87b_P6JlOCH-MGmCuS-Lxs,4985
79
+ moai_adk/templates/.moai/project/tech.md,sha256=devxbvmgTG3_1x3dYNPHtje2gU1aJ403luztHK0DRhI,5854
80
+ moai_adk/utils/__init__.py,sha256=fv-UwHv8r4-eedwRnDA9hFjo5QSZYXjctKDyE7XF10g,220
81
+ moai_adk/utils/banner.py,sha256=TmZyJKXOnJpdbdn6NZDJC6a4hm051QudEvOfiKQhvI8,1873
82
+ moai_adk/utils/logger.py,sha256=jYCWKvcN-tX17hZ-e2IPuHATwkQBFc_I1dd5fUTWxmY,5059
83
+ moai_adk-0.3.0.dist-info/METADATA,sha256=SnqU3TcLo-EW7NXl6j-EnEkBr-ZYKMhgHayJoBOTPAE,709
84
+ moai_adk-0.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
85
+ moai_adk-0.3.0.dist-info/entry_points.txt,sha256=P9no1794UipqH72LP-ltdyfVd_MeB1WKJY_6-JQgV3U,52
86
+ moai_adk-0.3.0.dist-info/licenses/LICENSE,sha256=M1M2b07fWcSWRM6_P3wbZKndZvyfHyYk_Wu9bS8F7o8,1069
87
+ moai_adk-0.3.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ moai-adk = moai_adk.__main__:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 MoAI-ADK Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.