deepline 0.3.389 → 0.3.391
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.
- package/dist/bundling-sources/sdk/src/agent-runtime.ts +21 -16
- package/dist/bundling-sources/sdk/src/billing-idempotency.ts +1 -1
- package/dist/bundling-sources/sdk/src/cli-invocation-id.ts +1 -1
- package/dist/bundling-sources/sdk/src/client.ts +75 -52
- package/dist/bundling-sources/sdk/src/config.ts +3 -2
- package/dist/bundling-sources/sdk/src/db/query.ts +3 -3
- package/dist/bundling-sources/sdk/src/deployment-protection.ts +7 -5
- package/dist/bundling-sources/sdk/src/http.ts +31 -41
- package/dist/bundling-sources/sdk/src/index.ts +26 -26
- package/dist/bundling-sources/sdk/src/play.ts +5 -5
- package/dist/bundling-sources/sdk/src/plays/bundle-play-file.ts +1 -1
- package/dist/bundling-sources/sdk/src/plays/local-play-execution.ts +2 -2
- package/dist/bundling-sources/sdk/src/plays/run-request.ts +2 -2
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/sdk/src/runs/read-errors.ts +1 -1
- package/dist/bundling-sources/sdk/src/runs/watch-polling.ts +1 -1
- package/dist/bundling-sources/sdk/src/skills-version.ts +2 -2
- package/dist/bundling-sources/sdk/src/tool-calls.ts +3 -3
- package/dist/bundling-sources/sdk/src/types.ts +10 -1
- package/dist/bundling-sources/sdk/src/version.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/async-operation.ts +87 -1
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-event-search.ts +19 -11
- package/dist/bundling-sources/shared_libs/plays/local-file-discovery.ts +1 -1
- package/dist/cli/{auth-DEASEYUJ.mjs → auth-6QET7NFP.mjs} +4 -4
- package/dist/cli/auth-6ZUH42ZA.js +39 -0
- package/dist/cli/{billing-TUTB4H6F.mjs → billing-HAQ2VDQX.mjs} +4 -4
- package/dist/cli/{billing-QIWD5GYZ.js → billing-KJAGTCFR.js} +73 -73
- package/dist/cli/{chunk-WRLYF4DS.js → chunk-4S6X74A3.js} +2 -2
- package/dist/cli/{chunk-HXENYWVS.js → chunk-4TCT77UF.js} +485 -114
- package/dist/cli/{chunk-KWGB3RWA.js → chunk-556BMGEB.js} +235 -220
- package/dist/cli/{chunk-CCIEPJSX.mjs → chunk-6L4P7Z6C.mjs} +2 -2
- package/dist/cli/{chunk-M6BQYSV3.mjs → chunk-DRZFTRZJ.mjs} +46 -31
- package/dist/cli/{chunk-7IPMWJNZ.js → chunk-ED42XCOW.js} +226 -226
- package/dist/cli/{chunk-B6BQ6EAR.mjs → chunk-H2ER7QWR.mjs} +6 -6
- package/dist/cli/{chunk-HHRQYYHK.mjs → chunk-H3DCZOXR.mjs} +5 -5
- package/dist/cli/{chunk-63ZXA57X.mjs → chunk-HFTOOZGN.mjs} +3 -3
- package/dist/cli/{chunk-PPKNOVMF.mjs → chunk-I3MKXASV.mjs} +2 -2
- package/dist/cli/{chunk-CLOICRTK.js → chunk-I7EVBLTW.js} +6 -6
- package/dist/cli/{chunk-7WQGDKNO.mjs → chunk-K3ODOHOI.mjs} +34 -26
- package/dist/cli/{chunk-MCWGQIDV.js → chunk-KA7X75HC.js} +48 -48
- package/dist/cli/{chunk-NBXJJBBT.mjs → chunk-KWF4HJF7.mjs} +1 -1
- package/dist/cli/{chunk-CMWDXAQH.js → chunk-ME2DZAHC.js} +26 -26
- package/dist/cli/{chunk-Z43SUQUL.js → chunk-MHLCMJ2E.js} +99 -91
- package/dist/cli/{chunk-MP7FWY76.mjs → chunk-PFPP4BKS.mjs} +2 -2
- package/dist/cli/{chunk-HVDBGPDP.mjs → chunk-PQSA443V.mjs} +485 -114
- package/dist/cli/{chunk-RHAP7ZW5.mjs → chunk-QCWIORKR.mjs} +2 -2
- package/dist/cli/{chunk-FZXZLFNC.js → chunk-RA2SDTSX.js} +15 -15
- package/dist/cli/{chunk-ABLS54ZL.js → chunk-RTH26NF3.js} +61 -61
- package/dist/cli/{chunk-Z4ZB2CDV.mjs → chunk-TLHF54VX.mjs} +1 -1
- package/dist/cli/{chunk-FZZC3A7J.js → chunk-UOSKJIXE.js} +8 -8
- package/dist/cli/{chunk-GB3KEA34.mjs → chunk-VH4B5OYM.mjs} +1 -1
- package/dist/cli/{chunk-RPGSXBS3.js → chunk-WLODHQ7S.js} +1 -1
- package/dist/cli/{chunk-OWP6SI5W.js → chunk-XBPLTHGB.js} +8 -8
- package/dist/cli/{chunk-5VCRXKAU.js → chunk-XEV5LMS2.js} +50 -50
- package/dist/cli/{chunk-2L6BBM7Z.mjs → chunk-YBZY3EZF.mjs} +4 -4
- package/dist/cli/command-docs.d.mts +24 -1
- package/dist/cli/command-docs.d.ts +24 -1
- package/dist/cli/command-docs.js +8 -2
- package/dist/cli/command-docs.mjs +9 -3
- package/dist/cli/{csv-FYI4XWEA.js → csv-2WSF5TEM.js} +12 -12
- package/dist/cli/{csv-GQ5K6MDD.mjs → csv-V7UHOBFE.mjs} +3 -3
- package/dist/cli/{db-WYSI3J43.js → db-42RL4FZD.js} +29 -29
- package/dist/cli/{db-DYXQOAWZ.mjs → db-TD375E4N.mjs} +4 -4
- package/dist/cli/{describe-T25AHZEJ.js → describe-7WFCBZUY.js} +18 -18
- package/dist/cli/{describe-YIIUMAZF.mjs → describe-GPUKAWOZ.mjs} +8 -8
- package/dist/cli/{executions-3D7KAJ2C.js → executions-LGVG3FPH.js} +6 -6
- package/dist/cli/{executions-RYFSOPMQ.mjs → executions-M7O63JNA.mjs} +4 -4
- package/dist/cli/{feedback-CIZXMDMJ.mjs → feedback-6PBSKVB2.mjs} +3 -3
- package/dist/cli/{feedback-I7FWPC7V.js → feedback-PZZA2M4S.js} +7 -7
- package/dist/cli/{git-JCURDXPQ.mjs → git-2VIFM5DI.mjs} +4 -4
- package/dist/cli/git-ZSJD3BID.js +23 -0
- package/dist/cli/index.js +93 -93
- package/dist/cli/index.mjs +33 -33
- package/dist/cli/{legacy-noops-4BW4EZJG.mjs → legacy-noops-DPUBZI7N.mjs} +4 -4
- package/dist/cli/{legacy-noops-G6F5LNUM.js → legacy-noops-IQ6QTZNZ.js} +7 -7
- package/dist/cli/{monitors-43UXU5C3.js → monitors-6GWAZFYV.js} +85 -85
- package/dist/cli/{monitors-LTKH5IWE.mjs → monitors-KBZVQG2U.mjs} +4 -4
- package/dist/cli/{org-I3WHUV67.mjs → org-CP3VSJBX.mjs} +4 -4
- package/dist/cli/{org-7MSUEPXL.js → org-JKGTHXOZ.js} +64 -64
- package/dist/cli/{play-HRZXSNXV.mjs → play-DD2ME4L4.mjs} +7 -7
- package/dist/cli/play-G5GVMIBN.js +157 -0
- package/dist/cli/{providers-BY6JPMKP.mjs → providers-JUNOFKI7.mjs} +4 -4
- package/dist/cli/{providers-DWLWK5VX.js → providers-P34QYYG6.js} +7 -7
- package/dist/cli/{quickstart-E647CKUQ.mjs → quickstart-N6SWOK7E.mjs} +3 -3
- package/dist/cli/{quickstart-QO6GCK4U.js → quickstart-UL3DEFA4.js} +5 -5
- package/dist/cli/{search-3WUQBHRV.mjs → search-SC7I56HX.mjs} +5 -5
- package/dist/cli/search-W4GXWTOM.js +26 -0
- package/dist/cli/{secrets-CPNHE5XI.js → secrets-6ZJE7ZPM.js} +13 -13
- package/dist/cli/{secrets-WTGMFFP7.mjs → secrets-RTARNYF5.mjs} +4 -4
- package/dist/cli/{sessions-UFGGEDZP.js → sessions-6IZ2XHGW.js} +5 -5
- package/dist/cli/{sessions-6Q5E7GSY.mjs → sessions-7RKV2T3O.mjs} +4 -4
- package/dist/cli/{settings-QMEIKOUI.mjs → settings-V6PXA6HY.mjs} +7 -7
- package/dist/cli/{settings-NF5726RU.js → settings-YX3XJDXE.js} +74 -74
- package/dist/cli/{setup-J35MMJ7C.js → setup-CQ5VRNNU.js} +41 -41
- package/dist/cli/{setup-ZOQOJMJ7.mjs → setup-V2O4UJNT.mjs} +6 -6
- package/dist/cli/skills-LBZPJTPI.js +28 -0
- package/dist/cli/{skills-UFDKCSYR.mjs → skills-VHJZWEHA.mjs} +4 -4
- package/dist/cli/{tools-3SU3EUQT.mjs → tools-OD5WKEWY.mjs} +6 -6
- package/dist/cli/tools-TQNM473H.js +40 -0
- package/dist/cli/{update-SXYX4PMC.mjs → update-CRMNOMJ3.mjs} +6 -6
- package/dist/cli/update-QY6GAK6B.js +28 -0
- package/dist/cli/{workflow-2LINUMOP.mjs → workflow-EVDYNCDD.mjs} +5 -5
- package/dist/cli/{workflow-XAIEXDUI.js → workflow-XHORSD5T.js} +15 -15
- package/dist/{client-DEKvymBI.d.ts → client-BhK9kix9.d.ts} +19 -0
- package/dist/{client-0avPvYBP.d.mts → client-DpzZi4fU.d.mts} +19 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -6
- package/dist/index.mjs +3 -3
- package/dist/install-integrity.json +76 -76
- package/dist/plays/run-request.d.mts +1 -1
- package/dist/plays/run-request.d.ts +1 -1
- package/dist/release.d.mts +1 -1
- package/dist/release.d.ts +1 -1
- package/dist/release.js +2 -2
- package/dist/release.mjs +1 -1
- package/package.json +1 -1
- package/dist/cli/auth-AOM2LA73.js +0 -39
- package/dist/cli/git-MVMIPHQ6.js +0 -23
- package/dist/cli/play-R5TYLP5L.js +0 -157
- package/dist/cli/search-34AC6FC7.js +0 -26
- package/dist/cli/skills-WGYISRE5.js +0 -28
- package/dist/cli/tools-Q642ZZ2M.js +0 -40
- package/dist/cli/update-T5MNWAQC.js +0 -28
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/cli/command-docs.ts
|
|
2
2
|
var CONVENTIONS = `
|
|
3
|
+
[[cli:
|
|
3
4
|
Conventions (apply to every command):
|
|
4
5
|
Output mode: readable text by default. --json prints JSON. tools execute
|
|
5
6
|
is the exception: it prints JSON; --output-format csv prints a readable
|
|
@@ -15,9 +16,14 @@ Conventions (apply to every command):
|
|
|
15
16
|
Read render.sections when you want the short human view of a JSON result.
|
|
16
17
|
File inputs: every --input, --payload, and --sql flag accepts inline text or
|
|
17
18
|
@path to read the value from a local file, for example --input @input.json.
|
|
19
|
+
]]
|
|
20
|
+
[[mcp:
|
|
21
|
+
Conventions (apply to every tool):
|
|
22
|
+
]]
|
|
18
23
|
Ids: play references look like prebuilt/person-to-phone-batch or
|
|
19
24
|
<workspace-slug>/my-play; run ids look like
|
|
20
|
-
play/<play-ref>/run/<timestamp>-<suffix> and are printed by plays run.
|
|
25
|
+
play/<play-ref>/run/<timestamp>-<suffix> and are printed by [[plays run]].
|
|
26
|
+
[[cli:
|
|
21
27
|
Large results: prefer the narrower command over post-processing a big
|
|
22
28
|
payload: runs export for rows, billing usage --run-id for cost,
|
|
23
29
|
--compact where offered, and runs get without --full.
|
|
@@ -28,27 +34,41 @@ Conventions (apply to every command):
|
|
|
28
34
|
with field-level output references and edge cases; later ones print the
|
|
29
35
|
core section. --help --verbose prints the full explanation again;
|
|
30
36
|
--help --quiet prints commander help only.
|
|
37
|
+
]]
|
|
31
38
|
`;
|
|
32
39
|
var COMMAND_DOCS = {
|
|
33
40
|
"": {
|
|
34
41
|
core: `
|
|
42
|
+
[[cli:
|
|
35
43
|
Make sure to run --help before running a command, you'll often find its
|
|
36
44
|
behavior has some differences from your expectations!
|
|
45
|
+
]]
|
|
46
|
+
[[mcp:
|
|
47
|
+
Read deepline_help for a tool before calling it, you'll often find its
|
|
48
|
+
behavior has some differences from your expectations!
|
|
49
|
+
]]
|
|
37
50
|
|
|
38
51
|
What Deepline is for:
|
|
39
52
|
Deepline runs GTM data work: find companies and people, resolve emails and
|
|
40
53
|
phones, research accounts, and keep durable, resumable runs of that work.
|
|
41
54
|
Three nouns cover almost everything:
|
|
42
55
|
tools one provider or API operation (search, enrich, verify). Atomic,
|
|
43
|
-
priced per call. Discover with search, inspect with tools
|
|
44
|
-
describe, call with tools execute.
|
|
56
|
+
priced per call. Discover with [[search]], inspect with [[tools
|
|
57
|
+
describe]], call with [[tools execute]].
|
|
45
58
|
plays a durable workflow, usually a prebuilt waterfall over a CSV. Discover
|
|
46
|
-
with search, read the contract with describe, start with
|
|
47
|
-
plays run.
|
|
59
|
+
with [[search]], read the contract with [[cli:describe]][[mcp:deepline_describe_play]], start with
|
|
60
|
+
[[plays run]].
|
|
61
|
+
[[cli:
|
|
48
62
|
runs one execution of a play: status, rows, logs, cost, and export.
|
|
49
63
|
Inspect with runs get, download rows with runs export.
|
|
64
|
+
]]
|
|
65
|
+
[[mcp:
|
|
66
|
+
runs one execution of a play: status, rows, logs, and cost. Inspect
|
|
67
|
+
with deepline_get_run, read rows with deepline_read_play_output.
|
|
68
|
+
]]
|
|
50
69
|
|
|
51
70
|
The agent path for a typical task:
|
|
71
|
+
[[cli:
|
|
52
72
|
deepline --help prints the CLI version and the auth state on its first two
|
|
53
73
|
lines, checked live. Do not run version or auth status as well.
|
|
54
74
|
1. deepline billing balance only when you need the credit balance
|
|
@@ -59,31 +79,56 @@ The agent path for a typical task:
|
|
|
59
79
|
4. deepline plays run <ref> --input '{"csv":"file.csv"}' waits, prints run id
|
|
60
80
|
5. deepline runs export <run-id> --out result.csv rows as CSV
|
|
61
81
|
6. deepline billing usage --run-id <run-id> what it cost
|
|
62
|
-
|
|
82
|
+
]]
|
|
83
|
+
[[mcp:
|
|
84
|
+
1. deepline_auth_status the connected workspace
|
|
85
|
+
2. deepline_search with query "<input you have -> result you need>"
|
|
86
|
+
one search over prebuilt plays, tools, your
|
|
87
|
+
workspace's plays, and monitor types
|
|
88
|
+
3. deepline_describe_play read required input, CSV columns, output
|
|
89
|
+
4. deepline_run_play returns the run id; a CSV goes in input_file
|
|
90
|
+
5. deepline_read_play_output the result rows, a page at a time
|
|
91
|
+
6. deepline_billing_usage with run_id what it cost
|
|
92
|
+
]]
|
|
93
|
+
Use [[tools execute]] only when no play covers the job or for one-off lookups.
|
|
63
94
|
${CONVENTIONS}`,
|
|
64
95
|
verbose: `
|
|
65
96
|
Working rules:
|
|
66
|
-
Search with the task as one sentence, not keywords: search "50 seed-stage
|
|
67
|
-
company domains -> each company's lead investors".
|
|
97
|
+
Search with the task as one sentence, not keywords: [[search "50 seed-stage
|
|
98
|
+
company domains -> each company's lead investors"]].
|
|
68
99
|
Results are ranked for what you have and what you need, and each one
|
|
69
100
|
names its kind: prebuilt play, tool, custom play, or monitor type.
|
|
70
101
|
A CSV goes through the batch form of a prebuilt play, never one
|
|
102
|
+
[[cli:
|
|
71
103
|
single-record run per row: plays run prebuilt/<play>-batch --input
|
|
72
104
|
'{"csv":"leads.csv"}', then runs export <run-id> --out <path>. Work
|
|
105
|
+
]]
|
|
106
|
+
[[mcp:
|
|
107
|
+
single-record run per row: deepline_run_play with play
|
|
108
|
+
prebuilt/<play>-batch, the CSV rows in input_file, and inputs
|
|
109
|
+
{"csv": "<input_file.path>"}. Read the rows with
|
|
110
|
+
deepline_read_play_output. Work
|
|
111
|
+
]]
|
|
73
112
|
emails: person-to-email-batch takes the whole file in one run. Each row
|
|
74
113
|
tries its LinkedIn profile first and falls through to name and company
|
|
75
114
|
domain, so do not split the file or run a second pass. Phones: a known
|
|
76
115
|
person -> person-to-phone-batch.
|
|
77
116
|
The balance is a ceiling, not a budget to use up. Before each paid call,
|
|
117
|
+
[[cli:
|
|
78
118
|
estimate its cost: the price from describe <tool> or
|
|
79
119
|
plays list --show-cost, times the results or rows you will request. Take
|
|
120
|
+
]]
|
|
121
|
+
[[mcp:
|
|
122
|
+
estimate its cost: the price from deepline_describe_tool or
|
|
123
|
+
deepline_describe_play, times the results or rows you will request. Take
|
|
124
|
+
]]
|
|
80
125
|
the cheapest route that can answer and test it with the smallest limit.
|
|
81
126
|
If one tool call would cost more than about 5 credits, lower its limit or
|
|
82
127
|
find a cheaper route first. Never top up, buy credits, or change billing
|
|
83
128
|
unless the user asks. When the balance runs out, stop spending, deliver
|
|
84
129
|
the rows you have, and name the rows left unresolved.
|
|
85
130
|
Pilot before scale: run the play on a small slice, read its actual cost
|
|
86
|
-
with billing usage --run-id <run-id
|
|
131
|
+
with [[billing usage --run-id <run-id>]], then run the full file under the
|
|
87
132
|
same play. A stated-scope input of about 25 rows or fewer is its own
|
|
88
133
|
pilot: run it once.
|
|
89
134
|
|
|
@@ -99,6 +144,7 @@ Reading results without parsing:
|
|
|
99
144
|
Every structured payload carries render.sections, a list of titled line
|
|
100
145
|
groups that is exactly what a terminal user would see. When a result is
|
|
101
146
|
large, read render.sections first, then the specific field you need.
|
|
147
|
+
[[cli:
|
|
102
148
|
|
|
103
149
|
Auth in non-interactive shells:
|
|
104
150
|
When the Auth line of deepline --help says not connected, stop and report
|
|
@@ -109,50 +155,69 @@ Skills:
|
|
|
109
155
|
The bare skills command reinstalls the Deepline skill files on disk. To see
|
|
110
156
|
which skills are installed without changing anything, run
|
|
111
157
|
skills --dry-run and read the plan.
|
|
158
|
+
]]
|
|
112
159
|
`
|
|
113
160
|
},
|
|
114
161
|
health: {
|
|
115
162
|
core: `
|
|
116
163
|
Purpose:
|
|
117
164
|
Read-only check that the configured Deepline host answers. Needs no API
|
|
118
|
-
key
|
|
165
|
+
key[[cli:; --play-runner does]].
|
|
119
166
|
When:
|
|
120
|
-
Only when a command cannot reach the server
|
|
121
|
-
the whole play execution plane works.
|
|
167
|
+
Only when [[cli:a command cannot reach the server]][[mcp:a call fails]][[cli:, or with --play-runner to prove
|
|
168
|
+
the whole play execution plane works]].
|
|
169
|
+
[[cli:
|
|
122
170
|
Input:
|
|
123
171
|
No arguments. --play-runner runs a tiny no-provider play end to end.
|
|
172
|
+
]]
|
|
173
|
+
[[cli:
|
|
124
174
|
Output:
|
|
125
175
|
Text: "<host>: <status>", then any service notice. --json: the server
|
|
126
176
|
health object plus status_banner (null when there is no notice). With
|
|
127
177
|
--play-runner,
|
|
128
178
|
{status, playRunner: {status, check}}. An unreachable host exits nonzero
|
|
129
179
|
with "Cannot reach Deepline API: <reason>".
|
|
180
|
+
]]
|
|
181
|
+
[[mcp:
|
|
182
|
+
Output:
|
|
183
|
+
The server health object plus status_banner (null when there is no
|
|
184
|
+
notice).
|
|
185
|
+
]]
|
|
130
186
|
Cost:
|
|
131
|
-
Free. --play-runner uses no providers.
|
|
187
|
+
Free.[[cli: --play-runner uses no providers.]]
|
|
132
188
|
Avoid:
|
|
133
|
-
Do not use health to check auth or balance; use auth status or billing
|
|
134
|
-
balance.
|
|
189
|
+
Do not use [[health]] to check auth or balance; use [[auth status]] or [[cli:billing
|
|
190
|
+
balance]][[mcp:deepline_billing_usage]].
|
|
135
191
|
`
|
|
136
192
|
},
|
|
137
193
|
"auth status": {
|
|
138
194
|
core: `
|
|
139
195
|
Purpose:
|
|
140
|
-
Report which Deepline host, workspace, and user this shell is authenticated
|
|
196
|
+
Report which Deepline host, workspace, and user this [[cli:shell]][[mcp:connector]] is authenticated
|
|
141
197
|
as, without changing anything.
|
|
142
198
|
When:
|
|
143
|
-
When you need the workspace name or id
|
|
144
|
-
code.
|
|
199
|
+
When you need the workspace name or id[[cli:, or to confirm auth after a 3 exit
|
|
200
|
+
code]].
|
|
201
|
+
[[cli:
|
|
145
202
|
Input:
|
|
146
203
|
No arguments. --auth-scope folder|global reads one auth store only.
|
|
147
204
|
--reveal persists the API key into the local auth file; do not use it.
|
|
205
|
+
]]
|
|
206
|
+
[[cli:
|
|
148
207
|
Output (JSON):
|
|
149
208
|
host, hostStatus, status ("claimed" when authenticated), connected
|
|
150
209
|
(boolean), workspace {id, name, slug}, user {id}, render.sections.
|
|
210
|
+
]]
|
|
211
|
+
[[mcp:
|
|
212
|
+
Output:
|
|
213
|
+
status ("claimed" when authenticated), org_id, org_name, org_slug, user_id,
|
|
214
|
+
user_email.
|
|
215
|
+
]]
|
|
151
216
|
Cost:
|
|
152
217
|
Free.
|
|
153
218
|
Avoid:
|
|
154
|
-
connected false in an unattended shell is a stop-and-report condition
|
|
155
|
-
a prompt to run auth register.
|
|
219
|
+
connected false[[cli: in an unattended shell]] is a stop-and-report condition[[cli:, not
|
|
220
|
+
a prompt to run auth register]].
|
|
156
221
|
`
|
|
157
222
|
},
|
|
158
223
|
"auth register": {
|
|
@@ -163,28 +228,32 @@ Purpose:
|
|
|
163
228
|
When:
|
|
164
229
|
Only in an interactive session where a person can open the URL. Never in an
|
|
165
230
|
unattended agent shell: the command has nothing to do until a human acts.
|
|
231
|
+
[[cli:
|
|
166
232
|
Input:
|
|
167
233
|
No arguments. It opens the approval page and waits for approval; keep that
|
|
168
234
|
default. In Cowork it prints the link and returns, and auth wait finishes
|
|
169
235
|
the login.
|
|
236
|
+
]]
|
|
170
237
|
Output:
|
|
171
238
|
The approval URL and, after approval, the connected workspace.
|
|
172
239
|
Cost:
|
|
173
240
|
Free.
|
|
174
241
|
Avoid:
|
|
175
|
-
If auth status says connected false and you cannot open a browser, report
|
|
242
|
+
If [[auth status]] says connected false and you cannot open a browser, report
|
|
176
243
|
that Deepline is not connected and stop.
|
|
177
244
|
`
|
|
178
245
|
},
|
|
179
246
|
"auth wait": {
|
|
180
247
|
core: `
|
|
181
248
|
Purpose:
|
|
182
|
-
Poll a pending auth register approval until it completes or times out.
|
|
249
|
+
Poll a pending [[auth register]] approval until it completes or times out.
|
|
183
250
|
When:
|
|
184
|
-
After auth register returned before approval, as it does in Cowork, and a
|
|
251
|
+
After [[auth register]] returned before approval, as it does in Cowork, and a
|
|
185
252
|
person is approving it in a browser.
|
|
253
|
+
[[cli:
|
|
186
254
|
Input:
|
|
187
255
|
No arguments beyond the pending registration it finds locally.
|
|
256
|
+
]]
|
|
188
257
|
Output:
|
|
189
258
|
The connected workspace once approved; a timeout error otherwise.
|
|
190
259
|
Cost:
|
|
@@ -198,14 +267,25 @@ Purpose:
|
|
|
198
267
|
When:
|
|
199
268
|
Once at the start of a task, before the first paid call, and after a run
|
|
200
269
|
reports a balance or insufficient-credits error.
|
|
270
|
+
[[cli:
|
|
201
271
|
Input:
|
|
202
272
|
No arguments. Prints one line, "Balance: N credits". --verbose adds
|
|
203
273
|
reservations and usage awaiting settlement; --json returns the full record.
|
|
274
|
+
]]
|
|
275
|
+
[[cli:
|
|
204
276
|
Output (JSON):
|
|
205
277
|
balance (Deepline credits), balance_display, rough_usd_balance,
|
|
206
278
|
balance_status, and render.sections. The balance includes other activity
|
|
207
279
|
in the workspace, so a before and after difference does not isolate one
|
|
208
280
|
command; use billing usage for that.
|
|
281
|
+
]]
|
|
282
|
+
[[mcp:
|
|
283
|
+
Output:
|
|
284
|
+
balance {balance (Deepline credits), balance_display, rough_usd_balance,
|
|
285
|
+
balance_status}. The balance includes other activity in the workspace, so
|
|
286
|
+
a before and after difference does not isolate one call; read a run's
|
|
287
|
+
spend with deepline_billing_usage with run_id.
|
|
288
|
+
]]
|
|
209
289
|
Cost:
|
|
210
290
|
Free.
|
|
211
291
|
`
|
|
@@ -215,22 +295,34 @@ Cost:
|
|
|
215
295
|
Purpose:
|
|
216
296
|
Read what the workspace, or one run, has spent in Deepline credits.
|
|
217
297
|
When:
|
|
218
|
-
After a run finishes, to report its actual cost: billing usage --run-id
|
|
219
|
-
<run-id
|
|
220
|
-
include cost unless you pass
|
|
298
|
+
After a run finishes, to report its actual cost: [[billing usage --run-id
|
|
299
|
+
<run-id>]]. This is the canonical per-run cost read; [[runs get]] does not
|
|
300
|
+
include cost unless you pass [[cli:--full]][[mcp:full: true]].
|
|
301
|
+
[[cli:
|
|
221
302
|
Input:
|
|
222
303
|
--run-id <run-id> scopes the spend to one play run. --limit and --cursor
|
|
223
304
|
page the recent-call list. --json prints JSON.
|
|
305
|
+
]]
|
|
306
|
+
[[cli:
|
|
224
307
|
Output (JSON):
|
|
225
308
|
balance, usage.last_30_days_usage_credits, usage.month_spent_credits, and
|
|
226
309
|
with --run-id: run.spent_credits, run.rough_usd_spent, run.event_count.
|
|
227
310
|
render.sections includes a "Run spend: N Deepline Credits" line.
|
|
311
|
+
]]
|
|
312
|
+
[[mcp:
|
|
313
|
+
Output:
|
|
314
|
+
usage {balance, usage {month_spent_credits, last_30_days_usage_credits,
|
|
315
|
+
temporary_hold_credits}, plan, quota, recent.entries}, and with run_id
|
|
316
|
+
usage.run {run_id, spent_credits, rough_usd_spent, event_count}, null
|
|
317
|
+
when the run has no billing events yet.
|
|
318
|
+
]]
|
|
228
319
|
Cost:
|
|
229
320
|
Free.
|
|
230
321
|
Avoid:
|
|
231
|
-
Do not grep a runs get payload for cost; use this command.
|
|
322
|
+
Do not grep a [[runs get]] payload for cost; use this command.
|
|
232
323
|
`,
|
|
233
324
|
verbose: `
|
|
325
|
+
[[cli:
|
|
234
326
|
Output fields:
|
|
235
327
|
balance, balance_display, rough_usd_balance credits available now.
|
|
236
328
|
plan.usd_per_credit conversion used for rough USD.
|
|
@@ -244,6 +336,7 @@ Output fields:
|
|
|
244
336
|
quota.* monthly cap, when enabled.
|
|
245
337
|
recent activity one line per billed call in
|
|
246
338
|
render.sections, newest first.
|
|
339
|
+
]]
|
|
247
340
|
Cases:
|
|
248
341
|
A run that is still active shows a partial spend; read it again after the
|
|
249
342
|
run reaches completed or failed.
|
|
@@ -260,6 +353,7 @@ When:
|
|
|
260
353
|
First, for any task where you do not already know the exact play or tool.
|
|
261
354
|
Search once with the task; there is no separate search for plays and for
|
|
262
355
|
tools.
|
|
356
|
+
[[cli:
|
|
263
357
|
Input:
|
|
264
358
|
One argument: the task as a sentence, written as the input you have ->
|
|
265
359
|
the result you need, for example "50 company domains -> each one's lead
|
|
@@ -268,9 +362,10 @@ Input:
|
|
|
268
362
|
and custom), or monitors, and --exclude leaves kinds out; both take a
|
|
269
363
|
comma-separated list. --categories <a,b> and --search_terms <a,b> filter
|
|
270
364
|
tools and work without a task. --limit (1-50) and --offset page.
|
|
365
|
+
]]
|
|
271
366
|
Output:
|
|
272
|
-
A readable ranked list by default; read that form. With
|
|
273
|
-
--json: results[] where each item has id, kind (tool, prebuilt_play,
|
|
367
|
+
[[cli:A readable ranked list by default; read that form. With
|
|
368
|
+
--json: ]]results[] where each item has id, kind (tool, prebuilt_play,
|
|
274
369
|
custom_play, monitor_type), displayName, and description. A tool adds
|
|
275
370
|
provider, categories, inputFields, pricing, connected, and executeCommand;
|
|
276
371
|
a play adds reference, inputFields, describeCommand, and runCommand. Also
|
|
@@ -279,13 +374,15 @@ Output:
|
|
|
279
374
|
Cost:
|
|
280
375
|
Free.
|
|
281
376
|
Next:
|
|
282
|
-
describe <id> reads any result, whatever its kind. Then plays run for a
|
|
283
|
-
play, tools execute for a tool. When a play and a tool both fit a job with
|
|
377
|
+
[[cli:describe]][[mcp:deepline_describe_tool or deepline_describe_play]] <id> reads any result, whatever its kind. Then [[plays run]] for a
|
|
378
|
+
play, [[tools execute]] for a tool. When a play and a tool both fit a job with
|
|
284
379
|
rows, take the play.
|
|
285
380
|
Avoid:
|
|
286
|
-
Do not hardcode a provider list; search returns what this workspace can
|
|
381
|
+
Do not hardcode a provider list; [[search]] returns what this workspace can
|
|
287
382
|
call now. Do not run anything from search output alone; describe it first.
|
|
383
|
+
[[cli:
|
|
288
384
|
tools search and plays search are deprecated aliases of this command.
|
|
385
|
+
]]
|
|
289
386
|
`
|
|
290
387
|
},
|
|
291
388
|
describe: {
|
|
@@ -295,8 +392,9 @@ Purpose:
|
|
|
295
392
|
type. What it is, cost, inputs, outputs, and an example of running it from
|
|
296
393
|
the CLI and from inside a play.
|
|
297
394
|
When:
|
|
298
|
-
After search and before the first run of something you have not used. You
|
|
395
|
+
After [[search]] and before the first run of something you have not used. You
|
|
299
396
|
do not say which kind the id is.
|
|
397
|
+
[[cli:
|
|
300
398
|
Input:
|
|
301
399
|
The id or reference from search. --verbose fills in every input and reads
|
|
302
400
|
every output in the examples; --cli-example and --play-example print one
|
|
@@ -306,10 +404,13 @@ Input:
|
|
|
306
404
|
--feature <name>[=<value>] describes one.
|
|
307
405
|
A play your workspace created is shown instead of a Deepline tool or
|
|
308
406
|
prebuilt play of the same name; --prebuilt shows the Deepline one.
|
|
407
|
+
]]
|
|
408
|
+
[[cli:
|
|
309
409
|
Output:
|
|
310
410
|
Readable text by default; read that form. With --json:
|
|
311
411
|
kind, id, displayName, description, cost, inputs[], outputs[], and
|
|
312
412
|
runExamples {cli, play}, plus the kind's own fields.
|
|
413
|
+
]]
|
|
313
414
|
Cost:
|
|
314
415
|
Free.
|
|
315
416
|
`
|
|
@@ -324,12 +425,12 @@ When:
|
|
|
324
425
|
for the job. For CSV-shaped work use a play instead: plays retry,
|
|
325
426
|
reuse completed rows, and export.
|
|
326
427
|
The sequence:
|
|
327
|
-
search <words> ranked tools and plays for an intent
|
|
328
|
-
describe <id> required input fields, pricing, output shape
|
|
329
|
-
tools execute <id> --input '{...}' run it
|
|
428
|
+
[[search <words>]] ranked tools and plays for an intent
|
|
429
|
+
[[cli:describe <id>]][[mcp:deepline_describe_tool]] required input fields, pricing, output shape
|
|
430
|
+
[[tools execute <id> --input '{...}']] run it
|
|
330
431
|
Cost:
|
|
331
432
|
search, describe, list, and grep are free. execute can spend credits; the
|
|
332
|
-
price is in describe <id
|
|
433
|
+
price is in [[cli:describe <id>]][[mcp:deepline_describe_tool]].
|
|
333
434
|
`
|
|
334
435
|
},
|
|
335
436
|
"tools grep": {
|
|
@@ -340,11 +441,15 @@ Purpose:
|
|
|
340
441
|
When:
|
|
341
442
|
When you know a provider or field name and want every matching tool rather
|
|
342
443
|
than a ranked guess. Use search for intent queries.
|
|
444
|
+
[[cli:
|
|
343
445
|
Input:
|
|
344
446
|
A query; --mode all (default, AND), any (OR), or phrase; --categories.
|
|
447
|
+
]]
|
|
448
|
+
[[cli:
|
|
345
449
|
Output (JSON):
|
|
346
450
|
tools[] with id, provider, displayName, description, categories, and
|
|
347
451
|
executeCommand.
|
|
452
|
+
]]
|
|
348
453
|
Cost:
|
|
349
454
|
Free.
|
|
350
455
|
`
|
|
@@ -354,13 +459,17 @@ Cost:
|
|
|
354
459
|
Purpose:
|
|
355
460
|
Browse tool categories, or list every tool in one category exhaustively.
|
|
356
461
|
When:
|
|
357
|
-
To see what kinds of tools exist (bare tools list) or to enumerate one
|
|
358
|
-
category without ranking (tools list email_finder).
|
|
462
|
+
To see what kinds of tools exist (bare [[tools list]]) or to enumerate one
|
|
463
|
+
category without ranking ([[tools list email_finder]]).
|
|
464
|
+
[[cli:
|
|
359
465
|
Input:
|
|
360
466
|
Optional positional category. --json prints JSON.
|
|
467
|
+
]]
|
|
468
|
+
[[cli:
|
|
361
469
|
Output (JSON):
|
|
362
470
|
Bare: one entry per category with its tool count. With a category: one row
|
|
363
471
|
per tool with required inputs and a pricing hint. Never truncated.
|
|
472
|
+
]]
|
|
364
473
|
Cost:
|
|
365
474
|
Free.
|
|
366
475
|
`
|
|
@@ -373,12 +482,15 @@ Purpose:
|
|
|
373
482
|
When:
|
|
374
483
|
Always before paying for an unfamiliar tool; the input schema is the only
|
|
375
484
|
reliable source of field names.
|
|
485
|
+
[[cli:
|
|
376
486
|
Input:
|
|
377
487
|
The tool id. Prints readable text by default; read that
|
|
378
488
|
form and pass --json only for a program. --pricing-only, --schema-only,
|
|
379
489
|
--examples-only, --getters-only print one section. --out <path> saves the
|
|
380
490
|
output to a file. get is an alias of describe, and deepline describe <id>
|
|
381
491
|
is the same read for a tool, a play, or a monitor type.
|
|
492
|
+
]]
|
|
493
|
+
[[cli:
|
|
382
494
|
Output (JSON):
|
|
383
495
|
kind, id, cost {displayText, unit, billingMode}, inputs[] {name, type,
|
|
384
496
|
required, example}, outputs[] {name, type, read}, runExamples {cli, play},
|
|
@@ -389,6 +501,7 @@ Output (JSON):
|
|
|
389
501
|
guidance (usage notes for the provider and the tool), examples[] (an
|
|
390
502
|
illustrative input and response, not an observed one), usageGuidance,
|
|
391
503
|
extractors (list paths for row-shaped output).
|
|
504
|
+
]]
|
|
392
505
|
Cost:
|
|
393
506
|
Free.
|
|
394
507
|
Avoid:
|
|
@@ -403,6 +516,7 @@ Avoid:
|
|
|
403
516
|
invalid result.
|
|
404
517
|
`,
|
|
405
518
|
verbose: `
|
|
519
|
+
[[cli:
|
|
406
520
|
Output fields:
|
|
407
521
|
inputSchema.fields[] the flat list to build --input from. required true
|
|
408
522
|
fields must be present; type is string, integer,
|
|
@@ -424,8 +538,9 @@ Output fields:
|
|
|
424
538
|
response into rows; the same paths appear in tools
|
|
425
539
|
execute output as output_preview.listSourcePath.
|
|
426
540
|
usageGuidance provider-specific notes worth reading once.
|
|
541
|
+
]]
|
|
427
542
|
Related:
|
|
428
|
-
tools execute <id> --input @file.json uses the same schema; runtime output
|
|
543
|
+
[[tools execute <id>]][[cli: --input @file.json]] uses the same schema; runtime output
|
|
429
544
|
help for authoring a play appears under runtimeOutputHelp.
|
|
430
545
|
`
|
|
431
546
|
},
|
|
@@ -436,6 +551,7 @@ Purpose:
|
|
|
436
551
|
When:
|
|
437
552
|
One-off lookups, searches that return candidates, or when no play covers the
|
|
438
553
|
job. Use a play for a CSV of rows.
|
|
554
|
+
[[cli:
|
|
439
555
|
Input:
|
|
440
556
|
Positional tool id, then the parameters in exactly one of these forms:
|
|
441
557
|
--input '{"email":"a@b.com"}' inline JSON object
|
|
@@ -443,26 +559,38 @@ Input:
|
|
|
443
559
|
-p email=a@b.com one key=value per -p, repeatable
|
|
444
560
|
--payload is an alias of --input. There is no --payload-file flag; use
|
|
445
561
|
@path. --out <file.csv> writes row-shaped output to a CSV file.
|
|
562
|
+
]]
|
|
563
|
+
[[cli:
|
|
446
564
|
Output (JSON):
|
|
447
565
|
job_id, status ("completed" or a failure status), toolResponse.rawV2 (the
|
|
448
566
|
complete provider result), output_preview {kind, rowCount, columns, preview,
|
|
449
567
|
listSourcePath}, summary, next, render.sections. Errors return a non-zero
|
|
450
568
|
exit code and an error object, not a completed status.
|
|
569
|
+
]]
|
|
570
|
+
[[mcp:
|
|
571
|
+
Output:
|
|
572
|
+
data, the provider result, and credits_used when it is reported.
|
|
573
|
+
]]
|
|
451
574
|
Cost:
|
|
452
|
-
Spends Deepline credits per call at the price in describe. A search
|
|
575
|
+
Spends Deepline credits per call at the price in [[cli:describe]][[mcp:deepline_describe_tool]]. A search
|
|
453
576
|
with limit N is one call; it is not billed per result.
|
|
454
577
|
Avoid:
|
|
455
|
-
Do not wrap the result in shell parsing to find rows; output_preview
|
|
456
|
-
already lists the row path and the first rows
|
|
578
|
+
Do not [[cli:wrap the result in shell parsing]][[mcp:post-process the result]] to find rows; output_preview
|
|
579
|
+
already lists the row path and the first rows[[cli:, and --out writes the CSV]].
|
|
580
|
+
[[cli:
|
|
457
581
|
Do not add 2>&1 when you parse the JSON: stderr text breaks the parse. A
|
|
458
582
|
failed call prints its error as JSON on stdout.
|
|
583
|
+
]]
|
|
459
584
|
`,
|
|
460
585
|
verbose: `
|
|
586
|
+
[[cli:
|
|
461
587
|
Input rules:
|
|
462
588
|
The object must match inputSchema.fields from describe. Extra keys
|
|
463
589
|
are rejected by most providers. Nested filter objects (for example
|
|
464
590
|
crustdata_v3_* filters) must be passed as JSON, so use --input, not -p.
|
|
465
591
|
An @path value is read relative to the current directory.
|
|
592
|
+
]]
|
|
593
|
+
[[cli:
|
|
466
594
|
Output fields:
|
|
467
595
|
toolResponse.rawV2 the complete provider response with its nesting
|
|
468
596
|
kept; toolResponse.raw is the older field beside it.
|
|
@@ -473,15 +601,16 @@ Output fields:
|
|
|
473
601
|
output_preview.preview a bounded sample of rows; the full array is at the
|
|
474
602
|
listSourcePath, and --out writes all of it as CSV.
|
|
475
603
|
next.inspect a read-only command that inspects the call, for debugging.
|
|
604
|
+
]]
|
|
476
605
|
Cases:
|
|
477
606
|
Insufficient credits fail before the provider is called, with an
|
|
478
|
-
insufficient-credits error; check billing balance first.
|
|
607
|
+
insufficient-credits error; check [[cli:billing balance]][[mcp:deepline_billing_usage]] first.
|
|
479
608
|
A provider that needs a connected account fails with an auth or permission
|
|
480
|
-
error; describe shows connected false beforehand.
|
|
609
|
+
error; [[cli:describe]][[mcp:deepline_describe_tool]] shows connected false beforehand.
|
|
481
610
|
Free tools (run_javascript, free_* ids) never charge.
|
|
482
611
|
Related:
|
|
483
612
|
To run the same operation over many rows, put the rows in a CSV and use a
|
|
484
|
-
prebuilt play (search), or write one (plays --help).
|
|
613
|
+
prebuilt play ([[search]]), or write one ([[cli:plays --help]][[mcp:deepline_help with command: plays]]).
|
|
485
614
|
`
|
|
486
615
|
},
|
|
487
616
|
plays: {
|
|
@@ -494,6 +623,7 @@ Purpose:
|
|
|
494
623
|
When:
|
|
495
624
|
Any job with rows, or any job that chains providers. A play reuses finished
|
|
496
625
|
rows on rerun, so a failed run can be resumed instead of repaid.
|
|
626
|
+
[[cli:
|
|
497
627
|
The sequence:
|
|
498
628
|
search "<input you have -> result you need>" find the play
|
|
499
629
|
describe <ref> required input, CSV columns, output fields
|
|
@@ -517,6 +647,30 @@ Auditing plays:
|
|
|
517
647
|
plays check <file> deprecated or invalid usage, one hint per
|
|
518
648
|
issue; read-only and free
|
|
519
649
|
plays triggers every cron and webhook trigger
|
|
650
|
+
]]
|
|
651
|
+
[[mcp:
|
|
652
|
+
The sequence:
|
|
653
|
+
deepline_search with query "<input you have -> result you need>"
|
|
654
|
+
find the play
|
|
655
|
+
deepline_describe_play required input, CSV columns, output fields
|
|
656
|
+
deepline_run_play start and wait; there is no cost estimate over
|
|
657
|
+
MCP, so price a large run with a small slice
|
|
658
|
+
deepline_read_play_output rows
|
|
659
|
+
Writing a play:
|
|
660
|
+
Send the complete .play.ts file graph inline: entrypoint plus files.
|
|
661
|
+
deepline_check_play validate after every edit; free
|
|
662
|
+
deepline_run_inline_play run it without publishing; CSV data files go
|
|
663
|
+
in files, named by input_file_path
|
|
664
|
+
deepline_publish_play make it live for deepline_run_play and triggers
|
|
665
|
+
The file is: export default definePlay('name', async (ctx, input) => {...}).
|
|
666
|
+
deepline_help with command "plays" and detail "verbose" lists the
|
|
667
|
+
authoring rules.
|
|
668
|
+
Auditing plays:
|
|
669
|
+
deepline_search_plays saved plays
|
|
670
|
+
deepline_list_play_versions its revisions, and which one is live
|
|
671
|
+
deepline_check_play deprecated or invalid usage, one hint per
|
|
672
|
+
issue; read-only and free
|
|
673
|
+
]]
|
|
520
674
|
Cost:
|
|
521
675
|
search, describe, list, check, and get are free; run spends credits.
|
|
522
676
|
`,
|
|
@@ -538,9 +692,9 @@ Authoring rules:
|
|
|
538
692
|
should export as CSV.
|
|
539
693
|
Dataset handles are async: await rows.count(), rows.first(),
|
|
540
694
|
rows.peek(n), rows.materialize(n), or for await. Array methods on a
|
|
541
|
-
handle fail plays check.
|
|
695
|
+
handle fail [[cli:plays check]][[mcp:deepline_check_play]].
|
|
542
696
|
Tool calls: rowCtx.tools.execute({ id, tool, input, description }). Read
|
|
543
|
-
results through the getters describe lists:
|
|
697
|
+
results through the getters [[cli:describe]][[mcp:deepline_describe_tool]] lists:
|
|
544
698
|
result.extractedValues.<name>.get() and
|
|
545
699
|
result.extractedLists.<name>.get(). A field with no getter is under
|
|
546
700
|
result.toolResponse.rawV2 with the provider's nesting kept.
|
|
@@ -553,8 +707,8 @@ Authoring rules:
|
|
|
553
707
|
the catch so an exhausted waterfall fails loudly. Never branch on an
|
|
554
708
|
error message.
|
|
555
709
|
External APIs: ctx.fetch with a fixed key, and credentials through
|
|
556
|
-
ctx.secrets.bearer(...) or ctx.secrets.header(...)
|
|
557
|
-
secrets set. res.json is a property, not a method; check res.ok. A play
|
|
710
|
+
ctx.secrets.bearer(...) or ctx.secrets.header(...)[[cli:, stored with deepline
|
|
711
|
+
secrets set]]. res.json is a property, not a method; check res.ok. A play
|
|
558
712
|
cannot loop ctx.fetch over pages: fan out over rows with ctx.dataset, or
|
|
559
713
|
call one endpoint that returns the whole result.
|
|
560
714
|
Triggers: a cron trigger receives {} unless its binding declares an input
|
|
@@ -570,7 +724,7 @@ Authoring rules:
|
|
|
570
724
|
stays null, not false.
|
|
571
725
|
Diagram: a /** @mermaid <name> */ block above the play draws it in the
|
|
572
726
|
dashboard, with // @mermaid-node <id> out:"<identifier>" above the
|
|
573
|
-
statement each box stands for. plays check validates it.
|
|
727
|
+
statement each box stands for. [[cli:plays check]][[mcp:deepline_check_play]] validates it.
|
|
574
728
|
`
|
|
575
729
|
},
|
|
576
730
|
"plays grep": {
|
|
@@ -579,10 +733,14 @@ Purpose:
|
|
|
579
733
|
Full-text search over plays this workspace authored (not prebuilt ones).
|
|
580
734
|
When:
|
|
581
735
|
Finding a saved play by a phrase in its source or description.
|
|
736
|
+
[[cli:
|
|
582
737
|
Input:
|
|
583
738
|
A query. --json prints JSON.
|
|
739
|
+
]]
|
|
740
|
+
[[cli:
|
|
584
741
|
Output (JSON):
|
|
585
742
|
Matching owned plays with the matched fields and terms.
|
|
743
|
+
]]
|
|
586
744
|
Cost:
|
|
587
745
|
Free.
|
|
588
746
|
`
|
|
@@ -590,14 +748,23 @@ Cost:
|
|
|
590
748
|
"plays list": {
|
|
591
749
|
core: `
|
|
592
750
|
Purpose:
|
|
593
|
-
Inventory of saved and prebuilt plays, one bounded page at a time. It is
|
|
594
|
-
the command that carries cost estimates.
|
|
751
|
+
Inventory of saved and prebuilt plays, one bounded page at a time.[[cli: It is
|
|
752
|
+
the command that carries cost estimates.]]
|
|
595
753
|
When:
|
|
754
|
+
[[cli:
|
|
596
755
|
To price a play before running it: plays list --show-cost, then read the
|
|
597
756
|
cost estimate line for the play, or costEstimate in JSON.
|
|
757
|
+
]]
|
|
758
|
+
[[mcp:
|
|
759
|
+
To find a saved or prebuilt play by name. It carries no cost estimate; price
|
|
760
|
+
a play by running a small slice and reading deepline_billing_usage.
|
|
761
|
+
]]
|
|
762
|
+
[[cli:
|
|
598
763
|
Input:
|
|
599
764
|
--show-cost adds estimates. --limit and --cursor page. --categories
|
|
600
765
|
filters by tool category. --json prints JSON.
|
|
766
|
+
]]
|
|
767
|
+
[[cli:
|
|
601
768
|
Output (JSON):
|
|
602
769
|
plays[] with playKey, reference, displayName, description, origin,
|
|
603
770
|
runCount, lastRun, and with --show-cost costEstimate {status, unit ("row"
|
|
@@ -605,23 +772,30 @@ Output (JSON):
|
|
|
605
772
|
{status: "unavailable", reason, message}; count, has_more, next_cursor,
|
|
606
773
|
next (the next-page command), render.sections with a "cost estimate:"
|
|
607
774
|
line per play.
|
|
775
|
+
]]
|
|
608
776
|
Cost:
|
|
609
777
|
Free.
|
|
778
|
+
[[cli:
|
|
610
779
|
Avoid:
|
|
611
780
|
describe does not include a cost estimate; this command does.
|
|
781
|
+
]]
|
|
612
782
|
`,
|
|
613
783
|
verbose: `
|
|
784
|
+
[[cli:
|
|
614
785
|
Pricing a run:
|
|
615
786
|
Multiply lowCredits..highCredits by the row count when unit is "row", or
|
|
616
787
|
use it directly when unit is "run". Compare with the billing balance.
|
|
617
788
|
When the estimate is unavailable, run a two-row slice first and
|
|
618
789
|
read its actual spend with billing usage --run-id <run-id>.
|
|
790
|
+
]]
|
|
791
|
+
[[cli:
|
|
619
792
|
Output fields:
|
|
620
793
|
costEstimate.source "observed" (from past runs; shown with ~) or
|
|
621
794
|
"static" (from the play's declared tools).
|
|
622
795
|
costEstimate.sampleRunCount how many runs the observation is based on.
|
|
623
796
|
has_more / next_cursor the page is bounded; pass --cursor to continue.
|
|
624
797
|
is_truncated true when the page was cut for size.
|
|
798
|
+
]]
|
|
625
799
|
`
|
|
626
800
|
},
|
|
627
801
|
"plays describe": {
|
|
@@ -632,30 +806,45 @@ Purpose:
|
|
|
632
806
|
When:
|
|
633
807
|
Always before the first run of a play. It is free and it is the only
|
|
634
808
|
reliable source of the input field and column names.
|
|
809
|
+
[[cli:
|
|
635
810
|
Input:
|
|
636
811
|
The play reference from search (prebuilt/... or <workspace>/...).
|
|
637
812
|
--compact shortens schemas. --json prints JSON.
|
|
813
|
+
]]
|
|
814
|
+
[[cli:
|
|
638
815
|
Output (JSON):
|
|
639
816
|
name, reference, displayName, description, inputSchema (JSON Schema plus
|
|
640
817
|
fields[] {name, required, type}), outputSchema, csvInput {inputField,
|
|
641
818
|
rowInputSchema.required[], defaultColumns, columnFlags}, rowOutputSchema,
|
|
642
819
|
runCommand, examples, triggerStatus, latestRunId.
|
|
643
820
|
No cost estimate; use plays list --show-cost for that.
|
|
821
|
+
]]
|
|
644
822
|
Cost:
|
|
645
823
|
Free.
|
|
824
|
+
[[cli:
|
|
646
825
|
Avoid:
|
|
647
826
|
Do not pass --show-cost here; it is not an option of this command.
|
|
827
|
+
]]
|
|
648
828
|
`,
|
|
649
829
|
verbose: `
|
|
650
830
|
CSV plays:
|
|
831
|
+
[[cli:
|
|
651
832
|
csvInput.inputField is the input key that takes the CSV path (usually
|
|
652
833
|
"csv"), so the run input is {"csv":"path.csv"}. rowInputSchema.required
|
|
834
|
+
]]
|
|
835
|
+
[[mcp:
|
|
836
|
+
csvInput.inputField is the input key that takes the CSV (usually "csv").
|
|
837
|
+
A play cannot read a file path from this client: send the rows as
|
|
838
|
+
deepline_run_play input_file and set that input to input_file.path.
|
|
839
|
+
rowInputSchema.required
|
|
840
|
+
]]
|
|
653
841
|
lists the per-row fields the play needs (for example first_name,
|
|
654
842
|
last_name, domain). defaultColumns maps each field to the header name the
|
|
655
843
|
play looks for (FIRST_NAME, LAST_NAME, COMPANY_DOMAIN). When your file uses
|
|
656
|
-
other headers, either rename them or pass the columnFlags, for example
|
|
657
|
-
--columns.domain website. The run fails at validation, before any credit
|
|
844
|
+
other headers, either rename them[[cli: or pass the columnFlags, for example
|
|
845
|
+
--columns.domain website]]. The run fails at validation, before any credit
|
|
658
846
|
is spent, when a required column is missing.
|
|
847
|
+
[[cli:
|
|
659
848
|
Output fields:
|
|
660
849
|
inputSchema.fields[] flat list for a single-row play; build --input
|
|
661
850
|
from it.
|
|
@@ -669,6 +858,7 @@ Output fields:
|
|
|
669
858
|
Related:
|
|
670
859
|
plays get <ref> returns full metadata, revisions, and source; describe is
|
|
671
860
|
the compact read meant for running.
|
|
861
|
+
]]
|
|
672
862
|
`
|
|
673
863
|
},
|
|
674
864
|
"plays get": {
|
|
@@ -676,13 +866,15 @@ Related:
|
|
|
676
866
|
Purpose:
|
|
677
867
|
Full metadata for a play: revisions, source, triggers, and latest runs.
|
|
678
868
|
When:
|
|
679
|
-
Only when describe is not enough: reading the source (--source --out
|
|
869
|
+
Only when describe is not enough: reading the source ([[--source]] [[--out]]
|
|
680
870
|
file.play.ts), checking revisions, or auditing a saved play.
|
|
871
|
+
[[cli:
|
|
681
872
|
Input:
|
|
682
873
|
The play reference. --source prints or writes the source; --working,
|
|
683
874
|
--live, --revision <n> pick which source.
|
|
875
|
+
]]
|
|
684
876
|
Output (JSON):
|
|
685
|
-
The play record with revision and trigger metadata; with --source, the
|
|
877
|
+
The play record with revision and trigger metadata; with [[--source]], the
|
|
686
878
|
TypeScript source.
|
|
687
879
|
Cost:
|
|
688
880
|
Free.
|
|
@@ -691,21 +883,25 @@ Cost:
|
|
|
691
883
|
"plays check": {
|
|
692
884
|
core: `
|
|
693
885
|
Purpose:
|
|
694
|
-
Validate a play contract without starting a run: a local .play.ts file is
|
|
886
|
+
Validate a play contract without starting a run: [[cli:a local .play.ts file]][[mcp:an inline .play.ts file graph]] is
|
|
695
887
|
bundled and checked, a named or prebuilt play is confirmed discoverable.
|
|
696
888
|
When:
|
|
697
889
|
Before running a local play file, and after editing one. Free, so run it
|
|
698
890
|
every time.
|
|
891
|
+
[[cli:
|
|
699
892
|
Input:
|
|
700
893
|
A local path ending in .play.ts, or a play reference. --json prints JSON.
|
|
894
|
+
]]
|
|
895
|
+
[[cli:
|
|
701
896
|
Output (JSON):
|
|
702
897
|
valid (boolean), target, name, reference, inputSchema, outputSchema,
|
|
703
898
|
runtimeLimit, note, and for local files any errors or warnings with the
|
|
704
899
|
repair steps.
|
|
900
|
+
]]
|
|
705
901
|
Cost:
|
|
706
902
|
Free.
|
|
707
903
|
Avoid:
|
|
708
|
-
valid true does not mean the input you plan to pass is valid; describe
|
|
904
|
+
valid true does not mean the input you plan to pass is valid; [[describe]]
|
|
709
905
|
shows the required fields.
|
|
710
906
|
`
|
|
711
907
|
},
|
|
@@ -715,11 +911,13 @@ Purpose:
|
|
|
715
911
|
Start one run of a play, wait for it, and print the result package with
|
|
716
912
|
the run id.
|
|
717
913
|
When:
|
|
718
|
-
After describe. A CSV goes through the play's batch form
|
|
914
|
+
After [[cli:describe]][[mcp:deepline_describe_play]]. A CSV goes through the play's batch form
|
|
719
915
|
(prebuilt/<name>-batch) in one run; the single-record form is for one
|
|
720
916
|
person or company. Pilot a slice first when the estimate times the row
|
|
721
917
|
count is a large share of the balance; an input of about 25 rows or fewer
|
|
722
|
-
is its own pilot.
|
|
918
|
+
is its own pilot.[[mcp: A play cannot read a file path from this client:
|
|
919
|
+
send a CSV's rows as input_file and set the CSV input to input_file.path.]]
|
|
920
|
+
[[cli:
|
|
723
921
|
Input:
|
|
724
922
|
Positional: a play reference (prebuilt/... or <workspace>/...) or a local
|
|
725
923
|
.play.ts path. A path runs that file as written and never publishes it; a
|
|
@@ -731,6 +929,8 @@ Input:
|
|
|
731
929
|
--columns.<field> <header> maps a CSV header to a required field.
|
|
732
930
|
--no-wait returns the run id immediately instead of waiting.
|
|
733
931
|
--run-id-file <path> writes the run id as soon as the server accepts it.
|
|
932
|
+
]]
|
|
933
|
+
[[cli:
|
|
734
934
|
Output (JSON, printed when the run ends):
|
|
735
935
|
run {id, playName, status ("completed", "failed", "stopped")},
|
|
736
936
|
dashboardUrl, steps[] with per-step progress, rowOutcomes, warnings,
|
|
@@ -739,6 +939,16 @@ Output (JSON, printed when the run ends):
|
|
|
739
939
|
getLogsCmd, exportDatasetCmds[], queryTableSqlCmds[]. Rows are not in this
|
|
740
940
|
payload. Progress lines are printed while it waits; the JSON is the last
|
|
741
941
|
thing printed.
|
|
942
|
+
]]
|
|
943
|
+
[[mcp:
|
|
944
|
+
Output:
|
|
945
|
+
The run package deepline_get_run returns, once the run ends: run {id,
|
|
946
|
+
playName, status, dashboardUrl}, steps[] with per-step progress,
|
|
947
|
+
rowOutcomes, warnings, datasets[] {tableNamespace, sqlQualifiedTableName,
|
|
948
|
+
actions}, and next {inspect, full, billing, logs}, each naming the MCP call
|
|
949
|
+
for that follow-up. Pass a dataset's tableNamespace as table_namespace to
|
|
950
|
+
deepline_read_play_output for its rows; rows are not in this payload.
|
|
951
|
+
]]
|
|
742
952
|
Cost:
|
|
743
953
|
Spends Deepline credits through the play's tool calls. Validation errors
|
|
744
954
|
(missing column, bad input) fail before any spend.
|
|
@@ -746,22 +956,33 @@ Avoid:
|
|
|
746
956
|
Do not run the single-record play once per row of a file; each run pays
|
|
747
957
|
its own start-up and balance admission, and the batch form keeps a
|
|
748
958
|
row-level failure inside one completed run.
|
|
749
|
-
Do not poll runs get while plays run is still waiting; it already waits.
|
|
959
|
+
Do not poll [[runs get]] while [[plays run]] is still waiting; it already waits.
|
|
750
960
|
Do not rerun a failed run from scratch; the same command reuses completed
|
|
751
961
|
rows.
|
|
752
962
|
`,
|
|
753
963
|
verbose: `
|
|
754
964
|
Waiting and timeouts:
|
|
965
|
+
[[cli:
|
|
755
966
|
The command watches the run until it ends. Prefixed activity lines report
|
|
756
967
|
queueing and per-step progress; if the tool shell has an execution
|
|
757
968
|
timeout shorter than the run, start with --no-wait or --run-id-file and
|
|
758
969
|
poll with runs get <run-id> until run.status is terminal.
|
|
970
|
+
]]
|
|
971
|
+
[[mcp:
|
|
972
|
+
deepline_run_play waits for the run to end, up to timeout_ms (default 50000,
|
|
973
|
+
maximum 90000; stay under your client's tool-call timeout); timeout_ms: 0
|
|
974
|
+
returns once the run is admitted. A run still active then returns its
|
|
975
|
+
status; call deepline_get_run with run.id until run.status is terminal.
|
|
976
|
+
]]
|
|
977
|
+
[[cli:
|
|
759
978
|
Input rules:
|
|
760
979
|
A CSV path is relative to the current directory; the CLI uploads the file
|
|
761
980
|
before submitting, so the run does not depend on the file afterwards.
|
|
762
981
|
Header matching is case-insensitive against csvInput.defaultColumns from
|
|
763
982
|
describe; other headers need --columns.<field> <header>.
|
|
764
983
|
--limit 5 and similar pass-through flags become input.limit = 5.
|
|
984
|
+
]]
|
|
985
|
+
[[cli:
|
|
765
986
|
Output fields:
|
|
766
987
|
run.status the run's terminal state. "failed" with row-level
|
|
767
988
|
failures still keeps the succeeded rows; read
|
|
@@ -776,31 +997,86 @@ Output fields:
|
|
|
776
997
|
actions.getBillingCmd the exact cost read for this run.
|
|
777
998
|
error present on failure; insufficient-credits errors
|
|
778
999
|
name the missing amount.
|
|
1000
|
+
]]
|
|
779
1001
|
Reruns and idempotency:
|
|
780
1002
|
Running the same play with the same input reuses completed provider calls
|
|
781
1003
|
and rows, so rerunning after a partial failure only pays for the missing
|
|
782
|
-
work. --force starts a fresh run graph; --force-tool-refresh repeats
|
|
783
|
-
billed provider calls and is almost never what you want.
|
|
1004
|
+
work.[[cli: --force starts a fresh run graph; --force-tool-refresh repeats
|
|
1005
|
+
billed provider calls and is almost never what you want.]]
|
|
784
1006
|
Related:
|
|
785
|
-
runs get <run-id> for status later; runs export for rows; runs logs for
|
|
786
|
-
persisted logs; billing usage --run-id for cost.
|
|
1007
|
+
[[runs get <run-id>]] for status later; [[cli:runs export]][[mcp:deepline_read_play_output]] for rows; [[runs logs]] for
|
|
1008
|
+
persisted logs; [[billing usage --run-id]] for cost.
|
|
1009
|
+
`
|
|
1010
|
+
},
|
|
1011
|
+
"plays versions": {
|
|
1012
|
+
core: `
|
|
1013
|
+
Purpose:
|
|
1014
|
+
List the saved revisions of a workspace play, newest first, and which one
|
|
1015
|
+
is live.
|
|
1016
|
+
When:
|
|
1017
|
+
Before making an older revision live or running a specific revision.
|
|
1018
|
+
[[cli:
|
|
1019
|
+
Input:
|
|
1020
|
+
--name <play>. --json forces JSON.
|
|
1021
|
+
]]
|
|
1022
|
+
Output (JSON):
|
|
1023
|
+
The play's revisions, each with its revision id and whether it is live.
|
|
1024
|
+
Cost:
|
|
1025
|
+
Free.
|
|
1026
|
+
`
|
|
1027
|
+
},
|
|
1028
|
+
"plays delete": {
|
|
1029
|
+
core: `
|
|
1030
|
+
Purpose:
|
|
1031
|
+
Move a workspace play to Trash and stop its triggers. Its revisions and
|
|
1032
|
+
run history are kept, so it can be restored.
|
|
1033
|
+
When:
|
|
1034
|
+
When the user asks to remove a play. Prebuilt plays cannot be deleted.
|
|
1035
|
+
[[cli:
|
|
1036
|
+
Input:
|
|
1037
|
+
The play name. --yes confirms; --dry-run shows the planned change.
|
|
1038
|
+
]]
|
|
1039
|
+
Output (JSON):
|
|
1040
|
+
The deleted play and the triggers that were stopped.
|
|
1041
|
+
Cost:
|
|
1042
|
+
Free.
|
|
1043
|
+
`
|
|
1044
|
+
},
|
|
1045
|
+
"plays restore": {
|
|
1046
|
+
core: `
|
|
1047
|
+
Purpose:
|
|
1048
|
+
Restore a play from Trash. The saved play is enabled again and its trigger
|
|
1049
|
+
bindings are recreated.
|
|
1050
|
+
When:
|
|
1051
|
+
After a play was deleted by mistake.
|
|
1052
|
+
[[cli:
|
|
1053
|
+
Input:
|
|
1054
|
+
The play name. --json forces JSON.
|
|
1055
|
+
]]
|
|
1056
|
+
Output (JSON):
|
|
1057
|
+
The restored play.
|
|
1058
|
+
Cost:
|
|
1059
|
+
Free.
|
|
787
1060
|
`
|
|
788
1061
|
},
|
|
789
1062
|
"plays set-live": {
|
|
790
1063
|
core: `
|
|
791
1064
|
Purpose:
|
|
792
|
-
Make one version of a play live, so plays run <name
|
|
793
|
-
ctx.runPlay callers use it. A local .play.ts file is bundled, validated,
|
|
1065
|
+
Make one version of a play live, so [[plays run <name>]], triggers, and
|
|
1066
|
+
ctx.runPlay callers use it.[[cli: A local .play.ts file is bundled, validated,
|
|
794
1067
|
saved as a revision, and promoted in one step; a saved play promotes one
|
|
795
|
-
of its existing revisions.
|
|
1068
|
+
of its existing revisions.]][[mcp: It promotes one of a saved play's existing
|
|
1069
|
+
revisions; deepline_publish_play saves and promotes a new file graph.]]
|
|
796
1070
|
When:
|
|
797
|
-
After iterating on a local file with plays run ./file.play.ts, once its
|
|
798
|
-
result is right. Running a local file never publishes it.
|
|
1071
|
+
After iterating on [[cli:a local file with plays run ./file.play.ts]][[mcp:a play with deepline_run_inline_play]], once its
|
|
1072
|
+
result is right. Running [[cli:a local file]][[mcp:a play inline]] never publishes it.
|
|
1073
|
+
[[cli:
|
|
799
1074
|
Input:
|
|
800
1075
|
A local path ending in .play.ts, or a saved play name with --latest or
|
|
801
1076
|
--revision-id <id>. --dry-run bundles and prints the planned artifact
|
|
802
1077
|
without publishing. --expected-artifact <hash> refuses to publish when the
|
|
803
1078
|
file no longer produces the artifact hash plays check printed.
|
|
1079
|
+
]]
|
|
804
1080
|
Output (JSON):
|
|
805
1081
|
success, name, liveVersion, revisionId, artifactHash, previousLiveVersion,
|
|
806
1082
|
previousArtifactHash, and the trigger metadata and bindings now live.
|
|
@@ -808,26 +1084,28 @@ Cost:
|
|
|
808
1084
|
Free. It changes cloud state: every caller of the play name gets the new
|
|
809
1085
|
version at once.
|
|
810
1086
|
Avoid:
|
|
811
|
-
Do not publish to test a change; run the file by path instead.
|
|
1087
|
+
Do not publish to test a change; [[cli:run the file by path]][[mcp:run it with deepline_run_inline_play]] instead.
|
|
812
1088
|
A cron or webhook trigger cannot report its own failure. After publishing
|
|
813
|
-
a triggered play, check that a failure notifies someone
|
|
814
|
-
--help.
|
|
1089
|
+
a triggered play, check that a failure notifies someone[[cli:: notifications
|
|
1090
|
+
--help]].
|
|
815
1091
|
`
|
|
816
1092
|
},
|
|
817
1093
|
"plays publish": {
|
|
818
1094
|
core: `
|
|
819
1095
|
Purpose:
|
|
820
|
-
Publish a local .play.ts file or promote a saved revision, so plays run
|
|
821
|
-
<name
|
|
822
|
-
plays set-live.
|
|
1096
|
+
Publish [[cli:a local .play.ts file]][[mcp:an inline .play.ts file graph]] or promote a saved revision, so [[plays run
|
|
1097
|
+
<name>]], triggers, and ctx.runPlay callers use it. The same operation as
|
|
1098
|
+
[[plays set-live]].
|
|
823
1099
|
When:
|
|
824
|
-
Once a play run by file path gives the right result. Running a local file
|
|
1100
|
+
Once a play [[cli:run by file path]][[mcp:run inline]] gives the right result. Running [[cli:a local file]][[mcp:a play inline]]
|
|
825
1101
|
never publishes it.
|
|
1102
|
+
[[cli:
|
|
826
1103
|
Input:
|
|
827
1104
|
A local path ending in .play.ts, or a saved play name with --latest or
|
|
828
1105
|
--revision-id <id>. --dry-run bundles and prints the planned artifact
|
|
829
1106
|
without publishing. --expected-artifact <hash> refuses to publish when the
|
|
830
1107
|
file no longer produces the artifact hash plays check printed.
|
|
1108
|
+
]]
|
|
831
1109
|
Output (JSON):
|
|
832
1110
|
success, name, liveVersion, revisionId, artifactHash, and the trigger
|
|
833
1111
|
metadata and bindings now live.
|
|
@@ -836,8 +1114,8 @@ Cost:
|
|
|
836
1114
|
version at once.
|
|
837
1115
|
Avoid:
|
|
838
1116
|
A cron or webhook trigger cannot report its own failure. After publishing
|
|
839
|
-
a triggered play, check that a failure notifies someone
|
|
840
|
-
--help.
|
|
1117
|
+
a triggered play, check that a failure notifies someone[[cli:: notifications
|
|
1118
|
+
--help]].
|
|
841
1119
|
`
|
|
842
1120
|
},
|
|
843
1121
|
runs: {
|
|
@@ -846,6 +1124,7 @@ Purpose:
|
|
|
846
1124
|
Everything about executions of plays: current status, row outcomes, logs,
|
|
847
1125
|
cost, export, and cancellation.
|
|
848
1126
|
Which command:
|
|
1127
|
+
[[cli:
|
|
849
1128
|
runs get <run-id> status, step progress, dataset handles, next steps
|
|
850
1129
|
runs export <run-id> --out f.csv the result rows as CSV
|
|
851
1130
|
billing usage --run-id <run-id> what the run cost
|
|
@@ -853,8 +1132,18 @@ Which command:
|
|
|
853
1132
|
runs logs <run-id> persisted logs; --failed for the failure window
|
|
854
1133
|
runs watch <run-id> follow an active run until it ends
|
|
855
1134
|
runs stop <run-id> cancel; runs stop-all cancels every active run
|
|
1135
|
+
]]
|
|
1136
|
+
[[mcp:
|
|
1137
|
+
deepline_get_run status, step progress, dataset handles, next steps
|
|
1138
|
+
deepline_read_play_output the result rows, a page at a time
|
|
1139
|
+
deepline_billing_usage with run_id what the run cost
|
|
1140
|
+
deepline_list_runs recent runs of a play with status and credits
|
|
1141
|
+
deepline_get_run_logs persisted logs
|
|
1142
|
+
deepline_stop_run cancel; deepline_stop_all_runs cancels every
|
|
1143
|
+
active run
|
|
1144
|
+
]]
|
|
856
1145
|
Ids:
|
|
857
|
-
play/<play-ref>/run/<timestamp>-<suffix>, printed by plays run as runId.
|
|
1146
|
+
play/<play-ref>/run/<timestamp>-<suffix>, printed by [[plays run]] as runId.
|
|
858
1147
|
Cost:
|
|
859
1148
|
All of these are free; a run's spend was charged while it ran.
|
|
860
1149
|
`
|
|
@@ -865,14 +1154,17 @@ Purpose:
|
|
|
865
1154
|
Current status and structure of one run: state, per-step progress, row
|
|
866
1155
|
counts, dataset handles, and exact follow-up commands.
|
|
867
1156
|
When:
|
|
868
|
-
To check a run started with
|
|
869
|
-
db query, or to see row-level failure counts. Not for cost and not for
|
|
1157
|
+
To check a run started with [[cli:--no-wait]][[mcp:timeout_ms: 0, or one still running when deepline_run_play returned]], to find the dataset table name for
|
|
1158
|
+
[[db query]], or to see row-level failure counts. Not for cost and not for
|
|
870
1159
|
rows.
|
|
1160
|
+
[[cli:
|
|
871
1161
|
Input:
|
|
872
1162
|
The run id. --full resolves a full-only result and adds diagnostics with
|
|
873
1163
|
billing and timeline (large). --log-failed attaches the failure log window.
|
|
874
1164
|
--input prints the original input (may contain customer data). --json
|
|
875
1165
|
prints JSON; --json run.status,datasets.name selects fields.
|
|
1166
|
+
]]
|
|
1167
|
+
[[cli:
|
|
876
1168
|
Output (JSON):
|
|
877
1169
|
kind "run_overview", run {id, playName, status, startedAt, finishedAt,
|
|
878
1170
|
durationMs}, steps[] {id, kind, status, label, progress {total, executed,
|
|
@@ -884,14 +1176,23 @@ Output (JSON):
|
|
|
884
1176
|
queryTableSqlCmds[]). A batch run's payload is tens of kilobytes; read
|
|
885
1177
|
run.status and datasets[] and take rows and cost from the narrower
|
|
886
1178
|
commands.
|
|
1179
|
+
]]
|
|
1180
|
+
[[mcp:
|
|
1181
|
+
Output:
|
|
1182
|
+
The run package (kind "play_run"): run {id, playName, status}, steps[],
|
|
1183
|
+
rowOutcomes, warnings, datasets[] {tableNamespace, sqlQualifiedTableName,
|
|
1184
|
+
actions}, and next.*.command, each naming the MCP call for a follow-up.
|
|
1185
|
+
With full: true the package is under package, beside the diagnostics.
|
|
1186
|
+
]]
|
|
887
1187
|
Cost:
|
|
888
1188
|
Free.
|
|
889
1189
|
Avoid:
|
|
890
|
-
Cost is not in this payload without --full; use billing usage --run-id.
|
|
891
|
-
datasets[].preview.rows is a sample, not the rows; use runs export or db
|
|
892
|
-
query.
|
|
1190
|
+
Cost is not in this payload without [[--full]]; use [[billing usage --run-id]].
|
|
1191
|
+
datasets[].preview.rows is a sample, not the rows; use [[cli:runs export]][[mcp:deepline_read_play_output]] or [[db
|
|
1192
|
+
query]].
|
|
893
1193
|
`,
|
|
894
1194
|
verbose: `
|
|
1195
|
+
[[cli:
|
|
895
1196
|
Output fields:
|
|
896
1197
|
run.status queued, running, completed, failed, or stopped. Only
|
|
897
1198
|
the last three are terminal.
|
|
@@ -919,14 +1220,15 @@ Output fields:
|
|
|
919
1220
|
actions.*Cmd exact commands: exportDatasetCmds[], getBillingCmd,
|
|
920
1221
|
queryTableSqlCmds[], getLogsCmd, and stopRunCmd while
|
|
921
1222
|
the run is active.
|
|
922
|
-
|
|
1223
|
+
]]
|
|
1224
|
+
With [[cli:--full]][[mcp:full: true]]:
|
|
923
1225
|
diagnostics holds the raw status: billing, timeline, errors, child runs.
|
|
924
|
-
|
|
1226
|
+
[[cli:--json diagnostics needs --full. ]]Use [[--full]] only when a program will read
|
|
925
1227
|
it; it is several times larger than the default overview.
|
|
926
1228
|
Debugging a run:
|
|
927
|
-
When a run failed or looks stuck, read runs get <run-id> for its state and
|
|
928
|
-
last event, then runs logs <run-id> --failed for the failure window, then
|
|
929
|
-
runs watch <run-id> to follow it if it is still active. A run can go quiet
|
|
1229
|
+
When a run failed or looks stuck, read [[runs get <run-id>]] for its state and
|
|
1230
|
+
last event, then [[runs logs <run-id>]][[cli: --failed]] for the failure window, then
|
|
1231
|
+
[[cli:runs watch <run-id>]][[mcp:deepline_get_run again]] to follow it if it is still active. A run can go quiet
|
|
930
1232
|
for minutes while it waits on a slow provider (Apify actors, large company
|
|
931
1233
|
searches), an intentional ctx.sleep, or a rate-limit backoff; that is
|
|
932
1234
|
healthy. Stop it only after about ten minutes without progress on a fast
|
|
@@ -940,12 +1242,14 @@ Purpose:
|
|
|
940
1242
|
When:
|
|
941
1243
|
After a run completes, as the way to get rows. It is also the file to
|
|
942
1244
|
show a user.
|
|
1245
|
+
[[cli:
|
|
943
1246
|
Input:
|
|
944
1247
|
The run id and --out <path> (required). --format json writes an array of
|
|
945
1248
|
rows instead of CSV. --dataset <path> selects a handle when the run
|
|
946
1249
|
returned more than one (default: the returned dataset, usually
|
|
947
1250
|
result.rows). --metadata-out <path.json> writes the export metadata. --json
|
|
948
1251
|
prints the receipt as JSON; it does not change the file format.
|
|
1252
|
+
]]
|
|
949
1253
|
Output (JSON):
|
|
950
1254
|
csv_path or json_path (absolute), source, rowCount, columns[] (the CSV
|
|
951
1255
|
header), datasets, and actions with follow-up commands. The file includes
|
|
@@ -984,19 +1288,23 @@ Purpose:
|
|
|
984
1288
|
When:
|
|
985
1289
|
To find a previous run id, to check whether a play already ran on the same
|
|
986
1290
|
input, or to read per-run spend across several runs.
|
|
1291
|
+
[[cli:
|
|
987
1292
|
Input:
|
|
988
1293
|
--play <ref> and/or --status <queued|running|completed|failed|stopped>
|
|
989
1294
|
(at least one). --limit, --offset (with --play), --compact, --json.
|
|
1295
|
+
]]
|
|
1296
|
+
[[cli:
|
|
990
1297
|
Output (JSON):
|
|
991
1298
|
runs[] {id, status, playName, createdAtIso, startedAtIso, finishedAtIso,
|
|
992
1299
|
billingTotalCredits}, count, total, has_more, next, render.sections (one
|
|
993
1300
|
line per run: id, status, start time, credits).
|
|
1301
|
+
]]
|
|
994
1302
|
Cost:
|
|
995
1303
|
Free.
|
|
996
1304
|
Avoid:
|
|
997
|
-
runs[].id is the public run id that runs get, watch, export and stop
|
|
1305
|
+
runs[].id is the public run id that [[runs get]], watch, export and stop
|
|
998
1306
|
accept. runId and workflowId are older names for it; temporalRunId is a
|
|
999
|
-
backend identifier and not a run id. Use the id plays run returned for
|
|
1307
|
+
backend identifier and not a run id. Use the id [[plays run]] returned for
|
|
1000
1308
|
your own run: the latest entry here may belong to another invocation that
|
|
1001
1309
|
started at the same time.
|
|
1002
1310
|
`
|
|
@@ -1007,6 +1315,7 @@ Purpose:
|
|
|
1007
1315
|
The stored text logs of one run, or a search of recent events across the
|
|
1008
1316
|
workspace's runs. Nothing runs again.
|
|
1009
1317
|
When:
|
|
1318
|
+
[[cli:
|
|
1010
1319
|
When a run failed and the runs get error is not enough: runs logs
|
|
1011
1320
|
<run-id> --failed shows the failure window; --out <path> saves the whole
|
|
1012
1321
|
log. Without a run id it searches events: which runs or steps failed
|
|
@@ -1014,20 +1323,31 @@ When:
|
|
|
1014
1323
|
To read what a tool call in a run returned: runs logs <run-id> --kind
|
|
1015
1324
|
receipt.completed --payloads, then one exact result by its eventId
|
|
1016
1325
|
with --where.
|
|
1326
|
+
]]
|
|
1327
|
+
[[mcp:
|
|
1328
|
+
When a run failed and the deepline_get_run error is not enough. It returns
|
|
1329
|
+
the latest log lines of one run; after_seq pages from an earlier point.
|
|
1330
|
+
]]
|
|
1331
|
+
[[cli:
|
|
1017
1332
|
Input:
|
|
1018
1333
|
A run id alone reads text logs; no run id, or any search flag, searches
|
|
1019
1334
|
events. The flags, event kinds, and --where filter examples are listed
|
|
1020
1335
|
above.
|
|
1336
|
+
]]
|
|
1337
|
+
[[cli:
|
|
1021
1338
|
Output:
|
|
1022
1339
|
Log lines (human) or a JSON envelope; with --out, the file path. Follow
|
|
1023
1340
|
next.logs for the next page of events, and pass nextCursor to --cursor for
|
|
1024
1341
|
older text logs.
|
|
1342
|
+
]]
|
|
1025
1343
|
Cost:
|
|
1026
1344
|
Free.
|
|
1345
|
+
[[cli:
|
|
1027
1346
|
Avoid:
|
|
1028
1347
|
--out, --failed and --log-level apply to text logs and cannot be combined
|
|
1029
1348
|
with an event search. --where is not SQL: it takes equality tests joined
|
|
1030
1349
|
with &&.
|
|
1350
|
+
]]
|
|
1031
1351
|
`
|
|
1032
1352
|
},
|
|
1033
1353
|
"runs receipt": {
|
|
@@ -1039,12 +1359,14 @@ When:
|
|
|
1039
1359
|
A row of a run's output records a receipt key and you need what that tool
|
|
1040
1360
|
call returned. Without a key, find the call first with runs logs <run-id>
|
|
1041
1361
|
--kind receipt.completed --payloads.
|
|
1362
|
+
[[cli:
|
|
1042
1363
|
Input:
|
|
1043
1364
|
The run id, then --key <key> (repeatable) or --keys <file> with one key
|
|
1044
1365
|
per line (--keys - reads stdin). --out <file> writes the JSON to a new
|
|
1045
1366
|
file and does not overwrite. The key is the row's
|
|
1046
1367
|
_metadata.execution.receiptKey, not a call-site id or a job id; read the
|
|
1047
1368
|
row's actual schema before extracting keys.
|
|
1369
|
+
]]
|
|
1048
1370
|
Output (JSON):
|
|
1049
1371
|
One outcome per key, in the order asked, duplicates kept. A successful
|
|
1050
1372
|
entry holds result.toolResponse; an error stays with its key.
|
|
@@ -1063,9 +1385,11 @@ Purpose:
|
|
|
1063
1385
|
When:
|
|
1064
1386
|
Only for a run started with --no-wait that you want to watch. plays run
|
|
1065
1387
|
already waits, and runs get answers "is it done". runs tail is an alias.
|
|
1388
|
+
[[cli:
|
|
1066
1389
|
Input:
|
|
1067
1390
|
The run id. --compact shows step transitions only; --json prints one
|
|
1068
1391
|
terminal package at the end; --jsonl prints events as JSON Lines.
|
|
1392
|
+
]]
|
|
1069
1393
|
Output:
|
|
1070
1394
|
Progress lines as the run changes, then the same package shape as runs get
|
|
1071
1395
|
--json.
|
|
@@ -1080,13 +1404,15 @@ Purpose:
|
|
|
1080
1404
|
When:
|
|
1081
1405
|
A run is stuck, was started by mistake, or was superseded. Runs of the same
|
|
1082
1406
|
play do not cancel each other: an older run keeps working and keeps
|
|
1083
|
-
spending until it ends or is stopped. runs list --play <name> --status
|
|
1084
|
-
running lists them. Completed work is kept and reused by a later run of the
|
|
1407
|
+
spending until it ends or is stopped. [[runs list --play <name> --status
|
|
1408
|
+
running]] lists them. Completed work is kept and reused by a later run of the
|
|
1085
1409
|
same play and input.
|
|
1410
|
+
[[cli:
|
|
1086
1411
|
Input:
|
|
1087
1412
|
The run id and --reason "<text>". --json prints JSON.
|
|
1413
|
+
]]
|
|
1088
1414
|
Output (JSON):
|
|
1089
|
-
The run's new status; cancellation is asynchronous, so poll runs get.
|
|
1415
|
+
The run's new status; cancellation is asynchronous, so poll [[runs get]].
|
|
1090
1416
|
Cost:
|
|
1091
1417
|
Free, but rows already processed were charged.
|
|
1092
1418
|
`
|
|
@@ -1096,9 +1422,11 @@ Cost:
|
|
|
1096
1422
|
Purpose:
|
|
1097
1423
|
Request cancellation of every active run in the workspace.
|
|
1098
1424
|
When:
|
|
1099
|
-
Unjamming a workspace. Do not use it to stop one run; use runs stop.
|
|
1425
|
+
Unjamming a workspace. Do not use it to stop one run; use [[runs stop]].
|
|
1426
|
+
[[cli:
|
|
1100
1427
|
Input:
|
|
1101
1428
|
--reason "<text>". --dry-run lists what would be stopped. --json.
|
|
1429
|
+
]]
|
|
1102
1430
|
Output (JSON):
|
|
1103
1431
|
The runs that were asked to stop.
|
|
1104
1432
|
Cost:
|
|
@@ -1112,11 +1440,13 @@ Purpose:
|
|
|
1112
1440
|
reusing its completed rows.
|
|
1113
1441
|
When:
|
|
1114
1442
|
After fixing the cause of a partial failure. When a failed run is
|
|
1115
|
-
resumable, runs get also prints the exact command under actions.rerunCmd.
|
|
1443
|
+
resumable, [[runs get]] also prints the exact command under actions.rerunCmd.
|
|
1444
|
+
[[cli:
|
|
1116
1445
|
Input:
|
|
1117
1446
|
The run id. --json.
|
|
1447
|
+
]]
|
|
1118
1448
|
Output (JSON):
|
|
1119
|
-
The new run's package, as plays run prints.
|
|
1449
|
+
The new run's package, as [[plays run]] prints.
|
|
1120
1450
|
Cost:
|
|
1121
1451
|
Spends credits only for rows that were not completed before.
|
|
1122
1452
|
`
|
|
@@ -1129,6 +1459,7 @@ Purpose:
|
|
|
1129
1459
|
When:
|
|
1130
1460
|
After publishing a play that runs on a cron or webhook trigger. A trigger
|
|
1131
1461
|
cannot report its own failure, so check that a failed run reaches someone.
|
|
1462
|
+
[[cli:
|
|
1132
1463
|
Input:
|
|
1133
1464
|
notifications list what exists; read it before editing a rule
|
|
1134
1465
|
notifications events the play events a notification can receive;
|
|
@@ -1137,6 +1468,7 @@ Input:
|
|
|
1137
1468
|
find a channel in the connected Slack
|
|
1138
1469
|
notifications add <name> --to slack:#channel --for play.cron.failed
|
|
1139
1470
|
notifications test <name> send a test message
|
|
1471
|
+
]]
|
|
1140
1472
|
Output:
|
|
1141
1473
|
The named notifications with their targets and events; add and test
|
|
1142
1474
|
confirm what changed or was sent.
|
|
@@ -1155,19 +1487,21 @@ Purpose:
|
|
|
1155
1487
|
Inspect a local CSV before running a play over it: headers, fill rates,
|
|
1156
1488
|
sample values, or a row range.
|
|
1157
1489
|
When:
|
|
1158
|
-
Before plays run, to confirm the file has the columns describe requires
|
|
1490
|
+
Before [[plays run]], to confirm the file has the columns describe requires
|
|
1159
1491
|
and to count rows for pricing. Free and local.
|
|
1492
|
+
[[cli:
|
|
1160
1493
|
Input:
|
|
1161
1494
|
<path> (required). --summary prints stats instead of rows. --rows
|
|
1162
1495
|
start:end (inclusive, default 0:19), --columns a,b, --format json|csv|table.
|
|
1496
|
+
]]
|
|
1163
1497
|
Output (JSON):
|
|
1164
|
-
With --summary: total_rows and rows, one per column: {column, present,
|
|
1498
|
+
With [[--summary]]: total_rows and rows, one per column: {column, present,
|
|
1165
1499
|
missing, present_percent, unique, top_values, other_count}. Without it:
|
|
1166
1500
|
the rows in the requested range.
|
|
1167
1501
|
Cost:
|
|
1168
1502
|
Free. No network.
|
|
1169
1503
|
Avoid:
|
|
1170
|
-
Do not use head or wc to inspect a CSV that a play will consume; --summary
|
|
1504
|
+
Do not use head or wc to inspect a CSV that a play will consume; [[--summary]]
|
|
1171
1505
|
gives the row count and column names in one call.
|
|
1172
1506
|
`
|
|
1173
1507
|
},
|
|
@@ -1179,20 +1513,22 @@ Purpose:
|
|
|
1179
1513
|
When:
|
|
1180
1514
|
To read result rows in place (filter, join, count) instead of exporting,
|
|
1181
1515
|
or to write to your own storage.* tables.
|
|
1516
|
+
[[cli:
|
|
1182
1517
|
Input:
|
|
1183
1518
|
--sql "<statement>" or --sql @file.sql (required). --max-rows <n>,
|
|
1184
1519
|
--format table|json|csv|markdown, --out <path> for csv or markdown, --json.
|
|
1185
1520
|
Table names come from runs get: datasets[].storage {schema, table}, for
|
|
1186
1521
|
example "storage"."prebuilt_person_to_phone_batch_phone_rows"; quote both
|
|
1187
1522
|
parts. actions.queryTableSqlCmds[] has a ready query for each dataset.
|
|
1523
|
+
]]
|
|
1188
1524
|
Output (JSON):
|
|
1189
1525
|
command ("SELECT" and so on), rows[] (one object per row), columns[]
|
|
1190
|
-
{name}, row_count, row_count_returned, truncated (true when --max-rows or
|
|
1526
|
+
{name}, row_count, row_count_returned, truncated (true when [[--max-rows]] or
|
|
1191
1527
|
the server bound cut the result), next.
|
|
1192
1528
|
Cost:
|
|
1193
1529
|
Free.
|
|
1194
1530
|
Avoid:
|
|
1195
|
-
Do not guess table names; a run's dataset table is named in runs get
|
|
1531
|
+
Do not guess table names; a run's dataset table is named in [[runs get]]
|
|
1196
1532
|
under datasets[].storage.
|
|
1197
1533
|
`
|
|
1198
1534
|
},
|
|
@@ -1206,6 +1542,7 @@ When:
|
|
|
1206
1542
|
message. After a user-requested feedback report, offer it alongside. When
|
|
1207
1543
|
the upload succeeds, tell the user: "Session sent to Deepline. Rating:
|
|
1208
1544
|
<rating>".
|
|
1545
|
+
[[cli:
|
|
1209
1546
|
Input:
|
|
1210
1547
|
--current-session (the calling agent's session, else the newest one started
|
|
1211
1548
|
in this directory), or --session-id <uuid> (repeatable, each with an
|
|
@@ -1216,6 +1553,7 @@ Input:
|
|
|
1216
1553
|
a product failure, bug, or avoidable friction (including a substantial
|
|
1217
1554
|
workaround) got in the way; neutral when partly met or unclear. A session
|
|
1218
1555
|
that produced a feedback report is usually poor or neutral. --json.
|
|
1556
|
+
]]
|
|
1219
1557
|
Output (JSON):
|
|
1220
1558
|
A confirmation envelope with uploaded and session_ids; the text form names
|
|
1221
1559
|
the session that was uploaded.
|
|
@@ -1226,7 +1564,7 @@ Avoid:
|
|
|
1226
1564
|
In a Cowork sandbox the transcripts are mounted under
|
|
1227
1565
|
~/mnt/.claude/projects: when no session files are found and that directory
|
|
1228
1566
|
exists, link it to ~/.claude/projects and retry, or pass the newest
|
|
1229
|
-
transcript there with --file.
|
|
1567
|
+
transcript there with [[--file]].
|
|
1230
1568
|
`
|
|
1231
1569
|
},
|
|
1232
1570
|
"feedback send": {
|
|
@@ -1236,15 +1574,16 @@ Purpose:
|
|
|
1236
1574
|
agent's session id is attached, so a report can be matched to a transcript.
|
|
1237
1575
|
When:
|
|
1238
1576
|
The user asks to report something: confirm the text with them first, pass
|
|
1239
|
-
--requested, and offer to share the session with sessions send.
|
|
1577
|
+
[[--requested]], and offer to share the session with [[sessions send]].
|
|
1240
1578
|
Unasked, when you see friction Deepline could act on, unless the user
|
|
1241
1579
|
restricts external reporting: a play far slower than its input size,
|
|
1242
1580
|
earlier comparable runs, or visible progress would suggest, or one that
|
|
1243
1581
|
looks stuck; or an ordinary result that took avoidable discovery,
|
|
1244
1582
|
conversion, id extraction, retries, exports, or a manual workaround. Send
|
|
1245
|
-
one concise report per issue, without --requested and without a
|
|
1583
|
+
one concise report per issue, without [[--requested]] and without a
|
|
1246
1584
|
transcript, then keep working on the task. Provider work that is
|
|
1247
1585
|
legitimately long is not friction.
|
|
1586
|
+
[[cli:
|
|
1248
1587
|
Input:
|
|
1249
1588
|
Positional text or --file <path> (- for stdin). --command "<the command
|
|
1250
1589
|
that reproduced it>" and --payload <json or text> attach a repro.
|
|
@@ -1255,6 +1594,7 @@ Input:
|
|
|
1255
1594
|
input size, observed duration, status changes or polling count, and what
|
|
1256
1595
|
you expected. Extra steps: the goal, the command path you took, the
|
|
1257
1596
|
detours, and the direct path you expected.
|
|
1597
|
+
]]
|
|
1258
1598
|
Output (JSON):
|
|
1259
1599
|
A confirmation envelope for the report.
|
|
1260
1600
|
Cost:
|
|
@@ -1269,8 +1609,10 @@ Purpose:
|
|
|
1269
1609
|
When:
|
|
1270
1610
|
Only when asked to install or update skills. To see what is installed
|
|
1271
1611
|
without changing anything, use --dry-run and read the plan.
|
|
1612
|
+
[[cli:
|
|
1272
1613
|
Input:
|
|
1273
1614
|
--scope global|local, --agent <target>, --dry-run, --json.
|
|
1615
|
+
]]
|
|
1274
1616
|
Output (JSON):
|
|
1275
1617
|
The install plan (dry run) or the result envelope listing written and
|
|
1276
1618
|
removed skill directories.
|
|
@@ -1278,7 +1620,7 @@ Cost:
|
|
|
1278
1620
|
Free.
|
|
1279
1621
|
Avoid:
|
|
1280
1622
|
The bare command replaces skill files; in a sandbox or a task that said
|
|
1281
|
-
not to change skills, use --dry-run.
|
|
1623
|
+
not to change skills, use [[--dry-run]].
|
|
1282
1624
|
`
|
|
1283
1625
|
},
|
|
1284
1626
|
update: {
|
|
@@ -1289,8 +1631,10 @@ When:
|
|
|
1289
1631
|
When a command reports the CLI is too old for a feature. Ordinary commands
|
|
1290
1632
|
auto-update in the background unless DEEPLINE_SKIP_SELF_UPDATE=1 is set or
|
|
1291
1633
|
settings autoupdate off was run.
|
|
1634
|
+
[[cli:
|
|
1292
1635
|
Input:
|
|
1293
1636
|
No arguments. --json.
|
|
1637
|
+
]]
|
|
1294
1638
|
Output:
|
|
1295
1639
|
The installed and new versions.
|
|
1296
1640
|
Cost:
|
|
@@ -1306,8 +1650,10 @@ When:
|
|
|
1306
1650
|
When something local is wrong (skills missing, auth file odd). Doctor is
|
|
1307
1651
|
stricter and exits 7
|
|
1308
1652
|
when any check fails, which is common in sandboxes with no skills on disk.
|
|
1653
|
+
[[cli:
|
|
1309
1654
|
Input:
|
|
1310
1655
|
--scope global|local. --json.
|
|
1656
|
+
]]
|
|
1311
1657
|
Output (JSON):
|
|
1312
1658
|
Check results with status and repair hints. Exit 7 means at least one
|
|
1313
1659
|
check failed; the JSON says which.
|
|
@@ -1323,8 +1669,10 @@ Purpose:
|
|
|
1323
1669
|
When:
|
|
1324
1670
|
A person setting up a new machine. Not for unattended shells; it needs a
|
|
1325
1671
|
browser for auth.
|
|
1672
|
+
[[cli:
|
|
1326
1673
|
Input:
|
|
1327
1674
|
Flags for scope and agent target; see the options above.
|
|
1675
|
+
]]
|
|
1328
1676
|
Output:
|
|
1329
1677
|
Progress and the starter prompts.
|
|
1330
1678
|
Cost:
|
|
@@ -1359,13 +1707,10 @@ function renderCommandExplanation(key, detail, options = {}) {
|
|
|
1359
1707
|
const doc = COMMAND_DOCS[key];
|
|
1360
1708
|
if (!doc) return "";
|
|
1361
1709
|
const prefix = key ? `deepline ${key}` : "deepline";
|
|
1362
|
-
const
|
|
1363
|
-
if (detail === "verbose" && doc.verbose) {
|
|
1364
|
-
sections.push(doc.verbose.trim());
|
|
1365
|
-
}
|
|
1710
|
+
const explanation = renderActionExplanation(key, detail, CLI_DOC_SURFACE);
|
|
1366
1711
|
const body = `
|
|
1367
1712
|
Explanation:
|
|
1368
|
-
${indent(
|
|
1713
|
+
${indent(explanation)}
|
|
1369
1714
|
`;
|
|
1370
1715
|
if (options.pointer === false) return body;
|
|
1371
1716
|
const pointer = options.firstRead && doc.verbose ? `Help detail: this first read printed the full explanation; later ${prefix} --help calls in this session print the core section, --help --verbose prints the full explanation again, and --help --quiet omits it.` : detail === "verbose" || !doc.verbose ? `Help detail: ${prefix} --help --quiet omits this explanation.` : `Help detail: ${prefix} --help --verbose adds output field references and edge cases; --help --quiet omits this explanation.`;
|
|
@@ -1373,6 +1718,29 @@ ${indent(sections.join("\n\n"))}
|
|
|
1373
1718
|
${pointer}
|
|
1374
1719
|
`;
|
|
1375
1720
|
}
|
|
1721
|
+
var CLI_DOC_SURFACE = {
|
|
1722
|
+
name: "cli",
|
|
1723
|
+
reference: (reference) => reference
|
|
1724
|
+
};
|
|
1725
|
+
var SURFACE_LINES = /^\[\[(cli|mcp):\n([\s\S]*?)\n\]\](\n|$)/gm;
|
|
1726
|
+
var SURFACE_TEXT_OR_REFERENCE = /\[\[(?:(cli|mcp):)?([\s\S]*?)\]\]/g;
|
|
1727
|
+
function renderDocText(text, surface) {
|
|
1728
|
+
const only = (name, body) => name === surface.name ? body : "";
|
|
1729
|
+
return text.replace(
|
|
1730
|
+
SURFACE_LINES,
|
|
1731
|
+
(_, name, body, end) => only(name, body + end)
|
|
1732
|
+
).replace(
|
|
1733
|
+
SURFACE_TEXT_OR_REFERENCE,
|
|
1734
|
+
(_, name, body) => name === void 0 ? surface.reference(body) : only(name, body)
|
|
1735
|
+
);
|
|
1736
|
+
}
|
|
1737
|
+
function renderActionExplanation(key, detail, surface) {
|
|
1738
|
+
const doc = COMMAND_DOCS[key];
|
|
1739
|
+
if (!doc) return "";
|
|
1740
|
+
const sections = [doc.core.trim()];
|
|
1741
|
+
if (detail === "verbose" && doc.verbose) sections.push(doc.verbose.trim());
|
|
1742
|
+
return renderDocText(sections.join("\n\n"), surface);
|
|
1743
|
+
}
|
|
1376
1744
|
function indent(text) {
|
|
1377
1745
|
return text.split("\n").map((line) => line.length > 0 ? ` ${line}` : line).join("\n");
|
|
1378
1746
|
}
|
|
@@ -1382,4 +1750,7 @@ function indent(text) {
|
|
|
1382
1750
|
|
|
1383
1751
|
|
|
1384
1752
|
|
|
1385
|
-
|
|
1753
|
+
|
|
1754
|
+
|
|
1755
|
+
|
|
1756
|
+
exports.COMMAND_DOCS = COMMAND_DOCS; exports.commandDocKey = commandDocKey; exports.helpDetailFromArgv = helpDetailFromArgv; exports.renderCommandExplanation = renderCommandExplanation; exports.CLI_DOC_SURFACE = CLI_DOC_SURFACE; exports.renderDocText = renderDocText; exports.renderActionExplanation = renderActionExplanation;
|