deepline 0.3.360 → 0.3.362

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 (96) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  2. package/dist/bundling-sources/shared_libs/observability/scheduled-work-control.ts +38 -0
  3. package/dist/bundling-sources/shared_libs/product-notifications/catalog.ts +1 -1
  4. package/dist/bundling-sources/shared_libs/product-notifications/events.ts +12 -3
  5. package/dist/cli/auth-FIW2P4ZF.js +33 -0
  6. package/dist/cli/{auth-WIK56FTM.mjs → auth-IQ2FZP6X.mjs} +4 -4
  7. package/dist/cli/{billing-E2YWHGEG.js → billing-CMN3NEBG.js} +73 -73
  8. package/dist/cli/{billing-Z5INYWJF.mjs → billing-VGYUUXH7.mjs} +4 -4
  9. package/dist/cli/{chunk-GB76G34M.mjs → chunk-2BZPK44I.mjs} +1 -1
  10. package/dist/cli/{chunk-TSUDECVA.js → chunk-2W4MDYJT.js} +8 -8
  11. package/dist/cli/{chunk-47GSGU6B.js → chunk-5F26AK2I.js} +2 -2
  12. package/dist/cli/{chunk-G6C345OF.js → chunk-6ZMC4V2C.js} +9 -9
  13. package/dist/cli/{chunk-CDIMKTXU.mjs → chunk-7VVON643.mjs} +1 -1
  14. package/dist/cli/{chunk-QKOCMGEF.js → chunk-ACOOB5IQ.js} +6 -6
  15. package/dist/cli/{chunk-S5MGA7JG.mjs → chunk-BA3XHL2P.mjs} +3 -3
  16. package/dist/cli/{chunk-UOBW6B2A.mjs → chunk-C3DGSZTH.mjs} +6 -6
  17. package/dist/cli/{chunk-JIECDRJ5.mjs → chunk-DZMSXW7V.mjs} +2 -2
  18. package/dist/cli/{chunk-RXH44EQO.js → chunk-FX5LBDDM.js} +45 -45
  19. package/dist/cli/{chunk-3ZTBGOJ3.mjs → chunk-GD4OBISR.mjs} +2 -2
  20. package/dist/cli/{chunk-AH3DNTXN.mjs → chunk-IDDBKTDA.mjs} +2 -2
  21. package/dist/cli/{chunk-3KPODTZE.mjs → chunk-ILJPNHLM.mjs} +1 -1
  22. package/dist/cli/{chunk-DLY2RISW.mjs → chunk-KEAPO5WK.mjs} +2 -2
  23. package/dist/cli/{chunk-ABGZWLSA.js → chunk-KEGOBVCN.js} +60 -60
  24. package/dist/cli/{chunk-24ANFAKD.mjs → chunk-NPFMDH5A.mjs} +4 -4
  25. package/dist/cli/{chunk-VF7JBQBP.js → chunk-NTMV3XMN.js} +224 -224
  26. package/dist/cli/{chunk-LEV3TVKG.js → chunk-QPVYLDIM.js} +15 -15
  27. package/dist/cli/{chunk-J6ITJPCD.js → chunk-R6SRXAMB.js} +8 -8
  28. package/dist/cli/{chunk-W7ZGLLOM.js → chunk-RQ54PVVO.js} +1 -1
  29. package/dist/cli/{chunk-47MAIUPI.js → chunk-S3K2HOXI.js} +4 -4
  30. package/dist/cli/{chunk-EYIROXZM.mjs → chunk-SEAUNX4P.mjs} +1 -1
  31. package/dist/cli/{chunk-LBIP5OGA.js → chunk-TAQOS22B.js} +50 -50
  32. package/dist/cli/{chunk-655HMFLH.mjs → chunk-U3U63MG5.mjs} +1 -1
  33. package/dist/cli/{chunk-JVELAXQN.js → chunk-UDGO5QUW.js} +26 -26
  34. package/dist/cli/{chunk-KRKGZZWZ.mjs → chunk-ZIQSRTY3.mjs} +5 -5
  35. package/dist/cli/{client-H4GIBJEM.mjs → client-2AJKSHB7.mjs} +3 -3
  36. package/dist/cli/client-JKCTNBFD.js +20 -0
  37. package/dist/cli/{csv-HHPA7FJT.js → csv-PNXWMQAE.js} +12 -12
  38. package/dist/cli/{csv-QBPUHPT6.mjs → csv-RPTXODPL.mjs} +3 -3
  39. package/dist/cli/{db-JFB6NXGD.mjs → db-66W44BV4.mjs} +4 -4
  40. package/dist/cli/{db-VZDYPTH2.js → db-H5G2GML7.js} +29 -29
  41. package/dist/cli/{describe-7YDQ6X4L.mjs → describe-TV6XMZM4.mjs} +8 -8
  42. package/dist/cli/{describe-KOTIPFHY.js → describe-UX5VB257.js} +15 -15
  43. package/dist/cli/{executions-YQ4UVHK7.js → executions-RALP45MH.js} +6 -6
  44. package/dist/cli/{executions-SYDFJPUP.mjs → executions-RSGE3X6S.mjs} +4 -4
  45. package/dist/cli/{feedback-HU4GBNRY.js → feedback-LQS7OPBD.js} +7 -7
  46. package/dist/cli/{feedback-YOSAFSEC.mjs → feedback-ZPXQK2DE.mjs} +3 -3
  47. package/dist/cli/git-KHHRY6X4.js +23 -0
  48. package/dist/cli/{git-TFGQOVE6.mjs → git-SAHKYZEA.mjs} +4 -4
  49. package/dist/cli/index.js +82 -82
  50. package/dist/cli/index.mjs +32 -32
  51. package/dist/cli/{legacy-noops-IDVIJV7Y.js → legacy-noops-42HDAUYJ.js} +7 -7
  52. package/dist/cli/{legacy-noops-VWUMF3R6.mjs → legacy-noops-ZRGJQUR2.mjs} +4 -4
  53. package/dist/cli/{monitors-HNDXF2DV.mjs → monitors-MWEPWAP2.mjs} +4 -4
  54. package/dist/cli/{monitors-GUYQVP3C.js → monitors-VOBRVLDA.js} +85 -85
  55. package/dist/cli/{org-BWAZSZBF.mjs → org-ABUXCXUN.mjs} +4 -4
  56. package/dist/cli/{org-EQZMRW7P.js → org-CYCNMJKY.js} +60 -60
  57. package/dist/cli/{play-ZPTBDDX7.mjs → play-I23F675X.mjs} +7 -7
  58. package/dist/cli/play-Z7PGORYB.js +153 -0
  59. package/dist/cli/{providers-Q3UVYCU6.mjs → providers-ONIGWKOI.mjs} +4 -4
  60. package/dist/cli/{providers-K236SWCW.js → providers-R7CFCS3A.js} +7 -7
  61. package/dist/cli/{quickstart-H6W5GM2C.mjs → quickstart-FE25MVGS.mjs} +3 -3
  62. package/dist/cli/{quickstart-REECR6WN.js → quickstart-KHN5U2QW.js} +5 -5
  63. package/dist/cli/search-E4FWDQZN.js +26 -0
  64. package/dist/cli/{search-V75LFUFC.mjs → search-ZTSNEBWW.mjs} +5 -5
  65. package/dist/cli/{secrets-O3SO6JKW.mjs → secrets-7FG3EFOM.mjs} +4 -4
  66. package/dist/cli/{secrets-BFGK3D5L.js → secrets-B66VQKTE.js} +13 -13
  67. package/dist/cli/{sessions-AT2ZDTED.js → sessions-NL7374WB.js} +5 -5
  68. package/dist/cli/{sessions-KNMG5C5R.mjs → sessions-W2INUE2N.mjs} +4 -4
  69. package/dist/cli/{settings-MM5LQN5C.mjs → settings-BSJVCDJQ.mjs} +7 -7
  70. package/dist/cli/{settings-B65AQVIF.js → settings-TI4VEXF4.js} +74 -74
  71. package/dist/cli/{setup-DCJZLL5Q.js → setup-IMABWEEX.js} +41 -41
  72. package/dist/cli/{setup-XDVYHF5Z.mjs → setup-OO46BANM.mjs} +6 -6
  73. package/dist/cli/skills-AE5KUFID.js +28 -0
  74. package/dist/cli/{skills-2QD2ECZC.mjs → skills-DNPINX75.mjs} +4 -4
  75. package/dist/cli/tools-2FUIU3DH.js +40 -0
  76. package/dist/cli/{tools-PYVK75OA.mjs → tools-P3A7JT26.mjs} +6 -6
  77. package/dist/cli/{update-QV7SWPRZ.mjs → update-RKRE2LRM.mjs} +6 -6
  78. package/dist/cli/update-U33POYJW.js +28 -0
  79. package/dist/cli/{workflow-Q7XOX2UK.js → workflow-MLVL6RYS.js} +15 -15
  80. package/dist/cli/{workflow-3YH3SYG5.mjs → workflow-W2HXBSMK.mjs} +5 -5
  81. package/dist/index.js +6 -6
  82. package/dist/index.mjs +3 -3
  83. package/dist/install-integrity.json +74 -74
  84. package/dist/release.d.mts +1 -1
  85. package/dist/release.d.ts +1 -1
  86. package/dist/release.js +2 -2
  87. package/dist/release.mjs +1 -1
  88. package/package.json +1 -1
  89. package/dist/cli/auth-5ZEJNJGA.js +0 -33
  90. package/dist/cli/client-IGY5ULGD.js +0 -20
  91. package/dist/cli/git-AXOGXUBF.js +0 -23
  92. package/dist/cli/play-RXDF5ZEA.js +0 -153
  93. package/dist/cli/search-CICEFEUG.js +0 -26
  94. package/dist/cli/skills-PBCTBNZ4.js +0 -28
  95. package/dist/cli/tools-NIOHIQID.js +0 -40
  96. package/dist/cli/update-2O3MQ4OU.js +0 -28
@@ -200,7 +200,7 @@ export const SDK_RELEASE = {
200
200
  // getters keep their established compatibility behavior.
201
201
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
202
202
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
203
- version: '0.3.360',
203
+ version: '0.3.362',
204
204
  updateSummary:
205
205
  '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.',
206
206
  packageCapabilities: {
@@ -21,9 +21,25 @@ export const SCHEDULED_WORK_CONTROL_ACTIONS = [
21
21
  export type ScheduledWorkControlAction =
22
22
  (typeof SCHEDULED_WORK_CONTROL_ACTIONS)[number];
23
23
 
24
+ export type ScheduledWorkOrganizationTarget = {
25
+ readonly kind: 'organization';
26
+ readonly orgId: string;
27
+ };
28
+
29
+ export type ScheduledWorkPreviewResult = {
30
+ readonly ok: boolean;
31
+ readonly dryRun: true;
32
+ readonly previewMode: 'transactional';
33
+ readonly state: 'unknown' | 'inProgress' | 'success' | 'failed' | 'canceled';
34
+ readonly processed: number;
35
+ readonly isDone: boolean;
36
+ readonly error: string | null;
37
+ };
38
+
24
39
  export type ScheduledWorkControlContext = {
25
40
  readonly jobId: string;
26
41
  readonly environment: string;
42
+ readonly target?: ScheduledWorkOrganizationTarget;
27
43
  readonly requestedByUserId: string;
28
44
  readonly requestedByEmail: string;
29
45
  readonly reason: string;
@@ -42,6 +58,12 @@ export type ScheduledWorkControlConnector = {
42
58
  readonly scheduler: string;
43
59
  readonly jobIds: readonly string[];
44
60
  readonly actions: readonly ScheduledWorkControlAction[];
61
+ readonly targetKind?: 'organization';
62
+ readonly previewActions?: readonly ScheduledWorkControlAction[];
63
+ preview?: (
64
+ context: ScheduledWorkControlContext,
65
+ action: ScheduledWorkControlAction,
66
+ ) => Promise<ScheduledWorkPreviewResult>;
45
67
  /** Registered owners may expose an honest read-only adapter before a safe
46
68
  * mutation exists. These reasons are returned by the same capability API. */
47
69
  readonly unavailableActions?: Partial<
@@ -67,6 +89,8 @@ export type ScheduledWorkControlCapability =
67
89
  readonly action: ScheduledWorkControlAction;
68
90
  readonly connectorId: string;
69
91
  readonly scheduler: string;
92
+ readonly targetKind?: 'organization';
93
+ readonly previewMode?: 'transactional';
70
94
  }
71
95
  | {
72
96
  readonly available: false;
@@ -120,6 +144,16 @@ export class ScheduledWorkControlRegistry {
120
144
  `Scheduled-work connector ${connector.id} must declare a supported action or an explicit unavailable reason.`,
121
145
  );
122
146
  }
147
+ if (
148
+ connector.previewActions?.some(
149
+ (action) => !connector.actions.includes(action),
150
+ ) ||
151
+ (connector.previewActions?.length && !connector.preview)
152
+ ) {
153
+ throw new Error(
154
+ `Scheduled-work connector ${connector.id} has invalid preview actions.`,
155
+ );
156
+ }
123
157
  const jobIds = new Set<string>();
124
158
  for (const jobId of connector.jobIds) {
125
159
  if (!jobId.trim())
@@ -166,6 +200,10 @@ export class ScheduledWorkControlRegistry {
166
200
  action,
167
201
  connectorId: connector.id,
168
202
  scheduler: connector.scheduler,
203
+ ...(connector.targetKind ? { targetKind: connector.targetKind } : {}),
204
+ ...(connector.previewActions?.includes(action)
205
+ ? { previewMode: 'transactional' as const }
206
+ : {}),
169
207
  };
170
208
  }
171
209
  return {
@@ -773,7 +773,7 @@ const PRODUCT_NOTIFICATION_TYPE_REGISTRY = [
773
773
  },
774
774
  }),
775
775
  present: ({ payload }) => ({
776
- title: `${payload.isFirstPurchase === true ? '🎉 First credit purchase' : 'Credit purchase'}: $${(Number(payload.amountPaidCents) / 100).toFixed(2)}`,
776
+ title: `${payload.isFirstPurchase === true ? '🎉 First credit purchase' : 'Credit purchase'}${payload.isAutoTopup === true ? ' (Auto top-up)' : ''}: $${(Number(payload.amountPaidCents) / 100).toFixed(2)}`,
777
777
  summary: [
778
778
  { workspace: true },
779
779
  ` purchased ${formatCredits(Number(payload.credits))} credits.`,
@@ -213,6 +213,7 @@ export const PRODUCT_NOTIFICATION_EVENT_DEFINITIONS: readonly ProductNotificatio
213
213
  amountPaidCents: 'number',
214
214
  currency: 'string',
215
215
  isFirstPurchase: 'boolean',
216
+ isAutoTopup: 'boolean',
216
217
  },
217
218
  orderingSubjectFact: 'accountId',
218
219
  allowedTriggers: ['threshold_crossing'],
@@ -294,6 +295,13 @@ function requireInternalTargetPath(value: unknown) {
294
295
  }
295
296
  }
296
297
 
298
+ export class ProductNotificationEventExpiredError extends Error {
299
+ constructor() {
300
+ super('Notification event is older than 30 days.');
301
+ this.name = 'ProductNotificationEventExpiredError';
302
+ }
303
+ }
304
+
297
305
  /** Validate the semantic event contract after the producer transaction commits. */
298
306
  export function validateProductNotificationEvent(
299
307
  event: ProductNotificationCanonicalEvent,
@@ -318,9 +326,6 @@ export function validateProductNotificationEvent(
318
326
  ) {
319
327
  throw new Error('Event timestamps must be finite.');
320
328
  }
321
- if (event.occurredAt < now - PRODUCT_NOTIFICATION_MAX_EVENT_AGE_MS) {
322
- throw new Error('Notification event is older than 30 days.');
323
- }
324
329
  if (event.admittedAt > now) {
325
330
  throw new Error('Notification admission time is in the future.');
326
331
  }
@@ -370,6 +375,10 @@ export function validateProductNotificationEvent(
370
375
  ) {
371
376
  throw new Error('Notification event exceeds its byte bound.');
372
377
  }
378
+ // Expiry is terminal queue work only after the rest of the contract is valid.
379
+ if (event.occurredAt < now - PRODUCT_NOTIFICATION_MAX_EVENT_AGE_MS) {
380
+ throw new ProductNotificationEventExpiredError();
381
+ }
373
382
  return definition;
374
383
  }
375
384
 
@@ -0,0 +1,33 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ var _chunkTAQOS22Bjs = require('./chunk-TAQOS22B.js');
14
+ require('./chunk-ACOOB5IQ.js');
15
+ require('./chunk-S3K2HOXI.js');
16
+ require('./chunk-XNYIZMNQ.js');
17
+ require('./chunk-7P5AA3SN.js');
18
+ require('./chunk-RQ54PVVO.js');
19
+ require('./chunk-OG64RBAC.js');
20
+ require('./chunk-COGTRVWW.js');
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+ exports.EXIT_WORKSPACE_MISMATCH = _chunkTAQOS22Bjs.EXIT_WORKSPACE_MISMATCH; exports.authStatusLine = _chunkTAQOS22Bjs.authStatusLine; exports.clearPendingClaim = _chunkTAQOS22Bjs.clearPendingClaim; exports.clearSatisfiedPendingClaim = _chunkTAQOS22Bjs.clearSatisfiedPendingClaim; exports.handleRegister = _chunkTAQOS22Bjs.handleRegister; exports.handleStatus = _chunkTAQOS22Bjs.handleStatus; exports.handleWait = _chunkTAQOS22Bjs.handleWait; exports.readPendingAuthClaim = _chunkTAQOS22Bjs.readPendingAuthClaim; exports.registerAuthCommands = _chunkTAQOS22Bjs.registerAuthCommands; exports.reportSetupCompleted = _chunkTAQOS22Bjs.reportSetupCompleted; exports.resolvePendingAuthClaimForResume = _chunkTAQOS22Bjs.resolvePendingAuthClaimForResume;
@@ -10,12 +10,12 @@ import {
10
10
  registerAuthCommands,
11
11
  reportSetupCompleted,
12
12
  resolvePendingAuthClaimForResume
13
- } from "./chunk-JIECDRJ5.mjs";
14
- import "./chunk-EYIROXZM.mjs";
15
- import "./chunk-GB76G34M.mjs";
13
+ } from "./chunk-DZMSXW7V.mjs";
14
+ import "./chunk-SEAUNX4P.mjs";
15
+ import "./chunk-2BZPK44I.mjs";
16
16
  import "./chunk-DLIRSHV6.mjs";
17
17
  import "./chunk-NXGCO4JB.mjs";
18
- import "./chunk-CDIMKTXU.mjs";
18
+ import "./chunk-7VVON643.mjs";
19
19
  import "./chunk-WZYKRD7T.mjs";
20
20
  import "./chunk-KRD6H754.mjs";
21
21
  export {