deepline 0.3.407 → 0.3.409
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 +8 -1
- package/dist/bundling-sources/sdk/src/play.ts +13 -0
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/sdk/src/types.ts +23 -0
- package/dist/bundling-sources/shared_libs/play-runtime/admission-timings.ts +64 -0
- package/dist/bundling-sources/shared_libs/play-runtime/context.ts +11 -1
- package/dist/bundling-sources/shared_libs/play-runtime/modal-runtime-config.ts +1 -4
- package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +2 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/local-process.ts +15 -6
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +188 -45
- package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts +22 -4
- package/dist/bundling-sources/shared_libs/play-runtime/tool-http-errors.ts +10 -4
- package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +72 -0
- package/dist/bundling-sources/shared_libs/play-runtime/webhook-receipt-source-commit-retry.ts +90 -0
- package/dist/bundling-sources/shared_libs/play-runtime/worker-api-types.ts +5 -0
- package/dist/bundling-sources/shared_libs/plays/tool-result-types.ts +6 -0
- package/dist/cli/{auth-WURWNNLE.mjs → auth-5HIIACF7.mjs} +4 -4
- package/dist/cli/auth-F6BX32XZ.js +40 -0
- package/dist/cli/{billing-2QJGXGJX.js → billing-4275N7FL.js} +92 -85
- package/dist/cli/{billing-BP3E6WIM.mjs → billing-EVZ3ZWKC.mjs} +23 -16
- package/dist/cli/{chunk-WXLOW623.mjs → chunk-264PC2RN.mjs} +14 -7
- package/dist/cli/{chunk-RMZAOYDN.js → chunk-2GI3QD3L.js} +53 -53
- package/dist/cli/{chunk-ZBCTXQ3P.mjs → chunk-2PRO2JTX.mjs} +1 -1
- package/dist/cli/{chunk-GAMFK2ZP.mjs → chunk-44ZTYHMQ.mjs} +10 -3
- package/dist/cli/{chunk-G4LJS2RE.js → chunk-53HN7WZN.js} +8 -8
- package/dist/cli/{chunk-URWF7NGQ.js → chunk-5MLCBXXU.js} +36 -15
- package/dist/cli/{chunk-XT6GG3QO.mjs → chunk-7AALNGTA.mjs} +3 -3
- package/dist/cli/{chunk-WJYPBHTE.js → chunk-ALD4COBH.js} +11 -4
- package/dist/cli/{chunk-RZLXVHNO.js → chunk-AU4OFDFX.js} +26 -26
- package/dist/cli/{chunk-N6OAMAO5.mjs → chunk-BEVLCKXG.mjs} +1 -1
- package/dist/cli/{chunk-7LKYHZVB.js → chunk-DEC3JECC.js} +1 -1
- package/dist/cli/{chunk-UFFSOV6I.mjs → chunk-FHPCKULR.mjs} +2 -2
- package/dist/cli/{chunk-THHM4DPE.js → chunk-FJCIUF34.js} +4 -4
- package/dist/cli/{chunk-H6EWQFPQ.js → chunk-GAICVLKL.js} +2 -2
- package/dist/cli/{chunk-4TV43THC.mjs → chunk-IT3XBJQR.mjs} +4 -4
- package/dist/cli/{chunk-UFS752TU.mjs → chunk-J6DCKJNM.mjs} +5 -1
- package/dist/cli/{chunk-AYHLUHE5.js → chunk-JGHG4NBA.js} +6 -2
- package/dist/cli/{chunk-BKC6VMYZ.mjs → chunk-JRAVVJ3T.mjs} +73 -4
- package/dist/cli/{chunk-ZI2ZNDJK.mjs → chunk-LFSHGNT2.mjs} +36 -15
- package/dist/cli/{chunk-L25GBGQU.mjs → chunk-N44JHMKY.mjs} +6 -6
- package/dist/cli/{chunk-QJAX7QN7.mjs → chunk-NZSF57UO.mjs} +2 -2
- package/dist/cli/{chunk-IY6GKJ4O.js → chunk-O3VSXP2F.js} +50 -50
- package/dist/cli/{chunk-J67NU4MQ.mjs → chunk-PBZYY7VZ.mjs} +5 -2
- package/dist/cli/{chunk-G6U74WNM.js → chunk-RTCDW2GU.js} +15 -15
- package/dist/cli/{chunk-UPEOEYZ3.mjs → chunk-TQNHMWUR.mjs} +1 -1
- package/dist/cli/{chunk-KUQAU5MG.js → chunk-V76R6HMV.js} +10 -7
- package/dist/cli/{chunk-6JZZNP5G.mjs → chunk-VWBTTJYQ.mjs} +2 -2
- package/dist/cli/{chunk-SOQIPKF2.js → chunk-WHG43Z67.js} +8 -8
- package/dist/cli/{chunk-Y6CX4QPR.js → chunk-WLOCMJWV.js} +67 -67
- package/dist/cli/{chunk-QJBJZVG6.js → chunk-WNUR6VP5.js} +15 -8
- package/dist/cli/{chunk-P7HOTKOK.mjs → chunk-WYQO2CBS.mjs} +4 -4
- package/dist/cli/{chunk-D2ZRMZKF.js → chunk-YD7B53RW.js} +99 -30
- package/dist/cli/command-docs.js +2 -2
- package/dist/cli/command-docs.mjs +1 -1
- package/dist/cli/{csv-N6KYTG7L.mjs → csv-A2MP6EFV.mjs} +3 -3
- package/dist/cli/{csv-7E5BE23B.js → csv-BBOTCGQY.js} +12 -12
- package/dist/cli/{db-XMBJNVBD.mjs → db-3W5DMTUX.mjs} +4 -4
- package/dist/cli/{db-4VLZP33O.js → db-G4CODDCA.js} +25 -25
- package/dist/cli/{describe-4I6EIVXD.js → describe-PQTQ5B6F.js} +11 -11
- package/dist/cli/{describe-WERH4TD2.mjs → describe-XYJ2ZT4M.mjs} +7 -7
- package/dist/cli/describe-core.d.mts +2 -2
- package/dist/cli/describe-core.d.ts +2 -2
- package/dist/cli/{executions-W7TWJRBK.js → executions-TLANVR7Y.js} +6 -6
- package/dist/cli/{executions-JWQXE7G6.mjs → executions-UR67CA5H.mjs} +4 -4
- package/dist/cli/{feedback-FMGRC6KO.js → feedback-6C2YTRJL.js} +7 -7
- package/dist/cli/{feedback-OEJFX4F7.mjs → feedback-WHCMGEIL.mjs} +3 -3
- package/dist/cli/{git-IVC4KHXX.mjs → git-GWLB6VSA.mjs} +4 -4
- package/dist/cli/git-VQFF6D7C.js +24 -0
- package/dist/cli/index.js +204 -127
- package/dist/cli/index.mjs +124 -47
- package/dist/cli/{legacy-noops-LT36CLWZ.mjs → legacy-noops-KF4XIFEF.mjs} +4 -4
- package/dist/cli/{legacy-noops-X3BQ7MUK.js → legacy-noops-ZUFA7RWI.js} +7 -7
- package/dist/cli/{monitors-MNLCELF7.mjs → monitors-6UOIDIMB.mjs} +4 -4
- package/dist/cli/{monitors-DLIIAVLW.js → monitors-TB3K2IVE.js} +84 -84
- package/dist/cli/{org-CYHDEW7P.js → org-CKWMBPIR.js} +64 -64
- package/dist/cli/{org-QV5LMUPT.mjs → org-WGHHMVDZ.mjs} +4 -4
- package/dist/cli/{play-5Z4ROZ3P.mjs → play-LYPAXCLD.mjs} +70 -18
- package/dist/cli/{play-MEFXC2QA.js → play-N2B3KAVS.js} +345 -293
- package/dist/cli/{providers-FJLYSHB3.mjs → providers-6DI5BVZJ.mjs} +4 -4
- package/dist/cli/{providers-2MKUNFBQ.js → providers-UR42MD6Z.js} +7 -7
- package/dist/cli/{quickstart-ULWXKAOT.js → quickstart-FCJG4XGB.js} +5 -5
- package/dist/cli/{quickstart-PQO3OQRT.mjs → quickstart-MNA2S6PO.mjs} +3 -3
- package/dist/cli/search-NCEEONMQ.js +30 -0
- package/dist/cli/{search-KGAAXMDG.mjs → search-VPPYUJ2M.mjs} +5 -5
- package/dist/cli/{secrets-PD5I3KAF.mjs → secrets-DRI4W7Z5.mjs} +4 -4
- package/dist/cli/{secrets-X2VGG2PO.js → secrets-QOSMVO36.js} +13 -13
- package/dist/cli/{sessions-R3XAKTBQ.js → sessions-3WYKQABW.js} +5 -5
- package/dist/cli/{sessions-3WVEU4PE.mjs → sessions-DQNUKP43.mjs} +4 -4
- package/dist/cli/{settings-645RSFQX.mjs → settings-DWDK3Y2R.mjs} +8 -8
- package/dist/cli/{settings-ZIDO3IP6.js → settings-JUGGCOPS.js} +75 -75
- package/dist/cli/{setup-LH5HOZ3D.js → setup-AWBHNYXK.js} +42 -42
- package/dist/cli/{setup-LISKIJKP.mjs → setup-D5DWVNY4.mjs} +7 -7
- package/dist/cli/skills-AKPAJVSO.js +29 -0
- package/dist/cli/{skills-VVQJHLSF.mjs → skills-YV2XR35J.mjs} +5 -5
- package/dist/cli/{tools-FTPJCNAM.js → tools-RBKEK6PM.js} +8 -8
- package/dist/cli/{tools-Y3LOMXFT.mjs → tools-VFJYHNV2.mjs} +7 -7
- package/dist/cli/{update-DOBNQNJI.mjs → update-IM6VOTGL.mjs} +7 -7
- package/dist/cli/update-VFNUBLDA.js +29 -0
- package/dist/cli/{workflow-ZMAA5VCN.mjs → workflow-26URBWPV.mjs} +5 -5
- package/dist/cli/{workflow-LGENKZBV.js → workflow-3BS6U6SL.js} +15 -15
- package/dist/{client-IrPHUE5J.d.ts → client-BMjJFpan.d.ts} +28 -2
- package/dist/{client-6rEB46Lv.d.mts → client-BfInrZPB.d.mts} +28 -2
- package/dist/{compiler-manifest-BHnXE43X.d.ts → compiler-manifest-Ycx-hoAr.d.mts} +2 -0
- package/dist/{compiler-manifest-BHnXE43X.d.mts → compiler-manifest-Ycx-hoAr.d.ts} +2 -0
- package/dist/{index-Da_Y8z5e.d.mts → index-CZXgiN3E.d.mts} +1 -1
- package/dist/{index-SODb2ROS.d.ts → index-NPG5pqxQ.d.ts} +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +26 -9
- package/dist/index.mjs +23 -6
- package/dist/install-integrity.json +86 -84
- package/dist/plays/bundle-play-file.d.mts +3 -3
- package/dist/plays/bundle-play-file.d.ts +3 -3
- package/dist/plays/play-description.d.mts +2 -2
- package/dist/plays/play-description.d.ts +2 -2
- package/dist/plays/run-request.d.mts +2 -2
- package/dist/plays/run-request.d.ts +2 -2
- package/dist/release.d.mts +1 -1
- package/dist/release.d.ts +1 -1
- package/dist/release.js +2 -2
- package/dist/release.mjs +1 -1
- package/package.json +1 -1
- package/dist/cli/auth-4JTX6AGM.js +0 -40
- package/dist/cli/git-OFXE7G4X.js +0 -24
- package/dist/cli/search-ANKSJ224.js +0 -30
- package/dist/cli/skills-WLHYSVQA.js +0 -29
- package/dist/cli/update-A622H2DZ.js +0 -29
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retries only the idempotent Play webhook source transaction under known
|
|
3
|
+
* Convex OCC or availability failures. Keep application errors loud: this
|
|
4
|
+
* operation creates the durable delivery identity and delayed recovery work
|
|
5
|
+
* atomically, so callers may replay only this narrow boundary.
|
|
6
|
+
*/
|
|
7
|
+
const MAX_RETRIES = 5;
|
|
8
|
+
const RETRY_BASE_MS = 25;
|
|
9
|
+
const RETRY_MAX_MS = 400;
|
|
10
|
+
|
|
11
|
+
function errorChainText(error: unknown): string {
|
|
12
|
+
const parts: string[] = [];
|
|
13
|
+
let current = error;
|
|
14
|
+
for (let depth = 0; depth < 4 && current instanceof Error; depth += 1) {
|
|
15
|
+
parts.push(`${current.name}: ${current.message}`);
|
|
16
|
+
current = current.cause;
|
|
17
|
+
}
|
|
18
|
+
return parts.join('\n');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function retryClass(error: unknown): 'occ' | 'service_unavailable' | null {
|
|
22
|
+
const message = errorChainText(error);
|
|
23
|
+
if (
|
|
24
|
+
/OptimisticConcurrencyControlFailure|write conflict|changed while this mutation was being run/i.test(
|
|
25
|
+
message,
|
|
26
|
+
)
|
|
27
|
+
) {
|
|
28
|
+
return 'occ';
|
|
29
|
+
}
|
|
30
|
+
// Keep this narrow to Convex transport/outage/admission responses. A source
|
|
31
|
+
// commit is replay-safe, but an arbitrary application failure must stay loud.
|
|
32
|
+
if (
|
|
33
|
+
/TypeError:\s*fetch failed|ServiceUnavailable|Service temporarily unavailable|temporarily unavailable \(Code:\s*\d+\)|"code"\s*:\s*"(?:ExpiredInQueue|TooManyConcurrentRequests)"|"code"\s*:\s*"InternalServerError"[\s\S]*(?:Your request couldn't be completed\. Try again later\.|Your request timed out performing too many system operations\.)/i.test(
|
|
34
|
+
message,
|
|
35
|
+
)
|
|
36
|
+
) {
|
|
37
|
+
return 'service_unavailable';
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function retryDelayMs(attempt: number): number {
|
|
43
|
+
const ceiling = Math.min(RETRY_MAX_MS, RETRY_BASE_MS * 2 ** attempt);
|
|
44
|
+
return Math.floor(Math.random() * (ceiling + 1));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** Replay the exact receipt mutation, not a broader provider or admission call. */
|
|
48
|
+
export async function retryPlayWebhookReceiptSourceCommit<T>(
|
|
49
|
+
operation: () => Promise<T>,
|
|
50
|
+
): Promise<T> {
|
|
51
|
+
const startedAt = Date.now();
|
|
52
|
+
let totalDelayMs = 0;
|
|
53
|
+
let failureClass: 'occ' | 'service_unavailable' | null = null;
|
|
54
|
+
for (let attempt = 0; ; attempt += 1) {
|
|
55
|
+
try {
|
|
56
|
+
const result = await operation();
|
|
57
|
+
if (attempt > 0) {
|
|
58
|
+
console.info('[play.webhook_delivery.source_commit_retry_outcome]', {
|
|
59
|
+
attemptsTotal: attempt + 1,
|
|
60
|
+
retriesTotal: attempt,
|
|
61
|
+
retryClass: failureClass,
|
|
62
|
+
recovered: true,
|
|
63
|
+
exhausted: false,
|
|
64
|
+
totalDelayMs,
|
|
65
|
+
totalElapsedMs: Date.now() - startedAt,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
} catch (error) {
|
|
70
|
+
failureClass = retryClass(error);
|
|
71
|
+
if (failureClass === null || attempt >= MAX_RETRIES) {
|
|
72
|
+
if (failureClass !== null) {
|
|
73
|
+
console.warn('[play.webhook_delivery.source_commit_retry_outcome]', {
|
|
74
|
+
attemptsTotal: attempt + 1,
|
|
75
|
+
retriesTotal: attempt,
|
|
76
|
+
retryClass: failureClass,
|
|
77
|
+
recovered: false,
|
|
78
|
+
exhausted: attempt >= MAX_RETRIES,
|
|
79
|
+
totalDelayMs,
|
|
80
|
+
totalElapsedMs: Date.now() - startedAt,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
const delayMs = retryDelayMs(attempt);
|
|
86
|
+
totalDelayMs += delayMs;
|
|
87
|
+
await new Promise<void>((resolve) => setTimeout(resolve, delayMs));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -64,6 +64,11 @@ export const MODAL_SANDBOX_COMPUTE_PRICING_USD = {
|
|
|
64
64
|
memoryGiBSecond: 0.00000667,
|
|
65
65
|
} as const;
|
|
66
66
|
|
|
67
|
+
// Modal bills one physical core as two vCPUs. This matches Deepline's standard
|
|
68
|
+
// one-vCPU / one-GiB sandbox and stays beside the pure pricing contract so
|
|
69
|
+
// Convex billing can use it without importing Modal's Node runtime config.
|
|
70
|
+
export const MODAL_SANDBOX_CPU_CORES = 0.5;
|
|
71
|
+
|
|
67
72
|
const NEON_COMPUTE_PRICING_USD = {
|
|
68
73
|
cuHour: 0.106,
|
|
69
74
|
defaultCu: 1,
|
|
@@ -94,6 +94,8 @@ export type ToolResultMetadata = {
|
|
|
94
94
|
lists: Record<string, ToolResultListMetadata>;
|
|
95
95
|
/** Original declarations preserve semantic accessor names across replay. */
|
|
96
96
|
listExtractorPaths?: readonly string[];
|
|
97
|
+
/** Additional semantic names for another declared list; original names win. */
|
|
98
|
+
listExtractorAliases?: Readonly<Record<string, string>>;
|
|
97
99
|
extractors?: Record<string, ToolResultExtractorDescriptor>;
|
|
98
100
|
};
|
|
99
101
|
|
|
@@ -164,6 +166,8 @@ export type ToolResultMetadataInput = {
|
|
|
164
166
|
extractors?: Record<string, ToolResultExtractorDescriptor>;
|
|
165
167
|
targetGetters?: Record<string, readonly string[]>;
|
|
166
168
|
listExtractorPaths?: readonly string[];
|
|
169
|
+
/** Additional semantic names for another declared list; original names win. */
|
|
170
|
+
listExtractorAliases?: Readonly<Record<string, string>>;
|
|
167
171
|
listIdentityGetters?: Record<string, readonly string[]>;
|
|
168
172
|
};
|
|
169
173
|
|
|
@@ -269,6 +273,8 @@ export type ToolExecuteResultBase<
|
|
|
269
273
|
>;
|
|
270
274
|
/** Original declarations preserve semantic accessor names across replay. */
|
|
271
275
|
listExtractorPaths?: readonly string[];
|
|
276
|
+
/** Additional semantic names for another declared list; original names win. */
|
|
277
|
+
listExtractorAliases?: Readonly<Record<string, string>>;
|
|
272
278
|
};
|
|
273
279
|
};
|
|
274
280
|
|
|
@@ -13,13 +13,13 @@ import {
|
|
|
13
13
|
reportSetupCompleted,
|
|
14
14
|
resolvePendingAuthClaimForResume,
|
|
15
15
|
statusBannerLine
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-FHPCKULR.mjs";
|
|
17
|
+
import "./chunk-JRAVVJ3T.mjs";
|
|
18
|
+
import "./chunk-2PRO2JTX.mjs";
|
|
19
19
|
import "./chunk-YHPYUZZX.mjs";
|
|
20
20
|
import "./chunk-DLIRSHV6.mjs";
|
|
21
21
|
import "./chunk-NXGCO4JB.mjs";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-TQNHMWUR.mjs";
|
|
23
23
|
import "./chunk-WZYKRD7T.mjs";
|
|
24
24
|
import "./chunk-KRD6H754.mjs";
|
|
25
25
|
export {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
var _chunkO3VSXP2Fjs = require('./chunk-O3VSXP2F.js');
|
|
17
|
+
require('./chunk-YD7B53RW.js');
|
|
18
|
+
require('./chunk-FJCIUF34.js');
|
|
19
|
+
require('./chunk-Q2E4E4FJ.js');
|
|
20
|
+
require('./chunk-XNYIZMNQ.js');
|
|
21
|
+
require('./chunk-7P5AA3SN.js');
|
|
22
|
+
require('./chunk-DEC3JECC.js');
|
|
23
|
+
require('./chunk-OG64RBAC.js');
|
|
24
|
+
require('./chunk-COGTRVWW.js');
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
exports.EXIT_WORKSPACE_MISMATCH = _chunkO3VSXP2Fjs.EXIT_WORKSPACE_MISMATCH; exports.authStatusLine = _chunkO3VSXP2Fjs.authStatusLine; exports.clearPendingClaim = _chunkO3VSXP2Fjs.clearPendingClaim; exports.clearSatisfiedPendingClaim = _chunkO3VSXP2Fjs.clearSatisfiedPendingClaim; exports.handleRegister = _chunkO3VSXP2Fjs.handleRegister; exports.handleStatus = _chunkO3VSXP2Fjs.handleStatus; exports.handleWait = _chunkO3VSXP2Fjs.handleWait; exports.httpJson = _chunkO3VSXP2Fjs.httpJson; exports.readPendingAuthClaim = _chunkO3VSXP2Fjs.readPendingAuthClaim; exports.readStatusBanner = _chunkO3VSXP2Fjs.readStatusBanner; exports.registerAuthCommands = _chunkO3VSXP2Fjs.registerAuthCommands; exports.reportSetupCompleted = _chunkO3VSXP2Fjs.reportSetupCompleted; exports.resolvePendingAuthClaimForResume = _chunkO3VSXP2Fjs.resolvePendingAuthClaimForResume; exports.statusBannerLine = _chunkO3VSXP2Fjs.statusBannerLine;
|