deepline 0.3.421 → 0.3.423
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/client.ts +2 -2
- package/dist/bundling-sources/sdk/src/index.ts +2 -0
- package/dist/bundling-sources/sdk/src/play.ts +227 -184
- package/dist/bundling-sources/sdk/src/plays/local-file-discovery.ts +9 -2
- package/dist/bundling-sources/sdk/src/plays/local-play-execution.ts +1 -1
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/sdk/src/tool-calls.ts +3 -1
- package/dist/bundling-sources/sdk/src/types.ts +5 -5
- package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +6 -6
- package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +37 -36
- package/dist/bundling-sources/shared_libs/plays/bundling/index.ts +179 -38
- package/dist/bundling-sources/shared_libs/plays/dataset.ts +2 -2
- package/dist/bundling-sources/shared_libs/plays/docflow.ts +4 -0
- package/dist/bundling-sources/shared_libs/plays/fetch-http-error.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/local-file-discovery.ts +12 -4
- package/dist/bundling-sources/shared_libs/plays/play-exports.ts +27 -5
- package/dist/bundling-sources/shared_libs/plays/script-entry.ts +992 -0
- package/dist/bundling-sources/shared_libs/plays/source-authoring-edition.ts +63 -0
- package/dist/bundling-sources/shared_libs/plays/tool-result-types.ts +8 -4
- package/dist/bundling-sources/shared_libs/plays/ts-ast.ts +2 -0
- package/dist/cli/{auth-56JTC4Q7.mjs → auth-L7Q53QKK.mjs} +4 -4
- package/dist/cli/auth-SUNY477Y.js +40 -0
- package/dist/cli/{billing-ZXOOZEUW.mjs → billing-IH7AKDR2.mjs} +4 -4
- package/dist/cli/{billing-C5LR6FA7.js → billing-QNP6YGI2.js} +73 -73
- package/dist/cli/{chunk-AARWVK4C.mjs → chunk-2BQUML3X.mjs} +792 -69
- package/dist/cli/{chunk-7SRVIWGT.js → chunk-2F5ULM2F.js} +1 -1
- package/dist/cli/{chunk-HP5FD2LI.js → chunk-2U3AMRHF.js} +8 -8
- package/dist/cli/{chunk-ERFN2QY4.mjs → chunk-3DNKFH2G.mjs} +1 -1
- package/dist/cli/{chunk-5F6W5NWV.mjs → chunk-44US3EL2.mjs} +5 -5
- package/dist/cli/{chunk-6UKY4LBW.js → chunk-4WT5RISA.js} +20 -20
- package/dist/cli/{chunk-QJV2ALPN.js → chunk-5DGR3TB6.js} +2 -2
- package/dist/cli/{chunk-UCI4QROZ.mjs → chunk-6FFORGD2.mjs} +2 -2
- package/dist/cli/{chunk-ZSVWCV3G.mjs → chunk-ARTGL3FM.mjs} +1 -1
- package/dist/cli/{chunk-FB5H5OOH.js → chunk-AVOBDFQ5.js} +11 -11
- package/dist/cli/{chunk-2WOVAVJ3.js → chunk-DRK6FYJU.js} +26 -26
- package/dist/cli/{chunk-63ILLN5H.mjs → chunk-DS7Y7X26.mjs} +2 -2
- package/dist/cli/{chunk-CTNA5QY2.mjs → chunk-EER67G2B.mjs} +43 -28
- package/dist/cli/{chunk-GIJ47TAV.js → chunk-EWWWOKX2.js} +6 -6
- package/dist/cli/{chunk-5E55HHW3.mjs → chunk-FJRFSBWO.mjs} +4 -4
- package/dist/cli/{chunk-27GJKC5Q.js → chunk-GXOQRZXG.js} +2 -2
- package/dist/cli/{chunk-RURYN2BE.mjs → chunk-H662SHPT.mjs} +28 -27
- package/dist/cli/{chunk-PKBPSMOT.js → chunk-INFLI36H.js} +43 -28
- package/dist/cli/{chunk-RJLFCJ23.mjs → chunk-IW5QK3K6.mjs} +3 -3
- package/dist/cli/{chunk-SPLOMS4N.mjs → chunk-JDAXVQV7.mjs} +1 -1
- package/dist/cli/{chunk-4PG4ARL2.mjs → chunk-KPKU53YO.mjs} +1 -1
- package/dist/cli/{chunk-IMZ56EOH.mjs → chunk-LXTSVUZN.mjs} +2 -2
- package/dist/cli/{chunk-F4V4JJED.mjs → chunk-MHG3NND4.mjs} +3 -3
- package/dist/cli/{chunk-IHG7UAHD.mjs → chunk-MLJBCS3E.mjs} +32 -13
- package/dist/cli/{chunk-5KYK4DGY.js → chunk-MMI2DXCW.js} +8 -8
- package/dist/cli/{chunk-VEYAPBS4.js → chunk-NA6SGG7X.js} +260 -259
- package/dist/cli/{chunk-AZGJNNNE.mjs → chunk-NFIZ5YED.mjs} +2 -2
- package/dist/cli/{chunk-WR4M5VWK.js → chunk-OMWO2JLC.js} +52 -52
- package/dist/cli/{chunk-EKQH4IUU.mjs → chunk-OPI7UCQG.mjs} +1 -1
- package/dist/cli/{chunk-2XKDLS5P.js → chunk-OZLMMMZH.js} +6 -6
- package/dist/cli/{chunk-ZLPT2RZ5.mjs → chunk-PH4BP6KM.mjs} +2 -2
- package/dist/cli/{chunk-NSJRLP7R.js → chunk-PQ4G6MKI.js} +16 -16
- package/dist/cli/{chunk-4NS4EZHN.mjs → chunk-QN6DG4JO.mjs} +2 -2
- package/dist/cli/{chunk-VC3E5HFO.mjs → chunk-QWJJMQNE.mjs} +1 -1
- package/dist/cli/{chunk-GEJDBXXM.js → chunk-QWRHGGUH.js} +1 -1
- package/dist/cli/{chunk-AD47BXN2.js → chunk-R2QWSSAG.js} +8 -8
- package/dist/cli/{chunk-JJQLBZEW.js → chunk-RAL75ND3.js} +2 -2
- package/dist/cli/{chunk-QADCFSGH.js → chunk-RDIN3NKA.js} +17 -17
- package/dist/cli/{chunk-7TSF7E3B.mjs → chunk-S6KG7JCR.mjs} +2 -2
- package/dist/cli/{chunk-BQR6UN3C.js → chunk-VUYUI35Q.js} +32 -13
- package/dist/cli/{chunk-C25ZYL6U.js → chunk-W42SSVM7.js} +4 -4
- package/dist/cli/{chunk-ZZBXD5VX.js → chunk-WJO7KIFT.js} +50 -50
- package/dist/cli/{chunk-VYLZS7X4.mjs → chunk-XSERB7H2.mjs} +1 -1
- package/dist/cli/{chunk-4I26IVFC.js → chunk-YCHR57TD.js} +35 -35
- package/dist/cli/{chunk-OQQOXSYA.js → chunk-YHRS6XTB.js} +845 -122
- package/dist/cli/{chunk-ZOL3CIKN.mjs → chunk-YNT7PJND.mjs} +3 -3
- package/dist/cli/command-docs.js +2 -2
- package/dist/cli/command-docs.mjs +1 -1
- package/dist/cli/{csv-EJ4QRLA2.mjs → csv-5KW7M6ZS.mjs} +3 -3
- package/dist/cli/{csv-G6H3U4XV.js → csv-GF7VRES5.js} +12 -12
- package/dist/cli/{db-WKQFXUWI.js → db-AEDXKB4F.js} +26 -26
- package/dist/cli/{db-PBIIALJ5.mjs → db-NN4JQAC4.mjs} +5 -5
- package/dist/cli/{describe-ZCU36ES2.js → describe-5RLXW332.js} +24 -24
- package/dist/cli/{describe-DMRK4UNO.mjs → describe-RX6VROHQ.mjs} +16 -16
- package/dist/cli/describe-core.d.mts +2 -2
- package/dist/cli/describe-core.d.ts +2 -2
- package/dist/cli/describe-core.js +4 -4
- package/dist/cli/describe-core.mjs +3 -3
- package/dist/cli/{executions-JAHW6GMA.mjs → executions-EJZ34VUB.mjs} +4 -4
- package/dist/cli/{executions-SBA3UYMH.js → executions-PGIGFDDS.js} +6 -6
- package/dist/cli/{feedback-PKBUYHMD.mjs → feedback-6MWOKE7H.mjs} +3 -3
- package/dist/cli/{feedback-QAE4V2NY.js → feedback-L2ODMANV.js} +7 -7
- package/dist/cli/git-2ZDCRTBD.js +24 -0
- package/dist/cli/{git-GAO3SJAQ.mjs → git-456RF3AT.mjs} +4 -4
- package/dist/cli/index.js +135 -135
- package/dist/cli/index.mjs +37 -37
- package/dist/cli/{legacy-noops-JCMVW5BL.js → legacy-noops-MDPB3MIS.js} +7 -7
- package/dist/cli/{legacy-noops-5PY2ZZF3.mjs → legacy-noops-ZPRBXQDE.mjs} +4 -4
- package/dist/cli/{monitors-YPS4LPDG.js → monitors-TXKR5XYW.js} +86 -86
- package/dist/cli/{monitors-GVYAZRMB.mjs → monitors-ZLP6A7FT.mjs} +6 -6
- package/dist/cli/{org-OBVAU6K7.js → org-73SQ3AT2.js} +64 -64
- package/dist/cli/{org-R7AKPKUB.mjs → org-YZ62BIGM.mjs} +4 -4
- package/dist/cli/{play-MTHQQHR6.js → play-M75EBXEV.js} +606 -567
- package/dist/cli/{play-3LFM2SV2.mjs → play-VCYQKCKF.mjs} +113 -74
- package/dist/cli/{providers-CTIROUI3.js → providers-GIINJPWQ.js} +7 -7
- package/dist/cli/{providers-IRICPDKU.mjs → providers-JLA6LST3.mjs} +4 -4
- package/dist/cli/{quickstart-5FBQVZ5B.mjs → quickstart-AHCU75GG.mjs} +3 -3
- package/dist/cli/{quickstart-OZDVFNF2.js → quickstart-HHHLYCHT.js} +5 -5
- package/dist/cli/{search-FYM47QFU.mjs → search-5GACUIAX.mjs} +5 -5
- package/dist/cli/search-W2PGBXQO.js +30 -0
- package/dist/cli/{secrets-43GJUDAE.js → secrets-PI7IPCOE.js} +13 -13
- package/dist/cli/{secrets-ENBXU3O3.mjs → secrets-S2NBKAEN.mjs} +4 -4
- package/dist/cli/{sessions-RXX5IHG6.js → sessions-BK4CSRFS.js} +5 -5
- package/dist/cli/{sessions-7IQJOH5Z.mjs → sessions-IBKYGTBD.mjs} +4 -4
- package/dist/cli/{settings-Z2CWWV7P.js → settings-2G7TUDM7.js} +75 -75
- package/dist/cli/{settings-EZGDTS3K.mjs → settings-JY6UN4KO.mjs} +8 -8
- package/dist/cli/{setup-N5UMUBBV.mjs → setup-HS5X3OSN.mjs} +7 -7
- package/dist/cli/{setup-2ON3TUXP.js → setup-R424FIBF.js} +42 -42
- package/dist/cli/skills-M3RZAN4A.js +29 -0
- package/dist/cli/{skills-4MR2Z2M5.mjs → skills-UIBUDTGN.mjs} +5 -5
- package/dist/cli/tools-K2GII2PA.js +44 -0
- package/dist/cli/{tools-MCEIWE3I.mjs → tools-SB4FREB6.mjs} +15 -15
- package/dist/cli/update-C2ORJRXN.js +31 -0
- package/dist/cli/{update-2JDBGLTX.mjs → update-NJSUE2YU.mjs} +7 -7
- package/dist/cli/{workflow-7DNBY4WJ.js → workflow-3AZWZ4J3.js} +19 -19
- package/dist/cli/{workflow-7UDXYU5Y.mjs → workflow-HBG76XYX.mjs} +9 -9
- package/dist/{client-CCWIUnk7.d.mts → client-BTUOYGID.d.mts} +10 -9
- package/dist/{client-vHqBm-OL.d.ts → client-C668iUhZ.d.ts} +10 -9
- package/dist/{compiler-manifest-lzWpbV3w.d.ts → compiler-manifest-DaFuA1ki.d.mts} +35 -32
- package/dist/{compiler-manifest-lzWpbV3w.d.mts → compiler-manifest-DaFuA1ki.d.ts} +35 -32
- package/dist/{index-CtNK-0nI.d.mts → index-0yS9ihly.d.mts} +10 -3
- package/dist/{index-C8Cy-YTm.d.ts → index-CRAScKPg.d.ts} +10 -3
- package/dist/index.d.mts +120 -150
- package/dist/index.d.ts +120 -150
- package/dist/index.js +77 -12
- package/dist/index.mjs +74 -9
- package/dist/install-integrity.json +99 -98
- package/dist/plays/bundle-play-file.d.mts +3 -3
- package/dist/plays/bundle-play-file.d.ts +3 -3
- package/dist/plays/bundle-play-file.mjs +1 -1
- package/dist/plays/play-description.d.mts +2 -2
- package/dist/plays/play-description.d.ts +2 -2
- package/dist/plays/run-request.d.mts +2 -2
- package/dist/plays/run-request.d.ts +2 -2
- 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-ZQMAF7W5.js +0 -40
- package/dist/cli/git-54INNT33.js +0 -24
- package/dist/cli/search-XIKHDZJ3.js +0 -30
- package/dist/cli/skills-2WIHNEOS.js +0 -29
- package/dist/cli/tools-YUUSOKYX.js +0 -44
- package/dist/cli/update-PWX4MJ3R.js +0 -31
|
@@ -647,7 +647,19 @@ Writing a play:
|
|
|
647
647
|
plays check my.play.ts validate after every edit; free
|
|
648
648
|
plays run my.play.ts --input '{...}' run the local file
|
|
649
649
|
plays publish my.play.ts make it live for plays run <name> and triggers
|
|
650
|
-
|
|
650
|
+
plays run -e "<code>" run code inline as a play function's body
|
|
651
|
+
(input holds --input), like python -c
|
|
652
|
+
A play is a default-exported async function of its input; the file name
|
|
653
|
+
is its default name:
|
|
654
|
+
import deepline from 'deepline';
|
|
655
|
+
export default async function (input: { domain: string }) {
|
|
656
|
+
const company = await deepline.tools.execute({ id, tool, input, description });
|
|
657
|
+
return { company };
|
|
658
|
+
}
|
|
659
|
+
The parameter's type is the input contract; the returned object is the
|
|
660
|
+
result.
|
|
661
|
+
An optional export const config = { name, description, cron, webhook,
|
|
662
|
+
runtime }; at the top of the file sets the name, triggers and runtime.
|
|
651
663
|
--help --verbose lists the authoring rules.
|
|
652
664
|
Auditing plays:
|
|
653
665
|
plays list every saved play
|
|
@@ -672,7 +684,8 @@ Writing a play:
|
|
|
672
684
|
deepline_run_inline_play run it without publishing; CSV data files go
|
|
673
685
|
in files, named by input_file_path
|
|
674
686
|
deepline_publish_play make it live for deepline_run_play and triggers
|
|
675
|
-
|
|
687
|
+
A play default-exports an async function of its input; it calls
|
|
688
|
+
deepline.tools.execute and returns { ... }.
|
|
676
689
|
deepline_help with command "plays" and detail "verbose" lists the
|
|
677
690
|
authoring rules.
|
|
678
691
|
Auditing plays:
|
|
@@ -686,58 +699,60 @@ Cost:
|
|
|
686
699
|
`,
|
|
687
700
|
verbose: `
|
|
688
701
|
Authoring rules:
|
|
689
|
-
Reach the outside world only through
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
Math.random goes inside
|
|
702
|
+
Reach the outside world only through deepline: deepline.csv,
|
|
703
|
+
deepline.dataset, deepline.tools.execute, deepline.runPlay, deepline.step,
|
|
704
|
+
deepline.fetch, deepline.secrets, deepline.customerDb, and deepline.log.
|
|
705
|
+
No fs, raw fetch, or shell commands, also not inside deepline.step. Local
|
|
706
|
+
nondeterministic work such as Date.now or Math.random goes inside
|
|
707
|
+
deepline.step. Call deepline.* only in the play file; pass it to helpers.
|
|
694
708
|
A run can be interrupted and replayed from the top; every finished step
|
|
695
709
|
and tool call then returns its saved result. So the play name, each
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
Rows:
|
|
699
|
-
.run({ key: 'domain' }). Use a business identifier as the row key. Put
|
|
710
|
+
dataset key, step id, fetch key, and tools.execute id is a fixed string
|
|
711
|
+
literal, and renaming one pays for that work again.
|
|
712
|
+
Rows: deepline.dataset('key', rows).withColumn('name', (row) => ...)
|
|
713
|
+
.run({ key: 'domain' }); call deepline.* inside the column too. Use a business identifier as the row key. Put
|
|
700
714
|
one paid call in a column, and shaping, status, and miss_reason in
|
|
701
715
|
separate plain columns after it. Return the dataset for anything that
|
|
702
716
|
should export as CSV.
|
|
703
717
|
Dataset handles are async: await rows.count(), rows.first(),
|
|
704
718
|
rows.peek(n), rows.materialize(n), or for await. Array methods on a
|
|
705
719
|
handle fail [[cli:plays check]][[mcp:deepline_check_play]].
|
|
706
|
-
Tool calls:
|
|
720
|
+
Tool calls: deepline.tools.execute({ id, tool, input, description,
|
|
707
721
|
staleAfterSeconds }). In authoring edition 11, choose freshness explicitly:
|
|
708
722
|
0 for fresh logical work, a positive integer for the maximum reusable
|
|
709
723
|
result age in seconds, or null for indefinite result reuse. A matching
|
|
710
724
|
completed operation receipt can still recover that operation after resume.
|
|
711
|
-
Read
|
|
712
|
-
results through the getters [[cli:describe]][[mcp:deepline_describe_tool]] lists:
|
|
725
|
+
Read results through the getters [[cli:describe]][[mcp:deepline_describe_tool]] lists:
|
|
713
726
|
result.extractedValues.<name>.get() and
|
|
714
727
|
result.extractedLists.<name>.get(). A field with no getter is under
|
|
715
728
|
result.toolResponse.rawV2 with the provider's nesting kept.
|
|
716
|
-
|
|
717
|
-
|
|
729
|
+
Reuse before rebuilding: deepline.runPlay(key, 'prebuilt/<name>', input,
|
|
730
|
+
{ description }) runs a
|
|
718
731
|
prebuilt as one stage. Independent calls run together with Promise.all;
|
|
719
732
|
a call that needs another's result waits for it.
|
|
720
733
|
Failures: catch only ProviderTransientError, and only when another
|
|
721
734
|
provider can answer the same question. Keep the last provider outside
|
|
722
735
|
the catch so an exhausted waterfall fails loudly. Never branch on an
|
|
723
736
|
error message.
|
|
724
|
-
External APIs:
|
|
725
|
-
|
|
726
|
-
secrets set]]. res.json is a property, not a method; check
|
|
727
|
-
cannot loop
|
|
737
|
+
External APIs: deepline.fetch with a fixed key, and credentials through
|
|
738
|
+
deepline.secrets.bearer(...) or deepline.secrets.header(...)[[cli:, stored
|
|
739
|
+
with deepline secrets set]]. res.json is a property, not a method; check
|
|
740
|
+
res.ok. A play cannot loop deepline.fetch over pages: fan out over rows
|
|
741
|
+
with deepline.dataset, or
|
|
728
742
|
call one endpoint that returns the whole result.
|
|
729
|
-
Triggers:
|
|
730
|
-
|
|
743
|
+
Triggers: export const config = { cron: { schedule, timezone, input } };
|
|
744
|
+
or { webhook: {} }. A cron run receives {} unless cron.input is written
|
|
745
|
+
inline; it is pinned with the published revision.
|
|
731
746
|
Runtime: The default Play runtime is 30 minutes. For a bounded long batch
|
|
732
|
-
set
|
|
733
|
-
4h. That is not the CLI wait timeout.
|
|
747
|
+
set export const config = { runtime: { timeout: '90m', size: 'standard' } };
|
|
748
|
+
up to 4h. That is not the CLI wait timeout.
|
|
734
749
|
Recurring sourcing: .run({ key: 'domain', mode: 'net_new' }) returns only
|
|
735
750
|
rows the table has not seen before.
|
|
736
751
|
Results: project each answer into flat columns (the value, its source,
|
|
737
752
|
whether it was validated, the outcome, the reason) and keep evidence
|
|
738
753
|
under _dl_meta, including result._metadata.execution.receiptKey. Unknown
|
|
739
754
|
stays null, not false.
|
|
740
|
-
Diagram: a /** @mermaid
|
|
755
|
+
Diagram: a /** @mermaid */ block at the top of the play draws it in the
|
|
741
756
|
dashboard, with // @mermaid-node <id> out:"<identifier>" above the
|
|
742
757
|
statement each box stands for. [[cli:plays check]][[mcp:deepline_check_play]] validates it.
|
|
743
758
|
`
|
|
@@ -1087,7 +1102,7 @@ Cost:
|
|
|
1087
1102
|
core: `
|
|
1088
1103
|
Purpose:
|
|
1089
1104
|
Make one version of a play live, so [[plays run <name>]], triggers, and
|
|
1090
|
-
|
|
1105
|
+
deepline.runPlay callers use it.[[cli: A local .play.ts file is bundled, validated,
|
|
1091
1106
|
saved as a revision, and promoted in one step; a saved play promotes one
|
|
1092
1107
|
of its existing revisions.]][[mcp: It promotes one of a saved play's existing
|
|
1093
1108
|
revisions; deepline_publish_play saves and promotes a new file graph.]]
|
|
@@ -1118,7 +1133,7 @@ Avoid:
|
|
|
1118
1133
|
core: `
|
|
1119
1134
|
Purpose:
|
|
1120
1135
|
Publish [[cli:a local .play.ts file]][[mcp:an inline .play.ts file graph]] or promote a saved revision, so [[plays run
|
|
1121
|
-
<name>]], triggers, and
|
|
1136
|
+
<name>]], triggers, and deepline.runPlay callers use it. The same operation as
|
|
1122
1137
|
[[plays set-live]].
|
|
1123
1138
|
When:
|
|
1124
1139
|
Once a play [[cli:run by file path]][[mcp:run inline]] gives the right result. Running [[cli:a local file]][[mcp:a play inline]]
|
|
@@ -1255,7 +1270,7 @@ Debugging a run:
|
|
|
1255
1270
|
last event, then [[runs logs <run-id>]][[cli: --failed]] for the failure window, then
|
|
1256
1271
|
[[cli:runs watch <run-id>]][[mcp:deepline_get_run again]] to follow it if it is still active. A run can go quiet
|
|
1257
1272
|
for minutes while it waits on a slow provider (Apify actors, large company
|
|
1258
|
-
searches), an intentional
|
|
1273
|
+
searches), an intentional deepline.sleep, or a rate-limit backoff; that is
|
|
1259
1274
|
healthy. Stop it only after about ten minutes without progress on a fast
|
|
1260
1275
|
tool.
|
|
1261
1276
|
`
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkW42SSVM7js = require('./chunk-W42SSVM7.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
@@ -288,8 +288,8 @@ var BROWSER_OPEN_COOLDOWN_MS = 3e4;
|
|
|
288
288
|
var SAME_URL_BROWSER_OPEN_COOLDOWN_MS = 5 * 6e4;
|
|
289
289
|
var defaultBrowserCommandRunner = childProcess;
|
|
290
290
|
function getAuthedHttpClient() {
|
|
291
|
-
const config =
|
|
292
|
-
return { config, http: new (0,
|
|
291
|
+
const config = _chunkW42SSVM7js.resolveConfig.call(void 0, );
|
|
292
|
+
return { config, http: new (0, _chunkW42SSVM7js.HttpClient)(config) };
|
|
293
293
|
}
|
|
294
294
|
function stableOsUserId() {
|
|
295
295
|
try {
|
|
@@ -629,7 +629,7 @@ function collectLocalEnvInfo() {
|
|
|
629
629
|
os: `${process.platform} ${process.arch}`,
|
|
630
630
|
node_version: process.version,
|
|
631
631
|
home_dir: homeDir,
|
|
632
|
-
agent_runtime:
|
|
632
|
+
agent_runtime: _chunkW42SSVM7js.detectAgentRuntime.call(void 0, )
|
|
633
633
|
};
|
|
634
634
|
const env = process.env;
|
|
635
635
|
const optional = {
|
|
@@ -876,9 +876,9 @@ function markdownTableFromRows(rows, preferredColumns = []) {
|
|
|
876
876
|
}
|
|
877
877
|
function withAgentCommandContext(value) {
|
|
878
878
|
const valueRecord = value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
879
|
-
return
|
|
879
|
+
return _chunkW42SSVM7js.detectAgentRuntime.call(void 0, ) !== "unknown" && valueRecord && !Object.prototype.hasOwnProperty.call(valueRecord, "command_context") ? {
|
|
880
880
|
...valueRecord,
|
|
881
|
-
command_context:
|
|
881
|
+
command_context: _chunkW42SSVM7js.resolveCliCommandContext.call(void 0, )
|
|
882
882
|
} : value;
|
|
883
883
|
}
|
|
884
884
|
function printJson(value, fields) {
|
|
@@ -4,18 +4,18 @@ import {
|
|
|
4
4
|
resolveUpdatePlan,
|
|
5
5
|
runAutomaticUpdatePlan,
|
|
6
6
|
shouldRunCliAutoUpdate
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-44US3EL2.mjs";
|
|
8
8
|
import {
|
|
9
9
|
isCiEnvironment
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-IW5QK3K6.mjs";
|
|
11
11
|
import {
|
|
12
12
|
addJsonNotice,
|
|
13
13
|
isJsonOutputMode
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-QWJJMQNE.mjs";
|
|
15
15
|
import {
|
|
16
16
|
SDK_VERSION,
|
|
17
17
|
resolveApiKeyForBaseUrl
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-XSERB7H2.mjs";
|
|
19
19
|
|
|
20
20
|
// src/cli/compatibility-catalog.ts
|
|
21
21
|
var readers = /* @__PURE__ */ new WeakMap();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkVUYUI35Qjs = require('./chunk-VUYUI35Q.js');
|
|
4
4
|
|
|
5
5
|
// src/cli/describe-options.ts
|
|
6
6
|
function addDescribeOptions(command, options = {}) {
|
|
@@ -18,7 +18,7 @@ function addDescribeOptions(command, options = {}) {
|
|
|
18
18
|
"Show only the in-play example, and explain how it takes inputs and returns outputs"
|
|
19
19
|
).option("--no-example", "Hide the run examples").option(
|
|
20
20
|
"--full-schema",
|
|
21
|
-
`Print every field: a long schema unfolded (over ${
|
|
21
|
+
`Print every field: a long schema unfolded (over ${_chunkVUYUI35Qjs.SCHEMA_LINE_LIMIT} lines), list rows, and a tool's raw response`
|
|
22
22
|
).option(
|
|
23
23
|
"--fields <names>",
|
|
24
24
|
"Show only these fields, comma-separated, plus every required input"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
addDescribeOptions,
|
|
3
3
|
recordApiResponse
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KPKU53YO.mjs";
|
|
5
5
|
import {
|
|
6
6
|
recentSearchRef,
|
|
7
7
|
registerDeprecatedSearchCommand
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YNT7PJND.mjs";
|
|
9
9
|
import {
|
|
10
10
|
arrayField,
|
|
11
11
|
formatModelDescription,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
toolInputFieldsForDisplay,
|
|
25
25
|
toolMetadataJsonForDescribe,
|
|
26
26
|
toolOutputFieldsForDisplay
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-LXTSVUZN.mjs";
|
|
28
28
|
import {
|
|
29
29
|
shellQuote
|
|
30
30
|
} from "./chunk-OVDNJAJN.mjs";
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
import {
|
|
46
46
|
DeeplineClient,
|
|
47
47
|
validateExecutionIdempotencyKey
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-6FFORGD2.mjs";
|
|
49
49
|
import {
|
|
50
50
|
stableStringify
|
|
51
51
|
} from "./chunk-UBKA33KY.mjs";
|
|
@@ -55,18 +55,18 @@ import {
|
|
|
55
55
|
maybeAutoUpdateAndRelaunch,
|
|
56
56
|
registerCompatibilityCatalog,
|
|
57
57
|
runToolExecuteStage
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-FJRFSBWO.mjs";
|
|
59
59
|
import {
|
|
60
60
|
isCliTraceEnabled,
|
|
61
61
|
recordCliTrace,
|
|
62
62
|
resolveCliMaintenancePolicy
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-OPI7UCQG.mjs";
|
|
64
64
|
import {
|
|
65
65
|
checkSdkCompatibility,
|
|
66
66
|
enforceSdkCompatibilityResponse,
|
|
67
67
|
flushDeferredSkillsSyncNotices,
|
|
68
68
|
syncSdkSkillsIfNeeded
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-IW5QK3K6.mjs";
|
|
70
70
|
import {
|
|
71
71
|
printCommandEnvelope,
|
|
72
72
|
printCompactJson,
|
|
@@ -74,12 +74,12 @@ import {
|
|
|
74
74
|
printJsonError,
|
|
75
75
|
renderCommandEnvelopeText,
|
|
76
76
|
shouldEmitJson
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-QWJJMQNE.mjs";
|
|
78
78
|
import {
|
|
79
79
|
readSdkSkillsLocalVersion,
|
|
80
80
|
resolveConfig,
|
|
81
81
|
sdkCliStateDirPath
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-XSERB7H2.mjs";
|
|
83
83
|
import {
|
|
84
84
|
DeeplineError
|
|
85
85
|
} from "./chunk-E4IXDAZI.mjs";
|
|
@@ -878,7 +878,7 @@ Examples:
|
|
|
878
878
|
Notes:
|
|
879
879
|
Shows the compact agent contract by default: what the tool does, cost,
|
|
880
880
|
required inputs, play getters, input and full Deepline response examples,
|
|
881
|
-
and a
|
|
881
|
+
and a deepline.tools.execute snippet. Tool responses live at toolResponse.rawV2;
|
|
882
882
|
preserve the nesting shown in the tool's example. Schemas and examples are
|
|
883
883
|
separate describe fields.
|
|
884
884
|
get is accepted as a compatibility alias for describe.
|
|
@@ -936,7 +936,7 @@ Examples:
|
|
|
936
936
|
process.exitCode = await narrowView();
|
|
937
937
|
return;
|
|
938
938
|
}
|
|
939
|
-
const { describeAnything } = await import("./describe-
|
|
939
|
+
const { describeAnything } = await import("./describe-RX6VROHQ.mjs");
|
|
940
940
|
process.exitCode = await describeAnything(
|
|
941
941
|
toolId,
|
|
942
942
|
{
|
|
@@ -1576,7 +1576,7 @@ function printToolExamplesOnly(tool, requestedToolId) {
|
|
|
1576
1576
|
console.log(JSON.stringify(sampleInput, null, 2));
|
|
1577
1577
|
console.log(`Use in a play:`);
|
|
1578
1578
|
console.log("```ts");
|
|
1579
|
-
console.log("const result = await
|
|
1579
|
+
console.log("const result = await deepline.tools.execute({");
|
|
1580
1580
|
console.log(" staleAfterSeconds: 0,");
|
|
1581
1581
|
console.log(` id: '${stableStepIdForTool(toolId)}',`);
|
|
1582
1582
|
console.log(` tool: '${toolId}',`);
|
|
@@ -1690,12 +1690,12 @@ function printToolGettersOnly(tool, requestedToolId) {
|
|
|
1690
1690
|
function printListGetterConsumption() {
|
|
1691
1691
|
if (playToolListGetterMode() === "array") {
|
|
1692
1692
|
console.log(
|
|
1693
|
-
"Use the ordinary array directly, or pass it to
|
|
1693
|
+
"Use the ordinary array directly, or pass it to deepline.dataset to persist row work. No provider pagination is fetched. Lazy or incomplete lists throw; use readList for an explicit dataset read. A missing getter is not an empty list."
|
|
1694
1694
|
);
|
|
1695
1695
|
return;
|
|
1696
1696
|
}
|
|
1697
1697
|
console.log(
|
|
1698
|
-
"Pass the handle to
|
|
1698
|
+
"Pass the handle to deepline.dataset, use first() for one row, or for await...of to stream rows. materialize() loads the complete current list within the memory cap; materialize(n) and peek(n) return only a prefix. None fetch additional provider pagination. A missing getter is not an empty list."
|
|
1699
1699
|
);
|
|
1700
1700
|
}
|
|
1701
1701
|
function listGetterHeading() {
|
|
@@ -2094,19 +2094,22 @@ function powerShellQuote(value) {
|
|
|
2094
2094
|
}
|
|
2095
2095
|
function seedToolListScript(input) {
|
|
2096
2096
|
const stem = safeFileStem(input.toolId);
|
|
2097
|
-
const fileName = `${stem}-workflow
|
|
2097
|
+
const fileName = `${stem}-workflow.play.ts`;
|
|
2098
2098
|
const scriptDir = mkdtempSync(join2(tmpdir(), "deepline-workflow-seed-"));
|
|
2099
2099
|
chmodSync(scriptDir, 448);
|
|
2100
2100
|
const scriptPath = join2(scriptDir, fileName);
|
|
2101
2101
|
const projectDir = `deepline/projects/${stem}-workflow`;
|
|
2102
|
-
const playName = `${stem}-workflow`;
|
|
2103
2102
|
const sampleRows = input.rows.length > 0 ? `${JSON.stringify(input.rows.slice(0, 2)).replace(/\]$/, "")}, ...]` : "[]";
|
|
2104
2103
|
const columns = Object.keys(input.rows[0] ?? {}).join(", ");
|
|
2105
2104
|
const rowKey = Object.prototype.hasOwnProperty.call(input.rows[0] ?? {}, "id") ? '"id"' : "(row) => JSON.stringify(row)";
|
|
2106
|
-
const script = `import
|
|
2105
|
+
const script = `import deepline from 'deepline';
|
|
2107
2106
|
|
|
2108
|
-
export
|
|
2109
|
-
|
|
2107
|
+
export const config = {
|
|
2108
|
+
description: ${JSON.stringify(`Seed ${input.toolId} rows into a Deepline workflow-ready dataset.`)},
|
|
2109
|
+
};
|
|
2110
|
+
|
|
2111
|
+
export default async function () {
|
|
2112
|
+
const result = await deepline.tools.execute({
|
|
2110
2113
|
staleAfterSeconds: 0,
|
|
2111
2114
|
id: ${JSON.stringify(input.toolId)},
|
|
2112
2115
|
tool: ${JSON.stringify(input.toolId)},
|
|
@@ -2122,11 +2125,11 @@ export default definePlay(${JSON.stringify(playName)}, async (ctx) => {
|
|
|
2122
2125
|
// ${sampleRows}
|
|
2123
2126
|
// columns: ${columns}
|
|
2124
2127
|
// ${playToolListGetterMode() === "array" ? "extractedLists.<name>.get() returns an ordinary array from this response." : "extractedLists.<name>.get() returns a dataset handle for row-shaped list outputs."}
|
|
2125
|
-
// ${playToolListGetterMode() === "array" ? "Use array methods directly; pass rows to
|
|
2126
|
-
// .withColumn('email_waterfall', (row
|
|
2127
|
-
// .withColumn('phone_waterfall', (row
|
|
2128
|
-
//
|
|
2129
|
-
const enrichedData = await
|
|
2128
|
+
// ${playToolListGetterMode() === "array" ? "Use array methods directly; pass rows to deepline.dataset to persist row work." : "Pass it to deepline.dataset; use rows.peek/count/materialize only for deliberate bounded inspection."}
|
|
2129
|
+
// .withColumn('email_waterfall', (row) => deepline.runPlay('name_domain_email', 'name-and-domain-to-email', { first_name: String(row.first_name ?? ''), last_name: String(row.last_name ?? ''), domain: String(row.domain ?? '') }, { description: 'Resolve email.' }))
|
|
2130
|
+
// .withColumn('phone_waterfall', (row) => deepline.runPlay('contact_phone', 'contact-to-phone', { first_name: String(row.first_name ?? ''), last_name: String(row.last_name ?? ''), email: String(row.email ?? '') }, { description: 'Resolve phone.' }))
|
|
2131
|
+
// deepline.dataset is idempotent for completed rows during same-run recovery. New runs follow each call's freshness.
|
|
2132
|
+
const enrichedData = await deepline
|
|
2130
2133
|
.dataset('enriched_data', rows)
|
|
2131
2134
|
.run({
|
|
2132
2135
|
key: ${rowKey},
|
|
@@ -2137,9 +2140,7 @@ export default definePlay(${JSON.stringify(playName)}, async (ctx) => {
|
|
|
2137
2140
|
rows: enrichedData,
|
|
2138
2141
|
count: await enrichedData.count(),
|
|
2139
2142
|
};
|
|
2140
|
-
}
|
|
2141
|
-
description: ${JSON.stringify(`Seed ${input.toolId} rows into a Deepline workflow-ready dataset.`)},
|
|
2142
|
-
});
|
|
2143
|
+
}
|
|
2143
2144
|
`;
|
|
2144
2145
|
writeFileSync2(scriptPath, script, { encoding: "utf-8", mode: 384 });
|
|
2145
2146
|
return {
|
|
@@ -647,7 +647,19 @@ Writing a play:
|
|
|
647
647
|
plays check my.play.ts validate after every edit; free
|
|
648
648
|
plays run my.play.ts --input '{...}' run the local file
|
|
649
649
|
plays publish my.play.ts make it live for plays run <name> and triggers
|
|
650
|
-
|
|
650
|
+
plays run -e "<code>" run code inline as a play function's body
|
|
651
|
+
(input holds --input), like python -c
|
|
652
|
+
A play is a default-exported async function of its input; the file name
|
|
653
|
+
is its default name:
|
|
654
|
+
import deepline from 'deepline';
|
|
655
|
+
export default async function (input: { domain: string }) {
|
|
656
|
+
const company = await deepline.tools.execute({ id, tool, input, description });
|
|
657
|
+
return { company };
|
|
658
|
+
}
|
|
659
|
+
The parameter's type is the input contract; the returned object is the
|
|
660
|
+
result.
|
|
661
|
+
An optional export const config = { name, description, cron, webhook,
|
|
662
|
+
runtime }; at the top of the file sets the name, triggers and runtime.
|
|
651
663
|
--help --verbose lists the authoring rules.
|
|
652
664
|
Auditing plays:
|
|
653
665
|
plays list every saved play
|
|
@@ -672,7 +684,8 @@ Writing a play:
|
|
|
672
684
|
deepline_run_inline_play run it without publishing; CSV data files go
|
|
673
685
|
in files, named by input_file_path
|
|
674
686
|
deepline_publish_play make it live for deepline_run_play and triggers
|
|
675
|
-
|
|
687
|
+
A play default-exports an async function of its input; it calls
|
|
688
|
+
deepline.tools.execute and returns { ... }.
|
|
676
689
|
deepline_help with command "plays" and detail "verbose" lists the
|
|
677
690
|
authoring rules.
|
|
678
691
|
Auditing plays:
|
|
@@ -686,58 +699,60 @@ Cost:
|
|
|
686
699
|
`,
|
|
687
700
|
verbose: `
|
|
688
701
|
Authoring rules:
|
|
689
|
-
Reach the outside world only through
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
Math.random goes inside
|
|
702
|
+
Reach the outside world only through deepline: deepline.csv,
|
|
703
|
+
deepline.dataset, deepline.tools.execute, deepline.runPlay, deepline.step,
|
|
704
|
+
deepline.fetch, deepline.secrets, deepline.customerDb, and deepline.log.
|
|
705
|
+
No fs, raw fetch, or shell commands, also not inside deepline.step. Local
|
|
706
|
+
nondeterministic work such as Date.now or Math.random goes inside
|
|
707
|
+
deepline.step. Call deepline.* only in the play file; pass it to helpers.
|
|
694
708
|
A run can be interrupted and replayed from the top; every finished step
|
|
695
709
|
and tool call then returns its saved result. So the play name, each
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
Rows:
|
|
699
|
-
.run({ key: 'domain' }). Use a business identifier as the row key. Put
|
|
710
|
+
dataset key, step id, fetch key, and tools.execute id is a fixed string
|
|
711
|
+
literal, and renaming one pays for that work again.
|
|
712
|
+
Rows: deepline.dataset('key', rows).withColumn('name', (row) => ...)
|
|
713
|
+
.run({ key: 'domain' }); call deepline.* inside the column too. Use a business identifier as the row key. Put
|
|
700
714
|
one paid call in a column, and shaping, status, and miss_reason in
|
|
701
715
|
separate plain columns after it. Return the dataset for anything that
|
|
702
716
|
should export as CSV.
|
|
703
717
|
Dataset handles are async: await rows.count(), rows.first(),
|
|
704
718
|
rows.peek(n), rows.materialize(n), or for await. Array methods on a
|
|
705
719
|
handle fail [[cli:plays check]][[mcp:deepline_check_play]].
|
|
706
|
-
Tool calls:
|
|
720
|
+
Tool calls: deepline.tools.execute({ id, tool, input, description,
|
|
707
721
|
staleAfterSeconds }). In authoring edition 11, choose freshness explicitly:
|
|
708
722
|
0 for fresh logical work, a positive integer for the maximum reusable
|
|
709
723
|
result age in seconds, or null for indefinite result reuse. A matching
|
|
710
724
|
completed operation receipt can still recover that operation after resume.
|
|
711
|
-
Read
|
|
712
|
-
results through the getters [[cli:describe]][[mcp:deepline_describe_tool]] lists:
|
|
725
|
+
Read results through the getters [[cli:describe]][[mcp:deepline_describe_tool]] lists:
|
|
713
726
|
result.extractedValues.<name>.get() and
|
|
714
727
|
result.extractedLists.<name>.get(). A field with no getter is under
|
|
715
728
|
result.toolResponse.rawV2 with the provider's nesting kept.
|
|
716
|
-
|
|
717
|
-
|
|
729
|
+
Reuse before rebuilding: deepline.runPlay(key, 'prebuilt/<name>', input,
|
|
730
|
+
{ description }) runs a
|
|
718
731
|
prebuilt as one stage. Independent calls run together with Promise.all;
|
|
719
732
|
a call that needs another's result waits for it.
|
|
720
733
|
Failures: catch only ProviderTransientError, and only when another
|
|
721
734
|
provider can answer the same question. Keep the last provider outside
|
|
722
735
|
the catch so an exhausted waterfall fails loudly. Never branch on an
|
|
723
736
|
error message.
|
|
724
|
-
External APIs:
|
|
725
|
-
|
|
726
|
-
secrets set]]. res.json is a property, not a method; check
|
|
727
|
-
cannot loop
|
|
737
|
+
External APIs: deepline.fetch with a fixed key, and credentials through
|
|
738
|
+
deepline.secrets.bearer(...) or deepline.secrets.header(...)[[cli:, stored
|
|
739
|
+
with deepline secrets set]]. res.json is a property, not a method; check
|
|
740
|
+
res.ok. A play cannot loop deepline.fetch over pages: fan out over rows
|
|
741
|
+
with deepline.dataset, or
|
|
728
742
|
call one endpoint that returns the whole result.
|
|
729
|
-
Triggers:
|
|
730
|
-
|
|
743
|
+
Triggers: export const config = { cron: { schedule, timezone, input } };
|
|
744
|
+
or { webhook: {} }. A cron run receives {} unless cron.input is written
|
|
745
|
+
inline; it is pinned with the published revision.
|
|
731
746
|
Runtime: The default Play runtime is 30 minutes. For a bounded long batch
|
|
732
|
-
set
|
|
733
|
-
4h. That is not the CLI wait timeout.
|
|
747
|
+
set export const config = { runtime: { timeout: '90m', size: 'standard' } };
|
|
748
|
+
up to 4h. That is not the CLI wait timeout.
|
|
734
749
|
Recurring sourcing: .run({ key: 'domain', mode: 'net_new' }) returns only
|
|
735
750
|
rows the table has not seen before.
|
|
736
751
|
Results: project each answer into flat columns (the value, its source,
|
|
737
752
|
whether it was validated, the outcome, the reason) and keep evidence
|
|
738
753
|
under _dl_meta, including result._metadata.execution.receiptKey. Unknown
|
|
739
754
|
stays null, not false.
|
|
740
|
-
Diagram: a /** @mermaid
|
|
755
|
+
Diagram: a /** @mermaid */ block at the top of the play draws it in the
|
|
741
756
|
dashboard, with // @mermaid-node <id> out:"<identifier>" above the
|
|
742
757
|
statement each box stands for. [[cli:plays check]][[mcp:deepline_check_play]] validates it.
|
|
743
758
|
`
|
|
@@ -1087,7 +1102,7 @@ Cost:
|
|
|
1087
1102
|
core: `
|
|
1088
1103
|
Purpose:
|
|
1089
1104
|
Make one version of a play live, so [[plays run <name>]], triggers, and
|
|
1090
|
-
|
|
1105
|
+
deepline.runPlay callers use it.[[cli: A local .play.ts file is bundled, validated,
|
|
1091
1106
|
saved as a revision, and promoted in one step; a saved play promotes one
|
|
1092
1107
|
of its existing revisions.]][[mcp: It promotes one of a saved play's existing
|
|
1093
1108
|
revisions; deepline_publish_play saves and promotes a new file graph.]]
|
|
@@ -1118,7 +1133,7 @@ Avoid:
|
|
|
1118
1133
|
core: `
|
|
1119
1134
|
Purpose:
|
|
1120
1135
|
Publish [[cli:a local .play.ts file]][[mcp:an inline .play.ts file graph]] or promote a saved revision, so [[plays run
|
|
1121
|
-
<name>]], triggers, and
|
|
1136
|
+
<name>]], triggers, and deepline.runPlay callers use it. The same operation as
|
|
1122
1137
|
[[plays set-live]].
|
|
1123
1138
|
When:
|
|
1124
1139
|
Once a play [[cli:run by file path]][[mcp:run inline]] gives the right result. Running [[cli:a local file]][[mcp:a play inline]]
|
|
@@ -1255,7 +1270,7 @@ Debugging a run:
|
|
|
1255
1270
|
last event, then [[runs logs <run-id>]][[cli: --failed]] for the failure window, then
|
|
1256
1271
|
[[cli:runs watch <run-id>]][[mcp:deepline_get_run again]] to follow it if it is still active. A run can go quiet
|
|
1257
1272
|
for minutes while it waits on a slow provider (Apify actors, large company
|
|
1258
|
-
searches), an intentional
|
|
1273
|
+
searches), an intentional deepline.sleep, or a rate-limit backoff; that is
|
|
1259
1274
|
healthy. Stop it only after about ten minutes without progress on a fast
|
|
1260
1275
|
tool.
|
|
1261
1276
|
`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isJsonOutputMode
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QWJJMQNE.mjs";
|
|
4
4
|
import {
|
|
5
5
|
DEFAULT_SKILL_AGENTS,
|
|
6
6
|
KNOWN_SKILL_AGENTS,
|
|
@@ -17,13 +17,13 @@ import {
|
|
|
17
17
|
sdkCliStateDirPath,
|
|
18
18
|
skillsAgentPathSegment,
|
|
19
19
|
writeSdkSkillsLocalVersion
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-XSERB7H2.mjs";
|
|
21
21
|
import {
|
|
22
22
|
DeeplineError
|
|
23
23
|
} from "./chunk-E4IXDAZI.mjs";
|
|
24
24
|
import {
|
|
25
25
|
SDK_RELEASE
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-JDAXVQV7.mjs";
|
|
27
27
|
|
|
28
28
|
// src/compat.ts
|
|
29
29
|
import { randomUUID } from "crypto";
|
|
@@ -49,7 +49,7 @@ var SDK_RELEASE = {
|
|
|
49
49
|
// getters keep their established compatibility behavior.
|
|
50
50
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
51
51
|
// 0.3.90 is the first deliberately versioned SDK release for API v3.
|
|
52
|
-
version: "0.3.
|
|
52
|
+
version: "0.3.423",
|
|
53
53
|
updateSummary: {
|
|
54
54
|
introducedIn: "0.3.90",
|
|
55
55
|
summary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release."
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
rateLimitSummary,
|
|
3
3
|
schemaField,
|
|
4
4
|
schemaFields
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MLJBCS3E.mjs";
|
|
6
6
|
import {
|
|
7
7
|
Capability,
|
|
8
8
|
observedMaxText
|
|
@@ -618,7 +618,7 @@ function usageGuidanceWithAccessDefaults(usageGuidance) {
|
|
|
618
618
|
extractedLists: {
|
|
619
619
|
...recordField(existingAccess, "extractedLists"),
|
|
620
620
|
expression: "toolExecutionResult.extractedLists.<name>.get()",
|
|
621
|
-
meaning: playToolListGetterMode() === "array" ? "Returns an ordinary array from this response. Use array methods directly or pass it to
|
|
621
|
+
meaning: playToolListGetterMode() === "array" ? "Returns an ordinary array from this response. Use array methods directly or pass it to deepline.dataset to persist row work. Lazy or incomplete lists throw; use readList for an explicit dataset read. It does not fetch provider pages." : "Returns a PlayDataset, not a JavaScript array. Pass the handle to deepline.dataset, use first(), async iteration, or await handle.materialize() for the complete current list within the memory cap. materialize(n) and peek(n) return a prefix; none fetch additional provider pages. A missing getter is not an empty list."
|
|
622
622
|
},
|
|
623
623
|
rawToolResponse: {
|
|
624
624
|
expression: "toolExecutionResult.toolResponse.rawV2",
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
skillsInstallLeasePath,
|
|
12
12
|
skillsSourceUrl,
|
|
13
13
|
syncSdkSkillsIfNeeded
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-IW5QK3K6.mjs";
|
|
15
15
|
import {
|
|
16
16
|
printCommandEnvelope
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QWJJMQNE.mjs";
|
|
18
18
|
import {
|
|
19
19
|
SDK_VERSION,
|
|
20
20
|
autoDetectBaseUrl,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
ensureProjectPrivatePathsIgnored,
|
|
23
23
|
resolveProjectPinTarget,
|
|
24
24
|
sdkCliStateDirPath
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-XSERB7H2.mjs";
|
|
26
26
|
|
|
27
27
|
// src/cli/commands/skills.ts
|
|
28
28
|
import { spawn } from "child_process";
|