deepline 0.3.394 → 0.3.396

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 (110) hide show
  1. package/dist/bundling-sources/sdk/src/client.ts +30 -162
  2. package/dist/bundling-sources/sdk/src/index.ts +1 -0
  3. package/dist/bundling-sources/sdk/src/plays/play-description.ts +167 -0
  4. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  5. package/dist/bundling-sources/sdk/src/types.ts +1 -0
  6. package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +1 -1
  7. package/dist/cli/{auth-OSXDAVCF.mjs → auth-3LTD62VL.mjs} +4 -4
  8. package/dist/cli/auth-562JPKOM.js +39 -0
  9. package/dist/cli/{billing-ZNNKX3UR.mjs → billing-DP7ZAJBO.mjs} +5 -4
  10. package/dist/cli/{billing-EKLYOXUY.js → billing-PA5OXEM5.js} +76 -75
  11. package/dist/cli/{chunk-BP33SIZF.mjs → chunk-23GAA3YO.mjs} +1 -1
  12. package/dist/cli/{chunk-KI635JN4.js → chunk-2VOLOWYZ.js} +1087 -1056
  13. package/dist/cli/{chunk-XXUDVEXK.mjs → chunk-3T4MCB5R.mjs} +1026 -995
  14. package/dist/cli/{chunk-VB6KECLU.mjs → chunk-5WNJF2T3.mjs} +102 -36
  15. package/dist/cli/{chunk-KIUMEOM5.js → chunk-772W2SAU.js} +8 -8
  16. package/dist/cli/{chunk-2MDDA7A4.js → chunk-7Z66NHUC.js} +26 -26
  17. package/dist/cli/{chunk-M57J2SK4.mjs → chunk-AUYXWELC.mjs} +2 -2
  18. package/dist/cli/{chunk-354JCXA2.js → chunk-AVHLATII.js} +50 -50
  19. package/dist/cli/{chunk-MLPU5SMZ.js → chunk-DC6LTULT.js} +2 -2
  20. package/dist/cli/chunk-EIMG75BT.mjs +130 -0
  21. package/dist/cli/{chunk-6YAUMG27.js → chunk-GNN4MY5X.js} +1 -1
  22. package/dist/cli/{chunk-UXFSWG3Q.mjs → chunk-I4T4XAA2.mjs} +4 -4
  23. package/dist/cli/{chunk-MFB2VKBO.mjs → chunk-JCN4DHF7.mjs} +2 -2
  24. package/dist/cli/{chunk-VK6FYZLP.js → chunk-KAEZNPUM.js} +23 -8
  25. package/dist/cli/chunk-KXMNM4AQ.js +130 -0
  26. package/dist/cli/{chunk-XRQ2AQL7.mjs → chunk-LOGGNW4H.mjs} +2 -2
  27. package/dist/cli/{chunk-RDXFGPJU.js → chunk-LWERJUKN.js} +218 -218
  28. package/dist/cli/{chunk-QIQBYKLB.js → chunk-ME6XRFLY.js} +15 -15
  29. package/dist/cli/{chunk-JHIJIHFB.mjs → chunk-MR6XCBQJ.mjs} +23 -131
  30. package/dist/cli/{chunk-TJI2EN6K.mjs → chunk-NHB5YUCS.mjs} +1 -1
  31. package/dist/cli/{chunk-ZMVJSS6N.js → chunk-NSOTASOP.js} +101 -35
  32. package/dist/cli/{chunk-ZYBGA4AR.mjs → chunk-QHGPA362.mjs} +18 -3
  33. package/dist/cli/{chunk-4P27AXEA.js → chunk-RMTASUAK.js} +65 -65
  34. package/dist/cli/{chunk-KGNTKMRG.js → chunk-RTO5QZWT.js} +6 -6
  35. package/dist/cli/{chunk-X63FDZJZ.mjs → chunk-TLQ3FZOC.mjs} +3 -3
  36. package/dist/cli/{chunk-CS6RAIVY.js → chunk-V7UP2F4U.js} +4 -4
  37. package/dist/cli/{chunk-FJGW5GXU.mjs → chunk-VE3U3SQC.mjs} +1 -1
  38. package/dist/cli/{chunk-E23BQ5SC.js → chunk-WQJJNIMQ.js} +241 -349
  39. package/dist/cli/{chunk-NR3DFKNF.mjs → chunk-XKZXO7D3.mjs} +1 -1
  40. package/dist/cli/{csv-5AXRB35H.mjs → csv-RLRR74RQ.mjs} +3 -3
  41. package/dist/cli/{csv-LU7O75WE.js → csv-TF576S77.js} +12 -12
  42. package/dist/cli/{db-F7YTFKVM.js → db-FDBJUTFO.js} +30 -29
  43. package/dist/cli/{db-7XP5UWEW.mjs → db-XORGNBIC.mjs} +5 -4
  44. package/dist/cli/{describe-K4ES5LIL.mjs → describe-6O2ENKTP.mjs} +86 -67
  45. package/dist/cli/{describe-FRH32RDV.js → describe-EFWNECHI.js} +100 -81
  46. package/dist/cli/{executions-RZV5XPT2.js → executions-SFYAXPF4.js} +7 -6
  47. package/dist/cli/{executions-IEHEHJUO.mjs → executions-YPP7WR77.mjs} +5 -4
  48. package/dist/cli/{feedback-3P65QTX3.js → feedback-5UZFYMGB.js} +7 -7
  49. package/dist/cli/{feedback-FPUVZBAN.mjs → feedback-RBGA5ARU.mjs} +3 -3
  50. package/dist/cli/git-5LDY5ZID.js +23 -0
  51. package/dist/cli/{git-GLVVP7TY.mjs → git-IRSAJEK2.mjs} +4 -4
  52. package/dist/cli/index.js +93 -93
  53. package/dist/cli/index.mjs +42 -42
  54. package/dist/cli/{legacy-noops-XKSGZR7Q.js → legacy-noops-CVAOQY2F.js} +7 -7
  55. package/dist/cli/{legacy-noops-3MOI6NBM.mjs → legacy-noops-NA7N6ZOU.mjs} +4 -4
  56. package/dist/cli/{monitors-NZ2DYNST.js → monitors-4OMRXCXP.js} +86 -85
  57. package/dist/cli/{monitors-FTBGNEFG.mjs → monitors-ILZ2XHYG.mjs} +5 -4
  58. package/dist/cli/{org-V2J5RBCN.mjs → org-QDDXAE3J.mjs} +5 -4
  59. package/dist/cli/{org-MCKDQXIV.js → org-YGNJDD2X.js} +65 -64
  60. package/dist/cli/{chunk-RBJYWRCF.js → play-L535H26U.js} +270 -325
  61. package/dist/cli/{chunk-5BB2RGAX.mjs → play-VT6OHB2D.mjs} +77 -132
  62. package/dist/cli/{providers-2JEZ2264.js → providers-GPZ6PQAL.js} +8 -7
  63. package/dist/cli/{providers-I6RQJZFZ.mjs → providers-KG4W5MPK.mjs} +5 -4
  64. package/dist/cli/{quickstart-BIDQDMO4.mjs → quickstart-2JDGTXIG.mjs} +3 -3
  65. package/dist/cli/{quickstart-GJ2RPDU3.js → quickstart-UI27S5LO.js} +5 -5
  66. package/dist/cli/search-MGWROZ33.js +28 -0
  67. package/dist/cli/{search-ELRXFWG5.mjs → search-PW3RAUX7.mjs} +6 -5
  68. package/dist/cli/{secrets-SQXGZXIC.mjs → secrets-HNOMK5A2.mjs} +5 -4
  69. package/dist/cli/{secrets-53IT6VXD.js → secrets-WFAXOUZE.js} +14 -13
  70. package/dist/cli/{sessions-CAV5M77Y.js → sessions-366KROUA.js} +5 -5
  71. package/dist/cli/{sessions-2X5QF7SL.mjs → sessions-XLX3E5UO.mjs} +4 -4
  72. package/dist/cli/{settings-532WNAZO.js → settings-GADAG2UK.js} +75 -74
  73. package/dist/cli/{settings-7P67VGCJ.mjs → settings-YNZ4YKCH.mjs} +8 -7
  74. package/dist/cli/{setup-QGGBV2LE.mjs → setup-PSEHIUXO.mjs} +6 -6
  75. package/dist/cli/{setup-6L2VSUWJ.js → setup-R5YO7GT6.js} +41 -41
  76. package/dist/cli/skills-JF2LPEGM.js +28 -0
  77. package/dist/cli/{skills-3FE62WBG.mjs → skills-LTQBP6CZ.mjs} +4 -4
  78. package/dist/cli/tools-CP2PEFRN.js +34 -0
  79. package/dist/cli/{tools-DMR25DEF.mjs → tools-UAXDWU63.mjs} +11 -18
  80. package/dist/cli/update-HZHZOU6C.js +28 -0
  81. package/dist/cli/{update-6RZMHJZP.mjs → update-SMNIBIMS.mjs} +6 -6
  82. package/dist/cli/{workflow-TX4F2PIX.js → workflow-AOQVZHMD.js} +16 -15
  83. package/dist/cli/{workflow-L2DQRE6R.mjs → workflow-IKGMBGF6.mjs} +6 -5
  84. package/dist/{client-C3O1Ipf3.d.ts → client-Bgis7F6-.d.ts} +22 -12
  85. package/dist/{client-BktIPdIj.d.mts → client-DiGl8ska.d.mts} +22 -12
  86. package/dist/index.d.mts +2 -2
  87. package/dist/index.d.ts +2 -2
  88. package/dist/index.js +11 -10
  89. package/dist/index.mjs +9 -8
  90. package/dist/install-integrity.json +83 -78
  91. package/dist/plays/play-description.d.mts +6 -0
  92. package/dist/plays/play-description.d.ts +6 -0
  93. package/dist/plays/play-description.js +11 -0
  94. package/dist/plays/play-description.mjs +11 -0
  95. package/dist/plays/run-request.d.mts +1 -1
  96. package/dist/plays/run-request.d.ts +1 -1
  97. package/dist/release.d.mts +1 -1
  98. package/dist/release.d.ts +1 -1
  99. package/dist/release.js +2 -2
  100. package/dist/release.mjs +1 -1
  101. package/package.json +6 -1
  102. package/dist/cli/auth-IHKISLJQ.js +0 -39
  103. package/dist/cli/git-MFFAWVVX.js +0 -23
  104. package/dist/cli/play-AJFGME3B.mjs +0 -158
  105. package/dist/cli/play-WLSN2EO2.js +0 -158
  106. package/dist/cli/search-5VN4YD4I.js +0 -27
  107. package/dist/cli/skills-S6NPZAN7.js +0 -28
  108. package/dist/cli/tools-647RLXQS.js +0 -41
  109. package/dist/cli/update-WVTSC3EM.js +0 -28
  110. package/dist/cli/{chunk-KZZC33PY.mjs → chunk-H5KLUGY7.mjs} +214 -214
@@ -1,13 +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
3
 
4
- var _chunkRBJYWRCFjs = require('./chunk-RBJYWRCF.js');
5
4
 
6
5
 
7
6
 
7
+ var _chunk2VOLOWYZjs = require('./chunk-2VOLOWYZ.js');
8
8
 
9
9
 
10
- var _chunkKI635JN4js = require('./chunk-KI635JN4.js');
11
10
 
12
11
 
13
12
 
@@ -17,34 +16,28 @@ var _chunkKI635JN4js = require('./chunk-KI635JN4.js');
17
16
 
18
17
 
19
18
 
20
- var _chunkZMVJSS6Njs = require('./chunk-ZMVJSS6N.js');
19
+ var _chunkNSOTASOPjs = require('./chunk-NSOTASOP.js');
21
20
  require('./chunk-AID3OYVJ.js');
22
- require('./chunk-MH73HMPV.js');
23
- require('./chunk-3KC45UVF.js');
24
- require('./chunk-GSK6NHVM.js');
25
- require('./chunk-VK6FYZLP.js');
26
- require('./chunk-2MDDA7A4.js');
27
- require('./chunk-GEJDBXXM.js');
28
- require('./chunk-RDXFGPJU.js');
21
+ require('./chunk-KAEZNPUM.js');
22
+ require('./chunk-LWERJUKN.js');
29
23
  require('./chunk-KB4SDX5S.js');
30
24
 
31
25
 
32
- var _chunkE23BQ5SCjs = require('./chunk-E23BQ5SC.js');
26
+ var _chunkWQJJNIMQjs = require('./chunk-WQJJNIMQ.js');
33
27
  require('./chunk-S6R3OX7B.js');
34
28
  require('./chunk-UHNDVD3P.js');
29
+ require('./chunk-KXMNM4AQ.js');
35
30
  require('./chunk-XDVT3GOM.js');
36
- require('./chunk-AYHLUHE5.js');
37
31
  require('./chunk-QJBJZVG6.js');
38
- require('./chunk-WJYPBHTE.js');
39
32
 
40
33
 
41
- var _chunkKGNTKMRGjs = require('./chunk-KGNTKMRG.js');
42
- require('./chunk-CS6RAIVY.js');
34
+ var _chunkRTO5QZWTjs = require('./chunk-RTO5QZWT.js');
35
+ require('./chunk-V7UP2F4U.js');
43
36
  require('./chunk-XNYIZMNQ.js');
44
37
 
45
38
 
46
39
  var _chunk7P5AA3SNjs = require('./chunk-7P5AA3SN.js');
47
- require('./chunk-6YAUMG27.js');
40
+ require('./chunk-GNN4MY5X.js');
48
41
  require('./chunk-OG64RBAC.js');
49
42
  require('./chunk-COGTRVWW.js');
50
43
 
@@ -65,13 +58,13 @@ var VIEWS = {
65
58
  details: model,
66
59
  lines: [
67
60
  ...unlisted,
68
- ..._chunkKI635JN4js.formatModelDescription.call(void 0, model).trimEnd().split("\n")
61
+ ..._chunk2VOLOWYZjs.formatModelDescription.call(void 0, model).trimEnd().split("\n")
69
62
  ]
70
63
  };
71
64
  },
72
65
  byok: async (_value, tool) => ({
73
66
  details: _nullishCoalesce(tool.byok, () => ( {})),
74
- lines: _chunkZMVJSS6Njs.byokLines.call(void 0, _nullishCoalesce(tool.byok, () => ( {})))
67
+ lines: _chunkNSOTASOPjs.byokLines.call(void 0, _nullishCoalesce(tool.byok, () => ( {})))
75
68
  })
76
69
  };
77
70
  var isFeatureView = (value) => typeof value === "string" && Object.hasOwn(VIEWS, value);
@@ -115,31 +108,21 @@ async function describeFeature(tool, feature, value, dependencies) {
115
108
  return VIEWS[feature.view](_nullishCoalesce(value, () => ( feature.defaultValue)), tool, dependencies);
116
109
  }
117
110
 
118
- // src/cli/commands/describe.ts
111
+ // src/cli/describe-core.ts
119
112
  var FILTER_OF = {
120
113
  tool: "tools",
121
114
  monitor_type: "monitors",
122
115
  prebuilt_play: "prebuilts",
123
116
  custom_play: "custom"
124
117
  };
125
- async function found(lookup) {
126
- try {
127
- return await lookup;
128
- } catch (error) {
129
- if (error instanceof _chunk7P5AA3SNjs.DeeplineError && (error.statusCode === 404 || error.code === "PLAY_NOT_FOUND" || error.code === "NOT_FOUND")) {
130
- return null;
131
- }
132
- throw error;
133
- }
134
- }
135
- async function describeAnything(name, options, onMissing) {
118
+ async function describeName(name, options, lookups) {
136
119
  const maintainedOnly = options.prebuilt === true || options.tool === true;
137
120
  const wants = (filter) => (!options.kinds || options.kinds.includes(filter)) && !(maintainedOnly && filter === "custom");
138
- const client = new (0, _chunkE23BQ5SCjs.DeeplineClient)();
139
121
  const play = async (reference) => {
140
- const record2 = await client.describePlay(reference);
122
+ const record2 = await lookups.play(reference);
123
+ if (!record2) return null;
141
124
  return {
142
- described: _chunkRBJYWRCFjs.describedPlay.call(void 0, record2),
125
+ described: _chunkNSOTASOPjs.describedPlay.call(void 0, record2),
143
126
  record: { ...record2 },
144
127
  schemas: {
145
128
  inputSchema: _nullishCoalesce(record2.inputSchema, () => ( null)),
@@ -148,23 +131,28 @@ async function describeAnything(name, options, onMissing) {
148
131
  };
149
132
  };
150
133
  const tool = async () => {
151
- const record2 = await _asyncNullishCoalesce(options.fetchedTool, async () => ( await client.getTool(name)));
134
+ const record2 = await lookups.tool(name);
135
+ if (!record2) return null;
152
136
  const { byok } = record2;
153
137
  const features = toolFeatures(record2);
154
138
  return {
155
139
  described: {
156
- ..._chunkKI635JN4js.describedTool.call(void 0, record2, name),
140
+ ..._chunk2VOLOWYZjs.describedTool.call(void 0, record2, name),
157
141
  // Shown when the tool runs only on your own credentials; otherwise
158
142
  // it is a feature, described with --feature byok.
159
143
  ..._optionalChain([byok, 'optionalAccess', _3 => _3.required]) === true ? { byok } : {},
160
144
  ...features.length ? { features: features.map(({ view: _view, ...feature }) => feature) } : {}
161
145
  },
162
- record: _chunkKI635JN4js.toolMetadataJsonForDescribe.call(void 0, record2, name),
163
- schemas: _chunkKI635JN4js.publicToolSchemas.call(void 0, record2),
146
+ record: _chunk2VOLOWYZjs.toolMetadataJsonForDescribe.call(void 0,
147
+ record2,
148
+ name,
149
+ lookups.seedStarterScript
150
+ ),
151
+ schemas: _chunk2VOLOWYZjs.publicToolSchemas.call(void 0, record2),
164
152
  feature: (featureName, value) => {
165
153
  const feature = features.find(({ name: name2 }) => name2 === featureName);
166
154
  return feature ? describeFeature(record2, feature, value, {
167
- describeModel: (model) => client.describeModel(model)
155
+ describeModel: (model) => lookups.describeModel(model)
168
156
  }) : null;
169
157
  }
170
158
  };
@@ -176,19 +164,13 @@ async function describeAnything(name, options, onMissing) {
176
164
  ];
177
165
  const matches = await Promise.all(
178
166
  sources.filter((source) => source.kinds.some(wants)).map(async ({ kinds, find }) => {
179
- const match = await found(find());
167
+ const match = await find();
180
168
  const filter = match && FILTER_OF[match.described.kind];
181
169
  return filter && kinds.includes(filter) && wants(filter) ? match : null;
182
170
  })
183
171
  );
184
172
  const [chosen, shadowed] = matches.filter((match) => match !== null);
185
- if (!chosen) {
186
- if (onMissing) return onMissing();
187
- console.error(
188
- `Nothing named "${name}". Search for it: deepline search ${JSON.stringify(name.replace(/[-_./]+/g, " "))}`
189
- );
190
- return 2;
191
- }
173
+ if (!chosen) return { status: "missing" };
192
174
  const { described, record } = chosen;
193
175
  const shadows = described.kind === "custom_play" && shadowed ? {
194
176
  kind: shadowed.described.kind,
@@ -196,49 +178,49 @@ async function describeAnything(name, options, onMissing) {
196
178
  } : null;
197
179
  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;
198
180
  const verbose = options.verbose === true;
199
- const json = options.json === true;
200
181
  const isPlay = described.kind === "prebuilt_play" || described.kind === "custom_play";
201
- const dashboardUrl = isPlay ? _chunkRBJYWRCFjs.buildPlayDashboardUrl.call(void 0, client.baseUrl, described.id) : null;
182
+ const dashboardUrl = isPlay ? _chunkNSOTASOPjs.buildPlayDashboardUrl.call(void 0, lookups.baseUrl, described.id) : null;
202
183
  if (options.webUrl) {
203
184
  if (!dashboardUrl) {
204
- console.error(
205
- `${described.id} is a ${described.kind.replace("_", " ")}, not a play; only plays have a play page.`
206
- );
207
- return 1;
185
+ return {
186
+ status: "refused",
187
+ message: `${described.id} is a ${described.kind.replace("_", " ")}, not a play; only plays have a play page.`,
188
+ exitCode: 1
189
+ };
208
190
  }
209
- _chunkKGNTKMRGjs.printCommandEnvelope.call(void 0,
210
- { dashboardUrl },
211
- { json, text: `${dashboardUrl}
212
- ` }
213
- );
214
- return 0;
191
+ return {
192
+ status: "described",
193
+ envelope: { dashboardUrl },
194
+ lines: [dashboardUrl]
195
+ };
215
196
  }
216
197
  if (options.feature !== void 0) {
217
198
  const { name: featureName, value } = parseFeatureRequest(options.feature);
218
199
  const pending = _nullishCoalesce(_optionalChain([chosen, 'access', _4 => _4.feature, 'optionalCall', _5 => _5(featureName, value)]), () => ( null));
219
200
  const features = _nullishCoalesce(described.features, () => ( []));
220
201
  if (!pending) {
221
- console.error(
222
- features.length ? `${described.id} has no feature "${featureName}". Its features: ${features.map(({ name: name2 }) => name2).join(", ")}.` : `${described.id} has no features to describe.`
223
- );
224
- return 2;
202
+ return {
203
+ status: "refused",
204
+ message: features.length ? `${described.id} has no feature "${featureName}". Its features: ${features.map(({ name: name2 }) => name2).join(", ")}.` : `${described.id} has no features to describe.`,
205
+ exitCode: 2
206
+ };
225
207
  }
226
208
  const shownValue = _nullishCoalesce(value, () => ( _optionalChain([features, 'access', _6 => _6.find, 'call', _7 => _7(({ name: name2 }) => name2 === featureName), 'optionalAccess', _8 => _8.defaultValue])));
227
209
  const { details, lines } = await pending;
228
- return deliver(
229
- {
210
+ return {
211
+ status: "described",
212
+ envelope: {
230
213
  kind: described.kind,
231
214
  id: described.id,
232
215
  feature: featureName,
233
216
  ...shownValue ? { value: shownValue } : {},
234
217
  details
235
218
  },
236
- [
219
+ lines: [
237
220
  `${described.id} --feature ${featureName}${shownValue ? `=${shownValue}` : ""}`,
238
221
  ...lines
239
- ],
240
- { json, out: options.out }
241
- );
222
+ ]
223
+ };
242
224
  }
243
225
  const fields = (_nullishCoalesce(options.fields, () => ( ""))).split(",").map((name2) => name2.trim()).filter(Boolean);
244
226
  const named = options.cliExample === true || options.playExample === true;
@@ -261,7 +243,7 @@ async function describeAnything(name, options, onMissing) {
261
243
  },
262
244
  lines: [
263
245
  `${described.id} [${described.kind.replace("_", " ")}]`,
264
- ..._chunkZMVJSS6Njs.schemaLines.call(void 0, described, {
246
+ ..._chunkNSOTASOPjs.schemaLines.call(void 0, described, {
265
247
  full: true,
266
248
  secondary: true,
267
249
  ...fields.length ? { fields } : {}
@@ -270,17 +252,17 @@ async function describeAnything(name, options, onMissing) {
270
252
  } : {
271
253
  envelope: {
272
254
  ...summary,
273
- inputs: inputs.map(_chunkZMVJSS6Njs.topLevelField),
274
- outputs: outputs.map(_chunkZMVJSS6Njs.topLevelField),
275
- ...described.rowInputs ? { rowInputs: described.rowInputs.map(_chunkZMVJSS6Njs.topLevelField) } : {},
276
- ...described.rowOutputs ? { rowOutputs: described.rowOutputs.map(_chunkZMVJSS6Njs.topLevelField) } : {},
277
- runExamples: _chunkZMVJSS6Njs.examples.call(void 0, described, { verbose }),
255
+ inputs: inputs.map(_chunkNSOTASOPjs.topLevelField),
256
+ outputs: outputs.map(_chunkNSOTASOPjs.topLevelField),
257
+ ...described.rowInputs ? { rowInputs: described.rowInputs.map(_chunkNSOTASOPjs.topLevelField) } : {},
258
+ ...described.rowOutputs ? { rowOutputs: described.rowOutputs.map(_chunkNSOTASOPjs.topLevelField) } : {},
259
+ runExamples: _chunkNSOTASOPjs.examples.call(void 0, described, { verbose }),
278
260
  ...dashboardUrl ? { dashboardUrl } : {},
279
261
  ...shadows ? { shadows, note } : {}
280
262
  },
281
263
  lines: [
282
264
  ...note ? [`Note: ${note}`, ""] : [],
283
- ..._chunkZMVJSS6Njs.describedLines.call(void 0, described, {
265
+ ..._chunkNSOTASOPjs.describedLines.call(void 0, described, {
284
266
  cli: shown && (!named || options.cliExample === true),
285
267
  play: shown && (!named || options.playExample === true),
286
268
  explain: named,
@@ -297,14 +279,51 @@ async function describeAnything(name, options, onMissing) {
297
279
  // its value stands, so callers of the older commands read what they did.
298
280
  { ...view.envelope, ...record }
299
281
  ) : {
300
- ..._chunkZMVJSS6Njs.describedJson.call(void 0, described, {
282
+ ..._chunkNSOTASOPjs.describedJson.call(void 0, described, {
301
283
  secondary: verbose || fields.length > 0,
302
284
  verbose
303
285
  }),
304
286
  ...dashboardUrl ? { dashboardUrl } : {},
305
287
  ...shadows ? { shadows, note } : {}
306
288
  };
307
- return deliver(envelope, view.lines, { json, out: options.out });
289
+ return { status: "described", envelope, lines: view.lines };
290
+ }
291
+
292
+ // src/cli/commands/describe.ts
293
+ async function found(lookup) {
294
+ try {
295
+ return await lookup;
296
+ } catch (error) {
297
+ if (error instanceof _chunk7P5AA3SNjs.DeeplineError && (error.statusCode === 404 || error.code === "PLAY_NOT_FOUND" || error.code === "NOT_FOUND")) {
298
+ return null;
299
+ }
300
+ throw error;
301
+ }
302
+ }
303
+ async function describeAnything(name, options, onMissing) {
304
+ const client = new (0, _chunkWQJJNIMQjs.DeeplineClient)();
305
+ const outcome = await describeName(name, options, {
306
+ play: (reference) => found(client.describePlay(reference)),
307
+ tool: async (toolName) => await _asyncNullishCoalesce(options.fetchedTool, async () => ( await found(client.getTool(toolName)))),
308
+ describeModel: (model) => client.describeModel(model),
309
+ baseUrl: client.baseUrl,
310
+ seedStarterScript: _chunk2VOLOWYZjs.seedToolListScript
311
+ });
312
+ if (outcome.status === "missing") {
313
+ if (onMissing) return onMissing();
314
+ console.error(
315
+ `Nothing named "${name}". Search for it: deepline search ${JSON.stringify(name.replace(/[-_./]+/g, " "))}`
316
+ );
317
+ return 2;
318
+ }
319
+ if (outcome.status === "refused") {
320
+ console.error(outcome.message);
321
+ return outcome.exitCode;
322
+ }
323
+ return deliver(outcome.envelope, outcome.lines, {
324
+ json: options.json === true,
325
+ out: options.out
326
+ });
308
327
  }
309
328
  function deliver(envelope, lines, { json, out }) {
310
329
  const text = `${lines.join("\n")}
@@ -315,18 +334,18 @@ function deliver(envelope, lines, { json, out }) {
315
334
  ` : text;
316
335
  _fs.writeFileSync.call(void 0, path, content);
317
336
  const bytes = Buffer.byteLength(content);
318
- _chunkKGNTKMRGjs.printCommandEnvelope.call(void 0,
337
+ _chunkRTO5QZWTjs.printCommandEnvelope.call(void 0,
319
338
  { path, bytes },
320
339
  { json, text: `Wrote ${path} (${bytes} bytes)
321
340
  ` }
322
341
  );
323
342
  return 0;
324
343
  }
325
- _chunkKGNTKMRGjs.printCommandEnvelope.call(void 0, envelope, { json, text });
344
+ _chunkRTO5QZWTjs.printCommandEnvelope.call(void 0, envelope, { json, text });
326
345
  return 0;
327
346
  }
328
347
  function registerDescribeCommand(program) {
329
- _chunkZMVJSS6Njs.addDescribeOptions.call(void 0, program.command("describe <name>")).option("--web-url", "Print only a play's play page URL").description(
348
+ _chunkNSOTASOPjs.addDescribeOptions.call(void 0, program.command("describe <name>")).option("--web-url", "Print only a play's play page URL").description(
330
349
  "Describe anything search returns: a tool, monitor type, or play."
331
350
  ).addHelpText(
332
351
  "after",
@@ -363,7 +382,7 @@ Schema size and format:
363
382
  by default; the output names them, and --verbose shows them.
364
383
  --fields email,miss_reason shows only the fields you name, plus every
365
384
  required input, and names the rest. Use it when you know what you need.
366
- A schema over ${_chunkZMVJSS6Njs.SCHEMA_LINE_LIMIT} lines is folded: deeper objects show only their field
385
+ A schema over ${_chunkNSOTASOPjs.SCHEMA_LINE_LIMIT} lines is folded: deeper objects show only their field
367
386
  names. A shape used more than once is printed once under Types.
368
387
  --full-schema the normal output, with the schema not folded
369
388
  --schema-only only the schema, not folded, and nothing else
@@ -1,16 +1,17 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkE23BQ5SCjs = require('./chunk-E23BQ5SC.js');
3
+ var _chunkWQJJNIMQjs = require('./chunk-WQJJNIMQ.js');
4
4
  require('./chunk-S6R3OX7B.js');
5
5
  require('./chunk-UHNDVD3P.js');
6
+ require('./chunk-KXMNM4AQ.js');
6
7
  require('./chunk-XDVT3GOM.js');
7
8
 
8
9
 
9
- var _chunkKGNTKMRGjs = require('./chunk-KGNTKMRG.js');
10
- require('./chunk-CS6RAIVY.js');
10
+ var _chunkRTO5QZWTjs = require('./chunk-RTO5QZWT.js');
11
+ require('./chunk-V7UP2F4U.js');
11
12
  require('./chunk-XNYIZMNQ.js');
12
13
  require('./chunk-7P5AA3SN.js');
13
- require('./chunk-6YAUMG27.js');
14
+ require('./chunk-GNN4MY5X.js');
14
15
  require('./chunk-OG64RBAC.js');
15
16
  require('./chunk-COGTRVWW.js');
16
17
 
@@ -18,10 +19,10 @@ require('./chunk-COGTRVWW.js');
18
19
  function registerExecutionsCommands(program) {
19
20
  const executions = program.command("executions").description("Inspect and recover keyed tool executions.");
20
21
  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) => {
21
- const result = await new (0, _chunkE23BQ5SCjs.DeeplineClient)().executions.getByKey(
22
+ const result = await new (0, _chunkWQJJNIMQjs.DeeplineClient)().executions.getByKey(
22
23
  options.idempotencyKey
23
24
  );
24
- _chunkKGNTKMRGjs.printCommandEnvelope.call(void 0, result, { json: true });
25
+ _chunkRTO5QZWTjs.printCommandEnvelope.call(void 0, result, { json: true });
25
26
  });
26
27
  }
27
28
 
@@ -1,16 +1,17 @@
1
1
  import {
2
2
  DeeplineClient
3
- } from "./chunk-JHIJIHFB.mjs";
3
+ } from "./chunk-MR6XCBQJ.mjs";
4
4
  import "./chunk-6IKARAYD.mjs";
5
5
  import "./chunk-JI2B4RZP.mjs";
6
+ import "./chunk-EIMG75BT.mjs";
6
7
  import "./chunk-UBKA33KY.mjs";
7
8
  import {
8
9
  printCommandEnvelope
9
- } from "./chunk-NR3DFKNF.mjs";
10
- import "./chunk-FJGW5GXU.mjs";
10
+ } from "./chunk-XKZXO7D3.mjs";
11
+ import "./chunk-VE3U3SQC.mjs";
11
12
  import "./chunk-DLIRSHV6.mjs";
12
13
  import "./chunk-NXGCO4JB.mjs";
13
- import "./chunk-TJI2EN6K.mjs";
14
+ import "./chunk-NHB5YUCS.mjs";
14
15
  import "./chunk-WZYKRD7T.mjs";
15
16
  import "./chunk-KRD6H754.mjs";
16
17
 
@@ -2,13 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkKGNTKMRGjs = require('./chunk-KGNTKMRG.js');
5
+ var _chunkRTO5QZWTjs = require('./chunk-RTO5QZWT.js');
6
6
 
7
7
 
8
- var _chunkCS6RAIVYjs = require('./chunk-CS6RAIVY.js');
8
+ var _chunkV7UP2F4Ujs = require('./chunk-V7UP2F4U.js');
9
9
  require('./chunk-XNYIZMNQ.js');
10
10
  require('./chunk-7P5AA3SN.js');
11
- require('./chunk-6YAUMG27.js');
11
+ require('./chunk-GNN4MY5X.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 } = _chunkKGNTKMRGjs.getAuthedHttpClient.call(void 0, );
21
- const sessionId = _chunkCS6RAIVYjs.agentSessionIdFromEnvironment.call(void 0, );
20
+ const { http } = _chunkRTO5QZWTjs.getAuthedHttpClient.call(void 0, );
21
+ const sessionId = _chunkV7UP2F4Ujs.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: _chunkKGNTKMRGjs.collectLocalEnvInfo.call(void 0, ),
25
+ environment: _chunkRTO5QZWTjs.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
- _chunkKGNTKMRGjs.printCommandEnvelope.call(void 0,
31
+ _chunkRTO5QZWTjs.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-NR3DFKNF.mjs";
5
+ } from "./chunk-XKZXO7D3.mjs";
6
6
  import {
7
7
  agentSessionIdFromEnvironment
8
- } from "./chunk-FJGW5GXU.mjs";
8
+ } from "./chunk-VE3U3SQC.mjs";
9
9
  import "./chunk-DLIRSHV6.mjs";
10
10
  import "./chunk-NXGCO4JB.mjs";
11
- import "./chunk-TJI2EN6K.mjs";
11
+ import "./chunk-NHB5YUCS.mjs";
12
12
  import "./chunk-WZYKRD7T.mjs";
13
13
  import "./chunk-KRD6H754.mjs";
14
14
 
@@ -0,0 +1,23 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+ var _chunk7Z66NHUCjs = require('./chunk-7Z66NHUC.js');
9
+ require('./chunk-RTO5QZWT.js');
10
+ require('./chunk-V7UP2F4U.js');
11
+ require('./chunk-XNYIZMNQ.js');
12
+ require('./chunk-7P5AA3SN.js');
13
+ require('./chunk-GNN4MY5X.js');
14
+ require('./chunk-OG64RBAC.js');
15
+ require('./chunk-COGTRVWW.js');
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+ exports.handleDeploymentGet = _chunk7Z66NHUCjs.handleDeploymentGet; exports.handleDeploymentsList = _chunk7Z66NHUCjs.handleDeploymentsList; exports.registerGitCommands = _chunk7Z66NHUCjs.registerGitCommands; exports.renderDeployment = _chunk7Z66NHUCjs.renderDeployment; exports.renderDeploymentMonitorLines = _chunk7Z66NHUCjs.renderDeploymentMonitorLines; exports.renderDeploymentPlayLines = _chunk7Z66NHUCjs.renderDeploymentPlayLines;
@@ -5,12 +5,12 @@ import {
5
5
  renderDeployment,
6
6
  renderDeploymentMonitorLines,
7
7
  renderDeploymentPlayLines
8
- } from "./chunk-XRQ2AQL7.mjs";
9
- import "./chunk-NR3DFKNF.mjs";
10
- import "./chunk-FJGW5GXU.mjs";
8
+ } from "./chunk-LOGGNW4H.mjs";
9
+ import "./chunk-XKZXO7D3.mjs";
10
+ import "./chunk-VE3U3SQC.mjs";
11
11
  import "./chunk-DLIRSHV6.mjs";
12
12
  import "./chunk-NXGCO4JB.mjs";
13
- import "./chunk-TJI2EN6K.mjs";
13
+ import "./chunk-NHB5YUCS.mjs";
14
14
  import "./chunk-WZYKRD7T.mjs";
15
15
  import "./chunk-KRD6H754.mjs";
16
16
  export {