deepline 0.3.477 → 0.3.479

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 (168) hide show
  1. package/dist/bundling-sources/sdk/src/client-core.ts +5 -4
  2. package/dist/bundling-sources/sdk/src/http-core.ts +84 -3
  3. package/dist/bundling-sources/sdk/src/http.ts +2 -0
  4. package/dist/bundling-sources/sdk/src/play.ts +8 -2
  5. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  6. package/dist/bundling-sources/shared_libs/integration-contracts/billing-entitlements.ts +11 -0
  7. package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +18 -0
  8. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +10 -2
  9. package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-rate-state-backend.ts +11 -1
  10. package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +5 -0
  11. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-payload-transport.ts +77 -4
  12. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-session-execution.ts +83 -1
  13. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +7 -0
  14. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +60 -27
  15. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +13 -12
  16. package/dist/bundling-sources/shared_libs/plays/bundling/index.ts +5 -2
  17. package/dist/bundling-sources/shared_libs/plays/sandbox-runtime-limits.ts +37 -12
  18. package/dist/bundling-sources/shared_libs/product-notifications/billing-sales.ts +3 -1
  19. package/dist/bundling-sources/shared_libs/product-notifications/catalog.ts +29 -0
  20. package/dist/bundling-sources/shared_libs/product-notifications/events.ts +15 -0
  21. package/dist/bundling-sources/shared_libs/product-notifications/slack-delivery.ts +57 -5
  22. package/dist/bundling-sources/shared_libs/product-notifications/slack-transport.ts +19 -0
  23. package/dist/cli/{auth-XVXRRWIQ.mjs → auth-D7DYB57R.mjs} +5 -5
  24. package/dist/cli/auth-MZDFNRPG.js +41 -0
  25. package/dist/cli/{billing-2H7GFJDT.js → billing-DHGSNM6E.js} +107 -87
  26. package/dist/cli/{billing-EOPUJ4JI.mjs → billing-DT4JT4QN.mjs} +34 -14
  27. package/dist/cli/{chunk-CH4VMDB5.js → chunk-27GSBTWD.js} +70 -52
  28. package/dist/cli/{chunk-PQQNMMWM.mjs → chunk-27PXHD2P.mjs} +1 -1
  29. package/dist/cli/{chunk-ACDXGOXE.js → chunk-33O2JGHE.js} +63 -11
  30. package/dist/cli/{chunk-255O6APS.js → chunk-3GIM7XRH.js} +2 -2
  31. package/dist/cli/{chunk-6IJJCRE5.mjs → chunk-3PHOAUU4.mjs} +23 -5
  32. package/dist/cli/{chunk-NC52JG66.js → chunk-3SGA53DX.js} +3 -3
  33. package/dist/cli/{chunk-RHIFH3GD.mjs → chunk-6C3QY5JS.mjs} +1 -1
  34. package/dist/cli/{chunk-NJMYX2TP.mjs → chunk-6QIXWFPO.mjs} +3 -3
  35. package/dist/cli/chunk-7I4B6V2S.mjs +127 -0
  36. package/dist/cli/{chunk-MZSLFWOT.js → chunk-7UFFWPQ2.js} +13 -9
  37. package/dist/cli/{chunk-RGNMMDSJ.js → chunk-AFHFZU5V.js} +37 -37
  38. package/dist/cli/{chunk-KWQNNPMH.js → chunk-AKVNUNL7.js} +3 -3
  39. package/dist/cli/{chunk-LXKGZKTL.js → chunk-CK2Q6AWR.js} +26 -26
  40. package/dist/cli/{chunk-DFKHXZQ7.mjs → chunk-D6MLXRMQ.mjs} +10 -10
  41. package/dist/cli/{chunk-7CILZKLE.js → chunk-EMVWC5LP.js} +5 -5
  42. package/dist/cli/{chunk-75NLWBYQ.js → chunk-FBEXJVQL.js} +93 -93
  43. package/dist/cli/{chunk-JS4UO6G4.mjs → chunk-FKEZ5DIJ.mjs} +2 -1
  44. package/dist/cli/{chunk-ZDPL5AIK.js → chunk-FV7WGK5X.js} +5 -5
  45. package/dist/cli/{chunk-E2CUSH56.js → chunk-G6V34EQ5.js} +16 -16
  46. package/dist/cli/{chunk-DS3DZUES.mjs → chunk-GICSDK72.mjs} +2 -2
  47. package/dist/cli/{chunk-C2V2HQDW.mjs → chunk-GONL4EFT.mjs} +2 -2
  48. package/dist/cli/{chunk-6KKDIISC.js → chunk-GQCH6Y7W.js} +1 -1
  49. package/dist/cli/{chunk-3UKKM6OS.js → chunk-GSULE54L.js} +7 -6
  50. package/dist/cli/{chunk-2YNLW43I.mjs → chunk-GZ43YXHT.mjs} +2 -2
  51. package/dist/cli/{chunk-UYA7LJGC.mjs → chunk-IL5AF6AR.mjs} +4 -2
  52. package/dist/cli/{chunk-R5FNCFEK.js → chunk-J5VDE42G.js} +3 -3
  53. package/dist/cli/{chunk-KMXBZIKO.mjs → chunk-JFGOMQW6.mjs} +2 -2
  54. package/dist/cli/{chunk-C46DWB56.mjs → chunk-JKUFOP7M.mjs} +1 -1
  55. package/dist/cli/{chunk-23EEVP5W.js → chunk-JMCTNS6S.js} +6 -6
  56. package/dist/cli/{chunk-ISEUOYCB.mjs → chunk-JNFNNJ75.mjs} +4 -4
  57. package/dist/cli/{chunk-C2AN2HTB.mjs → chunk-K5RRY7DJ.mjs} +4 -4
  58. package/dist/cli/{chunk-M2UL4ZS5.js → chunk-LXYDN5FE.js} +7 -7
  59. package/dist/cli/{chunk-3W6E3WVU.js → chunk-N4M6CO5H.js} +9 -9
  60. package/dist/cli/{chunk-RLCAECZH.mjs → chunk-N7E25EU2.mjs} +5 -5
  61. package/dist/cli/{chunk-YZA5UJXM.mjs → chunk-O5BUFQ2P.mjs} +1 -1
  62. package/dist/cli/{chunk-WFVEMDQL.js → chunk-OKAZHDYN.js} +4 -2
  63. package/dist/cli/{chunk-4RAENEAX.js → chunk-OVFCPV24.js} +53 -53
  64. package/dist/cli/{chunk-NO7ZC2GV.mjs → chunk-PUOKABQF.mjs} +5 -5
  65. package/dist/cli/{chunk-SG2SZQ4K.mjs → chunk-RJVUILW4.mjs} +2 -2
  66. package/dist/cli/{chunk-SVU2VR6Q.mjs → chunk-TZCHXF4R.mjs} +2 -2
  67. package/dist/cli/{chunk-XQLYPHYW.mjs → chunk-UOYA35OT.mjs} +1 -1
  68. package/dist/cli/{chunk-THMGJOR4.js → chunk-VKBLXJCK.js} +8 -8
  69. package/dist/cli/{chunk-UBNS6GSV.js → chunk-VRZXGJXH.js} +21 -21
  70. package/dist/cli/{chunk-DMWHEYZM.js → chunk-W4HIOBQQ.js} +2 -2
  71. package/dist/cli/{chunk-347EE4YE.js → chunk-W6N2S5N7.js} +8 -8
  72. package/dist/cli/{chunk-WRHLAAGN.mjs → chunk-XBYW5EHY.mjs} +1 -1
  73. package/dist/cli/{chunk-LJYTYNQZ.mjs → chunk-XDFARN7U.mjs} +55 -3
  74. package/dist/cli/{chunk-2QT6KN54.js → chunk-Y2MVDYV6.js} +10 -10
  75. package/dist/cli/{chunk-QODW5ILA.mjs → chunk-YC2QBF2W.mjs} +2 -2
  76. package/dist/cli/chunk-YGCKMI5P.js +127 -0
  77. package/dist/cli/{chunk-3A7TDUZV.mjs → chunk-ZBSUXXZS.mjs} +13 -9
  78. package/dist/cli/{chunk-2GZFIWSA.mjs → chunk-ZJRVHQSZ.mjs} +4 -4
  79. package/dist/cli/command-docs.js +2 -2
  80. package/dist/cli/command-docs.mjs +1 -1
  81. package/dist/cli/{csv-ECB7TYR2.js → csv-DQWOZ2BL.js} +13 -13
  82. package/dist/cli/{csv-IDRPTSSC.mjs → csv-JXFOD7DJ.mjs} +4 -4
  83. package/dist/cli/{db-FOBZD44N.mjs → db-NOGMZAQE.mjs} +6 -6
  84. package/dist/cli/{db-S74XZZ77.js → db-Q2OAAXRX.js} +27 -27
  85. package/dist/cli/describe-THHHNUEA.js +48 -0
  86. package/dist/cli/{describe-KMTPPI2J.mjs → describe-VKZTZLX6.mjs} +17 -17
  87. package/dist/cli/describe-core.d.mts +3 -3
  88. package/dist/cli/describe-core.d.ts +3 -3
  89. package/dist/cli/{executions-ZE3JMNA4.js → executions-B3GDZ4GQ.js} +8 -8
  90. package/dist/cli/{executions-4JAIVE2E.mjs → executions-XU3JMNI3.mjs} +6 -6
  91. package/dist/cli/{feedback-W6VA47A3.js → feedback-5IW3ZKRP.js} +8 -8
  92. package/dist/cli/{feedback-EUX5PDBA.mjs → feedback-R5UQXINE.mjs} +4 -4
  93. package/dist/cli/{git-UOVG4PLH.mjs → git-7B4H7VEL.mjs} +5 -5
  94. package/dist/cli/git-BX27JAW4.js +25 -0
  95. package/dist/cli/index.js +161 -142
  96. package/dist/cli/index.mjs +65 -46
  97. package/dist/cli/{legacy-noops-3H35EH5Y.js → legacy-noops-AVT6T5QI.js} +8 -8
  98. package/dist/cli/{legacy-noops-ZBWUNFWV.mjs → legacy-noops-KY7JAALE.mjs} +5 -5
  99. package/dist/cli/{monitors-AYSGSUAK.mjs → monitors-G7L7AFXR.mjs} +7 -7
  100. package/dist/cli/{monitors-PI3KPLR2.js → monitors-GZB6CWK2.js} +91 -91
  101. package/dist/cli/{org-2BIG7U4V.mjs → org-QDUBOQTH.mjs} +6 -6
  102. package/dist/cli/{org-MVS3Y6BK.js → org-ZHHKAPCE.js} +72 -72
  103. package/dist/cli/{pages-VB6FOVDE.js → pages-5P3SPMN5.js} +17 -17
  104. package/dist/cli/{pages-4TRRL24G.mjs → pages-Q4WGQCST.mjs} +6 -6
  105. package/dist/cli/{play-BLT6IT2O.js → play-IRLKESZB.js} +585 -678
  106. package/dist/cli/{play-JR3VUOZM.mjs → play-WRSHD4RE.mjs} +26 -119
  107. package/dist/cli/{providers-547DPK4S.mjs → providers-7CQUHS57.mjs} +6 -6
  108. package/dist/cli/{providers-BBXIAGW4.js → providers-LKEYLN6D.js} +9 -9
  109. package/dist/cli/{quickstart-NTLXD7HS.mjs → quickstart-I6NYGMEE.mjs} +4 -4
  110. package/dist/cli/{quickstart-RNPI5B6J.js → quickstart-KS45M5SR.js} +6 -6
  111. package/dist/cli/{run-QZ4SFECD.mjs → run-AZETCL7R.mjs} +22 -22
  112. package/dist/cli/{run-BCCEXBOG.js → run-BLMOBNAN.js} +36 -36
  113. package/dist/cli/{search-PYNELH4C.mjs → search-EEKEP67Y.mjs} +7 -7
  114. package/dist/cli/search-PEQXXY2B.js +32 -0
  115. package/dist/cli/{secrets-O5WGREQ7.mjs → secrets-HAULG2EW.mjs} +6 -6
  116. package/dist/cli/{secrets-VD35LMYJ.js → secrets-M6NU3TD2.js} +15 -15
  117. package/dist/cli/{sessions-2TL6Z5J5.mjs → sessions-5MB4XKOK.mjs} +5 -5
  118. package/dist/cli/{sessions-NGGIBYXF.js → sessions-DSR5AHIA.js} +6 -6
  119. package/dist/cli/{settings-ERFNZRHO.js → settings-6US327NQ.js} +78 -78
  120. package/dist/cli/{settings-6KM74AJT.mjs → settings-JUQP4HYQ.mjs} +11 -11
  121. package/dist/cli/{setup-6X7EJ6RG.js → setup-5ZRSEQUD.js} +44 -44
  122. package/dist/cli/{setup-Y3BN6XRS.mjs → setup-JRH4UC47.mjs} +9 -9
  123. package/dist/cli/{skills-OUBQASHI.mjs → skills-HFOZ5WDH.mjs} +7 -7
  124. package/dist/cli/skills-P67KCVDR.js +33 -0
  125. package/dist/cli/{tools-EELZ5FF5.mjs → tools-CJEBZNPB.mjs} +16 -16
  126. package/dist/cli/tools-PDBEAI22.js +55 -0
  127. package/dist/cli/update-G6DI3BQW.js +33 -0
  128. package/dist/cli/{update-TX7SW32Y.mjs → update-VQJEPAAK.mjs} +9 -9
  129. package/dist/cli/{workflow-PUNQG7LG.mjs → workflow-EYWE3T75.mjs} +7 -7
  130. package/dist/cli/{workflow-5AI2BJA7.js → workflow-NKPDRZOP.js} +17 -17
  131. package/dist/{client-AjmfA5nR.d.mts → client-B9N1bcGc.d.mts} +1 -1
  132. package/dist/{client-DMyY-QL8.d.ts → client-Btw075Hq.d.ts} +1 -1
  133. package/dist/{client-core-C705vFyV.d.ts → client-core-DvGWlwtX.d.ts} +45 -6
  134. package/dist/{client-core-CpBbvLEX.d.mts → client-core-TulbIeRB.d.mts} +45 -6
  135. package/dist/{compiler-manifest-hqIAukR0.d.mts → compiler-manifest-gkO9ZkVg.d.mts} +37 -17
  136. package/dist/{compiler-manifest-hqIAukR0.d.ts → compiler-manifest-gkO9ZkVg.d.ts} +37 -17
  137. package/dist/{errors-CRO2qQ6k.d.ts → errors-Cc92LKH-.d.ts} +1 -1
  138. package/dist/{errors-DIHVetNY.d.mts → errors-CeCCOKSA.d.mts} +1 -1
  139. package/dist/{index-B8DVoeYt.d.ts → index-DJQKdV76.d.ts} +1 -1
  140. package/dist/{index-DVZ_X4Gb.d.mts → index-DsqWJL3Q.d.mts} +1 -1
  141. package/dist/index.d.mts +15 -9
  142. package/dist/index.d.ts +15 -9
  143. package/dist/index.js +9 -9
  144. package/dist/index.mjs +6 -6
  145. package/dist/install-integrity.json +112 -110
  146. package/dist/plays/bundle-play-file.d.mts +3 -3
  147. package/dist/plays/bundle-play-file.d.ts +3 -3
  148. package/dist/plays/bundle-play-file.mjs +2 -1
  149. package/dist/plays/play-description.d.mts +2 -2
  150. package/dist/plays/play-description.d.ts +2 -2
  151. package/dist/plays/run-request.d.mts +2 -2
  152. package/dist/plays/run-request.d.ts +2 -2
  153. package/dist/release.d.mts +1 -1
  154. package/dist/release.d.ts +1 -1
  155. package/dist/release.js +2 -2
  156. package/dist/release.mjs +1 -1
  157. package/dist/server.d.mts +4 -4
  158. package/dist/server.d.ts +4 -4
  159. package/dist/server.js +5 -5
  160. package/dist/server.mjs +3 -3
  161. package/package.json +1 -1
  162. package/dist/cli/auth-QITP34OX.js +0 -41
  163. package/dist/cli/describe-PI7HCT7K.js +0 -48
  164. package/dist/cli/git-NDOGCQZY.js +0 -25
  165. package/dist/cli/search-YHEICYQL.js +0 -32
  166. package/dist/cli/skills-F7MPYC4P.js +0 -33
  167. package/dist/cli/tools-MCWDAK53.js +0 -55
  168. package/dist/cli/update-G5BRJOVT.js +0 -33
@@ -1,7 +1,7 @@
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
3
 
4
- var _chunkACDXGOXEjs = require('./chunk-ACDXGOXE.js');
4
+ var _chunk33O2JGHEjs = require('./chunk-33O2JGHE.js');
5
5
 
6
6
 
7
7
  var _chunkALJJRZNJjs = require('./chunk-ALJJRZNJ.js');
@@ -711,7 +711,7 @@ function readSkillsVersionFile(path) {
711
711
  }
712
712
  }
713
713
  function resolveAutoSyncSkillAgents() {
714
- switch (_chunkACDXGOXEjs.detectAgentRuntime.call(void 0, )) {
714
+ switch (_chunk33O2JGHEjs.detectAgentRuntime.call(void 0, )) {
715
715
  case "codex":
716
716
  return ["codex"];
717
717
  case "claude_code":
@@ -781,7 +781,7 @@ function writeSdkSkillsLocalVersion(baseUrl, version, agents) {
781
781
  }
782
782
 
783
783
  // src/http.ts
784
- var HttpClient2 = class extends _chunkACDXGOXEjs.HttpClient {
784
+ var HttpClient2 = class extends _chunk33O2JGHEjs.HttpClient {
785
785
  constructor(config) {
786
786
  super(config, readSdkSkillsLocalVersion);
787
787
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveShellSpawn
3
- } from "./chunk-C2AN2HTB.mjs";
3
+ } from "./chunk-K5RRY7DJ.mjs";
4
4
 
5
5
  // src/cli/npm-script-policy.ts
6
6
  import { spawnSync } from "child_process";
@@ -3,15 +3,15 @@ import {
3
3
  } from "./chunk-LJ5747UC.mjs";
4
4
  import {
5
5
  DeeplineClient
6
- } from "./chunk-SG2SZQ4K.mjs";
6
+ } from "./chunk-RJVUILW4.mjs";
7
7
  import {
8
8
  printCommandEnvelope,
9
9
  renderCommandEnvelopeText
10
- } from "./chunk-QODW5ILA.mjs";
10
+ } from "./chunk-YC2QBF2W.mjs";
11
11
  import {
12
12
  resolveConfig,
13
13
  sdkCliStateDirPath
14
- } from "./chunk-YZA5UJXM.mjs";
14
+ } from "./chunk-O5BUFQ2P.mjs";
15
15
  import {
16
16
  __commonJS,
17
17
  __toESM
@@ -0,0 +1,127 @@
1
+ // ../plays/sandbox-runtime-limits.ts
2
+ var PLAY_SANDBOX_SIZE_LIMITS = {
3
+ standard: {
4
+ memoryGiB: 1,
5
+ cpu: 1,
6
+ diskGiB: 3
7
+ },
8
+ large: {
9
+ memoryGiB: 4,
10
+ cpu: 2,
11
+ diskGiB: 8
12
+ },
13
+ xlarge: {
14
+ memoryGiB: 8,
15
+ cpu: 4,
16
+ diskGiB: 10
17
+ }
18
+ };
19
+ var PLAY_SANDBOX_SIZE_ALIASES = {
20
+ "1gb": "standard",
21
+ "4gb": "large",
22
+ "8gb": "xlarge"
23
+ };
24
+ var PLAY_SANDBOX_SIZE_INPUTS = [
25
+ ...Object.keys(PLAY_SANDBOX_SIZE_LIMITS),
26
+ ...Object.keys(
27
+ PLAY_SANDBOX_SIZE_ALIASES
28
+ )
29
+ ];
30
+ var STANDARD_PLAY_SANDBOX_RUNTIME_LIMITS = {
31
+ timeoutSeconds: 30 * 60,
32
+ ...PLAY_SANDBOX_SIZE_LIMITS.standard
33
+ };
34
+ var MAX_PLAY_SANDBOX_RUNTIME_LIMITS = {
35
+ timeoutSeconds: 4 * 60 * 60,
36
+ ...PLAY_SANDBOX_SIZE_LIMITS.xlarge
37
+ };
38
+ function modalSandboxMemoryLimitGiBForPlay(input) {
39
+ if (!Object.values(PLAY_SANDBOX_SIZE_LIMITS).some(
40
+ (profile) => profile.memoryGiB === input.memoryGiB
41
+ )) {
42
+ throw new Error(
43
+ `Unsupported Modal memory reservation: ${input.memoryGiB} GiB.`
44
+ );
45
+ }
46
+ return Math.min(
47
+ Math.max(4, input.memoryGiB * 2),
48
+ MAX_PLAY_SANDBOX_RUNTIME_LIMITS.memoryGiB
49
+ );
50
+ }
51
+ function playSandboxSizeForLimits(limits) {
52
+ return Object.entries(PLAY_SANDBOX_SIZE_LIMITS).find(
53
+ ([, profile]) => profile.memoryGiB === limits.memoryGiB && profile.cpu === limits.cpu && profile.diskGiB === limits.diskGiB
54
+ )?.[0] ?? null;
55
+ }
56
+ var SUPPORTED_PLAY_SANDBOX_SIZES = PLAY_SANDBOX_SIZE_INPUTS.join(", ");
57
+ function normalizePlaySandboxSize(value) {
58
+ if (typeof value !== "string") return null;
59
+ if (Object.hasOwn(PLAY_SANDBOX_SIZE_LIMITS, value)) {
60
+ return value;
61
+ }
62
+ return Object.hasOwn(PLAY_SANDBOX_SIZE_ALIASES, value) ? PLAY_SANDBOX_SIZE_ALIASES[value] : null;
63
+ }
64
+ function parseTimeout(value) {
65
+ const match = /^(\d+)\s*([mh])$/i.exec(value.trim());
66
+ if (!match) return null;
67
+ const amount = Number(match[1]);
68
+ if (!Number.isSafeInteger(amount) || amount <= 0) return null;
69
+ return amount * (match[2].toLowerCase() === "h" ? 3600 : 60);
70
+ }
71
+ function validatePlaySandboxRuntimeLimits(value) {
72
+ if (!playSandboxSizeForLimits(value)) {
73
+ throw new Error(
74
+ `Unsupported runtime sandbox resources: cpu=${value.cpu} memoryGiB=${value.memoryGiB} diskGiB=${value.diskGiB}. Use runtime.size with a Deepline prebuilt sandbox. Supported sizes: ${SUPPORTED_PLAY_SANDBOX_SIZES}.`
75
+ );
76
+ }
77
+ if (!Number.isSafeInteger(value.timeoutSeconds) || value.timeoutSeconds <= 0) {
78
+ throw new Error(
79
+ 'Invalid runtime sandbox timeout. Use timeout like "90m" or "2h".'
80
+ );
81
+ }
82
+ if (value.timeoutSeconds > MAX_PLAY_SANDBOX_RUNTIME_LIMITS.timeoutSeconds) {
83
+ throw new Error(
84
+ `Requested runtime timeoutSeconds=${value.timeoutSeconds} exceeds this organisation's maximum ${MAX_PLAY_SANDBOX_RUNTIME_LIMITS.timeoutSeconds}.`
85
+ );
86
+ }
87
+ return { ...value };
88
+ }
89
+ function resolvePlaySandboxRuntimeLimits(declaration) {
90
+ const base = STANDARD_PLAY_SANDBOX_RUNTIME_LIMITS;
91
+ if (!declaration) return { ...base };
92
+ const unsupportedProperties = Object.keys(declaration).filter(
93
+ (key) => key !== "timeout" && key !== "size"
94
+ );
95
+ if (unsupportedProperties.length > 0) {
96
+ throw new Error(
97
+ `Unsupported runtime sandbox option${unsupportedProperties.length === 1 ? "" : "s"}: ${unsupportedProperties.join(", ")}. Use runtime.size with a Deepline prebuilt sandbox. Supported sizes: ${SUPPORTED_PLAY_SANDBOX_SIZES}.`
98
+ );
99
+ }
100
+ const size = declaration.size === void 0 ? "standard" : normalizePlaySandboxSize(declaration.size);
101
+ if (!size) {
102
+ throw new Error(
103
+ `Unsupported runtime sandbox size "${String(declaration.size)}". Supported sizes: ${SUPPORTED_PLAY_SANDBOX_SIZES}.`
104
+ );
105
+ }
106
+ const timeoutSeconds = declaration.timeout ? parseTimeout(declaration.timeout) : base.timeoutSeconds;
107
+ if (timeoutSeconds === null) {
108
+ throw new Error(
109
+ 'Invalid runtime sandbox timeout. Use timeout like "90m" or "2h".'
110
+ );
111
+ }
112
+ return validatePlaySandboxRuntimeLimits({
113
+ timeoutSeconds,
114
+ ...PLAY_SANDBOX_SIZE_LIMITS[size]
115
+ });
116
+ }
117
+
118
+ export {
119
+ PLAY_SANDBOX_SIZE_LIMITS,
120
+ PLAY_SANDBOX_SIZE_INPUTS,
121
+ STANDARD_PLAY_SANDBOX_RUNTIME_LIMITS,
122
+ MAX_PLAY_SANDBOX_RUNTIME_LIMITS,
123
+ modalSandboxMemoryLimitGiBForPlay,
124
+ playSandboxSizeForLimits,
125
+ SUPPORTED_PLAY_SANDBOX_SIZES,
126
+ resolvePlaySandboxRuntimeLimits
127
+ };
@@ -7,6 +7,10 @@ var _chunk3KC45UVFjs = require('./chunk-3KC45UVF.js');
7
7
 
8
8
 
9
9
 
10
+ var _chunkYGCKMI5Pjs = require('./chunk-YGCKMI5P.js');
11
+
12
+
13
+
10
14
 
11
15
 
12
16
 
@@ -1389,11 +1393,9 @@ var PLAY_AUTHORING_FIELD_REGISTRY = {
1389
1393
  errorMessage: 'rateLimit.every must be a static duration from "10s" to "24h", such as "5m".'
1390
1394
  },
1391
1395
  "runtime.size": {
1392
- schema: _typebox.Type.Union([
1393
- _typebox.Type.Literal("standard"),
1394
- _typebox.Type.Literal("large"),
1395
- _typebox.Type.Literal("xlarge")
1396
- ]),
1396
+ schema: _typebox.Type.Union(
1397
+ _chunkYGCKMI5Pjs.PLAY_SANDBOX_SIZE_INPUTS.map((size) => _typebox.Type.Literal(size))
1398
+ ),
1397
1399
  fixtures: {
1398
1400
  valid: "large",
1399
1401
  invalid: "xxlarge",
@@ -1401,12 +1403,14 @@ var PLAY_AUTHORING_FIELD_REGISTRY = {
1401
1403
  unresolved: { expression: "size" },
1402
1404
  edition1: "standard"
1403
1405
  },
1404
- referenceType: "'standard' | 'large' | 'xlarge'",
1406
+ referenceType: _chunkYGCKMI5Pjs.PLAY_SANDBOX_SIZE_INPUTS.map((size) => `'${size}'`).join(
1407
+ " | "
1408
+ ),
1405
1409
  required: false,
1406
1410
  resolution: "static-required",
1407
1411
  issueCode: "play_authoring_binding_invalid",
1408
- description: "Deepline-managed sandbox size: standard (1 GiB memory, 1 CPU), large (4 GiB, 2 CPU), or xlarge (8 GiB, 4 CPU). Standard is the default. Compute pricing follows the workspace plan and selected size.",
1409
- errorMessage: 'runtime.size must be the static literal "standard", "large", or "xlarge".'
1412
+ description: "Deepline-managed sandbox size: standard or 1gb (1 GiB memory, 1 CPU), large or 4gb (4 GiB, 2 CPU), or xlarge or 8gb (8 GiB, 4 CPU). Standard is the default. Each alias selects the same resource profile and compute price as its named size.",
1413
+ errorMessage: 'runtime.size must be the static literal "standard", "large", "xlarge", "1gb", "4gb", or "8gb".'
1410
1414
  },
1411
1415
  "ctx.customerDb.query.statement": {
1412
1416
  schema: _typebox.Type.Union([
@@ -4472,7 +4476,7 @@ function sandboxRuntimeDeclarationFromOptions(node, context) {
4472
4476
  ) : [];
4473
4477
  if (unsupportedProperties.length > 0) {
4474
4478
  throw new Error(
4475
- `Unsupported runtime sandbox option${unsupportedProperties.length === 1 ? "" : "s"} "${unsupportedProperties.join('", "')}". Use runtime.size with a Deepline prebuilt sandbox. Supported sizes: "standard", "large", or "xlarge".`
4479
+ `Unsupported runtime sandbox option${unsupportedProperties.length === 1 ? "" : "s"} "${unsupportedProperties.join('", "')}". Use runtime.size with a Deepline prebuilt sandbox. Supported sizes: ${_chunkYGCKMI5Pjs.SUPPORTED_PLAY_SANDBOX_SIZES}.`
4476
4480
  );
4477
4481
  }
4478
4482
  const timeout = resolveStaticProperty(runtime.value, "timeout", context);
@@ -11,20 +11,20 @@
11
11
 
12
12
 
13
13
 
14
- var _chunk4RAENEAXjs = require('./chunk-4RAENEAX.js');
14
+ var _chunkOVFCPV24js = require('./chunk-OVFCPV24.js');
15
15
 
16
16
 
17
- var _chunkM2UL4ZS5js = require('./chunk-M2UL4ZS5.js');
17
+ var _chunkLXYDN5FEjs = require('./chunk-LXYDN5FE.js');
18
18
 
19
19
 
20
20
 
21
21
 
22
22
 
23
- var _chunkNC52JG66js = require('./chunk-NC52JG66.js');
23
+ var _chunk3SGA53DXjs = require('./chunk-3SGA53DX.js');
24
24
 
25
25
 
26
26
 
27
- var _chunkACDXGOXEjs = require('./chunk-ACDXGOXE.js');
27
+ var _chunk33O2JGHEjs = require('./chunk-33O2JGHE.js');
28
28
 
29
29
  // src/cli/commands/skills.ts
30
30
  var _child_process = require('child_process');
@@ -132,7 +132,7 @@ function inferActiveSkillsScope(entrypoint = _nullishCoalesce(process.argv[1], (
132
132
  return /[\\/]\.deepline[\\/]runtime[\\/]/.test(entrypoint) ? "local" : "global";
133
133
  }
134
134
  function resolveLocalRoot() {
135
- const target = _chunkNC52JG66js.resolveProjectPinTarget.call(void 0, );
135
+ const target = _chunk3SGA53DXjs.resolveProjectPinTarget.call(void 0, );
136
136
  if (!target.ok) {
137
137
  throw new Error(
138
138
  `Cowork project folder is ambiguous. Candidate folders: ${target.candidates.join(
@@ -143,7 +143,7 @@ function resolveLocalRoot() {
143
143
  return target.dir;
144
144
  }
145
145
  function detectSkillsAgents(input) {
146
- const runtime = _nullishCoalesce(input.runtime, () => ( _chunkACDXGOXEjs.detectAgentRuntime.call(void 0, )));
146
+ const runtime = _nullishCoalesce(input.runtime, () => ( _chunk33O2JGHEjs.detectAgentRuntime.call(void 0, )));
147
147
  const knownAgent = RUNTIME_TO_SKILLS_AGENT[runtime];
148
148
  if (knownAgent) return [knownAgent];
149
149
  const roots = [
@@ -158,11 +158,11 @@ function detectSkillsAgents(input) {
158
158
  return detected.length > 0 ? detected : ["*"];
159
159
  }
160
160
  function skillsStatePathForScope(baseUrl, scope, root) {
161
- return scope === "local" && root ? _path.join.call(void 0, root, ".deepline", "setup", "skills.json") : _path.join.call(void 0, _chunkNC52JG66js.sdkCliStateDirPath.call(void 0, baseUrl), "skills-install.json");
161
+ return scope === "local" && root ? _path.join.call(void 0, root, ".deepline", "setup", "skills.json") : _path.join.call(void 0, _chunk3SGA53DXjs.sdkCliStateDirPath.call(void 0, baseUrl), "skills-install.json");
162
162
  }
163
163
  function buildSkillsPlan(input) {
164
164
  const scopeArgs = input.scope === "global" ? ["--global"] : [];
165
- const legacyNames = [..._chunk4RAENEAXjs.LEGACY_SKILL_NAMES_TO_REMOVE].sort(
165
+ const legacyNames = [..._chunkOVFCPV24js.LEGACY_SKILL_NAMES_TO_REMOVE].sort(
166
166
  (a, b) => a.localeCompare(b)
167
167
  );
168
168
  return {
@@ -176,7 +176,7 @@ function buildSkillsPlan(input) {
176
176
  args: [
177
177
  "exec",
178
178
  "--yes",
179
- `--package=${_chunk4RAENEAXjs.SKILLS_NPX_PACKAGE}`,
179
+ `--package=${_chunkOVFCPV24js.SKILLS_NPX_PACKAGE}`,
180
180
  "--",
181
181
  "skills",
182
182
  "remove",
@@ -192,11 +192,11 @@ function buildSkillsPlan(input) {
192
192
  args: [
193
193
  "exec",
194
194
  "--yes",
195
- `--package=${_chunk4RAENEAXjs.SKILLS_NPX_PACKAGE}`,
195
+ `--package=${_chunkOVFCPV24js.SKILLS_NPX_PACKAGE}`,
196
196
  "--",
197
197
  "skills",
198
198
  "add",
199
- _chunk4RAENEAXjs.skillsSourceUrl.call(void 0, input.baseUrl),
199
+ _chunkOVFCPV24js.skillsSourceUrl.call(void 0, input.baseUrl),
200
200
  "--agent",
201
201
  ...input.agents,
202
202
  ...scopeArgs,
@@ -233,7 +233,7 @@ function readSkillsInstallState(path) {
233
233
  }
234
234
  function runProcess(command, args, cwd) {
235
235
  return new Promise((resolve, reject) => {
236
- const plan = _chunk4RAENEAXjs.resolveShellSpawn.call(void 0,
236
+ const plan = _chunkOVFCPV24js.resolveShellSpawn.call(void 0,
237
237
  command,
238
238
  args,
239
239
  process.platform,
@@ -255,7 +255,7 @@ function runProcess(command, args, cwd) {
255
255
  child.kill("SIGTERM");
256
256
  reject(
257
257
  new Error(
258
- `${_chunk4RAENEAXjs.SKILLS_NPX_PACKAGE} timed out after ${SKILLS_PROCESS_TIMEOUT_MS}ms.`
258
+ `${_chunkOVFCPV24js.SKILLS_NPX_PACKAGE} timed out after ${SKILLS_PROCESS_TIMEOUT_MS}ms.`
259
259
  )
260
260
  );
261
261
  }, SKILLS_PROCESS_TIMEOUT_MS);
@@ -266,7 +266,7 @@ function runProcess(command, args, cwd) {
266
266
  child.once("close", (code) => {
267
267
  clearTimeout(timeout);
268
268
  if (code && stderr.trim()) {
269
- process.stderr.write(`${_chunk4RAENEAXjs.SKILLS_NPX_PACKAGE} exited ${code}.
269
+ process.stderr.write(`${_chunkOVFCPV24js.SKILLS_NPX_PACKAGE} exited ${code}.
270
270
  `);
271
271
  }
272
272
  resolve(_nullishCoalesce(code, () => ( 1)));
@@ -280,7 +280,7 @@ async function runSkillsCommand(options, dependencies = {}) {
280
280
  scope = normalizeScope(options.scope);
281
281
  root = scope === "local" ? resolveLocalRoot() : null;
282
282
  } catch (error) {
283
- _chunkM2UL4ZS5js.printCommandEnvelope.call(void 0,
283
+ _chunkLXYDN5FEjs.printCommandEnvelope.call(void 0,
284
284
  {
285
285
  ok: false,
286
286
  status: "failed",
@@ -292,22 +292,22 @@ async function runSkillsCommand(options, dependencies = {}) {
292
292
  );
293
293
  return 2;
294
294
  }
295
- const baseUrl = _chunkNC52JG66js.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
295
+ const baseUrl = _chunk3SGA53DXjs.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, "");
296
296
  const catalog = {
297
- skillNames: [..._chunk4RAENEAXjs.DEFAULT_SDK_SKILL_NAMES],
298
- version: _chunkACDXGOXEjs.SDK_VERSION
297
+ skillNames: [..._chunkOVFCPV24js.DEFAULT_SDK_SKILL_NAMES],
298
+ version: _chunk33O2JGHEjs.SDK_VERSION
299
299
  };
300
300
  const agents = options.agent ? [options.agent] : detectSkillsAgents({ scope, root });
301
301
  const plan = buildSkillsPlan({ baseUrl, scope, root, agents, ...catalog });
302
302
  if (options.dryRun) {
303
- _chunkM2UL4ZS5js.printCommandEnvelope.call(void 0,
303
+ _chunkLXYDN5FEjs.printCommandEnvelope.call(void 0,
304
304
  { ok: true, status: "planned", dryRun: true, ...plan },
305
305
  { json: options.json }
306
306
  );
307
307
  return 0;
308
308
  }
309
- if (isSkillsPlanCurrent(plan, readSkillsInstallState(plan.statePath)) && !_chunk4RAENEAXjs.hasFailedAutomaticSkillsSync.call(void 0, baseUrl, agents)) {
310
- _chunkM2UL4ZS5js.printCommandEnvelope.call(void 0,
309
+ if (isSkillsPlanCurrent(plan, readSkillsInstallState(plan.statePath)) && !_chunkOVFCPV24js.hasFailedAutomaticSkillsSync.call(void 0, baseUrl, agents)) {
310
+ _chunkLXYDN5FEjs.printCommandEnvelope.call(void 0,
311
311
  {
312
312
  ok: true,
313
313
  status: "current",
@@ -339,10 +339,10 @@ async function runSkillsCommand(options, dependencies = {}) {
339
339
  }
340
340
  if (scope === "local" && root) {
341
341
  const managedNames = [
342
- .../* @__PURE__ */ new Set([...plan.skillNames, ..._chunk4RAENEAXjs.LEGACY_SKILL_NAMES_TO_REMOVE])
342
+ .../* @__PURE__ */ new Set([...plan.skillNames, ..._chunkOVFCPV24js.LEGACY_SKILL_NAMES_TO_REMOVE])
343
343
  ];
344
344
  const agentRoots = workspaceSkillRootsForAgents(plan.agents);
345
- _chunkNC52JG66js.ensureProjectPrivatePathsIgnored.call(void 0, root, [
345
+ _chunk3SGA53DXjs.ensureProjectPrivatePathsIgnored.call(void 0, root, [
346
346
  ".deepline/",
347
347
  ...agentRoots.flatMap(
348
348
  (agentRoot) => managedNames.map((name) => `${agentRoot}/skills/${name}/`)
@@ -351,7 +351,7 @@ async function runSkillsCommand(options, dependencies = {}) {
351
351
  }
352
352
  let lease;
353
353
  try {
354
- lease = scope === "global" ? await _chunk4RAENEAXjs.acquireSkillsInstallLease.call(void 0, baseUrl, agents, plan.version, {
354
+ lease = scope === "global" ? await _chunkOVFCPV24js.acquireSkillsInstallLease.call(void 0, baseUrl, agents, plan.version, {
355
355
  waitMs: _nullishCoalesce(dependencies.installLeaseWaitMs, () => ( SKILLS_INSTALL_LEASE_WAIT_MS)),
356
356
  onWait: () => process.stderr.write(
357
357
  "Waiting for a background Deepline skills refresh to finish...\n"
@@ -359,8 +359,8 @@ async function runSkillsCommand(options, dependencies = {}) {
359
359
  }) : { release: () => {
360
360
  } };
361
361
  } catch (error) {
362
- if (!(error instanceof _chunk4RAENEAXjs.SkillsStateUnavailableError)) throw error;
363
- _chunkM2UL4ZS5js.printCommandEnvelope.call(void 0,
362
+ if (!(error instanceof _chunkOVFCPV24js.SkillsStateUnavailableError)) throw error;
363
+ _chunkLXYDN5FEjs.printCommandEnvelope.call(void 0,
364
364
  {
365
365
  ok: false,
366
366
  status: "failed",
@@ -376,7 +376,7 @@ async function runSkillsCommand(options, dependencies = {}) {
376
376
  return 5;
377
377
  }
378
378
  if (!lease) {
379
- _chunkM2UL4ZS5js.printCommandEnvelope.call(void 0,
379
+ _chunkLXYDN5FEjs.printCommandEnvelope.call(void 0,
380
380
  {
381
381
  ok: false,
382
382
  status: "failed",
@@ -385,7 +385,7 @@ async function runSkillsCommand(options, dependencies = {}) {
385
385
  scope,
386
386
  agents,
387
387
  message: "A background Deepline skills refresh is still running for these agents.",
388
- next: `Retry in a moment: deepline skills --scope ${scope}. If no refresh is running, remove ${_chunk4RAENEAXjs.skillsInstallLeasePath.call(void 0, baseUrl, agents)}`
388
+ next: `Retry in a moment: deepline skills --scope ${scope}. If no refresh is running, remove ${_chunkOVFCPV24js.skillsInstallLeasePath.call(void 0, baseUrl, agents)}`
389
389
  },
390
390
  { json: options.json }
391
391
  );
@@ -434,7 +434,7 @@ async function runSkillsInstallWithLease(input) {
434
434
  }
435
435
  }
436
436
  } catch (error) {
437
- _chunkM2UL4ZS5js.printCommandEnvelope.call(void 0,
437
+ _chunkLXYDN5FEjs.printCommandEnvelope.call(void 0,
438
438
  {
439
439
  ok: false,
440
440
  status: "failed",
@@ -450,7 +450,7 @@ async function runSkillsInstallWithLease(input) {
450
450
  return 5;
451
451
  }
452
452
  if (missing.length > 0) {
453
- _chunkM2UL4ZS5js.printCommandEnvelope.call(void 0,
453
+ _chunkLXYDN5FEjs.printCommandEnvelope.call(void 0,
454
454
  {
455
455
  ok: false,
456
456
  status: "failed",
@@ -490,7 +490,7 @@ async function runSkillsInstallWithLease(input) {
490
490
  {
491
491
  schemaVersion: 1,
492
492
  installedAt: (/* @__PURE__ */ new Date()).toISOString(),
493
- cliVersion: _chunkACDXGOXEjs.SDK_VERSION,
493
+ cliVersion: _chunk33O2JGHEjs.SDK_VERSION,
494
494
  scope,
495
495
  agents,
496
496
  skillsVersion: plan.version,
@@ -503,9 +503,9 @@ async function runSkillsInstallWithLease(input) {
503
503
  "utf8"
504
504
  );
505
505
  if (scope === "global") {
506
- _chunk4RAENEAXjs.clearFailedAutomaticSkillsSync.call(void 0, baseUrl, agents);
506
+ _chunkOVFCPV24js.clearFailedAutomaticSkillsSync.call(void 0, baseUrl, agents);
507
507
  }
508
- _chunkM2UL4ZS5js.printCommandEnvelope.call(void 0,
508
+ _chunkLXYDN5FEjs.printCommandEnvelope.call(void 0,
509
509
  {
510
510
  ok: true,
511
511
  status: "complete",
@@ -536,7 +536,7 @@ function registerSkillsCommand(program) {
536
536
  "after",
537
537
  `
538
538
  Notes:
539
- This command reinstalls current Deepline-managed skills using ${_chunk4RAENEAXjs.SKILLS_NPX_PACKAGE},
539
+ This command reinstalls current Deepline-managed skills using ${_chunkOVFCPV24js.SKILLS_NPX_PACKAGE},
540
540
  then removes legacy Deepline skill names. Local scope writes into the resolved
541
541
  persistent project.
542
542
 
@@ -548,13 +548,13 @@ Examples:
548
548
  ).action(async (options) => {
549
549
  process.exitCode = await runSkillsCommand(options);
550
550
  });
551
- program.command(_chunk4RAENEAXjs.SKILLS_AUTO_SYNC_COMMAND, { hidden: true }).description("Refresh Deepline agent skills in the background.").option(
551
+ program.command(_chunkOVFCPV24js.SKILLS_AUTO_SYNC_COMMAND, { hidden: true }).description("Refresh Deepline agent skills in the background.").option(
552
552
  "--claim <token>",
553
553
  "Owner token of the leases this child was started for."
554
554
  ).action(async (options) => {
555
555
  const claim = _optionalChain([options, 'access', _5 => _5.claim, 'optionalAccess', _6 => _6.trim, 'call', _7 => _7()]);
556
556
  if (!claim) {
557
- _chunkM2UL4ZS5js.printCommandEnvelope.call(void 0,
557
+ _chunkLXYDN5FEjs.printCommandEnvelope.call(void 0,
558
558
  {
559
559
  ok: false,
560
560
  status: "failed",
@@ -567,7 +567,7 @@ Examples:
567
567
  process.exitCode = 2;
568
568
  return;
569
569
  }
570
- await _chunk4RAENEAXjs.syncSdkSkillsIfNeeded.call(void 0, _chunkNC52JG66js.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, ""), {
570
+ await _chunkOVFCPV24js.syncSdkSkillsIfNeeded.call(void 0, _chunk3SGA53DXjs.autoDetectBaseUrl.call(void 0, ).replace(/\/$/, ""), {
571
571
  mode: "inline",
572
572
  notices: "defer",
573
573
  claim
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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; } var _class;
2
2
 
3
- var _chunkM2UL4ZS5js = require('./chunk-M2UL4ZS5.js');
3
+ var _chunkLXYDN5FEjs = require('./chunk-LXYDN5FE.js');
4
4
 
5
5
  // src/cli/progress.ts
6
6
  var _worker_threads = require('worker_threads');
@@ -17,7 +17,7 @@ var CliProgress = (_class = class {
17
17
 
18
18
  // --json output is one JSON document: progress never renders under it.
19
19
  constructor(enabled) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);
20
- this.enabled = enabled && !_chunkM2UL4ZS5js.isJsonOutputMode.call(void 0, );
20
+ this.enabled = enabled && !_chunkLXYDN5FEjs.isJsonOutputMode.call(void 0, );
21
21
  }
22
22
  setLogWriter(writer) {
23
23
  this.logWriter = writer;
@@ -49,7 +49,7 @@ var CliProgress = (_class = class {
49
49
  this.logWriter(line);
50
50
  return;
51
51
  }
52
- if (_chunkM2UL4ZS5js.isJsonOutputMode.call(void 0, )) return;
52
+ if (_chunkLXYDN5FEjs.isJsonOutputMode.call(void 0, )) return;
53
53
  if (!this.enabled) {
54
54
  process.stderr.write(`${line}
55
55
  `);