general-augment-cli 0.1.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.
Files changed (42) hide show
  1. general_augment_cli-0.1.0.dist-info/METADATA +180 -0
  2. general_augment_cli-0.1.0.dist-info/RECORD +42 -0
  3. general_augment_cli-0.1.0.dist-info/WHEEL +4 -0
  4. general_augment_cli-0.1.0.dist-info/entry_points.txt +2 -0
  5. platform_cli/__init__.py +5 -0
  6. platform_cli/branding.py +27 -0
  7. platform_cli/client.py +179 -0
  8. platform_cli/commands/__init__.py +1 -0
  9. platform_cli/commands/approvals.py +150 -0
  10. platform_cli/commands/auth.py +96 -0
  11. platform_cli/commands/billing.py +143 -0
  12. platform_cli/commands/channels.py +212 -0
  13. platform_cli/commands/deploy.py +72 -0
  14. platform_cli/commands/dev.py +38 -0
  15. platform_cli/commands/doctor.py +170 -0
  16. platform_cli/commands/identity.py +433 -0
  17. platform_cli/commands/init.py +55 -0
  18. platform_cli/commands/integrate.py +94 -0
  19. platform_cli/commands/keys.py +116 -0
  20. platform_cli/commands/logs.py +43 -0
  21. platform_cli/commands/mcp.py +258 -0
  22. platform_cli/commands/memory.py +316 -0
  23. platform_cli/commands/mock.py +30 -0
  24. platform_cli/commands/model_providers.py +226 -0
  25. platform_cli/commands/observability.py +174 -0
  26. platform_cli/commands/onboarding.py +72 -0
  27. platform_cli/commands/projects.py +302 -0
  28. platform_cli/commands/skills.py +116 -0
  29. platform_cli/commands/smoke.py +280 -0
  30. platform_cli/commands/status.py +49 -0
  31. platform_cli/commands/tools.py +179 -0
  32. platform_cli/commands/users.py +150 -0
  33. platform_cli/commands/validate.py +96 -0
  34. platform_cli/commands/verify.py +648 -0
  35. platform_cli/config.py +114 -0
  36. platform_cli/errors.py +103 -0
  37. platform_cli/local_mock.py +1392 -0
  38. platform_cli/main.py +130 -0
  39. platform_cli/openapi.py +1048 -0
  40. platform_cli/output.py +47 -0
  41. platform_cli/readiness.py +176 -0
  42. platform_cli/runtime.py +22 -0
@@ -0,0 +1,96 @@
1
+ """Local agent manifest validation command."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+ from typing import Annotated, Any
7
+
8
+ import typer
9
+
10
+ from platform_cli.openapi import LocalValidationResult, validate_local_agent_config
11
+ from platform_cli.output import print_error, print_json, print_success, print_warning, table
12
+
13
+
14
+ def validate(
15
+ config_path: Annotated[
16
+ Path,
17
+ typer.Argument(
18
+ exists=True,
19
+ dir_okay=False,
20
+ help="genaug-agent.yaml manifest to validate.",
21
+ ),
22
+ ],
23
+ json_output: Annotated[
24
+ bool,
25
+ typer.Option("--json", help="Print machine-readable validation output."),
26
+ ] = False,
27
+ ) -> None:
28
+ """Validate a local genaug-agent.yaml without calling the hosted API."""
29
+ result = validate_local_agent_config(config_path)
30
+ payload = _validation_payload(result)
31
+ if json_output:
32
+ print_json(payload)
33
+ else:
34
+ _print_human_result(result)
35
+ if result.errors:
36
+ raise typer.Exit(1)
37
+
38
+
39
+ def _print_human_result(result: LocalValidationResult) -> None:
40
+ """Print a readable validation report."""
41
+ table(
42
+ "Agent Config Validation",
43
+ ["Field", "Value"],
44
+ [
45
+ ["Status", result.status],
46
+ ["Project", result.project_name or "unknown"],
47
+ ["Manifest", result.config_path],
48
+ ["SOUL", result.soul_file or "not configured"],
49
+ ["Skills", f"{result.skill_count} SKILL.md files"],
50
+ ["Builtin tools", _joined(result.builtin_tools)],
51
+ ["MCP servers", _joined(result.mcp_servers)],
52
+ ["Tool discovery", _tool_discovery_summary(result.tool_discovery)],
53
+ ],
54
+ )
55
+ if result.errors:
56
+ table("Errors", ["Issue"], [[error] for error in result.errors])
57
+ print_error("Agent config validation failed.")
58
+ else:
59
+ print_success("Agent config validation passed.")
60
+ if result.warnings:
61
+ table("Warnings", ["Issue"], [[warning] for warning in result.warnings])
62
+ print_warning("Review warnings before production deploy.")
63
+
64
+
65
+ def _validation_payload(result: LocalValidationResult) -> dict[str, Any]:
66
+ """Return machine-readable validation output."""
67
+ return {
68
+ "status": result.status,
69
+ "config_path": str(result.config_path),
70
+ "project_name": result.project_name,
71
+ "errors": result.errors,
72
+ "warnings": result.warnings,
73
+ "soul_file": str(result.soul_file) if result.soul_file else None,
74
+ "skills": {
75
+ "directory": str(result.skills_dir) if result.skills_dir else None,
76
+ "skill_md_count": result.skill_count,
77
+ },
78
+ "tools": {
79
+ "builtin": result.builtin_tools,
80
+ "mcp_servers": result.mcp_servers,
81
+ },
82
+ "tool_discovery": result.tool_discovery,
83
+ }
84
+
85
+
86
+ def _joined(items: list[str]) -> str:
87
+ """Return display text for a list."""
88
+ return ", ".join(items) if items else "none"
89
+
90
+
91
+ def _tool_discovery_summary(value: dict[str, int | str]) -> str:
92
+ """Return compact display text for tool discovery behavior."""
93
+ return (
94
+ f"{value['mode']} "
95
+ f"(direct <= {value['direct_schema_tool_limit']}, search <= {value['max_search_results']})"
96
+ )