autotouch-cli 0.2.36__tar.gz → 0.2.37__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.
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/PKG-INFO +5 -5
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/README.md +4 -4
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/cli.py +43 -53
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/data/CLI_REFERENCE.md +1 -1
- autotouch_cli-0.2.37/autotouch_cli/data/cli-manifest.json +1 -0
- autotouch_cli-0.2.37/autotouch_cli/sequence_support.py +105 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/PKG-INFO +5 -5
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/SOURCES.txt +1 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/pyproject.toml +1 -1
- autotouch_cli-0.2.36/autotouch_cli/data/cli-manifest.json +0 -25236
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/MANIFEST.in +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/__init__.py +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/cli_contracts.py +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/mongo_status.py +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/parser_groups.py +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/templates.py +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/dependency_links.txt +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/entry_points.txt +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/requires.txt +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/top_level.txt +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_shared/__init__.py +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_shared/linkedin_contract.py +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_shared/provider_registry.py +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_shared/search_contract.py +0 -0
- {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: autotouch-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.37
|
|
4
4
|
Summary: Autotouch Smart Table CLI
|
|
5
5
|
Requires-Python: >=3.9
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -137,7 +137,7 @@ Use a dedicated `AUTOTOUCH_CONFIG_PATH` if you want a clean local account instea
|
|
|
137
137
|
|
|
138
138
|
## Docs
|
|
139
139
|
|
|
140
|
-
- Full CLI reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.
|
|
141
|
-
- Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.
|
|
142
|
-
- Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.
|
|
143
|
-
- Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.
|
|
140
|
+
- Full CLI reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.37/docs/research-table/reference/autotouch-cli.md
|
|
141
|
+
- Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.37/docs/research-table/guides/autotouch-cli-agent-playbook.md
|
|
142
|
+
- Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.37/docs/research-table/reference/tables-api.md
|
|
143
|
+
- Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.37/docs/platform/authentication.md
|
|
@@ -128,7 +128,7 @@ Use a dedicated `AUTOTOUCH_CONFIG_PATH` if you want a clean local account instea
|
|
|
128
128
|
|
|
129
129
|
## Docs
|
|
130
130
|
|
|
131
|
-
- Full CLI reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.
|
|
132
|
-
- Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.
|
|
133
|
-
- Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.
|
|
134
|
-
- Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.
|
|
131
|
+
- Full CLI reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.37/docs/research-table/reference/autotouch-cli.md
|
|
132
|
+
- Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.37/docs/research-table/guides/autotouch-cli-agent-playbook.md
|
|
133
|
+
- Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.37/docs/research-table/reference/tables-api.md
|
|
134
|
+
- Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.37/docs/platform/authentication.md
|
|
@@ -42,6 +42,13 @@ from autotouch_cli.cli_contracts import (
|
|
|
42
42
|
from autotouch_cli.mongo_status import mongo_client as _mongo_client
|
|
43
43
|
from autotouch_cli.mongo_status import status_counts as _status_counts
|
|
44
44
|
from autotouch_cli.parser_groups import add_tasks_subcommands, add_webhooks_subcommands
|
|
45
|
+
from autotouch_cli.sequence_support import (
|
|
46
|
+
SequenceCommandInputError,
|
|
47
|
+
SequenceRuntime,
|
|
48
|
+
build_sequence_enroll_payload as build_sequence_enroll_payload_impl,
|
|
49
|
+
collect_sequence_lead_ids as collect_sequence_lead_ids_impl,
|
|
50
|
+
sequence_mutation_params as sequence_mutation_params_impl,
|
|
51
|
+
)
|
|
45
52
|
from autotouch_cli.templates import (
|
|
46
53
|
AUTH_SCHEMA_TYPES,
|
|
47
54
|
CELL_SCHEMA_TYPES,
|
|
@@ -137,19 +144,20 @@ SEARCH_RECIPES: Dict[str, Any] = search_recipe_entries()
|
|
|
137
144
|
|
|
138
145
|
|
|
139
146
|
def _package_version() -> str:
|
|
147
|
+
pyproject_path = Path(__file__).resolve().parents[1] / "pyproject.toml"
|
|
148
|
+
try:
|
|
149
|
+
for line in pyproject_path.read_text(encoding="utf-8").splitlines():
|
|
150
|
+
line = line.strip()
|
|
151
|
+
if line.startswith("version = "):
|
|
152
|
+
return line.split("=", 1)[1].strip().strip('"').strip("'")
|
|
153
|
+
except Exception:
|
|
154
|
+
pass
|
|
140
155
|
try:
|
|
141
156
|
from importlib import metadata as importlib_metadata
|
|
142
157
|
|
|
143
158
|
return str(importlib_metadata.version("autotouch-cli"))
|
|
144
159
|
except Exception:
|
|
145
|
-
|
|
146
|
-
try:
|
|
147
|
-
for line in pyproject_path.read_text(encoding="utf-8").splitlines():
|
|
148
|
-
line = line.strip()
|
|
149
|
-
if line.startswith("version = "):
|
|
150
|
-
return line.split("=", 1)[1].strip().strip('"').strip("'")
|
|
151
|
-
except Exception:
|
|
152
|
-
pass
|
|
160
|
+
pass
|
|
153
161
|
return "0.0.0"
|
|
154
162
|
|
|
155
163
|
|
|
@@ -3636,6 +3644,29 @@ def cmd_cells_schema(args: argparse.Namespace) -> None:
|
|
|
3636
3644
|
emit_cells_schema(args, _template_runtime())
|
|
3637
3645
|
|
|
3638
3646
|
|
|
3647
|
+
def _sequence_runtime() -> SequenceRuntime:
|
|
3648
|
+
return SequenceRuntime(
|
|
3649
|
+
load_json_input=_load_json_input,
|
|
3650
|
+
split_cli_string_values=_split_cli_string_values,
|
|
3651
|
+
parse_json_string=_parse_json_string,
|
|
3652
|
+
parse_string_list_payload=_parse_string_list_payload,
|
|
3653
|
+
load_string_values_from_file=_load_string_values_from_file,
|
|
3654
|
+
dedupe_keep_order=_dedupe_keep_order,
|
|
3655
|
+
)
|
|
3656
|
+
|
|
3657
|
+
|
|
3658
|
+
def _sequence_mutation_params(args: argparse.Namespace) -> Optional[Dict[str, Any]]:
|
|
3659
|
+
return sequence_mutation_params_impl(args)
|
|
3660
|
+
|
|
3661
|
+
|
|
3662
|
+
def _collect_sequence_lead_ids(args: argparse.Namespace) -> List[str]:
|
|
3663
|
+
return collect_sequence_lead_ids_impl(args, runtime=_sequence_runtime())
|
|
3664
|
+
|
|
3665
|
+
|
|
3666
|
+
def _build_sequence_enroll_payload(args: argparse.Namespace) -> Dict[str, Any]:
|
|
3667
|
+
return build_sequence_enroll_payload_impl(args, runtime=_sequence_runtime())
|
|
3668
|
+
|
|
3669
|
+
|
|
3639
3670
|
def cmd_rows_list(args: argparse.Namespace) -> None:
|
|
3640
3671
|
token = _resolve_token(args.token, required=True)
|
|
3641
3672
|
filters = _load_json_input(
|
|
@@ -3882,53 +3913,12 @@ def cmd_sequences_enroll(args: argparse.Namespace) -> None:
|
|
|
3882
3913
|
default=None,
|
|
3883
3914
|
)
|
|
3884
3915
|
if payload is None:
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
file=sys.stderr,
|
|
3890
|
-
)
|
|
3916
|
+
try:
|
|
3917
|
+
payload = _build_sequence_enroll_payload(args)
|
|
3918
|
+
except SequenceCommandInputError as exc:
|
|
3919
|
+
print(f"ERROR: {exc}", file=sys.stderr)
|
|
3891
3920
|
sys.exit(2)
|
|
3892
3921
|
|
|
3893
|
-
payload = {"leadIds": lead_ids}
|
|
3894
|
-
if getattr(args, "start_date", None):
|
|
3895
|
-
payload["startDate"] = str(args.start_date)
|
|
3896
|
-
|
|
3897
|
-
research_context = _load_json_input(
|
|
3898
|
-
inline_json=args.research_context_json,
|
|
3899
|
-
file_path=args.research_context_file,
|
|
3900
|
-
context="research-context",
|
|
3901
|
-
default=None,
|
|
3902
|
-
)
|
|
3903
|
-
if research_context is not None:
|
|
3904
|
-
payload["researchContext"] = research_context
|
|
3905
|
-
|
|
3906
|
-
variable_map = _load_json_input(
|
|
3907
|
-
inline_json=args.variable_map_json,
|
|
3908
|
-
file_path=args.variable_map_file,
|
|
3909
|
-
context="variable-map",
|
|
3910
|
-
default=None,
|
|
3911
|
-
)
|
|
3912
|
-
if variable_map is not None:
|
|
3913
|
-
payload["variableMap"] = variable_map
|
|
3914
|
-
|
|
3915
|
-
variable_overrides = _load_json_input(
|
|
3916
|
-
inline_json=args.variable_overrides_json,
|
|
3917
|
-
file_path=args.variable_overrides_file,
|
|
3918
|
-
context="variable-overrides",
|
|
3919
|
-
default=None,
|
|
3920
|
-
)
|
|
3921
|
-
if variable_overrides is not None:
|
|
3922
|
-
payload["variableOverrides"] = variable_overrides
|
|
3923
|
-
|
|
3924
|
-
assigned_to_user_id = str(getattr(args, "assigned_to_user_id", "") or "").strip()
|
|
3925
|
-
if assigned_to_user_id:
|
|
3926
|
-
payload["assignedToUserId"] = assigned_to_user_id
|
|
3927
|
-
if bool(getattr(args, "update_lead_owner", False)):
|
|
3928
|
-
payload["updateLeadOwner"] = True
|
|
3929
|
-
if bool(getattr(args, "review_only", False)):
|
|
3930
|
-
payload["reviewOnly"] = True
|
|
3931
|
-
|
|
3932
3922
|
if not isinstance(payload, dict):
|
|
3933
3923
|
print("ERROR: sequence enroll payload must be a JSON object", file=sys.stderr)
|
|
3934
3924
|
sys.exit(2)
|