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.
Files changed (25) hide show
  1. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/PKG-INFO +5 -5
  2. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/README.md +4 -4
  3. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/cli.py +43 -53
  4. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/data/CLI_REFERENCE.md +1 -1
  5. autotouch_cli-0.2.37/autotouch_cli/data/cli-manifest.json +1 -0
  6. autotouch_cli-0.2.37/autotouch_cli/sequence_support.py +105 -0
  7. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/PKG-INFO +5 -5
  8. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/SOURCES.txt +1 -0
  9. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/pyproject.toml +1 -1
  10. autotouch_cli-0.2.36/autotouch_cli/data/cli-manifest.json +0 -25236
  11. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/MANIFEST.in +0 -0
  12. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/__init__.py +0 -0
  13. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/cli_contracts.py +0 -0
  14. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/mongo_status.py +0 -0
  15. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/parser_groups.py +0 -0
  16. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli/templates.py +0 -0
  17. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/dependency_links.txt +0 -0
  18. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/entry_points.txt +0 -0
  19. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/requires.txt +0 -0
  20. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_cli.egg-info/top_level.txt +0 -0
  21. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_shared/__init__.py +0 -0
  22. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_shared/linkedin_contract.py +0 -0
  23. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_shared/provider_registry.py +0 -0
  24. {autotouch_cli-0.2.36 → autotouch_cli-0.2.37}/autotouch_shared/search_contract.py +0 -0
  25. {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.36
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.35/docs/research-table/reference/autotouch-cli.md
141
- - Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.35/docs/research-table/guides/autotouch-cli-agent-playbook.md
142
- - Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.35/docs/research-table/reference/tables-api.md
143
- - Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.35/docs/platform/authentication.md
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.35/docs/research-table/reference/autotouch-cli.md
132
- - Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.35/docs/research-table/guides/autotouch-cli-agent-playbook.md
133
- - Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.35/docs/research-table/reference/tables-api.md
134
- - Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.35/docs/platform/authentication.md
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
- pyproject_path = Path(__file__).resolve().parents[1] / "pyproject.toml"
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
- lead_ids = _collect_sequence_lead_ids(args)
3886
- if not lead_ids:
3887
- print(
3888
- "ERROR: provide --data-json/--data-file or at least one lead id via --lead-id/--lead-ids-json/--lead-ids-file",
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)
@@ -1,6 +1,6 @@
1
1
  # Autotouch CLI Reference
2
2
 
3
- Generated from the installed parser for `autotouch-cli` `0.2.35`.
3
+ Generated from the installed parser for `autotouch-cli` `0.2.37`.
4
4
 
5
5
  ## Output Modes
6
6