deepline 0.3.474 → 0.3.476

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 (155) hide show
  1. package/dist/bundling-sources/sdk/src/play.ts +2 -2
  2. package/dist/bundling-sources/sdk/src/release.ts +3 -3
  3. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-upstream-identity.ts +19 -6
  4. package/dist/bundling-sources/shared_libs/observability/scheduled-jobs.json +4 -4
  5. package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-rate-state-backend.ts +24 -1
  6. package/dist/bundling-sources/shared_libs/play-runtime/play-run-recovery-policy.ts +21 -4
  7. package/dist/bundling-sources/shared_libs/play-runtime/runtime-capacity-policy.ts +12 -0
  8. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-scope.ts +47 -21
  9. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +18 -8
  10. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +163 -40
  11. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +1 -1
  12. package/dist/cli/auth-2ZY57Q7W.js +41 -0
  13. package/dist/cli/{auth-QMANU5PV.mjs → auth-A22724UX.mjs} +5 -5
  14. package/dist/cli/{billing-YJAP4VZN.mjs → billing-IIBEZ6J7.mjs} +6 -6
  15. package/dist/cli/{billing-WZ5POBZX.js → billing-T5Q6OO6M.js} +79 -79
  16. package/dist/cli/{chunk-35SZHTRW.mjs → chunk-2WEPQSA2.mjs} +5 -5
  17. package/dist/cli/{chunk-MXUJVCKV.mjs → chunk-2YHDNHRR.mjs} +4 -4
  18. package/dist/cli/{chunk-V4ILQ2DS.mjs → chunk-3A7TDUZV.mjs} +1 -1
  19. package/dist/cli/{chunk-BB4RZMWA.mjs → chunk-4WMIMSSI.mjs} +5 -5
  20. package/dist/cli/{chunk-ZRWQKTSX.mjs → chunk-4YWYLHED.mjs} +3 -3
  21. package/dist/cli/{chunk-ORQYKA4I.js → chunk-5AEEINTU.js} +4 -4
  22. package/dist/cli/{chunk-3NRZFMX4.js → chunk-5FBCMLJW.js} +6 -6
  23. package/dist/cli/{chunk-XNP7XTBN.js → chunk-5PYSYW63.js} +26 -26
  24. package/dist/cli/{chunk-PGKELBIY.js → chunk-6YZYCKWD.js} +51 -51
  25. package/dist/cli/{chunk-RXITRC37.js → chunk-7HAUVMRF.js} +3 -3
  26. package/dist/cli/{chunk-JCNJQH6X.js → chunk-A6BETJ2A.js} +3 -3
  27. package/dist/cli/{chunk-STLJYWUC.js → chunk-AS3VECCY.js} +7 -7
  28. package/dist/cli/{chunk-LHOEWAVD.js → chunk-B7PEXXRW.js} +53 -53
  29. package/dist/cli/{chunk-IK3VOGDR.js → chunk-CBVCCXIY.js} +21 -21
  30. package/dist/cli/{chunk-JEYX3345.mjs → chunk-CFSCHLNQ.mjs} +3 -3
  31. package/dist/cli/{chunk-3MZPWIOE.mjs → chunk-D7EQ4PI5.mjs} +1 -1
  32. package/dist/cli/{chunk-XP7FAYLN.js → chunk-EBWYNNTJ.js} +5 -5
  33. package/dist/cli/{chunk-DQZBERDL.mjs → chunk-F5PYBZ2H.mjs} +1 -1
  34. package/dist/cli/{chunk-AIPTW3EK.js → chunk-FK7SBMSZ.js} +3 -3
  35. package/dist/cli/{chunk-Z27NSLPC.mjs → chunk-FVPT44IJ.mjs} +1 -1
  36. package/dist/cli/{chunk-RGIQ5ZJX.mjs → chunk-H3GOAZHV.mjs} +2 -2
  37. package/dist/cli/{chunk-AWJKYS25.js → chunk-HSANVBVL.js} +2 -2
  38. package/dist/cli/{chunk-JSXMJSBE.js → chunk-IC3BZJR7.js} +8 -8
  39. package/dist/cli/{chunk-MNK4ZK2C.mjs → chunk-J4FCTFQS.mjs} +10 -10
  40. package/dist/cli/{chunk-MKSB2FTU.mjs → chunk-JU2KBLOR.mjs} +97 -12
  41. package/dist/cli/{chunk-EIKONWW7.mjs → chunk-KCP6XNRR.mjs} +1 -1
  42. package/dist/cli/{chunk-YKNULB7V.js → chunk-KGLIDLJ2.js} +5 -5
  43. package/dist/cli/{chunk-N62MS3XJ.js → chunk-L45IECBZ.js} +6 -6
  44. package/dist/cli/{chunk-7IYOWIEJ.mjs → chunk-LJFIUT5R.mjs} +2 -2
  45. package/dist/cli/{chunk-ZGC2SUAA.mjs → chunk-LZCYDU6Q.mjs} +2 -2
  46. package/dist/cli/{chunk-3ODBCZLL.js → chunk-MYYOCJZ2.js} +93 -93
  47. package/dist/cli/{chunk-DKR7QPEO.js → chunk-MZSLFWOT.js} +1 -1
  48. package/dist/cli/{chunk-26CZVDQN.mjs → chunk-NPNQCPFP.mjs} +2 -2
  49. package/dist/cli/{chunk-UKX4FESF.mjs → chunk-NREO7TT4.mjs} +2 -2
  50. package/dist/cli/{chunk-KKWQ24VM.mjs → chunk-NTJDZURV.mjs} +2 -2
  51. package/dist/cli/{chunk-4C34LGI4.js → chunk-PGNLD6L6.js} +10 -10
  52. package/dist/cli/{chunk-G3UHAYRX.js → chunk-TEJSRJNH.js} +8 -8
  53. package/dist/cli/{chunk-UGYLGT7B.mjs → chunk-UHTJWDYB.mjs} +3 -3
  54. package/dist/cli/{chunk-EK2TAZJZ.js → chunk-ULKGYVYP.js} +2 -2
  55. package/dist/cli/{chunk-DUGZKPRK.mjs → chunk-UYA7LJGC.mjs} +2 -2
  56. package/dist/cli/{chunk-YVJ6IWVD.mjs → chunk-VKBZLV2K.mjs} +1 -1
  57. package/dist/cli/{chunk-YFDTF2XC.js → chunk-VLYUFZUT.js} +9 -9
  58. package/dist/cli/{chunk-THDXVSNL.mjs → chunk-VPAVNEDQ.mjs} +4 -4
  59. package/dist/cli/{chunk-RLQIGBFK.js → chunk-W3BHZUPL.js} +3 -3
  60. package/dist/cli/{chunk-5QS4T4KR.js → chunk-WFVEMDQL.js} +2 -2
  61. package/dist/cli/{chunk-475V572K.js → chunk-WTPRRKZA.js} +131 -46
  62. package/dist/cli/{chunk-CXBEZAPU.js → chunk-YEJDFZJP.js} +16 -16
  63. package/dist/cli/{chunk-JJVYUKLY.mjs → chunk-YQOWMQEW.mjs} +1 -1
  64. package/dist/cli/{chunk-YK64UZXN.mjs → chunk-ZOXV6WFI.mjs} +1 -1
  65. package/dist/cli/{chunk-YX762HFK.mjs → chunk-ZV4OWYLZ.mjs} +2 -2
  66. package/dist/cli/command-docs.js +2 -2
  67. package/dist/cli/command-docs.mjs +1 -1
  68. package/dist/cli/{csv-ENKCFCSM.js → csv-FXOQ2PBE.js} +13 -13
  69. package/dist/cli/{csv-QCLQOIEA.mjs → csv-GPVCETS2.mjs} +4 -4
  70. package/dist/cli/{db-P25LGP33.mjs → db-F5UJTBGP.mjs} +6 -6
  71. package/dist/cli/{db-5TLBZDT3.js → db-LXYV4GPZ.js} +27 -27
  72. package/dist/cli/{describe-W2H5DHR6.mjs → describe-GYWCI7I6.mjs} +17 -17
  73. package/dist/cli/describe-IB7SUIUT.js +48 -0
  74. package/dist/cli/describe-core.d.mts +3 -3
  75. package/dist/cli/describe-core.d.ts +3 -3
  76. package/dist/cli/{executions-VYZCYUBR.mjs → executions-6NL2YW76.mjs} +6 -6
  77. package/dist/cli/{executions-YHFAWJOJ.js → executions-6SJKTY2L.js} +8 -8
  78. package/dist/cli/{feedback-K2FWYYLZ.mjs → feedback-7AMQCNTB.mjs} +4 -4
  79. package/dist/cli/{feedback-RJF3QSBB.js → feedback-E3HULSQD.js} +8 -8
  80. package/dist/cli/{git-S3APUPLL.mjs → git-74IS2EFH.mjs} +5 -5
  81. package/dist/cli/git-A2QIIMW5.js +25 -0
  82. package/dist/cli/index.js +139 -139
  83. package/dist/cli/index.mjs +41 -41
  84. package/dist/cli/{legacy-noops-ICYZACTW.mjs → legacy-noops-52FFRTRZ.mjs} +5 -5
  85. package/dist/cli/{legacy-noops-3SWNRE7Z.js → legacy-noops-ALWUQPKS.js} +8 -8
  86. package/dist/cli/{monitors-DEZCEQLB.mjs → monitors-VTJIWWW2.mjs} +7 -7
  87. package/dist/cli/{monitors-VRIWTRPG.js → monitors-Z4ADOGTY.js} +91 -91
  88. package/dist/cli/{org-NX752DTE.js → org-2BTEKDF5.js} +72 -72
  89. package/dist/cli/{org-IQW5ZIAO.mjs → org-7GU6H7JL.mjs} +6 -6
  90. package/dist/cli/{pages-5WQRVVKX.mjs → pages-I6PFQGEU.mjs} +6 -6
  91. package/dist/cli/{pages-YIBWYGVS.js → pages-MG36E7RY.js} +17 -17
  92. package/dist/cli/{play-WOMJXS4O.mjs → play-7KFSLJX2.mjs} +18 -18
  93. package/dist/cli/{play-3EXNH3HD.js → play-VN52S3RV.js} +321 -321
  94. package/dist/cli/{providers-XDVPYRTS.mjs → providers-D46JDEL2.mjs} +6 -6
  95. package/dist/cli/{providers-C2WYSR2Y.js → providers-W5XLII66.js} +9 -9
  96. package/dist/cli/{quickstart-YMSIL2TK.mjs → quickstart-4GTXBZHY.mjs} +4 -4
  97. package/dist/cli/{quickstart-7RABZF66.js → quickstart-TIZAC63S.js} +6 -6
  98. package/dist/cli/{run-5QVVWFGL.js → run-FOVEMYYX.js} +36 -36
  99. package/dist/cli/{run-A4JD6TAR.mjs → run-LE3D4LVU.mjs} +22 -22
  100. package/dist/cli/{search-2TOSF2G3.mjs → search-6YL6WJMQ.mjs} +7 -7
  101. package/dist/cli/search-HN6SVDQU.js +32 -0
  102. package/dist/cli/{secrets-Q7UVOSNM.js → secrets-CSTTTMZH.js} +15 -15
  103. package/dist/cli/{secrets-BUN4ORE7.mjs → secrets-D66U6RTT.mjs} +6 -6
  104. package/dist/cli/{sessions-NXQOQ4HX.js → sessions-45M2NRAA.js} +6 -6
  105. package/dist/cli/{sessions-IAOORI6X.mjs → sessions-XIO3OUER.mjs} +5 -5
  106. package/dist/cli/{settings-WD4KSY5S.js → settings-N42CVKSK.js} +78 -78
  107. package/dist/cli/{settings-BMI373AI.mjs → settings-R33X2D5T.mjs} +11 -11
  108. package/dist/cli/{setup-55VIWAWR.mjs → setup-CBBC4FQP.mjs} +9 -9
  109. package/dist/cli/{setup-3IA7BVPE.js → setup-HREDVNF2.js} +44 -44
  110. package/dist/cli/{skills-GKITMBTM.mjs → skills-4X6WS2PT.mjs} +9 -7
  111. package/dist/cli/skills-QZ6HZX2T.js +33 -0
  112. package/dist/cli/tools-KFIH7UWB.js +55 -0
  113. package/dist/cli/{tools-XHCFC7GP.mjs → tools-YR46YFR2.mjs} +16 -16
  114. package/dist/cli/{update-SWB24YKE.mjs → update-5CYAZX5X.mjs} +9 -9
  115. package/dist/cli/update-VZLEJLWJ.js +33 -0
  116. package/dist/cli/{workflow-5QPMFI3Z.js → workflow-M7AA722W.js} +17 -17
  117. package/dist/cli/{workflow-XO4CKUA7.mjs → workflow-NKQ3CWPK.mjs} +7 -7
  118. package/dist/{client-Bgl0_zXi.d.mts → client-AjmfA5nR.d.mts} +1 -1
  119. package/dist/{client-_ah6IuhK.d.ts → client-DMyY-QL8.d.ts} +1 -1
  120. package/dist/{client-core-C-ZF5vh9.d.ts → client-core-C705vFyV.d.ts} +1 -1
  121. package/dist/{client-core-Bfsedm0_.d.mts → client-core-CpBbvLEX.d.mts} +1 -1
  122. package/dist/{compiler-manifest-CCOqDGjU.d.mts → compiler-manifest-hqIAukR0.d.mts} +1 -1
  123. package/dist/{compiler-manifest-CCOqDGjU.d.ts → compiler-manifest-hqIAukR0.d.ts} +1 -1
  124. package/dist/{errors-Cy3kPnsi.d.ts → errors-CRO2qQ6k.d.ts} +1 -1
  125. package/dist/{errors-BLccD7tG.d.mts → errors-DIHVetNY.d.mts} +1 -1
  126. package/dist/{index-D5e4h1-H.d.ts → index-B8DVoeYt.d.ts} +1 -1
  127. package/dist/{index-4-j44HuT.d.mts → index-DVZ_X4Gb.d.mts} +1 -1
  128. package/dist/index.d.mts +9 -9
  129. package/dist/index.d.ts +9 -9
  130. package/dist/index.js +9 -9
  131. package/dist/index.mjs +6 -6
  132. package/dist/install-integrity.json +110 -110
  133. package/dist/plays/bundle-play-file.d.mts +3 -3
  134. package/dist/plays/bundle-play-file.d.ts +3 -3
  135. package/dist/plays/bundle-play-file.mjs +1 -1
  136. package/dist/plays/play-description.d.mts +2 -2
  137. package/dist/plays/play-description.d.ts +2 -2
  138. package/dist/plays/run-request.d.mts +2 -2
  139. package/dist/plays/run-request.d.ts +2 -2
  140. package/dist/release.d.mts +3 -3
  141. package/dist/release.d.ts +3 -3
  142. package/dist/release.js +2 -2
  143. package/dist/release.mjs +1 -1
  144. package/dist/server.d.mts +4 -4
  145. package/dist/server.d.ts +4 -4
  146. package/dist/server.js +5 -5
  147. package/dist/server.mjs +3 -3
  148. package/package.json +1 -1
  149. package/dist/cli/auth-O6KAH543.js +0 -41
  150. package/dist/cli/describe-44L7OBGM.js +0 -48
  151. package/dist/cli/git-F3EI5DY5.js +0 -25
  152. package/dist/cli/search-772R7YHI.js +0 -32
  153. package/dist/cli/skills-PUUTFMP3.js +0 -31
  154. package/dist/cli/tools-3WX7TUUG.js +0 -55
  155. package/dist/cli/update-PC3CLODV.js +0 -33
@@ -1,10 +1,10 @@
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 _chunkSTLJYWUCjs = require('./chunk-STLJYWUC.js');
4
+ var _chunkAS3VECCYjs = require('./chunk-AS3VECCY.js');
5
5
 
6
6
 
7
- var _chunkORQYKA4Ijs = require('./chunk-ORQYKA4I.js');
7
+ var _chunk5AEEINTUjs = require('./chunk-5AEEINTU.js');
8
8
 
9
9
  // src/cli/commands/sessions.ts
10
10
 
@@ -139,7 +139,7 @@ function currentSessionFile(agent) {
139
139
  const newestFirst = listSessionFiles(agent).sort(
140
140
  (a, b) => b.mtimeMs - a.mtimeMs
141
141
  );
142
- const sessionId = _chunkORQYKA4Ijs.agentSessionIdFromEnvironment.call(void 0,
142
+ const sessionId = _chunk5AEEINTUjs.agentSessionIdFromEnvironment.call(void 0,
143
143
  process.env,
144
144
  agent === "auto" ? void 0 : agent === "claude" ? "claude_code" : "codex"
145
145
  );
@@ -451,7 +451,7 @@ function buildSessionUploadContent(raw) {
451
451
  return { encodedContent: encoded, needsChunking: true };
452
452
  }
453
453
  async function uploadPayload(path, payload) {
454
- const { http } = _chunkSTLJYWUCjs.getAuthedHttpClient.call(void 0, );
454
+ const { http } = _chunkAS3VECCYjs.getAuthedHttpClient.call(void 0, );
455
455
  return await http.post(path, payload);
456
456
  }
457
457
  async function uploadChunkedSessions(sessions, options) {
@@ -484,7 +484,7 @@ async function uploadChunkedSessions(sessions, options) {
484
484
  ...options.rating ? { rating: options.rating } : {}
485
485
  });
486
486
  const sessionIds = sessions.map((session) => session.sessionId);
487
- _chunkSTLJYWUCjs.printCommandEnvelope.call(void 0,
487
+ _chunkAS3VECCYjs.printCommandEnvelope.call(void 0,
488
488
  {
489
489
  ...response,
490
490
  ok: true,
@@ -516,7 +516,7 @@ async function handleSessionsSend(options) {
516
516
  filename: _path.basename.call(void 0, filePath),
517
517
  ...rating ? { rating } : {}
518
518
  });
519
- _chunkSTLJYWUCjs.printCommandEnvelope.call(void 0,
519
+ _chunkAS3VECCYjs.printCommandEnvelope.call(void 0,
520
520
  {
521
521
  ...response2,
522
522
  ok: true,
@@ -566,7 +566,7 @@ async function handleSessionsSend(options) {
566
566
  ...rating ? { rating } : {}
567
567
  });
568
568
  const sessionIds = built.map((session) => session.sessionId);
569
- _chunkSTLJYWUCjs.printCommandEnvelope.call(void 0,
569
+ _chunkAS3VECCYjs.printCommandEnvelope.call(void 0,
570
570
  {
571
571
  ...response,
572
572
  ok: true,
@@ -674,7 +674,7 @@ ${refreshMeta}
674
674
  </body>
675
675
  </html>`;
676
676
  _fs.writeFileSync.call(void 0, outputPath, html, "utf8");
677
- _chunkSTLJYWUCjs.printCommandEnvelope.call(void 0,
677
+ _chunkAS3VECCYjs.printCommandEnvelope.call(void 0,
678
678
  {
679
679
  ok: true,
680
680
  file: outputPath,
@@ -2,11 +2,11 @@ import {
2
2
  addDescribeOptions,
3
3
  recordApiResponse,
4
4
  writeExecutionOutput
5
- } from "./chunk-JJVYUKLY.mjs";
5
+ } from "./chunk-YQOWMQEW.mjs";
6
6
  import {
7
7
  recentSearchRef,
8
8
  registerDeprecatedSearchCommand
9
- } from "./chunk-ZRWQKTSX.mjs";
9
+ } from "./chunk-4YWYLHED.mjs";
10
10
  import {
11
11
  arrayField,
12
12
  formatModelDescription,
@@ -48,10 +48,10 @@ import {
48
48
  } from "./chunk-FIVKWNMT.mjs";
49
49
  import {
50
50
  DeeplineClient
51
- } from "./chunk-26CZVDQN.mjs";
51
+ } from "./chunk-NPNQCPFP.mjs";
52
52
  import {
53
53
  validateExecutionIdempotencyKey
54
- } from "./chunk-DQZBERDL.mjs";
54
+ } from "./chunk-F5PYBZ2H.mjs";
55
55
  import {
56
56
  stableStringify
57
57
  } from "./chunk-UBKA33KY.mjs";
@@ -61,18 +61,18 @@ import {
61
61
  maybeAutoUpdateAndRelaunch,
62
62
  registerCompatibilityCatalog,
63
63
  runToolExecuteStage
64
- } from "./chunk-BB4RZMWA.mjs";
64
+ } from "./chunk-4WMIMSSI.mjs";
65
65
  import {
66
66
  isCliTraceEnabled,
67
67
  recordCliTrace,
68
68
  resolveCliMaintenancePolicy
69
- } from "./chunk-EIKONWW7.mjs";
69
+ } from "./chunk-KCP6XNRR.mjs";
70
70
  import {
71
71
  checkSdkCompatibility,
72
72
  enforceSdkCompatibilityResponse,
73
73
  flushDeferredSkillsSyncNotices,
74
74
  syncSdkSkillsIfNeeded
75
- } from "./chunk-THDXVSNL.mjs";
75
+ } from "./chunk-VPAVNEDQ.mjs";
76
76
  import {
77
77
  printCommandEnvelope,
78
78
  printCompactJson,
@@ -80,12 +80,12 @@ import {
80
80
  printJsonError,
81
81
  renderCommandEnvelopeText,
82
82
  shouldEmitJson
83
- } from "./chunk-KKWQ24VM.mjs";
83
+ } from "./chunk-NTJDZURV.mjs";
84
84
  import {
85
85
  readSdkSkillsLocalVersion,
86
86
  resolveConfig,
87
87
  sdkCliStateDirPath
88
- } from "./chunk-YK64UZXN.mjs";
88
+ } from "./chunk-ZOXV6WFI.mjs";
89
89
  import {
90
90
  DeeplineError
91
91
  } from "./chunk-HBL4PM5Q.mjs";
@@ -1038,7 +1038,7 @@ Examples:
1038
1038
  process.exitCode = await narrowView();
1039
1039
  return;
1040
1040
  }
1041
- const { describeAnything } = await import("./describe-W2H5DHR6.mjs");
1041
+ const { describeAnything } = await import("./describe-GYWCI7I6.mjs");
1042
1042
  process.exitCode = await describeAnything(
1043
1043
  toolId,
1044
1044
  {
@@ -11,24 +11,30 @@ import {
11
11
  skillsInstallLeasePath,
12
12
  skillsSourceUrl,
13
13
  syncSdkSkillsIfNeeded
14
- } from "./chunk-THDXVSNL.mjs";
14
+ } from "./chunk-VPAVNEDQ.mjs";
15
15
  import {
16
16
  printCommandEnvelope
17
- } from "./chunk-KKWQ24VM.mjs";
17
+ } from "./chunk-NTJDZURV.mjs";
18
18
  import {
19
19
  autoDetectBaseUrl,
20
20
  ensureProjectPrivatePathsIgnored,
21
21
  resolveProjectPinTarget,
22
22
  sdkCliStateDirPath
23
- } from "./chunk-YK64UZXN.mjs";
23
+ } from "./chunk-ZOXV6WFI.mjs";
24
24
  import {
25
25
  SDK_VERSION,
26
26
  detectAgentRuntime
27
- } from "./chunk-Z27NSLPC.mjs";
27
+ } from "./chunk-FVPT44IJ.mjs";
28
28
 
29
29
  // src/cli/commands/skills.ts
30
30
  import { spawn } from "child_process";
31
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
31
+ import {
32
+ existsSync,
33
+ mkdirSync,
34
+ readFileSync,
35
+ statSync,
36
+ writeFileSync
37
+ } from "fs";
32
38
  import { homedir } from "os";
33
39
  import { dirname, join } from "path";
34
40
  var SKILLS_INSTALL_LEASE_WAIT_MS = 9e4;
@@ -67,6 +73,55 @@ function workspaceSkillRootsForAgents(agents) {
67
73
  )
68
74
  ].sort((a, b) => a.localeCompare(b));
69
75
  }
76
+ function installedSkillRoots(agent, scope, root) {
77
+ if (scope === "local") {
78
+ const dirs = root ? WORKSPACE_SKILL_ROOTS_BY_AGENT[agent] : void 0;
79
+ return dirs ? dirs.map((dir) => join(root, dir, "skills")) : null;
80
+ }
81
+ const home = homedir();
82
+ const shared = join(home, ".agents", "skills");
83
+ const claude = join(
84
+ process.env.CLAUDE_CONFIG_DIR?.trim() || join(home, ".claude"),
85
+ "skills"
86
+ );
87
+ switch (agent) {
88
+ case "claude-code":
89
+ return [claude];
90
+ case "codex":
91
+ case "cursor":
92
+ case "gemini-cli":
93
+ case "antigravity":
94
+ case "cline":
95
+ return [shared];
96
+ case "windsurf":
97
+ return [join(home, ".codeium", "windsurf", "skills")];
98
+ case "*":
99
+ return [shared, claude];
100
+ default:
101
+ return null;
102
+ }
103
+ }
104
+ var INSTALL_MTIME_SLACK_MS = 2e3;
105
+ function writtenSince(path, sinceMs) {
106
+ try {
107
+ return statSync(path).mtimeMs >= sinceMs - INSTALL_MTIME_SLACK_MS;
108
+ } catch {
109
+ return false;
110
+ }
111
+ }
112
+ function missingInstalledSkills(plan, sinceMs) {
113
+ const missing = /* @__PURE__ */ new Set();
114
+ for (const agent of plan.agents) {
115
+ const dirs = installedSkillRoots(agent, plan.scope, plan.root);
116
+ if (!dirs) continue;
117
+ for (const name of plan.skillNames) {
118
+ if (!dirs.some((dir) => writtenSince(join(dir, name, "SKILL.md"), sinceMs))) {
119
+ missing.add(name);
120
+ }
121
+ }
122
+ }
123
+ return [...missing].sort((a, b) => a.localeCompare(b));
124
+ }
70
125
  function normalizeScope(value) {
71
126
  if (value === "global") return "global";
72
127
  if (value === "local") return "local";
@@ -357,14 +412,26 @@ async function runSkillsInstallWithLease(input) {
357
412
  `
358
413
  );
359
414
  const execute = dependencies.runProcess ?? runProcess;
415
+ let missing = [];
416
+ const installStartedAt = Date.now();
360
417
  try {
361
- const installCode = await execute(
362
- plan.install.command,
363
- plan.install.args,
364
- root ?? void 0
365
- );
366
- if (installCode !== 0) {
367
- throw new Error("Could not install the current Deepline skills.");
418
+ for (let attempt = 1; attempt <= 2; attempt += 1) {
419
+ const installCode = await execute(
420
+ plan.install.command,
421
+ plan.install.args,
422
+ root ?? void 0
423
+ );
424
+ if (installCode !== 0) {
425
+ throw new Error("Could not install the current Deepline skills.");
426
+ }
427
+ missing = missingInstalledSkills(plan, installStartedAt);
428
+ if (missing.length === 0) break;
429
+ if (attempt === 1) {
430
+ process.stderr.write(
431
+ `The skills installer left out ${missing.join(", ")}; retrying once...
432
+ `
433
+ );
434
+ }
368
435
  }
369
436
  } catch (error) {
370
437
  printCommandEnvelope(
@@ -382,6 +449,23 @@ async function runSkillsInstallWithLease(input) {
382
449
  );
383
450
  return 5;
384
451
  }
452
+ if (missing.length > 0) {
453
+ printCommandEnvelope(
454
+ {
455
+ ok: false,
456
+ status: "failed",
457
+ code: "SKILLS_INSTALL_INCOMPLETE",
458
+ exitCode: 5,
459
+ scope,
460
+ agents,
461
+ missingSkills: missing,
462
+ message: `The skills installer exited successfully but did not install: ${missing.join(", ")}.`,
463
+ next: `deepline skills --scope ${scope}`
464
+ },
465
+ { json: options.json }
466
+ );
467
+ return 5;
468
+ }
385
469
  try {
386
470
  const removeCode = await execute(
387
471
  plan.remove.command,
@@ -493,6 +577,7 @@ Examples:
493
577
 
494
578
  export {
495
579
  workspaceSkillRootsForAgents,
580
+ missingInstalledSkills,
496
581
  inferActiveSkillsScope,
497
582
  detectSkillsAgents,
498
583
  skillsStatePathForScope,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writeRawStderr
3
- } from "./chunk-KKWQ24VM.mjs";
3
+ } from "./chunk-NTJDZURV.mjs";
4
4
 
5
5
  // src/cli/maintenance-policy.ts
6
6
  import { InvalidArgumentError } from "commander";
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
- var _chunkN62MS3XJjs = require('./chunk-N62MS3XJ.js');
3
+ var _chunkL45IECBZjs = require('./chunk-L45IECBZ.js');
4
4
 
5
5
 
6
6
 
7
- var _chunkRXITRC37js = require('./chunk-RXITRC37.js');
7
+ var _chunk7HAUVMRFjs = require('./chunk-7HAUVMRF.js');
8
8
 
9
9
  // src/plays/local-play-execution.ts
10
10
  function importedNodes(graph) {
@@ -137,9 +137,9 @@ async function pinLocalPlayImports(client, graph) {
137
137
 
138
138
  // src/plays/client.ts
139
139
  function createPlayClient(options) {
140
- const config = _chunkRXITRC37js.resolveConfig.call(void 0, options);
141
- return new (0, _chunkN62MS3XJjs.PlayClient)(
142
- new (0, _chunkRXITRC37js.HttpClient)(config),
140
+ const config = _chunk7HAUVMRFjs.resolveConfig.call(void 0, options);
141
+ return new (0, _chunkL45IECBZjs.PlayClient)(
142
+ new (0, _chunk7HAUVMRFjs.HttpClient)(config),
143
143
  _nullishCoalesce(config.environment, () => ( process.env))
144
144
  );
145
145
  }
@@ -26,7 +26,7 @@ var _chunkNMU3VR5Ujs = require('./chunk-NMU3VR5U.js');
26
26
 
27
27
 
28
28
 
29
- var _chunkORQYKA4Ijs = require('./chunk-ORQYKA4I.js');
29
+ var _chunk5AEEINTUjs = require('./chunk-5AEEINTU.js');
30
30
 
31
31
 
32
32
  var _chunkALJJRZNJjs = require('./chunk-ALJJRZNJ.js');
@@ -647,7 +647,7 @@ var ToolCalls = class {
647
647
  idempotencyKey,
648
648
  onResponse: (response2) => {
649
649
  lastResponse = null;
650
- atomicToolsSupported = response2.headers.get(_chunkORQYKA4Ijs.ATOMIC_TOOL_EXECUTE_SUPPORTED_HEADER) === "true";
650
+ atomicToolsSupported = response2.headers.get(_chunk5AEEINTUjs.ATOMIC_TOOL_EXECUTE_SUPPORTED_HEADER) === "true";
651
651
  recoverySupported = response2.headers.get("X-Deepline-Idempotency-Supported") === "true";
652
652
  if (_optionalChain([options, 'optionalAccess', _30 => _30.onServerTiming])) {
653
653
  try {
@@ -1026,8 +1026,8 @@ function runtimeSelectionHeaders(runtime, env) {
1026
1026
  }
1027
1027
  const receivers = _optionalChain([env, 'access', _52 => _52.DEEPLINE_RUNTIME_RETAINED_PIPELINE_RECEIVERS, 'optionalAccess', _53 => _53.trim, 'call', _54 => _54()]);
1028
1028
  return {
1029
- [_chunkORQYKA4Ijs.RUNTIME_ENVIRONMENT_TOKEN_HEADER]: token,
1030
- ...receivers ? { [_chunkORQYKA4Ijs.RETAINED_PIPELINE_RECEIVERS_HEADER]: receivers } : {}
1029
+ [_chunk5AEEINTUjs.RUNTIME_ENVIRONMENT_TOKEN_HEADER]: token,
1030
+ ...receivers ? { [_chunk5AEEINTUjs.RETAINED_PIPELINE_RECEIVERS_HEADER]: receivers } : {}
1031
1031
  };
1032
1032
  }
1033
1033
  function normalizeTestPolicyOverrides(value, source) {
@@ -1098,7 +1098,7 @@ var PlayClient = class {
1098
1098
  return _chunkJDMR33HSjs.startPlayRun.call(void 0,
1099
1099
  this.http,
1100
1100
  resolved.request,
1101
- _optionalChain([options, 'optionalAccess', _62 => _62.cliAdmission]) ? { ...headers, "X-Deepline-API-Major": String(_chunkORQYKA4Ijs.SDK_API_MAJOR) } : headers,
1101
+ _optionalChain([options, 'optionalAccess', _62 => _62.cliAdmission]) ? { ...headers, "X-Deepline-API-Major": String(_chunk5AEEINTUjs.SDK_API_MAJOR) } : headers,
1102
1102
  options
1103
1103
  );
1104
1104
  }
@@ -3175,7 +3175,7 @@ function isolatedCiRuntimeEventReadHeaders(env) {
3175
3175
  "RUNTIME_EVENT_INTERNAL_TOKEN_REQUIRED"
3176
3176
  );
3177
3177
  }
3178
- return { [_chunkORQYKA4Ijs.COORDINATOR_INTERNAL_TOKEN_HEADER]: token };
3178
+ return { [_chunk5AEEINTUjs.COORDINATOR_INTERNAL_TOKEN_HEADER]: token };
3179
3179
  }
3180
3180
  function sleep(ms) {
3181
3181
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -2,10 +2,10 @@ import {
2
2
  getAuthedHttpClient,
3
3
  openInBrowser,
4
4
  printCommandEnvelope
5
- } from "./chunk-KKWQ24VM.mjs";
5
+ } from "./chunk-NTJDZURV.mjs";
6
6
  import {
7
7
  resolveBaseUrlOnly
8
- } from "./chunk-YK64UZXN.mjs";
8
+ } from "./chunk-ZOXV6WFI.mjs";
9
9
 
10
10
  // src/cli/commands/git.ts
11
11
  function shellQuote(value) {
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-F6QV42MC.mjs";
4
4
  import {
5
5
  parseLogLevel
6
- } from "./chunk-DQZBERDL.mjs";
6
+ } from "./chunk-F5PYBZ2H.mjs";
7
7
  import {
8
8
  setDottedInputValue
9
9
  } from "./chunk-NELMCOWK.mjs";
@@ -11,7 +11,7 @@ import {
11
11
  argsWantJson,
12
12
  jsonFieldArgs,
13
13
  parseJsonFields
14
- } from "./chunk-KKWQ24VM.mjs";
14
+ } from "./chunk-NTJDZURV.mjs";
15
15
  import {
16
16
  DeeplineError
17
17
  } from "./chunk-HBL4PM5Q.mjs";