deepline 0.3.87 → 0.3.88

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 (65) hide show
  1. package/dist/bundling-sources/sdk/src/client.ts +2 -2
  2. package/dist/bundling-sources/sdk/src/monitor-fleet-contract.ts +1 -1
  3. package/dist/bundling-sources/sdk/src/plays/bundle-play-file.ts +1 -1
  4. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  5. package/dist/bundling-sources/shared_libs/monitors/org-monitor-limits.ts +1 -1
  6. package/dist/bundling-sources/shared_libs/play-runtime/runtime-env.ts +0 -6
  7. package/dist/bundling-sources/shared_libs/play-runtime/tool-http-errors.ts +1 -1
  8. package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +1 -1
  9. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +0 -302
  10. package/dist/bundling-sources/shared_libs/plays/email-status.ts +1 -1
  11. package/dist/bundling-sources/shared_libs/plays/tool-category-descriptions.ts +2 -2
  12. package/dist/bundling-sources/shared_libs/runtime-env.ts +0 -6
  13. package/dist/cli/index.js +4 -6
  14. package/dist/cli/index.mjs +4 -6
  15. package/dist/index.d.mts +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.js +3 -3
  18. package/dist/index.mjs +3 -3
  19. package/dist/install-integrity.json +2 -45
  20. package/package.json +1 -3
  21. package/dist/bundling-sources/shared_libs/integration-contracts/AGENTS.md +0 -9
  22. package/dist/bundling-sources/shared_libs/integration-contracts/README.md +0 -3
  23. package/dist/bundling-sources/shared_libs/integration-contracts/index.ts +0 -2
  24. package/dist/bundling-sources/shared_libs/monitors/analytics-install-guides.ts +0 -77
  25. package/dist/bundling-sources/shared_libs/monitors/billing/charges.ts +0 -125
  26. package/dist/bundling-sources/shared_libs/monitors/billing/policy-builders.ts +0 -686
  27. package/dist/bundling-sources/shared_libs/monitors/billing/pricing.ts +0 -54
  28. package/dist/bundling-sources/shared_libs/monitors/billing/public-pricing.ts +0 -72
  29. package/dist/bundling-sources/shared_libs/monitors/billing/session.ts +0 -45
  30. package/dist/bundling-sources/shared_libs/monitors/billing/state.ts +0 -454
  31. package/dist/bundling-sources/shared_libs/monitors/billing/tamradar.ts +0 -260
  32. package/dist/bundling-sources/shared_libs/monitors/billing/types.ts +0 -215
  33. package/dist/bundling-sources/shared_libs/monitors/callback-security.ts +0 -333
  34. package/dist/bundling-sources/shared_libs/monitors/cursor-page.ts +0 -42
  35. package/dist/bundling-sources/shared_libs/monitors/framework-managed-payload-fields.ts +0 -71
  36. package/dist/bundling-sources/shared_libs/monitors/generated/provider-monitor-callback-admission-targets.ts +0 -16
  37. package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +0 -267
  38. package/dist/bundling-sources/shared_libs/monitors/inbound-publish-key.ts +0 -39
  39. package/dist/bundling-sources/shared_libs/monitors/inbound-queue.ts +0 -82
  40. package/dist/bundling-sources/shared_libs/monitors/lifecycle-notifications.ts +0 -473
  41. package/dist/bundling-sources/shared_libs/monitors/package.json +0 -29
  42. package/dist/bundling-sources/shared_libs/monitors/provider-callback-verification.ts +0 -1125
  43. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-capability.ts +0 -964
  44. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-consumer-health.ts +0 -56
  45. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-errors.ts +0 -131
  46. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-identity-claims.ts +0 -527
  47. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-legacy-aliases.ts +0 -16
  48. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-priority-execution.ts +0 -56
  49. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-public-aliases.ts +0 -28
  50. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-runtime-read-eligibility.ts +0 -38
  51. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-status.ts +0 -10
  52. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-upstream-identity.ts +0 -112
  53. package/dist/bundling-sources/shared_libs/monitors/provider-webhook-monitor-runtime.ts +0 -300
  54. package/dist/bundling-sources/shared_libs/monitors/quickstart-prompts.ts +0 -22
  55. package/dist/bundling-sources/shared_libs/monitors/snitcher-install-validation.ts +0 -93
  56. package/dist/bundling-sources/shared_libs/monitors/snitcher-ip2company.ts +0 -332
  57. package/dist/bundling-sources/shared_libs/monitors/snitcher-radar.ts +0 -221
  58. package/dist/bundling-sources/shared_libs/monitors/starter-templates.ts +0 -105
  59. package/dist/bundling-sources/shared_libs/monitors/tracking-provider-guidance.ts +0 -73
  60. package/dist/bundling-sources/shared_libs/monitors/tracking-provider-integrations.ts +0 -81
  61. package/dist/bundling-sources/shared_libs/monitors/tsconfig.json +0 -10
  62. package/dist/bundling-sources/shared_libs/security/header-safe-env.ts +0 -28
  63. package/dist/bundling-sources/shared_libs/security/secret-redaction.ts +0 -267
  64. /package/dist/bundling-sources/shared_libs/{integration-contracts/bettercontact/execution-policy.ts → integrations/bettercontact-execution-policy.ts} +0 -0
  65. /package/dist/bundling-sources/shared_libs/{integration-contracts/theirstack/execution-policy.ts → integrations/theirstack-execution-policy.ts} +0 -0
@@ -88,11 +88,11 @@ import type { PlayStagedFileRef } from './plays/local-file-discovery.js';
88
88
  import type { PlayCompilerManifest } from '../../shared_libs/plays/compiler-manifest.js';
89
89
  import type { EnrichCompiledConfig } from './cli/enrich-play-compiler.js';
90
90
  import { RUNTIME_ENVIRONMENT_TOKEN_HEADER } from '../../shared_libs/play-runtime/coordinator-headers.js';
91
- import { resolveTheirstackClientTimeoutMs } from '../../shared_libs/integration-contracts/theirstack/execution-policy.js';
91
+ import { resolveTheirstackClientTimeoutMs } from '../../shared_libs/integrations/theirstack-execution-policy.js';
92
92
  import {
93
93
  BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS,
94
94
  usesExtendedBetterContactLauncherBudget,
95
- } from '../../shared_libs/integration-contracts/bettercontact/execution-policy.js';
95
+ } from '../../shared_libs/integrations/bettercontact-execution-policy.js';
96
96
  import {
97
97
  normalizePlayRuntimeEnvironment,
98
98
  normalizePlayRuntimeNamespace,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The fleet member ceiling, mirrored — deliberately a literal.
3
3
  *
4
- * The canonical declaration is packages/monitors/monitor-fleet-limits.ts,
4
+ * The canonical declaration is shared_libs/monitors/monitor-fleet-limits.ts,
5
5
  * which the Convex commit mutation reads to size its transaction. This package
6
6
  * cannot import it: the workspace-architecture ratchet forbids NEW shared_libs
7
7
  * imports from packages absolutely (only relocations of pre-existing edges
@@ -84,7 +84,7 @@ let hasWarnedAboutNonDevelopmentBundling = false;
84
84
  * The SDK's job is to turn a local play file into a portable artifact using
85
85
  * only SDK/runtime sources. It must work for installed packages, source
86
86
  * checkouts, CI smoke jobs, and clean worktrees without app-generated files
87
- * such as `packages/integrations/generated/tool-typecheck-catalog.jsonl`.
87
+ * such as `src/lib/generated/tool-typecheck-catalog.jsonl`.
88
88
  *
89
89
  * Tool-aware validation belongs to the Deepline API after upload:
90
90
  * `compilePlayManifest` / server preflight runs the cloud typechecker inside
@@ -199,7 +199,7 @@ export const SDK_RELEASE = {
199
199
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
200
200
  // getters keep their established compatibility behavior.
201
201
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
202
- version: '0.3.87',
202
+ version: '0.3.88',
203
203
  updateSummary:
204
204
  'Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.',
205
205
  packageCapabilities: {
@@ -10,7 +10,7 @@
10
10
  * The two numbers below are the whole policy. Maximum monitors is their
11
11
  * product and is deliberately not a third number to reason about.
12
12
  */
13
- import { ORG_LIMITS, OrgLimit } from '@deepline/billing/org-limits/registry';
13
+ import { ORG_LIMITS, OrgLimit } from '../org-limits/registry';
14
14
 
15
15
  export const DEFAULT_ORG_MONITOR_ENTITY_LIMIT =
16
16
  ORG_LIMITS[OrgLimit.MonitorWatchedEntities].defaultValue;
@@ -53,9 +53,3 @@ export function getRuntimeEnvInfo() {
53
53
  node_env: process.env.NODE_ENV ?? null,
54
54
  };
55
55
  }
56
-
57
- /** Test seams must never be reachable from a Vercel production deployment. */
58
- export function isTestOnlyRuntime(): boolean {
59
- if (process.env.VERCEL_ENV === 'production') return false;
60
- return process.env.VERCEL_ENV === 'preview' || getRuntimeEnv() !== 'prod';
61
- }
@@ -186,7 +186,7 @@ function isInsufficientCreditsBilling(
186
186
  * credit/cap denial: a funded org is temporarily blocked because our billing
187
187
  * store hiccuped, so it must be repairable on the next run rather than cached as
188
188
  * a terminal failure. See `billingUnavailableResponse` in
189
- * packages/integrations/execute-billing.ts. This class is the exact incident
189
+ * src/lib/integrations/execute-billing.ts. This class is the exact incident
190
190
  * poison closed by issues #2561/#2706: without this carve-out a billing-plane
191
191
  * outage classifies every affected tool call as `hard_billing_error` ->
192
192
  * `terminal` and the next run replays the cached failure instead of retrying.
@@ -206,7 +206,7 @@ function adaptV2ExecuteResponseToToolResult(data: Record<string, unknown>): {
206
206
  *
207
207
  * Boundary note: provider-specific redaction (wiza/apify/bettercontact billing
208
208
  * fields) happens server-side in
209
- * `packages/integrations/execute-result-normalization.ts` BEFORE the response
209
+ * `src/lib/integrations/execute-result-normalization.ts` BEFORE the response
210
210
  * leaves the API. This module only ever sees the already-redacted public
211
211
  * response — do not move redaction here, it would leak provider internals
212
212
  * into the shared runtime bundles.
@@ -276,308 +276,6 @@ export function normalizeAdmittedSqlListenerWhere(
276
276
  }
277
277
  return normalized;
278
278
  }
279
- export type PlaySqlListenerValidationIssue = {
280
- severity: 'error' | 'warning';
281
- code: string;
282
- path: string;
283
- message: string;
284
- expected?: unknown;
285
- received?: unknown;
286
- suggestion?: string;
287
- entity_type?:
288
- | 'monitor'
289
- | 'action'
290
- | 'trigger'
291
- | 'bundle'
292
- | 'play'
293
- | 'listener'
294
- | 'table'
295
- | 'tool'
296
- | 'workflow';
297
- entity_key?: string;
298
- docs_ref?: string;
299
- };
300
-
301
- function sqlListenerIssue(
302
- issue: Omit<PlaySqlListenerValidationIssue, 'severity'> & {
303
- severity?: PlaySqlListenerValidationIssue['severity'];
304
- },
305
- ): PlaySqlListenerValidationIssue {
306
- return { severity: issue.severity ?? 'error', ...issue };
307
- }
308
-
309
- const PLAY_SQL_LISTENER_OPERATIONS = new Set<string>([
310
- 'INSERT',
311
- 'UPDATE',
312
- 'DELETE',
313
- ]);
314
-
315
- function validateAdmittedSqlListenerWhere(
316
- input: { where: unknown; path: string; listenerKey: string },
317
- issues: PlaySqlListenerValidationIssue[],
318
- ): void {
319
- if (input.where === undefined) return;
320
- if (!isPlainRecord(input.where)) {
321
- issues.push(
322
- sqlListenerIssue({
323
- code: 'invalid_sql_listener_filter_shape',
324
- path: input.path,
325
- message:
326
- 'SQL listener where must be a literal object with before and/or after filters.',
327
- expected:
328
- '{ before?: Record<string, operators>, after?: Record<string, operators> }',
329
- received: input.where,
330
- entity_type: 'listener',
331
- entity_key: input.listenerKey,
332
- docs_ref: 'docs/monitor-sdk-architecture-plan.html#v2',
333
- }),
334
- );
335
- return;
336
- }
337
- for (const [scope, scopeValue] of Object.entries(input.where)) {
338
- const scopePath = `${input.path}.${scope}`;
339
- if (scope !== 'before' && scope !== 'after') {
340
- issues.push(
341
- sqlListenerIssue({
342
- code: 'unsupported_sql_listener_filter_scope',
343
- path: scopePath,
344
- message: 'SQL listener filters only support before and after scopes.',
345
- expected: ['before', 'after'],
346
- received: scope,
347
- entity_type: 'listener',
348
- entity_key: input.listenerKey,
349
- docs_ref: 'docs/monitor-sdk-architecture-plan.html#v2',
350
- }),
351
- );
352
- continue;
353
- }
354
- if (!isPlainRecord(scopeValue)) {
355
- issues.push(
356
- sqlListenerIssue({
357
- code: 'invalid_sql_listener_filter_scope',
358
- path: scopePath,
359
- message: `SQL listener where.${scope} must be an object keyed by top-level row field.`,
360
- expected: 'Record<field, operators>',
361
- received: scopeValue,
362
- entity_type: 'listener',
363
- entity_key: input.listenerKey,
364
- docs_ref: 'docs/monitor-sdk-architecture-plan.html#v2',
365
- }),
366
- );
367
- continue;
368
- }
369
- for (const [field, operators] of Object.entries(scopeValue)) {
370
- const fieldPath = `${scopePath}.${field}`;
371
- if (!PLAY_SQL_LISTENER_FIELD_PATTERN.test(field)) {
372
- issues.push(
373
- sqlListenerIssue({
374
- code: 'invalid_sql_listener_filter_field',
375
- path: fieldPath,
376
- message:
377
- 'SQL listener filters only support top-level row fields with plain identifier names.',
378
- expected: PLAY_SQL_LISTENER_FIELD_PATTERN.source,
379
- received: field,
380
- suggestion:
381
- 'Use a top-level column key such as "country" instead of a path expression.',
382
- entity_type: 'listener',
383
- entity_key: input.listenerKey,
384
- docs_ref: 'docs/monitor-sdk-architecture-plan.html#v2',
385
- }),
386
- );
387
- }
388
- if (!isPlainRecord(operators)) {
389
- issues.push(
390
- sqlListenerIssue({
391
- code: 'invalid_sql_listener_filter_condition',
392
- path: fieldPath,
393
- message:
394
- 'SQL listener field filters must be an object keyed by a supported operator, e.g. { eq: <value> } — got a bare value.',
395
- expected: PLAY_SQL_LISTENER_WHERE_OPERATORS,
396
- received: operators,
397
- entity_type: 'listener',
398
- entity_key: input.listenerKey,
399
- docs_ref: 'docs/monitor-sdk-architecture-plan.html#v2',
400
- }),
401
- );
402
- continue;
403
- }
404
- if (Object.keys(operators).length === 0) {
405
- issues.push(
406
- sqlListenerIssue({
407
- code: 'empty_sql_listener_filter_condition',
408
- path: fieldPath,
409
- message:
410
- 'SQL listener field filters must contain at least one operator.',
411
- expected: PLAY_SQL_LISTENER_WHERE_OPERATORS,
412
- received: operators,
413
- entity_type: 'listener',
414
- entity_key: input.listenerKey,
415
- docs_ref: 'docs/monitor-sdk-architecture-plan.html#v2',
416
- }),
417
- );
418
- }
419
- for (const [operator, value] of Object.entries(operators)) {
420
- const operatorPath = `${fieldPath}.${operator}`;
421
- if (!PLAY_SQL_LISTENER_WHERE_OPERATOR_SET.has(operator)) {
422
- issues.push(
423
- sqlListenerIssue({
424
- code: 'unsupported_sql_listener_filter_operator',
425
- path: operatorPath,
426
- message: `SQL listener filter operator "${operator}" is not supported.`,
427
- expected: PLAY_SQL_LISTENER_WHERE_OPERATORS,
428
- received: operator,
429
- suggestion: `Use ${PLAY_SQL_LISTENER_WHERE_OPERATORS.slice(0, -1).join(', ')}, or ${PLAY_SQL_LISTENER_WHERE_OPERATORS.at(-1)}.`,
430
- entity_type: 'listener',
431
- entity_key: input.listenerKey,
432
- docs_ref: 'docs/monitor-sdk-architecture-plan.html#v2',
433
- }),
434
- );
435
- continue;
436
- }
437
- const valid =
438
- ((operator === 'in' || operator === 'notIn') &&
439
- Array.isArray(value) &&
440
- value.length > 0 &&
441
- value.every(isPlaySqlListenerFilterScalar)) ||
442
- ((operator === 'isNull' || operator === 'isNotNull') &&
443
- value === true) ||
444
- (operator === 'ilike' &&
445
- typeof value === 'string' &&
446
- value.length > 0) ||
447
- ((operator === 'eq' || operator === 'neq') &&
448
- isPlaySqlListenerFilterScalar(value));
449
- if (!valid) {
450
- issues.push(
451
- sqlListenerIssue({
452
- code: 'invalid_sql_listener_filter_value',
453
- path: operatorPath,
454
- message: `SQL listener filter operator "${operator}" has an invalid value.`,
455
- received: value,
456
- entity_type: 'listener',
457
- entity_key: input.listenerKey,
458
- docs_ref: 'docs/monitor-sdk-architecture-plan.html#v2',
459
- }),
460
- );
461
- }
462
- }
463
- }
464
- }
465
- }
466
-
467
- /** Validate only a stored binding snapshot that already crossed admission. */
468
- export function validateAdmittedSqlListenerBindings(
469
- bindings: PlayAuthoringAstBindings | null | undefined,
470
- input: { playName?: string; pathPrefix?: string } = {},
471
- ): PlaySqlListenerValidationIssue[] {
472
- const issues: PlaySqlListenerValidationIssue[] = [];
473
- const listeners = bindings?.sqlListeners;
474
- if (!listeners) return issues;
475
- const seen = new Set<string>();
476
- listeners.forEach((listener, index) => {
477
- const path = `${input.pathPrefix ?? 'sqlListeners'}[${index}]`;
478
- const listenerKey = input.playName
479
- ? `${input.playName}.${listener.id}`
480
- : listener.id;
481
- if (!listener.id || !PLAY_SQL_LISTENER_ID_PATTERN.test(listener.id)) {
482
- issues.push(
483
- sqlListenerIssue({
484
- code: 'invalid_sql_listener_id',
485
- path: `${path}.id`,
486
- message:
487
- 'SQL listener id must start with a letter and contain only letters, numbers, underscores, or hyphens.',
488
- expected: PLAY_SQL_LISTENER_ID_PATTERN.source,
489
- received: listener.id,
490
- entity_type: 'listener',
491
- entity_key: listenerKey,
492
- }),
493
- );
494
- }
495
- if (seen.has(listener.id)) {
496
- issues.push(
497
- sqlListenerIssue({
498
- code: 'duplicate_sql_listener_id',
499
- path: `${path}.id`,
500
- message: `SQL listener id "${listener.id}" is already used in this play.`,
501
- received: listener.id,
502
- entity_type: 'listener',
503
- entity_key: listenerKey,
504
- }),
505
- );
506
- }
507
- seen.add(listener.id);
508
- if (!listener.tool || !PLAY_SQL_LISTENER_TOOL_PATTERN.test(listener.tool)) {
509
- issues.push(
510
- sqlListenerIssue({
511
- code: listener.tool
512
- ? 'invalid_sql_listener_tool'
513
- : 'missing_sql_listener_tool',
514
- path: `${path}.tool`,
515
- message: 'SQL listener tool must use provider.tool syntax.',
516
- expected: PLAY_SQL_LISTENER_TOOL_PATTERN.source,
517
- received: listener.tool,
518
- entity_type: 'tool',
519
- entity_key: listener.tool || listenerKey,
520
- }),
521
- );
522
- }
523
- if (
524
- !listener.stream ||
525
- !PLAY_SQL_LISTENER_ID_PATTERN.test(listener.stream)
526
- ) {
527
- issues.push(
528
- sqlListenerIssue({
529
- code: listener.stream
530
- ? 'invalid_sql_listener_stream'
531
- : 'missing_sql_listener_stream',
532
- path: `${path}.stream`,
533
- message:
534
- 'SQL listener stream keys must start with a letter and contain only letters, numbers, underscores, or hyphens.',
535
- expected: PLAY_SQL_LISTENER_ID_PATTERN.source,
536
- received: listener.stream,
537
- entity_type: 'listener',
538
- entity_key: listenerKey,
539
- }),
540
- );
541
- }
542
- validateAdmittedSqlListenerWhere(
543
- { where: listener.where, path: `${path}.where`, listenerKey },
544
- issues,
545
- );
546
- if (
547
- !Array.isArray(listener.operations) ||
548
- listener.operations.length === 0
549
- ) {
550
- issues.push(
551
- sqlListenerIssue({
552
- code: 'empty_sql_listener_operations',
553
- path: `${path}.operations`,
554
- message: 'SQL listener operations must not be empty.',
555
- expected: [...PLAY_SQL_LISTENER_OPERATIONS],
556
- received: listener.operations,
557
- entity_type: 'listener',
558
- entity_key: listenerKey,
559
- }),
560
- );
561
- } else if (
562
- listener.operations.some(
563
- (operation) => !PLAY_SQL_LISTENER_OPERATIONS.has(operation),
564
- )
565
- ) {
566
- issues.push(
567
- sqlListenerIssue({
568
- code: 'invalid_sql_listener_operation',
569
- path: `${path}.operations`,
570
- message: 'SQL listener operations must be INSERT, UPDATE, or DELETE.',
571
- expected: [...PLAY_SQL_LISTENER_OPERATIONS],
572
- received: listener.operations,
573
- entity_type: 'listener',
574
- entity_key: listenerKey,
575
- }),
576
- );
577
- }
578
- });
579
- return issues;
580
- }
581
279
  export type PlaySqlListenerDeclaration = {
582
280
  id: string;
583
281
  tool: string;
@@ -91,7 +91,7 @@ export type EmailStatusBuildInput = {
91
91
 
92
92
  // There is intentionally NO shared default status map. Each provider must
93
93
  // declare its own `statusMap` / `rules` for the raw status strings it emits
94
- // (see the provider registries under packages/integrations/**). A coarse global
94
+ // (see the provider registries under src/lib/integrations/**). A coarse global
95
95
  // map silently coerced provider-specific strings ("deliverable", "accept_all",
96
96
  // etc.) into canonical verdicts and let validators depend on guesses instead of
97
97
  // documented behavior. With it gone, an unmapped raw status falls through to
@@ -1,10 +1,10 @@
1
1
  // One-line definitions for the tool categories surfaced by `deepline tools list`.
2
2
  //
3
3
  // Tool categories are free-form strings that each provider tool declares in the
4
- // generated catalog (see `packages/integrations/**`), not a single closed enum.
4
+ // generated catalog (see `src/lib/integrations/**`), not a single closed enum.
5
5
  // The canonical set of well-known category slugs lives next to this file in
6
6
  // `DEEPLINE_TOOL_CATEGORIES` (bootstrap-routes.ts) and in the richer
7
- // `IntegrationCatalogTag` enum (packages/integrations/catalog-tags.ts). This map
7
+ // `IntegrationCatalogTag` enum (src/lib/integrations/catalog-tags.ts). This map
8
8
  // MUST track the categories that actually appear on live tools. The CLI derives
9
9
  // the category enumeration from the live catalog, so a new category slug shows
10
10
  // up automatically; only its human-readable definition comes from here. When a
@@ -53,9 +53,3 @@ export function getRuntimeEnvInfo() {
53
53
  node_env: process.env.NODE_ENV ?? null,
54
54
  };
55
55
  }
56
-
57
- /** Test seams must never be reachable from a Vercel production deployment. */
58
- export function isTestOnlyRuntime(): boolean {
59
- if (process.env.VERCEL_ENV === 'production') return false;
60
- return process.env.VERCEL_ENV === 'preview' || getRuntimeEnv() !== 'prod';
61
- }
package/dist/cli/index.js CHANGED
@@ -1225,7 +1225,7 @@ var SDK_RELEASE = {
1225
1225
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
1226
1226
  // getters keep their established compatibility behavior.
1227
1227
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
1228
- version: "0.3.87",
1228
+ version: "0.3.88",
1229
1229
  updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
1230
1230
  packageCapabilities: {
1231
1231
  updatePreferences: 1
@@ -4353,7 +4353,7 @@ async function* observeRunEvents(options) {
4353
4353
  }
4354
4354
  }
4355
4355
 
4356
- // ../integration-contracts/theirstack/execution-policy.ts
4356
+ // ../../shared_libs/integrations/theirstack-execution-policy.ts
4357
4357
  var THEIRSTACK_SLOW_JOB_SEARCH_PROVIDER_TIMEOUT_MS = 135e3;
4358
4358
  var THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS = 6e4 + THEIRSTACK_SLOW_JOB_SEARCH_PROVIDER_TIMEOUT_MS + 15e3;
4359
4359
  var THEIRSTACK_COMPANY_SEARCH_CLIENT_TIMEOUT_MS = 21e4;
@@ -4407,7 +4407,7 @@ function resolveTheirstackClientTimeoutMs(endpointId, payload) {
4407
4407
  return usesExtendedTheirstackJobSearchBudget(endpointId, payload) ? THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS : null;
4408
4408
  }
4409
4409
 
4410
- // ../integration-contracts/bettercontact/execution-policy.ts
4410
+ // ../../shared_libs/integrations/bettercontact-execution-policy.ts
4411
4411
  var BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS = 12e4;
4412
4412
  var BETTERCONTACT_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
4413
4413
  "bettercontact_enrich",
@@ -17008,7 +17008,7 @@ function resolveDaytonaSandboxComputeItem(input2) {
17008
17008
  };
17009
17009
  }
17010
17010
 
17011
- // ../billing/compute-pricing-contract.ts
17011
+ // ../../shared_libs/billing/compute-pricing.ts
17012
17012
  var COMPUTE_BILLING_MARKUP_MULTIPLIER = 5;
17013
17013
  var DEFAULT_USD_PER_CUSTOMER_CREDIT = 0.1;
17014
17014
  var DEFAULT_PROVIDER_MARKUP_MULTIPLIER = 1.4;
@@ -38372,8 +38372,6 @@ var SDK_SIDECAR_CRITICAL_PACKAGE_FILES = [
38372
38372
  "dist/index.d.ts",
38373
38373
  "dist/plays/bundle-play-file.mjs",
38374
38374
  "dist/bundling-sources/shared_libs/observability/telemetry.ts",
38375
- "dist/bundling-sources/shared_libs/integration-contracts/bettercontact/execution-policy.ts",
38376
- "dist/bundling-sources/shared_libs/integration-contracts/theirstack/execution-policy.ts",
38377
38375
  "dist/bundling-sources/shared_libs/play-runtime/backend.ts",
38378
38376
  "dist/bundling-sources/shared_libs/plays/bundling/index.ts",
38379
38377
  "dist/bundling-sources/shared_libs/product-notifications/contract.ts",
@@ -1210,7 +1210,7 @@ var SDK_RELEASE = {
1210
1210
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
1211
1211
  // getters keep their established compatibility behavior.
1212
1212
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
1213
- version: "0.3.87",
1213
+ version: "0.3.88",
1214
1214
  updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
1215
1215
  packageCapabilities: {
1216
1216
  updatePreferences: 1
@@ -4338,7 +4338,7 @@ async function* observeRunEvents(options) {
4338
4338
  }
4339
4339
  }
4340
4340
 
4341
- // ../integration-contracts/theirstack/execution-policy.ts
4341
+ // ../../shared_libs/integrations/theirstack-execution-policy.ts
4342
4342
  var THEIRSTACK_SLOW_JOB_SEARCH_PROVIDER_TIMEOUT_MS = 135e3;
4343
4343
  var THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS = 6e4 + THEIRSTACK_SLOW_JOB_SEARCH_PROVIDER_TIMEOUT_MS + 15e3;
4344
4344
  var THEIRSTACK_COMPANY_SEARCH_CLIENT_TIMEOUT_MS = 21e4;
@@ -4392,7 +4392,7 @@ function resolveTheirstackClientTimeoutMs(endpointId, payload) {
4392
4392
  return usesExtendedTheirstackJobSearchBudget(endpointId, payload) ? THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS : null;
4393
4393
  }
4394
4394
 
4395
- // ../integration-contracts/bettercontact/execution-policy.ts
4395
+ // ../../shared_libs/integrations/bettercontact-execution-policy.ts
4396
4396
  var BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS = 12e4;
4397
4397
  var BETTERCONTACT_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
4398
4398
  "bettercontact_enrich",
@@ -17070,7 +17070,7 @@ function resolveDaytonaSandboxComputeItem(input2) {
17070
17070
  };
17071
17071
  }
17072
17072
 
17073
- // ../billing/compute-pricing-contract.ts
17073
+ // ../../shared_libs/billing/compute-pricing.ts
17074
17074
  var COMPUTE_BILLING_MARKUP_MULTIPLIER = 5;
17075
17075
  var DEFAULT_USD_PER_CUSTOMER_CREDIT = 0.1;
17076
17076
  var DEFAULT_PROVIDER_MARKUP_MULTIPLIER = 1.4;
@@ -38489,8 +38489,6 @@ var SDK_SIDECAR_CRITICAL_PACKAGE_FILES = [
38489
38489
  "dist/index.d.ts",
38490
38490
  "dist/plays/bundle-play-file.mjs",
38491
38491
  "dist/bundling-sources/shared_libs/observability/telemetry.ts",
38492
- "dist/bundling-sources/shared_libs/integration-contracts/bettercontact/execution-policy.ts",
38493
- "dist/bundling-sources/shared_libs/integration-contracts/theirstack/execution-policy.ts",
38494
38492
  "dist/bundling-sources/shared_libs/play-runtime/backend.ts",
38495
38493
  "dist/bundling-sources/shared_libs/plays/bundling/index.ts",
38496
38494
  "dist/bundling-sources/shared_libs/product-notifications/contract.ts",
package/dist/index.d.mts CHANGED
@@ -1922,7 +1922,7 @@ declare function defineMonitor<TPayload extends MonitorPayload = MonitorPayload>
1922
1922
  /**
1923
1923
  * The fleet member ceiling, mirrored — deliberately a literal.
1924
1924
  *
1925
- * The canonical declaration is packages/monitors/monitor-fleet-limits.ts,
1925
+ * The canonical declaration is shared_libs/monitors/monitor-fleet-limits.ts,
1926
1926
  * which the Convex commit mutation reads to size its transaction. This package
1927
1927
  * cannot import it: the workspace-architecture ratchet forbids NEW shared_libs
1928
1928
  * imports from packages absolutely (only relocations of pre-existing edges
package/dist/index.d.ts CHANGED
@@ -1922,7 +1922,7 @@ declare function defineMonitor<TPayload extends MonitorPayload = MonitorPayload>
1922
1922
  /**
1923
1923
  * The fleet member ceiling, mirrored — deliberately a literal.
1924
1924
  *
1925
- * The canonical declaration is packages/monitors/monitor-fleet-limits.ts,
1925
+ * The canonical declaration is shared_libs/monitors/monitor-fleet-limits.ts,
1926
1926
  * which the Convex commit mutation reads to size its transaction. This package
1927
1927
  * cannot import it: the workspace-architecture ratchet forbids NEW shared_libs
1928
1928
  * imports from packages absolutely (only relocations of pre-existing edges
package/dist/index.js CHANGED
@@ -832,7 +832,7 @@ var SDK_RELEASE = {
832
832
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
833
833
  // getters keep their established compatibility behavior.
834
834
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
835
- version: "0.3.87",
835
+ version: "0.3.88",
836
836
  updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
837
837
  packageCapabilities: {
838
838
  updatePreferences: 1
@@ -3826,7 +3826,7 @@ async function* observeRunEvents(options) {
3826
3826
  }
3827
3827
  }
3828
3828
 
3829
- // ../integration-contracts/theirstack/execution-policy.ts
3829
+ // ../../shared_libs/integrations/theirstack-execution-policy.ts
3830
3830
  var THEIRSTACK_SLOW_JOB_SEARCH_PROVIDER_TIMEOUT_MS = 135e3;
3831
3831
  var THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS = 6e4 + THEIRSTACK_SLOW_JOB_SEARCH_PROVIDER_TIMEOUT_MS + 15e3;
3832
3832
  var THEIRSTACK_COMPANY_SEARCH_CLIENT_TIMEOUT_MS = 21e4;
@@ -3880,7 +3880,7 @@ function resolveTheirstackClientTimeoutMs(endpointId, payload) {
3880
3880
  return usesExtendedTheirstackJobSearchBudget(endpointId, payload) ? THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS : null;
3881
3881
  }
3882
3882
 
3883
- // ../integration-contracts/bettercontact/execution-policy.ts
3883
+ // ../../shared_libs/integrations/bettercontact-execution-policy.ts
3884
3884
  var BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS = 12e4;
3885
3885
  var BETTERCONTACT_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
3886
3886
  "bettercontact_enrich",
package/dist/index.mjs CHANGED
@@ -744,7 +744,7 @@ var SDK_RELEASE = {
744
744
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
745
745
  // getters keep their established compatibility behavior.
746
746
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
747
- version: "0.3.87",
747
+ version: "0.3.88",
748
748
  updateSummary: "Automatic CLI updates are now enabled by default. To opt out, run `deepline settings autoupdate off`; use `deepline settings autoupdate on` to re-enable updates or `deepline settings autoupdate pin <version>` to hold an exact release. This release also adds raw-v2 tool responses at toolResponse.rawV2 while preserving existing toolResponse.raw and declared getters.",
749
749
  packageCapabilities: {
750
750
  updatePreferences: 1
@@ -3738,7 +3738,7 @@ async function* observeRunEvents(options) {
3738
3738
  }
3739
3739
  }
3740
3740
 
3741
- // ../integration-contracts/theirstack/execution-policy.ts
3741
+ // ../../shared_libs/integrations/theirstack-execution-policy.ts
3742
3742
  var THEIRSTACK_SLOW_JOB_SEARCH_PROVIDER_TIMEOUT_MS = 135e3;
3743
3743
  var THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS = 6e4 + THEIRSTACK_SLOW_JOB_SEARCH_PROVIDER_TIMEOUT_MS + 15e3;
3744
3744
  var THEIRSTACK_COMPANY_SEARCH_CLIENT_TIMEOUT_MS = 21e4;
@@ -3792,7 +3792,7 @@ function resolveTheirstackClientTimeoutMs(endpointId, payload) {
3792
3792
  return usesExtendedTheirstackJobSearchBudget(endpointId, payload) ? THEIRSTACK_SLOW_JOB_SEARCH_CLIENT_TIMEOUT_MS : null;
3793
3793
  }
3794
3794
 
3795
- // ../integration-contracts/bettercontact/execution-policy.ts
3795
+ // ../../shared_libs/integrations/bettercontact-execution-policy.ts
3796
3796
  var BETTERCONTACT_LAUNCHER_CLIENT_TIMEOUT_MS = 12e4;
3797
3797
  var BETTERCONTACT_LAUNCHER_TOOL_IDS = /* @__PURE__ */ new Set([
3798
3798
  "bettercontact_enrich",