deepline 0.3.26 → 0.3.28
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 +12 -3
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/sdk/src/types.ts +26 -0
- package/dist/bundling-sources/shared_libs/play-runtime/db-session-plan.ts +2 -2
- package/dist/cli/index.js +36 -7
- package/dist/cli/index.mjs +36 -7
- package/dist/index.d.mts +25 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +6 -4
- package/dist/index.mjs +6 -4
- package/package.json +1 -1
|
@@ -1958,6 +1958,10 @@ export class DeeplineClient {
|
|
|
1958
1958
|
currentPublishedVersion:
|
|
1959
1959
|
play.currentPublishedVersion ?? play.liveRevision?.version ?? null,
|
|
1960
1960
|
latestRunId: play.latestRunId ?? detail.latestRuns[0]?.workflowId ?? null,
|
|
1961
|
+
...(play.runtimeLimit ? { runtimeLimit: play.runtimeLimit } : {}),
|
|
1962
|
+
...(play.activeScheduledPlays
|
|
1963
|
+
? { activeScheduledPlays: play.activeScheduledPlays }
|
|
1964
|
+
: {}),
|
|
1961
1965
|
};
|
|
1962
1966
|
}
|
|
1963
1967
|
|
|
@@ -4145,12 +4149,17 @@ export class DeeplineClient {
|
|
|
4145
4149
|
*/
|
|
4146
4150
|
async getPlay(
|
|
4147
4151
|
name: string,
|
|
4148
|
-
options?: {
|
|
4152
|
+
options?: {
|
|
4153
|
+
source?: 'working' | 'live' | `version:${number}`;
|
|
4154
|
+
guidance?: boolean;
|
|
4155
|
+
},
|
|
4149
4156
|
): Promise<PlayDetail> {
|
|
4150
4157
|
const encodedName = encodeURIComponent(name);
|
|
4151
4158
|
const query = options?.source
|
|
4152
4159
|
? `?include=source&revision=${encodeURIComponent(options.source)}`
|
|
4153
|
-
:
|
|
4160
|
+
: options?.guidance
|
|
4161
|
+
? '?include=guidance'
|
|
4162
|
+
: '';
|
|
4154
4163
|
return this.http.get<PlayDetail>(`/api/v2/plays/${encodedName}${query}`);
|
|
4155
4164
|
}
|
|
4156
4165
|
|
|
@@ -4164,7 +4173,7 @@ export class DeeplineClient {
|
|
|
4164
4173
|
name: string,
|
|
4165
4174
|
options?: { compact?: boolean },
|
|
4166
4175
|
): Promise<PlayDescription> {
|
|
4167
|
-
const detail = await this.getPlay(name);
|
|
4176
|
+
const detail = await this.getPlay(name, { guidance: true });
|
|
4168
4177
|
return this.summarizePlayDetail(detail, options);
|
|
4169
4178
|
}
|
|
4170
4179
|
|
|
@@ -192,7 +192,7 @@ export const SDK_RELEASE = {
|
|
|
192
192
|
// 0.3.0 introduces raw-v2: complete scrubbed provider responses are
|
|
193
193
|
// available at toolResponse.rawV2 while toolResponse.raw and all declared
|
|
194
194
|
// getters keep their established compatibility behavior.
|
|
195
|
-
version: '0.3.
|
|
195
|
+
version: '0.3.28',
|
|
196
196
|
updateSummary:
|
|
197
197
|
'New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.',
|
|
198
198
|
contracts: {
|
|
@@ -970,6 +970,24 @@ export interface PlayRevisionSummary {
|
|
|
970
970
|
isWorking?: boolean;
|
|
971
971
|
}
|
|
972
972
|
|
|
973
|
+
/** Effective runtime limits stored with the selected immutable Play revision. */
|
|
974
|
+
export interface PlayRuntimeLimit {
|
|
975
|
+
timeoutSeconds: number;
|
|
976
|
+
memoryGiB: number;
|
|
977
|
+
cpu: number;
|
|
978
|
+
diskGiB: number;
|
|
979
|
+
/** `live` is what named runs execute; `working` is shown only before first publish. */
|
|
980
|
+
source: 'live' | 'working';
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
/** Read-only scheduled-Play capacity guidance for a Play with a cron trigger. */
|
|
984
|
+
export interface PlayScheduledCapacity {
|
|
985
|
+
used: number;
|
|
986
|
+
limit: number;
|
|
987
|
+
remaining: number;
|
|
988
|
+
approachingLimit: boolean;
|
|
989
|
+
}
|
|
990
|
+
|
|
973
991
|
/**
|
|
974
992
|
* Aggregate row-processing stats for a play's sheet.
|
|
975
993
|
*/
|
|
@@ -1069,6 +1087,10 @@ export interface PlayDefinitionDetail {
|
|
|
1069
1087
|
liveRevision?: PlayRevisionSummary | null;
|
|
1070
1088
|
/** `true` if the working revision differs from the live revision. */
|
|
1071
1089
|
isDraftDirty?: boolean;
|
|
1090
|
+
/** Effective sandbox limit from the live revision, or the working draft before first publish. */
|
|
1091
|
+
runtimeLimit?: PlayRuntimeLimit | null;
|
|
1092
|
+
/** Present for a Play with a cron trigger. Advisory only; publish remains authoritative. */
|
|
1093
|
+
activeScheduledPlays?: PlayScheduledCapacity | null;
|
|
1072
1094
|
/** Compatibility field for older readers. */
|
|
1073
1095
|
currentPublishedVersion?: number | null;
|
|
1074
1096
|
}
|
|
@@ -1185,6 +1207,10 @@ export interface PlayDescription {
|
|
|
1185
1207
|
};
|
|
1186
1208
|
isDraftDirty?: boolean;
|
|
1187
1209
|
latestRunId?: string | null;
|
|
1210
|
+
/** Effective sandbox limit from the revision named runs use. */
|
|
1211
|
+
runtimeLimit?: PlayRuntimeLimit | null;
|
|
1212
|
+
/** Present for a Play with a cron trigger. Advisory only; publish remains authoritative. */
|
|
1213
|
+
activeScheduledPlays?: PlayScheduledCapacity | null;
|
|
1188
1214
|
}
|
|
1189
1215
|
|
|
1190
1216
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
getTopLevelPipelineSubsteps,
|
|
3
3
|
type PlaySheetContract,
|
|
4
4
|
type PlayStaticPipeline,
|
|
5
5
|
type PlayStaticSubstep,
|
|
@@ -70,7 +70,7 @@ function datasetSessionContracts(
|
|
|
70
70
|
}
|
|
71
71
|
const rootContract = pipeline.sheetContract ?? null;
|
|
72
72
|
return currentExecutionScopeSubsteps(
|
|
73
|
-
|
|
73
|
+
getTopLevelPipelineSubsteps(pipeline),
|
|
74
74
|
).flatMap<DatasetSessionContract>((substep): DatasetSessionContract[] => {
|
|
75
75
|
if (substep.type !== 'dataset') return [];
|
|
76
76
|
const rawNamespace = (substep.tableNamespace ?? substep.field ?? '').trim();
|
package/dist/cli/index.js
CHANGED
|
@@ -1042,7 +1042,7 @@ var SDK_RELEASE = {
|
|
|
1042
1042
|
// 0.3.0 introduces raw-v2: complete scrubbed provider responses are
|
|
1043
1043
|
// available at toolResponse.rawV2 while toolResponse.raw and all declared
|
|
1044
1044
|
// getters keep their established compatibility behavior.
|
|
1045
|
-
version: "0.3.
|
|
1045
|
+
version: "0.3.28",
|
|
1046
1046
|
updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
|
|
1047
1047
|
contracts: {
|
|
1048
1048
|
api: {
|
|
@@ -4828,7 +4828,9 @@ var DeeplineClient = class {
|
|
|
4828
4828
|
return {
|
|
4829
4829
|
...this.summarizePlayListItem(play, options),
|
|
4830
4830
|
currentPublishedVersion: play.currentPublishedVersion ?? play.liveRevision?.version ?? null,
|
|
4831
|
-
latestRunId: play.latestRunId ?? detail.latestRuns[0]?.workflowId ?? null
|
|
4831
|
+
latestRunId: play.latestRunId ?? detail.latestRuns[0]?.workflowId ?? null,
|
|
4832
|
+
...play.runtimeLimit ? { runtimeLimit: play.runtimeLimit } : {},
|
|
4833
|
+
...play.activeScheduledPlays ? { activeScheduledPlays: play.activeScheduledPlays } : {}
|
|
4832
4834
|
};
|
|
4833
4835
|
}
|
|
4834
4836
|
// ——————————————————————————————————————————————————————————
|
|
@@ -6465,7 +6467,7 @@ var DeeplineClient = class {
|
|
|
6465
6467
|
*/
|
|
6466
6468
|
async getPlay(name, options) {
|
|
6467
6469
|
const encodedName = encodeURIComponent(name);
|
|
6468
|
-
const query = options?.source ? `?include=source&revision=${encodeURIComponent(options.source)}` : "";
|
|
6470
|
+
const query = options?.source ? `?include=source&revision=${encodeURIComponent(options.source)}` : options?.guidance ? "?include=guidance" : "";
|
|
6469
6471
|
return this.http.get(`/api/v2/plays/${encodedName}${query}`);
|
|
6470
6472
|
}
|
|
6471
6473
|
/**
|
|
@@ -6475,7 +6477,7 @@ var DeeplineClient = class {
|
|
|
6475
6477
|
* guidance, revision state, and latest run metadata when available.
|
|
6476
6478
|
*/
|
|
6477
6479
|
async describePlay(name, options) {
|
|
6478
|
-
const detail = await this.getPlay(name);
|
|
6480
|
+
const detail = await this.getPlay(name, { guidance: true });
|
|
6479
6481
|
return this.summarizePlayDetail(detail, options);
|
|
6480
6482
|
}
|
|
6481
6483
|
/**
|
|
@@ -23400,14 +23402,25 @@ function printPlayCheckLimits(limits) {
|
|
|
23400
23402
|
);
|
|
23401
23403
|
}
|
|
23402
23404
|
}
|
|
23405
|
+
function printScheduledPlayCapacity(capacity) {
|
|
23406
|
+
if (!capacity) return;
|
|
23407
|
+
console.log(
|
|
23408
|
+
` scheduled plays: ${capacity.used} / ${capacity.limit} active (${capacity.remaining} available)`
|
|
23409
|
+
);
|
|
23410
|
+
if (capacity.approachingLimit) {
|
|
23411
|
+
console.log(
|
|
23412
|
+
capacity.remaining === 0 ? " warning: publishing a new schedule will be refused; updating this one does not consume another slot" : " warning: this check does not reserve the final slot; publish remains the confirmation"
|
|
23413
|
+
);
|
|
23414
|
+
}
|
|
23415
|
+
}
|
|
23403
23416
|
function formatPlayRuntimeLimit(runtimeLimit) {
|
|
23404
23417
|
if (!runtimeLimit || !Number.isFinite(runtimeLimit.timeoutSeconds)) {
|
|
23405
23418
|
return null;
|
|
23406
23419
|
}
|
|
23407
23420
|
const seconds = runtimeLimit.timeoutSeconds;
|
|
23408
|
-
if (seconds % 3600 === 0) return `${seconds / 3600}
|
|
23409
|
-
if (seconds % 60 === 0) return `${seconds / 60}
|
|
23410
|
-
return `${seconds}
|
|
23421
|
+
if (seconds % 3600 === 0) return `${seconds / 3600} hours`;
|
|
23422
|
+
if (seconds % 60 === 0) return `${seconds / 60} min`;
|
|
23423
|
+
return `${seconds} sec`;
|
|
23411
23424
|
}
|
|
23412
23425
|
function isRecord10(value) {
|
|
23413
23426
|
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
@@ -23670,6 +23683,8 @@ async function handlePlayCheck(args) {
|
|
|
23670
23683
|
inputSchema: play.inputSchema ?? null,
|
|
23671
23684
|
outputSchema: play.outputSchema ?? null,
|
|
23672
23685
|
staticPipeline: play.staticPipeline ?? null,
|
|
23686
|
+
runtimeLimit: play.runtimeLimit ?? null,
|
|
23687
|
+
activeScheduledPlays: play.activeScheduledPlays ?? null,
|
|
23673
23688
|
note: "Named/prebuilt play contract is available. No run was started."
|
|
23674
23689
|
};
|
|
23675
23690
|
if (options.jsonOutput) {
|
|
@@ -23678,6 +23693,13 @@ async function handlePlayCheck(args) {
|
|
|
23678
23693
|
} else {
|
|
23679
23694
|
console.log(`\u2713 ${result.reference} passed named play contract check`);
|
|
23680
23695
|
console.log(" no run started; no Deepline credits spent");
|
|
23696
|
+
const runtimeLimit = formatPlayRuntimeLimit(result.runtimeLimit);
|
|
23697
|
+
if (runtimeLimit) {
|
|
23698
|
+
console.log(
|
|
23699
|
+
` Runtime limit: ${runtimeLimit} (${result.runtimeLimit?.source ?? "live"})`
|
|
23700
|
+
);
|
|
23701
|
+
}
|
|
23702
|
+
printScheduledPlayCapacity(result.activeScheduledPlays);
|
|
23681
23703
|
if (play.runCommand) console.log(` run: ${play.runCommand}`);
|
|
23682
23704
|
}
|
|
23683
23705
|
return 0;
|
|
@@ -25194,6 +25216,13 @@ function printPlayDescription(play) {
|
|
|
25194
25216
|
if (play.triggerStatus?.blockedReason) {
|
|
25195
25217
|
console.log(` Trigger issue: ${play.triggerStatus.blockedReason}`);
|
|
25196
25218
|
}
|
|
25219
|
+
const runtimeLimit = formatPlayRuntimeLimit(play.runtimeLimit);
|
|
25220
|
+
if (runtimeLimit) {
|
|
25221
|
+
console.log(
|
|
25222
|
+
` Runtime limit: ${runtimeLimit} (${play.runtimeLimit?.source ?? "live"})`
|
|
25223
|
+
);
|
|
25224
|
+
}
|
|
25225
|
+
printScheduledPlayCapacity(play.activeScheduledPlays);
|
|
25197
25226
|
console.log(` Describe: deepline plays describe ${reference} --json`);
|
|
25198
25227
|
console.log(` Run: ${play.runCommand}`);
|
|
25199
25228
|
const cloneEditStarter = play.cloneEditStarter ?? buildCloneEditStarter(play);
|
package/dist/cli/index.mjs
CHANGED
|
@@ -1028,7 +1028,7 @@ var SDK_RELEASE = {
|
|
|
1028
1028
|
// 0.3.0 introduces raw-v2: complete scrubbed provider responses are
|
|
1029
1029
|
// available at toolResponse.rawV2 while toolResponse.raw and all declared
|
|
1030
1030
|
// getters keep their established compatibility behavior.
|
|
1031
|
-
version: "0.3.
|
|
1031
|
+
version: "0.3.28",
|
|
1032
1032
|
updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
|
|
1033
1033
|
contracts: {
|
|
1034
1034
|
api: {
|
|
@@ -4814,7 +4814,9 @@ var DeeplineClient = class {
|
|
|
4814
4814
|
return {
|
|
4815
4815
|
...this.summarizePlayListItem(play, options),
|
|
4816
4816
|
currentPublishedVersion: play.currentPublishedVersion ?? play.liveRevision?.version ?? null,
|
|
4817
|
-
latestRunId: play.latestRunId ?? detail.latestRuns[0]?.workflowId ?? null
|
|
4817
|
+
latestRunId: play.latestRunId ?? detail.latestRuns[0]?.workflowId ?? null,
|
|
4818
|
+
...play.runtimeLimit ? { runtimeLimit: play.runtimeLimit } : {},
|
|
4819
|
+
...play.activeScheduledPlays ? { activeScheduledPlays: play.activeScheduledPlays } : {}
|
|
4818
4820
|
};
|
|
4819
4821
|
}
|
|
4820
4822
|
// ——————————————————————————————————————————————————————————
|
|
@@ -6451,7 +6453,7 @@ var DeeplineClient = class {
|
|
|
6451
6453
|
*/
|
|
6452
6454
|
async getPlay(name, options) {
|
|
6453
6455
|
const encodedName = encodeURIComponent(name);
|
|
6454
|
-
const query = options?.source ? `?include=source&revision=${encodeURIComponent(options.source)}` : "";
|
|
6456
|
+
const query = options?.source ? `?include=source&revision=${encodeURIComponent(options.source)}` : options?.guidance ? "?include=guidance" : "";
|
|
6455
6457
|
return this.http.get(`/api/v2/plays/${encodedName}${query}`);
|
|
6456
6458
|
}
|
|
6457
6459
|
/**
|
|
@@ -6461,7 +6463,7 @@ var DeeplineClient = class {
|
|
|
6461
6463
|
* guidance, revision state, and latest run metadata when available.
|
|
6462
6464
|
*/
|
|
6463
6465
|
async describePlay(name, options) {
|
|
6464
|
-
const detail = await this.getPlay(name);
|
|
6466
|
+
const detail = await this.getPlay(name, { guidance: true });
|
|
6465
6467
|
return this.summarizePlayDetail(detail, options);
|
|
6466
6468
|
}
|
|
6467
6469
|
/**
|
|
@@ -23463,14 +23465,25 @@ function printPlayCheckLimits(limits) {
|
|
|
23463
23465
|
);
|
|
23464
23466
|
}
|
|
23465
23467
|
}
|
|
23468
|
+
function printScheduledPlayCapacity(capacity) {
|
|
23469
|
+
if (!capacity) return;
|
|
23470
|
+
console.log(
|
|
23471
|
+
` scheduled plays: ${capacity.used} / ${capacity.limit} active (${capacity.remaining} available)`
|
|
23472
|
+
);
|
|
23473
|
+
if (capacity.approachingLimit) {
|
|
23474
|
+
console.log(
|
|
23475
|
+
capacity.remaining === 0 ? " warning: publishing a new schedule will be refused; updating this one does not consume another slot" : " warning: this check does not reserve the final slot; publish remains the confirmation"
|
|
23476
|
+
);
|
|
23477
|
+
}
|
|
23478
|
+
}
|
|
23466
23479
|
function formatPlayRuntimeLimit(runtimeLimit) {
|
|
23467
23480
|
if (!runtimeLimit || !Number.isFinite(runtimeLimit.timeoutSeconds)) {
|
|
23468
23481
|
return null;
|
|
23469
23482
|
}
|
|
23470
23483
|
const seconds = runtimeLimit.timeoutSeconds;
|
|
23471
|
-
if (seconds % 3600 === 0) return `${seconds / 3600}
|
|
23472
|
-
if (seconds % 60 === 0) return `${seconds / 60}
|
|
23473
|
-
return `${seconds}
|
|
23484
|
+
if (seconds % 3600 === 0) return `${seconds / 3600} hours`;
|
|
23485
|
+
if (seconds % 60 === 0) return `${seconds / 60} min`;
|
|
23486
|
+
return `${seconds} sec`;
|
|
23474
23487
|
}
|
|
23475
23488
|
function isRecord10(value) {
|
|
23476
23489
|
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
@@ -23733,6 +23746,8 @@ async function handlePlayCheck(args) {
|
|
|
23733
23746
|
inputSchema: play.inputSchema ?? null,
|
|
23734
23747
|
outputSchema: play.outputSchema ?? null,
|
|
23735
23748
|
staticPipeline: play.staticPipeline ?? null,
|
|
23749
|
+
runtimeLimit: play.runtimeLimit ?? null,
|
|
23750
|
+
activeScheduledPlays: play.activeScheduledPlays ?? null,
|
|
23736
23751
|
note: "Named/prebuilt play contract is available. No run was started."
|
|
23737
23752
|
};
|
|
23738
23753
|
if (options.jsonOutput) {
|
|
@@ -23741,6 +23756,13 @@ async function handlePlayCheck(args) {
|
|
|
23741
23756
|
} else {
|
|
23742
23757
|
console.log(`\u2713 ${result.reference} passed named play contract check`);
|
|
23743
23758
|
console.log(" no run started; no Deepline credits spent");
|
|
23759
|
+
const runtimeLimit = formatPlayRuntimeLimit(result.runtimeLimit);
|
|
23760
|
+
if (runtimeLimit) {
|
|
23761
|
+
console.log(
|
|
23762
|
+
` Runtime limit: ${runtimeLimit} (${result.runtimeLimit?.source ?? "live"})`
|
|
23763
|
+
);
|
|
23764
|
+
}
|
|
23765
|
+
printScheduledPlayCapacity(result.activeScheduledPlays);
|
|
23744
23766
|
if (play.runCommand) console.log(` run: ${play.runCommand}`);
|
|
23745
23767
|
}
|
|
23746
23768
|
return 0;
|
|
@@ -25257,6 +25279,13 @@ function printPlayDescription(play) {
|
|
|
25257
25279
|
if (play.triggerStatus?.blockedReason) {
|
|
25258
25280
|
console.log(` Trigger issue: ${play.triggerStatus.blockedReason}`);
|
|
25259
25281
|
}
|
|
25282
|
+
const runtimeLimit = formatPlayRuntimeLimit(play.runtimeLimit);
|
|
25283
|
+
if (runtimeLimit) {
|
|
25284
|
+
console.log(
|
|
25285
|
+
` Runtime limit: ${runtimeLimit} (${play.runtimeLimit?.source ?? "live"})`
|
|
25286
|
+
);
|
|
25287
|
+
}
|
|
25288
|
+
printScheduledPlayCapacity(play.activeScheduledPlays);
|
|
25260
25289
|
console.log(` Describe: deepline plays describe ${reference} --json`);
|
|
25261
25290
|
console.log(` Run: ${play.runCommand}`);
|
|
25262
25291
|
const cloneEditStarter = play.cloneEditStarter ?? buildCloneEditStarter(play);
|
package/dist/index.d.mts
CHANGED
|
@@ -1072,6 +1072,22 @@ interface PlayRevisionSummary {
|
|
|
1072
1072
|
/** True when this is the newest saved working revision. */
|
|
1073
1073
|
isWorking?: boolean;
|
|
1074
1074
|
}
|
|
1075
|
+
/** Effective runtime limits stored with the selected immutable Play revision. */
|
|
1076
|
+
interface PlayRuntimeLimit {
|
|
1077
|
+
timeoutSeconds: number;
|
|
1078
|
+
memoryGiB: number;
|
|
1079
|
+
cpu: number;
|
|
1080
|
+
diskGiB: number;
|
|
1081
|
+
/** `live` is what named runs execute; `working` is shown only before first publish. */
|
|
1082
|
+
source: 'live' | 'working';
|
|
1083
|
+
}
|
|
1084
|
+
/** Read-only scheduled-Play capacity guidance for a Play with a cron trigger. */
|
|
1085
|
+
interface PlayScheduledCapacity {
|
|
1086
|
+
used: number;
|
|
1087
|
+
limit: number;
|
|
1088
|
+
remaining: number;
|
|
1089
|
+
approachingLimit: boolean;
|
|
1090
|
+
}
|
|
1075
1091
|
/**
|
|
1076
1092
|
* Aggregate row-processing stats for a play's sheet.
|
|
1077
1093
|
*/
|
|
@@ -1168,6 +1184,10 @@ interface PlayDefinitionDetail {
|
|
|
1168
1184
|
liveRevision?: PlayRevisionSummary | null;
|
|
1169
1185
|
/** `true` if the working revision differs from the live revision. */
|
|
1170
1186
|
isDraftDirty?: boolean;
|
|
1187
|
+
/** Effective sandbox limit from the live revision, or the working draft before first publish. */
|
|
1188
|
+
runtimeLimit?: PlayRuntimeLimit | null;
|
|
1189
|
+
/** Present for a Play with a cron trigger. Advisory only; publish remains authoritative. */
|
|
1190
|
+
activeScheduledPlays?: PlayScheduledCapacity | null;
|
|
1171
1191
|
/** Compatibility field for older readers. */
|
|
1172
1192
|
currentPublishedVersion?: number | null;
|
|
1173
1193
|
}
|
|
@@ -1292,6 +1312,10 @@ interface PlayDescription {
|
|
|
1292
1312
|
};
|
|
1293
1313
|
isDraftDirty?: boolean;
|
|
1294
1314
|
latestRunId?: string | null;
|
|
1315
|
+
/** Effective sandbox limit from the revision named runs use. */
|
|
1316
|
+
runtimeLimit?: PlayRuntimeLimit | null;
|
|
1317
|
+
/** Present for a Play with a cron trigger. Advisory only; publish remains authoritative. */
|
|
1318
|
+
activeScheduledPlays?: PlayScheduledCapacity | null;
|
|
1295
1319
|
}
|
|
1296
1320
|
/**
|
|
1297
1321
|
* Complete play detail including definition, recent runs, and sheet state.
|
|
@@ -3518,6 +3542,7 @@ declare class DeeplineClient {
|
|
|
3518
3542
|
*/
|
|
3519
3543
|
getPlay(name: string, options?: {
|
|
3520
3544
|
source?: 'working' | 'live' | `version:${number}`;
|
|
3545
|
+
guidance?: boolean;
|
|
3521
3546
|
}): Promise<PlayDetail>;
|
|
3522
3547
|
/**
|
|
3523
3548
|
* Get a normalized play description suitable for agents and CLIs.
|
package/dist/index.d.ts
CHANGED
|
@@ -1072,6 +1072,22 @@ interface PlayRevisionSummary {
|
|
|
1072
1072
|
/** True when this is the newest saved working revision. */
|
|
1073
1073
|
isWorking?: boolean;
|
|
1074
1074
|
}
|
|
1075
|
+
/** Effective runtime limits stored with the selected immutable Play revision. */
|
|
1076
|
+
interface PlayRuntimeLimit {
|
|
1077
|
+
timeoutSeconds: number;
|
|
1078
|
+
memoryGiB: number;
|
|
1079
|
+
cpu: number;
|
|
1080
|
+
diskGiB: number;
|
|
1081
|
+
/** `live` is what named runs execute; `working` is shown only before first publish. */
|
|
1082
|
+
source: 'live' | 'working';
|
|
1083
|
+
}
|
|
1084
|
+
/** Read-only scheduled-Play capacity guidance for a Play with a cron trigger. */
|
|
1085
|
+
interface PlayScheduledCapacity {
|
|
1086
|
+
used: number;
|
|
1087
|
+
limit: number;
|
|
1088
|
+
remaining: number;
|
|
1089
|
+
approachingLimit: boolean;
|
|
1090
|
+
}
|
|
1075
1091
|
/**
|
|
1076
1092
|
* Aggregate row-processing stats for a play's sheet.
|
|
1077
1093
|
*/
|
|
@@ -1168,6 +1184,10 @@ interface PlayDefinitionDetail {
|
|
|
1168
1184
|
liveRevision?: PlayRevisionSummary | null;
|
|
1169
1185
|
/** `true` if the working revision differs from the live revision. */
|
|
1170
1186
|
isDraftDirty?: boolean;
|
|
1187
|
+
/** Effective sandbox limit from the live revision, or the working draft before first publish. */
|
|
1188
|
+
runtimeLimit?: PlayRuntimeLimit | null;
|
|
1189
|
+
/** Present for a Play with a cron trigger. Advisory only; publish remains authoritative. */
|
|
1190
|
+
activeScheduledPlays?: PlayScheduledCapacity | null;
|
|
1171
1191
|
/** Compatibility field for older readers. */
|
|
1172
1192
|
currentPublishedVersion?: number | null;
|
|
1173
1193
|
}
|
|
@@ -1292,6 +1312,10 @@ interface PlayDescription {
|
|
|
1292
1312
|
};
|
|
1293
1313
|
isDraftDirty?: boolean;
|
|
1294
1314
|
latestRunId?: string | null;
|
|
1315
|
+
/** Effective sandbox limit from the revision named runs use. */
|
|
1316
|
+
runtimeLimit?: PlayRuntimeLimit | null;
|
|
1317
|
+
/** Present for a Play with a cron trigger. Advisory only; publish remains authoritative. */
|
|
1318
|
+
activeScheduledPlays?: PlayScheduledCapacity | null;
|
|
1295
1319
|
}
|
|
1296
1320
|
/**
|
|
1297
1321
|
* Complete play detail including definition, recent runs, and sheet state.
|
|
@@ -3518,6 +3542,7 @@ declare class DeeplineClient {
|
|
|
3518
3542
|
*/
|
|
3519
3543
|
getPlay(name: string, options?: {
|
|
3520
3544
|
source?: 'working' | 'live' | `version:${number}`;
|
|
3545
|
+
guidance?: boolean;
|
|
3521
3546
|
}): Promise<PlayDetail>;
|
|
3522
3547
|
/**
|
|
3523
3548
|
* Get a normalized play description suitable for agents and CLIs.
|
package/dist/index.js
CHANGED
|
@@ -778,7 +778,7 @@ var SDK_RELEASE = {
|
|
|
778
778
|
// 0.3.0 introduces raw-v2: complete scrubbed provider responses are
|
|
779
779
|
// available at toolResponse.rawV2 while toolResponse.raw and all declared
|
|
780
780
|
// getters keep their established compatibility behavior.
|
|
781
|
-
version: "0.3.
|
|
781
|
+
version: "0.3.28",
|
|
782
782
|
updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
|
|
783
783
|
contracts: {
|
|
784
784
|
api: {
|
|
@@ -4530,7 +4530,9 @@ var DeeplineClient = class {
|
|
|
4530
4530
|
return {
|
|
4531
4531
|
...this.summarizePlayListItem(play, options),
|
|
4532
4532
|
currentPublishedVersion: play.currentPublishedVersion ?? play.liveRevision?.version ?? null,
|
|
4533
|
-
latestRunId: play.latestRunId ?? detail.latestRuns[0]?.workflowId ?? null
|
|
4533
|
+
latestRunId: play.latestRunId ?? detail.latestRuns[0]?.workflowId ?? null,
|
|
4534
|
+
...play.runtimeLimit ? { runtimeLimit: play.runtimeLimit } : {},
|
|
4535
|
+
...play.activeScheduledPlays ? { activeScheduledPlays: play.activeScheduledPlays } : {}
|
|
4534
4536
|
};
|
|
4535
4537
|
}
|
|
4536
4538
|
// ——————————————————————————————————————————————————————————
|
|
@@ -6167,7 +6169,7 @@ var DeeplineClient = class {
|
|
|
6167
6169
|
*/
|
|
6168
6170
|
async getPlay(name, options) {
|
|
6169
6171
|
const encodedName = encodeURIComponent(name);
|
|
6170
|
-
const query = options?.source ? `?include=source&revision=${encodeURIComponent(options.source)}` : "";
|
|
6172
|
+
const query = options?.source ? `?include=source&revision=${encodeURIComponent(options.source)}` : options?.guidance ? "?include=guidance" : "";
|
|
6171
6173
|
return this.http.get(`/api/v2/plays/${encodedName}${query}`);
|
|
6172
6174
|
}
|
|
6173
6175
|
/**
|
|
@@ -6177,7 +6179,7 @@ var DeeplineClient = class {
|
|
|
6177
6179
|
* guidance, revision state, and latest run metadata when available.
|
|
6178
6180
|
*/
|
|
6179
6181
|
async describePlay(name, options) {
|
|
6180
|
-
const detail = await this.getPlay(name);
|
|
6182
|
+
const detail = await this.getPlay(name, { guidance: true });
|
|
6181
6183
|
return this.summarizePlayDetail(detail, options);
|
|
6182
6184
|
}
|
|
6183
6185
|
/**
|
package/dist/index.mjs
CHANGED
|
@@ -701,7 +701,7 @@ var SDK_RELEASE = {
|
|
|
701
701
|
// 0.3.0 introduces raw-v2: complete scrubbed provider responses are
|
|
702
702
|
// available at toolResponse.rawV2 while toolResponse.raw and all declared
|
|
703
703
|
// getters keep their established compatibility behavior.
|
|
704
|
-
version: "0.3.
|
|
704
|
+
version: "0.3.28",
|
|
705
705
|
updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
|
|
706
706
|
contracts: {
|
|
707
707
|
api: {
|
|
@@ -4453,7 +4453,9 @@ var DeeplineClient = class {
|
|
|
4453
4453
|
return {
|
|
4454
4454
|
...this.summarizePlayListItem(play, options),
|
|
4455
4455
|
currentPublishedVersion: play.currentPublishedVersion ?? play.liveRevision?.version ?? null,
|
|
4456
|
-
latestRunId: play.latestRunId ?? detail.latestRuns[0]?.workflowId ?? null
|
|
4456
|
+
latestRunId: play.latestRunId ?? detail.latestRuns[0]?.workflowId ?? null,
|
|
4457
|
+
...play.runtimeLimit ? { runtimeLimit: play.runtimeLimit } : {},
|
|
4458
|
+
...play.activeScheduledPlays ? { activeScheduledPlays: play.activeScheduledPlays } : {}
|
|
4457
4459
|
};
|
|
4458
4460
|
}
|
|
4459
4461
|
// ——————————————————————————————————————————————————————————
|
|
@@ -6090,7 +6092,7 @@ var DeeplineClient = class {
|
|
|
6090
6092
|
*/
|
|
6091
6093
|
async getPlay(name, options) {
|
|
6092
6094
|
const encodedName = encodeURIComponent(name);
|
|
6093
|
-
const query = options?.source ? `?include=source&revision=${encodeURIComponent(options.source)}` : "";
|
|
6095
|
+
const query = options?.source ? `?include=source&revision=${encodeURIComponent(options.source)}` : options?.guidance ? "?include=guidance" : "";
|
|
6094
6096
|
return this.http.get(`/api/v2/plays/${encodedName}${query}`);
|
|
6095
6097
|
}
|
|
6096
6098
|
/**
|
|
@@ -6100,7 +6102,7 @@ var DeeplineClient = class {
|
|
|
6100
6102
|
* guidance, revision state, and latest run metadata when available.
|
|
6101
6103
|
*/
|
|
6102
6104
|
async describePlay(name, options) {
|
|
6103
|
-
const detail = await this.getPlay(name);
|
|
6105
|
+
const detail = await this.getPlay(name, { guidance: true });
|
|
6104
6106
|
return this.summarizePlayDetail(detail, options);
|
|
6105
6107
|
}
|
|
6106
6108
|
/**
|