autotouch-cli 0.2.40__tar.gz → 0.2.41__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 (44) hide show
  1. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/PKG-INFO +5 -5
  2. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/README.md +4 -4
  3. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/cli_contracts.py +16 -0
  4. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/columns.py +25 -1
  5. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/data/CLI_REFERENCE.md +24 -1
  6. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/data/cli-manifest.json +314 -2
  7. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli.egg-info/PKG-INFO +5 -5
  8. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/pyproject.toml +1 -1
  9. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/MANIFEST.in +0 -0
  10. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/__init__.py +0 -0
  11. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/cli.py +0 -0
  12. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/__init__.py +0 -0
  13. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/auth.py +0 -0
  14. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/cells.py +0 -0
  15. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/jobs.py +0 -0
  16. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/leads.py +0 -0
  17. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/linkedin.py +0 -0
  18. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/rows.py +0 -0
  19. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/search.py +0 -0
  20. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/sequences.py +0 -0
  21. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/tables.py +0 -0
  22. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/tasks.py +0 -0
  23. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/commands/webhooks.py +0 -0
  24. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/core/__init__.py +0 -0
  25. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/core/auth.py +0 -0
  26. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/core/config.py +0 -0
  27. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/core/http.py +0 -0
  28. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/core/io.py +0 -0
  29. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/core/output.py +0 -0
  30. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/core/polling.py +0 -0
  31. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/mongo_status.py +0 -0
  32. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/parser_groups.py +0 -0
  33. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/sequence_support.py +0 -0
  34. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli/templates.py +0 -0
  35. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli.egg-info/SOURCES.txt +0 -0
  36. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli.egg-info/dependency_links.txt +0 -0
  37. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli.egg-info/entry_points.txt +0 -0
  38. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli.egg-info/requires.txt +0 -0
  39. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_cli.egg-info/top_level.txt +0 -0
  40. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_shared/__init__.py +0 -0
  41. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_shared/linkedin_contract.py +0 -0
  42. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_shared/provider_registry.py +0 -0
  43. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/autotouch_shared/search_contract.py +0 -0
  44. {autotouch_cli-0.2.40 → autotouch_cli-0.2.41}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autotouch-cli
3
- Version: 0.2.40
3
+ Version: 0.2.41
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.40/docs/research-table/reference/autotouch-cli.md
141
- - Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.40/docs/research-table/guides/autotouch-cli-agent-playbook.md
142
- - Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.40/docs/research-table/reference/tables-api.md
143
- - Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.40/docs/platform/authentication.md
140
+ - Full CLI reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.41/docs/research-table/reference/autotouch-cli.md
141
+ - Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.41/docs/research-table/guides/autotouch-cli-agent-playbook.md
142
+ - Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.41/docs/research-table/reference/tables-api.md
143
+ - Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.41/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.40/docs/research-table/reference/autotouch-cli.md
132
- - Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.40/docs/research-table/guides/autotouch-cli-agent-playbook.md
133
- - Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.40/docs/research-table/reference/tables-api.md
134
- - Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.40/docs/platform/authentication.md
131
+ - Full CLI reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.41/docs/research-table/reference/autotouch-cli.md
132
+ - Agent playbook: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.41/docs/research-table/guides/autotouch-cli-agent-playbook.md
133
+ - Tables/API reference: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.41/docs/research-table/reference/tables-api.md
134
+ - Authentication/scopes: https://github.com/nicolonic/autotouch_main/blob/autotouch-cli-v0.2.41/docs/platform/authentication.md
@@ -200,6 +200,9 @@ def output_contract(command_key: str, parser: argparse.ArgumentParser) -> Option
200
200
 
201
201
 
202
202
  def command_examples(parser: argparse.ArgumentParser) -> List[str]:
203
+ extra_examples = getattr(parser, "_codex_examples", None)
204
+ if isinstance(extra_examples, list) and extra_examples:
205
+ return [str(example) for example in extra_examples if str(example).strip()]
203
206
  usage = parser.format_usage().strip()
204
207
  if usage.startswith("usage: "):
205
208
  usage = usage[len("usage: ") :]
@@ -261,6 +264,8 @@ def collect_cli_command_manifest(
261
264
  "aliases": [],
262
265
  "group": path_parts[1] if len(path_parts) > 1 else None,
263
266
  "help": parser.description or parser.format_usage().strip(),
267
+ "description": parser.description,
268
+ "notes": parser.epilog,
264
269
  "required_flags": required_flags,
265
270
  "positionals": positionals,
266
271
  "options": options,
@@ -338,6 +343,10 @@ def build_cli_reference_markdown(manifest: Dict[str, Any]) -> str:
338
343
  if help_text:
339
344
  lines.append(help_text)
340
345
  lines.append("")
346
+ description = str(entry.get("description") or "").strip()
347
+ if description and description != help_text:
348
+ lines.append(description)
349
+ lines.append("")
341
350
  lines.append(f"- Auth: `{entry.get('auth_mode') or 'unknown'}`")
342
351
  lines.append(f"- Stability: `{entry.get('stability') or 'stable'}`")
343
352
  lines.append(f"- Destructive: `{'yes' if entry.get('destructive') else 'no'}`")
@@ -368,6 +377,13 @@ def build_cli_reference_markdown(manifest: Dict[str, Any]) -> str:
368
377
  lines.append("- Example:")
369
378
  for example in examples:
370
379
  lines.append(f" - `{example}`")
380
+ notes = str(entry.get("notes") or "").strip()
381
+ if notes:
382
+ lines.append("- Notes:")
383
+ lines.append("")
384
+ lines.append("```text")
385
+ lines.extend(notes.rstrip().splitlines())
386
+ lines.append("```")
371
387
  options = entry.get("options") or []
372
388
  if options:
373
389
  lines.append("- Options:")
@@ -286,7 +286,31 @@ def register_columns_subcommands(
286
286
  add_api_common_arguments(pcd)
287
287
  pcd.set_defaults(func=handlers["delete"])
288
288
 
289
- pcpj = col_sub.add_parser("projections", help="Create JSON projection columns")
289
+ pcpj = col_sub.add_parser(
290
+ "projections",
291
+ help="Create JSON projection columns",
292
+ description=(
293
+ "Create JSON-split projection columns from a JSON source column.\n"
294
+ "Use this command for flattening enrichment JSON output into readable columns.\n"
295
+ "Do not use `autotouch columns create` with `kind: \"projection\"` and empty `config`."
296
+ ),
297
+ epilog=(
298
+ "CreateProjectionsRequest payload example:\n\n"
299
+ "{\n"
300
+ " \"items\": [\n"
301
+ " {\n"
302
+ " \"key\": \"company_name\",\n"
303
+ " \"label\": \"Company Name\",\n"
304
+ " \"sourceColumnId\": \"<JSON_COLUMN_ID>\",\n"
305
+ " \"path\": \"company_name\",\n"
306
+ " \"dataType\": \"text\"\n"
307
+ " }\n"
308
+ " ]\n"
309
+ "}\n\n"
310
+ "Each item must include `key`, `label`, `sourceColumnId`, and `path`."
311
+ ),
312
+ formatter_class=argparse.RawDescriptionHelpFormatter,
313
+ )
290
314
  pcpj.add_argument("--table-id", required=True)
291
315
  pcpj.add_argument("--data-json", help="CreateProjectionsRequest payload JSON")
292
316
  pcpj.add_argument("--data-file", help="CreateProjectionsRequest payload file path")
@@ -1,6 +1,6 @@
1
1
  # Autotouch CLI Reference
2
2
 
3
- Generated from the installed parser for `autotouch-cli` `0.2.40`.
3
+ Generated from the installed parser for `autotouch-cli` `0.2.41`.
4
4
 
5
5
  ## Output Modes
6
6
 
@@ -754,6 +754,10 @@ List table columns
754
754
 
755
755
  Create JSON projection columns
756
756
 
757
+ Create JSON-split projection columns from a JSON source column.
758
+ Use this command for flattening enrichment JSON output into readable columns.
759
+ Do not use `autotouch columns create` with `kind: "projection"` and empty `config`.
760
+
757
761
  - Auth: `developer_key_or_user_session`
758
762
  - Stability: `stable`
759
763
  - Destructive: `no`
@@ -768,6 +772,25 @@ Create JSON projection columns
768
772
  [--output {json,ndjson,human}]
769
773
  [--compact] [--select SELECT |
770
774
  --json-pointer JSON_POINTER] [--verbose]`
775
+ - Notes:
776
+
777
+ ```text
778
+ CreateProjectionsRequest payload example:
779
+
780
+ {
781
+ "items": [
782
+ {
783
+ "key": "company_name",
784
+ "label": "Company Name",
785
+ "sourceColumnId": "<JSON_COLUMN_ID>",
786
+ "path": "company_name",
787
+ "dataType": "text"
788
+ }
789
+ ]
790
+ }
791
+
792
+ Each item must include `key`, `label`, `sourceColumnId`, and `path`.
793
+ ```
771
794
  - Options:
772
795
  - `--table-id` (required)
773
796
  - `--data-json`: CreateProjectionsRequest payload JSON