deepline 0.3.463 → 0.3.465

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 (158) hide show
  1. package/dist/bundling-sources/sdk/src/play.ts +3 -0
  2. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  3. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +130 -55
  4. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +16 -2
  5. package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +98 -0
  6. package/dist/bundling-sources/shared_libs/plays/field-catalog.ts +353 -52
  7. package/dist/bundling-sources/shared_libs/plays/tool-result-types.ts +63 -3
  8. package/dist/cli/auth-W62UTNJZ.js +41 -0
  9. package/dist/cli/{auth-LZLBR4C3.mjs → auth-WZCX4MTH.mjs} +5 -5
  10. package/dist/cli/{billing-OTOP5RE4.mjs → billing-ATR3CLIW.mjs} +6 -6
  11. package/dist/cli/{billing-6TJPNJQD.js → billing-DQUD3DBY.js} +77 -77
  12. package/dist/cli/{chunk-IKWRUNAP.mjs → chunk-3K3EHT6E.mjs} +1 -1
  13. package/dist/cli/{chunk-ALZBANZI.js → chunk-3XFNF6RR.js} +8 -8
  14. package/dist/cli/{chunk-3BOIOCNX.js → chunk-4URRABMM.js} +1 -1
  15. package/dist/cli/{chunk-BGNWI3KH.js → chunk-5VGMRONE.js} +3 -3
  16. package/dist/cli/{chunk-5LEAXRHV.js → chunk-6P4OYABU.js} +54 -226
  17. package/dist/cli/{chunk-UROQDCVW.js → chunk-6WKYRHGT.js} +3 -3
  18. package/dist/cli/{chunk-VDGTTH7K.mjs → chunk-6Y34LU6P.mjs} +2 -2
  19. package/dist/cli/{chunk-5DRNNC72.js → chunk-7R76B3WE.js} +5 -5
  20. package/dist/cli/{chunk-C25QE4CH.mjs → chunk-7Y2MLWTM.mjs} +1 -1
  21. package/dist/cli/chunk-7YDN6AEK.mjs +649 -0
  22. package/dist/cli/{chunk-VY2GBNTX.js → chunk-A3GML7WW.js} +9 -9
  23. package/dist/cli/{chunk-UIURR26V.mjs → chunk-B6GAIXVD.mjs} +4 -4
  24. package/dist/cli/{chunk-7XYDDCQ2.js → chunk-BQNUJK53.js} +26 -26
  25. package/dist/cli/{chunk-FK2HNDCN.js → chunk-DDF74332.js} +2 -2
  26. package/dist/cli/{chunk-JVDKZJUH.js → chunk-DJD4KLIX.js} +258 -258
  27. package/dist/cli/{chunk-7D6X7IXW.mjs → chunk-E3EYQ2FQ.mjs} +4 -4
  28. package/dist/cli/{chunk-WUZS2HK6.js → chunk-E3PLLFE2.js} +53 -53
  29. package/dist/cli/{chunk-BAPTQDLF.mjs → chunk-EA2F4YVX.mjs} +2 -2
  30. package/dist/cli/{chunk-XDWS2JJT.mjs → chunk-EISIAWBD.mjs} +1 -1
  31. package/dist/cli/{chunk-GUT7CLOL.mjs → chunk-EVQBOVOJ.mjs} +3 -3
  32. package/dist/cli/{chunk-S4XQCFES.mjs → chunk-FFTLJGZQ.mjs} +5 -5
  33. package/dist/cli/{chunk-5LHXOIPT.js → chunk-GBQSEOXE.js} +7 -7
  34. package/dist/cli/{chunk-NTLI6P6Y.mjs → chunk-GNLCGR7R.mjs} +2 -2
  35. package/dist/cli/{chunk-RD6IQ2JY.mjs → chunk-GW7RUNLW.mjs} +1 -1
  36. package/dist/cli/{chunk-6PMCRYDA.js → chunk-HIMV32ZX.js} +6 -4
  37. package/dist/cli/{chunk-CVQ7N5CV.mjs → chunk-HS6CM7TF.mjs} +11 -11
  38. package/dist/cli/{chunk-DHXCBITQ.mjs → chunk-HXWZ52CW.mjs} +3 -3
  39. package/dist/cli/{chunk-MSY22NQW.mjs → chunk-I2TCWIW2.mjs} +44 -216
  40. package/dist/cli/chunk-JLZKF7EY.js +649 -0
  41. package/dist/cli/{chunk-TIRBDQ3W.js → chunk-JN7AOVD4.js} +16 -16
  42. package/dist/cli/{chunk-4YZKBBLZ.mjs → chunk-JQSPKPHT.mjs} +5 -5
  43. package/dist/cli/{chunk-XQCTG5OO.js → chunk-L3U44YVO.js} +5 -5
  44. package/dist/cli/{chunk-7FCYPAPP.js → chunk-LFTLH5BK.js} +2 -2
  45. package/dist/cli/{chunk-TKAQR3IB.mjs → chunk-MUQAKLBP.mjs} +1 -1
  46. package/dist/cli/{chunk-3U5EAP6E.mjs → chunk-N27BUJU3.mjs} +5 -5
  47. package/dist/cli/{chunk-NDHJR2WZ.js → chunk-N57JYG7J.js} +36 -36
  48. package/dist/cli/{chunk-O3BJYD6D.mjs → chunk-NIJYJI67.mjs} +2 -2
  49. package/dist/cli/{chunk-CTQ56DXP.mjs → chunk-OEU3ZNBZ.mjs} +1 -1
  50. package/dist/cli/{chunk-VPHN2HAL.mjs → chunk-OGCAGZXO.mjs} +6 -4
  51. package/dist/cli/{chunk-NAPTMYTY.js → chunk-OKI3HWFF.js} +8 -8
  52. package/dist/cli/{chunk-PVY4DPPF.js → chunk-OQDN6JK6.js} +13 -13
  53. package/dist/cli/{chunk-CBZP6J3V.js → chunk-PIGMBDBZ.js} +21 -21
  54. package/dist/cli/{chunk-SKU6ECIY.js → chunk-QPJ2BDFD.js} +5 -5
  55. package/dist/cli/{chunk-UC4SFYNU.js → chunk-RREWUPC3.js} +6 -6
  56. package/dist/cli/{chunk-LYFKBLJI.mjs → chunk-SBM5JVTK.mjs} +1 -1
  57. package/dist/cli/{chunk-2NISBXMN.js → chunk-SOIXDMZK.js} +51 -51
  58. package/dist/cli/{chunk-WUMIYOXQ.mjs → chunk-SSQXSMAT.mjs} +2 -2
  59. package/dist/cli/{chunk-2ZIRCBYG.js → chunk-TJXGEK7P.js} +6 -6
  60. package/dist/cli/{chunk-XW2JIYG7.mjs → chunk-UMQT7QMB.mjs} +2 -2
  61. package/dist/cli/{chunk-RGOUCIIZ.js → chunk-W4J2EK5K.js} +3 -3
  62. package/dist/cli/{chunk-3BVLLJ3H.mjs → chunk-X6BQ4JAD.mjs} +2 -2
  63. package/dist/cli/{chunk-F2RHUPVH.mjs → chunk-XFAO5A5R.mjs} +1 -1
  64. package/dist/cli/{chunk-YGGIZ3VT.js → chunk-XJ5W64AC.js} +4 -4
  65. package/dist/cli/{chunk-I624J4H5.mjs → chunk-YZZGFUQ4.mjs} +1 -1
  66. package/dist/cli/command-docs.js +2 -2
  67. package/dist/cli/command-docs.mjs +1 -1
  68. package/dist/cli/{csv-OK45Z5XQ.mjs → csv-AE7OLXCV.mjs} +4 -4
  69. package/dist/cli/{csv-EH5QWR4O.js → csv-ZVFGYRB7.js} +13 -13
  70. package/dist/cli/{db-3ESJKETS.js → db-JOD2MQ2T.js} +27 -27
  71. package/dist/cli/{db-6Z5E4HKN.mjs → db-KTXMCLB5.mjs} +6 -6
  72. package/dist/cli/describe-2IKB4KIX.js +48 -0
  73. package/dist/cli/{describe-PNDQB7YS.mjs → describe-FENTKQFK.mjs} +20 -20
  74. package/dist/cli/describe-core.d.mts +3 -3
  75. package/dist/cli/describe-core.d.ts +3 -3
  76. package/dist/cli/describe-core.js +4 -4
  77. package/dist/cli/describe-core.mjs +3 -3
  78. package/dist/cli/{executions-2NTWQFEG.mjs → executions-FJCV5L37.mjs} +6 -6
  79. package/dist/cli/{executions-KUOBRX5V.js → executions-IT6TQ65Q.js} +8 -8
  80. package/dist/cli/{feedback-7RPRMSGY.mjs → feedback-LTTO73YD.mjs} +4 -4
  81. package/dist/cli/{feedback-UPHAZJ4C.js → feedback-WGURC3BG.js} +8 -8
  82. package/dist/cli/git-UOIC2DJL.js +25 -0
  83. package/dist/cli/{git-SCYP6WSZ.mjs → git-ZYEDB2UG.mjs} +5 -5
  84. package/dist/cli/index.js +139 -139
  85. package/dist/cli/index.mjs +41 -41
  86. package/dist/cli/{legacy-noops-A4KYAGI6.mjs → legacy-noops-EGQ4G4BT.mjs} +5 -5
  87. package/dist/cli/{legacy-noops-7XMFCVRG.js → legacy-noops-JFXWEOZF.js} +8 -8
  88. package/dist/cli/{monitors-FLC5J7RI.mjs → monitors-IK6GWLCA.mjs} +7 -7
  89. package/dist/cli/{monitors-NZV6IX5H.js → monitors-WKN2K6ZH.js} +91 -91
  90. package/dist/cli/{org-IZ7UP3XF.js → org-FE5VMAKF.js} +68 -68
  91. package/dist/cli/{org-LUETJ7Z5.mjs → org-PD5YBUHR.mjs} +6 -6
  92. package/dist/cli/{pages-22ML3O7O.js → pages-H3DKEVVI.js} +17 -17
  93. package/dist/cli/{pages-EUX5EAGF.mjs → pages-ZVKSOSZJ.mjs} +6 -6
  94. package/dist/cli/{play-USJBQADG.js → play-2UL5OPGH.js} +305 -305
  95. package/dist/cli/{play-CDHPAKKM.mjs → play-RLIQY22H.mjs} +18 -18
  96. package/dist/cli/{providers-WFEUNPGC.js → providers-2IMHQDBC.js} +9 -9
  97. package/dist/cli/{providers-CCXZ3SQF.mjs → providers-M4AFFJF2.mjs} +6 -6
  98. package/dist/cli/{quickstart-O4JSUORZ.js → quickstart-OE64DBKK.js} +6 -6
  99. package/dist/cli/{quickstart-ZUULI635.mjs → quickstart-PS4QKNG2.mjs} +4 -4
  100. package/dist/cli/{run-QJ4NX5F5.mjs → run-3TKR5CZU.mjs} +25 -25
  101. package/dist/cli/{run-ISDJYJMU.js → run-SWLGV2VS.js} +40 -40
  102. package/dist/cli/{search-IX3XKZJ3.mjs → search-AMZ67RKO.mjs} +7 -7
  103. package/dist/cli/search-LXG7T6YZ.js +32 -0
  104. package/dist/cli/{secrets-7VUDXTUZ.mjs → secrets-INBXKNFM.mjs} +6 -6
  105. package/dist/cli/{secrets-ELQSNCTR.js → secrets-ZTLJY7L2.js} +15 -15
  106. package/dist/cli/{sessions-A3FG3AZX.js → sessions-3GKS45NP.js} +6 -6
  107. package/dist/cli/{sessions-VOIQ62GB.mjs → sessions-ZVBTKQ7J.mjs} +5 -5
  108. package/dist/cli/{settings-ZTXQEMZI.js → settings-7YG3UWJH.js} +78 -78
  109. package/dist/cli/{settings-S6N6EFBG.mjs → settings-AUPDZZ2U.mjs} +11 -11
  110. package/dist/cli/{setup-AYPIK4JE.mjs → setup-44QB72NU.mjs} +9 -9
  111. package/dist/cli/{setup-Y3WOIFLS.js → setup-YGESCFTH.js} +44 -44
  112. package/dist/cli/{skills-5SF5QWNI.mjs → skills-N3AWWCWO.mjs} +7 -7
  113. package/dist/cli/skills-QALGBUFY.js +31 -0
  114. package/dist/cli/{tools-3XNZ4J64.mjs → tools-3SHNTJPU.mjs} +18 -18
  115. package/dist/cli/tools-PUQ3JBZ7.js +55 -0
  116. package/dist/cli/{update-3U4OVX5R.mjs → update-3TWB5EEV.mjs} +9 -9
  117. package/dist/cli/update-O7XSJMLX.js +33 -0
  118. package/dist/cli/{workflow-2M5JP7SA.mjs → workflow-SYP62XNN.mjs} +7 -7
  119. package/dist/cli/{workflow-RM7H7555.js → workflow-ULIZU7KI.js} +17 -17
  120. package/dist/{client-DTwnz_AW.d.mts → client-ADFHNtFM.d.mts} +1 -1
  121. package/dist/{client-DS2IWYZF.d.ts → client-BClp2yrq.d.ts} +1 -1
  122. package/dist/{client-core-B_6HAIBy.d.ts → client-core-BFU73Ttw.d.ts} +1 -1
  123. package/dist/{client-core-DzBSlY1U.d.mts → client-core-DWLmmJWo.d.mts} +1 -1
  124. package/dist/{compiler-manifest-Dcyd3-Zd.d.ts → compiler-manifest-Cs17yO-H.d.mts} +321 -3
  125. package/dist/{compiler-manifest-Dcyd3-Zd.d.mts → compiler-manifest-Cs17yO-H.d.ts} +321 -3
  126. package/dist/{errors-yQwfgrcX.d.ts → errors-Dee-QpVS.d.ts} +1 -1
  127. package/dist/{errors-d-sTrZhe.d.mts → errors-qNfvQuRB.d.mts} +1 -1
  128. package/dist/{index-C6oXchjN.d.mts → index-BTqNNXmC.d.mts} +1 -1
  129. package/dist/{index-P56zy_z5.d.ts → index-DXTh1Lxe.d.ts} +1 -1
  130. package/dist/index.d.mts +7 -7
  131. package/dist/index.d.ts +7 -7
  132. package/dist/index.js +80 -13
  133. package/dist/index.mjs +76 -9
  134. package/dist/install-integrity.json +114 -114
  135. package/dist/plays/bundle-play-file.d.mts +3 -3
  136. package/dist/plays/bundle-play-file.d.ts +3 -3
  137. package/dist/plays/play-description.d.mts +2 -2
  138. package/dist/plays/play-description.d.ts +2 -2
  139. package/dist/plays/run-request.d.mts +2 -2
  140. package/dist/plays/run-request.d.ts +2 -2
  141. package/dist/release.d.mts +1 -1
  142. package/dist/release.d.ts +1 -1
  143. package/dist/release.js +2 -2
  144. package/dist/release.mjs +1 -1
  145. package/dist/server.d.mts +4 -4
  146. package/dist/server.d.ts +4 -4
  147. package/dist/server.js +5 -5
  148. package/dist/server.mjs +3 -3
  149. package/package.json +1 -1
  150. package/dist/cli/auth-XPGKBJKB.js +0 -41
  151. package/dist/cli/chunk-NA4T3B62.js +0 -286
  152. package/dist/cli/chunk-TXZVVBQZ.mjs +0 -286
  153. package/dist/cli/describe-QUF7VTTR.js +0 -48
  154. package/dist/cli/git-UH653WHV.js +0 -25
  155. package/dist/cli/search-TIFNLRPM.js +0 -32
  156. package/dist/cli/skills-MWFRMG3H.js +0 -31
  157. package/dist/cli/tools-XEC4OD3R.js +0 -55
  158. package/dist/cli/update-DWYEYTZE.js +0 -33
@@ -14,181 +14,9 @@ import {
14
14
  DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS,
15
15
  EMAIL_STATUS_JSON_SCHEMA,
16
16
  JOB_CHANGE_JSON_SCHEMA,
17
+ fieldOfName,
17
18
  isDeeplineExtractorTarget
18
- } from "./chunk-TXZVVBQZ.mjs";
19
-
20
- // ../plays/field-catalog.ts
21
- var value = (description) => ({ type: "string", description });
22
- var SOURCE = {
23
- type: "string",
24
- description: "The provider or step that found it."
25
- };
26
- var FIELD_CATALOG = {
27
- person: {
28
- name: {
29
- description: "The person's name.",
30
- leaves: {
31
- value: value("Full name."),
32
- first: value("First (given) name."),
33
- last: value("Last (family) name.")
34
- }
35
- },
36
- email: {
37
- description: "An email address for the person.",
38
- leaves: {
39
- value: value("The address."),
40
- validated: {
41
- type: "boolean",
42
- description: "Whether the address passed validation."
43
- },
44
- status: {
45
- type: "EmailStatus",
46
- description: "The validation verdict and its signals."
47
- },
48
- source: SOURCE
49
- },
50
- kinds: {
51
- work: "At their employer.",
52
- personal: "Their own, not tied to an employer."
53
- }
54
- },
55
- phone: {
56
- description: "A phone number for the person.",
57
- leaves: {
58
- value: value("The number."),
59
- validated: {
60
- type: "boolean",
61
- description: "Whether the number passed validation."
62
- },
63
- status: {
64
- type: '"valid" | "invalid" | "unknown"',
65
- description: "The validation verdict."
66
- },
67
- line_type: value("Mobile, landline, VoIP and so on."),
68
- carrier: value("The carrier serving the number."),
69
- source: SOURCE
70
- },
71
- kinds: {
72
- mobile: "Their mobile.",
73
- work: "A direct line at their employer."
74
- }
75
- },
76
- linkedin: {
77
- description: "The person's LinkedIn profile.",
78
- leaves: { url: value("The profile URL.") }
79
- },
80
- job: {
81
- description: "The person's current role.",
82
- leaves: {
83
- title: value("Job title."),
84
- change: {
85
- type: "JobChange",
86
- description: "Whether they changed jobs, and to what."
87
- },
88
- change_status: {
89
- type: "JobChangeStatus",
90
- description: "The job-change verdict alone."
91
- }
92
- }
93
- },
94
- record: {
95
- description: "A provider's own record of the person.",
96
- leaves: { id: value("The provider's id for the person.") }
97
- }
98
- },
99
- company: {
100
- name: {
101
- description: "The company's name.",
102
- leaves: { value: value("The name.") },
103
- kinds: { legal: "As registered with a government." }
104
- },
105
- domain: {
106
- description: "The company's web domain.",
107
- leaves: { value: value("The bare domain, such as example.com.") }
108
- },
109
- website: {
110
- description: "The company's website.",
111
- leaves: { url: value("The site URL.") }
112
- },
113
- linkedin: {
114
- description: "The company's LinkedIn page.",
115
- leaves: { url: value("The page URL.") }
116
- },
117
- phone: {
118
- description: "A phone number for the company.",
119
- leaves: { value: value("The number.") }
120
- },
121
- industry: {
122
- description: "The industry the company is in.",
123
- leaves: { value: value("The industry.") }
124
- },
125
- record: {
126
- description: "A provider's own record of the company.",
127
- leaves: { id: value("The provider's id for the company.") }
128
- }
129
- }
130
- };
131
- function catalogFields() {
132
- return Object.entries(FIELD_CATALOG).flatMap(
133
- ([entity, groups]) => Object.entries(groups).flatMap(
134
- ([group, definition]) => [void 0, ...Object.keys(definition.kinds ?? {})].flatMap(
135
- (kind) => Object.entries(definition.leaves).map(([leaf, described]) => ({
136
- ...described,
137
- id: [entity, group, kind, leaf].filter(Boolean).join("."),
138
- entity,
139
- group,
140
- ...kind ? { kind } : {},
141
- leaf
142
- }))
143
- )
144
- )
145
- );
146
- }
147
- var FIELDS_BY_ID = new Map(catalogFields().map((field) => [field.id, field]));
148
- function generalField(id) {
149
- const field = FIELDS_BY_ID.get(id);
150
- return field?.kind ? [field.entity, field.group, field.leaf].join(".") : null;
151
- }
152
- function fieldSatisfies(offered, wanted) {
153
- return offered === wanted || generalField(offered) === wanted;
154
- }
155
- var EXTRACTOR_TARGET_FIELDS = {
156
- email: ["person.email.value"],
157
- personal_email: ["person.email.personal.value"],
158
- email_status: ["person.email.status"],
159
- phone: ["person.phone.value", "company.phone.value"],
160
- phone_status: ["person.phone.status"],
161
- first_name: ["person.name.first"],
162
- last_name: ["person.name.last"],
163
- full_name: ["person.name.value"],
164
- // Also used for a list name, a channel title and a search suggestion.
165
- name: ["person.name.value", "company.name.value"],
166
- linkedin: ["person.linkedin.url", "company.linkedin.url"],
167
- linkedin_url: ["person.linkedin.url"],
168
- title: ["person.job.title"],
169
- job_change: ["person.job.change"],
170
- job_change_status: ["person.job.change_status"],
171
- company: ["company.name.value"],
172
- company_name: ["company.name.value"],
173
- organization_name: ["company.name.value"],
174
- company_domain: ["company.domain.value"],
175
- domain: ["company.domain.value"],
176
- company_website: ["company.website.url"],
177
- // Also used for a podcast URL.
178
- website: ["company.website.url"],
179
- company_linkedin_url: ["company.linkedin.url"],
180
- industry: ["company.industry.value"],
181
- id: ["person.record.id", "company.record.id"],
182
- // Used for unrelated provider statuses; none is a catalog field.
183
- status: []
184
- };
185
- function fieldOfName(name, declared) {
186
- const meanings = EXTRACTOR_TARGET_FIELDS[name] ?? [];
187
- if (declared === void 0) {
188
- return meanings.length === 1 ? meanings[0] : void 0;
189
- }
190
- return meanings.some((meaning) => fieldSatisfies(declared, meaning)) ? declared : void 0;
191
- }
19
+ } from "./chunk-7YDN6AEK.mjs";
192
20
 
193
21
  // src/cli/described-tool.ts
194
22
  function isPlayLikeTool(tool) {
@@ -341,7 +169,7 @@ function extractorValueType(name) {
341
169
  const definition = DEEPLINE_EXTRACTOR_TARGET_DEFINITIONS[name];
342
170
  if (definition.enum) {
343
171
  return {
344
- type: definition.enum.map((value2) => JSON.stringify(value2)).join(" | ")
172
+ type: definition.enum.map((value) => JSON.stringify(value)).join(" | ")
345
173
  };
346
174
  }
347
175
  const named = NAMED_VALUE_SHAPES[definition.valueKind];
@@ -447,17 +275,17 @@ function describedTool(tool, requestedToolId) {
447
275
  const values = getterOutputs("extractedValues", [
448
276
  outputSchema,
449
277
  ...lists.map(({ node }) => node?.items)
450
- ]).map((value2) => {
451
- if (!lists.length || !value2.field.paths) return value2;
452
- const within = value2.field.paths.map(
278
+ ]).map((value) => {
279
+ if (!lists.length || !value.field.paths) return value;
280
+ const within = value.field.paths.map(
453
281
  (path) => path.replace(/^toolResponse\.raw\./, "")
454
282
  );
455
283
  const list = lists.find(
456
284
  ({ node }) => within.some((path) => isRecord(schemaNodeAt(node?.items, path)))
457
285
  ) ?? lists[0];
458
286
  return {
459
- ...value2,
460
- field: { ...value2.field, in: list.field.name, paths: within }
287
+ ...value,
288
+ field: { ...value.field, in: list.field.name, paths: within }
461
289
  };
462
290
  });
463
291
  const playReference = isPlayLikeTool(tool) ? playReferenceForTool(tool) : null;
@@ -593,7 +421,7 @@ function usageGuidanceWithAccessDefaults(usageGuidance) {
593
421
  return {
594
422
  ...usageGuidance,
595
423
  prefer: [
596
- "Use only the declared extractedLists and extractedValues getters listed below.",
424
+ "Read each declared output with the expression listed below: toolExecutionResult.fields.<name>.value for a list or a value whose meaning is known, otherwise extractedValues.<name>.get().",
597
425
  "Use toolExecutionResult.toolResponse.rawV2 for the complete tool response, preserving the nesting shown in the response example.",
598
426
  "Schemas declare field shapes; examples illustrate input values and full Deepline execution responses."
599
427
  ],
@@ -660,8 +488,8 @@ function toolInputFieldsForDisplay(inputSchema) {
660
488
  const jsonSchema = isRecord(inputSchema.jsonSchema) ? inputSchema.jsonSchema : inputSchema;
661
489
  const properties = isRecord(jsonSchema.properties) ? jsonSchema.properties : {};
662
490
  const required = Array.isArray(jsonSchema.required) ? new Set(jsonSchema.required.map(String)) : /* @__PURE__ */ new Set();
663
- return Object.entries(properties).map(([name, value2]) => {
664
- const property = isRecord(value2) ? value2 : {};
491
+ return Object.entries(properties).map(([name, value]) => {
492
+ const property = isRecord(value) ? value : {};
665
493
  return {
666
494
  name,
667
495
  type: typeof property.type === "string" ? property.type : "unknown",
@@ -703,11 +531,11 @@ function publicToolInputSchemaForDescribe(inputSchema) {
703
531
  withoutDeeplineCredits
704
532
  ) || /\b(?:additional|extra)\s+charges?\b/i.test(withoutDeeplineCredits) || /\bcharg(?:e|ed)\s+(?:double|per)\b/i.test(withoutDeeplineCredits) || /\bpricing page\b/i.test(withoutDeeplineCredits);
705
533
  };
706
- const stripDescriptions = (value2) => {
707
- if (Array.isArray(value2)) return value2.map(stripDescriptions);
708
- if (!isRecord(value2)) return value2;
534
+ const stripDescriptions = (value) => {
535
+ if (Array.isArray(value)) return value.map(stripDescriptions);
536
+ if (!isRecord(value)) return value;
709
537
  return Object.fromEntries(
710
- Object.entries(value2).flatMap(([key, nested]) => {
538
+ Object.entries(value).flatMap(([key, nested]) => {
711
539
  if (key === "description" && typeof nested === "string" && exposesProviderSpend(nested)) {
712
540
  return [];
713
541
  }
@@ -721,16 +549,16 @@ function recursiveToolInputFieldsForDisplay(inputSchema) {
721
549
  const root = canonicalToolJsonSchema(inputSchema);
722
550
  const fields = /* @__PURE__ */ new Map();
723
551
  const schemasById = /* @__PURE__ */ new Map();
724
- const collectSchemaIds = (value2) => {
725
- if (Array.isArray(value2)) {
726
- for (const item of value2) collectSchemaIds(item);
552
+ const collectSchemaIds = (value) => {
553
+ if (Array.isArray(value)) {
554
+ for (const item of value) collectSchemaIds(item);
727
555
  return;
728
556
  }
729
- if (!isRecord(value2)) return;
730
- if (typeof value2.$id === "string" && value2.$id.trim()) {
731
- schemasById.set(value2.$id.trim(), value2);
557
+ if (!isRecord(value)) return;
558
+ if (typeof value.$id === "string" && value.$id.trim()) {
559
+ schemasById.set(value.$id.trim(), value);
732
560
  }
733
- for (const nested of Object.values(value2)) collectSchemaIds(nested);
561
+ for (const nested of Object.values(value)) collectSchemaIds(nested);
734
562
  };
735
563
  collectSchemaIds(root);
736
564
  const resolveRef = (schema) => {
@@ -775,10 +603,10 @@ function recursiveToolInputFieldsForDisplay(inputSchema) {
775
603
  const requiredNames = new Set(
776
604
  Array.isArray(schema.required) ? schema.required.map(String) : []
777
605
  );
778
- for (const [name, value2] of Object.entries(properties)) {
779
- if (!isRecord(value2)) continue;
606
+ for (const [name, value] of Object.entries(properties)) {
607
+ if (!isRecord(value)) continue;
780
608
  visit(
781
- value2,
609
+ value,
782
610
  path ? `${path}.${name}` : name,
783
611
  requiredNames.has(name),
784
612
  nextActiveRefs
@@ -812,27 +640,27 @@ function inputFieldJsonForDescribe(field) {
812
640
  ...Object.prototype.hasOwnProperty.call(field, "default") ? { default: field.default } : {}
813
641
  };
814
642
  }
815
- function isRecord(value2) {
816
- return Boolean(value2 && typeof value2 === "object" && !Array.isArray(value2));
643
+ function isRecord(value) {
644
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
817
645
  }
818
646
  function stringField(source, ...keys) {
819
647
  for (const key of keys) {
820
- const value2 = source[key];
821
- if (typeof value2 === "string" && value2.trim()) return value2.trim();
648
+ const value = source[key];
649
+ if (typeof value === "string" && value.trim()) return value.trim();
822
650
  }
823
651
  return "";
824
652
  }
825
653
  function arrayField(source, ...keys) {
826
654
  for (const key of keys) {
827
- const value2 = source[key];
828
- if (Array.isArray(value2)) return value2;
655
+ const value = source[key];
656
+ if (Array.isArray(value)) return value;
829
657
  }
830
658
  return [];
831
659
  }
832
660
  function recordField(source, ...keys) {
833
661
  for (const key of keys) {
834
- const value2 = source[key];
835
- if (isRecord(value2)) return value2;
662
+ const value = source[key];
663
+ if (isRecord(value)) return value;
836
664
  }
837
665
  return {};
838
666
  }
@@ -861,7 +689,7 @@ function formatModelDescription(description) {
861
689
  );
862
690
  if (contextWindow !== null) lines.push(`Context: ${contextWindow}`);
863
691
  const tags = arrayField2(description.modelMetadata, "tags").filter(
864
- (value2) => typeof value2 === "string"
692
+ (value) => typeof value === "string"
865
693
  );
866
694
  if (tags.length) lines.push(`Tags: ${tags.join(", ")}`);
867
695
  lines.push("");
@@ -886,25 +714,25 @@ function formatModelDescription(description) {
886
714
  function appendNamespace(lines, namespace) {
887
715
  lines.push(`- ${namespace.provider} (${namespace.sourceSymbol})`);
888
716
  for (const field of namespace.fields) {
889
- const values = field.enumValues?.length ? ` (${field.enumValues.map((value2) => JSON.stringify(value2)).join(" | ")})` : "";
717
+ const values = field.enumValues?.length ? ` (${field.enumValues.map((value) => JSON.stringify(value)).join(" | ")})` : "";
890
718
  lines.push(
891
719
  ` - ${field.name}: ${field.type}${values} - ${field.description}`
892
720
  );
893
721
  }
894
722
  }
895
- function stringField2(value2, key) {
896
- if (!value2 || typeof value2 !== "object" || Array.isArray(value2)) return null;
897
- const candidate = value2[key];
723
+ function stringField2(value, key) {
724
+ if (!value || typeof value !== "object" || Array.isArray(value)) return null;
725
+ const candidate = value[key];
898
726
  return typeof candidate === "string" && candidate.trim() ? candidate.trim() : null;
899
727
  }
900
- function numberField(value2, key) {
901
- if (!value2 || typeof value2 !== "object" || Array.isArray(value2)) return null;
902
- const candidate = value2[key];
728
+ function numberField(value, key) {
729
+ if (!value || typeof value !== "object" || Array.isArray(value)) return null;
730
+ const candidate = value[key];
903
731
  return typeof candidate === "number" ? candidate : null;
904
732
  }
905
- function arrayField2(value2, key) {
906
- if (!value2 || typeof value2 !== "object" || Array.isArray(value2)) return [];
907
- const candidate = value2[key];
733
+ function arrayField2(value, key) {
734
+ if (!value || typeof value !== "object" || Array.isArray(value)) return [];
735
+ const candidate = value[key];
908
736
  return Array.isArray(candidate) ? candidate : [];
909
737
  }
910
738