deepline 0.3.397 → 0.3.398

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 (87) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  2. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-deadline-reconciliation.ts +50 -26
  3. package/dist/cli/auth-3GA2ASQF.js +40 -0
  4. package/dist/cli/{auth-AZJFXGKP.mjs → auth-7ZBPAAZU.mjs} +4 -4
  5. package/dist/cli/{billing-MZAAUHGH.mjs → billing-QTWEEL27.mjs} +4 -4
  6. package/dist/cli/{billing-MQV5AGDJ.js → billing-WHP3YMNQ.js} +73 -73
  7. package/dist/cli/{chunk-YUDKBQUD.mjs → chunk-2QC2T7E3.mjs} +4 -4
  8. package/dist/cli/{chunk-F3BUFYKE.mjs → chunk-52HHMLRM.mjs} +5 -5
  9. package/dist/cli/{chunk-YLRME7MK.js → chunk-6CBU7W56.js} +15 -15
  10. package/dist/cli/{chunk-W3HMGKMI.mjs → chunk-6DVXLWPB.mjs} +2 -2
  11. package/dist/cli/{chunk-MYPH2LUU.mjs → chunk-6HXULNTW.mjs} +2 -2
  12. package/dist/cli/{chunk-MV7QRALK.mjs → chunk-ATDUVJCW.mjs} +3 -3
  13. package/dist/cli/{chunk-NOX2TCBP.mjs → chunk-AWQNG55D.mjs} +1 -1
  14. package/dist/cli/{chunk-RNSWDKBM.mjs → chunk-CH6EFAJ3.mjs} +1 -1
  15. package/dist/cli/{chunk-PSGEDGLT.js → chunk-CTZJLQ7A.js} +8 -8
  16. package/dist/cli/{chunk-VTF4RRWJ.js → chunk-FDAMQFQ7.js} +50 -50
  17. package/dist/cli/{chunk-SO7RUVTY.js → chunk-G6BP55EP.js} +26 -26
  18. package/dist/cli/{chunk-IZ74ABSX.js → chunk-HFDBZXMV.js} +1 -1
  19. package/dist/cli/{chunk-4D745XZO.mjs → chunk-IJU5YQSF.mjs} +3 -3
  20. package/dist/cli/{chunk-3VP34TAU.js → chunk-J4WYPANC.js} +8 -8
  21. package/dist/cli/{chunk-RYW4HPSM.js → chunk-JU3PF7WM.js} +4 -4
  22. package/dist/cli/{chunk-J7ABTQQ7.mjs → chunk-LCRQKI7D.mjs} +1 -1
  23. package/dist/cli/{chunk-UVXBVUZQ.js → chunk-NUBIAJI2.js} +6 -6
  24. package/dist/cli/{chunk-ZHUMDMOS.js → chunk-OU2RZYVS.js} +65 -65
  25. package/dist/cli/{chunk-WM2QEHZL.mjs → chunk-OVUFHUMG.mjs} +2 -2
  26. package/dist/cli/{chunk-K33MXVXQ.js → chunk-Q3FNSWJG.js} +44 -44
  27. package/dist/cli/{chunk-MRXMMERY.mjs → chunk-QP2TRM7M.mjs} +1 -1
  28. package/dist/cli/{chunk-DQ65ZVHN.js → chunk-S22ZQZMU.js} +6 -6
  29. package/dist/cli/{chunk-YSVORIEW.js → chunk-U46S43LV.js} +2 -2
  30. package/dist/cli/{chunk-2LDADJNO.mjs → chunk-ZJ7HLJRF.mjs} +1 -1
  31. package/dist/cli/{csv-AQBQ5O3I.js → csv-NM25BBX7.js} +12 -12
  32. package/dist/cli/{csv-MB7PJMYQ.mjs → csv-TSBHKVNU.mjs} +3 -3
  33. package/dist/cli/{db-JPUYC5RB.js → db-GBDNQJF3.js} +25 -25
  34. package/dist/cli/{db-L5IEI2AU.mjs → db-JQN6SYLK.mjs} +4 -4
  35. package/dist/cli/{describe-S6BFANVI.mjs → describe-ETTGW5LT.mjs} +6 -6
  36. package/dist/cli/{describe-6WT74AOR.js → describe-NVLINP5A.js} +10 -10
  37. package/dist/cli/{executions-L7I2ZW4Z.mjs → executions-6S4KIVEY.mjs} +4 -4
  38. package/dist/cli/{executions-6TMQTFP4.js → executions-IH5JUPIT.js} +6 -6
  39. package/dist/cli/{feedback-XF7CQGMD.js → feedback-ER375ZCB.js} +7 -7
  40. package/dist/cli/{feedback-DSJ63HK6.mjs → feedback-PGOZLNXU.mjs} +3 -3
  41. package/dist/cli/{git-C3ENM67D.mjs → git-7SBFCM52.mjs} +4 -4
  42. package/dist/cli/git-W6DBPLZO.js +24 -0
  43. package/dist/cli/index.js +89 -89
  44. package/dist/cli/index.mjs +32 -32
  45. package/dist/cli/{legacy-noops-B2NHWIVD.js → legacy-noops-IOEF2SB7.js} +7 -7
  46. package/dist/cli/{legacy-noops-VFG2K6HK.mjs → legacy-noops-Q4UQIOQN.mjs} +4 -4
  47. package/dist/cli/{monitors-ORFWOVZB.js → monitors-NZ2J4YGD.js} +84 -84
  48. package/dist/cli/{monitors-TCEDBDGY.mjs → monitors-RZYBFY3Z.mjs} +4 -4
  49. package/dist/cli/{org-T74CJESN.js → org-ERUOT4B2.js} +64 -64
  50. package/dist/cli/{org-45KREIKZ.mjs → org-JLSEM6GG.mjs} +4 -4
  51. package/dist/cli/{play-XHK2LPON.js → play-7TUO7YNG.js} +231 -231
  52. package/dist/cli/{play-MU7MYBIM.mjs → play-Z73VC7YR.mjs} +7 -7
  53. package/dist/cli/{providers-VYCXIJT5.mjs → providers-7HIII2PW.mjs} +4 -4
  54. package/dist/cli/{providers-4MGQKYFD.js → providers-ABKBK2C7.js} +7 -7
  55. package/dist/cli/{quickstart-47G3VEOT.js → quickstart-JBG5RTFZ.js} +5 -5
  56. package/dist/cli/{quickstart-H724EFM2.mjs → quickstart-QQAOCPCZ.mjs} +3 -3
  57. package/dist/cli/{search-VQHXEFQ4.mjs → search-MT2Q64WC.mjs} +5 -5
  58. package/dist/cli/search-QMQBC6SV.js +30 -0
  59. package/dist/cli/{secrets-ALLKCU35.js → secrets-MEW6LLU5.js} +13 -13
  60. package/dist/cli/{secrets-CPBNGA44.mjs → secrets-ZFJPIT6B.mjs} +4 -4
  61. package/dist/cli/{sessions-7RSQB7IX.mjs → sessions-F2KVVZ2Z.mjs} +4 -4
  62. package/dist/cli/{sessions-FKGAY7WQ.js → sessions-TBPU4S6M.js} +5 -5
  63. package/dist/cli/{settings-Y5BI42P7.js → settings-6VDZ6G5V.js} +74 -74
  64. package/dist/cli/{settings-UYSGV4IC.mjs → settings-LUDDM7HO.mjs} +7 -7
  65. package/dist/cli/{setup-VXQPEU3E.js → setup-IP2KTFYO.js} +41 -41
  66. package/dist/cli/{setup-L3ZBBTS4.mjs → setup-MCEY473G.mjs} +6 -6
  67. package/dist/cli/skills-EVIIEX6N.js +29 -0
  68. package/dist/cli/{skills-QHVDLSFE.mjs → skills-KMJ3CY4O.mjs} +4 -4
  69. package/dist/cli/{tools-YWU5QOQ5.js → tools-KNLHQ3L6.js} +7 -7
  70. package/dist/cli/{tools-LSCEK4K2.mjs → tools-WY3PLUA7.mjs} +6 -6
  71. package/dist/cli/update-LVADY5YE.js +29 -0
  72. package/dist/cli/{update-CU22OTBM.mjs → update-XBV52OFM.mjs} +6 -6
  73. package/dist/cli/{workflow-KQARK5BZ.mjs → workflow-5N5HMYDY.mjs} +5 -5
  74. package/dist/cli/{workflow-ERFLTRNX.js → workflow-CO7XWS4D.js} +15 -15
  75. package/dist/index.js +6 -6
  76. package/dist/index.mjs +3 -3
  77. package/dist/install-integrity.json +70 -70
  78. package/dist/release.d.mts +1 -1
  79. package/dist/release.d.ts +1 -1
  80. package/dist/release.js +2 -2
  81. package/dist/release.mjs +1 -1
  82. package/package.json +1 -1
  83. package/dist/cli/auth-CZJQU7B5.js +0 -40
  84. package/dist/cli/git-HYDZK2QR.js +0 -24
  85. package/dist/cli/search-3356ENLD.js +0 -30
  86. package/dist/cli/skills-DUZQTDTE.js +0 -29
  87. package/dist/cli/update-5LYQAI55.js +0 -29
@@ -202,7 +202,7 @@ export const SDK_RELEASE = {
202
202
  // getters keep their established compatibility behavior.
203
203
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
204
204
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
205
- version: '0.3.397',
205
+ version: '0.3.398',
206
206
  updateSummary:
207
207
  'Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.',
208
208
  packageCapabilities: {
@@ -105,32 +105,25 @@ async function finalizeCancelledRunAfterCleanup(input: {
105
105
  }
106
106
  }
107
107
 
108
- /** Put legacy manual and deadline cancellations into the same durable queue
109
- * as caller requests. A queued task is excluded from later scans, so one
110
- * pending sandbox cannot hide other cancelled tasks behind the batch limit. */
111
- export async function reconcileAbsurdRuntimeCancellations(input: {
112
- client: PostgresSchedulerQueryClient;
108
+ /** `runs.absurd_task_id` is text; the task table's key is a uuid. Joining on
109
+ * `task.task_id::text` hides that key from the planner, so a low active-run
110
+ * estimate turns every sweep into one full task-table scan per active run.
111
+ * Casting the run side keeps the join on the primary key; the CASE (whose
112
+ * branches Postgres evaluates in order) maps anything that is not a canonical
113
+ * lowercase uuid to NULL instead of failing the sweep. Only canonical text ever
114
+ * equalled `task_id::text`, so the matched rows are unchanged. */
115
+ const ABSURD_TASK_ID_UUID_PATTERN =
116
+ '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$';
117
+
118
+ /** The sweep statement, exported so tests can inspect its plan. Parameters:
119
+ * $1 task name, $2 batch limit. */
120
+ export function absurdRuntimeCancellationSweepSql(input: {
113
121
  queue: string;
114
- schedulerOptions?: Pick<PostgresSchedulerOptions, 'schema'>;
115
- limit?: number;
116
- }): Promise<{ queued: number }> {
117
- const requestedLimit = Math.floor(
118
- input.limit ?? ABSURD_CANCELLED_DEADLINE_RECONCILE_LIMIT,
119
- );
120
- const limit = Number.isFinite(requestedLimit)
121
- ? Math.max(
122
- 1,
123
- Math.min(ABSURD_CANCELLED_DEADLINE_RECONCILE_LIMIT, requestedLimit),
124
- )
125
- : ABSURD_CANCELLED_DEADLINE_RECONCILE_LIMIT;
122
+ schedulerSchema: string;
123
+ }): string {
126
124
  const taskTable = quoteAbsurdTable(`t_${input.queue}`);
127
- const schedulerSchema = quoteAbsurdTable(
128
- input.schedulerOptions?.schema?.trim() ||
129
- resolveRuntimeSchedulerSchemaEnv() ||
130
- 'runtime_scheduler',
131
- );
132
- const queued = await input.client.query<{ key: string }>(
133
- `
125
+ const schedulerSchema = quoteAbsurdTable(input.schedulerSchema);
126
+ return `
134
127
  INSERT INTO ${schedulerSchema}.control (key, value)
135
128
  SELECT 'runtime_cancel:' || run.run_id,
136
129
  jsonb_build_object(
@@ -146,7 +139,10 @@ export async function reconcileAbsurdRuntimeCancellations(input: {
146
139
  )
147
140
  FROM ${schedulerSchema}.runs AS run
148
141
  JOIN absurd.${taskTable} AS task
149
- ON task.task_id::text = run.absurd_task_id
142
+ ON task.task_id = CASE
143
+ WHEN run.absurd_task_id ~ '${ABSURD_TASK_ID_UUID_PATTERN}'
144
+ THEN run.absurd_task_id::uuid
145
+ END
150
146
  AND run.status IN ('queued', 'running', 'waiting')
151
147
  WHERE task.state = 'cancelled'
152
148
  AND task.task_name = $1
@@ -166,7 +162,35 @@ export async function reconcileAbsurdRuntimeCancellations(input: {
166
162
  LIMIT $2
167
163
  ON CONFLICT (key) DO NOTHING
168
164
  RETURNING key
169
- `,
165
+ `;
166
+ }
167
+
168
+ /** Put legacy manual and deadline cancellations into the same durable queue
169
+ * as caller requests. A queued task is excluded from later scans, so one
170
+ * pending sandbox cannot hide other cancelled tasks behind the batch limit. */
171
+ export async function reconcileAbsurdRuntimeCancellations(input: {
172
+ client: PostgresSchedulerQueryClient;
173
+ queue: string;
174
+ schedulerOptions?: Pick<PostgresSchedulerOptions, 'schema'>;
175
+ limit?: number;
176
+ }): Promise<{ queued: number }> {
177
+ const requestedLimit = Math.floor(
178
+ input.limit ?? ABSURD_CANCELLED_DEADLINE_RECONCILE_LIMIT,
179
+ );
180
+ const limit = Number.isFinite(requestedLimit)
181
+ ? Math.max(
182
+ 1,
183
+ Math.min(ABSURD_CANCELLED_DEADLINE_RECONCILE_LIMIT, requestedLimit),
184
+ )
185
+ : ABSURD_CANCELLED_DEADLINE_RECONCILE_LIMIT;
186
+ const queued = await input.client.query<{ key: string }>(
187
+ absurdRuntimeCancellationSweepSql({
188
+ queue: input.queue,
189
+ schedulerSchema:
190
+ input.schedulerOptions?.schema?.trim() ||
191
+ resolveRuntimeSchedulerSchemaEnv() ||
192
+ 'runtime_scheduler',
193
+ }),
170
194
  [ABSURD_PLAY_RUN_TASK, limit],
171
195
  );
172
196
  return { queued: queued.rows.length };
@@ -0,0 +1,40 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+ var _chunkFDAMQFQ7js = require('./chunk-FDAMQFQ7.js');
17
+ require('./chunk-S22ZQZMU.js');
18
+ require('./chunk-JU3PF7WM.js');
19
+ require('./chunk-Q2E4E4FJ.js');
20
+ require('./chunk-XNYIZMNQ.js');
21
+ require('./chunk-7P5AA3SN.js');
22
+ require('./chunk-HFDBZXMV.js');
23
+ require('./chunk-OG64RBAC.js');
24
+ require('./chunk-COGTRVWW.js');
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+ exports.EXIT_WORKSPACE_MISMATCH = _chunkFDAMQFQ7js.EXIT_WORKSPACE_MISMATCH; exports.authStatusLine = _chunkFDAMQFQ7js.authStatusLine; exports.clearPendingClaim = _chunkFDAMQFQ7js.clearPendingClaim; exports.clearSatisfiedPendingClaim = _chunkFDAMQFQ7js.clearSatisfiedPendingClaim; exports.handleRegister = _chunkFDAMQFQ7js.handleRegister; exports.handleStatus = _chunkFDAMQFQ7js.handleStatus; exports.handleWait = _chunkFDAMQFQ7js.handleWait; exports.httpJson = _chunkFDAMQFQ7js.httpJson; exports.readPendingAuthClaim = _chunkFDAMQFQ7js.readPendingAuthClaim; exports.readStatusBanner = _chunkFDAMQFQ7js.readStatusBanner; exports.registerAuthCommands = _chunkFDAMQFQ7js.registerAuthCommands; exports.reportSetupCompleted = _chunkFDAMQFQ7js.reportSetupCompleted; exports.resolvePendingAuthClaimForResume = _chunkFDAMQFQ7js.resolvePendingAuthClaimForResume; exports.statusBannerLine = _chunkFDAMQFQ7js.statusBannerLine;
@@ -13,13 +13,13 @@ import {
13
13
  reportSetupCompleted,
14
14
  resolvePendingAuthClaimForResume,
15
15
  statusBannerLine
16
- } from "./chunk-WM2QEHZL.mjs";
17
- import "./chunk-RNSWDKBM.mjs";
18
- import "./chunk-2LDADJNO.mjs";
16
+ } from "./chunk-OVUFHUMG.mjs";
17
+ import "./chunk-CH6EFAJ3.mjs";
18
+ import "./chunk-ZJ7HLJRF.mjs";
19
19
  import "./chunk-YHPYUZZX.mjs";
20
20
  import "./chunk-DLIRSHV6.mjs";
21
21
  import "./chunk-NXGCO4JB.mjs";
22
- import "./chunk-MRXMMERY.mjs";
22
+ import "./chunk-QP2TRM7M.mjs";
23
23
  import "./chunk-WZYKRD7T.mjs";
24
24
  import "./chunk-KRD6H754.mjs";
25
25
  export {
@@ -2,7 +2,7 @@ import {
2
2
  DeeplineClient,
3
3
  iterateCursorPages,
4
4
  requireBillingIdempotencyKey
5
- } from "./chunk-J7ABTQQ7.mjs";
5
+ } from "./chunk-LCRQKI7D.mjs";
6
6
  import "./chunk-6IKARAYD.mjs";
7
7
  import "./chunk-JI2B4RZP.mjs";
8
8
  import "./chunk-EIMG75BT.mjs";
@@ -13,8 +13,8 @@ import {
13
13
  openInBrowser,
14
14
  printCommandEnvelope,
15
15
  shouldEmitJson
16
- } from "./chunk-RNSWDKBM.mjs";
17
- import "./chunk-2LDADJNO.mjs";
16
+ } from "./chunk-CH6EFAJ3.mjs";
17
+ import "./chunk-ZJ7HLJRF.mjs";
18
18
  import {
19
19
  AuthError,
20
20
  ConfigError
@@ -23,7 +23,7 @@ import "./chunk-DLIRSHV6.mjs";
23
23
  import {
24
24
  DeeplineError
25
25
  } from "./chunk-NXGCO4JB.mjs";
26
- import "./chunk-MRXMMERY.mjs";
26
+ import "./chunk-QP2TRM7M.mjs";
27
27
  import "./chunk-WZYKRD7T.mjs";
28
28
  import "./chunk-KRD6H754.mjs";
29
29