feat: add tool-call fallback and resilient batch exports
This commit is contained in:
1 parent
ab066733b8
commit
d31eb2a19d
32 files changed
+538
-72
No files matched your search
+24
-13
@@ -15,25 +15,36 @@
|
||||
"""Backward compatibility entrypoint for artemis CLI."""
|
||||
|
||||
import sys
|
||||
|
||||
import typer
|
||||
|
||||
from artemis.interfaces.cli.main import app
|
||||
from artemis.interfaces.cli.main import app as _typer_app
|
||||
|
||||
|
||||
def _root_tokens() -> frozenset[str]:
|
||||
"""Read command names and root flags from the registered CLI."""
|
||||
group = typer.main.get_command(_typer_app)
|
||||
tokens: set[str] = {"-h"}
|
||||
tokens.update(getattr(group, "commands", {}) or {})
|
||||
tokens.update(group.get_help_option_names(group.context_class(group)))
|
||||
for param in group.params:
|
||||
tokens.update(getattr(param, "opts", ()))
|
||||
tokens.update(getattr(param, "secondary_opts", ()))
|
||||
return frozenset(tokens)
|
||||
|
||||
|
||||
def normalize_argv(argv: list[str]) -> list[str]:
|
||||
"""Keep implicit ``run`` for a goal while preserving registered commands."""
|
||||
if len(argv) > 1 and argv[1] not in _root_tokens():
|
||||
return [argv[0], "run", *argv[1:]]
|
||||
return list(argv)
|
||||
|
||||
|
||||
def cli():
|
||||
# If invoked directly as python -m artemis.main without subcommand 'run',
|
||||
# check if first argument is a goal rather than a subcommand
|
||||
if len(sys.argv) > 1 and sys.argv[1] not in (
|
||||
"run",
|
||||
"init",
|
||||
"doctor",
|
||||
"batch",
|
||||
"bench",
|
||||
"mcp",
|
||||
"server",
|
||||
"trace",
|
||||
"--help",
|
||||
"-h",
|
||||
):
|
||||
sys.argv.insert(1, "run")
|
||||
sys.argv[:] = normalize_argv(sys.argv)
|
||||
app()
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user