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.
- package/dist/bundling-sources/sdk/src/client.ts +2 -2
- package/dist/bundling-sources/sdk/src/monitor-fleet-contract.ts +1 -1
- package/dist/bundling-sources/sdk/src/plays/bundle-play-file.ts +1 -1
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/shared_libs/monitors/org-monitor-limits.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-env.ts +0 -6
- package/dist/bundling-sources/shared_libs/play-runtime/tool-http-errors.ts +1 -1
- package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +0 -302
- package/dist/bundling-sources/shared_libs/plays/email-status.ts +1 -1
- package/dist/bundling-sources/shared_libs/plays/tool-category-descriptions.ts +2 -2
- package/dist/bundling-sources/shared_libs/runtime-env.ts +0 -6
- package/dist/cli/index.js +4 -6
- package/dist/cli/index.mjs +4 -6
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/index.mjs +3 -3
- package/dist/install-integrity.json +2 -45
- package/package.json +1 -3
- package/dist/bundling-sources/shared_libs/integration-contracts/AGENTS.md +0 -9
- package/dist/bundling-sources/shared_libs/integration-contracts/README.md +0 -3
- package/dist/bundling-sources/shared_libs/integration-contracts/index.ts +0 -2
- package/dist/bundling-sources/shared_libs/monitors/analytics-install-guides.ts +0 -77
- package/dist/bundling-sources/shared_libs/monitors/billing/charges.ts +0 -125
- package/dist/bundling-sources/shared_libs/monitors/billing/policy-builders.ts +0 -686
- package/dist/bundling-sources/shared_libs/monitors/billing/pricing.ts +0 -54
- package/dist/bundling-sources/shared_libs/monitors/billing/public-pricing.ts +0 -72
- package/dist/bundling-sources/shared_libs/monitors/billing/session.ts +0 -45
- package/dist/bundling-sources/shared_libs/monitors/billing/state.ts +0 -454
- package/dist/bundling-sources/shared_libs/monitors/billing/tamradar.ts +0 -260
- package/dist/bundling-sources/shared_libs/monitors/billing/types.ts +0 -215
- package/dist/bundling-sources/shared_libs/monitors/callback-security.ts +0 -333
- package/dist/bundling-sources/shared_libs/monitors/cursor-page.ts +0 -42
- package/dist/bundling-sources/shared_libs/monitors/framework-managed-payload-fields.ts +0 -71
- package/dist/bundling-sources/shared_libs/monitors/generated/provider-monitor-callback-admission-targets.ts +0 -16
- package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +0 -267
- package/dist/bundling-sources/shared_libs/monitors/inbound-publish-key.ts +0 -39
- package/dist/bundling-sources/shared_libs/monitors/inbound-queue.ts +0 -82
- package/dist/bundling-sources/shared_libs/monitors/lifecycle-notifications.ts +0 -473
- package/dist/bundling-sources/shared_libs/monitors/package.json +0 -29
- package/dist/bundling-sources/shared_libs/monitors/provider-callback-verification.ts +0 -1125
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-capability.ts +0 -964
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-consumer-health.ts +0 -56
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-errors.ts +0 -131
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-identity-claims.ts +0 -527
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-legacy-aliases.ts +0 -16
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-priority-execution.ts +0 -56
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-public-aliases.ts +0 -28
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-runtime-read-eligibility.ts +0 -38
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-status.ts +0 -10
- package/dist/bundling-sources/shared_libs/monitors/provider-monitor-upstream-identity.ts +0 -112
- package/dist/bundling-sources/shared_libs/monitors/provider-webhook-monitor-runtime.ts +0 -300
- package/dist/bundling-sources/shared_libs/monitors/quickstart-prompts.ts +0 -22
- package/dist/bundling-sources/shared_libs/monitors/snitcher-install-validation.ts +0 -93
- package/dist/bundling-sources/shared_libs/monitors/snitcher-ip2company.ts +0 -332
- package/dist/bundling-sources/shared_libs/monitors/snitcher-radar.ts +0 -221
- package/dist/bundling-sources/shared_libs/monitors/starter-templates.ts +0 -105
- package/dist/bundling-sources/shared_libs/monitors/tracking-provider-guidance.ts +0 -73
- package/dist/bundling-sources/shared_libs/monitors/tracking-provider-integrations.ts +0 -81
- package/dist/bundling-sources/shared_libs/monitors/tsconfig.json +0 -10
- package/dist/bundling-sources/shared_libs/security/header-safe-env.ts +0 -28
- package/dist/bundling-sources/shared_libs/security/secret-redaction.ts +0 -267
- /package/dist/bundling-sources/shared_libs/{integration-contracts/bettercontact/execution-policy.ts → integrations/bettercontact-execution-policy.ts} +0 -0
- /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/
|
|
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/
|
|
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
|
|
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 `
|
|
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.
|
|
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 '
|
|
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
|
-
*
|
|
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
|
-
* `
|
|
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
|
|
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 `
|
|
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 (
|
|
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.
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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",
|
package/dist/cli/index.mjs
CHANGED
|
@@ -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.
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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.
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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",
|