autotouch-cli 0.2.11__tar.gz → 0.2.13__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.11 → autotouch_cli-0.2.13}/PKG-INFO +61 -2
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/autotouch_cli.egg-info/PKG-INFO +61 -2
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/docs/research-table/reference/autotouch-cli-pypi.md +60 -1
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/pyproject.toml +1 -1
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/smart_table_cli.py +34 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/autotouch_cli.egg-info/SOURCES.txt +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/autotouch_cli.egg-info/dependency_links.txt +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/autotouch_cli.egg-info/entry_points.txt +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/autotouch_cli.egg-info/requires.txt +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/autotouch_cli.egg-info/top_level.txt +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/__init__.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/add_column_unique_index.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/attach_csv_import_leads_to_research_table.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/bundle_sequences_backend.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/check_agent_traces.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/check_column_mode.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/exit_terminal_leads_from_sequences.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/fetch_lead.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/fix_lead_titles_from_csv.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250106_add_column_position.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250108_fix_legacy_column_fields.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250109_add_user_fields_to_tables.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250117_add_call_logs_webhook_indexes.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250117_rename_call_logs_collection.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250119_create_leads_unique_email_index.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250123_add_filter_indexes.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250123_add_llm_responses_collection.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250128_migrate_user_ids_to_objectid.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250208_backfill_task_research_values.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250604_add_origin_indexes.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250608_cleanup_agent_metadata.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250608_rename_agent_metadata_to_metadata.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250922_add_activity_indexes.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250926_migrate_single_to_arrays.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250928_add_missing_timestamp_fields.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250929_add_task_join_indexes.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250929_add_task_join_indexes_safe.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250929_create_shared_phone_cache.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20251007_add_rows_position_id_index.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20251109_add_ttl_for_llm_and_preview_traces.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20260113_normalize_table_filter_operators.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20260113_set_user_permissions_user_admin.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20260204_sync_lead_owner_from_tasks.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/migrate_org_user_credits.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/set_default_lead_status.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/update_lead_owner_from_tasks.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/reassign_sequence_owner.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/run_sidecar_orchestrator_demo.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/test_crm_company_policy.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/test_sequences_instantly_e2e.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/test_sequences_personal_e2e.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/test_task_error_logger.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/verify_azurite_voicemail.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/setup.cfg +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/tests/test_contactout_custom.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/tests/test_contactout_integration.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/tests/test_contactout_multi_titles.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/tests/test_contactout_pipeline.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/tests/test_contactout_simple.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/tests/test_contactout_v2_bulk.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/tests/test_lead_required_fields.py +0 -0
- {autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/tests/test_phone_provider_pipeline.py +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.13
|
|
4
4
|
Summary: Autotouch Smart Table CLI
|
|
5
5
|
Requires-Python: >=3.9
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -55,6 +55,17 @@ autotouch auth set-key --api-key stk_... --base-url https://app.autotouch.ai
|
|
|
55
55
|
autotouch auth check
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
Developer keys support the same scope model as raw HTTP API calls.
|
|
59
|
+
Workflow-related scopes now include:
|
|
60
|
+
- `sequences:read`
|
|
61
|
+
- `sequences:write`
|
|
62
|
+
- `sequences:run`
|
|
63
|
+
- `tasks:read`
|
|
64
|
+
- `tasks:write`
|
|
65
|
+
|
|
66
|
+
Reference:
|
|
67
|
+
- `docs/platform/authentication.md`
|
|
68
|
+
|
|
58
69
|
## Preflight (recommended before writes)
|
|
59
70
|
|
|
60
71
|
```bash
|
|
@@ -158,6 +169,24 @@ This keeps quickstart short while documenting the full strategy:
|
|
|
158
169
|
- one-person-per-row output contract,
|
|
159
170
|
- JSON split + downstream enrichment chaining.
|
|
160
171
|
|
|
172
|
+
## Sequences/Tasks workflow APIs (current CLI coverage)
|
|
173
|
+
|
|
174
|
+
The installable `autotouch` CLI currently provides first-class commands for research-table APIs.
|
|
175
|
+
|
|
176
|
+
Sequence/task workflow endpoints are available today via HTTP with the same developer key:
|
|
177
|
+
- `docs/platform/external-workflows-api.md`
|
|
178
|
+
|
|
179
|
+
Examples include:
|
|
180
|
+
- `POST /api/sequences`
|
|
181
|
+
- `PATCH /api/sequences/{sequence_id}/status`
|
|
182
|
+
- `POST /api/sequences/{sequence_id}/enroll`
|
|
183
|
+
- `POST /api/task-queue/create`
|
|
184
|
+
- `POST /api/task-queue/{task_id}/draft`
|
|
185
|
+
|
|
186
|
+
Important:
|
|
187
|
+
- These workflow routes support `actorUserId` query parameter.
|
|
188
|
+
- External sequence validation rules (manual vs automated vs AI draft constraints) are documented in the workflow reference above.
|
|
189
|
+
|
|
161
190
|
## Create basic/manual fields (text, number, date, etc.)
|
|
162
191
|
|
|
163
192
|
Use `kind=manual` for non-enrichment columns.
|
|
@@ -294,10 +323,16 @@ autotouch columns run-next \
|
|
|
294
323
|
|
|
295
324
|
- Treat a run as started only when you receive `job_id`.
|
|
296
325
|
- Treat a run as done only when `jobs get/watch` returns terminal status.
|
|
326
|
+
- `columns run --wait` now emits structured progress events and includes:
|
|
327
|
+
- `job_id`
|
|
328
|
+
- `job_status_url`
|
|
329
|
+
- `watch_command`
|
|
297
330
|
|
|
298
331
|
```bash
|
|
299
332
|
autotouch jobs get --job-id <JOB_ID> --output json
|
|
300
333
|
autotouch jobs watch --job-id <JOB_ID> --interval 2 --output json
|
|
334
|
+
# Recover latest job id if local output lost it:
|
|
335
|
+
autotouch jobs list --table-id <TABLE_ID> --column-id <COLUMN_ID> --limit 1 --output json
|
|
301
336
|
```
|
|
302
337
|
|
|
303
338
|
Terminal statuses:
|
|
@@ -306,6 +341,25 @@ Terminal statuses:
|
|
|
306
341
|
- `error`
|
|
307
342
|
- `cancelled`
|
|
308
343
|
|
|
344
|
+
Non-terminal statuses:
|
|
345
|
+
- `queued`
|
|
346
|
+
- `distributing`
|
|
347
|
+
- `processing`
|
|
348
|
+
|
|
349
|
+
Recommended status fields to inspect while waiting:
|
|
350
|
+
- `processed_rows`
|
|
351
|
+
- `error_rows`
|
|
352
|
+
- `skipped_rows`
|
|
353
|
+
- `total_rows`
|
|
354
|
+
- `pending_batches`
|
|
355
|
+
- `terminal_reason`
|
|
356
|
+
|
|
357
|
+
CLI-protected failure statuses:
|
|
358
|
+
- `not_found`
|
|
359
|
+
- `unknown_not_found`
|
|
360
|
+
|
|
361
|
+
If either failure status appears, treat the run as unconfirmed/inconsistent, verify row state, and rerun.
|
|
362
|
+
|
|
309
363
|
## Troubleshooting
|
|
310
364
|
|
|
311
365
|
1. Import appears to run but rows are missing:
|
|
@@ -320,7 +374,12 @@ Terminal statuses:
|
|
|
320
374
|
- Re-run with same `--checkpoint-file` and `--wait`.
|
|
321
375
|
- CLI can resume/poll an in-flight task from checkpoint state.
|
|
322
376
|
|
|
323
|
-
4.
|
|
377
|
+
4. Run queued but job id missing from local output:
|
|
378
|
+
- Recover from backend history:
|
|
379
|
+
- `autotouch jobs list --table-id <TABLE_ID> --column-id <COLUMN_ID> --limit 5 --output json`
|
|
380
|
+
- Then poll the returned `job_id` with `autotouch jobs get` / `autotouch jobs watch`.
|
|
381
|
+
|
|
382
|
+
5. Need to stop a running column job:
|
|
324
383
|
|
|
325
384
|
```bash
|
|
326
385
|
autotouch columns stop --table-id <TABLE_ID> --column-id <COLUMN_ID>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: autotouch-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.13
|
|
4
4
|
Summary: Autotouch Smart Table CLI
|
|
5
5
|
Requires-Python: >=3.9
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -55,6 +55,17 @@ autotouch auth set-key --api-key stk_... --base-url https://app.autotouch.ai
|
|
|
55
55
|
autotouch auth check
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
Developer keys support the same scope model as raw HTTP API calls.
|
|
59
|
+
Workflow-related scopes now include:
|
|
60
|
+
- `sequences:read`
|
|
61
|
+
- `sequences:write`
|
|
62
|
+
- `sequences:run`
|
|
63
|
+
- `tasks:read`
|
|
64
|
+
- `tasks:write`
|
|
65
|
+
|
|
66
|
+
Reference:
|
|
67
|
+
- `docs/platform/authentication.md`
|
|
68
|
+
|
|
58
69
|
## Preflight (recommended before writes)
|
|
59
70
|
|
|
60
71
|
```bash
|
|
@@ -158,6 +169,24 @@ This keeps quickstart short while documenting the full strategy:
|
|
|
158
169
|
- one-person-per-row output contract,
|
|
159
170
|
- JSON split + downstream enrichment chaining.
|
|
160
171
|
|
|
172
|
+
## Sequences/Tasks workflow APIs (current CLI coverage)
|
|
173
|
+
|
|
174
|
+
The installable `autotouch` CLI currently provides first-class commands for research-table APIs.
|
|
175
|
+
|
|
176
|
+
Sequence/task workflow endpoints are available today via HTTP with the same developer key:
|
|
177
|
+
- `docs/platform/external-workflows-api.md`
|
|
178
|
+
|
|
179
|
+
Examples include:
|
|
180
|
+
- `POST /api/sequences`
|
|
181
|
+
- `PATCH /api/sequences/{sequence_id}/status`
|
|
182
|
+
- `POST /api/sequences/{sequence_id}/enroll`
|
|
183
|
+
- `POST /api/task-queue/create`
|
|
184
|
+
- `POST /api/task-queue/{task_id}/draft`
|
|
185
|
+
|
|
186
|
+
Important:
|
|
187
|
+
- These workflow routes support `actorUserId` query parameter.
|
|
188
|
+
- External sequence validation rules (manual vs automated vs AI draft constraints) are documented in the workflow reference above.
|
|
189
|
+
|
|
161
190
|
## Create basic/manual fields (text, number, date, etc.)
|
|
162
191
|
|
|
163
192
|
Use `kind=manual` for non-enrichment columns.
|
|
@@ -294,10 +323,16 @@ autotouch columns run-next \
|
|
|
294
323
|
|
|
295
324
|
- Treat a run as started only when you receive `job_id`.
|
|
296
325
|
- Treat a run as done only when `jobs get/watch` returns terminal status.
|
|
326
|
+
- `columns run --wait` now emits structured progress events and includes:
|
|
327
|
+
- `job_id`
|
|
328
|
+
- `job_status_url`
|
|
329
|
+
- `watch_command`
|
|
297
330
|
|
|
298
331
|
```bash
|
|
299
332
|
autotouch jobs get --job-id <JOB_ID> --output json
|
|
300
333
|
autotouch jobs watch --job-id <JOB_ID> --interval 2 --output json
|
|
334
|
+
# Recover latest job id if local output lost it:
|
|
335
|
+
autotouch jobs list --table-id <TABLE_ID> --column-id <COLUMN_ID> --limit 1 --output json
|
|
301
336
|
```
|
|
302
337
|
|
|
303
338
|
Terminal statuses:
|
|
@@ -306,6 +341,25 @@ Terminal statuses:
|
|
|
306
341
|
- `error`
|
|
307
342
|
- `cancelled`
|
|
308
343
|
|
|
344
|
+
Non-terminal statuses:
|
|
345
|
+
- `queued`
|
|
346
|
+
- `distributing`
|
|
347
|
+
- `processing`
|
|
348
|
+
|
|
349
|
+
Recommended status fields to inspect while waiting:
|
|
350
|
+
- `processed_rows`
|
|
351
|
+
- `error_rows`
|
|
352
|
+
- `skipped_rows`
|
|
353
|
+
- `total_rows`
|
|
354
|
+
- `pending_batches`
|
|
355
|
+
- `terminal_reason`
|
|
356
|
+
|
|
357
|
+
CLI-protected failure statuses:
|
|
358
|
+
- `not_found`
|
|
359
|
+
- `unknown_not_found`
|
|
360
|
+
|
|
361
|
+
If either failure status appears, treat the run as unconfirmed/inconsistent, verify row state, and rerun.
|
|
362
|
+
|
|
309
363
|
## Troubleshooting
|
|
310
364
|
|
|
311
365
|
1. Import appears to run but rows are missing:
|
|
@@ -320,7 +374,12 @@ Terminal statuses:
|
|
|
320
374
|
- Re-run with same `--checkpoint-file` and `--wait`.
|
|
321
375
|
- CLI can resume/poll an in-flight task from checkpoint state.
|
|
322
376
|
|
|
323
|
-
4.
|
|
377
|
+
4. Run queued but job id missing from local output:
|
|
378
|
+
- Recover from backend history:
|
|
379
|
+
- `autotouch jobs list --table-id <TABLE_ID> --column-id <COLUMN_ID> --limit 5 --output json`
|
|
380
|
+
- Then poll the returned `job_id` with `autotouch jobs get` / `autotouch jobs watch`.
|
|
381
|
+
|
|
382
|
+
5. Need to stop a running column job:
|
|
324
383
|
|
|
325
384
|
```bash
|
|
326
385
|
autotouch columns stop --table-id <TABLE_ID> --column-id <COLUMN_ID>
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/docs/research-table/reference/autotouch-cli-pypi.md
RENAMED
|
@@ -46,6 +46,17 @@ autotouch auth set-key --api-key stk_... --base-url https://app.autotouch.ai
|
|
|
46
46
|
autotouch auth check
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
Developer keys support the same scope model as raw HTTP API calls.
|
|
50
|
+
Workflow-related scopes now include:
|
|
51
|
+
- `sequences:read`
|
|
52
|
+
- `sequences:write`
|
|
53
|
+
- `sequences:run`
|
|
54
|
+
- `tasks:read`
|
|
55
|
+
- `tasks:write`
|
|
56
|
+
|
|
57
|
+
Reference:
|
|
58
|
+
- `docs/platform/authentication.md`
|
|
59
|
+
|
|
49
60
|
## Preflight (recommended before writes)
|
|
50
61
|
|
|
51
62
|
```bash
|
|
@@ -149,6 +160,24 @@ This keeps quickstart short while documenting the full strategy:
|
|
|
149
160
|
- one-person-per-row output contract,
|
|
150
161
|
- JSON split + downstream enrichment chaining.
|
|
151
162
|
|
|
163
|
+
## Sequences/Tasks workflow APIs (current CLI coverage)
|
|
164
|
+
|
|
165
|
+
The installable `autotouch` CLI currently provides first-class commands for research-table APIs.
|
|
166
|
+
|
|
167
|
+
Sequence/task workflow endpoints are available today via HTTP with the same developer key:
|
|
168
|
+
- `docs/platform/external-workflows-api.md`
|
|
169
|
+
|
|
170
|
+
Examples include:
|
|
171
|
+
- `POST /api/sequences`
|
|
172
|
+
- `PATCH /api/sequences/{sequence_id}/status`
|
|
173
|
+
- `POST /api/sequences/{sequence_id}/enroll`
|
|
174
|
+
- `POST /api/task-queue/create`
|
|
175
|
+
- `POST /api/task-queue/{task_id}/draft`
|
|
176
|
+
|
|
177
|
+
Important:
|
|
178
|
+
- These workflow routes support `actorUserId` query parameter.
|
|
179
|
+
- External sequence validation rules (manual vs automated vs AI draft constraints) are documented in the workflow reference above.
|
|
180
|
+
|
|
152
181
|
## Create basic/manual fields (text, number, date, etc.)
|
|
153
182
|
|
|
154
183
|
Use `kind=manual` for non-enrichment columns.
|
|
@@ -285,10 +314,16 @@ autotouch columns run-next \
|
|
|
285
314
|
|
|
286
315
|
- Treat a run as started only when you receive `job_id`.
|
|
287
316
|
- Treat a run as done only when `jobs get/watch` returns terminal status.
|
|
317
|
+
- `columns run --wait` now emits structured progress events and includes:
|
|
318
|
+
- `job_id`
|
|
319
|
+
- `job_status_url`
|
|
320
|
+
- `watch_command`
|
|
288
321
|
|
|
289
322
|
```bash
|
|
290
323
|
autotouch jobs get --job-id <JOB_ID> --output json
|
|
291
324
|
autotouch jobs watch --job-id <JOB_ID> --interval 2 --output json
|
|
325
|
+
# Recover latest job id if local output lost it:
|
|
326
|
+
autotouch jobs list --table-id <TABLE_ID> --column-id <COLUMN_ID> --limit 1 --output json
|
|
292
327
|
```
|
|
293
328
|
|
|
294
329
|
Terminal statuses:
|
|
@@ -297,6 +332,25 @@ Terminal statuses:
|
|
|
297
332
|
- `error`
|
|
298
333
|
- `cancelled`
|
|
299
334
|
|
|
335
|
+
Non-terminal statuses:
|
|
336
|
+
- `queued`
|
|
337
|
+
- `distributing`
|
|
338
|
+
- `processing`
|
|
339
|
+
|
|
340
|
+
Recommended status fields to inspect while waiting:
|
|
341
|
+
- `processed_rows`
|
|
342
|
+
- `error_rows`
|
|
343
|
+
- `skipped_rows`
|
|
344
|
+
- `total_rows`
|
|
345
|
+
- `pending_batches`
|
|
346
|
+
- `terminal_reason`
|
|
347
|
+
|
|
348
|
+
CLI-protected failure statuses:
|
|
349
|
+
- `not_found`
|
|
350
|
+
- `unknown_not_found`
|
|
351
|
+
|
|
352
|
+
If either failure status appears, treat the run as unconfirmed/inconsistent, verify row state, and rerun.
|
|
353
|
+
|
|
300
354
|
## Troubleshooting
|
|
301
355
|
|
|
302
356
|
1. Import appears to run but rows are missing:
|
|
@@ -311,7 +365,12 @@ Terminal statuses:
|
|
|
311
365
|
- Re-run with same `--checkpoint-file` and `--wait`.
|
|
312
366
|
- CLI can resume/poll an in-flight task from checkpoint state.
|
|
313
367
|
|
|
314
|
-
4.
|
|
368
|
+
4. Run queued but job id missing from local output:
|
|
369
|
+
- Recover from backend history:
|
|
370
|
+
- `autotouch jobs list --table-id <TABLE_ID> --column-id <COLUMN_ID> --limit 5 --output json`
|
|
371
|
+
- Then poll the returned `job_id` with `autotouch jobs get` / `autotouch jobs watch`.
|
|
372
|
+
|
|
373
|
+
5. Need to stop a running column job:
|
|
315
374
|
|
|
316
375
|
```bash
|
|
317
376
|
autotouch columns stop --table-id <TABLE_ID> --column-id <COLUMN_ID>
|
|
@@ -2589,6 +2589,31 @@ def cmd_jobs_get(args: argparse.Namespace) -> None:
|
|
|
2589
2589
|
_print_json(data, compact=args.compact)
|
|
2590
2590
|
|
|
2591
2591
|
|
|
2592
|
+
def cmd_jobs_list(args: argparse.Namespace) -> None:
|
|
2593
|
+
token = _resolve_token(args.token, required=True)
|
|
2594
|
+
params: Dict[str, Any] = {"limit": int(args.limit or 20)}
|
|
2595
|
+
if args.table_id:
|
|
2596
|
+
params["table_id"] = args.table_id
|
|
2597
|
+
if args.column_id:
|
|
2598
|
+
params["column_id"] = args.column_id
|
|
2599
|
+
if args.status:
|
|
2600
|
+
params["status"] = args.status
|
|
2601
|
+
if args.provider:
|
|
2602
|
+
params["provider"] = args.provider
|
|
2603
|
+
|
|
2604
|
+
data = _request_api(
|
|
2605
|
+
"GET",
|
|
2606
|
+
"/api/bulk-jobs",
|
|
2607
|
+
base_url=args.base_url,
|
|
2608
|
+
token=token,
|
|
2609
|
+
use_x_api_key=args.use_x_api_key,
|
|
2610
|
+
params=params,
|
|
2611
|
+
timeout=args.timeout,
|
|
2612
|
+
verbose=args.verbose,
|
|
2613
|
+
)
|
|
2614
|
+
_print_json(data, compact=args.compact)
|
|
2615
|
+
|
|
2616
|
+
|
|
2592
2617
|
def cmd_jobs_watch(args: argparse.Namespace) -> None:
|
|
2593
2618
|
token = _resolve_token(args.token, required=True)
|
|
2594
2619
|
poll_result = _poll_job(
|
|
@@ -3039,6 +3064,15 @@ def build_parser() -> argparse.ArgumentParser:
|
|
|
3039
3064
|
_add_api_common_arguments(pjg)
|
|
3040
3065
|
pjg.set_defaults(func=cmd_jobs_get)
|
|
3041
3066
|
|
|
3067
|
+
pjl = jobs_sub.add_parser("list", help="List recent bulk jobs (recover latest job_id)")
|
|
3068
|
+
pjl.add_argument("--table-id", help="Filter by table id")
|
|
3069
|
+
pjl.add_argument("--column-id", help="Filter by column id")
|
|
3070
|
+
pjl.add_argument("--status", help="Filter by status (or comma-separated statuses)")
|
|
3071
|
+
pjl.add_argument("--provider", help="Filter by provider")
|
|
3072
|
+
pjl.add_argument("--limit", type=int, default=20, help="Max jobs to return (1-100)")
|
|
3073
|
+
_add_api_common_arguments(pjl)
|
|
3074
|
+
pjl.set_defaults(func=cmd_jobs_list)
|
|
3075
|
+
|
|
3042
3076
|
pjw = jobs_sub.add_parser("watch", help="Poll bulk job status until terminal (or once)")
|
|
3043
3077
|
pjw.add_argument("--job-id", required=True)
|
|
3044
3078
|
pjw.add_argument("--once", action="store_true", help="Fetch once and exit")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/attach_csv_import_leads_to_research_table.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250106_add_column_position.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250123_add_filter_indexes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250604_add_origin_indexes.py
RENAMED
|
File without changes
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250608_cleanup_agent_metadata.py
RENAMED
|
File without changes
|
|
File without changes
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250922_add_activity_indexes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/20250929_add_task_join_indexes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/migrate_org_user_credits.py
RENAMED
|
File without changes
|
|
File without changes
|
{autotouch_cli-0.2.11 → autotouch_cli-0.2.13}/scripts/migrations/update_lead_owner_from_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|