deepline 0.3.374 → 0.3.375

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.
Files changed (98) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  2. package/dist/cli/auth-B7CLYD7R.js +35 -0
  3. package/dist/cli/{auth-YGCDA4WG.mjs → auth-U3Y7DTIG.mjs} +6 -4
  4. package/dist/cli/{billing-ZXRKPD5D.js → billing-P2DNRAND.js} +73 -73
  5. package/dist/cli/{billing-3ZLR3CJU.mjs → billing-TKARGBO3.mjs} +4 -4
  6. package/dist/cli/{chunk-VZSVYNZH.mjs → chunk-4GP56LRE.mjs} +12 -12
  7. package/dist/cli/{chunk-JSK6GUY6.js → chunk-4WINCNNH.js} +13 -9
  8. package/dist/cli/{chunk-NOSIMGZV.js → chunk-ADSZGPYZ.js} +1 -1
  9. package/dist/cli/{chunk-E6BZWURC.mjs → chunk-B2LFDTXZ.mjs} +15 -6
  10. package/dist/cli/{chunk-62IBVKWB.mjs → chunk-B3TQIJ6L.mjs} +1 -1
  11. package/dist/cli/{chunk-PCYCNZLR.js → chunk-CUIBDSSS.js} +8 -8
  12. package/dist/cli/{chunk-HC5L6KGE.js → chunk-DAG4ZBTJ.js} +1495 -1495
  13. package/dist/cli/{chunk-YPVTQRUM.js → chunk-DHTG5CCI.js} +15 -6
  14. package/dist/cli/{chunk-RXR7A2MX.js → chunk-F5CU5ALX.js} +26 -26
  15. package/dist/cli/{chunk-46JCJ7FT.mjs → chunk-FWF24ULX.mjs} +13 -9
  16. package/dist/cli/{chunk-3XKAOV74.js → chunk-GN5QM2BB.js} +6 -6
  17. package/dist/cli/{chunk-T35LCTC7.js → chunk-HEF6UDGA.js} +235 -235
  18. package/dist/cli/{chunk-TZTGK5JQ.js → chunk-HP4BE43N.js} +52 -51
  19. package/dist/cli/{chunk-GT6KGIWV.mjs → chunk-HSIVHAZA.mjs} +3 -3
  20. package/dist/cli/{chunk-IZVGMVNX.mjs → chunk-IG3GOO4T.mjs} +1 -1
  21. package/dist/cli/{chunk-JK547IDB.js → chunk-IQTHRG6E.js} +15 -15
  22. package/dist/cli/{chunk-53PZA4EP.js → chunk-KK4XPUVA.js} +8 -8
  23. package/dist/cli/{chunk-RT5ICJ5V.js → chunk-LZUWGLM4.js} +2 -2
  24. package/dist/cli/{chunk-MOBOAZMA.js → chunk-M2HVNJ47.js} +60 -60
  25. package/dist/cli/{chunk-NNYQ24O5.mjs → chunk-M5QDOHLG.mjs} +1 -1
  26. package/dist/cli/{chunk-YFFH6NDU.mjs → chunk-MKS7C3YR.mjs} +3 -2
  27. package/dist/cli/{chunk-MQ5UW5AZ.mjs → chunk-MPQSBHMA.mjs} +4 -4
  28. package/dist/cli/{chunk-O7KJYX7R.js → chunk-MTBQEND4.js} +15 -15
  29. package/dist/cli/{chunk-X5V2QTDR.js → chunk-NVXMPGM4.js} +65 -84
  30. package/dist/cli/{chunk-OYTPVM2R.mjs → chunk-QEEIEHGV.mjs} +2 -2
  31. package/dist/cli/{chunk-2DAWTVNN.mjs → chunk-SJVJZOPT.mjs} +2 -2
  32. package/dist/cli/{chunk-OS7GXARW.mjs → chunk-STYH5U6W.mjs} +7 -7
  33. package/dist/cli/{chunk-SBB27CIJ.mjs → chunk-Z4ARN4X3.mjs} +2 -2
  34. package/dist/cli/{chunk-FT6O2ZVJ.mjs → chunk-ZFWU5V2A.mjs} +13 -32
  35. package/dist/cli/{chunk-A62HBMHY.mjs → chunk-ZHXPNJQI.mjs} +1467 -1467
  36. package/dist/cli/command-docs.js +2 -2
  37. package/dist/cli/command-docs.mjs +1 -1
  38. package/dist/cli/{csv-VEHHRUG4.mjs → csv-3FTYTEJ3.mjs} +3 -3
  39. package/dist/cli/{csv-WSRTANXI.js → csv-WAEVGKHF.js} +12 -12
  40. package/dist/cli/{db-BH25DX2G.mjs → db-HUGGFIVS.mjs} +4 -4
  41. package/dist/cli/{db-JXZNMFCE.js → db-UDMDGNKO.js} +29 -29
  42. package/dist/cli/{describe-TMBECHTX.mjs → describe-EOBOGTB5.mjs} +130 -20
  43. package/dist/cli/{describe-N2OBGVJM.js → describe-SIAKZYRK.js} +144 -34
  44. package/dist/cli/{executions-TX5CQF66.js → executions-HYYP27MG.js} +6 -6
  45. package/dist/cli/{executions-Y4HQHYSO.mjs → executions-O6Z2HSLK.mjs} +4 -4
  46. package/dist/cli/{feedback-ASEJ5A7I.js → feedback-3DWSBHKS.js} +7 -7
  47. package/dist/cli/{feedback-W7SRXYSP.mjs → feedback-RRAMGMQV.mjs} +3 -3
  48. package/dist/cli/{git-2W7CZZRC.mjs → git-KVAK7VOL.mjs} +4 -4
  49. package/dist/cli/git-M36KWCCG.js +23 -0
  50. package/dist/cli/index.js +106 -91
  51. package/dist/cli/index.mjs +63 -48
  52. package/dist/cli/{legacy-noops-TXMPY3P7.mjs → legacy-noops-MQNCDMY7.mjs} +4 -4
  53. package/dist/cli/{legacy-noops-NJYAAGBY.js → legacy-noops-V5GQXXUR.js} +7 -7
  54. package/dist/cli/{monitors-G4L65QGQ.mjs → monitors-6FB63TDM.mjs} +4 -4
  55. package/dist/cli/{monitors-YLKTQ57D.js → monitors-RFGQILPW.js} +85 -85
  56. package/dist/cli/{org-ENXO2A33.js → org-L33EPH2E.js} +64 -64
  57. package/dist/cli/{org-BCHOWKIA.mjs → org-TZPQDDVX.mjs} +4 -4
  58. package/dist/cli/{play-JBY7HUYN.mjs → play-PU23OETO.mjs} +8 -8
  59. package/dist/cli/play-YR2XQARF.js +155 -0
  60. package/dist/cli/{providers-GWFX3E7C.js → providers-2RHIKO22.js} +7 -7
  61. package/dist/cli/{providers-JV2DZG43.mjs → providers-QGQR6ZZF.mjs} +4 -4
  62. package/dist/cli/{quickstart-AIXURXZQ.mjs → quickstart-24DQYBW7.mjs} +3 -3
  63. package/dist/cli/{quickstart-CASPK7F4.js → quickstart-BGQVPI7W.js} +5 -5
  64. package/dist/cli/{search-DYQB7LHK.mjs → search-EUN7YFMX.mjs} +5 -5
  65. package/dist/cli/search-OHELMK6E.js +26 -0
  66. package/dist/cli/{secrets-RQZPIPO5.mjs → secrets-OOHN6LNJ.mjs} +4 -4
  67. package/dist/cli/{secrets-AZQG2E4U.js → secrets-XL7GUTQA.js} +13 -13
  68. package/dist/cli/{sessions-ZY6RBYD4.js → sessions-FD5XB7M2.js} +5 -5
  69. package/dist/cli/{sessions-3FJJDMBB.mjs → sessions-SDN4C3YS.mjs} +4 -4
  70. package/dist/cli/{settings-UNZDQGSE.mjs → settings-3MXRXYXI.mjs} +7 -7
  71. package/dist/cli/{settings-GXKWNR5V.js → settings-6ZEKVAYL.js} +74 -74
  72. package/dist/cli/{setup-PIRXJ2KJ.mjs → setup-DWTR6HNT.mjs} +6 -6
  73. package/dist/cli/{setup-UURZD4YO.js → setup-VKQ5EJZR.js} +41 -41
  74. package/dist/cli/skills-6GFW4GCW.js +28 -0
  75. package/dist/cli/{skills-B4AQEIAF.mjs → skills-ISG5UUZW.mjs} +4 -4
  76. package/dist/cli/{tools-UMGQKUSW.mjs → tools-JTC3DR6M.mjs} +7 -7
  77. package/dist/cli/tools-LK4L6VCK.js +40 -0
  78. package/dist/cli/{update-SFUTMEKL.mjs → update-GMTVIHCG.mjs} +6 -6
  79. package/dist/cli/update-PSJLAW4Q.js +28 -0
  80. package/dist/cli/{workflow-CDAJCMT7.js → workflow-2765Y3Y5.js} +15 -15
  81. package/dist/cli/{workflow-ON6XVW36.mjs → workflow-3POT3VFY.mjs} +5 -5
  82. package/dist/index.js +8 -8
  83. package/dist/index.mjs +7 -7
  84. package/dist/install-integrity.json +76 -78
  85. package/dist/release.d.mts +1 -1
  86. package/dist/release.d.ts +1 -1
  87. package/dist/release.js +2 -2
  88. package/dist/release.mjs +1 -1
  89. package/package.json +1 -1
  90. package/dist/cli/auth-IFXXXZP6.js +0 -33
  91. package/dist/cli/client-O6IEMURJ.js +0 -20
  92. package/dist/cli/client-TV254HC4.mjs +0 -20
  93. package/dist/cli/git-SSSOIQ2L.js +0 -23
  94. package/dist/cli/play-SSJ3PO4D.js +0 -155
  95. package/dist/cli/search-N7K6A2YV.js +0 -26
  96. package/dist/cli/skills-4OUZLKTW.js +0 -28
  97. package/dist/cli/tools-MIZS5UN6.js +0 -40
  98. package/dist/cli/update-3CO7LA4M.js +0 -28
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await 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 _chunkT35LCTC7js = require('./chunk-T35LCTC7.js');
4
3
 
5
4
 
6
5
 
6
+ var _chunkNVXMPGM4js = require('./chunk-NVXMPGM4.js');
7
7
 
8
- var _chunkX5V2QTDRjs = require('./chunk-X5V2QTDR.js');
9
8
 
9
+ var _chunkHEF6UDGAjs = require('./chunk-HEF6UDGA.js');
10
10
 
11
11
 
12
12
 
@@ -14,39 +14,106 @@ var _chunkX5V2QTDRjs = require('./chunk-X5V2QTDR.js');
14
14
 
15
15
 
16
16
 
17
- var _chunkYPVTQRUMjs = require('./chunk-YPVTQRUM.js');
17
+
18
+
19
+ var _chunkDHTG5CCIjs = require('./chunk-DHTG5CCI.js');
18
20
  require('./chunk-AID3OYVJ.js');
19
21
  require('./chunk-QGKPTBRR.js');
20
22
  require('./chunk-3KC45UVF.js');
21
23
  require('./chunk-5JLQPVNX.js');
22
- require('./chunk-53PZA4EP.js');
23
- require('./chunk-RXR7A2MX.js');
24
- require('./chunk-GEJDBXXM.js');
24
+ require('./chunk-KK4XPUVA.js');
25
+ require('./chunk-F5CU5ALX.js');
25
26
  require('./chunk-3VN4FTE3.js');
27
+ require('./chunk-GEJDBXXM.js');
26
28
  require('./chunk-5O4B6AUN.js');
27
29
 
28
30
 
29
- var _chunkHC5L6KGEjs = require('./chunk-HC5L6KGE.js');
31
+ var _chunkDAG4ZBTJjs = require('./chunk-DAG4ZBTJ.js');
30
32
  require('./chunk-S6R3OX7B.js');
31
33
  require('./chunk-LA46MMTL.js');
32
- require('./chunk-AYHLUHE5.js');
33
34
  require('./chunk-QJBJZVG6.js');
35
+ require('./chunk-AYHLUHE5.js');
34
36
  require('./chunk-WJYPBHTE.js');
35
37
 
36
38
 
37
- var _chunk3XKAOV74js = require('./chunk-3XKAOV74.js');
38
- require('./chunk-JK547IDB.js');
39
+ var _chunkGN5QM2BBjs = require('./chunk-GN5QM2BB.js');
40
+ require('./chunk-IQTHRG6E.js');
39
41
  require('./chunk-XNYIZMNQ.js');
40
42
 
41
43
 
42
44
  var _chunk7P5AA3SNjs = require('./chunk-7P5AA3SN.js');
43
- require('./chunk-NOSIMGZV.js');
45
+ require('./chunk-ADSZGPYZ.js');
44
46
  require('./chunk-OG64RBAC.js');
45
47
  require('./chunk-COGTRVWW.js');
46
48
 
47
49
  // src/cli/commands/describe.ts
48
50
  var _fs = require('fs');
49
51
  var _path = require('path');
52
+
53
+ // src/cli/tool-features.ts
54
+ var VIEWS = {
55
+ ai_gateway_model: async (value, _tool, { describeModel }) => {
56
+ if (!value)
57
+ throw new Error("Name a model: --feature model=<provider/model>");
58
+ const model = await describeModel(value);
59
+ const unlisted = model.modelMetadata ? [] : [
60
+ `Warning: ${value} is not in the live AI Gateway catalog; check the id at https://ai-gateway.vercel.sh/v1/models.`
61
+ ];
62
+ return {
63
+ details: model,
64
+ lines: [
65
+ ...unlisted,
66
+ ..._chunkNVXMPGM4js.formatModelDescription.call(void 0, model).trimEnd().split("\n")
67
+ ]
68
+ };
69
+ },
70
+ byok: async (_value, tool) => ({
71
+ details: _nullishCoalesce(tool.byok, () => ( {})),
72
+ lines: _chunkDHTG5CCIjs.byokLines.call(void 0, _nullishCoalesce(tool.byok, () => ( {})))
73
+ })
74
+ };
75
+ var isFeatureView = (value) => typeof value === "string" && Object.hasOwn(VIEWS, value);
76
+ var asRecord = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : {};
77
+ function inputProperties(tool) {
78
+ const inputSchema = asRecord(tool.inputSchema);
79
+ const jsonSchema = asRecord(_nullishCoalesce(inputSchema.jsonSchema, () => ( inputSchema)));
80
+ return asRecord(jsonSchema.properties);
81
+ }
82
+ var firstSentence = (text) => typeof text === "string" ? _nullishCoalesce(text.split(/(?<=\.)\s/)[0], () => ( text)) : "";
83
+ function toolFeatures(tool) {
84
+ const inputs = Object.entries(inputProperties(tool)).flatMap(
85
+ ([name, value]) => {
86
+ const schema = asRecord(value);
87
+ if (!isFeatureView(schema.feature)) return [];
88
+ return [
89
+ {
90
+ name,
91
+ summary: firstSentence(schema.description),
92
+ view: schema.feature,
93
+ ...typeof schema.default === "string" ? { defaultValue: schema.default } : {}
94
+ }
95
+ ];
96
+ }
97
+ );
98
+ const byok = _optionalChain([tool, 'access', _ => _.byok, 'optionalAccess', _2 => _2.supported]) === true ? [
99
+ {
100
+ name: "byok",
101
+ summary: "Run it on your own provider credentials.",
102
+ view: "byok"
103
+ }
104
+ ] : [];
105
+ return [...inputs, ...byok];
106
+ }
107
+ function parseFeatureRequest(request) {
108
+ const [name = "", ...rest] = request.split("=");
109
+ const value = rest.join("=");
110
+ return value ? { name, value } : { name };
111
+ }
112
+ async function describeFeature(tool, feature, value, dependencies) {
113
+ return VIEWS[feature.view](_nullishCoalesce(value, () => ( feature.defaultValue)), tool, dependencies);
114
+ }
115
+
116
+ // src/cli/commands/describe.ts
50
117
  var FILTER_OF = {
51
118
  tool: "tools",
52
119
  monitor_type: "monitors",
@@ -66,11 +133,11 @@ async function found(lookup) {
66
133
  async function describeAnything(name, options, onMissing) {
67
134
  const maintainedOnly = options.prebuilt === true || options.tool === true;
68
135
  const wants = (filter) => (!options.kinds || options.kinds.includes(filter)) && !(maintainedOnly && filter === "custom");
69
- const client = new (0, _chunkHC5L6KGEjs.DeeplineClient)();
136
+ const client = new (0, _chunkDAG4ZBTJjs.DeeplineClient)();
70
137
  const play = async (reference) => {
71
138
  const record2 = await client.describePlay(reference);
72
139
  return {
73
- described: _chunkT35LCTC7js.describedPlay.call(void 0, record2),
140
+ described: _chunkHEF6UDGAjs.describedPlay.call(void 0, record2),
74
141
  record: { ...record2 },
75
142
  schemas: {
76
143
  inputSchema: _nullishCoalesce(record2.inputSchema, () => ( null)),
@@ -81,15 +148,23 @@ async function describeAnything(name, options, onMissing) {
81
148
  const tool = async () => {
82
149
  const record2 = await _asyncNullishCoalesce(options.fetchedTool, async () => ( await client.getTool(name)));
83
150
  const { byok } = record2;
151
+ const features = toolFeatures(record2);
84
152
  return {
85
153
  described: {
86
- ..._chunkX5V2QTDRjs.describedTool.call(void 0, record2, name),
87
- // Shown when asked for, or when the tool runs only on your own
88
- // credentials; a server that does not report it shows as unknown.
89
- ...options.byok || _optionalChain([byok, 'optionalAccess', _ => _.required]) === true ? { byok: _nullishCoalesce(byok, () => ( {})) } : {}
154
+ ..._chunkNVXMPGM4js.describedTool.call(void 0, record2, name),
155
+ // Shown when the tool runs only on your own credentials; otherwise
156
+ // it is a feature, described with --feature byok.
157
+ ..._optionalChain([byok, 'optionalAccess', _3 => _3.required]) === true ? { byok } : {},
158
+ ...features.length ? { features: features.map(({ view: _view, ...feature }) => feature) } : {}
90
159
  },
91
- record: _chunkX5V2QTDRjs.toolMetadataJsonForDescribe.call(void 0, record2, name),
92
- schemas: _chunkX5V2QTDRjs.publicToolSchemas.call(void 0, record2)
160
+ record: _chunkNVXMPGM4js.toolMetadataJsonForDescribe.call(void 0, record2, name),
161
+ schemas: _chunkNVXMPGM4js.publicToolSchemas.call(void 0, record2),
162
+ feature: (featureName, value) => {
163
+ const feature = features.find(({ name: name2 }) => name2 === featureName);
164
+ return feature ? describeFeature(record2, feature, value, {
165
+ describeModel: (model) => client.describeModel(model)
166
+ }) : null;
167
+ }
93
168
  };
94
169
  };
95
170
  const sources = name.includes("/") ? [{ kinds: ["prebuilts", "custom"], find: () => play(name) }] : [
@@ -120,6 +195,33 @@ async function describeAnything(name, options, onMissing) {
120
195
  const note = shadows ? `Showing your workspace play "${name}". It has the same name as a Deepline ${shadows.kind.replace("_", " ")}; see that one with: ${shadows.describeCommand}` : null;
121
196
  const verbose = options.verbose === true;
122
197
  const json = options.json === true;
198
+ if (options.feature !== void 0) {
199
+ const { name: featureName, value } = parseFeatureRequest(options.feature);
200
+ const pending = _nullishCoalesce(_optionalChain([chosen, 'access', _4 => _4.feature, 'optionalCall', _5 => _5(featureName, value)]), () => ( null));
201
+ const features = _nullishCoalesce(described.features, () => ( []));
202
+ if (!pending) {
203
+ console.error(
204
+ features.length ? `${described.id} has no feature "${featureName}". Its features: ${features.map(({ name: name2 }) => name2).join(", ")}.` : `${described.id} has no features to describe.`
205
+ );
206
+ return 2;
207
+ }
208
+ const shownValue = _nullishCoalesce(value, () => ( _optionalChain([features, 'access', _6 => _6.find, 'call', _7 => _7(({ name: name2 }) => name2 === featureName), 'optionalAccess', _8 => _8.defaultValue])));
209
+ const { details, lines } = await pending;
210
+ return deliver(
211
+ {
212
+ kind: described.kind,
213
+ id: described.id,
214
+ feature: featureName,
215
+ ...shownValue ? { value: shownValue } : {},
216
+ details
217
+ },
218
+ [
219
+ `${described.id} --feature ${featureName}${shownValue ? `=${shownValue}` : ""}`,
220
+ ...lines
221
+ ],
222
+ { json, out: options.out }
223
+ );
224
+ }
123
225
  const fields = (_nullishCoalesce(options.fields, () => ( ""))).split(",").map((name2) => name2.trim()).filter(Boolean);
124
226
  const named = options.cliExample === true || options.playExample === true;
125
227
  const shown = options.example !== false;
@@ -139,7 +241,7 @@ async function describeAnything(name, options, onMissing) {
139
241
  },
140
242
  lines: [
141
243
  `${described.id} [${described.kind.replace("_", " ")}]`,
142
- ..._chunkYPVTQRUMjs.schemaLines.call(void 0, described, {
244
+ ..._chunkDHTG5CCIjs.schemaLines.call(void 0, described, {
143
245
  full: true,
144
246
  secondary: true,
145
247
  ...fields.length ? { fields } : {}
@@ -148,16 +250,16 @@ async function describeAnything(name, options, onMissing) {
148
250
  } : {
149
251
  envelope: {
150
252
  ...summary,
151
- inputs: inputs.map(_chunkYPVTQRUMjs.topLevelField),
152
- outputs: outputs.map(_chunkYPVTQRUMjs.topLevelField),
153
- ...described.rowInputs ? { rowInputs: described.rowInputs.map(_chunkYPVTQRUMjs.topLevelField) } : {},
154
- ...described.rowOutputs ? { rowOutputs: described.rowOutputs.map(_chunkYPVTQRUMjs.topLevelField) } : {},
155
- runExamples: _chunkYPVTQRUMjs.examples.call(void 0, described, { verbose }),
253
+ inputs: inputs.map(_chunkDHTG5CCIjs.topLevelField),
254
+ outputs: outputs.map(_chunkDHTG5CCIjs.topLevelField),
255
+ ...described.rowInputs ? { rowInputs: described.rowInputs.map(_chunkDHTG5CCIjs.topLevelField) } : {},
256
+ ...described.rowOutputs ? { rowOutputs: described.rowOutputs.map(_chunkDHTG5CCIjs.topLevelField) } : {},
257
+ runExamples: _chunkDHTG5CCIjs.examples.call(void 0, described, { verbose }),
156
258
  ...shadows ? { shadows, note } : {}
157
259
  },
158
260
  lines: [
159
261
  ...note ? [`Note: ${note}`, ""] : [],
160
- ..._chunkYPVTQRUMjs.describedLines.call(void 0, described, {
262
+ ..._chunkDHTG5CCIjs.describedLines.call(void 0, described, {
161
263
  cli: shown && (!named || options.cliExample === true),
162
264
  play: shown && (!named || options.playExample === true),
163
265
  explain: named,
@@ -173,32 +275,35 @@ async function describeAnything(name, options, onMissing) {
173
275
  // its value stands, so callers of the older commands read what they did.
174
276
  { ...view.envelope, ...record }
175
277
  ) : {
176
- ..._chunkYPVTQRUMjs.describedJson.call(void 0, described, {
278
+ ..._chunkDHTG5CCIjs.describedJson.call(void 0, described, {
177
279
  secondary: verbose || fields.length > 0,
178
280
  verbose
179
281
  }),
180
282
  ...shadows ? { shadows, note } : {}
181
283
  };
182
- const text = `${view.lines.join("\n")}
284
+ return deliver(envelope, view.lines, { json, out: options.out });
285
+ }
286
+ function deliver(envelope, lines, { json, out }) {
287
+ const text = `${lines.join("\n")}
183
288
  `;
184
- if (options.out) {
185
- const path = _path.resolve.call(void 0, options.out);
289
+ if (out) {
290
+ const path = _path.resolve.call(void 0, out);
186
291
  const content = json ? `${JSON.stringify(envelope, null, 2)}
187
292
  ` : text;
188
293
  _fs.writeFileSync.call(void 0, path, content);
189
294
  const bytes = Buffer.byteLength(content);
190
- _chunk3XKAOV74js.printCommandEnvelope.call(void 0,
295
+ _chunkGN5QM2BBjs.printCommandEnvelope.call(void 0,
191
296
  { path, bytes },
192
297
  { json, text: `Wrote ${path} (${bytes} bytes)
193
298
  ` }
194
299
  );
195
300
  return 0;
196
301
  }
197
- _chunk3XKAOV74js.printCommandEnvelope.call(void 0, envelope, { json, text });
302
+ _chunkGN5QM2BBjs.printCommandEnvelope.call(void 0, envelope, { json, text });
198
303
  return 0;
199
304
  }
200
305
  function registerDescribeCommand(program) {
201
- _chunkYPVTQRUMjs.addDescribeOptions.call(void 0, program.command("describe <name>")).description(
306
+ _chunkDHTG5CCIjs.addDescribeOptions.call(void 0, program.command("describe <name>")).description(
202
307
  "Describe anything search returns: a tool, monitor type, or play."
203
308
  ).addHelpText(
204
309
  "after",
@@ -225,12 +330,17 @@ Examples in the output:
225
330
  --play-example only the in-play example, with how inputs and outputs work
226
331
  --no-example no examples
227
332
 
333
+ Features:
334
+ A tool lists its features: parts with their own description, such as the
335
+ model an AI tool runs. --feature <name> describes one at its default value,
336
+ --feature <name>=<value> at another, e.g. --feature model=openai/gpt-5.6-luna.
337
+
228
338
  Schema size and format:
229
339
  Secondary fields (diagnostics, attempt logs, echoes of input) are left out
230
340
  by default; the output names them, and --verbose shows them.
231
341
  --fields email,miss_reason shows only the fields you name, plus every
232
342
  required input, and names the rest. Use it when you know what you need.
233
- A schema over ${_chunkYPVTQRUMjs.SCHEMA_LINE_LIMIT} lines is folded: deeper objects show only their field
343
+ A schema over ${_chunkDHTG5CCIjs.SCHEMA_LINE_LIMIT} lines is folded: deeper objects show only their field
234
344
  names. A shape used more than once is printed once under Types.
235
345
  --full-schema the normal output, with the schema not folded
236
346
  --schema-only only the schema, not folded, and nothing else
@@ -1,15 +1,15 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkHC5L6KGEjs = require('./chunk-HC5L6KGE.js');
3
+ var _chunkDAG4ZBTJjs = require('./chunk-DAG4ZBTJ.js');
4
4
  require('./chunk-S6R3OX7B.js');
5
5
  require('./chunk-LA46MMTL.js');
6
6
 
7
7
 
8
- var _chunk3XKAOV74js = require('./chunk-3XKAOV74.js');
9
- require('./chunk-JK547IDB.js');
8
+ var _chunkGN5QM2BBjs = require('./chunk-GN5QM2BB.js');
9
+ require('./chunk-IQTHRG6E.js');
10
10
  require('./chunk-XNYIZMNQ.js');
11
11
  require('./chunk-7P5AA3SN.js');
12
- require('./chunk-NOSIMGZV.js');
12
+ require('./chunk-ADSZGPYZ.js');
13
13
  require('./chunk-OG64RBAC.js');
14
14
  require('./chunk-COGTRVWW.js');
15
15
 
@@ -17,10 +17,10 @@ require('./chunk-COGTRVWW.js');
17
17
  function registerExecutionsCommands(program) {
18
18
  const executions = program.command("executions").description("Inspect and recover keyed tool executions.");
19
19
  executions.command("get").description("Retrieve a tool execution by its idempotency key.").requiredOption("--idempotency-key <key>", "Stable execution recovery key").option("--json", "Emit the stable JSON response").action(async (options) => {
20
- const result = await new (0, _chunkHC5L6KGEjs.DeeplineClient)().executions.getByKey(
20
+ const result = await new (0, _chunkDAG4ZBTJjs.DeeplineClient)().executions.getByKey(
21
21
  options.idempotencyKey
22
22
  );
23
- _chunk3XKAOV74js.printCommandEnvelope.call(void 0, result, { json: true });
23
+ _chunkGN5QM2BBjs.printCommandEnvelope.call(void 0, result, { json: true });
24
24
  });
25
25
  }
26
26
 
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  DeeplineClient
3
- } from "./chunk-A62HBMHY.mjs";
3
+ } from "./chunk-ZHXPNJQI.mjs";
4
4
  import "./chunk-6IKARAYD.mjs";
5
5
  import "./chunk-CBVIJSHF.mjs";
6
6
  import {
7
7
  printCommandEnvelope
8
- } from "./chunk-NNYQ24O5.mjs";
9
- import "./chunk-VZSVYNZH.mjs";
8
+ } from "./chunk-M5QDOHLG.mjs";
9
+ import "./chunk-4GP56LRE.mjs";
10
10
  import "./chunk-DLIRSHV6.mjs";
11
11
  import "./chunk-NXGCO4JB.mjs";
12
- import "./chunk-IZVGMVNX.mjs";
12
+ import "./chunk-IG3GOO4T.mjs";
13
13
  import "./chunk-WZYKRD7T.mjs";
14
14
  import "./chunk-KRD6H754.mjs";
15
15
 
@@ -2,13 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk3XKAOV74js = require('./chunk-3XKAOV74.js');
5
+ var _chunkGN5QM2BBjs = require('./chunk-GN5QM2BB.js');
6
6
 
7
7
 
8
- var _chunkJK547IDBjs = require('./chunk-JK547IDB.js');
8
+ var _chunkIQTHRG6Ejs = require('./chunk-IQTHRG6E.js');
9
9
  require('./chunk-XNYIZMNQ.js');
10
10
  require('./chunk-7P5AA3SN.js');
11
- require('./chunk-NOSIMGZV.js');
11
+ require('./chunk-ADSZGPYZ.js');
12
12
  require('./chunk-OG64RBAC.js');
13
13
  require('./chunk-COGTRVWW.js');
14
14
 
@@ -17,18 +17,18 @@ var _commander = require('commander');
17
17
  var _fs = require('fs');
18
18
  async function handleFeedback(text, options) {
19
19
  const message = resolveFeedbackText(text, options.file);
20
- const { http } = _chunk3XKAOV74js.getAuthedHttpClient.call(void 0, );
21
- const sessionId = _chunkJK547IDBjs.agentSessionIdFromEnvironment.call(void 0, );
20
+ const { http } = _chunkGN5QM2BBjs.getAuthedHttpClient.call(void 0, );
21
+ const sessionId = _chunkIQTHRG6Ejs.agentSessionIdFromEnvironment.call(void 0, );
22
22
  const response = await http.post("/api/v2/cli/feedback", {
23
23
  text: message,
24
24
  requested: options.requested === true,
25
- environment: _chunk3XKAOV74js.collectLocalEnvInfo.call(void 0, ),
25
+ environment: _chunkGN5QM2BBjs.collectLocalEnvInfo.call(void 0, ),
26
26
  ...sessionId ? { session_id: sessionId } : {},
27
27
  ...options.command ? { command: options.command } : {},
28
28
  ...options.payload ? { payload: options.payload } : {},
29
29
  ...options.errorOutcome ? { error_outcome: options.errorOutcome } : {}
30
30
  });
31
- _chunk3XKAOV74js.printCommandEnvelope.call(void 0,
31
+ _chunkGN5QM2BBjs.printCommandEnvelope.call(void 0,
32
32
  {
33
33
  ...response,
34
34
  render: {
@@ -2,13 +2,13 @@ import {
2
2
  collectLocalEnvInfo,
3
3
  getAuthedHttpClient,
4
4
  printCommandEnvelope
5
- } from "./chunk-NNYQ24O5.mjs";
5
+ } from "./chunk-M5QDOHLG.mjs";
6
6
  import {
7
7
  agentSessionIdFromEnvironment
8
- } from "./chunk-VZSVYNZH.mjs";
8
+ } from "./chunk-4GP56LRE.mjs";
9
9
  import "./chunk-DLIRSHV6.mjs";
10
10
  import "./chunk-NXGCO4JB.mjs";
11
- import "./chunk-IZVGMVNX.mjs";
11
+ import "./chunk-IG3GOO4T.mjs";
12
12
  import "./chunk-WZYKRD7T.mjs";
13
13
  import "./chunk-KRD6H754.mjs";
14
14
 
@@ -5,12 +5,12 @@ import {
5
5
  renderDeployment,
6
6
  renderDeploymentMonitorLines,
7
7
  renderDeploymentPlayLines
8
- } from "./chunk-2DAWTVNN.mjs";
9
- import "./chunk-NNYQ24O5.mjs";
10
- import "./chunk-VZSVYNZH.mjs";
8
+ } from "./chunk-SJVJZOPT.mjs";
9
+ import "./chunk-M5QDOHLG.mjs";
10
+ import "./chunk-4GP56LRE.mjs";
11
11
  import "./chunk-DLIRSHV6.mjs";
12
12
  import "./chunk-NXGCO4JB.mjs";
13
- import "./chunk-IZVGMVNX.mjs";
13
+ import "./chunk-IG3GOO4T.mjs";
14
14
  import "./chunk-WZYKRD7T.mjs";
15
15
  import "./chunk-KRD6H754.mjs";
16
16
  export {
@@ -0,0 +1,23 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+ var _chunkF5CU5ALXjs = require('./chunk-F5CU5ALX.js');
9
+ require('./chunk-GN5QM2BB.js');
10
+ require('./chunk-IQTHRG6E.js');
11
+ require('./chunk-XNYIZMNQ.js');
12
+ require('./chunk-7P5AA3SN.js');
13
+ require('./chunk-ADSZGPYZ.js');
14
+ require('./chunk-OG64RBAC.js');
15
+ require('./chunk-COGTRVWW.js');
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+ exports.handleDeploymentGet = _chunkF5CU5ALXjs.handleDeploymentGet; exports.handleDeploymentsList = _chunkF5CU5ALXjs.handleDeploymentsList; exports.registerGitCommands = _chunkF5CU5ALXjs.registerGitCommands; exports.renderDeployment = _chunkF5CU5ALXjs.renderDeployment; exports.renderDeploymentMonitorLines = _chunkF5CU5ALXjs.renderDeploymentMonitorLines; exports.renderDeploymentPlayLines = _chunkF5CU5ALXjs.renderDeploymentPlayLines;