deepline 0.1.250 → 0.1.252
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/release.ts +5 -2
- package/dist/bundling-sources/shared_libs/play-runtime/context.ts +90 -8
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +15 -0
- package/dist/cli/index.js +32 -29
- package/dist/cli/index.mjs +32 -29
- package/dist/index.js +5 -2
- package/dist/index.mjs +5 -2
- package/package.json +2 -2
|
@@ -113,8 +113,11 @@ export const SDK_RELEASE = {
|
|
|
113
113
|
// runtime intentionally no longer compiles at publish or launch time.
|
|
114
114
|
// 0.1.242 removes the retired Workers/ESM compiler, generated bundles, and
|
|
115
115
|
// deploy-time artifact migration. Play authoring now has one CJS contract.
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
// 0.1.252 hard-cuts the customer Monitor catalog to the two launched
|
|
117
|
+
// Deepline-native radars. Older clients must update before discovering,
|
|
118
|
+
// checking, or deploying an unlaunched monitor integration.
|
|
119
|
+
version: '0.1.252',
|
|
120
|
+
apiContract: '2026-07-native-monitor-launch-hard-cutover',
|
|
118
121
|
supportPolicy: {
|
|
119
122
|
minimumSupported: '0.1.53',
|
|
120
123
|
deprecatedBelow: '0.1.219',
|
|
@@ -1542,13 +1542,17 @@ export class PlayContextImpl {
|
|
|
1542
1542
|
this.#options.workflowId &&
|
|
1543
1543
|
this.#options.runId
|
|
1544
1544
|
) {
|
|
1545
|
-
const
|
|
1546
|
-
|
|
1547
|
-
|
|
1545
|
+
const url = `${this.#options.baseUrl.replace(/\/$/, '')}${PLAY_RUNTIME_API_COMPAT_PATH}`;
|
|
1546
|
+
const requestId = `ctx-secret-${crypto.randomUUID()}`;
|
|
1547
|
+
const startedAt = Date.now();
|
|
1548
|
+
let response: Response;
|
|
1549
|
+
try {
|
|
1550
|
+
response = await fetch(url, {
|
|
1548
1551
|
method: 'POST',
|
|
1549
1552
|
headers: {
|
|
1550
1553
|
Authorization: `Bearer ${this.#options.executorToken}`,
|
|
1551
1554
|
'Content-Type': 'application/json',
|
|
1555
|
+
'x-deepline-request-id': requestId,
|
|
1552
1556
|
...(await this.vercelProtectionHeaders()),
|
|
1553
1557
|
},
|
|
1554
1558
|
body: JSON.stringify({
|
|
@@ -1556,11 +1560,89 @@ export class PlayContextImpl {
|
|
|
1556
1560
|
name: auth.secret.name,
|
|
1557
1561
|
playName: this.#options.playName,
|
|
1558
1562
|
}),
|
|
1559
|
-
}
|
|
1560
|
-
)
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1563
|
+
});
|
|
1564
|
+
} catch (error) {
|
|
1565
|
+
const diagnostic = describeTransportError(error);
|
|
1566
|
+
this.log(
|
|
1567
|
+
`[runtime.secret_resolution_failure] ${JSON.stringify({
|
|
1568
|
+
stage: 'transport',
|
|
1569
|
+
secret_name: auth.secret.name,
|
|
1570
|
+
gateway_origin: transportGatewayOriginForDiagnostic(url),
|
|
1571
|
+
request_id: requestId,
|
|
1572
|
+
elapsed_ms: Date.now() - startedAt,
|
|
1573
|
+
error: diagnostic,
|
|
1574
|
+
})}`,
|
|
1575
|
+
);
|
|
1576
|
+
throw new Error(
|
|
1577
|
+
`Secret ${auth.secret.name} resolution transport failed (request_id=${requestId}): ${diagnostic.message ?? 'unknown transport error'}`,
|
|
1578
|
+
);
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
const responseDiagnostic = {
|
|
1582
|
+
stage: response.ok ? 'invalid_response' : 'http_response',
|
|
1583
|
+
secret_name: auth.secret.name,
|
|
1584
|
+
gateway_origin: transportGatewayOriginForDiagnostic(url),
|
|
1585
|
+
request_id: requestId,
|
|
1586
|
+
elapsed_ms: Date.now() - startedAt,
|
|
1587
|
+
http_status: response.status,
|
|
1588
|
+
status_text: response.statusText || null,
|
|
1589
|
+
content_type: response.headers.get('content-type'),
|
|
1590
|
+
server: response.headers.get('server'),
|
|
1591
|
+
vercel_request_id:
|
|
1592
|
+
response.headers.get('x-vercel-id') ??
|
|
1593
|
+
response.headers.get('x-vercel-request-id'),
|
|
1594
|
+
response_request_id: response.headers.get('x-deepline-request-id'),
|
|
1595
|
+
error_code: response.headers.get('x-deepline-error-code'),
|
|
1596
|
+
retry_after: response.headers.get('retry-after'),
|
|
1597
|
+
};
|
|
1598
|
+
if (!response.ok) {
|
|
1599
|
+
this.log(
|
|
1600
|
+
`[runtime.secret_resolution_failure] ${JSON.stringify(responseDiagnostic)}`,
|
|
1601
|
+
);
|
|
1602
|
+
throw new Error(
|
|
1603
|
+
`Secret ${auth.secret.name} is not available to this run (resolution status=${response.status}, request_id=${requestId}).`,
|
|
1604
|
+
);
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1607
|
+
let payload: unknown;
|
|
1608
|
+
try {
|
|
1609
|
+
payload = await response.json();
|
|
1610
|
+
} catch (error) {
|
|
1611
|
+
this.log(
|
|
1612
|
+
`[runtime.secret_resolution_failure] ${JSON.stringify({
|
|
1613
|
+
...responseDiagnostic,
|
|
1614
|
+
response_kind: 'invalid_json',
|
|
1615
|
+
parse_error_name:
|
|
1616
|
+
error instanceof Error ? error.name : typeof error,
|
|
1617
|
+
})}`,
|
|
1618
|
+
);
|
|
1619
|
+
throw new Error(
|
|
1620
|
+
`Secret ${auth.secret.name} is not available to this run (invalid resolution response, request_id=${requestId}).`,
|
|
1621
|
+
);
|
|
1622
|
+
}
|
|
1623
|
+
|
|
1624
|
+
value =
|
|
1625
|
+
payload &&
|
|
1626
|
+
typeof payload === 'object' &&
|
|
1627
|
+
!Array.isArray(payload) &&
|
|
1628
|
+
typeof (payload as { value?: unknown }).value === 'string'
|
|
1629
|
+
? (payload as { value: string }).value
|
|
1630
|
+
: null;
|
|
1631
|
+
if (!value) {
|
|
1632
|
+
this.log(
|
|
1633
|
+
`[runtime.secret_resolution_failure] ${JSON.stringify({
|
|
1634
|
+
...responseDiagnostic,
|
|
1635
|
+
response_kind:
|
|
1636
|
+
payload === null
|
|
1637
|
+
? 'null'
|
|
1638
|
+
: Array.isArray(payload)
|
|
1639
|
+
? 'array'
|
|
1640
|
+
: typeof payload,
|
|
1641
|
+
})}`,
|
|
1642
|
+
);
|
|
1643
|
+
throw new Error(
|
|
1644
|
+
`Secret ${auth.secret.name} is not available to this run (missing resolution value, request_id=${requestId}).`,
|
|
1645
|
+
);
|
|
1564
1646
|
}
|
|
1565
1647
|
} else {
|
|
1566
1648
|
throw new Error(
|
|
@@ -53,6 +53,13 @@ const RUNTIME_RECEIPT_GATEWAY_TRANSPORT_RETRY_PATTERN =
|
|
|
53
53
|
/AppRuntimeApiTransportError: App runtime API transport exhausted action=(?:get|claim|mark|complete|fail|heartbeat|release|skip)_runtime_step_receipts?/i;
|
|
54
54
|
const RUNTIME_API_TRANSPORT_RETRY_PATTERN =
|
|
55
55
|
/\bRuntime API request to .+ failed before receiving a response:\s*(?:fetch failed|connection (?:terminated|timed out|closed|reset)|ECONNRESET|ETIMEDOUT|ECONNREFUSED)\b/i;
|
|
56
|
+
// The ready fence precedes customer play execution. A failed detached start is
|
|
57
|
+
// safe to retry only when the runner never wrote its ready marker or attempted
|
|
58
|
+
// the start acknowledgement, and Daytona has no exit evidence. This covers a
|
|
59
|
+
// transient Daytona control-plane blind spot where the accepted command cannot
|
|
60
|
+
// be inspected, while keeping post-start and crash failures terminal.
|
|
61
|
+
const RUNTIME_SANDBOX_UNSTARTED_RETRY_PATTERN =
|
|
62
|
+
/DaytonaRunnerInitializationError:\s*RUNTIME_SANDBOX_START_FAILED[\s\S]*Marker diagnosis:\s*ready_marker_unavailable[\s\S]*"readyMarkerObserved"\s*:\s*false[\s\S]*"startAcknowledgementAttempted"\s*:\s*false[\s\S]*"exitCode"\s*:\s*null[\s\S]*"exitCodeFile"\s*:\s*null/i;
|
|
56
63
|
const DAYTONA_INFRASTRUCTURE_RETRY_PATTERN =
|
|
57
64
|
/\b(?:Request failed with status code (?:408|429|500|502|503|504)|ECONNRESET|ECONNREFUSED|ETIMEDOUT|UND_ERR_CONNECT_TIMEOUT|fetch failed|socket hang up|Daytona sandbox create failed across|Daytona sandbox create did not complete)\b/i;
|
|
58
65
|
|
|
@@ -446,6 +453,7 @@ export function retryableRuntimeInitializationFailureReason(
|
|
|
446
453
|
| 'runtime_postgres_connect'
|
|
447
454
|
| 'runtime_api_transport'
|
|
448
455
|
| 'runtime_receipt_gateway_transport'
|
|
456
|
+
| 'runtime_sandbox_unstarted'
|
|
449
457
|
| null {
|
|
450
458
|
if (result.status !== 'failed') return null;
|
|
451
459
|
if (RUNTIME_POSTGRES_CONNECT_RETRY_PATTERN.test(result.error)) {
|
|
@@ -455,6 +463,13 @@ export function retryableRuntimeInitializationFailureReason(
|
|
|
455
463
|
return 'runtime_receipt_gateway_transport';
|
|
456
464
|
}
|
|
457
465
|
const rowsProcessed = Number(result.stats?.rowsProcessed ?? 0);
|
|
466
|
+
if (
|
|
467
|
+
rowsProcessed === 0 &&
|
|
468
|
+
result.steps.length === 0 &&
|
|
469
|
+
RUNTIME_SANDBOX_UNSTARTED_RETRY_PATTERN.test(result.error)
|
|
470
|
+
) {
|
|
471
|
+
return 'runtime_sandbox_unstarted';
|
|
472
|
+
}
|
|
458
473
|
if (
|
|
459
474
|
rowsProcessed === 0 &&
|
|
460
475
|
result.steps.length === 0 &&
|
package/dist/cli/index.js
CHANGED
|
@@ -632,8 +632,11 @@ var SDK_RELEASE = {
|
|
|
632
632
|
// runtime intentionally no longer compiles at publish or launch time.
|
|
633
633
|
// 0.1.242 removes the retired Workers/ESM compiler, generated bundles, and
|
|
634
634
|
// deploy-time artifact migration. Play authoring now has one CJS contract.
|
|
635
|
-
|
|
636
|
-
|
|
635
|
+
// 0.1.252 hard-cuts the customer Monitor catalog to the two launched
|
|
636
|
+
// Deepline-native radars. Older clients must update before discovering,
|
|
637
|
+
// checking, or deploying an unlaunched monitor integration.
|
|
638
|
+
version: "0.1.252",
|
|
639
|
+
apiContract: "2026-07-native-monitor-launch-hard-cutover",
|
|
637
640
|
supportPolicy: {
|
|
638
641
|
minimumSupported: "0.1.53",
|
|
639
642
|
deprecatedBelow: "0.1.219",
|
|
@@ -9216,8 +9219,8 @@ var PLAY_BOOTSTRAP_STAGE_NAMES = [
|
|
|
9216
9219
|
"phone"
|
|
9217
9220
|
];
|
|
9218
9221
|
var MONITOR_BOOTSTRAP_TEMPLATE = "monitor-triggered";
|
|
9219
|
-
var MONITOR_BOOTSTRAP_DEFAULT_TOOL = "
|
|
9220
|
-
var MONITOR_BOOTSTRAP_DEFAULT_STREAM = "
|
|
9222
|
+
var MONITOR_BOOTSTRAP_DEFAULT_TOOL = "deepline_native.company_radar";
|
|
9223
|
+
var MONITOR_BOOTSTRAP_DEFAULT_STREAM = "company_job_openings";
|
|
9221
9224
|
function isMonitorBootstrapTemplate(value) {
|
|
9222
9225
|
return value === MONITOR_BOOTSTRAP_TEMPLATE;
|
|
9223
9226
|
}
|
|
@@ -10644,8 +10647,8 @@ Notes:
|
|
|
10644
10647
|
(definePlay with sqlListeners; no --from/stage flags)
|
|
10645
10648
|
|
|
10646
10649
|
Monitor-triggered options (only for the monitor-triggered template):
|
|
10647
|
-
--tool <monitor-tool-id> monitor tool to bind (default
|
|
10648
|
-
--stream <stream-key> output stream to listen on (default
|
|
10650
|
+
--tool <monitor-tool-id> monitor tool to bind (default deepline_native.company_radar)
|
|
10651
|
+
--stream <stream-key> output stream to listen on (default company_job_openings)
|
|
10649
10652
|
Discover a tool's streams/columns with: deepline monitors available <id>
|
|
10650
10653
|
|
|
10651
10654
|
Resource refs:
|
|
@@ -10697,10 +10700,10 @@ Examples:
|
|
|
10697
10700
|
"Phone finder stage: play:REF, provider:ID, or providers:ID,ID"
|
|
10698
10701
|
).option("--limit <n>", "Maximum rows to fan out in the generated play").option(
|
|
10699
10702
|
"--tool <id>",
|
|
10700
|
-
"monitor-triggered only: monitor tool id to bind (e.g.
|
|
10703
|
+
"monitor-triggered only: monitor tool id to bind (e.g. deepline_native.company_radar)"
|
|
10701
10704
|
).option(
|
|
10702
10705
|
"--stream <key>",
|
|
10703
|
-
"monitor-triggered only: monitor output stream to listen on (e.g.
|
|
10706
|
+
"monitor-triggered only: monitor output stream to listen on (e.g. company_job_openings)"
|
|
10704
10707
|
).option("--out <path>", "Write generated play source to a file").action(async (template, options) => {
|
|
10705
10708
|
process.exitCode = await handlePlayBootstrap([
|
|
10706
10709
|
template,
|
|
@@ -24223,7 +24226,7 @@ function resolveMonitorJsonBody(input2) {
|
|
|
24223
24226
|
}
|
|
24224
24227
|
throw new MonitorsUsageError(
|
|
24225
24228
|
`${input2.command} needs ${input2.argLabel} (a JSON object). Pass it positionally:
|
|
24226
|
-
${input2.command} '{"key":"
|
|
24229
|
+
${input2.command} '{"key":"job-openings","tool":"deepline_native.company_radar","payload":{"domain":"stripe.com","radar_type":"company_job_openings"}}'
|
|
24227
24230
|
or from a file / stdin:
|
|
24228
24231
|
${input2.command} --file monitor.json
|
|
24229
24232
|
cat monitor.json | ${input2.command} --file -`
|
|
@@ -24450,7 +24453,7 @@ function renderAvailableToolsText(payload) {
|
|
|
24450
24453
|
const returned = asFiniteNumber(payload.returned) ?? tools.length;
|
|
24451
24454
|
const total = asFiniteNumber(payload.total);
|
|
24452
24455
|
const lines = [
|
|
24453
|
-
total !== void 0 ? `
|
|
24456
|
+
total !== void 0 ? `Monitor types you can deploy (${returned} of ${total}):` : "Monitor types you can deploy:"
|
|
24454
24457
|
];
|
|
24455
24458
|
let currentProvider;
|
|
24456
24459
|
for (const raw of tools) {
|
|
@@ -24485,7 +24488,7 @@ function renderAvailableToolsText(payload) {
|
|
|
24485
24488
|
" See monitors already deployed in this workspace:",
|
|
24486
24489
|
" deepline monitors list",
|
|
24487
24490
|
" Validate a monitor definition before deploying:",
|
|
24488
|
-
` deepline monitors check '{"key":"my-
|
|
24491
|
+
` deepline monitors check '{"key":"my-monitor","tool":"<provider.tool>","payload":{...}}'`
|
|
24489
24492
|
);
|
|
24490
24493
|
return `${lines.join("\n")}
|
|
24491
24494
|
`;
|
|
@@ -24768,9 +24771,11 @@ function registerMonitorsCommands(program) {
|
|
|
24768
24771
|
"after",
|
|
24769
24772
|
`
|
|
24770
24773
|
Notes:
|
|
24771
|
-
Deepline monitors are
|
|
24772
|
-
|
|
24774
|
+
Deepline monitors are Deepline-native signal feeds: a monitor writes events
|
|
24775
|
+
into a Customer DB table; a play reacts to each new row via a
|
|
24773
24776
|
sqlListeners trigger \u2014 see \`deepline plays bootstrap monitor-triggered\`.
|
|
24777
|
+
The customer launch currently includes Company Radar and Contact Radar; use
|
|
24778
|
+
\`deepline monitors available\` for the exact live tool ids.
|
|
24774
24779
|
Access is granted by a Deepline admin via Admin -> Rollouts; until then these
|
|
24775
24780
|
commands return a clear monitor_access_required error.
|
|
24776
24781
|
|
|
@@ -24783,13 +24788,13 @@ Examples:
|
|
|
24783
24788
|
deepline monitors status --json
|
|
24784
24789
|
deepline monitors available --json # compact list by default
|
|
24785
24790
|
deepline monitors available --full --json # complete catalog
|
|
24786
|
-
deepline monitors available
|
|
24787
|
-
deepline monitors check '{"key":"
|
|
24791
|
+
deepline monitors available deepline_native.company_radar --json
|
|
24792
|
+
deepline monitors check '{"key":"job-openings","tool":"deepline_native.company_radar","payload":{"domain":"stripe.com","radar_type":"company_job_openings"}}'
|
|
24788
24793
|
deepline monitors deploy --dry-run --file monitor.json
|
|
24789
24794
|
deepline monitors deploy --file monitor.json
|
|
24790
24795
|
deepline monitors list --status all --json
|
|
24791
24796
|
deepline monitors get my-monitor --json
|
|
24792
|
-
deepline monitors update my-monitor '{"
|
|
24797
|
+
deepline monitors update my-monitor '{"name":"Interested replies"}' --json
|
|
24793
24798
|
deepline monitors delete my-monitor --dry-run
|
|
24794
24799
|
deepline monitors reactivate my-monitor --dry-run
|
|
24795
24800
|
`
|
|
@@ -24828,8 +24833,8 @@ Notes:
|
|
|
24828
24833
|
Examples:
|
|
24829
24834
|
deepline monitors available
|
|
24830
24835
|
deepline monitors available --full --json
|
|
24831
|
-
deepline monitors available --provider
|
|
24832
|
-
deepline monitors available
|
|
24836
|
+
deepline monitors available --provider deepline_native --json
|
|
24837
|
+
deepline monitors available deepline_native.company_radar --json
|
|
24833
24838
|
deepline monitors available --search jobs --json
|
|
24834
24839
|
`
|
|
24835
24840
|
).option("--provider <provider>", "Filter by provider").option(
|
|
@@ -24879,12 +24884,12 @@ Examples:
|
|
|
24879
24884
|
`
|
|
24880
24885
|
Notes:
|
|
24881
24886
|
Read-only validation. <definition> is a JSON object with key, tool, payload,
|
|
24882
|
-
and optional controls (Deepline lifecycle metadata,
|
|
24883
|
-
|
|
24887
|
+
and optional controls (Deepline lifecycle metadata). Pass it positionally,
|
|
24888
|
+
via --file <path>, or
|
|
24884
24889
|
from stdin with --file -. Does not deploy or spend credits.
|
|
24885
24890
|
|
|
24886
24891
|
Examples:
|
|
24887
|
-
deepline monitors check '{"key":"
|
|
24892
|
+
deepline monitors check '{"key":"job-openings","tool":"deepline_native.company_radar","payload":{"domain":"stripe.com","radar_type":"company_job_openings"}}'
|
|
24888
24893
|
deepline monitors check --file monitor.json
|
|
24889
24894
|
cat monitor.json | deepline monitors check --file -
|
|
24890
24895
|
`
|
|
@@ -24899,15 +24904,14 @@ Examples:
|
|
|
24899
24904
|
`
|
|
24900
24905
|
Notes:
|
|
24901
24906
|
Mutates workspace state and may spend Deepline credits. <definition> is a JSON
|
|
24902
|
-
object with key, tool, payload, and optional controls
|
|
24903
|
-
|
|
24904
|
-
from stdin with --file -.
|
|
24907
|
+
object with key, tool, payload, and optional controls. Pass it positionally,
|
|
24908
|
+
via --file <path>, or from stdin with --file -.
|
|
24905
24909
|
--dry-run validates the definition and shows the plan (deploy cost in Deepline
|
|
24906
24910
|
credits when the server reports it, plus any existing monitors that may
|
|
24907
24911
|
already cover this scope) WITHOUT deploying. Exits 0 when valid, 7 when not.
|
|
24908
24912
|
|
|
24909
24913
|
Examples:
|
|
24910
|
-
deepline monitors deploy '{"key":"
|
|
24914
|
+
deepline monitors deploy '{"key":"job-openings","tool":"deepline_native.company_radar","payload":{"domain":"stripe.com","radar_type":"company_job_openings"}}'
|
|
24911
24915
|
deepline monitors deploy --dry-run --file monitor.json
|
|
24912
24916
|
deepline monitors deploy --file monitor.json
|
|
24913
24917
|
`
|
|
@@ -24924,12 +24928,11 @@ Examples:
|
|
|
24924
24928
|
"after",
|
|
24925
24929
|
`
|
|
24926
24930
|
Notes:
|
|
24927
|
-
Mutates workspace state. <patch> is a JSON object of fields to update
|
|
24928
|
-
|
|
24929
|
-
via --file <path>, or from stdin with --file -.
|
|
24931
|
+
Mutates workspace state. <patch> is a JSON object of fields to update. Pass it
|
|
24932
|
+
positionally, via --file <path>, or from stdin with --file -.
|
|
24930
24933
|
|
|
24931
24934
|
Examples:
|
|
24932
|
-
deepline monitors update my-monitor '{"
|
|
24935
|
+
deepline monitors update my-monitor '{"name":"Interested replies"}' --json
|
|
24933
24936
|
deepline monitors update my-monitor --file patch.json
|
|
24934
24937
|
`
|
|
24935
24938
|
).option(
|
package/dist/cli/index.mjs
CHANGED
|
@@ -617,8 +617,11 @@ var SDK_RELEASE = {
|
|
|
617
617
|
// runtime intentionally no longer compiles at publish or launch time.
|
|
618
618
|
// 0.1.242 removes the retired Workers/ESM compiler, generated bundles, and
|
|
619
619
|
// deploy-time artifact migration. Play authoring now has one CJS contract.
|
|
620
|
-
|
|
621
|
-
|
|
620
|
+
// 0.1.252 hard-cuts the customer Monitor catalog to the two launched
|
|
621
|
+
// Deepline-native radars. Older clients must update before discovering,
|
|
622
|
+
// checking, or deploying an unlaunched monitor integration.
|
|
623
|
+
version: "0.1.252",
|
|
624
|
+
apiContract: "2026-07-native-monitor-launch-hard-cutover",
|
|
622
625
|
supportPolicy: {
|
|
623
626
|
minimumSupported: "0.1.53",
|
|
624
627
|
deprecatedBelow: "0.1.219",
|
|
@@ -9245,8 +9248,8 @@ var PLAY_BOOTSTRAP_STAGE_NAMES = [
|
|
|
9245
9248
|
"phone"
|
|
9246
9249
|
];
|
|
9247
9250
|
var MONITOR_BOOTSTRAP_TEMPLATE = "monitor-triggered";
|
|
9248
|
-
var MONITOR_BOOTSTRAP_DEFAULT_TOOL = "
|
|
9249
|
-
var MONITOR_BOOTSTRAP_DEFAULT_STREAM = "
|
|
9251
|
+
var MONITOR_BOOTSTRAP_DEFAULT_TOOL = "deepline_native.company_radar";
|
|
9252
|
+
var MONITOR_BOOTSTRAP_DEFAULT_STREAM = "company_job_openings";
|
|
9250
9253
|
function isMonitorBootstrapTemplate(value) {
|
|
9251
9254
|
return value === MONITOR_BOOTSTRAP_TEMPLATE;
|
|
9252
9255
|
}
|
|
@@ -10673,8 +10676,8 @@ Notes:
|
|
|
10673
10676
|
(definePlay with sqlListeners; no --from/stage flags)
|
|
10674
10677
|
|
|
10675
10678
|
Monitor-triggered options (only for the monitor-triggered template):
|
|
10676
|
-
--tool <monitor-tool-id> monitor tool to bind (default
|
|
10677
|
-
--stream <stream-key> output stream to listen on (default
|
|
10679
|
+
--tool <monitor-tool-id> monitor tool to bind (default deepline_native.company_radar)
|
|
10680
|
+
--stream <stream-key> output stream to listen on (default company_job_openings)
|
|
10678
10681
|
Discover a tool's streams/columns with: deepline monitors available <id>
|
|
10679
10682
|
|
|
10680
10683
|
Resource refs:
|
|
@@ -10726,10 +10729,10 @@ Examples:
|
|
|
10726
10729
|
"Phone finder stage: play:REF, provider:ID, or providers:ID,ID"
|
|
10727
10730
|
).option("--limit <n>", "Maximum rows to fan out in the generated play").option(
|
|
10728
10731
|
"--tool <id>",
|
|
10729
|
-
"monitor-triggered only: monitor tool id to bind (e.g.
|
|
10732
|
+
"monitor-triggered only: monitor tool id to bind (e.g. deepline_native.company_radar)"
|
|
10730
10733
|
).option(
|
|
10731
10734
|
"--stream <key>",
|
|
10732
|
-
"monitor-triggered only: monitor output stream to listen on (e.g.
|
|
10735
|
+
"monitor-triggered only: monitor output stream to listen on (e.g. company_job_openings)"
|
|
10733
10736
|
).option("--out <path>", "Write generated play source to a file").action(async (template, options) => {
|
|
10734
10737
|
process.exitCode = await handlePlayBootstrap([
|
|
10735
10738
|
template,
|
|
@@ -24259,7 +24262,7 @@ function resolveMonitorJsonBody(input2) {
|
|
|
24259
24262
|
}
|
|
24260
24263
|
throw new MonitorsUsageError(
|
|
24261
24264
|
`${input2.command} needs ${input2.argLabel} (a JSON object). Pass it positionally:
|
|
24262
|
-
${input2.command} '{"key":"
|
|
24265
|
+
${input2.command} '{"key":"job-openings","tool":"deepline_native.company_radar","payload":{"domain":"stripe.com","radar_type":"company_job_openings"}}'
|
|
24263
24266
|
or from a file / stdin:
|
|
24264
24267
|
${input2.command} --file monitor.json
|
|
24265
24268
|
cat monitor.json | ${input2.command} --file -`
|
|
@@ -24486,7 +24489,7 @@ function renderAvailableToolsText(payload) {
|
|
|
24486
24489
|
const returned = asFiniteNumber(payload.returned) ?? tools.length;
|
|
24487
24490
|
const total = asFiniteNumber(payload.total);
|
|
24488
24491
|
const lines = [
|
|
24489
|
-
total !== void 0 ? `
|
|
24492
|
+
total !== void 0 ? `Monitor types you can deploy (${returned} of ${total}):` : "Monitor types you can deploy:"
|
|
24490
24493
|
];
|
|
24491
24494
|
let currentProvider;
|
|
24492
24495
|
for (const raw of tools) {
|
|
@@ -24521,7 +24524,7 @@ function renderAvailableToolsText(payload) {
|
|
|
24521
24524
|
" See monitors already deployed in this workspace:",
|
|
24522
24525
|
" deepline monitors list",
|
|
24523
24526
|
" Validate a monitor definition before deploying:",
|
|
24524
|
-
` deepline monitors check '{"key":"my-
|
|
24527
|
+
` deepline monitors check '{"key":"my-monitor","tool":"<provider.tool>","payload":{...}}'`
|
|
24525
24528
|
);
|
|
24526
24529
|
return `${lines.join("\n")}
|
|
24527
24530
|
`;
|
|
@@ -24804,9 +24807,11 @@ function registerMonitorsCommands(program) {
|
|
|
24804
24807
|
"after",
|
|
24805
24808
|
`
|
|
24806
24809
|
Notes:
|
|
24807
|
-
Deepline monitors are
|
|
24808
|
-
|
|
24810
|
+
Deepline monitors are Deepline-native signal feeds: a monitor writes events
|
|
24811
|
+
into a Customer DB table; a play reacts to each new row via a
|
|
24809
24812
|
sqlListeners trigger \u2014 see \`deepline plays bootstrap monitor-triggered\`.
|
|
24813
|
+
The customer launch currently includes Company Radar and Contact Radar; use
|
|
24814
|
+
\`deepline monitors available\` for the exact live tool ids.
|
|
24810
24815
|
Access is granted by a Deepline admin via Admin -> Rollouts; until then these
|
|
24811
24816
|
commands return a clear monitor_access_required error.
|
|
24812
24817
|
|
|
@@ -24819,13 +24824,13 @@ Examples:
|
|
|
24819
24824
|
deepline monitors status --json
|
|
24820
24825
|
deepline monitors available --json # compact list by default
|
|
24821
24826
|
deepline monitors available --full --json # complete catalog
|
|
24822
|
-
deepline monitors available
|
|
24823
|
-
deepline monitors check '{"key":"
|
|
24827
|
+
deepline monitors available deepline_native.company_radar --json
|
|
24828
|
+
deepline monitors check '{"key":"job-openings","tool":"deepline_native.company_radar","payload":{"domain":"stripe.com","radar_type":"company_job_openings"}}'
|
|
24824
24829
|
deepline monitors deploy --dry-run --file monitor.json
|
|
24825
24830
|
deepline monitors deploy --file monitor.json
|
|
24826
24831
|
deepline monitors list --status all --json
|
|
24827
24832
|
deepline monitors get my-monitor --json
|
|
24828
|
-
deepline monitors update my-monitor '{"
|
|
24833
|
+
deepline monitors update my-monitor '{"name":"Interested replies"}' --json
|
|
24829
24834
|
deepline monitors delete my-monitor --dry-run
|
|
24830
24835
|
deepline monitors reactivate my-monitor --dry-run
|
|
24831
24836
|
`
|
|
@@ -24864,8 +24869,8 @@ Notes:
|
|
|
24864
24869
|
Examples:
|
|
24865
24870
|
deepline monitors available
|
|
24866
24871
|
deepline monitors available --full --json
|
|
24867
|
-
deepline monitors available --provider
|
|
24868
|
-
deepline monitors available
|
|
24872
|
+
deepline monitors available --provider deepline_native --json
|
|
24873
|
+
deepline monitors available deepline_native.company_radar --json
|
|
24869
24874
|
deepline monitors available --search jobs --json
|
|
24870
24875
|
`
|
|
24871
24876
|
).option("--provider <provider>", "Filter by provider").option(
|
|
@@ -24915,12 +24920,12 @@ Examples:
|
|
|
24915
24920
|
`
|
|
24916
24921
|
Notes:
|
|
24917
24922
|
Read-only validation. <definition> is a JSON object with key, tool, payload,
|
|
24918
|
-
and optional controls (Deepline lifecycle metadata,
|
|
24919
|
-
|
|
24923
|
+
and optional controls (Deepline lifecycle metadata). Pass it positionally,
|
|
24924
|
+
via --file <path>, or
|
|
24920
24925
|
from stdin with --file -. Does not deploy or spend credits.
|
|
24921
24926
|
|
|
24922
24927
|
Examples:
|
|
24923
|
-
deepline monitors check '{"key":"
|
|
24928
|
+
deepline monitors check '{"key":"job-openings","tool":"deepline_native.company_radar","payload":{"domain":"stripe.com","radar_type":"company_job_openings"}}'
|
|
24924
24929
|
deepline monitors check --file monitor.json
|
|
24925
24930
|
cat monitor.json | deepline monitors check --file -
|
|
24926
24931
|
`
|
|
@@ -24935,15 +24940,14 @@ Examples:
|
|
|
24935
24940
|
`
|
|
24936
24941
|
Notes:
|
|
24937
24942
|
Mutates workspace state and may spend Deepline credits. <definition> is a JSON
|
|
24938
|
-
object with key, tool, payload, and optional controls
|
|
24939
|
-
|
|
24940
|
-
from stdin with --file -.
|
|
24943
|
+
object with key, tool, payload, and optional controls. Pass it positionally,
|
|
24944
|
+
via --file <path>, or from stdin with --file -.
|
|
24941
24945
|
--dry-run validates the definition and shows the plan (deploy cost in Deepline
|
|
24942
24946
|
credits when the server reports it, plus any existing monitors that may
|
|
24943
24947
|
already cover this scope) WITHOUT deploying. Exits 0 when valid, 7 when not.
|
|
24944
24948
|
|
|
24945
24949
|
Examples:
|
|
24946
|
-
deepline monitors deploy '{"key":"
|
|
24950
|
+
deepline monitors deploy '{"key":"job-openings","tool":"deepline_native.company_radar","payload":{"domain":"stripe.com","radar_type":"company_job_openings"}}'
|
|
24947
24951
|
deepline monitors deploy --dry-run --file monitor.json
|
|
24948
24952
|
deepline monitors deploy --file monitor.json
|
|
24949
24953
|
`
|
|
@@ -24960,12 +24964,11 @@ Examples:
|
|
|
24960
24964
|
"after",
|
|
24961
24965
|
`
|
|
24962
24966
|
Notes:
|
|
24963
|
-
Mutates workspace state. <patch> is a JSON object of fields to update
|
|
24964
|
-
|
|
24965
|
-
via --file <path>, or from stdin with --file -.
|
|
24967
|
+
Mutates workspace state. <patch> is a JSON object of fields to update. Pass it
|
|
24968
|
+
positionally, via --file <path>, or from stdin with --file -.
|
|
24966
24969
|
|
|
24967
24970
|
Examples:
|
|
24968
|
-
deepline monitors update my-monitor '{"
|
|
24971
|
+
deepline monitors update my-monitor '{"name":"Interested replies"}' --json
|
|
24969
24972
|
deepline monitors update my-monitor --file patch.json
|
|
24970
24973
|
`
|
|
24971
24974
|
).option(
|
package/dist/index.js
CHANGED
|
@@ -431,8 +431,11 @@ var SDK_RELEASE = {
|
|
|
431
431
|
// runtime intentionally no longer compiles at publish or launch time.
|
|
432
432
|
// 0.1.242 removes the retired Workers/ESM compiler, generated bundles, and
|
|
433
433
|
// deploy-time artifact migration. Play authoring now has one CJS contract.
|
|
434
|
-
|
|
435
|
-
|
|
434
|
+
// 0.1.252 hard-cuts the customer Monitor catalog to the two launched
|
|
435
|
+
// Deepline-native radars. Older clients must update before discovering,
|
|
436
|
+
// checking, or deploying an unlaunched monitor integration.
|
|
437
|
+
version: "0.1.252",
|
|
438
|
+
apiContract: "2026-07-native-monitor-launch-hard-cutover",
|
|
436
439
|
supportPolicy: {
|
|
437
440
|
minimumSupported: "0.1.53",
|
|
438
441
|
deprecatedBelow: "0.1.219",
|
package/dist/index.mjs
CHANGED
|
@@ -361,8 +361,11 @@ var SDK_RELEASE = {
|
|
|
361
361
|
// runtime intentionally no longer compiles at publish or launch time.
|
|
362
362
|
// 0.1.242 removes the retired Workers/ESM compiler, generated bundles, and
|
|
363
363
|
// deploy-time artifact migration. Play authoring now has one CJS contract.
|
|
364
|
-
|
|
365
|
-
|
|
364
|
+
// 0.1.252 hard-cuts the customer Monitor catalog to the two launched
|
|
365
|
+
// Deepline-native radars. Older clients must update before discovering,
|
|
366
|
+
// checking, or deploying an unlaunched monitor integration.
|
|
367
|
+
version: "0.1.252",
|
|
368
|
+
apiContract: "2026-07-native-monitor-launch-hard-cutover",
|
|
366
369
|
supportPolicy: {
|
|
367
370
|
minimumSupported: "0.1.53",
|
|
368
371
|
deprecatedBelow: "0.1.219",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deepline",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.252",
|
|
4
4
|
"description": "Deepline SDK + CLI — B2B data enrichment powered by durable cloud execution",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -62,6 +62,6 @@
|
|
|
62
62
|
"typescript": "^5.9.3"
|
|
63
63
|
},
|
|
64
64
|
"deepline": {
|
|
65
|
-
"apiContract": "2026-07-
|
|
65
|
+
"apiContract": "2026-07-native-monitor-launch-hard-cutover"
|
|
66
66
|
}
|
|
67
67
|
}
|