deepline 0.3.311 → 0.3.313
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/play.ts +7 -1
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +159 -61
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +11 -6
- package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +23 -1
- package/dist/bundling-sources/shared_libs/plays/core.ts +7 -1
- package/dist/bundling-sources/shared_libs/plays/settings-contract.ts +29 -3
- package/dist/cli/auth-56NYRTQK.js +31 -0
- package/dist/cli/{auth-2A7OYHFJ.mjs → auth-LNA6WCQA.mjs} +4 -4
- package/dist/cli/{billing-P7GIAP3U.mjs → billing-D37QNIE3.mjs} +5 -5
- package/dist/cli/{billing-2PQ4VDRR.js → billing-GJJUUCOZ.js} +71 -71
- package/dist/cli/{chunk-DUEHAEPM.mjs → chunk-3ZC4PHJ6.mjs} +1 -1
- package/dist/cli/{chunk-LRI2FQF2.js → chunk-4UXNEC5C.js} +26 -26
- package/dist/cli/{tools-WN7T25LW.js → chunk-6G7ZYA6E.js} +231 -87
- package/dist/cli/chunk-76VKBPOC.mjs +406 -0
- package/dist/cli/{chunk-HOCPOTDX.mjs → chunk-BLMO3JMZ.mjs} +2 -2
- package/dist/cli/{play-SOG5Q2GE.mjs → chunk-BS4GAUMH.mjs} +166 -90
- package/dist/cli/{chunk-SPUTBCUR.mjs → chunk-CSH4PKPJ.mjs} +1 -1
- package/dist/cli/{chunk-Q3LYQTSO.mjs → chunk-DOI3UBGV.mjs} +1 -1
- package/dist/cli/{chunk-GCX3343L.js → chunk-FJUIXWZF.js} +48 -48
- package/dist/cli/{chunk-RNJ74JDH.js → chunk-FSZTWQFK.js} +4 -4
- package/dist/cli/{chunk-XDUQQTIS.js → chunk-GQXEHX5X.js} +6 -6
- package/dist/cli/{chunk-SGTSJCOA.mjs → chunk-HM2TSTCT.mjs} +1 -1
- package/dist/cli/{chunk-FYPZ43Y4.js → chunk-HY2SSFRI.js} +1 -1
- package/dist/cli/{chunk-7TT4LZIR.js → chunk-I4FHFGMA.js} +60 -60
- package/dist/cli/{chunk-W7INSYJS.js → chunk-IALPYID6.js} +3 -3
- package/dist/cli/{chunk-VODJJUKE.js → chunk-JG2ZTDZV.js} +15 -15
- package/dist/cli/{chunk-5IBHISKA.js → chunk-KNGTN7NE.js} +6 -6
- package/dist/cli/{chunk-QO3GH6UP.js → chunk-MHETTUWR.js} +2 -2
- package/dist/cli/{chunk-TBX7AA7Y.mjs → chunk-N2DXWS6W.mjs} +2 -2
- package/dist/cli/{chunk-WB6Z2Q44.mjs → chunk-N5V2SBB2.mjs} +19 -1
- package/dist/cli/{chunk-ZDO3TO3M.js → chunk-OJ243ZA5.js} +19 -1
- package/dist/cli/{chunk-QJA6SJHA.mjs → chunk-OTA5C7DD.mjs} +1 -1
- package/dist/cli/{play-BCMGFYTF.js → chunk-P4N7233B.js} +342 -266
- package/dist/cli/{chunk-4WFNAWVO.mjs → chunk-QCXDLOGA.mjs} +2 -2
- package/dist/cli/{chunk-IB7OGQGH.js → chunk-QQMKX7JW.js} +29 -9
- package/dist/cli/{chunk-ICZB4GTY.mjs → chunk-RDUS2EDE.mjs} +23 -3
- package/dist/cli/{tools-G4HGCHNQ.mjs → chunk-UQBMMN4U.mjs} +180 -36
- package/dist/cli/{chunk-4NIQA6S7.mjs → chunk-US4S3E4Y.mjs} +1 -1
- package/dist/cli/{chunk-QYL5ZV4U.js → chunk-VSAYSOVC.js} +6 -6
- package/dist/cli/{chunk-G3QP2WYR.mjs → chunk-XFEPRIW7.mjs} +4 -4
- package/dist/cli/chunk-XNL3SEMC.js +406 -0
- package/dist/cli/{chunk-5OVNL6LS.mjs → chunk-YZ5PP6TX.mjs} +1 -1
- package/dist/cli/{client-PNLDT2M3.mjs → client-6RVRZ4OY.mjs} +3 -3
- package/dist/cli/client-XUTMYJDL.js +20 -0
- package/dist/cli/{csv-L5DN7F45.js → csv-2UHRG67O.js} +12 -12
- package/dist/cli/{csv-KUAATBZQ.mjs → csv-SBOHBKEG.mjs} +3 -3
- package/dist/cli/{db-WZOD6NP5.mjs → db-TUFTPYEA.mjs} +4 -4
- package/dist/cli/{db-6NIH4KTZ.js → db-VRE7CLIQ.js} +20 -20
- package/dist/cli/describe-GS5A2XH4.js +236 -0
- package/dist/cli/describe-WCBZTSOF.mjs +236 -0
- package/dist/cli/{executions-TQ5WRHDS.js → executions-ENMOOKWH.js} +6 -6
- package/dist/cli/{executions-RDDXGT2Y.mjs → executions-UTN3O372.mjs} +4 -4
- package/dist/cli/{feedback-NYKLEQB6.js → feedback-BLN6SIRG.js} +6 -6
- package/dist/cli/{feedback-ZB4WKBSS.mjs → feedback-PXBA3AG7.mjs} +3 -3
- package/dist/cli/git-26D3VD2I.js +23 -0
- package/dist/cli/{git-E6DKAX3X.mjs → git-YDMIRW3Q.mjs} +4 -4
- package/dist/cli/index.js +82 -78
- package/dist/cli/index.mjs +45 -41
- package/dist/cli/{legacy-noops-26Y5NSU6.js → legacy-noops-CWTUWTDB.js} +7 -7
- package/dist/cli/{legacy-noops-25B7JCOZ.mjs → legacy-noops-OVG2SICQ.mjs} +4 -4
- package/dist/cli/{monitors-WRTHO7DT.mjs → monitors-ATIDXJA4.mjs} +7 -7
- package/dist/cli/{monitors-L3GFT4MG.js → monitors-T63OPBTY.js} +88 -88
- package/dist/cli/{org-BNCTGPWF.js → org-7RVAPMRN.js} +60 -60
- package/dist/cli/{org-ZTHOFVEO.mjs → org-NXKNIM3H.mjs} +4 -4
- package/dist/cli/play-B62OVHD4.mjs +152 -0
- package/dist/cli/play-WM3NZVE7.js +152 -0
- package/dist/cli/{providers-MLOKTD6O.js → providers-EITVEGXD.js} +7 -7
- package/dist/cli/{providers-SLAPPVMU.mjs → providers-U7B7JEYY.mjs} +4 -4
- package/dist/cli/{quickstart-IWJLGET3.js → quickstart-G64F2XRU.js} +5 -5
- package/dist/cli/{quickstart-LZRKZLNQ.mjs → quickstart-VSWTYNJM.mjs} +3 -3
- package/dist/cli/{search-RCDGSNWW.mjs → search-SKYTFKKF.mjs} +13 -5
- package/dist/cli/search-TXQJJQWY.js +26 -0
- package/dist/cli/{secrets-GDPYV6OC.mjs → secrets-4DNS7KWS.mjs} +4 -4
- package/dist/cli/{secrets-24KEMSCU.js → secrets-JSFHSCGM.js} +13 -13
- package/dist/cli/{sessions-ST5XQQZN.mjs → sessions-HB7RQ4XN.mjs} +4 -4
- package/dist/cli/{sessions-QOUUGVP3.js → sessions-MLTYPPCG.js} +5 -5
- package/dist/cli/{settings-4XWDMAA2.js → settings-3PCKNBPU.js} +74 -74
- package/dist/cli/{settings-V6Z775TO.mjs → settings-BT5WCU65.mjs} +7 -7
- package/dist/cli/{setup-QPZLP25U.mjs → setup-EIWDTMCK.mjs} +6 -6
- package/dist/cli/{setup-W7SPZTUL.js → setup-EYZWTDJI.js} +41 -41
- package/dist/cli/skills-73T4BSDE.js +28 -0
- package/dist/cli/{skills-QG22R2EI.mjs → skills-AQ3ORN2C.mjs} +4 -4
- package/dist/cli/tools-OFTB2BGP.mjs +38 -0
- package/dist/cli/tools-ZGSOHWBY.js +38 -0
- package/dist/cli/{update-5PSYBGVU.mjs → update-ERQTFSAR.mjs} +6 -6
- package/dist/cli/update-L4V5TF7I.js +28 -0
- package/dist/cli/{workflow-ZEQ46MGG.js → workflow-6D6NHUH4.js} +16 -16
- package/dist/cli/{workflow-EK7DV4AQ.mjs → workflow-SRLWGGBM.mjs} +6 -6
- package/dist/{client-DpnkGBn-.d.mts → client-CtVdLZux.d.mts} +21 -4
- package/dist/{client-ypdBvf1o.d.ts → client-OBwghxPC.d.ts} +21 -4
- package/dist/{compiler-manifest-qtTNYvBl.d.ts → compiler-manifest-wOKNiXpa.d.mts} +21 -0
- package/dist/{compiler-manifest-qtTNYvBl.d.mts → compiler-manifest-wOKNiXpa.d.ts} +21 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +13 -10
- package/dist/index.mjs +16 -13
- package/dist/install-integrity.json +84 -76
- package/dist/plays/bundle-play-file.d.mts +2 -2
- package/dist/plays/bundle-play-file.d.ts +2 -2
- package/dist/plays/bundle-play-file.mjs +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-66JFXP6C.js +0 -31
- package/dist/cli/client-ADWRS22F.js +0 -20
- package/dist/cli/git-E56KOYJR.js +0 -23
- package/dist/cli/search-6FBDSA3K.js +0 -18
- package/dist/cli/skills-WKOQBJY7.js +0 -28
- package/dist/cli/update-WKVCWGYY.js +0 -28
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
getAuthedHttpClient,
|
|
3
3
|
openInBrowser,
|
|
4
4
|
printCommandEnvelope
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CSH4PKPJ.mjs";
|
|
6
6
|
import {
|
|
7
7
|
resolveBaseUrlOnly
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-DOI3UBGV.mjs";
|
|
9
9
|
|
|
10
10
|
// src/cli/commands/git.ts
|
|
11
11
|
function shellQuote(value) {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkVSAYSOVCjs = require('./chunk-VSAYSOVC.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkGQXEHX5Xjs = require('./chunk-GQXEHX5X.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkFSZTWQFKjs = require('./chunk-FSZTWQFK.js');
|
|
11
11
|
|
|
12
12
|
// src/cli/search-ref.ts
|
|
13
13
|
var _fs = require('fs');
|
|
14
14
|
var _path = require('path');
|
|
15
15
|
var SEARCH_REF_TTL_MS = 15 * 6e4;
|
|
16
16
|
function lastSearchPath() {
|
|
17
|
-
return _path.join.call(void 0,
|
|
17
|
+
return _path.join.call(void 0, _chunkFSZTWQFKjs.sdkCliStateDirPath.call(void 0, _chunkFSZTWQFKjs.resolveConfig.call(void 0, ).baseUrl), "last-search.json");
|
|
18
18
|
}
|
|
19
19
|
function rememberSearchRef(searchRef) {
|
|
20
20
|
try {
|
|
@@ -75,14 +75,29 @@ function addSearchOptions(command) {
|
|
|
75
75
|
"What you are trying to accomplish: input you have -> result you need"
|
|
76
76
|
).option("--limit <count>", "Maximum ranked results to return (1-50)").option("--offset <count>", "Zero-based ranked result offset").option("--search-mode <mode>", "Ranked search mode: v1 or v2").option("--include-search-debug", "Include ranked search debug metadata").option("--json", "Emit JSON output instead of the readable default");
|
|
77
77
|
}
|
|
78
|
+
function pointAtDescribe(result) {
|
|
79
|
+
const old = /`deepline (tools|plays) describe [^`]*`/;
|
|
80
|
+
const render = result.render;
|
|
81
|
+
for (const section of _nullishCoalesce(_optionalChain([render, 'optionalAccess', _ => _.sections]), () => ( []))) {
|
|
82
|
+
if (!_optionalChain([section, 'access', _2 => _2.lines, 'optionalAccess', _3 => _3.some, 'call', _4 => _4((line) => old.test(line))])) continue;
|
|
83
|
+
section.lines = [
|
|
84
|
+
"Run `deepline describe <id>` before executing a tool or running a play.",
|
|
85
|
+
...section.lines.filter((line) => !old.test(line))
|
|
86
|
+
];
|
|
87
|
+
}
|
|
88
|
+
const templates = result.commandTemplates;
|
|
89
|
+
for (const template of Object.values(_nullishCoalesce(templates, () => ( {})))) {
|
|
90
|
+
if (template.describe) template.describe = "deepline describe <id>";
|
|
91
|
+
}
|
|
92
|
+
}
|
|
78
93
|
async function runSearch(queryInput, options, types, exclude = []) {
|
|
79
|
-
const query = _nullishCoalesce(_optionalChain([queryInput, 'optionalAccess',
|
|
94
|
+
const query = _nullishCoalesce(_optionalChain([queryInput, 'optionalAccess', _5 => _5.trim, 'call', _6 => _6()]), () => ( ""));
|
|
80
95
|
const searchTerms = _nullishCoalesce(options.searchTerms, () => ( options.search_terms));
|
|
81
|
-
if (!query && !_optionalChain([options, 'access',
|
|
96
|
+
if (!query && !_optionalChain([options, 'access', _7 => _7.categories, 'optionalAccess', _8 => _8.trim, 'call', _9 => _9()]) && !_optionalChain([searchTerms, 'optionalAccess', _10 => _10.trim, 'call', _11 => _11()])) {
|
|
82
97
|
console.error(USAGE);
|
|
83
98
|
return 1;
|
|
84
99
|
}
|
|
85
|
-
const { search_ref: searchRef, ...result } = await new (0,
|
|
100
|
+
const { search_ref: searchRef, ...result } = await new (0, _chunkVSAYSOVCjs.DeeplineClient)().search({
|
|
86
101
|
query,
|
|
87
102
|
types,
|
|
88
103
|
exclude,
|
|
@@ -95,7 +110,8 @@ async function runSearch(queryInput, options, types, exclude = []) {
|
|
|
95
110
|
includeSearchDebug: Boolean(options.includeSearchDebug)
|
|
96
111
|
});
|
|
97
112
|
if (searchRef) rememberSearchRef(searchRef);
|
|
98
|
-
|
|
113
|
+
pointAtDescribe(result);
|
|
114
|
+
_chunkGQXEHX5Xjs.printCommandEnvelope.call(void 0, result, {
|
|
99
115
|
json: options.json === true
|
|
100
116
|
});
|
|
101
117
|
return 0;
|
|
@@ -187,4 +203,8 @@ Examples:
|
|
|
187
203
|
|
|
188
204
|
|
|
189
205
|
|
|
190
|
-
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
exports.recentSearchRef = recentSearchRef; exports.SEARCH_TYPES = SEARCH_TYPES; exports.parseTypes = parseTypes; exports.appendCsv = appendCsv; exports.pointAtDescribe = pointAtDescribe; exports.registerDeprecatedSearchCommand = registerDeprecatedSearchCommand; exports.registerSearchCommand = registerSearchCommand;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DeeplineClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YZ5PP6TX.mjs";
|
|
4
4
|
import {
|
|
5
5
|
printCommandEnvelope
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CSH4PKPJ.mjs";
|
|
7
7
|
import {
|
|
8
8
|
resolveConfig,
|
|
9
9
|
sdkCliStateDirPath
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-DOI3UBGV.mjs";
|
|
11
11
|
|
|
12
12
|
// src/cli/search-ref.ts
|
|
13
13
|
import { mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
@@ -75,6 +75,21 @@ function addSearchOptions(command) {
|
|
|
75
75
|
"What you are trying to accomplish: input you have -> result you need"
|
|
76
76
|
).option("--limit <count>", "Maximum ranked results to return (1-50)").option("--offset <count>", "Zero-based ranked result offset").option("--search-mode <mode>", "Ranked search mode: v1 or v2").option("--include-search-debug", "Include ranked search debug metadata").option("--json", "Emit JSON output instead of the readable default");
|
|
77
77
|
}
|
|
78
|
+
function pointAtDescribe(result) {
|
|
79
|
+
const old = /`deepline (tools|plays) describe [^`]*`/;
|
|
80
|
+
const render = result.render;
|
|
81
|
+
for (const section of render?.sections ?? []) {
|
|
82
|
+
if (!section.lines?.some((line) => old.test(line))) continue;
|
|
83
|
+
section.lines = [
|
|
84
|
+
"Run `deepline describe <id>` before executing a tool or running a play.",
|
|
85
|
+
...section.lines.filter((line) => !old.test(line))
|
|
86
|
+
];
|
|
87
|
+
}
|
|
88
|
+
const templates = result.commandTemplates;
|
|
89
|
+
for (const template of Object.values(templates ?? {})) {
|
|
90
|
+
if (template.describe) template.describe = "deepline describe <id>";
|
|
91
|
+
}
|
|
92
|
+
}
|
|
78
93
|
async function runSearch(queryInput, options, types, exclude = []) {
|
|
79
94
|
const query = queryInput?.trim() ?? "";
|
|
80
95
|
const searchTerms = options.searchTerms ?? options.search_terms;
|
|
@@ -95,6 +110,7 @@ async function runSearch(queryInput, options, types, exclude = []) {
|
|
|
95
110
|
includeSearchDebug: Boolean(options.includeSearchDebug)
|
|
96
111
|
});
|
|
97
112
|
if (searchRef) rememberSearchRef(searchRef);
|
|
113
|
+
pointAtDescribe(result);
|
|
98
114
|
printCommandEnvelope(result, {
|
|
99
115
|
json: options.json === true
|
|
100
116
|
});
|
|
@@ -185,6 +201,10 @@ Examples:
|
|
|
185
201
|
|
|
186
202
|
export {
|
|
187
203
|
recentSearchRef,
|
|
204
|
+
SEARCH_TYPES,
|
|
205
|
+
parseTypes,
|
|
206
|
+
appendCsv,
|
|
207
|
+
pointAtDescribe,
|
|
188
208
|
registerDeprecatedSearchCommand,
|
|
189
209
|
registerSearchCommand
|
|
190
210
|
};
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
addDescribeOptions,
|
|
3
|
+
rateLimitSummary,
|
|
4
|
+
schemaField,
|
|
5
|
+
schemaFields
|
|
6
|
+
} from "./chunk-76VKBPOC.mjs";
|
|
1
7
|
import {
|
|
2
8
|
recentSearchRef,
|
|
3
9
|
registerDeprecatedSearchCommand
|
|
4
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-RDUS2EDE.mjs";
|
|
5
11
|
import {
|
|
6
12
|
extractSummaryFields,
|
|
7
13
|
projectRowOutput,
|
|
@@ -12,8 +18,7 @@ import {
|
|
|
12
18
|
} from "./chunk-MIMASXO4.mjs";
|
|
13
19
|
import {
|
|
14
20
|
DeeplineClient
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-CBVIJSHF.mjs";
|
|
21
|
+
} from "./chunk-YZ5PP6TX.mjs";
|
|
17
22
|
import {
|
|
18
23
|
beginToolExecuteCommand,
|
|
19
24
|
getToolExecuteInvocationId,
|
|
@@ -28,19 +33,14 @@ import {
|
|
|
28
33
|
printJsonError,
|
|
29
34
|
renderCommandEnvelopeText,
|
|
30
35
|
shouldEmitJson
|
|
31
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-CSH4PKPJ.mjs";
|
|
32
37
|
import {
|
|
33
38
|
resolveConfig,
|
|
34
39
|
sdkCliStateDirPath
|
|
35
|
-
} from "./chunk-
|
|
36
|
-
import "./chunk-DLIRSHV6.mjs";
|
|
37
|
-
import "./chunk-SGTSJCOA.mjs";
|
|
38
|
-
import "./chunk-6IKARAYD.mjs";
|
|
40
|
+
} from "./chunk-DOI3UBGV.mjs";
|
|
39
41
|
import {
|
|
40
42
|
DeeplineError
|
|
41
43
|
} from "./chunk-NXGCO4JB.mjs";
|
|
42
|
-
import "./chunk-WZYKRD7T.mjs";
|
|
43
|
-
import "./chunk-KRD6H754.mjs";
|
|
44
44
|
|
|
45
45
|
// src/cli/commands/tools.ts
|
|
46
46
|
import { Option } from "commander";
|
|
@@ -333,7 +333,7 @@ function toolConnectionStatusMessage(input) {
|
|
|
333
333
|
|
|
334
334
|
// src/cli/commands/tools.ts
|
|
335
335
|
var TOOL_COMMAND_TEMPLATES = {
|
|
336
|
-
describe: "deepline
|
|
336
|
+
describe: "deepline describe <toolId>",
|
|
337
337
|
execute: "deepline tools execute <toolId> --input '{...}'"
|
|
338
338
|
};
|
|
339
339
|
function toListedTool(tool) {
|
|
@@ -594,9 +594,7 @@ async function listToolsInCategory(category, emitJson) {
|
|
|
594
594
|
},
|
|
595
595
|
{
|
|
596
596
|
title: "next",
|
|
597
|
-
lines: [
|
|
598
|
-
"Run `deepline tools describe <toolId>` for the full contract."
|
|
599
|
-
]
|
|
597
|
+
lines: ["Run `deepline describe <toolId>` for the full contract."]
|
|
600
598
|
}
|
|
601
599
|
]
|
|
602
600
|
};
|
|
@@ -636,7 +634,7 @@ async function listToolsForCategoryFilter(requestedCategories, emitJson, compact
|
|
|
636
634
|
{
|
|
637
635
|
title: "next",
|
|
638
636
|
lines: [
|
|
639
|
-
"Run `deepline
|
|
637
|
+
"Run `deepline describe <toolId>` before executing a tool."
|
|
640
638
|
]
|
|
641
639
|
}
|
|
642
640
|
]
|
|
@@ -802,7 +800,7 @@ function playAliasToolErrorMessage(toolId, play) {
|
|
|
802
800
|
const playName = play.reference ?? play.name;
|
|
803
801
|
return `${toolId} is a play, not a tool.
|
|
804
802
|
Use: deepline plays run ${playName} --input '{...}'
|
|
805
|
-
Inspect its schema with: deepline
|
|
803
|
+
Inspect its schema with: deepline describe ${playName}`;
|
|
806
804
|
}
|
|
807
805
|
function printPlayAliasToolError(toolId, play) {
|
|
808
806
|
console.error(playAliasToolErrorMessage(toolId, play));
|
|
@@ -847,6 +845,15 @@ function playLikeToolExecuteErrorMessage(toolId, tool) {
|
|
|
847
845
|
function printPlayLikeToolExecuteError(toolId, tool) {
|
|
848
846
|
console.error(playLikeToolExecuteErrorMessage(toolId, tool));
|
|
849
847
|
}
|
|
848
|
+
var TOOL_ONLY_VIEWS = [
|
|
849
|
+
"compact",
|
|
850
|
+
"contractJson",
|
|
851
|
+
"pricingOnly",
|
|
852
|
+
"examplesOnly",
|
|
853
|
+
"gettersOnly",
|
|
854
|
+
"model",
|
|
855
|
+
"estimatePayload"
|
|
856
|
+
];
|
|
850
857
|
function registerToolsCommands(program) {
|
|
851
858
|
const tools = program.command("tools").description(
|
|
852
859
|
"Search by intent or structured filters, describe, and execute atomic provider tools."
|
|
@@ -859,13 +866,12 @@ Concepts:
|
|
|
859
866
|
|
|
860
867
|
Common commands:
|
|
861
868
|
deepline search --type tools email --json
|
|
862
|
-
deepline
|
|
863
|
-
deepline tools describe hunter_email_verifier --pricing-only --json
|
|
869
|
+
deepline describe hunter_email_verifier
|
|
864
870
|
deepline tools execute hunter_email_verifier --input '{"email":"a@b.com"}'
|
|
865
871
|
deepline billing usage --request-id <job_id> --json
|
|
866
872
|
|
|
867
873
|
Output:
|
|
868
|
-
Use describe for tool contracts.
|
|
874
|
+
Use deepline describe for tool contracts.
|
|
869
875
|
Use execute to run a tool.
|
|
870
876
|
Read pricing before execution; use the returned next.billing command for its
|
|
871
877
|
exact charge. Workspace balance changes also include other callers' activity.
|
|
@@ -955,7 +961,6 @@ Examples:
|
|
|
955
961
|
deepline tools describe hunter_email_verifier
|
|
956
962
|
deepline tools describe hunter_email_verifier --pricing-only
|
|
957
963
|
deepline tools describe hunter_email_verifier --pricing-only --json
|
|
958
|
-
deepline tools describe hunter_email_verifier --schema-only
|
|
959
964
|
deepline tools describe hunter_email_verifier --examples-only
|
|
960
965
|
deepline tools describe hunter_email_verifier --json
|
|
961
966
|
deepline tools describe deeplineagent --model openai/gpt-5.6-luna --json
|
|
@@ -969,7 +974,7 @@ Examples:
|
|
|
969
974
|
).option(
|
|
970
975
|
"--estimate-payload <payload>",
|
|
971
976
|
"Quote an ai_evaluate, ai_inference, or deeplineagent JSON payload (inline or @file)"
|
|
972
|
-
).option("--pricing-only", "Only print pricing and billing semantics").option(
|
|
977
|
+
).option("--pricing-only", "Only print pricing and billing semantics").option(
|
|
973
978
|
"--examples-only",
|
|
974
979
|
"Only print input payload and full Deepline execution response examples"
|
|
975
980
|
).option("--getters-only", "Only print extracted list/value getters").addOption(
|
|
@@ -985,7 +990,7 @@ Examples:
|
|
|
985
990
|
).action(async (toolId, options) => {
|
|
986
991
|
const metadata = compatibilityMetadata;
|
|
987
992
|
compatibilityMetadata = void 0;
|
|
988
|
-
|
|
993
|
+
const narrowView = () => getTool(
|
|
989
994
|
toolId,
|
|
990
995
|
{
|
|
991
996
|
json: Boolean(options.json),
|
|
@@ -1000,9 +1005,26 @@ Examples:
|
|
|
1000
1005
|
},
|
|
1001
1006
|
metadata
|
|
1002
1007
|
);
|
|
1008
|
+
const narrow = !toolId || TOOL_ONLY_VIEWS.some((view) => options[view] !== void 0);
|
|
1009
|
+
if (narrow) {
|
|
1010
|
+
process.exitCode = await narrowView();
|
|
1011
|
+
return;
|
|
1012
|
+
}
|
|
1013
|
+
const { describeAnything } = await import("./describe-WCBZTSOF.mjs");
|
|
1014
|
+
process.exitCode = await describeAnything(
|
|
1015
|
+
toolId,
|
|
1016
|
+
{ ...options, kinds: ["tools", "monitors"], fetchedTool: metadata },
|
|
1017
|
+
// An unknown id keeps this command's own error and play hint.
|
|
1018
|
+
narrowView
|
|
1019
|
+
);
|
|
1003
1020
|
});
|
|
1004
1021
|
};
|
|
1005
|
-
addToolMetadataCommand(
|
|
1022
|
+
addToolMetadataCommand(
|
|
1023
|
+
addDescribeOptions(
|
|
1024
|
+
tools.command("describe <toolId>", { hidden: true }).alias("get"),
|
|
1025
|
+
{ json: false }
|
|
1026
|
+
)
|
|
1027
|
+
);
|
|
1006
1028
|
tools.command("execute <toolId>").description("Execute a tool by id.").addHelpText(
|
|
1007
1029
|
"after",
|
|
1008
1030
|
`
|
|
@@ -1011,14 +1033,14 @@ Notes:
|
|
|
1011
1033
|
waterfalls, row maps, checkpoints, and retries.
|
|
1012
1034
|
Calling a provider-backed tool can spend Deepline credits. Use --json for the
|
|
1013
1035
|
stable result payload plus output preview and debugging helpers.
|
|
1014
|
-
Read pricing first with
|
|
1036
|
+
Read pricing first with deepline describe <toolId>.
|
|
1015
1037
|
Use the returned next.billing command to look up this execution's exact charge;
|
|
1016
1038
|
workspace balance changes also include other callers' activity.
|
|
1017
1039
|
--timeout sets this CLI request's HTTP deadline; it does not cancel provider work.
|
|
1018
1040
|
|
|
1019
1041
|
Examples:
|
|
1020
1042
|
deepline tools execute hunter_email_verifier --input '{"email":"a@b.com"}'
|
|
1021
|
-
deepline
|
|
1043
|
+
deepline describe hunter_email_verifier
|
|
1022
1044
|
deepline billing usage --request-id <job_id> --json
|
|
1023
1045
|
deepline tools execute bounceban_verify_bulk --input @batch.json --timeout 10m --json
|
|
1024
1046
|
deepline tools execute hunter_email_verifier -p email=a@b.com
|
|
@@ -1459,7 +1481,127 @@ function printMonitorTypeContract(tool, requestedToolId) {
|
|
|
1459
1481
|
console.log("");
|
|
1460
1482
|
printMonitorTypeDeploy(tool);
|
|
1461
1483
|
console.log("");
|
|
1462
|
-
console.log(`More: deepline
|
|
1484
|
+
console.log(`More: deepline describe ${toolId}`);
|
|
1485
|
+
}
|
|
1486
|
+
function schemaNodeAt(schema, path) {
|
|
1487
|
+
let node = schema;
|
|
1488
|
+
for (const part of path.split(".").filter(Boolean)) {
|
|
1489
|
+
const [key, ...indexes] = part.split("[");
|
|
1490
|
+
node = recordField(isRecord(node) ? node : {}, "properties")[key];
|
|
1491
|
+
for (const _index of indexes)
|
|
1492
|
+
node = isRecord(node) ? node.items : void 0;
|
|
1493
|
+
}
|
|
1494
|
+
return node;
|
|
1495
|
+
}
|
|
1496
|
+
function jsonSchemaOf(wrapper) {
|
|
1497
|
+
return isRecord(wrapper.jsonSchema) ? wrapper.jsonSchema : wrapper;
|
|
1498
|
+
}
|
|
1499
|
+
function publicToolSchemas(tool) {
|
|
1500
|
+
const scrubbed = (...keys) => {
|
|
1501
|
+
const schema = recordField(tool, ...keys);
|
|
1502
|
+
if (Object.keys(schema).length === 0) return null;
|
|
1503
|
+
const cleaned = publicToolInputSchemaForDescribe(schema);
|
|
1504
|
+
return isRecord(cleaned.jsonSchema) ? cleaned.jsonSchema : cleaned;
|
|
1505
|
+
};
|
|
1506
|
+
const responseSchema = scrubbed("responseSchema", "response_schema");
|
|
1507
|
+
return {
|
|
1508
|
+
inputSchema: scrubbed(
|
|
1509
|
+
"inputSchema",
|
|
1510
|
+
"input_schema",
|
|
1511
|
+
"payload_schema",
|
|
1512
|
+
"payloadSchema"
|
|
1513
|
+
),
|
|
1514
|
+
outputSchema: scrubbed("outputSchema", "output_schema"),
|
|
1515
|
+
...responseSchema ? { responseSchema } : {}
|
|
1516
|
+
};
|
|
1517
|
+
}
|
|
1518
|
+
function describedTool(tool, requestedToolId) {
|
|
1519
|
+
const id = stringField2(tool, "toolId") || requestedToolId;
|
|
1520
|
+
const displayName = stringField2(tool, "displayName") || void 0;
|
|
1521
|
+
const description = stringField2(tool, "description") || void 0;
|
|
1522
|
+
if (isMonitorTypeTool(tool)) {
|
|
1523
|
+
return {
|
|
1524
|
+
kind: "monitor_type",
|
|
1525
|
+
id,
|
|
1526
|
+
displayName,
|
|
1527
|
+
description,
|
|
1528
|
+
cost: stringField2(recordField(tool, "pricing"), "displayText") || void 0,
|
|
1529
|
+
guidance: [],
|
|
1530
|
+
inputs: schemaFields(
|
|
1531
|
+
recordField(tool, "payload_schema", "payloadSchema")
|
|
1532
|
+
),
|
|
1533
|
+
outputs: [],
|
|
1534
|
+
runner: {
|
|
1535
|
+
via: "monitor",
|
|
1536
|
+
deploy: stringField2(recordField(tool, "deploy"), "example") || `deepline monitors deploy '{"key":"...","tool":"${id}","payload":{...}}'`
|
|
1537
|
+
}
|
|
1538
|
+
};
|
|
1539
|
+
}
|
|
1540
|
+
const contract = toolContractJsonForDescribe(tool, requestedToolId);
|
|
1541
|
+
const cost = recordField(contract, "cost");
|
|
1542
|
+
const billing = stringField2(cost, "billingSourceLabel");
|
|
1543
|
+
const deprecation = recordField(contract, "deprecation");
|
|
1544
|
+
const getters = recordField(contract, "getters");
|
|
1545
|
+
const outputSchema = jsonSchemaOf(recordField(contract, "outputSchema"));
|
|
1546
|
+
const toolResult = recordField(tool, "toolResult", "tool_result");
|
|
1547
|
+
const getterDetails = (kind) => new Map(
|
|
1548
|
+
arrayField2(toolResult, kind).filter(isRecord).map((item) => [
|
|
1549
|
+
stringField2(item, "name"),
|
|
1550
|
+
recordField(item, "details")
|
|
1551
|
+
])
|
|
1552
|
+
);
|
|
1553
|
+
const getterOutputs = (kind, roots) => {
|
|
1554
|
+
const details = getterDetails(kind);
|
|
1555
|
+
return arrayField2(getters, kind).filter(isRecord).map((entry) => {
|
|
1556
|
+
const name = stringField2(entry, "name");
|
|
1557
|
+
const paths = arrayField2(
|
|
1558
|
+
details.get(name) ?? {},
|
|
1559
|
+
"rawToolOutputPaths"
|
|
1560
|
+
).map((path) => String(path).replace(/^toolResponse\.raw\./, ""));
|
|
1561
|
+
const node = roots.flatMap((root) => paths.map((path) => schemaNodeAt(root, path))).find(isRecord);
|
|
1562
|
+
const { fields, ...typed } = schemaField(name, node, true);
|
|
1563
|
+
const valueType = stringField2(details.get(name) ?? {}, "valueType");
|
|
1564
|
+
const field = {
|
|
1565
|
+
...typed,
|
|
1566
|
+
// A normalized value has a named type instead of the response's shape.
|
|
1567
|
+
...valueType ? { type: valueType } : fields ? { fields } : {},
|
|
1568
|
+
// A list's row columns that matter are value getters of their own.
|
|
1569
|
+
...kind === "extractedLists" && fields ? { summarized: true } : {},
|
|
1570
|
+
read: playResultExpression(entry)
|
|
1571
|
+
};
|
|
1572
|
+
return { field, node };
|
|
1573
|
+
});
|
|
1574
|
+
};
|
|
1575
|
+
const lists = getterOutputs("extractedLists", [outputSchema]);
|
|
1576
|
+
const values = getterOutputs("extractedValues", [
|
|
1577
|
+
outputSchema,
|
|
1578
|
+
...lists.map(({ node }) => node?.items)
|
|
1579
|
+
]);
|
|
1580
|
+
const playReference = isPlayLikeTool(tool) ? playReferenceForTool(tool) : null;
|
|
1581
|
+
return {
|
|
1582
|
+
kind: "tool",
|
|
1583
|
+
id: String(contract.toolId),
|
|
1584
|
+
displayName,
|
|
1585
|
+
description,
|
|
1586
|
+
cost: [
|
|
1587
|
+
stringField2(cost, "displayText"),
|
|
1588
|
+
// "Free (free)" says the same thing twice.
|
|
1589
|
+
billing.toLowerCase() === stringField2(cost, "displayText").toLowerCase() ? "" : billing && `(${billing})`
|
|
1590
|
+
].filter(Boolean).join(" ") || void 0,
|
|
1591
|
+
guidance: [
|
|
1592
|
+
...contract.deprecated === true ? [`Deprecated. ${stringField2(deprecation, "message")}`.trim()] : [],
|
|
1593
|
+
...Object.values(recordField(contract, "guidance")).filter(
|
|
1594
|
+
(line) => typeof line === "string" && /[a-z0-9]/i.test(line)
|
|
1595
|
+
)
|
|
1596
|
+
],
|
|
1597
|
+
rateLimit: rateLimitSummary(
|
|
1598
|
+
recordField(contract, "executionMetadata").configuredRateLimits
|
|
1599
|
+
),
|
|
1600
|
+
inputs: schemaFields(jsonSchemaOf(recordField(contract, "inputSchema"))),
|
|
1601
|
+
outputs: [...lists, ...values].map(({ field }) => field),
|
|
1602
|
+
rawResponse: schemaFields(outputSchema),
|
|
1603
|
+
runner: playReference ? { via: "play", reference: playReference } : { via: "tool", toolId: String(contract.toolId) }
|
|
1604
|
+
};
|
|
1463
1605
|
}
|
|
1464
1606
|
function toolGuidanceLines(guidance) {
|
|
1465
1607
|
const record = isRecord(guidance) ? guidance : {};
|
|
@@ -1516,7 +1658,7 @@ function printCompactToolContract(tool, requestedToolId) {
|
|
|
1516
1658
|
}
|
|
1517
1659
|
console.log("");
|
|
1518
1660
|
console.log(
|
|
1519
|
-
`More: deepline
|
|
1661
|
+
`More: deepline describe ${replacementToolId || contract.toolId} --json`
|
|
1520
1662
|
);
|
|
1521
1663
|
return;
|
|
1522
1664
|
}
|
|
@@ -1574,9 +1716,7 @@ function printCompactToolContract(tool, requestedToolId) {
|
|
|
1574
1716
|
console.log(
|
|
1575
1717
|
"Provider-specific fields: inspect result.toolResponse.rawV2 and its observed envelope. Prefer the declared getters above."
|
|
1576
1718
|
);
|
|
1577
|
-
console.log(
|
|
1578
|
-
`More: deepline tools describe ${contract.toolId} --pricing-only | --schema-only | --examples-only | --getters-only | --json`
|
|
1579
|
-
);
|
|
1719
|
+
console.log(`More: deepline describe ${contract.toolId} --json`);
|
|
1580
1720
|
}
|
|
1581
1721
|
function toolPricingOnlyLines(tool, requestedToolId, options = {}) {
|
|
1582
1722
|
if (isMonitorTypeTool(tool)) {
|
|
@@ -1718,7 +1858,7 @@ function printPlayLikeToolUsage(tool, requestedToolId) {
|
|
|
1718
1858
|
)
|
|
1719
1859
|
);
|
|
1720
1860
|
if (playReference) {
|
|
1721
|
-
console.log(`deepline
|
|
1861
|
+
console.log(`deepline describe ${playReference}`);
|
|
1722
1862
|
}
|
|
1723
1863
|
}
|
|
1724
1864
|
function printToolGettersOnly(tool, requestedToolId) {
|
|
@@ -2993,12 +3133,16 @@ async function executeTool(args) {
|
|
|
2993
3133
|
}
|
|
2994
3134
|
return delivered ? executeExitCode : 1;
|
|
2995
3135
|
}
|
|
3136
|
+
|
|
2996
3137
|
export {
|
|
2997
|
-
buildToolExecuteBaseEnvelope,
|
|
2998
|
-
extractToolExecutionWarningMessages,
|
|
2999
3138
|
isMonitorTypeTool,
|
|
3000
|
-
printCompactToolContract,
|
|
3001
|
-
printMonitorTypeContract,
|
|
3002
3139
|
registerToolsCommands,
|
|
3003
|
-
toolContractJsonForDescribe
|
|
3140
|
+
toolContractJsonForDescribe,
|
|
3141
|
+
printMonitorTypeContract,
|
|
3142
|
+
publicToolSchemas,
|
|
3143
|
+
describedTool,
|
|
3144
|
+
printCompactToolContract,
|
|
3145
|
+
toolMetadataJsonForDescribe,
|
|
3146
|
+
extractToolExecutionWarningMessages,
|
|
3147
|
+
buildToolExecuteBaseEnvelope
|
|
3004
3148
|
};
|
|
@@ -14,7 +14,7 @@ var _chunkLA46MMTLjs = require('./chunk-LA46MMTL.js');
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkFSZTWQFKjs = require('./chunk-FSZTWQFK.js');
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
@@ -2743,8 +2743,8 @@ function runtimeSelectionHeaders(runtime) {
|
|
|
2743
2743
|
}
|
|
2744
2744
|
const receivers = _optionalChain([process, 'access', _102 => _102.env, 'access', _103 => _103.DEEPLINE_RUNTIME_RETAINED_PIPELINE_RECEIVERS, 'optionalAccess', _104 => _104.trim, 'call', _105 => _105()]);
|
|
2745
2745
|
return {
|
|
2746
|
-
[
|
|
2747
|
-
...receivers ? { [
|
|
2746
|
+
[_chunkFSZTWQFKjs.RUNTIME_ENVIRONMENT_TOKEN_HEADER]: token,
|
|
2747
|
+
...receivers ? { [_chunkFSZTWQFKjs.RETAINED_PIPELINE_RECEIVERS_HEADER]: receivers } : {}
|
|
2748
2748
|
};
|
|
2749
2749
|
}
|
|
2750
2750
|
function isolatedCiRuntimeEventReadHeaders() {
|
|
@@ -2760,7 +2760,7 @@ function isolatedCiRuntimeEventReadHeaders() {
|
|
|
2760
2760
|
"RUNTIME_EVENT_INTERNAL_TOKEN_REQUIRED"
|
|
2761
2761
|
);
|
|
2762
2762
|
}
|
|
2763
|
-
return { [
|
|
2763
|
+
return { [_chunkFSZTWQFKjs.COORDINATOR_INTERNAL_TOKEN_HEADER]: token };
|
|
2764
2764
|
}
|
|
2765
2765
|
function normalizeTestPolicyOverrides(value, source) {
|
|
2766
2766
|
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
@@ -3061,8 +3061,8 @@ var DeeplineClient = (_class = class _DeeplineClient {
|
|
|
3061
3061
|
* @throws {@link ConfigError} if no API key can be resolved from any source.
|
|
3062
3062
|
*/
|
|
3063
3063
|
constructor(options) {
|
|
3064
|
-
this.config =
|
|
3065
|
-
this.http = new (0,
|
|
3064
|
+
this.config = _chunkFSZTWQFKjs.resolveConfig.call(void 0, options);
|
|
3065
|
+
this.http = new (0, _chunkFSZTWQFKjs.HttpClient)(this.config);
|
|
3066
3066
|
this.toolCalls = new ToolCalls(
|
|
3067
3067
|
this.http,
|
|
3068
3068
|
this.config.timeout,
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
npmSupportsAllowScripts,
|
|
3
3
|
readNpmVersion
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OTA5C7DD.mjs";
|
|
5
5
|
import {
|
|
6
6
|
resolveShellSpawn,
|
|
7
7
|
runSkillsCommand
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-N2DXWS6W.mjs";
|
|
9
9
|
import {
|
|
10
10
|
printCommandEnvelope
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CSH4PKPJ.mjs";
|
|
12
12
|
import {
|
|
13
13
|
autoDetectBaseUrl
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-DOI3UBGV.mjs";
|
|
15
15
|
|
|
16
16
|
// src/cli/commands/update.ts
|
|
17
17
|
import { spawn, spawnSync } from "child_process";
|