ethos-cli 0.3.0 → 0.4.0

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.
@@ -1,10 +1,10 @@
1
- import { spawn } from "node:child_process";
2
1
  import { randomUUID } from "node:crypto";
3
2
  import { createServer } from "node:http";
4
3
  import { hostname } from "node:os";
5
4
  import { authConfigPath, clearStoredAuth, readStoredAuth, writeStoredAuth } from "../lib/auth-store.js";
6
5
  import { defaultAgentReturnUrl, inferAppUrl, resolveAgentClientId } from "../lib/agent-clients.js";
7
6
  import { isJsonMode, resolveApiUrl } from "../lib/config.js";
7
+ import { openInBrowser } from "../lib/open-browser.js";
8
8
  import { printResult } from "../lib/output.js";
9
9
  export function registerAuth(program) {
10
10
  const auth = program.command("auth").description("Authenticate the Ethos CLI");
@@ -189,17 +189,6 @@ function parseTimeout(value) {
189
189
  throw new Error("--timeout must be a positive number of seconds.");
190
190
  return Math.min(parsed, 600);
191
191
  }
192
- function openInBrowser(url) {
193
- const command = process.platform === "darwin" ? "open" : process.platform === "win32" ? "cmd" : "xdg-open";
194
- const args = process.platform === "win32" ? ["/c", "start", "", url] : [url];
195
- try {
196
- const child = spawn(command, args, { detached: true, stdio: "ignore" });
197
- child.unref();
198
- }
199
- catch {
200
- // The approval URL was already printed.
201
- }
202
- }
203
192
  async function createLocalAuthCallback(timeoutSeconds) {
204
193
  const state = randomUUID();
205
194
  let settled = false;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- import { withClient } from "../lib/command-helpers.js";
1
+ import { jsonRequest, withClient } from "../lib/command-helpers.js";
2
2
  import { FIND_PEOPLE_AT_COMPANIES_FLOW, buildFindPeopleFlowStart, inferAppUrl, } from "../lib/agent-clients.js";
3
+ import { EthosApiError } from "../lib/client.js";
4
+ import { openInBrowser } from "../lib/open-browser.js";
3
5
  import { printResult } from "../lib/output.js";
4
6
  export function registerFlows(program) {
5
7
  const flows = program
@@ -12,7 +14,8 @@ export function registerFlows(program) {
12
14
  .option("--agent-surface <surface>", "agent surface metadata: code, chat, or cowork", "code")
13
15
  .option("--app-url <url>", "Ethos web app URL")
14
16
  .option("--codex-thread-id <id>", "Codex thread UUID for Codex return links")
15
- .option("--return-url <url>", "explicit deep link to use when returning to the agent client");
17
+ .option("--return-url <url>", "explicit deep link to use when returning to the agent client")
18
+ .option("--open", "open the upload URL in the default browser after creating the handoff");
16
19
  startCommand.action(async (flow) => {
17
20
  if (flow !== FIND_PEOPLE_AT_COMPANIES_FLOW) {
18
21
  throw new Error(`Unsupported flow "${flow}". Supported flow: ${FIND_PEOPLE_AT_COMPANIES_FLOW}.`);
@@ -44,12 +47,90 @@ export function registerFlows(program) {
44
47
  ...flowStart,
45
48
  org_id: handoff.org_id,
46
49
  org_name: handoff.org_name,
50
+ handoff_token: handoff.handoff_token,
47
51
  upload_url: handoff.handoff_url,
48
52
  handoff_url: handoff.handoff_url,
49
53
  destination_url: handoff.destination_url,
50
54
  destination_path: handoff.destination_path,
51
55
  });
56
+ if (options.open)
57
+ openInBrowser(handoff.handoff_url);
52
58
  });
53
59
  });
60
+ const waitCommand = flows
61
+ .command("wait <handoff-token>")
62
+ .description("Poll a handoff until the browser CSV upload completes, then return the uploaded table id")
63
+ .option("--timeout <seconds>", "seconds to wait for the upload to complete", "300")
64
+ .option("--poll-interval <seconds>", "seconds between status checks", "2");
65
+ waitCommand.action(async (handoffToken) => {
66
+ await withClient(waitCommand, async (client, config) => {
67
+ const options = waitCommand.opts();
68
+ const timeoutSeconds = parseWaitSeconds(options.timeout, "--timeout", 1800);
69
+ const pollIntervalMs = parseWaitSeconds(options.pollInterval, "--poll-interval", 60) * 1000;
70
+ const deadline = Date.now() + timeoutSeconds * 1000;
71
+ for (;;) {
72
+ let handoff;
73
+ try {
74
+ const requestTimeoutMs = Math.min(STATUS_REQUEST_TIMEOUT_MS, Math.max(1000, deadline - Date.now()));
75
+ handoff = await fetchHandoffStatus(client, handoffToken, requestTimeoutMs);
76
+ }
77
+ catch (error) {
78
+ // A single stalled status request is aborted so it cannot block the
79
+ // overall --timeout; fall through to the deadline check and retry.
80
+ if (!isAbortError(error))
81
+ throw error;
82
+ }
83
+ if (handoff?.result_table_id) {
84
+ printResult(config, {
85
+ label: `Upload complete; table ${handoff.result_table_id}`,
86
+ data: {
87
+ ...handoff,
88
+ handoff_token: handoffToken,
89
+ table_id: handoff.result_table_id,
90
+ },
91
+ });
92
+ return;
93
+ }
94
+ if (Date.now() >= deadline) {
95
+ throw new Error(`Timed out after ${timeoutSeconds}s waiting for the CSV upload to complete. ` +
96
+ `Confirm the user finished uploading, then re-run \`ethos flows wait ${handoffToken}\`.`);
97
+ }
98
+ await delay(pollIntervalMs);
99
+ }
100
+ });
101
+ });
102
+ }
103
+ const STATUS_REQUEST_TIMEOUT_MS = 15_000;
104
+ async function fetchHandoffStatus(client, handoffToken, requestTimeoutMs) {
105
+ const controller = new AbortController();
106
+ const timer = setTimeout(() => controller.abort(), requestTimeoutMs);
107
+ try {
108
+ return await client.request("/v1/auth/browser-handoffs/status", {
109
+ ...jsonRequest("POST", { handoff_token: handoffToken }),
110
+ signal: controller.signal,
111
+ });
112
+ }
113
+ catch (error) {
114
+ if (error instanceof EthosApiError && error.status === 404) {
115
+ throw new EthosApiError("This upload flow expired before the CSV upload completed. Re-run `ethos flows start find-people-at-companies` to start a new one.", error.status, error.body);
116
+ }
117
+ throw error;
118
+ }
119
+ finally {
120
+ clearTimeout(timer);
121
+ }
122
+ }
123
+ function isAbortError(error) {
124
+ return Boolean(error && typeof error === "object" && "name" in error && error.name === "AbortError");
125
+ }
126
+ function parseWaitSeconds(value, name, max) {
127
+ const parsed = Number.parseInt(value || "", 10);
128
+ if (!Number.isFinite(parsed) || parsed < 1) {
129
+ throw new Error(`${name} must be a positive number of seconds.`);
130
+ }
131
+ return Math.min(parsed, max);
132
+ }
133
+ function delay(ms) {
134
+ return new Promise((resolve) => setTimeout(resolve, ms));
54
135
  }
55
136
  //# sourceMappingURL=flows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/commands/flows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAwB/C,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,gEAAgE,CAAC,CAAC;IAEjF,MAAM,YAAY,GAAG,KAAK;SACvB,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,yBAAyB,EAAE,2DAA2D,EAAE,MAAM,CAAC;SACtG,MAAM,CAAC,2BAA2B,EAAE,+CAA+C,EAAE,MAAM,CAAC;SAC5F,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;SAC9C,MAAM,CAAC,wBAAwB,EAAE,0CAA0C,CAAC;SAC5E,MAAM,CAAC,oBAAoB,EAAE,8DAA8D,CAAC,CAAC;IAEhG,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QACzC,IAAI,IAAI,KAAK,6BAA6B,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,sBAAsB,6BAA6B,GAAG,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAoB,CAAC;YACtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzF,MAAM,SAAS,GAAG,wBAAwB,CAAC;gBACzC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,MAAM;gBACN,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,eAAe,GAAG,GAAG,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;YAC7E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAqB,2BAA2B,EAAE;gBACpF,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;oBACnC,gBAAgB,EAAE,eAAe;oBACjC,IAAI;oBACJ,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,aAAa,EAAE,SAAS,CAAC,aAAa;iBACvC,CAAC;aACH,CAAC,CAAC;YAEH,WAAW,CAAC,MAAM,EAAE;gBAClB,GAAG,SAAS;gBACZ,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,UAAU,EAAE,OAAO,CAAC,WAAW;gBAC/B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC3C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/commands/flows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Open a URL in the user's default browser without blocking the CLI.
3
+ * Failures are swallowed because callers always print the URL as a fallback.
4
+ */
5
+ export declare function openInBrowser(url: string): void;
@@ -0,0 +1,21 @@
1
+ import { spawn } from "node:child_process";
2
+ /**
3
+ * Open a URL in the user's default browser without blocking the CLI.
4
+ * Failures are swallowed because callers always print the URL as a fallback.
5
+ */
6
+ export function openInBrowser(url) {
7
+ const command = process.platform === "darwin" ? "open" : process.platform === "win32" ? "cmd" : "xdg-open";
8
+ const args = process.platform === "win32" ? ["/c", "start", "", url] : [url];
9
+ try {
10
+ const child = spawn(command, args, { detached: true, stdio: "ignore" });
11
+ // A missing opener (e.g. headless Linux without xdg-open) surfaces as an
12
+ // async error event; swallow it so it cannot crash the CLI. The printed
13
+ // URL remains the fallback.
14
+ child.once("error", () => { });
15
+ child.unref();
16
+ }
17
+ catch {
18
+ // The URL was already printed, so the user can open it manually.
19
+ }
20
+ }
21
+ //# sourceMappingURL=open-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../../src/lib/open-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;IAC3G,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,4BAA4B;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9B,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ethos-cli",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Commander-based CLI for Ethos table operations",
5
5
  "homepage": "https://github.com/cluster-software/ethos#readme",
6
6
  "repository": {
@@ -11,10 +11,11 @@ pass `--api-url` for local development or an explicitly requested environment.
11
11
 
12
12
  ## Required CLI
13
13
 
14
- The Ethos CLI (`ethos`) is required. The first command in this skill is:
14
+ The Ethos CLI (`ethos`) is required. The first command in this skill opens the
15
+ upload browser straight away:
15
16
 
16
17
  ```sh
17
- ethos auth status --json
18
+ ethos flows start find-people-at-companies --agent-client auto --open --json
18
19
  ```
19
20
 
20
21
  If that command fails because `ethos` is not installed or not available on
@@ -24,16 +25,20 @@ If that command fails because `ethos` is not installed or not available on
24
25
  npm install -g ethos-cli@latest --prefer-online
25
26
  ```
26
27
 
28
+ If it fails because the CLI is not authenticated, run
29
+ `ethos auth login --agent-client auto`, then re-run the `flows start` command.
30
+ Do not run a separate `ethos auth status` first; `flows start` already requires
31
+ auth and surfaces a clear error when login is needed.
32
+
27
33
  ## Flow
28
34
 
29
35
  Keep CSV upload in the browser-based Ethos product flow:
30
36
 
31
- 1. Ask the Ethos CLI for the upload flow metadata.
32
- 2. Open the returned upload URL in the browser available to this agent client.
33
- 3. Immediately ask the user for ICP, buying signals, person targets, and max contacts while they upload.
34
- 4. Capture the uploaded table id from the upload-complete table URL.
35
- 5. Once the brief is ready, inspect the table, create the `people_sourcing` agent, and create the agent-client-created column with the CLI.
36
- 6. Run the column for the FIRST 3 ROWS ONLY. Tell the user you're running for 3 rows to see if the results are good. If yes, the next step is to run on the whole table. If not, refine the agent based on their feedback so it finds the right people.
37
+ 1. Start the flow and open the upload browser in one command (`ethos flows start … --open`). Save the `handoff_token` from the response.
38
+ 2. Immediately ask the user for ICP, buying signals, person targets, and max contacts while they upload.
39
+ 3. Capture the uploaded table id automatically with `ethos flows wait "$HANDOFF_TOKEN" --json`. Do not ask the user to paste the table URL unless `flows wait` cannot recover.
40
+ 4. Once the brief is ready, inspect the table, create the `people_sourcing` agent, and create the agent-client-created column with the CLI.
41
+ 5. Run the column for the FIRST 3 ROWS ONLY. Tell the user you're running for 3 rows to see if the results are good. If yes, the next step is to run on the whole table. If not, refine the agent based on their feedback so it finds the right people.
37
42
 
38
43
  Do not run `ethos tables import-csv` for this skill unless the user explicitly
39
44
  asks for a CLI-only/non-browser fallback. The browser upload is part of the
@@ -41,31 +46,29 @@ product flow and must not be replaced by CLI import.
41
46
 
42
47
  ## Authenticate
43
48
 
44
- Check auth first:
45
-
46
- ```sh
47
- ethos auth status --json
48
- ```
49
-
50
- If unauthenticated, run:
49
+ Authentication is handled implicitly by `flows start`; do not run a separate
50
+ `ethos auth status` pre-check. Only if `flows start` reports that the CLI is not
51
+ authenticated, run:
51
52
 
52
53
  ```sh
53
54
  ethos auth login --agent-client auto
54
55
  ```
55
56
 
56
- The browser claim flow handles production auth. Do not ask for API tokens unless
57
- the user explicitly wants a non-browser setup.
57
+ then re-run the `flows start` command. The browser claim flow handles production
58
+ auth. Do not ask for API tokens unless the user explicitly wants a non-browser
59
+ setup.
58
60
 
59
61
  ## Start Upload Flow
60
62
 
61
- Start the browser handoff flow through the CLI abstraction instead of constructing client-specific URLs:
63
+ Start the browser handoff flow through the CLI abstraction instead of constructing client-specific URLs. Pass `--open` so the CLI opens the upload browser itself:
62
64
 
63
65
  ```sh
64
- ethos flows start find-people-at-companies --agent-client auto --json
66
+ ethos flows start find-people-at-companies --agent-client auto --open --json
65
67
  ```
66
68
 
67
69
  Save these fields from `response`:
68
70
 
71
+ - `handoff_token` (needed for `ethos flows wait`)
69
72
  - `upload_url`
70
73
  - `agent_client`
71
74
  - `agent_client_label`
@@ -73,7 +76,8 @@ Save these fields from `response`:
73
76
  - `next_prompt`
74
77
 
75
78
  The `upload_url` is a handoff URL that verifies the browser session and
76
- workspace before redirecting to the CSV upload modal.
79
+ workspace before redirecting to the CSV upload modal. With `--open`, the CLI
80
+ already launched it in the default browser.
77
81
 
78
82
  If the detected client is wrong, rerun the same command with an explicit client,
79
83
  such as `--agent-client codex` or `--agent-client claude-desktop`.
@@ -83,50 +87,55 @@ session.
83
87
 
84
88
  ## Open Browser Upload
85
89
 
86
- Open `response.upload_url` according to the active client:
87
-
88
- - In Codex, use the Browser plugin / in-app Browser. Keep the upload and table
89
- view in that Codex browser surface. The upload URL already opens the CSV
90
- upload modal, so do not click `Import CSV` or take any other browser action
91
- after navigating unless the user asks for help.
92
- - In Claude Code, Cursor, or another non-Codex shell-based client, use the
93
- OS/browser shell opener first:
90
+ With `--open`, the CLI already launched `response.upload_url` in the default
91
+ browser and the CSV upload modal opens directly. You usually do not open
92
+ anything yourself. Handle the exceptions per client:
94
93
 
95
- ```sh
96
- open "$UPLOAD_URL"
97
- ```
94
+ - In Codex, the in-app Browser is the right surface. If `--open` did not surface
95
+ the page there, open `response.upload_url` in the Codex Browser. Do not click
96
+ `Import CSV` or take other browser actions after navigating unless the user
97
+ asks for help.
98
+ - In Claude Code, Cursor, or another shell-based client, `--open` uses the OS
99
+ opener. If it failed (for example, no desktop session), run `open "$UPLOAD_URL"`
100
+ yourself, and only fall back to MCP browser tools, Chrome connectors, or in-app
101
+ browser plugins if that also fails. If every option fails, show the URL and ask
102
+ the user to open it.
98
103
 
99
- Do this before using MCP browser tools, Chrome connectors, in-app browser
100
- plugins, or other browser automation connectors. Only use those connectors if
101
- `open "$UPLOAD_URL"` fails or is unavailable in the current environment. If
102
- all browser-opening options fail, show the URL to the user and ask them to
103
- open it.
104
-
105
- After navigating to the upload URL, immediately ask `response.next_prompt`. If
106
- the flow response is not available for some reason, ask:
104
+ Right after the browser opens, immediately ask `response.next_prompt`. If the
105
+ flow response is not available for some reason, ask:
107
106
 
108
107
  ```text
109
108
  Please describe your ICP, any signals that would make them a good fit for your product or service, and where that data may live. You can keep typing while the CSV uploads.
110
109
  ```
111
110
 
112
- If you can inspect the browser URL, poll it every 2 seconds while the user
113
- uploads and answers. The upload-completion indicator is this URL shape:
111
+ ## Capture The Uploaded Table
114
112
 
115
- ```text
116
- /tables/<TABLE_ID>?agent_flow=find-people-at-companies&uploaded=1&sidebar=collapsed&agent_client=<CLIENT>[...]
113
+ When the user uploads the CSV, Ethos links the new table to this flow. Get the
114
+ table id by waiting on the handoff instead of asking for a pasted URL:
115
+
116
+ ```sh
117
+ ethos flows wait "$HANDOFF_TOKEN" --json
117
118
  ```
118
119
 
119
- When the browser URL matches that shape, save the table id from the URL. If you
120
- cannot inspect the browser URL in this client, ask the user to return with or
121
- paste the uploaded table URL after the upload completes, then extract the table
122
- id from that URL. Start collecting the targeting brief immediately. Do not run
123
- table inspection or `source-people --help` just because the upload completed;
124
- if those CLI commands are needed, run them later while setting up the agent and
125
- table run.
120
+ This blocks until the upload completes (up to `--timeout`, default 300s) and
121
+ returns `response.table_id` and `response.org_id`. Save both.
122
+
123
+ - Run it after you have asked for the brief ideally once the user replies or
124
+ says they have uploaded so the table is usually already there and the
125
+ command returns right away.
126
+ - If it times out because the user has not uploaded yet, just re-run the same
127
+ command. The upload window is about 10 minutes from `flows start`.
128
+ - Only fall back if `flows wait` reports the flow expired or keeps timing out:
129
+ if you can inspect the browser URL, the completed shape is
130
+ `/tables/<TABLE_ID>?agent_flow=find-people-at-companies&uploaded=1&...`;
131
+ otherwise ask the user to paste the uploaded table URL and extract the id.
132
+
133
+ Do not run table inspection or `source-people --help` just because the upload
134
+ completed; run those later while setting up the agent and table run.
126
135
 
127
136
  ## Collect The Brief
128
137
 
129
- After the upload-complete URL appears, ask only for anything still missing:
138
+ After `flows wait` returns the table id, ask only for anything still missing:
130
139
 
131
140
  - ICP fit criteria for companies.
132
141
  - Buying-signal criteria to prioritize.