@promptbook/browser 0.112.0-71 → 0.112.0-72
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/esm/index.es.js +237 -121
- package/esm/index.es.js.map +1 -1
- package/esm/src/book-3.0/Book.d.ts +6 -0
- package/esm/src/book-components/Chat/utils/getToolCallChipletInfo.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/agent/agentRunCliOptions.d.ts +12 -2
- package/esm/src/cli/cli-commands/agent/initializeAgentRunnerCommand.d.ts +1 -0
- package/esm/src/cli/cli-commands/run/prepareRunCommandResources.d.ts +20 -0
- package/esm/src/cli/cli-commands/run/resolveRunInputParameters.d.ts +12 -0
- package/esm/src/cli/cli-commands/run/runCommandAction.d.ts +21 -0
- package/esm/src/cli/cli-commands/run/runPipelineExecution.d.ts +14 -0
- package/esm/src/cli/cli-commands/run.d.ts +1 -1
- package/esm/src/conversion/parsePipeline/applyPipelineHead.d.ts +8 -0
- package/esm/src/conversion/parsePipeline/createInitialPipelineJson.d.ts +8 -0
- package/esm/src/conversion/parsePipeline/createUniqueSectionNameResolver.d.ts +14 -0
- package/esm/src/conversion/parsePipeline/defineParameter.d.ts +8 -0
- package/esm/src/conversion/parsePipeline/extractPipelineDescription.d.ts +6 -0
- package/esm/src/conversion/parsePipeline/finalizeParsedPipeline.d.ts +8 -0
- package/esm/src/conversion/parsePipeline/getPipelineIdentification.d.ts +7 -0
- package/esm/src/conversion/parsePipeline/parsePreparedPipelineSections.d.ts +18 -0
- package/esm/src/conversion/parsePipeline/preparePipelineString.d.ts +8 -0
- package/esm/src/conversion/parsePipeline/processPipelineSection.d.ts +9 -0
- package/esm/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +237 -121
- package/umd/index.umd.js.map +1 -1
- package/umd/src/book-3.0/Book.d.ts +6 -0
- package/umd/src/book-components/Chat/utils/getToolCallChipletInfo.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/agent/agentRunCliOptions.d.ts +12 -2
- package/umd/src/cli/cli-commands/agent/initializeAgentRunnerCommand.d.ts +1 -0
- package/umd/src/cli/cli-commands/run/prepareRunCommandResources.d.ts +20 -0
- package/umd/src/cli/cli-commands/run/resolveRunInputParameters.d.ts +12 -0
- package/umd/src/cli/cli-commands/run/runCommandAction.d.ts +21 -0
- package/umd/src/cli/cli-commands/run/runPipelineExecution.d.ts +14 -0
- package/umd/src/cli/cli-commands/run.d.ts +1 -1
- package/umd/src/conversion/parsePipeline/applyPipelineHead.d.ts +8 -0
- package/umd/src/conversion/parsePipeline/createInitialPipelineJson.d.ts +8 -0
- package/umd/src/conversion/parsePipeline/createUniqueSectionNameResolver.d.ts +14 -0
- package/umd/src/conversion/parsePipeline/defineParameter.d.ts +8 -0
- package/umd/src/conversion/parsePipeline/extractPipelineDescription.d.ts +6 -0
- package/umd/src/conversion/parsePipeline/finalizeParsedPipeline.d.ts +8 -0
- package/umd/src/conversion/parsePipeline/getPipelineIdentification.d.ts +7 -0
- package/umd/src/conversion/parsePipeline/parsePreparedPipelineSections.d.ts +18 -0
- package/umd/src/conversion/parsePipeline/preparePipelineString.d.ts +8 -0
- package/umd/src/conversion/parsePipeline/processPipelineSection.d.ts +9 -0
- package/umd/src/version.d.ts +1 -1
package/umd/index.umd.js
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* @generated
|
|
28
28
|
* @see https://github.com/webgptorg/promptbook
|
|
29
29
|
*/
|
|
30
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-
|
|
30
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-72';
|
|
31
31
|
/**
|
|
32
32
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
33
33
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -7906,7 +7906,9 @@
|
|
|
7906
7906
|
};
|
|
7907
7907
|
const mantleRadiusX = size * morphologyProfile.body.bodyRadiusRatio * morphologyProfile.body.horizontalStretch;
|
|
7908
7908
|
const mantleRadiusY = size * morphologyProfile.body.bodyRadiusRatio * morphologyProfile.body.verticalStretch * 1.1;
|
|
7909
|
-
const mantleRadiusZ = size *
|
|
7909
|
+
const mantleRadiusZ = size *
|
|
7910
|
+
morphologyProfile.body.bodyRadiusRatio *
|
|
7911
|
+
(0.9 + (morphologyProfile.body.horizontalStretch - 1) * 0.3);
|
|
7910
7912
|
const underbodyRadiusX = mantleRadiusX * (0.9 + (morphologyProfile.tentacles.rootSpreadScale - 1) * 0.08);
|
|
7911
7913
|
const underbodyRadiusY = mantleRadiusY * (0.44 + morphologyProfile.body.lowerDropRatio * 3.1);
|
|
7912
7914
|
const underbodyRadiusZ = mantleRadiusZ * 0.78;
|
|
@@ -7992,7 +7994,11 @@
|
|
|
7992
7994
|
z: resolveEllipsoidSurfaceDepth(mantleRadiusX, mantleRadiusY, mantleRadiusZ, faceEyeSpacing, faceEyeYOffset),
|
|
7993
7995
|
}, faceEyeRadiusX, faceEyeRadiusY, mantleCenter, headPitch, headYaw, sceneCenterX, sceneCenterY, size, palette, timeMs, animationPhase + 0.7 + eyeRandom() * 0.6, interaction, morphologyProfile.face.eyeStyle);
|
|
7994
7996
|
drawProjectedMouth(context, [
|
|
7995
|
-
{
|
|
7997
|
+
{
|
|
7998
|
+
x: -mouthHalfWidth,
|
|
7999
|
+
y: mouthY,
|
|
8000
|
+
z: resolveEllipsoidSurfaceDepth(mantleRadiusX, mantleRadiusY, mantleRadiusZ, -mouthHalfWidth, mouthY),
|
|
8001
|
+
},
|
|
7996
8002
|
{
|
|
7997
8003
|
x: size * morphologyProfile.face.mouthCenterOffsetRatio,
|
|
7998
8004
|
y: mouthY +
|
|
@@ -8001,7 +8007,11 @@
|
|
|
8001
8007
|
interaction.gazeY * size * 0.01,
|
|
8002
8008
|
z: resolveEllipsoidSurfaceDepth(mantleRadiusX, mantleRadiusY, mantleRadiusZ, size * morphologyProfile.face.mouthCenterOffsetRatio, mouthY),
|
|
8003
8009
|
},
|
|
8004
|
-
{
|
|
8010
|
+
{
|
|
8011
|
+
x: mouthHalfWidth,
|
|
8012
|
+
y: mouthY,
|
|
8013
|
+
z: resolveEllipsoidSurfaceDepth(mantleRadiusX, mantleRadiusY, mantleRadiusZ, mouthHalfWidth, mouthY),
|
|
8014
|
+
},
|
|
8005
8015
|
], mantleCenter, headPitch, headYaw, sceneCenterX, sceneCenterY, palette, size);
|
|
8006
8016
|
},
|
|
8007
8017
|
};
|
|
@@ -8162,7 +8172,8 @@
|
|
|
8162
8172
|
z: anchorPoint.z + Math.cos(orbitAngle) * depthReach * 0.3 + sway * size * 0.012,
|
|
8163
8173
|
};
|
|
8164
8174
|
const controlPointTwo = {
|
|
8165
|
-
x: anchorPoint.x +
|
|
8175
|
+
x: anchorPoint.x +
|
|
8176
|
+
Math.sin(orbitAngle) * lateralReach * (0.82 + morphologyProfile.tentacles.swayScale * 0.12),
|
|
8166
8177
|
y: anchorPoint.y + flowLength * 0.66,
|
|
8167
8178
|
z: anchorPoint.z + Math.cos(orbitAngle) * depthReach * 0.72 + sway * size * 0.02,
|
|
8168
8179
|
};
|
|
@@ -8227,8 +8238,7 @@
|
|
|
8227
8238
|
context.beginPath();
|
|
8228
8239
|
context.moveTo(startPoint.x, startPoint.y);
|
|
8229
8240
|
context.lineTo(endPoint.x, endPoint.y);
|
|
8230
|
-
context.strokeStyle =
|
|
8231
|
-
tentacleStroke.colorBias > 0.6 ? `${palette.secondary}f0` : `${palette.primary}f0`;
|
|
8241
|
+
context.strokeStyle = tentacleStroke.colorBias > 0.6 ? `${palette.secondary}f0` : `${palette.primary}f0`;
|
|
8232
8242
|
context.lineWidth = width;
|
|
8233
8243
|
context.lineCap = 'round';
|
|
8234
8244
|
context.stroke();
|
|
@@ -16591,6 +16601,212 @@
|
|
|
16591
16601
|
* @private internal USE TIMEOUT constant
|
|
16592
16602
|
*/
|
|
16593
16603
|
const MAX_LIST_TIMEOUTS_LIMIT = 100;
|
|
16604
|
+
/**
|
|
16605
|
+
* Creates one formatted timeout-argument validation error.
|
|
16606
|
+
*
|
|
16607
|
+
* @private internal utility of USE TIMEOUT
|
|
16608
|
+
*/
|
|
16609
|
+
function createTimeoutToolArgsError(message) {
|
|
16610
|
+
return new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16611
|
+
${message}
|
|
16612
|
+
`));
|
|
16613
|
+
}
|
|
16614
|
+
/**
|
|
16615
|
+
* Normalizes one optional timeout id string.
|
|
16616
|
+
*
|
|
16617
|
+
* @private internal utility of USE TIMEOUT
|
|
16618
|
+
*/
|
|
16619
|
+
function normalizeOptionalTimeoutId(value) {
|
|
16620
|
+
return typeof value === 'string' ? value.trim() : '';
|
|
16621
|
+
}
|
|
16622
|
+
/**
|
|
16623
|
+
* Parses timeout target selection for tools that accept either `timeoutId` or `allActive: true`.
|
|
16624
|
+
*
|
|
16625
|
+
* @private internal utility of USE TIMEOUT
|
|
16626
|
+
*/
|
|
16627
|
+
function parseTimeoutTargetSelection(args, options) {
|
|
16628
|
+
const timeoutId = normalizeOptionalTimeoutId(args.timeoutId);
|
|
16629
|
+
const allActive = args.allActive === true;
|
|
16630
|
+
if (timeoutId && allActive) {
|
|
16631
|
+
throw createTimeoutToolArgsError(options.bothMessage);
|
|
16632
|
+
}
|
|
16633
|
+
if (allActive) {
|
|
16634
|
+
return { allActive: true };
|
|
16635
|
+
}
|
|
16636
|
+
if (!timeoutId) {
|
|
16637
|
+
throw createTimeoutToolArgsError(options.missingMessage);
|
|
16638
|
+
}
|
|
16639
|
+
return {
|
|
16640
|
+
timeoutId,
|
|
16641
|
+
allActive: false,
|
|
16642
|
+
};
|
|
16643
|
+
}
|
|
16644
|
+
/**
|
|
16645
|
+
* Parses one explicit `dueAt` update value.
|
|
16646
|
+
*
|
|
16647
|
+
* @private internal utility of USE TIMEOUT
|
|
16648
|
+
*/
|
|
16649
|
+
function parseOptionalTimeoutDueAt(value) {
|
|
16650
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
16651
|
+
return undefined;
|
|
16652
|
+
}
|
|
16653
|
+
const normalizedDueAt = value.trim();
|
|
16654
|
+
const dueAtTimestamp = Date.parse(normalizedDueAt);
|
|
16655
|
+
if (!Number.isFinite(dueAtTimestamp)) {
|
|
16656
|
+
throw createTimeoutToolArgsError('Timeout `dueAt` must be one valid ISO timestamp.');
|
|
16657
|
+
}
|
|
16658
|
+
return new Date(dueAtTimestamp).toISOString();
|
|
16659
|
+
}
|
|
16660
|
+
/**
|
|
16661
|
+
* Parses one explicit `extendByMs` update value.
|
|
16662
|
+
*
|
|
16663
|
+
* @private internal utility of USE TIMEOUT
|
|
16664
|
+
*/
|
|
16665
|
+
function parseOptionalTimeoutExtendByMs(value) {
|
|
16666
|
+
if (typeof value !== 'number') {
|
|
16667
|
+
return undefined;
|
|
16668
|
+
}
|
|
16669
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
16670
|
+
throw createTimeoutToolArgsError('Timeout `extendByMs` must be a positive number of milliseconds.');
|
|
16671
|
+
}
|
|
16672
|
+
return Math.floor(value);
|
|
16673
|
+
}
|
|
16674
|
+
/**
|
|
16675
|
+
* Parses one explicit `recurrenceIntervalMs` update value.
|
|
16676
|
+
*
|
|
16677
|
+
* @private internal utility of USE TIMEOUT
|
|
16678
|
+
*/
|
|
16679
|
+
function parseOptionalTimeoutRecurrenceInterval(value) {
|
|
16680
|
+
if (value === null) {
|
|
16681
|
+
return null;
|
|
16682
|
+
}
|
|
16683
|
+
if (typeof value !== 'number') {
|
|
16684
|
+
return undefined;
|
|
16685
|
+
}
|
|
16686
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
16687
|
+
throw createTimeoutToolArgsError('Timeout `recurrenceIntervalMs` must be a positive number of milliseconds or `null`.');
|
|
16688
|
+
}
|
|
16689
|
+
return Math.floor(value);
|
|
16690
|
+
}
|
|
16691
|
+
/**
|
|
16692
|
+
* Parses one explicit `message` update value.
|
|
16693
|
+
*
|
|
16694
|
+
* @private internal utility of USE TIMEOUT
|
|
16695
|
+
*/
|
|
16696
|
+
function parseOptionalTimeoutMessage(value) {
|
|
16697
|
+
if (value === null) {
|
|
16698
|
+
return null;
|
|
16699
|
+
}
|
|
16700
|
+
if (typeof value !== 'string') {
|
|
16701
|
+
return undefined;
|
|
16702
|
+
}
|
|
16703
|
+
const normalizedMessage = value.trim();
|
|
16704
|
+
return normalizedMessage.length > 0 ? normalizedMessage : null;
|
|
16705
|
+
}
|
|
16706
|
+
/**
|
|
16707
|
+
* Parses one explicit `parameters` update value.
|
|
16708
|
+
*
|
|
16709
|
+
* @private internal utility of USE TIMEOUT
|
|
16710
|
+
*/
|
|
16711
|
+
function parseOptionalTimeoutParameters(value) {
|
|
16712
|
+
if (value === undefined) {
|
|
16713
|
+
return undefined;
|
|
16714
|
+
}
|
|
16715
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
16716
|
+
throw createTimeoutToolArgsError('Timeout `parameters` must be one JSON object.');
|
|
16717
|
+
}
|
|
16718
|
+
return value;
|
|
16719
|
+
}
|
|
16720
|
+
/**
|
|
16721
|
+
* Parses one explicit `paused` update value.
|
|
16722
|
+
*
|
|
16723
|
+
* @private internal utility of USE TIMEOUT
|
|
16724
|
+
*/
|
|
16725
|
+
function parseOptionalTimeoutPaused(value) {
|
|
16726
|
+
return typeof value === 'boolean' ? value : undefined;
|
|
16727
|
+
}
|
|
16728
|
+
/**
|
|
16729
|
+
* Parses patch fields for `update_timeout`.
|
|
16730
|
+
*
|
|
16731
|
+
* @private internal utility of USE TIMEOUT
|
|
16732
|
+
*/
|
|
16733
|
+
function parseTimeoutUpdatePatch(args) {
|
|
16734
|
+
const patch = {};
|
|
16735
|
+
const dueAt = parseOptionalTimeoutDueAt(args.dueAt);
|
|
16736
|
+
const extendByMs = parseOptionalTimeoutExtendByMs(args.extendByMs);
|
|
16737
|
+
const recurrenceIntervalMs = parseOptionalTimeoutRecurrenceInterval(args.recurrenceIntervalMs);
|
|
16738
|
+
const message = parseOptionalTimeoutMessage(args.message);
|
|
16739
|
+
const parameters = parseOptionalTimeoutParameters(args.parameters);
|
|
16740
|
+
const paused = parseOptionalTimeoutPaused(args.paused);
|
|
16741
|
+
if (dueAt !== undefined) {
|
|
16742
|
+
patch.dueAt = dueAt;
|
|
16743
|
+
}
|
|
16744
|
+
if (extendByMs !== undefined) {
|
|
16745
|
+
patch.extendByMs = extendByMs;
|
|
16746
|
+
}
|
|
16747
|
+
if (patch.dueAt !== undefined && patch.extendByMs !== undefined) {
|
|
16748
|
+
throw createTimeoutToolArgsError('Timeout update cannot include both `dueAt` and `extendByMs`.');
|
|
16749
|
+
}
|
|
16750
|
+
if (recurrenceIntervalMs !== undefined) {
|
|
16751
|
+
patch.recurrenceIntervalMs = recurrenceIntervalMs;
|
|
16752
|
+
}
|
|
16753
|
+
if (message !== undefined) {
|
|
16754
|
+
patch.message = message;
|
|
16755
|
+
}
|
|
16756
|
+
if (parameters !== undefined) {
|
|
16757
|
+
patch.parameters = parameters;
|
|
16758
|
+
}
|
|
16759
|
+
if (paused !== undefined) {
|
|
16760
|
+
patch.paused = paused;
|
|
16761
|
+
}
|
|
16762
|
+
return patch;
|
|
16763
|
+
}
|
|
16764
|
+
/**
|
|
16765
|
+
* Determines whether the patch contains fields that are only supported for single-timeout updates.
|
|
16766
|
+
*
|
|
16767
|
+
* @private internal utility of USE TIMEOUT
|
|
16768
|
+
*/
|
|
16769
|
+
function hasSingleTimeoutOnlyPatchFields(patch) {
|
|
16770
|
+
return (patch.dueAt !== undefined ||
|
|
16771
|
+
patch.extendByMs !== undefined ||
|
|
16772
|
+
patch.recurrenceIntervalMs !== undefined ||
|
|
16773
|
+
patch.message !== undefined ||
|
|
16774
|
+
patch.parameters !== undefined);
|
|
16775
|
+
}
|
|
16776
|
+
/**
|
|
16777
|
+
* Parses bulk timeout update arguments.
|
|
16778
|
+
*
|
|
16779
|
+
* @private internal utility of USE TIMEOUT
|
|
16780
|
+
*/
|
|
16781
|
+
function parseBulkTimeoutUpdateArgs(patch) {
|
|
16782
|
+
if (patch.paused === undefined) {
|
|
16783
|
+
throw createTimeoutToolArgsError('Bulk timeout update with `allActive: true` requires `paused` to be explicitly set.');
|
|
16784
|
+
}
|
|
16785
|
+
if (hasSingleTimeoutOnlyPatchFields(patch)) {
|
|
16786
|
+
throw createTimeoutToolArgsError('Bulk timeout update only supports the `paused` field.');
|
|
16787
|
+
}
|
|
16788
|
+
return {
|
|
16789
|
+
allActive: true,
|
|
16790
|
+
paused: patch.paused,
|
|
16791
|
+
};
|
|
16792
|
+
}
|
|
16793
|
+
/**
|
|
16794
|
+
* Parses single-timeout update arguments.
|
|
16795
|
+
*
|
|
16796
|
+
* @private internal utility of USE TIMEOUT
|
|
16797
|
+
*/
|
|
16798
|
+
function parseSingleTimeoutUpdateArgs(timeoutId, patch) {
|
|
16799
|
+
if (!timeoutId) {
|
|
16800
|
+
throw createTimeoutToolArgsError('Timeout `timeoutId` is required for single-timeout updates.');
|
|
16801
|
+
}
|
|
16802
|
+
if (Object.keys(patch).length === 0) {
|
|
16803
|
+
throw createTimeoutToolArgsError('Timeout update must include at least one editable field.');
|
|
16804
|
+
}
|
|
16805
|
+
return {
|
|
16806
|
+
timeoutId,
|
|
16807
|
+
patch,
|
|
16808
|
+
};
|
|
16809
|
+
}
|
|
16594
16810
|
/**
|
|
16595
16811
|
* Parses and validates `USE TIMEOUT` tool arguments.
|
|
16596
16812
|
*
|
|
@@ -16617,22 +16833,14 @@
|
|
|
16617
16833
|
* Parses `cancel_timeout` input.
|
|
16618
16834
|
*/
|
|
16619
16835
|
cancel(args) {
|
|
16620
|
-
const
|
|
16621
|
-
|
|
16622
|
-
|
|
16623
|
-
|
|
16624
|
-
|
|
16625
|
-
`));
|
|
16626
|
-
}
|
|
16627
|
-
if (allActive) {
|
|
16836
|
+
const target = parseTimeoutTargetSelection(args, {
|
|
16837
|
+
bothMessage: 'Timeout cancellation must target either one `timeoutId` or `allActive: true`, not both.',
|
|
16838
|
+
missingMessage: 'Timeout `timeoutId` is required unless you pass `allActive: true`.',
|
|
16839
|
+
});
|
|
16840
|
+
if (target.allActive) {
|
|
16628
16841
|
return { allActive: true };
|
|
16629
16842
|
}
|
|
16630
|
-
|
|
16631
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16632
|
-
Timeout \`timeoutId\` is required unless you pass \`allActive: true\`.
|
|
16633
|
-
`));
|
|
16634
|
-
}
|
|
16635
|
-
return { timeoutId };
|
|
16843
|
+
return { timeoutId: target.timeoutId };
|
|
16636
16844
|
},
|
|
16637
16845
|
/**
|
|
16638
16846
|
* Parses `list_timeouts` input.
|
|
@@ -16663,106 +16871,14 @@
|
|
|
16663
16871
|
* Parses `update_timeout` input.
|
|
16664
16872
|
*/
|
|
16665
16873
|
update(args) {
|
|
16666
|
-
const
|
|
16667
|
-
|
|
16668
|
-
|
|
16669
|
-
|
|
16670
|
-
|
|
16671
|
-
|
|
16672
|
-
|
|
16673
|
-
|
|
16674
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16675
|
-
Timeout update requires one \`timeoutId\` or \`allActive: true\`.
|
|
16676
|
-
`));
|
|
16677
|
-
}
|
|
16678
|
-
const patch = {};
|
|
16679
|
-
if (typeof args.dueAt === 'string' && args.dueAt.trim().length > 0) {
|
|
16680
|
-
const normalizedDueAt = args.dueAt.trim();
|
|
16681
|
-
const dueAtTimestamp = Date.parse(normalizedDueAt);
|
|
16682
|
-
if (!Number.isFinite(dueAtTimestamp)) {
|
|
16683
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16684
|
-
Timeout \`dueAt\` must be one valid ISO timestamp.
|
|
16685
|
-
`));
|
|
16686
|
-
}
|
|
16687
|
-
patch.dueAt = new Date(dueAtTimestamp).toISOString();
|
|
16688
|
-
}
|
|
16689
|
-
if (typeof args.extendByMs === 'number') {
|
|
16690
|
-
if (!Number.isFinite(args.extendByMs) || args.extendByMs <= 0) {
|
|
16691
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16692
|
-
Timeout \`extendByMs\` must be a positive number of milliseconds.
|
|
16693
|
-
`));
|
|
16694
|
-
}
|
|
16695
|
-
patch.extendByMs = Math.floor(args.extendByMs);
|
|
16696
|
-
}
|
|
16697
|
-
if (patch.dueAt !== undefined && patch.extendByMs !== undefined) {
|
|
16698
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16699
|
-
Timeout update cannot include both \`dueAt\` and \`extendByMs\`.
|
|
16700
|
-
`));
|
|
16701
|
-
}
|
|
16702
|
-
if (args.recurrenceIntervalMs === null) {
|
|
16703
|
-
patch.recurrenceIntervalMs = null;
|
|
16704
|
-
}
|
|
16705
|
-
else if (typeof args.recurrenceIntervalMs === 'number') {
|
|
16706
|
-
if (!Number.isFinite(args.recurrenceIntervalMs) || args.recurrenceIntervalMs <= 0) {
|
|
16707
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16708
|
-
Timeout \`recurrenceIntervalMs\` must be a positive number of milliseconds or \`null\`.
|
|
16709
|
-
`));
|
|
16710
|
-
}
|
|
16711
|
-
patch.recurrenceIntervalMs = Math.floor(args.recurrenceIntervalMs);
|
|
16712
|
-
}
|
|
16713
|
-
if (args.message === null) {
|
|
16714
|
-
patch.message = null;
|
|
16715
|
-
}
|
|
16716
|
-
else if (typeof args.message === 'string') {
|
|
16717
|
-
const normalizedMessage = args.message.trim();
|
|
16718
|
-
patch.message = normalizedMessage.length > 0 ? normalizedMessage : null;
|
|
16719
|
-
}
|
|
16720
|
-
if (args.parameters !== undefined) {
|
|
16721
|
-
if (!args.parameters || typeof args.parameters !== 'object' || Array.isArray(args.parameters)) {
|
|
16722
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16723
|
-
Timeout \`parameters\` must be one JSON object.
|
|
16724
|
-
`));
|
|
16725
|
-
}
|
|
16726
|
-
patch.parameters = args.parameters;
|
|
16727
|
-
}
|
|
16728
|
-
if (typeof args.paused === 'boolean') {
|
|
16729
|
-
patch.paused = args.paused;
|
|
16730
|
-
}
|
|
16731
|
-
if (allActive) {
|
|
16732
|
-
if (patch.paused === undefined) {
|
|
16733
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16734
|
-
Bulk timeout update with \`allActive: true\` requires \`paused\` to be explicitly set.
|
|
16735
|
-
`));
|
|
16736
|
-
}
|
|
16737
|
-
const hasSingleOnlyPatch = patch.dueAt !== undefined ||
|
|
16738
|
-
patch.extendByMs !== undefined ||
|
|
16739
|
-
patch.recurrenceIntervalMs !== undefined ||
|
|
16740
|
-
patch.message !== undefined ||
|
|
16741
|
-
patch.parameters !== undefined;
|
|
16742
|
-
if (hasSingleOnlyPatch) {
|
|
16743
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16744
|
-
Bulk timeout update only supports the \`paused\` field.
|
|
16745
|
-
`));
|
|
16746
|
-
}
|
|
16747
|
-
return {
|
|
16748
|
-
allActive: true,
|
|
16749
|
-
paused: patch.paused,
|
|
16750
|
-
};
|
|
16751
|
-
}
|
|
16752
|
-
if (!timeoutId) {
|
|
16753
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16754
|
-
Timeout \`timeoutId\` is required for single-timeout updates.
|
|
16755
|
-
`));
|
|
16756
|
-
}
|
|
16757
|
-
if (Object.keys(patch).length === 0) {
|
|
16758
|
-
throw new PipelineExecutionError(spacetrim.spaceTrim(`
|
|
16759
|
-
Timeout update must include at least one editable field.
|
|
16760
|
-
`));
|
|
16761
|
-
}
|
|
16762
|
-
return {
|
|
16763
|
-
timeoutId,
|
|
16764
|
-
patch,
|
|
16765
|
-
};
|
|
16874
|
+
const target = parseTimeoutTargetSelection(args, {
|
|
16875
|
+
bothMessage: 'Timeout update must target either one `timeoutId` or `allActive: true`, not both.',
|
|
16876
|
+
missingMessage: 'Timeout update requires one `timeoutId` or `allActive: true`.',
|
|
16877
|
+
});
|
|
16878
|
+
const patch = parseTimeoutUpdatePatch(args);
|
|
16879
|
+
return target.allActive
|
|
16880
|
+
? parseBulkTimeoutUpdateArgs(patch)
|
|
16881
|
+
: parseSingleTimeoutUpdateArgs(target.timeoutId, patch);
|
|
16766
16882
|
},
|
|
16767
16883
|
};
|
|
16768
16884
|
|