@stndrds/schema 1.0.0-alpha.276 → 1.0.0-alpha.278
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/{all-D5zeUllO.d.mts → all-BSeTO0fj.d.mts} +20 -3
- package/dist/{all--B2_3ksI.d.ts → all-DoYgTt64.d.ts} +20 -3
- package/dist/{attributes-_b3Db8vT.d.ts → attributes-Da15v-sw.d.ts} +1 -1
- package/dist/{attributes-lBLiOIY3.d.mts → attributes-VsYmgI0A.d.mts} +1 -1
- package/dist/{chunk-4USPA67J.mjs → chunk-5PLJHYSL.mjs} +139 -26
- package/dist/{chunk-T7BST4JS.js → chunk-DEHBEFGO.js} +3 -3
- package/dist/{chunk-RAF6K6VG.js → chunk-NELH4AXI.js} +30 -18
- package/dist/{chunk-U7QUIEFF.mjs → chunk-PQEOIDXD.mjs} +1 -1
- package/dist/{chunk-EDOEX3O7.js → chunk-QMAVKX3Y.js} +178 -55
- package/dist/{chunk-QLU5QR7M.mjs → chunk-V2WJFUZW.mjs} +16 -8
- package/dist/{chunk-RBG2YMF2.mjs → chunk-YCWGUPSI.mjs} +26 -16
- package/dist/{chunk-F3YPU2N6.js → chunk-ZBWTAKZO.js} +16 -8
- package/dist/exceptions.d.mts +15 -10
- package/dist/exceptions.d.ts +15 -10
- package/dist/exceptions.js +39 -39
- package/dist/exceptions.mjs +1 -1
- package/dist/{helpers-C1VVEAOO.d.mts → helpers-BYhVd4Gw.d.mts} +3 -3
- package/dist/{helpers-vQ6kp8ET.d.ts → helpers-D2cL7hI2.d.ts} +3 -3
- package/dist/index-CixTESyP.d.mts +790 -0
- package/dist/index-dJ6fAwcG.d.ts +790 -0
- package/dist/index.d.mts +2662 -433
- package/dist/index.d.ts +2662 -433
- package/dist/index.js +641 -391
- package/dist/index.mjs +416 -223
- package/dist/{migrations-BXd2ZGfM.d.mts → migrations-Dy9K8kJ0.d.mts} +1 -1
- package/dist/{migrations-DcuJZ8qO.d.ts → migrations-hbZHm8Tm.d.ts} +1 -1
- package/dist/{objects-BCaBw2ef.d.mts → objects-Cvt2T2Q5.d.mts} +19 -3
- package/dist/{objects-A1ED9af-.d.ts → objects-_6M6ngH3.d.ts} +19 -3
- package/dist/{types-DNz3ITS-.d.mts → types-CX7S3Fhh.d.mts} +1 -1
- package/dist/{types-DqLi1tx1.d.ts → types-DseDsbMu.d.ts} +1 -1
- package/dist/validation/all.d.mts +7 -7
- package/dist/validation/all.d.ts +7 -7
- package/dist/validation/all.js +33 -33
- package/dist/validation/all.mjs +8 -8
- package/dist/validation/complex/currency.d.mts +2 -2
- package/dist/validation/complex/currency.d.ts +2 -2
- package/dist/validation/complex/location.d.mts +2 -2
- package/dist/validation/complex/location.d.ts +2 -2
- package/dist/validation/complex/phone.d.mts +2 -2
- package/dist/validation/complex/phone.d.ts +2 -2
- package/dist/validation/complex/relation.d.mts +2 -2
- package/dist/validation/complex/relation.d.ts +2 -2
- package/dist/validation/complex/richtext.d.mts +2 -2
- package/dist/validation/complex/richtext.d.ts +2 -2
- package/dist/validation/complex/select.d.mts +2 -2
- package/dist/validation/complex/select.d.ts +2 -2
- package/dist/validation/complex/user.d.mts +2 -2
- package/dist/validation/complex/user.d.ts +2 -2
- package/dist/validation/computed/formula.d.mts +2 -2
- package/dist/validation/computed/formula.d.ts +2 -2
- package/dist/validation/computed/rollup.d.mts +2 -2
- package/dist/validation/computed/rollup.d.ts +2 -2
- package/dist/validation/config/index.d.mts +4 -4
- package/dist/validation/config/index.d.ts +4 -4
- package/dist/validation/config/index.js +11 -11
- package/dist/validation/config/index.mjs +2 -2
- package/dist/validation/core/index.d.mts +3 -3
- package/dist/validation/core/index.d.ts +3 -3
- package/dist/validation/object/index.d.mts +5 -5
- package/dist/validation/object/index.d.ts +5 -5
- package/dist/validation/object/index.js +18 -18
- package/dist/validation/object/index.mjs +6 -6
- package/dist/validation/primitives/checkbox.d.mts +2 -2
- package/dist/validation/primitives/checkbox.d.ts +2 -2
- package/dist/validation/primitives/date.d.mts +2 -2
- package/dist/validation/primitives/date.d.ts +2 -2
- package/dist/validation/primitives/number.d.mts +2 -2
- package/dist/validation/primitives/number.d.ts +2 -2
- package/dist/validation/primitives/text.d.mts +2 -2
- package/dist/validation/primitives/text.d.ts +2 -2
- package/package.json +2 -2
- package/dist/index-Bq1KrQkR.d.ts +0 -2413
- package/dist/index-DtxtOBYT.d.mts +0 -2413
package/dist/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkFRCDMQER_js = require('./chunk-FRCDMQER.js');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
4
|
+
var chunkQMAVKX3Y_js = require('./chunk-QMAVKX3Y.js');
|
|
5
|
+
var chunkDEHBEFGO_js = require('./chunk-DEHBEFGO.js');
|
|
6
|
+
var chunkNELH4AXI_js = require('./chunk-NELH4AXI.js');
|
|
7
|
+
var chunkQ4SZAMJT_js = require('./chunk-Q4SZAMJT.js');
|
|
8
|
+
require('./chunk-EEH4XQ7W.js');
|
|
7
9
|
require('./chunk-EW5XR2X3.js');
|
|
8
10
|
require('./chunk-QWKLQRBX.js');
|
|
9
11
|
require('./chunk-KNGWHQLR.js');
|
|
10
|
-
require('./chunk-HTSTPTNZ.js');
|
|
11
|
-
require('./chunk-V2UA2D4E.js');
|
|
12
12
|
var chunk5WATIVCA_js = require('./chunk-5WATIVCA.js');
|
|
13
13
|
var chunkSI34M4IC_js = require('./chunk-SI34M4IC.js');
|
|
14
14
|
var chunkYIP5FJ5H_js = require('./chunk-YIP5FJ5H.js');
|
|
15
15
|
var chunkZPFOKBIN_js = require('./chunk-ZPFOKBIN.js');
|
|
16
|
-
var
|
|
16
|
+
var chunkZBWTAKZO_js = require('./chunk-ZBWTAKZO.js');
|
|
17
|
+
require('./chunk-HTSTPTNZ.js');
|
|
18
|
+
require('./chunk-V2UA2D4E.js');
|
|
17
19
|
require('./chunk-ACKMC6FL.js');
|
|
18
20
|
require('./chunk-E6JUYGJX.js');
|
|
19
|
-
var chunkQ4SZAMJT_js = require('./chunk-Q4SZAMJT.js');
|
|
20
|
-
require('./chunk-EEH4XQ7W.js');
|
|
21
21
|
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
22
22
|
var constants = require('@stndrds/constants');
|
|
23
23
|
var z2 = require('zod');
|
|
@@ -81,7 +81,7 @@ function inferInverseCardinality(cardinality) {
|
|
|
81
81
|
return cardinality === "one" ? "many" : "many";
|
|
82
82
|
}
|
|
83
83
|
function isAttributeSortable2(attr) {
|
|
84
|
-
return
|
|
84
|
+
return chunkQMAVKX3Y_js.isAttributeSortable(attr);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
// src/types/audit.ts
|
|
@@ -137,6 +137,44 @@ var AUDIT_ACTIONS = [
|
|
|
137
137
|
];
|
|
138
138
|
|
|
139
139
|
// src/types/agent.ts
|
|
140
|
+
function isTerminalState(state) {
|
|
141
|
+
return state.phase === "terminal";
|
|
142
|
+
}
|
|
143
|
+
function sessionStateToLegacyStatus(state) {
|
|
144
|
+
switch (state.phase) {
|
|
145
|
+
case "running":
|
|
146
|
+
return "active";
|
|
147
|
+
case "queued":
|
|
148
|
+
return "idle";
|
|
149
|
+
case "parked":
|
|
150
|
+
if (state.parkedOn === void 0) {
|
|
151
|
+
throw new chunkZBWTAKZO_js.SchemaError("parked state without parkedOn", chunkZBWTAKZO_js.SchemaErrorCode.INVARIANT_VIOLATION);
|
|
152
|
+
}
|
|
153
|
+
return state.parkedOn === "agents" ? "waiting_agents" : "waiting_human";
|
|
154
|
+
case "terminal":
|
|
155
|
+
if (state.outcome === void 0) {
|
|
156
|
+
throw new chunkZBWTAKZO_js.SchemaError(
|
|
157
|
+
"terminal state without outcome",
|
|
158
|
+
chunkZBWTAKZO_js.SchemaErrorCode.INVARIANT_VIOLATION
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
return state.outcome;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function legacyStatusToSessionState(status2) {
|
|
165
|
+
switch (status2) {
|
|
166
|
+
case "active":
|
|
167
|
+
return { phase: "running" };
|
|
168
|
+
case "idle":
|
|
169
|
+
return { phase: "queued" };
|
|
170
|
+
case "waiting_human":
|
|
171
|
+
return { phase: "parked", parkedOn: "human", humanRequestIds: [] };
|
|
172
|
+
case "waiting_agents":
|
|
173
|
+
return { phase: "parked", parkedOn: "agents" };
|
|
174
|
+
default:
|
|
175
|
+
return { phase: "terminal", outcome: status2 };
|
|
176
|
+
}
|
|
177
|
+
}
|
|
140
178
|
var SESSION_TERMINAL_STATUSES = [
|
|
141
179
|
"completed",
|
|
142
180
|
"failed",
|
|
@@ -152,7 +190,7 @@ var DEFAULT_APPROVAL_POLICY = Object.freeze({
|
|
|
152
190
|
destructive: "ask",
|
|
153
191
|
outward: "ask"
|
|
154
192
|
});
|
|
155
|
-
var TODO_PLAN_STATUSES = ["active", "completed", "
|
|
193
|
+
var TODO_PLAN_STATUSES = ["active", "completed", "abandoned"];
|
|
156
194
|
function agentDisplayName(agent2) {
|
|
157
195
|
return agent2.label?.trim() || agent2.name;
|
|
158
196
|
}
|
|
@@ -162,6 +200,60 @@ var MAX_TODO_ID_CHARS = 80;
|
|
|
162
200
|
var MAX_TODO_DESCRIPTION_CHARS = 500;
|
|
163
201
|
var MAX_TODO_RESULT_CHARS = 2e3;
|
|
164
202
|
|
|
203
|
+
// src/types/agent-ui-data.ts
|
|
204
|
+
var NATIVE_AGENT_UI_PART_IDS_METADATA_KEY = "__stndrdsNativeUiPartIds";
|
|
205
|
+
var NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION = 1;
|
|
206
|
+
var INVALID_NATIVE_PART_IDS = "Native agent UI part IDs metadata is invalid";
|
|
207
|
+
function invalidNativePartIds() {
|
|
208
|
+
throw new chunkZBWTAKZO_js.ValidationError(INVALID_NATIVE_PART_IDS, []);
|
|
209
|
+
}
|
|
210
|
+
function isPlainRecord(value) {
|
|
211
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
212
|
+
const prototype = Object.getPrototypeOf(value);
|
|
213
|
+
return prototype === Object.prototype || prototype === null;
|
|
214
|
+
}
|
|
215
|
+
function nativeAgentUIPartIdMetadataKey(part, partIndex) {
|
|
216
|
+
if (part.type === "text" || part.type === "reasoning") return `${part.type}:${partIndex}`;
|
|
217
|
+
if (part.type === "tool") return `tool:${part.toolCallId}`;
|
|
218
|
+
return void 0;
|
|
219
|
+
}
|
|
220
|
+
function parseNativeAgentUIPartIdsMetadata(message) {
|
|
221
|
+
const stored = message.metadata?.[NATIVE_AGENT_UI_PART_IDS_METADATA_KEY];
|
|
222
|
+
if (!isPlainRecord(stored)) invalidNativePartIds();
|
|
223
|
+
if (Object.keys(stored).length !== 2 || stored.schemaVersion !== NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION || !isPlainRecord(stored.partIds)) {
|
|
224
|
+
invalidNativePartIds();
|
|
225
|
+
}
|
|
226
|
+
const expected = /* @__PURE__ */ new Map();
|
|
227
|
+
for (const [index, part] of message.parts.entries()) {
|
|
228
|
+
const key = nativeAgentUIPartIdMetadataKey(part, index);
|
|
229
|
+
if (!key || expected.has(key)) {
|
|
230
|
+
if (key) invalidNativePartIds();
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
expected.set(key, part);
|
|
234
|
+
}
|
|
235
|
+
const entries = Object.entries(stored.partIds);
|
|
236
|
+
if (entries.length !== expected.size) invalidNativePartIds();
|
|
237
|
+
const nativeIdTypes = /* @__PURE__ */ new Map();
|
|
238
|
+
const parsed = {};
|
|
239
|
+
for (const [key, value] of entries) {
|
|
240
|
+
const part = expected.get(key);
|
|
241
|
+
if (!(part && typeof value === "string" && value.length > 0)) {
|
|
242
|
+
invalidNativePartIds();
|
|
243
|
+
}
|
|
244
|
+
const existingType = nativeIdTypes.get(value);
|
|
245
|
+
if (existingType && (part.type === "tool" || existingType !== part.type)) {
|
|
246
|
+
invalidNativePartIds();
|
|
247
|
+
}
|
|
248
|
+
if (part.type === "tool" && value !== part.toolCallId) {
|
|
249
|
+
invalidNativePartIds();
|
|
250
|
+
}
|
|
251
|
+
nativeIdTypes.set(value, part.type);
|
|
252
|
+
parsed[key] = value;
|
|
253
|
+
}
|
|
254
|
+
return parsed;
|
|
255
|
+
}
|
|
256
|
+
|
|
165
257
|
// src/types/document-layout.ts
|
|
166
258
|
var MAX_PRESET_DEPTH = 5;
|
|
167
259
|
|
|
@@ -198,6 +290,10 @@ function isFormSlotFieldRef(f) {
|
|
|
198
290
|
function isFormFreeFieldRef(f) {
|
|
199
291
|
return f.type === "free";
|
|
200
292
|
}
|
|
293
|
+
function resolveFieldRequired(input) {
|
|
294
|
+
if (input.fieldRequired !== void 0) return input.fieldRequired;
|
|
295
|
+
return input.slotMode === "create" && input.attributeRequired === true;
|
|
296
|
+
}
|
|
201
297
|
function getSlotFieldTargets(field) {
|
|
202
298
|
return field.additionalSlotIds?.length ? [field.slotId, ...field.additionalSlotIds] : [field.slotId];
|
|
203
299
|
}
|
|
@@ -263,6 +359,7 @@ function hasOptions(attr) {
|
|
|
263
359
|
|
|
264
360
|
// src/types/user-profiles.ts
|
|
265
361
|
var USER_STATUSES = ["active", "suspended"];
|
|
362
|
+
var USER_WORK_POSTURES = ["plan", "manual", "auto"];
|
|
266
363
|
|
|
267
364
|
// src/types/schema-state.ts
|
|
268
365
|
function viewStateKey(view) {
|
|
@@ -284,6 +381,20 @@ function isRelationGroup(group2) {
|
|
|
284
381
|
}
|
|
285
382
|
|
|
286
383
|
// src/types/pagination.ts
|
|
384
|
+
var COUNT_MODES = ["none", "estimated", "exact"];
|
|
385
|
+
function parseCountMode(value) {
|
|
386
|
+
if (typeof value === "string" && COUNT_MODES.includes(value)) {
|
|
387
|
+
return value;
|
|
388
|
+
}
|
|
389
|
+
throw new chunkZBWTAKZO_js.ValidationError(
|
|
390
|
+
// biome-ignore lint/style/useTemplate: see the comment above.
|
|
391
|
+
"countMode must be one of: " + COUNT_MODES.join(", ") + " (received: " + String(value) + ")",
|
|
392
|
+
[]
|
|
393
|
+
);
|
|
394
|
+
}
|
|
395
|
+
function parseOptionalCountMode(value) {
|
|
396
|
+
return value === void 0 ? void 0 : parseCountMode(value);
|
|
397
|
+
}
|
|
287
398
|
var ESTIMATED_COUNT_CAP = 1e4;
|
|
288
399
|
|
|
289
400
|
// src/lib/object-helpers.ts
|
|
@@ -382,7 +493,7 @@ function isDateRangeValue(value) {
|
|
|
382
493
|
return typeof value === "object" && value !== null && typeof value.start === "string";
|
|
383
494
|
}
|
|
384
495
|
function normalizeDateValue(value, attr) {
|
|
385
|
-
if (value
|
|
496
|
+
if (chunkNELH4AXI_js.isNullishOrEmptyString(value)) return null;
|
|
386
497
|
if (isDateRangeValue(value)) {
|
|
387
498
|
return attr.endDate ? { start: value.start, end: value.end ?? null } : value.start;
|
|
388
499
|
}
|
|
@@ -520,7 +631,7 @@ function formatMultiselect(value, attribute) {
|
|
|
520
631
|
return value.join(", ");
|
|
521
632
|
}
|
|
522
633
|
function formatAttributeValue(value, attribute) {
|
|
523
|
-
if (value
|
|
634
|
+
if (chunkNELH4AXI_js.isNullishOrEmptyString(value)) {
|
|
524
635
|
return EMPTY_VALUE_PLACEHOLDER;
|
|
525
636
|
}
|
|
526
637
|
switch (attribute.type) {
|
|
@@ -667,32 +778,40 @@ function renderLabelExpression(template, values, fallback = DEFAULT_LABEL_FALLBA
|
|
|
667
778
|
const alternatives = orParts.filter(Boolean);
|
|
668
779
|
let value = "";
|
|
669
780
|
for (const alt of alternatives) {
|
|
670
|
-
const
|
|
671
|
-
if (
|
|
672
|
-
value =
|
|
781
|
+
const text2 = toText(getValue(values, alt));
|
|
782
|
+
if (text2 !== "") {
|
|
783
|
+
value = text2;
|
|
673
784
|
break;
|
|
674
785
|
}
|
|
675
786
|
}
|
|
676
|
-
const isEmpty2 = value
|
|
787
|
+
const isEmpty2 = chunkNELH4AXI_js.isNullishOrEmptyString(value);
|
|
677
788
|
if (isEmpty2 && pipes.length === 0) return "";
|
|
678
789
|
for (const pipeExpr of pipes) {
|
|
679
790
|
const { name: pipeName, args } = parsePipeExpression(pipeExpr);
|
|
680
791
|
const simpleFn = simplePipes[pipeName];
|
|
681
792
|
if (simpleFn) {
|
|
682
|
-
if (value
|
|
683
|
-
value = simpleFn(
|
|
793
|
+
if (value !== "") {
|
|
794
|
+
value = simpleFn(value);
|
|
684
795
|
}
|
|
685
796
|
} else {
|
|
686
797
|
const argFn = pipesWithArgs[pipeName];
|
|
687
798
|
if (argFn) {
|
|
688
|
-
value = argFn(
|
|
799
|
+
value = argFn(value, ...args);
|
|
689
800
|
}
|
|
690
801
|
}
|
|
691
802
|
}
|
|
692
|
-
return
|
|
803
|
+
return value;
|
|
693
804
|
}).trim();
|
|
694
805
|
return result || fallback;
|
|
695
806
|
}
|
|
807
|
+
function toText(value) {
|
|
808
|
+
if (value == null) return "";
|
|
809
|
+
if (typeof value === "function") return "";
|
|
810
|
+
if (typeof value !== "object") return String(value);
|
|
811
|
+
if (Array.isArray(value)) return value.map(toText).filter(Boolean).join(",");
|
|
812
|
+
const ownToString = value.toString;
|
|
813
|
+
return typeof ownToString === "function" && ownToString !== Object.prototype.toString ? String(value) : "";
|
|
814
|
+
}
|
|
696
815
|
function isLabelExpression(value) {
|
|
697
816
|
return /\{\{\s*\S+.*\}\}/.test(value);
|
|
698
817
|
}
|
|
@@ -742,7 +861,7 @@ function relationPropertyDefs(attribute) {
|
|
|
742
861
|
return attribute.properties?.definitions;
|
|
743
862
|
}
|
|
744
863
|
function extractValueRefs(value) {
|
|
745
|
-
if (value
|
|
864
|
+
if (chunkNELH4AXI_js.isNullishOrEmptyString(value)) return [];
|
|
746
865
|
if (typeof value === "string") return [{ id: value }];
|
|
747
866
|
if (Array.isArray(value)) return value.flatMap((item) => extractValueRefs(item));
|
|
748
867
|
if (typeof value === "object" && "id" in value) {
|
|
@@ -754,11 +873,26 @@ function extractValueRefs(value) {
|
|
|
754
873
|
|
|
755
874
|
// src/lib/user-display.ts
|
|
756
875
|
function getUserDisplayName(user2) {
|
|
757
|
-
|
|
758
|
-
|
|
876
|
+
const named = [user2.firstName, user2.lastName].map((part) => part?.trim()).filter(Boolean).join(" ");
|
|
877
|
+
if (named !== "") {
|
|
878
|
+
return named;
|
|
759
879
|
}
|
|
760
880
|
return user2.email?.split("@")[0] ?? "";
|
|
761
881
|
}
|
|
882
|
+
var INITIAL_CHARACTER = /\p{L}|\p{N}/u;
|
|
883
|
+
function deriveInitials(label, fallback) {
|
|
884
|
+
const trimmed = label?.trim() ?? "";
|
|
885
|
+
if (trimmed === "") {
|
|
886
|
+
return fallback;
|
|
887
|
+
}
|
|
888
|
+
const words = trimmed.split(/\s+/);
|
|
889
|
+
const parts = words.length === 1 ? trimmed.split("@")[0].split(/[._-]/) : words;
|
|
890
|
+
const initials = parts.map((part) => {
|
|
891
|
+
const initial = part.match(INITIAL_CHARACTER)?.[0];
|
|
892
|
+
return initial === void 0 ? "" : [...initial.toUpperCase()][0] ?? "";
|
|
893
|
+
}).filter(Boolean).slice(0, 2).join("");
|
|
894
|
+
return initials === "" ? fallback : initials;
|
|
895
|
+
}
|
|
762
896
|
|
|
763
897
|
// src/lib/record-creator.ts
|
|
764
898
|
var RECORD_CREATOR_ROOT_ACTOR_METADATA_KEY = "__creatorRootActorId";
|
|
@@ -767,6 +901,20 @@ function getRecordCreatorPrincipalId(record) {
|
|
|
767
901
|
return typeof creatorRootActorId === "string" && creatorRootActorId.length > 0 ? creatorRootActorId : record.createdBy;
|
|
768
902
|
}
|
|
769
903
|
|
|
904
|
+
// src/lib/action-grant.ts
|
|
905
|
+
function includesAction(actions, action) {
|
|
906
|
+
return actions?.includes("*") === true || actions?.includes(action) === true;
|
|
907
|
+
}
|
|
908
|
+
function buildPermissionFlags(actions) {
|
|
909
|
+
return {
|
|
910
|
+
canRead: includesAction(actions, "read"),
|
|
911
|
+
canCreate: includesAction(actions, "create"),
|
|
912
|
+
canUpdate: includesAction(actions, "update"),
|
|
913
|
+
canDelete: includesAction(actions, "delete"),
|
|
914
|
+
canManage: includesAction(actions, "manage")
|
|
915
|
+
};
|
|
916
|
+
}
|
|
917
|
+
|
|
770
918
|
// src/constants/attribute-columns.ts
|
|
771
919
|
var DB_COLUMN_FIELDS = /* @__PURE__ */ new Set([
|
|
772
920
|
"id",
|
|
@@ -906,6 +1054,7 @@ function isDefaultRole(roleName) {
|
|
|
906
1054
|
}
|
|
907
1055
|
var VALID_ICONS = new Set(constants.ICONS);
|
|
908
1056
|
var ATTRIBUTE_NAME_REGEX = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
1057
|
+
var VIEW_NAME_REGEX = /^[a-z][a-z0-9-]*$/;
|
|
909
1058
|
var MAX_NAME_LENGTH = 63;
|
|
910
1059
|
var MAX_LABEL_LENGTH = 128;
|
|
911
1060
|
var OBJECT_NAME_SCHEMA = z2__default.default.string().min(1, "Object name cannot be empty").max(63, "Object name is too long (max 63 characters)").regex(/^[a-z][a-z0-9-]*$/, {
|
|
@@ -916,11 +1065,31 @@ function validateObjectName(name) {
|
|
|
916
1065
|
OBJECT_NAME_SCHEMA.parse(name);
|
|
917
1066
|
} catch (error) {
|
|
918
1067
|
if (error instanceof z2__default.default.ZodError) {
|
|
919
|
-
throw new
|
|
1068
|
+
throw new chunkZBWTAKZO_js.SchemaError(error.issues[0].message, chunkZBWTAKZO_js.SchemaErrorCode.INVALID_OBJECT_NAME);
|
|
920
1069
|
}
|
|
921
1070
|
throw error;
|
|
922
1071
|
}
|
|
923
1072
|
}
|
|
1073
|
+
function validateViewName(name) {
|
|
1074
|
+
if (!name || name.length === 0) {
|
|
1075
|
+
throw new chunkZBWTAKZO_js.ValidationError("View name cannot be empty", [
|
|
1076
|
+
{ path: ["name"], message: "View name cannot be empty" }
|
|
1077
|
+
]);
|
|
1078
|
+
}
|
|
1079
|
+
if (name.length > MAX_NAME_LENGTH) {
|
|
1080
|
+
throw new chunkZBWTAKZO_js.ValidationError("View name is too long", [
|
|
1081
|
+
{ path: ["name"], message: `View name is too long (max ${MAX_NAME_LENGTH} characters)` }
|
|
1082
|
+
]);
|
|
1083
|
+
}
|
|
1084
|
+
if (!VIEW_NAME_REGEX.test(name)) {
|
|
1085
|
+
throw new chunkZBWTAKZO_js.ValidationError("Invalid view name format", [
|
|
1086
|
+
{
|
|
1087
|
+
path: ["name"],
|
|
1088
|
+
message: "View name must be in kebab-case (e.g., 'detail', 'list-view')"
|
|
1089
|
+
}
|
|
1090
|
+
]);
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
924
1093
|
function assertUniqueBy(items, getKey, buildError) {
|
|
925
1094
|
const seen = /* @__PURE__ */ new Set();
|
|
926
1095
|
for (const item of items) {
|
|
@@ -945,10 +1114,10 @@ function validateAttributeName(name) {
|
|
|
945
1114
|
"[AttributeBuilder] Invalid attribute name format.\nName must be a valid variable identifier:\n \u2705 Valid: 'firstName', 'first_name', 'FirstName', 'FIRST_NAME'\n \u274C Invalid: 'first-name', 'first name', '123name', 'first.name'"
|
|
946
1115
|
);
|
|
947
1116
|
}
|
|
948
|
-
if (
|
|
1117
|
+
if (chunkQMAVKX3Y_js.RESERVED_ATTRIBUTE_NAMES.includes(name)) {
|
|
949
1118
|
throw new Error(
|
|
950
1119
|
`[AttributeBuilder] "${name}" is a reserved name and cannot be used as an attribute name.
|
|
951
|
-
Reserved names: ${
|
|
1120
|
+
Reserved names: ${chunkQMAVKX3Y_js.RESERVED_ATTRIBUTE_NAMES.join(", ")}`
|
|
952
1121
|
);
|
|
953
1122
|
}
|
|
954
1123
|
}
|
|
@@ -1015,7 +1184,7 @@ var DEFAULT_AGENT_EXECUTION_CONFIG = {
|
|
|
1015
1184
|
var AgentBuilder = class {
|
|
1016
1185
|
constructor(config) {
|
|
1017
1186
|
if (!config.name || config.name.trim().length === 0) {
|
|
1018
|
-
throw new
|
|
1187
|
+
throw new chunkZBWTAKZO_js.ValidationError("Agent name is required", []);
|
|
1019
1188
|
}
|
|
1020
1189
|
this.bp = { name: config.name, system: true, visibility: "workspace", triggers: [] };
|
|
1021
1190
|
}
|
|
@@ -1077,6 +1246,25 @@ var AgentBuilder = class {
|
|
|
1077
1246
|
Object.assign(this.bp, value);
|
|
1078
1247
|
return this;
|
|
1079
1248
|
}
|
|
1249
|
+
/**
|
|
1250
|
+
* Opt this agent into MCP servers: an array of server ids, or `"all"` to
|
|
1251
|
+
* mount every server the viewer can see. Absent by default — an agent that
|
|
1252
|
+
* never calls this stays tool-identical to one that predates the feature.
|
|
1253
|
+
* The opt-in only narrows; visibility is still enforced below it at
|
|
1254
|
+
* resolution time (`buildMcpToolset`), so naming an id the viewer cannot
|
|
1255
|
+
* see yields no tools from it, not an error.
|
|
1256
|
+
*
|
|
1257
|
+
* @example
|
|
1258
|
+
* ```typescript
|
|
1259
|
+
* agent({ name: "research-assistant" })
|
|
1260
|
+
* .mcpServers(["notion-workspace"])
|
|
1261
|
+
* // ...
|
|
1262
|
+
* ```
|
|
1263
|
+
*/
|
|
1264
|
+
mcpServers(value) {
|
|
1265
|
+
this.bp.mcpServers = Array.isArray(value) ? [...value] : value;
|
|
1266
|
+
return this;
|
|
1267
|
+
}
|
|
1080
1268
|
approval(value) {
|
|
1081
1269
|
this.bp.approval = { ...DEFAULT_APPROVAL_POLICY, ...this.bp.approval, ...value };
|
|
1082
1270
|
return this;
|
|
@@ -1130,13 +1318,13 @@ var AgentBuilder = class {
|
|
|
1130
1318
|
}
|
|
1131
1319
|
build() {
|
|
1132
1320
|
if (!this.bp.systemPrompt) {
|
|
1133
|
-
throw new
|
|
1321
|
+
throw new chunkZBWTAKZO_js.ValidationError(`Agent "${this.bp.name}": systemPrompt is required`, []);
|
|
1134
1322
|
}
|
|
1135
1323
|
if (!this.bp.model) {
|
|
1136
|
-
throw new
|
|
1324
|
+
throw new chunkZBWTAKZO_js.ValidationError(`Agent "${this.bp.name}": model is required`, []);
|
|
1137
1325
|
}
|
|
1138
1326
|
if (this.bp.system && this.bp.visibility === "private") {
|
|
1139
|
-
throw new
|
|
1327
|
+
throw new chunkZBWTAKZO_js.ValidationError(
|
|
1140
1328
|
`Agent "${this.bp.name}": system agents must use workspace visibility`,
|
|
1141
1329
|
[]
|
|
1142
1330
|
);
|
|
@@ -1144,7 +1332,7 @@ var AgentBuilder = class {
|
|
|
1144
1332
|
assertUniqueBy(
|
|
1145
1333
|
this.bp.triggers,
|
|
1146
1334
|
(t) => t.name,
|
|
1147
|
-
(name) => new
|
|
1335
|
+
(name) => new chunkZBWTAKZO_js.ValidationError(`Agent "${this.bp.name}": duplicate trigger name "${name}"`, [])
|
|
1148
1336
|
);
|
|
1149
1337
|
return {
|
|
1150
1338
|
...this.bp,
|
|
@@ -1199,7 +1387,7 @@ var BaseAttributeBuilder = class {
|
|
|
1199
1387
|
* @see https://standardschema.dev/
|
|
1200
1388
|
*/
|
|
1201
1389
|
get "~standard"() {
|
|
1202
|
-
const zodSchema =
|
|
1390
|
+
const zodSchema = chunkNELH4AXI_js.createAttributeValidator(this.build());
|
|
1203
1391
|
return createStandardSchemaProps(zodSchema);
|
|
1204
1392
|
}
|
|
1205
1393
|
constructor(type, name, label) {
|
|
@@ -1946,9 +2134,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
|
|
|
1946
2134
|
if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
|
|
1947
2135
|
const relation2 = this.attr.relationAttribute ?? "relation";
|
|
1948
2136
|
const target = this.attr.targetAttribute ?? "field";
|
|
1949
|
-
throw new
|
|
2137
|
+
throw new chunkZBWTAKZO_js.SchemaError(
|
|
1950
2138
|
`Rollup "${this.attr.name}": .using("original") only supports a "select", "status", or "multiselect" target, but .targetType("${targetType}") was given. To surface a plain ${targetType} value from a related record, use a formula instead \u2014 e.g. formula({ name: "${this.attr.name}", label: "\u2026" }).expression("${relation2}.${target}").`,
|
|
1951
|
-
|
|
2139
|
+
chunkZBWTAKZO_js.SchemaErrorCode.VALIDATION_FAILED
|
|
1952
2140
|
);
|
|
1953
2141
|
}
|
|
1954
2142
|
return super.build();
|
|
@@ -2458,7 +2646,7 @@ var ObjectBuilder = class {
|
|
|
2458
2646
|
* @see https://standardschema.dev/
|
|
2459
2647
|
*/
|
|
2460
2648
|
get "~standard"() {
|
|
2461
|
-
const zodSchema =
|
|
2649
|
+
const zodSchema = chunkNELH4AXI_js.createObjectValidator(this.build());
|
|
2462
2650
|
return createStandardSchemaProps(zodSchema);
|
|
2463
2651
|
}
|
|
2464
2652
|
/**
|
|
@@ -2545,27 +2733,55 @@ var ObjectBuilder = class {
|
|
|
2545
2733
|
* into the TRecord generic, enabling full inference.
|
|
2546
2734
|
*
|
|
2547
2735
|
* @param attr - Attribute definition or builder (auto-builds if builder)
|
|
2736
|
+
* @throws DuplicateError if the name is already declared on this object
|
|
2548
2737
|
*/
|
|
2549
2738
|
attribute(attr) {
|
|
2550
|
-
|
|
2551
|
-
this.obj.attributes = [];
|
|
2552
|
-
}
|
|
2553
|
-
const finalAttr = "build" in attr && typeof attr.build === "function" ? attr.build() : attr;
|
|
2554
|
-
this.obj.attributes.push(finalAttr);
|
|
2739
|
+
this.pushAttributes([attr]);
|
|
2555
2740
|
return this;
|
|
2556
2741
|
}
|
|
2557
2742
|
/**
|
|
2558
2743
|
* Add multiple attributes at once
|
|
2559
2744
|
* Note: For full type inference, prefer chaining .attribute() calls
|
|
2745
|
+
*
|
|
2746
|
+
* @throws DuplicateError if a name is declared twice, inside this batch or
|
|
2747
|
+
* against an attribute already declared on this object
|
|
2560
2748
|
*/
|
|
2561
2749
|
attributes(attrs) {
|
|
2562
|
-
|
|
2563
|
-
this.obj.attributes = [];
|
|
2564
|
-
}
|
|
2565
|
-
const finalAttrs = attrs.map((attr) => "build" in attr ? attr.build() : attr);
|
|
2566
|
-
this.obj.attributes.push(...finalAttrs);
|
|
2750
|
+
this.pushAttributes(attrs);
|
|
2567
2751
|
return this;
|
|
2568
2752
|
}
|
|
2753
|
+
/**
|
|
2754
|
+
* Build any builders, reject duplicate names, then commit — the single push
|
|
2755
|
+
* path behind `attribute()` and `attributes()`, so both entry points share
|
|
2756
|
+
* one builder detection and one uniqueness guarantee.
|
|
2757
|
+
*
|
|
2758
|
+
* The check runs on the resulting array (already committed + incoming), so one
|
|
2759
|
+
* call catches both a collision inside a single `.attributes([...])` batch and
|
|
2760
|
+
* one spanning several calls.
|
|
2761
|
+
*
|
|
2762
|
+
* Names are compared with raw `===`. Postgres stores `attributes.name` as
|
|
2763
|
+
* plain `text` under a deterministic collation, so `x` and `X` are two
|
|
2764
|
+
* distinct attributes there; folding case here would reject a pair the
|
|
2765
|
+
* database accepts.
|
|
2766
|
+
*
|
|
2767
|
+
* @throws DuplicateError with `SchemaErrorCode.DUPLICATE_ATTRIBUTE`
|
|
2768
|
+
* @internal
|
|
2769
|
+
*/
|
|
2770
|
+
pushAttributes(attrs) {
|
|
2771
|
+
const finalAttrs = attrs.map(
|
|
2772
|
+
(attr) => "build" in attr && typeof attr.build === "function" ? attr.build() : attr
|
|
2773
|
+
);
|
|
2774
|
+
assertUniqueBy(
|
|
2775
|
+
[...this.obj.attributes, ...finalAttrs],
|
|
2776
|
+
(attribute) => attribute.name,
|
|
2777
|
+
(name) => new chunkZBWTAKZO_js.DuplicateError(
|
|
2778
|
+
"attribute",
|
|
2779
|
+
name,
|
|
2780
|
+
`Object "${this.obj.name}": duplicate attribute name "${name}"`
|
|
2781
|
+
)
|
|
2782
|
+
);
|
|
2783
|
+
this.obj.attributes.push(...finalAttrs);
|
|
2784
|
+
}
|
|
2569
2785
|
/**
|
|
2570
2786
|
* Set metadata. Merges with any previously set metadata (preserves keys
|
|
2571
2787
|
* written by other builder methods like `.order()`).
|
|
@@ -2672,26 +2888,26 @@ var ObjectBuilder = class {
|
|
|
2672
2888
|
throw new Error("[ObjectBuilder] Missing required field: label");
|
|
2673
2889
|
}
|
|
2674
2890
|
if (!this._labelExpression) {
|
|
2675
|
-
throw new
|
|
2891
|
+
throw new chunkZBWTAKZO_js.SchemaError(
|
|
2676
2892
|
`Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
|
|
2677
|
-
|
|
2893
|
+
chunkZBWTAKZO_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2678
2894
|
);
|
|
2679
2895
|
}
|
|
2680
2896
|
const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
|
|
2681
2897
|
if (!labelResult.success) {
|
|
2682
2898
|
const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
|
|
2683
|
-
throw new
|
|
2899
|
+
throw new chunkZBWTAKZO_js.SchemaError(
|
|
2684
2900
|
`Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
|
|
2685
|
-
|
|
2901
|
+
chunkZBWTAKZO_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2686
2902
|
);
|
|
2687
2903
|
}
|
|
2688
2904
|
if (this._embeddingExpression !== void 0) {
|
|
2689
2905
|
const embeddingResult = labelExpressionSchema.safeParse(this._embeddingExpression);
|
|
2690
2906
|
if (!embeddingResult.success) {
|
|
2691
2907
|
const errorMsg = embeddingResult.error.issues[0]?.message ?? "Invalid embeddingExpression";
|
|
2692
|
-
throw new
|
|
2908
|
+
throw new chunkZBWTAKZO_js.SchemaError(
|
|
2693
2909
|
`Invalid embeddingExpression for "${this.obj.name}": ${errorMsg}`,
|
|
2694
|
-
|
|
2910
|
+
chunkZBWTAKZO_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2695
2911
|
);
|
|
2696
2912
|
}
|
|
2697
2913
|
}
|
|
@@ -2733,7 +2949,7 @@ function object(config) {
|
|
|
2733
2949
|
}
|
|
2734
2950
|
function validatePresetStructure(presetId, nodes, depth) {
|
|
2735
2951
|
const fail = (message, detail) => {
|
|
2736
|
-
throw new
|
|
2952
|
+
throw new chunkZBWTAKZO_js.ValidationError(message, [
|
|
2737
2953
|
{ path: ["documentLayout", "presets", presetId], message: detail }
|
|
2738
2954
|
]);
|
|
2739
2955
|
};
|
|
@@ -2758,6 +2974,8 @@ function validatePresetStructure(presetId, nodes, depth) {
|
|
|
2758
2974
|
}
|
|
2759
2975
|
}
|
|
2760
2976
|
}
|
|
2977
|
+
|
|
2978
|
+
// src/builders/view-builder.ts
|
|
2761
2979
|
var GroupBuilder = class {
|
|
2762
2980
|
constructor(id, label) {
|
|
2763
2981
|
this.data = { type: "fields", fields: [] };
|
|
@@ -2898,22 +3116,6 @@ var RelationGroupBuilder = class {
|
|
|
2898
3116
|
return this.data;
|
|
2899
3117
|
}
|
|
2900
3118
|
};
|
|
2901
|
-
function validateViewName(name, builderName, examples) {
|
|
2902
|
-
const viewNameSchema = z2.z.string().min(1, "View name cannot be empty").max(63, "View name is too long (max 63 characters)").regex(/^[a-z][a-z0-9-]*$/, {
|
|
2903
|
-
message: `Invalid view name format.
|
|
2904
|
-
Name must be in kebab-case:
|
|
2905
|
-
\u2705 Valid: ${examples.valid}
|
|
2906
|
-
\u274C Invalid: ${examples.invalid}`
|
|
2907
|
-
});
|
|
2908
|
-
try {
|
|
2909
|
-
viewNameSchema.parse(name);
|
|
2910
|
-
} catch (error) {
|
|
2911
|
-
if (error instanceof z2.z.ZodError) {
|
|
2912
|
-
throw new Error(`[${builderName}] ${error.issues[0].message}`);
|
|
2913
|
-
}
|
|
2914
|
-
throw error;
|
|
2915
|
-
}
|
|
2916
|
-
}
|
|
2917
3119
|
var TableTabConfig = class {
|
|
2918
3120
|
/** @internal */
|
|
2919
3121
|
constructor(view, tabData) {
|
|
@@ -3135,13 +3337,13 @@ var ActivityTabConfig = class {
|
|
|
3135
3337
|
return this.view.build();
|
|
3136
3338
|
}
|
|
3137
3339
|
};
|
|
3138
|
-
var
|
|
3340
|
+
var AddressMatchedTabConfig = class {
|
|
3139
3341
|
/** @internal */
|
|
3140
|
-
constructor(view, base) {
|
|
3342
|
+
constructor(view, base, type) {
|
|
3141
3343
|
this.view = view;
|
|
3142
|
-
this.tabData = { ...base, type
|
|
3344
|
+
this.tabData = { ...base, type, emailAttributeIds: [] };
|
|
3143
3345
|
}
|
|
3144
|
-
/** Set the text attributes whose values are matched against
|
|
3346
|
+
/** Set the text attributes whose values are matched against participants. */
|
|
3145
3347
|
emailAttributes(...attributeIds) {
|
|
3146
3348
|
this.tabData.emailAttributeIds = attributeIds;
|
|
3147
3349
|
return this;
|
|
@@ -3168,6 +3370,18 @@ var EmailsTabConfig = class {
|
|
|
3168
3370
|
return this.view.build();
|
|
3169
3371
|
}
|
|
3170
3372
|
};
|
|
3373
|
+
var EmailsTabConfig = class extends AddressMatchedTabConfig {
|
|
3374
|
+
/** @internal */
|
|
3375
|
+
constructor(view, base) {
|
|
3376
|
+
super(view, base, "emails");
|
|
3377
|
+
}
|
|
3378
|
+
};
|
|
3379
|
+
var MeetingsTabConfig = class extends AddressMatchedTabConfig {
|
|
3380
|
+
/** @internal */
|
|
3381
|
+
constructor(view, base) {
|
|
3382
|
+
super(view, base, "meetings");
|
|
3383
|
+
}
|
|
3384
|
+
};
|
|
3171
3385
|
var DocumentsTabConfig = class {
|
|
3172
3386
|
/** @internal */
|
|
3173
3387
|
constructor(view, base) {
|
|
@@ -3337,6 +3551,13 @@ var TabBuilder = class {
|
|
|
3337
3551
|
emails() {
|
|
3338
3552
|
return new EmailsTabConfig(this.view, this.base);
|
|
3339
3553
|
}
|
|
3554
|
+
/**
|
|
3555
|
+
* Create a meetings tab (query-time association via email-bearing attributes)
|
|
3556
|
+
* @example .meetings().emailAttributes("email", "backup_email")
|
|
3557
|
+
*/
|
|
3558
|
+
meetings() {
|
|
3559
|
+
return new MeetingsTabConfig(this.view, this.base);
|
|
3560
|
+
}
|
|
3340
3561
|
/**
|
|
3341
3562
|
* Create a forms tab to launch and track form instances linked to this record
|
|
3342
3563
|
* @example .tab("forms", "Forms").forms()
|
|
@@ -3349,10 +3570,7 @@ var TabBuilder = class {
|
|
|
3349
3570
|
};
|
|
3350
3571
|
var DetailViewBuilder = class {
|
|
3351
3572
|
constructor(name, label) {
|
|
3352
|
-
validateViewName(name
|
|
3353
|
-
valid: "'detail', 'list-view', 'company-detail'",
|
|
3354
|
-
invalid: "'Detail', 'listView', 'list_view'"
|
|
3355
|
-
});
|
|
3573
|
+
validateViewName(name);
|
|
3356
3574
|
this.data = {
|
|
3357
3575
|
name,
|
|
3358
3576
|
label,
|
|
@@ -3472,10 +3690,7 @@ function findProtectedTabFilterAttribute(node) {
|
|
|
3472
3690
|
}
|
|
3473
3691
|
var ListViewBuilder = class {
|
|
3474
3692
|
constructor(name, label) {
|
|
3475
|
-
validateViewName(name
|
|
3476
|
-
valid: "'default', 'list-view', 'active-contacts'",
|
|
3477
|
-
invalid: "'Default', 'listView', 'list_view'"
|
|
3478
|
-
});
|
|
3693
|
+
validateViewName(name);
|
|
3479
3694
|
this.data = {
|
|
3480
3695
|
name,
|
|
3481
3696
|
label,
|
|
@@ -3756,7 +3971,7 @@ var ListViewTabConfigBuilder = class _ListViewTabConfigBuilder {
|
|
|
3756
3971
|
const protectedAttribute = findProtectedTabFilterAttribute(filters);
|
|
3757
3972
|
if (protectedAttribute) {
|
|
3758
3973
|
const message = `Tab filters cannot target "${protectedAttribute}". Use .visibility("private")`;
|
|
3759
|
-
throw new
|
|
3974
|
+
throw new chunkZBWTAKZO_js.ValidationError(message, [{ path: ["filters"], message }]);
|
|
3760
3975
|
}
|
|
3761
3976
|
this.tabData.filters = filters;
|
|
3762
3977
|
return this;
|
|
@@ -3970,7 +4185,7 @@ function jsonFlag(name, defaultValue) {
|
|
|
3970
4185
|
|
|
3971
4186
|
// src/feature-flags/flag-registry.ts
|
|
3972
4187
|
function duplicateFlagError(name) {
|
|
3973
|
-
return new
|
|
4188
|
+
return new chunkZBWTAKZO_js.DuplicateError(
|
|
3974
4189
|
"feature flag",
|
|
3975
4190
|
name,
|
|
3976
4191
|
`Flag "${name}" is already registered. Each flag name must be unique.`
|
|
@@ -4048,7 +4263,7 @@ var FlagRegistry = class {
|
|
|
4048
4263
|
getOrThrow(name) {
|
|
4049
4264
|
const flag = this.get(name);
|
|
4050
4265
|
if (!flag) {
|
|
4051
|
-
throw new
|
|
4266
|
+
throw new chunkZBWTAKZO_js.NotFoundError(
|
|
4052
4267
|
"Feature flag",
|
|
4053
4268
|
name,
|
|
4054
4269
|
void 0,
|
|
@@ -4205,19 +4420,19 @@ var FlagService = class {
|
|
|
4205
4420
|
*/
|
|
4206
4421
|
async setOverride(flagName, level, value, options = {}) {
|
|
4207
4422
|
if (!this.repository) {
|
|
4208
|
-
throw new
|
|
4423
|
+
throw new chunkZBWTAKZO_js.SchemaError(
|
|
4209
4424
|
"Cannot set override: no FeatureFlagsRepository configured. Add featureFlags to your DatabaseAdapter to enable runtime overrides.",
|
|
4210
|
-
|
|
4425
|
+
chunkZBWTAKZO_js.SchemaErrorCode.CONFIGURATION_REQUIRED
|
|
4211
4426
|
);
|
|
4212
4427
|
}
|
|
4213
4428
|
const flag = this.registry.get(flagName);
|
|
4214
4429
|
if (flag && !flag.allowedLevels.includes(level)) {
|
|
4215
4430
|
const message = `Flag "${flagName}" does not allow ${level}-level overrides. Allowed levels: ${flag.allowedLevels.join(", ")}`;
|
|
4216
|
-
throw new
|
|
4431
|
+
throw new chunkZBWTAKZO_js.ValidationError(message, [{ path: ["level"], message }]);
|
|
4217
4432
|
}
|
|
4218
4433
|
if (flag?.system) {
|
|
4219
4434
|
const message = `Flag "${flagName}" is a system flag and cannot be overridden via API.`;
|
|
4220
|
-
throw new
|
|
4435
|
+
throw new chunkZBWTAKZO_js.ValidationError(message, [{ path: ["flagName"], message }]);
|
|
4221
4436
|
}
|
|
4222
4437
|
await this.repository.setOverride({
|
|
4223
4438
|
flagName,
|
|
@@ -4237,9 +4452,9 @@ var FlagService = class {
|
|
|
4237
4452
|
*/
|
|
4238
4453
|
async deleteOverride(flagName, level, targetId) {
|
|
4239
4454
|
if (!this.repository) {
|
|
4240
|
-
throw new
|
|
4455
|
+
throw new chunkZBWTAKZO_js.SchemaError(
|
|
4241
4456
|
"Cannot delete override: no FeatureFlagsRepository configured.",
|
|
4242
|
-
|
|
4457
|
+
chunkZBWTAKZO_js.SchemaErrorCode.CONFIGURATION_REQUIRED
|
|
4243
4458
|
);
|
|
4244
4459
|
}
|
|
4245
4460
|
await this.repository.deleteOverride(flagName, level, targetId);
|
|
@@ -4376,7 +4591,7 @@ var NativeObjectRegistryClass = class {
|
|
|
4376
4591
|
if (!object2.system) {
|
|
4377
4592
|
const message = `[NativeObjectRegistry] Cannot register object "${object2.name}" (id: ${object2.id}): missing system flag.
|
|
4378
4593
|
Native objects must have system=true. Did you call .runtime() on the builder? Remove that call \u2014 objects are system:true by default.`;
|
|
4379
|
-
throw new
|
|
4594
|
+
throw new chunkZBWTAKZO_js.ValidationError(message, []);
|
|
4380
4595
|
}
|
|
4381
4596
|
if (this.objects.has(object2.name)) {
|
|
4382
4597
|
const existing = this.objects.get(object2.name);
|
|
@@ -4384,7 +4599,7 @@ Native objects must have system=true. Did you call .runtime() on the builder? Re
|
|
|
4384
4599
|
- Existing: "${existing?.label}" (id: ${existing?.id})
|
|
4385
4600
|
- New: "${object2.label}" (id: ${object2.id})
|
|
4386
4601
|
Please use unique names for each native object.`;
|
|
4387
|
-
throw new
|
|
4602
|
+
throw new chunkZBWTAKZO_js.DuplicateError("object", object2.name, message);
|
|
4388
4603
|
}
|
|
4389
4604
|
this.objects.set(object2.name, cloneObjectDefinition(object2));
|
|
4390
4605
|
}
|
|
@@ -4416,7 +4631,7 @@ Please use unique names for each native object.`;
|
|
|
4416
4631
|
if (!object2) {
|
|
4417
4632
|
const message = `[NativeObjectRegistry] Native object "${name}" not found.
|
|
4418
4633
|
Available objects: ${this.listNames().join(", ")}`;
|
|
4419
|
-
throw new
|
|
4634
|
+
throw new chunkZBWTAKZO_js.NotFoundError("Native object", name, chunkZBWTAKZO_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
|
|
4420
4635
|
}
|
|
4421
4636
|
return object2;
|
|
4422
4637
|
}
|
|
@@ -4515,19 +4730,36 @@ var SKILL_OBJECT = object({ name: "skill", label: "Skill" }).sealed().icon("spar
|
|
|
4515
4730
|
)
|
|
4516
4731
|
).attribute(richtext({ name: "content", label: "Content" }).defaultValue(SKILL_CONTENT_TEMPLATE)).build();
|
|
4517
4732
|
var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().tab("files", "Files").documents().done().build();
|
|
4518
|
-
var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("workspace", "Skills").default().icon("table").visibility("workspace").table().columns("name", "description").sort("name", "asc").tab("mine", "
|
|
4519
|
-
var MEMORY_OBJECT = object({ name: "memory", label: "Memory" }).sealed().icon("database").order(Number.MAX_SAFE_INTEGER).pluralLabel("Memories").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").attribute(text({ name: "name", label: "Name" }).maxLength(constants.MEMORY_NAME_MAX_LENGTH).required()).attribute(
|
|
4733
|
+
var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("workspace", "Skills").default().icon("table").visibility("workspace").table().columns("name", "description").sort("name", "asc").tab("mine", "My skills").icon("lock").visibility("private").table().columns("name", "description").sort("name", "asc").build();
|
|
4734
|
+
var MEMORY_OBJECT = object({ name: "memory", label: "Memory" }).sealed().icon("database").order(Number.MAX_SAFE_INTEGER).pluralLabel("Memories").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").migration(2, (migration) => migration.changeType("content", "text", "richtext")).attribute(text({ name: "name", label: "Name" }).maxLength(constants.MEMORY_NAME_MAX_LENGTH).required()).attribute(
|
|
4520
4735
|
text({ name: "description", label: "Description" }).multiline().maxLength(constants.MEMORY_DESCRIPTION_MAX_LENGTH).required()
|
|
4521
|
-
).attribute(
|
|
4736
|
+
).attribute(richtext({ name: "content", label: "Content" })).attribute(
|
|
4522
4737
|
select({ name: "kind", label: "Kind" }).options([
|
|
4523
4738
|
{ value: "fact", label: "Fact" },
|
|
4524
4739
|
{ value: "preference", label: "Preference" },
|
|
4525
4740
|
{ value: "feedback", label: "Feedback" },
|
|
4526
4741
|
{ value: "reference", label: "Reference" }
|
|
4527
4742
|
])
|
|
4528
|
-
).attribute(relation({ name: "subjects", label: "Subjects" }).toAny().many()).attribute(relation({ name: "links", label: "Links" }).to("memory").many()).
|
|
4529
|
-
|
|
4530
|
-
|
|
4743
|
+
).attribute(relation({ name: "subjects", label: "Subjects" }).toAny().many()).attribute(relation({ name: "links", label: "Links" }).to("memory").many()).attribute(
|
|
4744
|
+
select({ name: "source", label: "Source" }).options([
|
|
4745
|
+
{ value: "explicit", label: "Saved by an agent" },
|
|
4746
|
+
{ value: "extracted", label: "Extracted from a session" },
|
|
4747
|
+
{ value: "corroborated", label: "Corroborated across users" }
|
|
4748
|
+
])
|
|
4749
|
+
).attribute(date({ name: "validFrom", label: "Valid from" }).includeTime()).attribute(date({ name: "invalidAt", label: "Invalid at" }).includeTime()).attribute(relation({ name: "supersededBy", label: "Superseded by" }).to("memory")).build();
|
|
4750
|
+
var MEMORY_VIEW = detailView("memory-detail", "Memory").for("memory").default().sidePanel({
|
|
4751
|
+
attributes: [
|
|
4752
|
+
"description",
|
|
4753
|
+
"kind",
|
|
4754
|
+
"source",
|
|
4755
|
+
"validFrom",
|
|
4756
|
+
"invalidAt",
|
|
4757
|
+
"supersededBy",
|
|
4758
|
+
"subjects",
|
|
4759
|
+
"links"
|
|
4760
|
+
]
|
|
4761
|
+
}).tab("content", "Content").richtext("content").titleAttribute("name").build();
|
|
4762
|
+
var MEMORY_LIST_VIEW = listView("memory-list", "Memories").for("memory").default().tab("workspace", "Memories").default().icon("table").visibility("workspace").table().columns("name", "kind", "description", "createdAt").sort("name", "asc").tab("mine", "My memories").icon("lock").visibility("private").table().columns("name", "kind", "description", "createdAt").sort("name", "asc").build();
|
|
4531
4763
|
|
|
4532
4764
|
// src/views/registry.ts
|
|
4533
4765
|
function cloneViewDefinition(view) {
|
|
@@ -4555,7 +4787,7 @@ var ViewRegistry = class {
|
|
|
4555
4787
|
const key = this.makeKey(view.object, view.name, view.type);
|
|
4556
4788
|
if (this.views.has(key)) {
|
|
4557
4789
|
const message = `[ViewRegistry] Duplicate view: "${view.name}" (${view.type}) for object "${view.object}"`;
|
|
4558
|
-
throw new
|
|
4790
|
+
throw new chunkZBWTAKZO_js.DuplicateError("view", key, message);
|
|
4559
4791
|
}
|
|
4560
4792
|
const storedView = cloneViewDefinition(view);
|
|
4561
4793
|
this.views.set(key, storedView);
|
|
@@ -4600,7 +4832,7 @@ var ViewRegistry = class {
|
|
|
4600
4832
|
const availableNames = available.map((v) => `${v.name} (${v.type})`).join(", ") || "(none)";
|
|
4601
4833
|
const message = `[ViewRegistry] View "${viewName}" not found for object "${objectName}".
|
|
4602
4834
|
Available views: ${availableNames}`;
|
|
4603
|
-
throw new
|
|
4835
|
+
throw new chunkZBWTAKZO_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
|
|
4604
4836
|
}
|
|
4605
4837
|
return view;
|
|
4606
4838
|
}
|
|
@@ -4688,7 +4920,7 @@ var viewRegistry = new ViewRegistry();
|
|
|
4688
4920
|
// src/views/auto-generator.ts
|
|
4689
4921
|
function getRuntimeAttributes(attributes, excludeNames = []) {
|
|
4690
4922
|
return attributes.filter(
|
|
4691
|
-
(attr) => !(!
|
|
4923
|
+
(attr) => !(!chunkQMAVKX3Y_js.getAttributeCapabilities(attr).lifecycle.visibleInRuntime || attr.system || excludeNames.includes(attr.name))
|
|
4692
4924
|
);
|
|
4693
4925
|
}
|
|
4694
4926
|
function sortAttributes(attributes) {
|
|
@@ -4721,7 +4953,7 @@ function generateDefaultDetailView(object2, options = {}) {
|
|
|
4721
4953
|
const { includeActivityTab = true, includeDocumentsTab = true, excludeAttributes = [] } = options;
|
|
4722
4954
|
const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
|
|
4723
4955
|
const sortedAttrs = sortAttributes(
|
|
4724
|
-
runtimeAttrs.filter((attr) =>
|
|
4956
|
+
runtimeAttrs.filter((attr) => chunkQMAVKX3Y_js.getAttributeCapabilities(attr).presentation.formField)
|
|
4725
4957
|
);
|
|
4726
4958
|
const formTab = {
|
|
4727
4959
|
id: "form",
|
|
@@ -4778,7 +5010,7 @@ function generateDefaultListView(object2, options = {}) {
|
|
|
4778
5010
|
const { excludeAttributes = [], maxListColumns = 5 } = options;
|
|
4779
5011
|
const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
|
|
4780
5012
|
const sortedAttrs = sortAttributes(
|
|
4781
|
-
runtimeAttrs.filter((attr) =>
|
|
5013
|
+
runtimeAttrs.filter((attr) => chunkQMAVKX3Y_js.getAttributeCapabilities(attr).presentation.defaultColumn)
|
|
4782
5014
|
);
|
|
4783
5015
|
const columns = sortedAttrs.slice(0, maxListColumns).map((attr) => attr.name);
|
|
4784
5016
|
const config = {
|
|
@@ -4908,7 +5140,7 @@ var FormRegistry = class {
|
|
|
4908
5140
|
const forms = Array.isArray(formOrForms) ? formOrForms : [formOrForms];
|
|
4909
5141
|
for (const f of forms) {
|
|
4910
5142
|
if (this.forms.has(f.name)) {
|
|
4911
|
-
throw new
|
|
5143
|
+
throw new chunkZBWTAKZO_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
|
|
4912
5144
|
}
|
|
4913
5145
|
this.forms.set(f.name, cloneFormDefinition(f));
|
|
4914
5146
|
}
|
|
@@ -4936,6 +5168,65 @@ var FormRegistry = class {
|
|
|
4936
5168
|
};
|
|
4937
5169
|
var formRegistry = new FormRegistry();
|
|
4938
5170
|
|
|
5171
|
+
// src/realtime/agent-ui-message-batch.ts
|
|
5172
|
+
var AGENT_UI_BATCH_MAX_BYTES = 204800;
|
|
5173
|
+
var AGENT_UI_BATCH_MAX_ITEMS = 256;
|
|
5174
|
+
function isRecord(value) {
|
|
5175
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5176
|
+
}
|
|
5177
|
+
function hasExactKeys(value, allowed) {
|
|
5178
|
+
const keys = Object.keys(value);
|
|
5179
|
+
return keys.length === allowed.length && keys.every((key) => allowed.includes(key));
|
|
5180
|
+
}
|
|
5181
|
+
function isPositiveInteger(value) {
|
|
5182
|
+
return typeof value === "number" && Number.isInteger(value) && value > 0;
|
|
5183
|
+
}
|
|
5184
|
+
function isNonNegativeInteger(value) {
|
|
5185
|
+
return typeof value === "number" && Number.isInteger(value) && value >= 0;
|
|
5186
|
+
}
|
|
5187
|
+
function isContentRange(value) {
|
|
5188
|
+
if (!(isRecord(value) && hasExactKeys(value, ["kind", "startOffset", "endOffset"]))) {
|
|
5189
|
+
return false;
|
|
5190
|
+
}
|
|
5191
|
+
return (value.kind === "text" || value.kind === "reasoning") && isNonNegativeInteger(value.startOffset) && isNonNegativeInteger(value.endOffset) && value.endOffset >= value.startOffset;
|
|
5192
|
+
}
|
|
5193
|
+
function isBatchItem(value) {
|
|
5194
|
+
if (!isRecord(value)) return false;
|
|
5195
|
+
const expectedKeys = value.content === void 0 ? ["sequence", "chunk"] : ["sequence", "content", "chunk"];
|
|
5196
|
+
return hasExactKeys(value, expectedKeys) && isPositiveInteger(value.sequence) && value.chunk !== void 0 && (value.content === void 0 || isContentRange(value.content));
|
|
5197
|
+
}
|
|
5198
|
+
function encodedSize(value) {
|
|
5199
|
+
try {
|
|
5200
|
+
return new TextEncoder().encode(JSON.stringify(value)).byteLength;
|
|
5201
|
+
} catch {
|
|
5202
|
+
return void 0;
|
|
5203
|
+
}
|
|
5204
|
+
}
|
|
5205
|
+
function isAgentUIMessageBatch(value) {
|
|
5206
|
+
if (!(isRecord(value) && hasExactKeys(value, [
|
|
5207
|
+
"schemaVersion",
|
|
5208
|
+
"batchId",
|
|
5209
|
+
"tenantId",
|
|
5210
|
+
"sessionId",
|
|
5211
|
+
"streamId",
|
|
5212
|
+
"sequenceStart",
|
|
5213
|
+
"sequenceEnd",
|
|
5214
|
+
"items"
|
|
5215
|
+
])) || value.schemaVersion !== 1 || typeof value.batchId !== "string" || value.batchId.trim() === "" || typeof value.tenantId !== "string" || value.tenantId.trim() === "" || typeof value.sessionId !== "string" || value.sessionId.trim() === "" || typeof value.streamId !== "string" || value.streamId.trim() === "" || !isPositiveInteger(value.sequenceStart) || !isPositiveInteger(value.sequenceEnd) || !Array.isArray(value.items) || value.items.length === 0 || value.items.length > AGENT_UI_BATCH_MAX_ITEMS || !value.items.every(isBatchItem)) {
|
|
5216
|
+
return false;
|
|
5217
|
+
}
|
|
5218
|
+
let previous = 0;
|
|
5219
|
+
for (const item of value.items) {
|
|
5220
|
+
if (item.sequence <= previous) return false;
|
|
5221
|
+
previous = item.sequence;
|
|
5222
|
+
}
|
|
5223
|
+
if (value.items[0]?.sequence !== value.sequenceStart || value.items.at(-1)?.sequence !== value.sequenceEnd) {
|
|
5224
|
+
return false;
|
|
5225
|
+
}
|
|
5226
|
+
const size = encodedSize(value);
|
|
5227
|
+
return size !== void 0 && size <= AGENT_UI_BATCH_MAX_BYTES;
|
|
5228
|
+
}
|
|
5229
|
+
|
|
4939
5230
|
// src/realtime/channels.ts
|
|
4940
5231
|
function liveChannelKey(channel) {
|
|
4941
5232
|
switch (channel.kind) {
|
|
@@ -5001,47 +5292,6 @@ function parseLiveChannelKey(key) {
|
|
|
5001
5292
|
return null;
|
|
5002
5293
|
}
|
|
5003
5294
|
|
|
5004
|
-
// src/realtime/cursors.ts
|
|
5005
|
-
var LIVE_STREAM_START_CURSOR = "0-0";
|
|
5006
|
-
var LIVE_STREAM_CURSOR_PATTERN = /^(0|[1-9]\d*)-(0|[1-9]\d*)$/;
|
|
5007
|
-
function parseLiveStreamCursor(cursor) {
|
|
5008
|
-
if (!LIVE_STREAM_CURSOR_PATTERN.test(cursor)) {
|
|
5009
|
-
return null;
|
|
5010
|
-
}
|
|
5011
|
-
const [milliseconds = "0", sequence = "0"] = cursor.split("-");
|
|
5012
|
-
return [BigInt(milliseconds), BigInt(sequence)];
|
|
5013
|
-
}
|
|
5014
|
-
function isLiveStreamCursor(value) {
|
|
5015
|
-
return typeof value === "string" && parseLiveStreamCursor(value) !== null;
|
|
5016
|
-
}
|
|
5017
|
-
function assertLiveStreamCursor(cursor, label = "cursor") {
|
|
5018
|
-
if (cursor === null) {
|
|
5019
|
-
return;
|
|
5020
|
-
}
|
|
5021
|
-
if (!isLiveStreamCursor(cursor)) {
|
|
5022
|
-
throw new Error(`Invalid live stream cursor for ${label}: ${cursor}`);
|
|
5023
|
-
}
|
|
5024
|
-
}
|
|
5025
|
-
function compareLiveStreamCursors(left, right) {
|
|
5026
|
-
const leftCursor = parseLiveStreamCursor(left);
|
|
5027
|
-
if (!leftCursor) {
|
|
5028
|
-
throw new Error(`Invalid live stream cursor for left: ${left}`);
|
|
5029
|
-
}
|
|
5030
|
-
const rightCursor = parseLiveStreamCursor(right);
|
|
5031
|
-
if (!rightCursor) {
|
|
5032
|
-
throw new Error(`Invalid live stream cursor for right: ${right}`);
|
|
5033
|
-
}
|
|
5034
|
-
const [leftMilliseconds, leftSequence] = leftCursor;
|
|
5035
|
-
const [rightMilliseconds, rightSequence] = rightCursor;
|
|
5036
|
-
if (leftMilliseconds !== rightMilliseconds) {
|
|
5037
|
-
return leftMilliseconds < rightMilliseconds ? -1 : 1;
|
|
5038
|
-
}
|
|
5039
|
-
if (leftSequence !== rightSequence) {
|
|
5040
|
-
return leftSequence < rightSequence ? -1 : 1;
|
|
5041
|
-
}
|
|
5042
|
-
return 0;
|
|
5043
|
-
}
|
|
5044
|
-
|
|
5045
5295
|
// src/realtime/events.ts
|
|
5046
5296
|
var BROWSER_PREVIEW_STATUSES = ["live", "paused", "ended", "disconnected"];
|
|
5047
5297
|
var LIVE_EVENT_TYPE_REGISTRY = {
|
|
@@ -5126,13 +5376,13 @@ function isLiveEventType(value) {
|
|
|
5126
5376
|
return typeof value === "string" && LIVE_EVENT_TYPES.includes(value);
|
|
5127
5377
|
}
|
|
5128
5378
|
function isLiveEventPayload(payload) {
|
|
5129
|
-
if (!(
|
|
5379
|
+
if (!(isRecord2(payload) && isLiveEventType(payload.type))) {
|
|
5130
5380
|
return false;
|
|
5131
5381
|
}
|
|
5132
5382
|
return isLiveEventPayloadForType(payload.type, payload);
|
|
5133
5383
|
}
|
|
5134
5384
|
function isLiveEventPayloadForType(type, payload) {
|
|
5135
|
-
if (!
|
|
5385
|
+
if (!isRecord2(payload)) {
|
|
5136
5386
|
return false;
|
|
5137
5387
|
}
|
|
5138
5388
|
switch (type) {
|
|
@@ -5166,7 +5416,7 @@ function isLiveEventPayloadForType(type, payload) {
|
|
|
5166
5416
|
return false;
|
|
5167
5417
|
}
|
|
5168
5418
|
}
|
|
5169
|
-
function
|
|
5419
|
+
function isRecord2(value) {
|
|
5170
5420
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5171
5421
|
}
|
|
5172
5422
|
function isString(value) {
|
|
@@ -5228,13 +5478,13 @@ function isNotificationWorkState(value) {
|
|
|
5228
5478
|
return isOneOf(value, NOTIFICATION_WORK_STATES);
|
|
5229
5479
|
}
|
|
5230
5480
|
function isNotificationSubject(value) {
|
|
5231
|
-
return
|
|
5481
|
+
return isRecord2(value) && hasString(value, "type") && hasString(value, "id");
|
|
5232
5482
|
}
|
|
5233
5483
|
function isRecordFieldPatch(value) {
|
|
5234
|
-
return
|
|
5484
|
+
return isRecord2(value) && hasString(value, "fieldKey") && Object.hasOwn(value, "value") && hasVersion(value, "version");
|
|
5235
5485
|
}
|
|
5236
5486
|
function isRecordPatchPayload(payload) {
|
|
5237
|
-
return payload.type === "record.patch" && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && hasOptional(payload, "label", isString) && hasOptional(payload, "metadata",
|
|
5487
|
+
return payload.type === "record.patch" && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && hasOptional(payload, "label", isString) && hasOptional(payload, "metadata", isRecord2) && Array.isArray(payload.fieldPatches) && payload.fieldPatches.every(isRecordFieldPatch) && hasString(payload, "updatedAt");
|
|
5238
5488
|
}
|
|
5239
5489
|
function isRecordDeletedPayload(payload) {
|
|
5240
5490
|
return payload.type === "record.deleted" && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && hasString(payload, "deletedAt");
|
|
@@ -5243,7 +5493,7 @@ function isRecordRemovedPayload(payload) {
|
|
|
5243
5493
|
return payload.type === "record.removed" && hasOnlyKeys(payload, RECORD_REMOVED_PAYLOAD_KEYS) && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion");
|
|
5244
5494
|
}
|
|
5245
5495
|
function isRecordLiveSnapshot(value) {
|
|
5246
|
-
return
|
|
5496
|
+
return isRecord2(value) && hasOnlyKeys(value, RECORD_LIVE_SNAPSHOT_KEYS) && hasString(value, "id") && hasString(value, "objectId") && isOneOf(value.visibility, ["workspace", "private"]) && isNullableString(value.ownedBy) && (value.visibility === "workspace" && value.ownedBy === null || value.visibility === "private" && isNonEmptyString(value.ownedBy)) && hasString(value, "label") && isRecord2(value.values) && hasOptional(value, "metadata", isRecord2) && hasIsoDateString(value, "createdAt") && hasIsoDateString(value, "updatedAt") && hasOptional(value, "createdBy", isString) && hasOptional(value, "lastUpdatedBy", isString) && hasVersion(value, "schemaVersion");
|
|
5247
5497
|
}
|
|
5248
5498
|
function isRecordCreatedPayload(payload) {
|
|
5249
5499
|
return payload.type === "record.created" && hasOnlyKeys(payload, RECORD_CREATED_PAYLOAD_KEYS) && hasString(payload, "objectId") && hasString(payload, "recordId") && hasVersion(payload, "recordVersion") && isRecordLiveSnapshot(payload.record) && payload.record.id === payload.recordId && payload.record.objectId === payload.objectId;
|
|
@@ -5252,19 +5502,19 @@ function isViewProjectionStalePayload(payload) {
|
|
|
5252
5502
|
return payload.type === "view.projection.stale" && hasString(payload, "viewId") && isOneOf(payload.reason, VIEW_PROJECTION_STALE_REASONS);
|
|
5253
5503
|
}
|
|
5254
5504
|
function isAgentSessionPatchPayload(payload) {
|
|
5255
|
-
return payload.type === "agent.session.patch" && hasString(payload, "sessionId") &&
|
|
5505
|
+
return payload.type === "agent.session.patch" && hasString(payload, "sessionId") && isRecord2(payload.patch) && hasVersion(payload, "version") && hasString(payload, "updatedAt");
|
|
5256
5506
|
}
|
|
5257
5507
|
function isAgentUnreadPatchPayload(payload) {
|
|
5258
|
-
return payload.type === "agent.unread.patch" && hasString(payload, "targetActorId") && hasString(payload, "sessionId") && hasVersion(payload, "unreadCount") && hasVersion(payload, "version") && hasString(payload, "updatedAt") && (!Object.hasOwn(payload, "session") ||
|
|
5508
|
+
return payload.type === "agent.unread.patch" && hasString(payload, "targetActorId") && hasString(payload, "sessionId") && hasVersion(payload, "unreadCount") && hasVersion(payload, "version") && hasString(payload, "updatedAt") && (!Object.hasOwn(payload, "session") || isRecord2(payload.session) && payload.session.id === payload.sessionId);
|
|
5259
5509
|
}
|
|
5260
5510
|
function isLiveNotification(value) {
|
|
5261
|
-
return
|
|
5511
|
+
return isRecord2(value) && hasString(value, "id") && hasString(value, "tenantId") && hasOptional(value, "senderActorId", isString) && hasOptional(value, "rootActorId", isString) && hasOptional(value, "triggeredByActorId", isString) && isNotificationKind(value.kind) && hasString(value, "type") && hasOptional(value, "subject", isNotificationSubject) && hasString(value, "title") && hasOptional(value, "summary", isString) && isRecord2(value.payload) && isNotificationPriority(value.priority) && isNotificationSensitivity(value.sensitivity) && hasOptional(value, "threadKey", isString) && hasOptional(value, "idempotencyKey", isString) && hasOptional(value, "expiresAt", isIsoDateString) && hasIsoDateString(value, "createdAt") && hasIsoDateString(value, "updatedAt");
|
|
5262
5512
|
}
|
|
5263
5513
|
function isLiveNotificationRecipient(value) {
|
|
5264
|
-
return
|
|
5514
|
+
return isRecord2(value) && hasString(value, "id") && hasString(value, "tenantId") && hasString(value, "notificationId") && hasString(value, "recipientActorId") && isNotificationInboxState(value.inboxState) && isNotificationWorkState(value.workState) && hasOptional(value, "lockedAt", isIsoDateString) && hasOptional(value, "lockedByActorId", isString) && hasOptional(value, "readAt", isIsoDateString) && hasOptional(value, "archivedAt", isIsoDateString) && hasOptional(value, "snoozedUntil", isIsoDateString) && hasOptional(value, "completedAt", isIsoDateString) && hasOptional(value, "dismissedAt", isIsoDateString) && hasIsoDateString(value, "createdAt") && hasIsoDateString(value, "updatedAt");
|
|
5265
5515
|
}
|
|
5266
5516
|
function isNotificationRecipientPatch(value) {
|
|
5267
|
-
if (!
|
|
5517
|
+
if (!isRecord2(value)) {
|
|
5268
5518
|
return false;
|
|
5269
5519
|
}
|
|
5270
5520
|
return Object.keys(value).every(
|
|
@@ -5288,14 +5538,14 @@ function isConversationRenamedPayload(payload) {
|
|
|
5288
5538
|
}
|
|
5289
5539
|
function isBrowserPreviewUpdatedPayload(payload) {
|
|
5290
5540
|
const preview = payload.preview;
|
|
5291
|
-
return payload.type === "browser.preview.updated" && hasOnlyKeys(payload, BROWSER_PREVIEW_UPDATED_PAYLOAD_KEYS) &&
|
|
5541
|
+
return payload.type === "browser.preview.updated" && hasOnlyKeys(payload, BROWSER_PREVIEW_UPDATED_PAYLOAD_KEYS) && isRecord2(preview) && hasOnlyKeys(preview, BROWSER_PREVIEW_DESCRIPTOR_KEYS) && hasNonEmptyString(preview, "previewId") && hasNonEmptyString(preview, "rootSessionId") && hasNonEmptyString(preview, "agentSessionId") && hasNonEmptyString(preview, "browserSession") && isOneOf(preview.status, BROWSER_PREVIEW_STATUSES) && hasVersion(preview, "sequence") && hasIsoDateString(preview, "updatedAt") && preview.previewId === `browser:${preview.agentSessionId}:${preview.browserSession}`;
|
|
5292
5542
|
}
|
|
5293
5543
|
function isChannelRevokedPayload(payload) {
|
|
5294
5544
|
return payload.type === "channel.revoked" && hasString(payload, "channel") && isOneOf(payload.reason, CHANNEL_REVOKED_REASONS);
|
|
5295
5545
|
}
|
|
5296
5546
|
|
|
5297
5547
|
// src/realtime/protocol.ts
|
|
5298
|
-
function
|
|
5548
|
+
function isRecord3(value) {
|
|
5299
5549
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5300
5550
|
}
|
|
5301
5551
|
function payloadChannel(payload) {
|
|
@@ -5303,46 +5553,11 @@ function payloadChannel(payload) {
|
|
|
5303
5553
|
return typeof channel === "string" && parseLiveChannelKey(channel) ? channel : null;
|
|
5304
5554
|
}
|
|
5305
5555
|
function getLiveProtocolPayloadChannel(payload) {
|
|
5306
|
-
return
|
|
5556
|
+
return isRecord3(payload) ? payloadChannel(payload) : null;
|
|
5307
5557
|
}
|
|
5308
5558
|
function isLiveEventEnvelope(payload) {
|
|
5309
|
-
if (!
|
|
5310
|
-
return typeof payload.id === "string" &&
|
|
5311
|
-
}
|
|
5312
|
-
function parseLiveSubscribePayload(payload) {
|
|
5313
|
-
if (!isRecord2(payload)) return null;
|
|
5314
|
-
const channel = payloadChannel(payload);
|
|
5315
|
-
if (!channel) return null;
|
|
5316
|
-
const { cursor } = payload;
|
|
5317
|
-
if (cursor !== void 0 && cursor !== null) {
|
|
5318
|
-
if (typeof cursor !== "string" || !isLiveStreamCursor(cursor)) {
|
|
5319
|
-
return null;
|
|
5320
|
-
}
|
|
5321
|
-
}
|
|
5322
|
-
return { channel, cursor: cursor ?? null };
|
|
5323
|
-
}
|
|
5324
|
-
function parseLiveUnsubscribePayload(payload) {
|
|
5325
|
-
if (payload === void 0 || payload === null) return {};
|
|
5326
|
-
if (!isRecord2(payload)) return null;
|
|
5327
|
-
if (!Object.hasOwn(payload, "channel")) {
|
|
5328
|
-
return {};
|
|
5329
|
-
}
|
|
5330
|
-
const channel = payloadChannel(payload);
|
|
5331
|
-
return channel ? { channel } : null;
|
|
5332
|
-
}
|
|
5333
|
-
function isLiveReplayCompletePayload(payload) {
|
|
5334
|
-
if (!isRecord2(payload)) return false;
|
|
5335
|
-
const channel = payloadChannel(payload);
|
|
5336
|
-
if (!channel) return false;
|
|
5337
|
-
return payload.cursor === null || typeof payload.cursor === "string" && isLiveStreamCursor(payload.cursor);
|
|
5338
|
-
}
|
|
5339
|
-
function isLiveGapPayload(payload) {
|
|
5340
|
-
if (!isRecord2(payload)) return false;
|
|
5341
|
-
return payloadChannel(payload) !== null;
|
|
5342
|
-
}
|
|
5343
|
-
function isLiveErrorPayload(payload) {
|
|
5344
|
-
if (!isRecord2(payload)) return false;
|
|
5345
|
-
return payloadChannel(payload) !== null;
|
|
5559
|
+
if (!isRecord3(payload)) return false;
|
|
5560
|
+
return typeof payload.id === "string" && payload.id.length > 0 && typeof payload.channel === "string" && typeof payload.type === "string" && typeof payload.tenantId === "string" && payload.tenantId.length > 0 && typeof payload.occurredAt === "string" && isRecord3(payload.payload);
|
|
5346
5561
|
}
|
|
5347
5562
|
|
|
5348
5563
|
// src/computed/functions.ts
|
|
@@ -5486,7 +5701,7 @@ function assertAcyclicComputedDependencies(nodes) {
|
|
|
5486
5701
|
}
|
|
5487
5702
|
function parseCompileFormula(expression) {
|
|
5488
5703
|
try {
|
|
5489
|
-
return
|
|
5704
|
+
return chunkDEHBEFGO_js.parseComputedFormula(expression);
|
|
5490
5705
|
} catch (error) {
|
|
5491
5706
|
if (error instanceof Error) {
|
|
5492
5707
|
throw new ComputedFormulaCompileError(error.message);
|
|
@@ -6128,14 +6343,14 @@ function resolvePathPart(value, part) {
|
|
|
6128
6343
|
if (Array.isArray(value)) {
|
|
6129
6344
|
return value.map((item) => resolvePathPart(item, part));
|
|
6130
6345
|
}
|
|
6131
|
-
if (!
|
|
6346
|
+
if (!isPlainRecord2(value)) {
|
|
6132
6347
|
return null;
|
|
6133
6348
|
}
|
|
6134
6349
|
if (Object.hasOwn(value, part)) {
|
|
6135
6350
|
return value[part] ?? null;
|
|
6136
6351
|
}
|
|
6137
6352
|
const nestedValues = value.values;
|
|
6138
|
-
if (
|
|
6353
|
+
if (isPlainRecord2(nestedValues) && Object.hasOwn(nestedValues, part)) {
|
|
6139
6354
|
return nestedValues[part] ?? null;
|
|
6140
6355
|
}
|
|
6141
6356
|
return null;
|
|
@@ -6237,9 +6452,9 @@ function evaluateCall(functionName, args) {
|
|
|
6237
6452
|
case "percent_not_empty":
|
|
6238
6453
|
return percentByEmptyState(args[0], false);
|
|
6239
6454
|
case "count_empty":
|
|
6240
|
-
return collectionItems(args[0]).filter(
|
|
6455
|
+
return collectionItems(args[0]).filter(chunkNELH4AXI_js.isNullishOrEmptyString).length;
|
|
6241
6456
|
case "count_not_empty":
|
|
6242
|
-
return collectionItems(args[0]).filter((item) => !
|
|
6457
|
+
return collectionItems(args[0]).filter((item) => !chunkNELH4AXI_js.isNullishOrEmptyString(item)).length;
|
|
6243
6458
|
case "count_unique":
|
|
6244
6459
|
return uniqueNonEmpty(collectionItems(args[0])).length;
|
|
6245
6460
|
default:
|
|
@@ -6282,14 +6497,14 @@ function percentByEmptyState(value, countEmpty) {
|
|
|
6282
6497
|
if (items.length === 0) {
|
|
6283
6498
|
return 0;
|
|
6284
6499
|
}
|
|
6285
|
-
const count = items.filter((item) =>
|
|
6500
|
+
const count = items.filter((item) => chunkNELH4AXI_js.isNullishOrEmptyString(item) === countEmpty).length;
|
|
6286
6501
|
return count / items.length;
|
|
6287
6502
|
}
|
|
6288
6503
|
function uniqueNonEmpty(values) {
|
|
6289
6504
|
const seen = /* @__PURE__ */ new Set();
|
|
6290
6505
|
const result = [];
|
|
6291
6506
|
for (const value of values) {
|
|
6292
|
-
if (
|
|
6507
|
+
if (chunkNELH4AXI_js.isNullishOrEmptyString(value)) {
|
|
6293
6508
|
continue;
|
|
6294
6509
|
}
|
|
6295
6510
|
const key = uniqueKey(value);
|
|
@@ -6310,9 +6525,6 @@ function collectionItems(value) {
|
|
|
6310
6525
|
function flatten(values) {
|
|
6311
6526
|
return values.flat(Number.POSITIVE_INFINITY);
|
|
6312
6527
|
}
|
|
6313
|
-
function isEmptyValue(value) {
|
|
6314
|
-
return value === null || value === void 0 || value === "";
|
|
6315
|
-
}
|
|
6316
6528
|
function toFiniteNumber(value) {
|
|
6317
6529
|
if (typeof value === "number") {
|
|
6318
6530
|
return Number.isFinite(value) ? value : null;
|
|
@@ -6321,14 +6533,23 @@ function toFiniteNumber(value) {
|
|
|
6321
6533
|
const parsed = Number(value);
|
|
6322
6534
|
return Number.isFinite(parsed) ? parsed : null;
|
|
6323
6535
|
}
|
|
6536
|
+
if (isCurrencyValue(value)) {
|
|
6537
|
+
return Number.isFinite(value.value) ? value.value : null;
|
|
6538
|
+
}
|
|
6324
6539
|
return null;
|
|
6325
6540
|
}
|
|
6541
|
+
function isCurrencyValue(value) {
|
|
6542
|
+
return typeof value === "object" && value !== null && typeof value.value === "number" && typeof value.code === "string";
|
|
6543
|
+
}
|
|
6326
6544
|
function toDate(value) {
|
|
6327
6545
|
if (value instanceof Date) {
|
|
6328
6546
|
return Number.isNaN(value.getTime()) ? null : value;
|
|
6329
6547
|
}
|
|
6330
6548
|
if (typeof value !== "string") {
|
|
6331
|
-
|
|
6549
|
+
const start = dateValueStart(value);
|
|
6550
|
+
if (start === null) return null;
|
|
6551
|
+
const ranged = new Date(start);
|
|
6552
|
+
return Number.isNaN(ranged.getTime()) ? null : ranged;
|
|
6332
6553
|
}
|
|
6333
6554
|
const date2 = new Date(value);
|
|
6334
6555
|
return Number.isNaN(date2.getTime()) ? null : date2;
|
|
@@ -6343,7 +6564,7 @@ function uniqueKey(value) {
|
|
|
6343
6564
|
}
|
|
6344
6565
|
return `${typeof value}:${JSON.stringify(value)}`;
|
|
6345
6566
|
}
|
|
6346
|
-
function
|
|
6567
|
+
function isPlainRecord2(value) {
|
|
6347
6568
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6348
6569
|
}
|
|
6349
6570
|
function formatComputedResult(value, returnType, decimals) {
|
|
@@ -6397,11 +6618,11 @@ function evaluateComputedAst(node, input) {
|
|
|
6397
6618
|
return evaluateAst(node, input);
|
|
6398
6619
|
}
|
|
6399
6620
|
function evaluateComputedFormula(expression, input) {
|
|
6400
|
-
return evaluateAst(
|
|
6621
|
+
return evaluateAst(chunkDEHBEFGO_js.parseComputedFormula(expression), input);
|
|
6401
6622
|
}
|
|
6402
6623
|
function evaluateComputedFormulaWithResult(expression, input, returnType, decimals) {
|
|
6403
6624
|
try {
|
|
6404
|
-
const raw = evaluateAst(
|
|
6625
|
+
const raw = evaluateAst(chunkDEHBEFGO_js.parseComputedFormula(expression), input);
|
|
6405
6626
|
const value = returnType ? formatComputedResult(raw, returnType, decimals) : raw;
|
|
6406
6627
|
return { value };
|
|
6407
6628
|
} catch (error) {
|
|
@@ -6526,10 +6747,10 @@ var COMPUTED_FUNCTION_METADATA = [
|
|
|
6526
6747
|
];
|
|
6527
6748
|
|
|
6528
6749
|
// src/filters/operators.ts
|
|
6529
|
-
var isEmpty = (v) => v
|
|
6750
|
+
var isEmpty = (v) => chunkNELH4AXI_js.isNullishOrEmptyString(v) || Array.isArray(v) && v.length === 0;
|
|
6530
6751
|
var toStr = (v) => v == null ? "" : String(v);
|
|
6531
6752
|
var toNum = (v) => {
|
|
6532
|
-
if (v
|
|
6753
|
+
if (chunkNELH4AXI_js.isNullishOrEmptyString(v)) return null;
|
|
6533
6754
|
const n = typeof v === "number" ? v : Number(v);
|
|
6534
6755
|
return Number.isFinite(n) ? n : null;
|
|
6535
6756
|
};
|
|
@@ -6662,7 +6883,7 @@ var OPERATOR_SPECS = {
|
|
|
6662
6883
|
appliesTo: ["date"],
|
|
6663
6884
|
evaluateInMemory: (v, rv) => {
|
|
6664
6885
|
const d = toDate2(v);
|
|
6665
|
-
const bounds =
|
|
6886
|
+
const bounds = chunkQMAVKX3Y_js.resolveIsWithinBounds(rv);
|
|
6666
6887
|
if (!(d && bounds)) return false;
|
|
6667
6888
|
return d.getTime() >= bounds.startMs && d.getTime() < bounds.endMs;
|
|
6668
6889
|
}
|
|
@@ -6695,54 +6916,10 @@ var OPERATOR_SPECS = {
|
|
|
6695
6916
|
}
|
|
6696
6917
|
};
|
|
6697
6918
|
|
|
6698
|
-
// src/filters/extract-filter-value.ts
|
|
6699
|
-
function extractCurrencyFilterValue(value) {
|
|
6700
|
-
if (typeof value === "number") return value;
|
|
6701
|
-
if (value !== null && typeof value === "object" && "value" in value) {
|
|
6702
|
-
const inner = value.value;
|
|
6703
|
-
return typeof inner === "number" ? inner : null;
|
|
6704
|
-
}
|
|
6705
|
-
return null;
|
|
6706
|
-
}
|
|
6707
|
-
function extractFilterValue(value) {
|
|
6708
|
-
if (value === null || value === void 0) return null;
|
|
6709
|
-
if (typeof value === "object" && "value" in value) {
|
|
6710
|
-
return value.value ?? null;
|
|
6711
|
-
}
|
|
6712
|
-
return value;
|
|
6713
|
-
}
|
|
6714
|
-
|
|
6715
|
-
// src/filters/polarity.ts
|
|
6716
|
-
var NEGATIVE_OPERATORS = /* @__PURE__ */ new Set([
|
|
6717
|
-
"is_not",
|
|
6718
|
-
"not_contains",
|
|
6719
|
-
"none_of",
|
|
6720
|
-
"is_empty"
|
|
6721
|
-
]);
|
|
6722
|
-
var NEGATIVE_TO_POSITIVE = {
|
|
6723
|
-
is_not: "is",
|
|
6724
|
-
not_contains: "contains",
|
|
6725
|
-
none_of: "any_of",
|
|
6726
|
-
is_empty: "is_not_empty"
|
|
6727
|
-
};
|
|
6728
|
-
function getOperatorPolarity(op) {
|
|
6729
|
-
return NEGATIVE_OPERATORS.has(op) ? "none" : "any";
|
|
6730
|
-
}
|
|
6731
|
-
function normalizeForEdgeRpc(op) {
|
|
6732
|
-
return NEGATIVE_TO_POSITIVE[op] ?? op;
|
|
6733
|
-
}
|
|
6734
|
-
var SINGLE_TO_MULTI = {
|
|
6735
|
-
is: "any_of",
|
|
6736
|
-
is_not: "none_of"
|
|
6737
|
-
};
|
|
6738
|
-
function toMultiValueOperator(op) {
|
|
6739
|
-
return SINGLE_TO_MULTI[op] ?? op;
|
|
6740
|
-
}
|
|
6741
|
-
|
|
6742
6919
|
// src/filters/evaluate.ts
|
|
6743
6920
|
var systemAttribute = (name, type) => ({ id: `system:${name}`, name, label: name, type, system: true });
|
|
6744
6921
|
var RECORD_SYSTEM_ATTRIBUTES = [
|
|
6745
|
-
...Object.entries(
|
|
6922
|
+
...Object.entries(chunkQMAVKX3Y_js.SYSTEM_FILTER_ATTRIBUTE_TYPES).map(
|
|
6746
6923
|
([name, type]) => systemAttribute(name, type)
|
|
6747
6924
|
)
|
|
6748
6925
|
];
|
|
@@ -6783,7 +6960,7 @@ function evaluateRule(rule, values, attrByName) {
|
|
|
6783
6960
|
(definition) => definition.name === rule.property
|
|
6784
6961
|
);
|
|
6785
6962
|
if (!property) return false;
|
|
6786
|
-
const positiveOperator = normalizeForEdgeRpc(rule.operator);
|
|
6963
|
+
const positiveOperator = chunkQMAVKX3Y_js.normalizeForEdgeRpc(rule.operator);
|
|
6787
6964
|
const propertySpec = OPERATOR_SPECS[positiveOperator];
|
|
6788
6965
|
if (!propertySpec?.appliesTo.includes(property.type)) return false;
|
|
6789
6966
|
const rootValue = values[rule.attribute];
|
|
@@ -6801,7 +6978,7 @@ function evaluateRule(rule, values, attrByName) {
|
|
|
6801
6978
|
property
|
|
6802
6979
|
);
|
|
6803
6980
|
});
|
|
6804
|
-
return (rule.quantifier ?? getOperatorPolarity(rule.operator)) === "none" ? !matches : matches;
|
|
6981
|
+
return (rule.quantifier ?? chunkQMAVKX3Y_js.getOperatorPolarity(rule.operator)) === "none" ? !matches : matches;
|
|
6805
6982
|
}
|
|
6806
6983
|
const spec = OPERATOR_SPECS[rule.operator];
|
|
6807
6984
|
if (!spec) return false;
|
|
@@ -6828,7 +7005,8 @@ function normalizeOperatorComparands(type, operator, storedValue, ruleValue) {
|
|
|
6828
7005
|
if (type === "phone") return normalizePhoneComparands(storedValue, ruleValue);
|
|
6829
7006
|
return [normalizeComparableValue(type, storedValue), normalizeComparableValue(type, ruleValue)];
|
|
6830
7007
|
}
|
|
6831
|
-
function normalizeUtcCalendarDay(
|
|
7008
|
+
function normalizeUtcCalendarDay(raw) {
|
|
7009
|
+
const value = isDateRangeValue(raw) ? dateValueStart(raw) : raw;
|
|
6832
7010
|
if (value instanceof Date)
|
|
6833
7011
|
return Number.isNaN(value.getTime()) ? null : value.toISOString().slice(0, 10);
|
|
6834
7012
|
if (typeof value !== "string" || value === "") return null;
|
|
@@ -6849,8 +7027,9 @@ function normalizePhoneComparands(stored, rule) {
|
|
|
6849
7027
|
return [normalizeOne(stored), normalizeOne(rule)];
|
|
6850
7028
|
}
|
|
6851
7029
|
function normalizeComparableValue(type, value) {
|
|
6852
|
-
if (type === "currency") return extractCurrencyFilterValue(value);
|
|
7030
|
+
if (type === "currency") return chunkQMAVKX3Y_js.extractCurrencyFilterValue(value);
|
|
6853
7031
|
if (type === "date") {
|
|
7032
|
+
if (isDateRangeValue(value)) return dateValueStart(value);
|
|
6854
7033
|
if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value.toISOString();
|
|
6855
7034
|
return value;
|
|
6856
7035
|
}
|
|
@@ -6886,10 +7065,10 @@ function canonicalStringify(value) {
|
|
|
6886
7065
|
case "object":
|
|
6887
7066
|
break;
|
|
6888
7067
|
default:
|
|
6889
|
-
throw new
|
|
7068
|
+
throw new chunkZBWTAKZO_js.ValidationError(`Cannot canonicalize value of type ${typeof v}`, []);
|
|
6890
7069
|
}
|
|
6891
7070
|
const obj = v;
|
|
6892
|
-
if (seen.has(obj)) throw new
|
|
7071
|
+
if (seen.has(obj)) throw new chunkZBWTAKZO_js.ValidationError("Cannot canonicalize circular structure", []);
|
|
6893
7072
|
seen.add(obj);
|
|
6894
7073
|
try {
|
|
6895
7074
|
if (Array.isArray(obj)) return `[${obj.map((e) => encode(e) ?? "null").join(",")}]`;
|
|
@@ -6919,6 +7098,20 @@ function resolveAttributeDefaultValue(attribute, ctx) {
|
|
|
6919
7098
|
return attribute.includeTime ? ctx.now.toISOString() : dateInTimezone(ctx.now, ctx.timezone);
|
|
6920
7099
|
}
|
|
6921
7100
|
|
|
7101
|
+
// src/utils/agent-title.ts
|
|
7102
|
+
var AGENT_FALLBACK_TITLE_MAX_LENGTH = 60;
|
|
7103
|
+
var STORAGE_PLACEHOLDER_TITLE = /^Session \d+$/;
|
|
7104
|
+
function buildAgentFallbackTitle(message) {
|
|
7105
|
+
const normalized = message.replace(/\s+/g, " ").trim().replace(/[.!?]+$/, "");
|
|
7106
|
+
if (!normalized) return "New conversation";
|
|
7107
|
+
return normalized.length > AGENT_FALLBACK_TITLE_MAX_LENGTH ? `${normalized.slice(0, AGENT_FALLBACK_TITLE_MAX_LENGTH - 1).trimEnd()}...` : normalized;
|
|
7108
|
+
}
|
|
7109
|
+
function conversationDisplayTitle(input) {
|
|
7110
|
+
const generated = input.generated?.trim();
|
|
7111
|
+
if (generated && !STORAGE_PLACEHOLDER_TITLE.test(generated)) return generated;
|
|
7112
|
+
return input.firstUserText ? buildAgentFallbackTitle(input.firstUserText) : input.emptyLabel;
|
|
7113
|
+
}
|
|
7114
|
+
|
|
6922
7115
|
// src/utils/view-sync-payload.ts
|
|
6923
7116
|
function viewSyncPayload(view) {
|
|
6924
7117
|
return {
|
|
@@ -6974,10 +7167,10 @@ var attributeNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
|
|
|
6974
7167
|
'The attribute\'s machine name \u2014 the record\'s field key, and what `{{ name }}` refers to in a labelExpression. Must be a valid identifier: starts with a letter or underscore, then only letters/digits/underscores ("montantHt", "first_name", "FIRST_NAME" are valid; "first-name", "first name", "123name" are not). Max 63 characters. Cannot be a name reserved by the record shape itself (id, createdAt, updatedAt, createdBy, lastUpdatedBy, objectId, label, embeddingText, values, metadata, deletedAt, deletedBy, schemaVersion).'
|
|
6975
7168
|
);
|
|
6976
7169
|
var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
|
|
6977
|
-
if (
|
|
7170
|
+
if (chunkQMAVKX3Y_js.RESERVED_OBJECT_NAMES.includes(name)) {
|
|
6978
7171
|
ctx.addIssue({
|
|
6979
7172
|
code: z2.z.ZodIssueCode.custom,
|
|
6980
|
-
message: `"${name}" is a reserved object name (${
|
|
7173
|
+
message: `"${name}" is a reserved object name (${chunkQMAVKX3Y_js.RESERVED_OBJECT_NAMES.join(", ")}) and cannot be used for a new object.`
|
|
6981
7174
|
});
|
|
6982
7175
|
}
|
|
6983
7176
|
try {
|
|
@@ -6991,7 +7184,7 @@ var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
|
|
|
6991
7184
|
function withConfigCheck(schema) {
|
|
6992
7185
|
return schema.superRefine((attribute, ctx) => {
|
|
6993
7186
|
try {
|
|
6994
|
-
const parsedConfig =
|
|
7187
|
+
const parsedConfig = chunkDEHBEFGO_js.parseAttributeConfigForCreate(attribute.type, {
|
|
6995
7188
|
...attribute.config ?? {},
|
|
6996
7189
|
description: attribute.description
|
|
6997
7190
|
});
|
|
@@ -7007,7 +7200,7 @@ function withConfigCheck(schema) {
|
|
|
7007
7200
|
});
|
|
7008
7201
|
}
|
|
7009
7202
|
} catch (error) {
|
|
7010
|
-
if (error instanceof
|
|
7203
|
+
if (error instanceof chunkZBWTAKZO_js.ValidationError) {
|
|
7011
7204
|
for (const issue of error.errors) {
|
|
7012
7205
|
ctx.addIssue({
|
|
7013
7206
|
code: z2.z.ZodIssueCode.custom,
|
|
@@ -7054,7 +7247,7 @@ var plannedObjectSchema = z2.z.object({
|
|
|
7054
7247
|
'Human-readable plural display label (e.g. "Devis"/"Invoices"). Defaults from `label` if omitted.'
|
|
7055
7248
|
),
|
|
7056
7249
|
description: z2.z.string().optional().describe("Help text describing what this object represents."),
|
|
7057
|
-
icon:
|
|
7250
|
+
icon: chunkDEHBEFGO_js.iconNameSchema.describe(
|
|
7058
7251
|
"Required icon name for the object. Must be a catalogue value \u2014 call `search_icons` and use a name it returns verbatim. A name that is not in the catalogue is rejected without any hint as to what would have worked, so never guess one."
|
|
7059
7252
|
),
|
|
7060
7253
|
labelExpression: labelExpressionSchema.describe(
|
|
@@ -7101,7 +7294,7 @@ var destructiveSchema = z2.z.object({
|
|
|
7101
7294
|
)
|
|
7102
7295
|
}).strict().default({ attributeRemovals: [], objectRemovals: [], renames: [] });
|
|
7103
7296
|
var planSummarySchema = z2.z.string().min(1).describe(
|
|
7104
|
-
"
|
|
7297
|
+
"ONE sentence naming the intent of the change \u2014 what it is for, not what it contains. The human approving it has already watched every entry land in the preview window and can read every row of the plan itself, so a recap tells them nothing they do not have. A second sentence is warranted only when `destructive` is non-empty: say plainly what will be lost (e.g. 'deletes the \"ancienMontant\" column and its data on every devis'). Never restate the plan \u2014 explain intent."
|
|
7105
7298
|
);
|
|
7106
7299
|
var CANONICAL_CONFIG_DESCRIPTION = "The COMPLETE config this view should end up with \u2014 not a patch. Copy the baseline returned by get_default_view and edit it, preserving every tab and setting you are not changing: anything you omit is dropped. To change the columns shown, set `tabs[].columns` (an array of attribute names) \u2014 there is no top-level `columns` on either view type. For a detail view's side panel, set `sidePanel.attributes`. Every attribute name listed must already exist on the object, or be created earlier in this same plan. ONE EXCEPTION to omit-is-dropped: a tab with `type: \"custom\"` renders a component belonging to the application, which you cannot describe or recreate. Copy every such tab through from the baseline exactly as it came, `name`, `component` and `props` untouched \u2014 dropping one, inventing one, or altering any of those three is rejected rather than applied (`name` is the tab's address in links, not its wording). Its `label` and `icon` you may change.";
|
|
7107
7300
|
var BASELINE_TOKEN_DESCRIPTION = "Opaque token returned by get_default_view alongside the baseline you edited. REQUIRED when the object already exists \u2014 it proves you authored against the baseline that is still current. Must be OMITTED when this plan creates the object, which has no baseline yet.";
|
|
@@ -7112,13 +7305,13 @@ var proposedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
|
|
|
7112
7305
|
z2.z.object({
|
|
7113
7306
|
objectName: viewTargetObjectNameSchema,
|
|
7114
7307
|
viewType: z2.z.literal("list").describe("Targets the object's default list view (the grid)."),
|
|
7115
|
-
canonicalConfig:
|
|
7308
|
+
canonicalConfig: chunkQMAVKX3Y_js.listViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
|
|
7116
7309
|
baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
|
|
7117
7310
|
}).strict(),
|
|
7118
7311
|
z2.z.object({
|
|
7119
7312
|
objectName: viewTargetObjectNameSchema,
|
|
7120
7313
|
viewType: z2.z.literal("detail").describe("Targets the object's default detail view (the single-record view)."),
|
|
7121
|
-
canonicalConfig:
|
|
7314
|
+
canonicalConfig: chunkQMAVKX3Y_js.detailViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
|
|
7122
7315
|
baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
|
|
7123
7316
|
}).strict()
|
|
7124
7317
|
]);
|
|
@@ -7132,13 +7325,13 @@ var persistedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
|
|
|
7132
7325
|
z2.z.object({
|
|
7133
7326
|
objectName: z2.z.string().min(1),
|
|
7134
7327
|
viewType: z2.z.literal("list"),
|
|
7135
|
-
canonicalConfig:
|
|
7328
|
+
canonicalConfig: chunkQMAVKX3Y_js.listViewConfigSchema,
|
|
7136
7329
|
...persistedBaselineFields
|
|
7137
7330
|
}).strict(),
|
|
7138
7331
|
z2.z.object({
|
|
7139
7332
|
objectName: z2.z.string().min(1),
|
|
7140
7333
|
viewType: z2.z.literal("detail"),
|
|
7141
|
-
canonicalConfig:
|
|
7334
|
+
canonicalConfig: chunkQMAVKX3Y_js.detailViewConfigSchema,
|
|
7142
7335
|
...persistedBaselineFields
|
|
7143
7336
|
}).strict()
|
|
7144
7337
|
]).superRefine((target, ctx) => {
|
|
@@ -7367,255 +7560,303 @@ Object.defineProperty(exports, "indexBy", {
|
|
|
7367
7560
|
});
|
|
7368
7561
|
Object.defineProperty(exports, "ATTRIBUTE_FILTER_OPERATORS", {
|
|
7369
7562
|
enumerable: true,
|
|
7370
|
-
get: function () { return
|
|
7563
|
+
get: function () { return chunkQMAVKX3Y_js.ATTRIBUTE_FILTER_OPERATORS; }
|
|
7371
7564
|
});
|
|
7372
7565
|
Object.defineProperty(exports, "LIST_VIEW_TAB_VISIBILITIES", {
|
|
7373
7566
|
enumerable: true,
|
|
7374
|
-
get: function () { return
|
|
7567
|
+
get: function () { return chunkQMAVKX3Y_js.LIST_VIEW_TAB_VISIBILITIES; }
|
|
7375
7568
|
});
|
|
7376
7569
|
Object.defineProperty(exports, "NO_VALUE_OPERATORS", {
|
|
7377
7570
|
enumerable: true,
|
|
7378
|
-
get: function () { return
|
|
7571
|
+
get: function () { return chunkQMAVKX3Y_js.NO_VALUE_OPERATORS; }
|
|
7379
7572
|
});
|
|
7380
7573
|
Object.defineProperty(exports, "OPERATORS_BY_TYPE", {
|
|
7381
7574
|
enumerable: true,
|
|
7382
|
-
get: function () { return
|
|
7575
|
+
get: function () { return chunkQMAVKX3Y_js.OPERATORS_BY_TYPE; }
|
|
7383
7576
|
});
|
|
7384
7577
|
Object.defineProperty(exports, "REMOVED_OPERATOR_REPLACEMENTS", {
|
|
7385
7578
|
enumerable: true,
|
|
7386
|
-
get: function () { return
|
|
7579
|
+
get: function () { return chunkQMAVKX3Y_js.REMOVED_OPERATOR_REPLACEMENTS; }
|
|
7387
7580
|
});
|
|
7388
7581
|
Object.defineProperty(exports, "RESERVED_ATTRIBUTE_NAMES", {
|
|
7389
7582
|
enumerable: true,
|
|
7390
|
-
get: function () { return
|
|
7583
|
+
get: function () { return chunkQMAVKX3Y_js.RESERVED_ATTRIBUTE_NAMES; }
|
|
7391
7584
|
});
|
|
7392
7585
|
Object.defineProperty(exports, "RESERVED_OBJECT_NAMES", {
|
|
7393
7586
|
enumerable: true,
|
|
7394
|
-
get: function () { return
|
|
7587
|
+
get: function () { return chunkQMAVKX3Y_js.RESERVED_OBJECT_NAMES; }
|
|
7395
7588
|
});
|
|
7396
7589
|
Object.defineProperty(exports, "RESOURCE_VISIBILITIES", {
|
|
7397
7590
|
enumerable: true,
|
|
7398
|
-
get: function () { return
|
|
7591
|
+
get: function () { return chunkQMAVKX3Y_js.RESOURCE_VISIBILITIES; }
|
|
7399
7592
|
});
|
|
7400
7593
|
Object.defineProperty(exports, "SYNONYM_ALIASES", {
|
|
7401
7594
|
enumerable: true,
|
|
7402
|
-
get: function () { return
|
|
7595
|
+
get: function () { return chunkQMAVKX3Y_js.SYNONYM_ALIASES; }
|
|
7403
7596
|
});
|
|
7404
7597
|
Object.defineProperty(exports, "SYSTEM_ATTRIBUTES", {
|
|
7405
7598
|
enumerable: true,
|
|
7406
|
-
get: function () { return
|
|
7599
|
+
get: function () { return chunkQMAVKX3Y_js.SYSTEM_ATTRIBUTES; }
|
|
7407
7600
|
});
|
|
7408
7601
|
Object.defineProperty(exports, "SYSTEM_ATTRIBUTE_I18N_KEYS", {
|
|
7409
7602
|
enumerable: true,
|
|
7410
|
-
get: function () { return
|
|
7603
|
+
get: function () { return chunkQMAVKX3Y_js.SYSTEM_ATTRIBUTE_I18N_KEYS; }
|
|
7411
7604
|
});
|
|
7412
7605
|
Object.defineProperty(exports, "SYSTEM_FIELD_NAMES", {
|
|
7413
7606
|
enumerable: true,
|
|
7414
|
-
get: function () { return
|
|
7607
|
+
get: function () { return chunkQMAVKX3Y_js.SYSTEM_FIELD_NAMES; }
|
|
7415
7608
|
});
|
|
7416
7609
|
Object.defineProperty(exports, "SYSTEM_FILTER_ATTRIBUTE_TYPES", {
|
|
7417
7610
|
enumerable: true,
|
|
7418
|
-
get: function () { return
|
|
7611
|
+
get: function () { return chunkQMAVKX3Y_js.SYSTEM_FILTER_ATTRIBUTE_TYPES; }
|
|
7612
|
+
});
|
|
7613
|
+
Object.defineProperty(exports, "canonicalizeFilterValue", {
|
|
7614
|
+
enumerable: true,
|
|
7615
|
+
get: function () { return chunkQMAVKX3Y_js.canonicalizeFilterValue; }
|
|
7419
7616
|
});
|
|
7420
7617
|
Object.defineProperty(exports, "collectQualifiedRuleIssues", {
|
|
7421
7618
|
enumerable: true,
|
|
7422
|
-
get: function () { return
|
|
7619
|
+
get: function () { return chunkQMAVKX3Y_js.collectQualifiedRuleIssues; }
|
|
7423
7620
|
});
|
|
7424
7621
|
Object.defineProperty(exports, "currentActor", {
|
|
7425
7622
|
enumerable: true,
|
|
7426
|
-
get: function () { return
|
|
7623
|
+
get: function () { return chunkQMAVKX3Y_js.currentActor; }
|
|
7427
7624
|
});
|
|
7428
7625
|
Object.defineProperty(exports, "detailTabSchema", {
|
|
7429
7626
|
enumerable: true,
|
|
7430
|
-
get: function () { return
|
|
7627
|
+
get: function () { return chunkQMAVKX3Y_js.detailTabSchema; }
|
|
7431
7628
|
});
|
|
7432
7629
|
Object.defineProperty(exports, "detailViewConfigSchema", {
|
|
7433
7630
|
enumerable: true,
|
|
7434
|
-
get: function () { return
|
|
7631
|
+
get: function () { return chunkQMAVKX3Y_js.detailViewConfigSchema; }
|
|
7632
|
+
});
|
|
7633
|
+
Object.defineProperty(exports, "extractCurrencyFilterValue", {
|
|
7634
|
+
enumerable: true,
|
|
7635
|
+
get: function () { return chunkQMAVKX3Y_js.extractCurrencyFilterValue; }
|
|
7636
|
+
});
|
|
7637
|
+
Object.defineProperty(exports, "extractFilterValue", {
|
|
7638
|
+
enumerable: true,
|
|
7639
|
+
get: function () { return chunkQMAVKX3Y_js.extractFilterValue; }
|
|
7435
7640
|
});
|
|
7436
7641
|
Object.defineProperty(exports, "getAttributeCapabilities", {
|
|
7437
7642
|
enumerable: true,
|
|
7438
|
-
get: function () { return
|
|
7643
|
+
get: function () { return chunkQMAVKX3Y_js.getAttributeCapabilities; }
|
|
7439
7644
|
});
|
|
7440
7645
|
Object.defineProperty(exports, "getAttributeFilterOperators", {
|
|
7441
7646
|
enumerable: true,
|
|
7442
|
-
get: function () { return
|
|
7647
|
+
get: function () { return chunkQMAVKX3Y_js.getAttributeFilterOperators; }
|
|
7648
|
+
});
|
|
7649
|
+
Object.defineProperty(exports, "getOperatorPolarity", {
|
|
7650
|
+
enumerable: true,
|
|
7651
|
+
get: function () { return chunkQMAVKX3Y_js.getOperatorPolarity; }
|
|
7443
7652
|
});
|
|
7444
7653
|
Object.defineProperty(exports, "getRollupFilterOperators", {
|
|
7445
7654
|
enumerable: true,
|
|
7446
|
-
get: function () { return
|
|
7655
|
+
get: function () { return chunkQMAVKX3Y_js.getRollupFilterOperators; }
|
|
7447
7656
|
});
|
|
7448
7657
|
Object.defineProperty(exports, "getSystemAttributeI18nKey", {
|
|
7449
7658
|
enumerable: true,
|
|
7450
|
-
get: function () { return
|
|
7659
|
+
get: function () { return chunkQMAVKX3Y_js.getSystemAttributeI18nKey; }
|
|
7451
7660
|
});
|
|
7452
7661
|
Object.defineProperty(exports, "getSystemAttributeList", {
|
|
7453
7662
|
enumerable: true,
|
|
7454
|
-
get: function () { return
|
|
7663
|
+
get: function () { return chunkQMAVKX3Y_js.getSystemAttributeList; }
|
|
7455
7664
|
});
|
|
7456
7665
|
Object.defineProperty(exports, "inverseSourceSchema", {
|
|
7457
7666
|
enumerable: true,
|
|
7458
|
-
get: function () { return
|
|
7667
|
+
get: function () { return chunkQMAVKX3Y_js.inverseSourceSchema; }
|
|
7459
7668
|
});
|
|
7460
7669
|
Object.defineProperty(exports, "isAttributeFilterable", {
|
|
7461
7670
|
enumerable: true,
|
|
7462
|
-
get: function () { return
|
|
7671
|
+
get: function () { return chunkQMAVKX3Y_js.isAttributeFilterable; }
|
|
7463
7672
|
});
|
|
7464
7673
|
Object.defineProperty(exports, "isAttributeGroupable", {
|
|
7465
7674
|
enumerable: true,
|
|
7466
|
-
get: function () { return
|
|
7675
|
+
get: function () { return chunkQMAVKX3Y_js.isAttributeGroupable; }
|
|
7467
7676
|
});
|
|
7468
7677
|
Object.defineProperty(exports, "isAttributeKanbanGroupable", {
|
|
7469
7678
|
enumerable: true,
|
|
7470
|
-
get: function () { return
|
|
7679
|
+
get: function () { return chunkQMAVKX3Y_js.isAttributeKanbanGroupable; }
|
|
7471
7680
|
});
|
|
7472
7681
|
Object.defineProperty(exports, "isAttributeSearchable", {
|
|
7473
7682
|
enumerable: true,
|
|
7474
|
-
get: function () { return
|
|
7683
|
+
get: function () { return chunkQMAVKX3Y_js.isAttributeSearchable; }
|
|
7475
7684
|
});
|
|
7476
7685
|
Object.defineProperty(exports, "isDynamicValue", {
|
|
7477
7686
|
enumerable: true,
|
|
7478
|
-
get: function () { return
|
|
7687
|
+
get: function () { return chunkQMAVKX3Y_js.isDynamicValue; }
|
|
7479
7688
|
});
|
|
7480
7689
|
Object.defineProperty(exports, "isManagedSystemAttribute", {
|
|
7481
7690
|
enumerable: true,
|
|
7482
|
-
get: function () { return
|
|
7691
|
+
get: function () { return chunkQMAVKX3Y_js.isManagedSystemAttribute; }
|
|
7483
7692
|
});
|
|
7484
7693
|
Object.defineProperty(exports, "isNoValueOperator", {
|
|
7485
7694
|
enumerable: true,
|
|
7486
|
-
get: function () { return
|
|
7695
|
+
get: function () { return chunkQMAVKX3Y_js.isNoValueOperator; }
|
|
7487
7696
|
});
|
|
7488
7697
|
Object.defineProperty(exports, "isRelativeDateValue", {
|
|
7489
7698
|
enumerable: true,
|
|
7490
|
-
get: function () { return
|
|
7699
|
+
get: function () { return chunkQMAVKX3Y_js.isRelativeDateValue; }
|
|
7700
|
+
});
|
|
7701
|
+
Object.defineProperty(exports, "isSetMembershipOperator", {
|
|
7702
|
+
enumerable: true,
|
|
7703
|
+
get: function () { return chunkQMAVKX3Y_js.isSetMembershipOperator; }
|
|
7491
7704
|
});
|
|
7492
7705
|
Object.defineProperty(exports, "listViewConfigSchema", {
|
|
7493
7706
|
enumerable: true,
|
|
7494
|
-
get: function () { return
|
|
7707
|
+
get: function () { return chunkQMAVKX3Y_js.listViewConfigSchema; }
|
|
7495
7708
|
});
|
|
7496
7709
|
Object.defineProperty(exports, "listViewTabSchema", {
|
|
7497
7710
|
enumerable: true,
|
|
7498
|
-
get: function () { return
|
|
7711
|
+
get: function () { return chunkQMAVKX3Y_js.listViewTabSchema; }
|
|
7499
7712
|
});
|
|
7500
7713
|
Object.defineProperty(exports, "normalizeFilterRule", {
|
|
7501
7714
|
enumerable: true,
|
|
7502
|
-
get: function () { return
|
|
7715
|
+
get: function () { return chunkQMAVKX3Y_js.normalizeFilterRule; }
|
|
7716
|
+
});
|
|
7717
|
+
Object.defineProperty(exports, "normalizeForEdgeRpc", {
|
|
7718
|
+
enumerable: true,
|
|
7719
|
+
get: function () { return chunkQMAVKX3Y_js.normalizeForEdgeRpc; }
|
|
7503
7720
|
});
|
|
7504
7721
|
Object.defineProperty(exports, "normalizeOperator", {
|
|
7505
7722
|
enumerable: true,
|
|
7506
|
-
get: function () { return
|
|
7723
|
+
get: function () { return chunkQMAVKX3Y_js.normalizeOperator; }
|
|
7507
7724
|
});
|
|
7508
7725
|
Object.defineProperty(exports, "now", {
|
|
7509
7726
|
enumerable: true,
|
|
7510
|
-
get: function () { return
|
|
7727
|
+
get: function () { return chunkQMAVKX3Y_js.now; }
|
|
7728
|
+
});
|
|
7729
|
+
Object.defineProperty(exports, "parseResourceVisibility", {
|
|
7730
|
+
enumerable: true,
|
|
7731
|
+
get: function () { return chunkQMAVKX3Y_js.parseResourceVisibility; }
|
|
7511
7732
|
});
|
|
7512
7733
|
Object.defineProperty(exports, "parseViewConfig", {
|
|
7513
7734
|
enumerable: true,
|
|
7514
|
-
get: function () { return
|
|
7735
|
+
get: function () { return chunkQMAVKX3Y_js.parseViewConfig; }
|
|
7515
7736
|
});
|
|
7516
7737
|
Object.defineProperty(exports, "relationSourceSchema", {
|
|
7517
7738
|
enumerable: true,
|
|
7518
|
-
get: function () { return
|
|
7739
|
+
get: function () { return chunkQMAVKX3Y_js.relationSourceSchema; }
|
|
7740
|
+
});
|
|
7741
|
+
Object.defineProperty(exports, "resolveEffectiveFilterType", {
|
|
7742
|
+
enumerable: true,
|
|
7743
|
+
get: function () { return chunkQMAVKX3Y_js.resolveEffectiveFilterType; }
|
|
7519
7744
|
});
|
|
7520
7745
|
Object.defineProperty(exports, "resolveIsWithinBounds", {
|
|
7521
7746
|
enumerable: true,
|
|
7522
|
-
get: function () { return
|
|
7747
|
+
get: function () { return chunkQMAVKX3Y_js.resolveIsWithinBounds; }
|
|
7748
|
+
});
|
|
7749
|
+
Object.defineProperty(exports, "resolveUtcDayBounds", {
|
|
7750
|
+
enumerable: true,
|
|
7751
|
+
get: function () { return chunkQMAVKX3Y_js.resolveUtcDayBounds; }
|
|
7523
7752
|
});
|
|
7524
7753
|
Object.defineProperty(exports, "tableSourceSchema", {
|
|
7525
7754
|
enumerable: true,
|
|
7526
|
-
get: function () { return
|
|
7755
|
+
get: function () { return chunkQMAVKX3Y_js.tableSourceSchema; }
|
|
7756
|
+
});
|
|
7757
|
+
Object.defineProperty(exports, "toMultiValueOperator", {
|
|
7758
|
+
enumerable: true,
|
|
7759
|
+
get: function () { return chunkQMAVKX3Y_js.toMultiValueOperator; }
|
|
7527
7760
|
});
|
|
7528
7761
|
Object.defineProperty(exports, "toUtcDayString", {
|
|
7529
7762
|
enumerable: true,
|
|
7530
|
-
get: function () { return
|
|
7763
|
+
get: function () { return chunkQMAVKX3Y_js.toUtcDayString; }
|
|
7531
7764
|
});
|
|
7532
7765
|
Object.defineProperty(exports, "today", {
|
|
7533
7766
|
enumerable: true,
|
|
7534
|
-
get: function () { return
|
|
7767
|
+
get: function () { return chunkQMAVKX3Y_js.today; }
|
|
7535
7768
|
});
|
|
7536
7769
|
Object.defineProperty(exports, "validateQualifiedRule", {
|
|
7537
7770
|
enumerable: true,
|
|
7538
|
-
get: function () { return
|
|
7771
|
+
get: function () { return chunkQMAVKX3Y_js.validateQualifiedRule; }
|
|
7539
7772
|
});
|
|
7540
7773
|
Object.defineProperty(exports, "viewConfigByTypeSchema", {
|
|
7541
7774
|
enumerable: true,
|
|
7542
|
-
get: function () { return
|
|
7775
|
+
get: function () { return chunkQMAVKX3Y_js.viewConfigByTypeSchema; }
|
|
7543
7776
|
});
|
|
7544
7777
|
Object.defineProperty(exports, "viewTypeSchema", {
|
|
7545
7778
|
enumerable: true,
|
|
7546
|
-
get: function () { return
|
|
7779
|
+
get: function () { return chunkQMAVKX3Y_js.viewTypeSchema; }
|
|
7547
7780
|
});
|
|
7548
7781
|
Object.defineProperty(exports, "ComputedFormulaParseError", {
|
|
7549
7782
|
enumerable: true,
|
|
7550
|
-
get: function () { return
|
|
7783
|
+
get: function () { return chunkDEHBEFGO_js.ComputedFormulaParseError; }
|
|
7551
7784
|
});
|
|
7552
7785
|
Object.defineProperty(exports, "SCHEMA_LIMITS", {
|
|
7553
7786
|
enumerable: true,
|
|
7554
|
-
get: function () { return
|
|
7787
|
+
get: function () { return chunkDEHBEFGO_js.SCHEMA_LIMITS; }
|
|
7555
7788
|
});
|
|
7556
7789
|
Object.defineProperty(exports, "colorIdSchema", {
|
|
7557
7790
|
enumerable: true,
|
|
7558
|
-
get: function () { return
|
|
7791
|
+
get: function () { return chunkDEHBEFGO_js.colorIdSchema; }
|
|
7559
7792
|
});
|
|
7560
7793
|
Object.defineProperty(exports, "iconNameSchema", {
|
|
7561
7794
|
enumerable: true,
|
|
7562
|
-
get: function () { return
|
|
7795
|
+
get: function () { return chunkDEHBEFGO_js.iconNameSchema; }
|
|
7563
7796
|
});
|
|
7564
7797
|
Object.defineProperty(exports, "multiselectOptionWriteSchema", {
|
|
7565
7798
|
enumerable: true,
|
|
7566
|
-
get: function () { return
|
|
7799
|
+
get: function () { return chunkDEHBEFGO_js.multiselectOptionWriteSchema; }
|
|
7567
7800
|
});
|
|
7568
7801
|
Object.defineProperty(exports, "parseAttributeConfig", {
|
|
7569
7802
|
enumerable: true,
|
|
7570
|
-
get: function () { return
|
|
7803
|
+
get: function () { return chunkDEHBEFGO_js.parseAttributeConfig; }
|
|
7571
7804
|
});
|
|
7572
7805
|
Object.defineProperty(exports, "parseAttributeConfigForCreate", {
|
|
7573
7806
|
enumerable: true,
|
|
7574
|
-
get: function () { return
|
|
7807
|
+
get: function () { return chunkDEHBEFGO_js.parseAttributeConfigForCreate; }
|
|
7575
7808
|
});
|
|
7576
7809
|
Object.defineProperty(exports, "parseAttributeConfigForUpdate", {
|
|
7577
7810
|
enumerable: true,
|
|
7578
|
-
get: function () { return
|
|
7811
|
+
get: function () { return chunkDEHBEFGO_js.parseAttributeConfigForUpdate; }
|
|
7579
7812
|
});
|
|
7580
7813
|
Object.defineProperty(exports, "parseComputedFormula", {
|
|
7581
7814
|
enumerable: true,
|
|
7582
|
-
get: function () { return
|
|
7815
|
+
get: function () { return chunkDEHBEFGO_js.parseComputedFormula; }
|
|
7583
7816
|
});
|
|
7584
7817
|
Object.defineProperty(exports, "selectOptionWriteSchema", {
|
|
7585
7818
|
enumerable: true,
|
|
7586
|
-
get: function () { return
|
|
7819
|
+
get: function () { return chunkDEHBEFGO_js.selectOptionWriteSchema; }
|
|
7587
7820
|
});
|
|
7588
7821
|
Object.defineProperty(exports, "statusGroupSchema", {
|
|
7589
7822
|
enumerable: true,
|
|
7590
|
-
get: function () { return
|
|
7823
|
+
get: function () { return chunkDEHBEFGO_js.statusGroupSchema; }
|
|
7591
7824
|
});
|
|
7592
7825
|
Object.defineProperty(exports, "statusOptionWriteSchema", {
|
|
7593
7826
|
enumerable: true,
|
|
7594
|
-
get: function () { return
|
|
7827
|
+
get: function () { return chunkDEHBEFGO_js.statusOptionWriteSchema; }
|
|
7595
7828
|
});
|
|
7596
7829
|
Object.defineProperty(exports, "createFormAttributeValidator", {
|
|
7597
7830
|
enumerable: true,
|
|
7598
|
-
get: function () { return
|
|
7831
|
+
get: function () { return chunkNELH4AXI_js.createFormAttributeValidator; }
|
|
7832
|
+
});
|
|
7833
|
+
Object.defineProperty(exports, "isNullishOrEmptyString", {
|
|
7834
|
+
enumerable: true,
|
|
7835
|
+
get: function () { return chunkNELH4AXI_js.isNullishOrEmptyString; }
|
|
7836
|
+
});
|
|
7837
|
+
Object.defineProperty(exports, "isValuePresent", {
|
|
7838
|
+
enumerable: true,
|
|
7839
|
+
get: function () { return chunkNELH4AXI_js.isValuePresent; }
|
|
7599
7840
|
});
|
|
7600
7841
|
Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
|
|
7601
7842
|
enumerable: true,
|
|
7602
|
-
get: function () { return
|
|
7843
|
+
get: function () { return chunkNELH4AXI_js.rejectUnknownAttributesOrThrow; }
|
|
7603
7844
|
});
|
|
7604
7845
|
Object.defineProperty(exports, "validateDraft", {
|
|
7605
7846
|
enumerable: true,
|
|
7606
|
-
get: function () { return
|
|
7847
|
+
get: function () { return chunkNELH4AXI_js.validateDraft; }
|
|
7607
7848
|
});
|
|
7608
7849
|
Object.defineProperty(exports, "validateDraftOrThrow", {
|
|
7609
7850
|
enumerable: true,
|
|
7610
|
-
get: function () { return
|
|
7851
|
+
get: function () { return chunkNELH4AXI_js.validateDraftOrThrow; }
|
|
7611
7852
|
});
|
|
7612
7853
|
Object.defineProperty(exports, "validateObject", {
|
|
7613
7854
|
enumerable: true,
|
|
7614
|
-
get: function () { return
|
|
7855
|
+
get: function () { return chunkNELH4AXI_js.validateObject; }
|
|
7615
7856
|
});
|
|
7616
7857
|
Object.defineProperty(exports, "validateObjectOrThrow", {
|
|
7617
7858
|
enumerable: true,
|
|
7618
|
-
get: function () { return
|
|
7859
|
+
get: function () { return chunkNELH4AXI_js.validateObjectOrThrow; }
|
|
7619
7860
|
});
|
|
7620
7861
|
Object.defineProperty(exports, "createCheckboxValidator", {
|
|
7621
7862
|
enumerable: true,
|
|
@@ -7643,155 +7884,155 @@ Object.defineProperty(exports, "resolveTextPattern", {
|
|
|
7643
7884
|
});
|
|
7644
7885
|
Object.defineProperty(exports, "AccessDeniedError", {
|
|
7645
7886
|
enumerable: true,
|
|
7646
|
-
get: function () { return
|
|
7887
|
+
get: function () { return chunkZBWTAKZO_js.AccessDeniedError; }
|
|
7647
7888
|
});
|
|
7648
7889
|
Object.defineProperty(exports, "AttributeInUseError", {
|
|
7649
7890
|
enumerable: true,
|
|
7650
|
-
get: function () { return
|
|
7891
|
+
get: function () { return chunkZBWTAKZO_js.AttributeInUseError; }
|
|
7651
7892
|
});
|
|
7652
7893
|
Object.defineProperty(exports, "AttributeNotFoundError", {
|
|
7653
7894
|
enumerable: true,
|
|
7654
|
-
get: function () { return
|
|
7895
|
+
get: function () { return chunkZBWTAKZO_js.AttributeNotFoundError; }
|
|
7655
7896
|
});
|
|
7656
7897
|
Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
|
|
7657
7898
|
enumerable: true,
|
|
7658
|
-
get: function () { return
|
|
7899
|
+
get: function () { return chunkZBWTAKZO_js.ChangeTypeNotSupportedError; }
|
|
7659
7900
|
});
|
|
7660
7901
|
Object.defineProperty(exports, "ConcurrentModificationError", {
|
|
7661
7902
|
enumerable: true,
|
|
7662
|
-
get: function () { return
|
|
7903
|
+
get: function () { return chunkZBWTAKZO_js.ConcurrentModificationError; }
|
|
7663
7904
|
});
|
|
7664
7905
|
Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
|
|
7665
7906
|
enumerable: true,
|
|
7666
|
-
get: function () { return
|
|
7907
|
+
get: function () { return chunkZBWTAKZO_js.DestructiveSyncNotAllowedError; }
|
|
7667
7908
|
});
|
|
7668
7909
|
Object.defineProperty(exports, "DuplicateError", {
|
|
7669
7910
|
enumerable: true,
|
|
7670
|
-
get: function () { return
|
|
7911
|
+
get: function () { return chunkZBWTAKZO_js.DuplicateError; }
|
|
7671
7912
|
});
|
|
7672
7913
|
Object.defineProperty(exports, "ForbiddenError", {
|
|
7673
7914
|
enumerable: true,
|
|
7674
|
-
get: function () { return
|
|
7915
|
+
get: function () { return chunkZBWTAKZO_js.ForbiddenError; }
|
|
7675
7916
|
});
|
|
7676
7917
|
Object.defineProperty(exports, "MemoryNotFoundError", {
|
|
7677
7918
|
enumerable: true,
|
|
7678
|
-
get: function () { return
|
|
7919
|
+
get: function () { return chunkZBWTAKZO_js.MemoryNotFoundError; }
|
|
7679
7920
|
});
|
|
7680
7921
|
Object.defineProperty(exports, "MigrationTimeoutError", {
|
|
7681
7922
|
enumerable: true,
|
|
7682
|
-
get: function () { return
|
|
7923
|
+
get: function () { return chunkZBWTAKZO_js.MigrationTimeoutError; }
|
|
7683
7924
|
});
|
|
7684
7925
|
Object.defineProperty(exports, "NotFoundError", {
|
|
7685
7926
|
enumerable: true,
|
|
7686
|
-
get: function () { return
|
|
7927
|
+
get: function () { return chunkZBWTAKZO_js.NotFoundError; }
|
|
7687
7928
|
});
|
|
7688
7929
|
Object.defineProperty(exports, "NotImplementedError", {
|
|
7689
7930
|
enumerable: true,
|
|
7690
|
-
get: function () { return
|
|
7931
|
+
get: function () { return chunkZBWTAKZO_js.NotImplementedError; }
|
|
7691
7932
|
});
|
|
7692
7933
|
Object.defineProperty(exports, "ObjectNotFoundError", {
|
|
7693
7934
|
enumerable: true,
|
|
7694
|
-
get: function () { return
|
|
7935
|
+
get: function () { return chunkZBWTAKZO_js.ObjectNotFoundError; }
|
|
7695
7936
|
});
|
|
7696
7937
|
Object.defineProperty(exports, "ObjectReferencedError", {
|
|
7697
7938
|
enumerable: true,
|
|
7698
|
-
get: function () { return
|
|
7939
|
+
get: function () { return chunkZBWTAKZO_js.ObjectReferencedError; }
|
|
7699
7940
|
});
|
|
7700
7941
|
Object.defineProperty(exports, "OrphanSystemAttributeError", {
|
|
7701
7942
|
enumerable: true,
|
|
7702
|
-
get: function () { return
|
|
7943
|
+
get: function () { return chunkZBWTAKZO_js.OrphanSystemAttributeError; }
|
|
7703
7944
|
});
|
|
7704
7945
|
Object.defineProperty(exports, "ProtectedResourceError", {
|
|
7705
7946
|
enumerable: true,
|
|
7706
|
-
get: function () { return
|
|
7947
|
+
get: function () { return chunkZBWTAKZO_js.ProtectedResourceError; }
|
|
7707
7948
|
});
|
|
7708
7949
|
Object.defineProperty(exports, "ProtectedRoleError", {
|
|
7709
7950
|
enumerable: true,
|
|
7710
|
-
get: function () { return
|
|
7951
|
+
get: function () { return chunkZBWTAKZO_js.ProtectedRoleError; }
|
|
7711
7952
|
});
|
|
7712
7953
|
Object.defineProperty(exports, "RecordNotFoundError", {
|
|
7713
7954
|
enumerable: true,
|
|
7714
|
-
get: function () { return
|
|
7955
|
+
get: function () { return chunkZBWTAKZO_js.RecordNotFoundError; }
|
|
7715
7956
|
});
|
|
7716
7957
|
Object.defineProperty(exports, "RecordReferencedError", {
|
|
7717
7958
|
enumerable: true,
|
|
7718
|
-
get: function () { return
|
|
7959
|
+
get: function () { return chunkZBWTAKZO_js.RecordReferencedError; }
|
|
7719
7960
|
});
|
|
7720
7961
|
Object.defineProperty(exports, "RepositoryError", {
|
|
7721
7962
|
enumerable: true,
|
|
7722
|
-
get: function () { return
|
|
7963
|
+
get: function () { return chunkZBWTAKZO_js.RepositoryError; }
|
|
7723
7964
|
});
|
|
7724
7965
|
Object.defineProperty(exports, "RoleNotFoundError", {
|
|
7725
7966
|
enumerable: true,
|
|
7726
|
-
get: function () { return
|
|
7967
|
+
get: function () { return chunkZBWTAKZO_js.RoleNotFoundError; }
|
|
7727
7968
|
});
|
|
7728
7969
|
Object.defineProperty(exports, "SchemaError", {
|
|
7729
7970
|
enumerable: true,
|
|
7730
|
-
get: function () { return
|
|
7971
|
+
get: function () { return chunkZBWTAKZO_js.SchemaError; }
|
|
7731
7972
|
});
|
|
7732
7973
|
Object.defineProperty(exports, "SchemaErrorCode", {
|
|
7733
7974
|
enumerable: true,
|
|
7734
|
-
get: function () { return
|
|
7975
|
+
get: function () { return chunkZBWTAKZO_js.SchemaErrorCode; }
|
|
7735
7976
|
});
|
|
7736
7977
|
Object.defineProperty(exports, "SchemaPlanNotFoundError", {
|
|
7737
7978
|
enumerable: true,
|
|
7738
|
-
get: function () { return
|
|
7979
|
+
get: function () { return chunkZBWTAKZO_js.SchemaPlanNotFoundError; }
|
|
7739
7980
|
});
|
|
7740
7981
|
Object.defineProperty(exports, "SearchBackendError", {
|
|
7741
7982
|
enumerable: true,
|
|
7742
|
-
get: function () { return
|
|
7983
|
+
get: function () { return chunkZBWTAKZO_js.SearchBackendError; }
|
|
7743
7984
|
});
|
|
7744
7985
|
Object.defineProperty(exports, "StorageError", {
|
|
7745
7986
|
enumerable: true,
|
|
7746
|
-
get: function () { return
|
|
7987
|
+
get: function () { return chunkZBWTAKZO_js.StorageError; }
|
|
7747
7988
|
});
|
|
7748
7989
|
Object.defineProperty(exports, "SyncCascadeError", {
|
|
7749
7990
|
enumerable: true,
|
|
7750
|
-
get: function () { return
|
|
7991
|
+
get: function () { return chunkZBWTAKZO_js.SyncCascadeError; }
|
|
7751
7992
|
});
|
|
7752
7993
|
Object.defineProperty(exports, "SyncConflictError", {
|
|
7753
7994
|
enumerable: true,
|
|
7754
|
-
get: function () { return
|
|
7995
|
+
get: function () { return chunkZBWTAKZO_js.SyncConflictError; }
|
|
7755
7996
|
});
|
|
7756
7997
|
Object.defineProperty(exports, "SyncError", {
|
|
7757
7998
|
enumerable: true,
|
|
7758
|
-
get: function () { return
|
|
7999
|
+
get: function () { return chunkZBWTAKZO_js.SyncError; }
|
|
7759
8000
|
});
|
|
7760
8001
|
Object.defineProperty(exports, "SystemEntityImmutableError", {
|
|
7761
8002
|
enumerable: true,
|
|
7762
|
-
get: function () { return
|
|
8003
|
+
get: function () { return chunkZBWTAKZO_js.SystemEntityImmutableError; }
|
|
7763
8004
|
});
|
|
7764
8005
|
Object.defineProperty(exports, "ValidationError", {
|
|
7765
8006
|
enumerable: true,
|
|
7766
|
-
get: function () { return
|
|
8007
|
+
get: function () { return chunkZBWTAKZO_js.ValidationError; }
|
|
7767
8008
|
});
|
|
7768
8009
|
Object.defineProperty(exports, "isAttributeInUseError", {
|
|
7769
8010
|
enumerable: true,
|
|
7770
|
-
get: function () { return
|
|
8011
|
+
get: function () { return chunkZBWTAKZO_js.isAttributeInUseError; }
|
|
7771
8012
|
});
|
|
7772
8013
|
Object.defineProperty(exports, "isNotFoundError", {
|
|
7773
8014
|
enumerable: true,
|
|
7774
|
-
get: function () { return
|
|
8015
|
+
get: function () { return chunkZBWTAKZO_js.isNotFoundError; }
|
|
7775
8016
|
});
|
|
7776
8017
|
Object.defineProperty(exports, "isObjectReferencedError", {
|
|
7777
8018
|
enumerable: true,
|
|
7778
|
-
get: function () { return
|
|
8019
|
+
get: function () { return chunkZBWTAKZO_js.isObjectReferencedError; }
|
|
7779
8020
|
});
|
|
7780
8021
|
Object.defineProperty(exports, "isProtectedResourceError", {
|
|
7781
8022
|
enumerable: true,
|
|
7782
|
-
get: function () { return
|
|
8023
|
+
get: function () { return chunkZBWTAKZO_js.isProtectedResourceError; }
|
|
7783
8024
|
});
|
|
7784
8025
|
Object.defineProperty(exports, "isRecordReferencedError", {
|
|
7785
8026
|
enumerable: true,
|
|
7786
|
-
get: function () { return
|
|
8027
|
+
get: function () { return chunkZBWTAKZO_js.isRecordReferencedError; }
|
|
7787
8028
|
});
|
|
7788
8029
|
Object.defineProperty(exports, "isSchemaError", {
|
|
7789
8030
|
enumerable: true,
|
|
7790
|
-
get: function () { return
|
|
8031
|
+
get: function () { return chunkZBWTAKZO_js.isSchemaError; }
|
|
7791
8032
|
});
|
|
7792
8033
|
Object.defineProperty(exports, "isValidationError", {
|
|
7793
8034
|
enumerable: true,
|
|
7794
|
-
get: function () { return
|
|
8035
|
+
get: function () { return chunkZBWTAKZO_js.isValidationError; }
|
|
7795
8036
|
});
|
|
7796
8037
|
Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
|
|
7797
8038
|
enumerable: true,
|
|
@@ -7801,6 +8042,8 @@ Object.defineProperty(exports, "formatZodErrors", {
|
|
|
7801
8042
|
enumerable: true,
|
|
7802
8043
|
get: function () { return chunkYKWSHBT5_js.formatZodErrors; }
|
|
7803
8044
|
});
|
|
8045
|
+
exports.AGENT_UI_BATCH_MAX_BYTES = AGENT_UI_BATCH_MAX_BYTES;
|
|
8046
|
+
exports.AGENT_UI_BATCH_MAX_ITEMS = AGENT_UI_BATCH_MAX_ITEMS;
|
|
7804
8047
|
exports.ALLOWED_PROPERTY_TYPES = ALLOWED_PROPERTY_TYPES;
|
|
7805
8048
|
exports.ALL_ACTIONS = ALL_ACTIONS;
|
|
7806
8049
|
exports.ALL_SYSTEM_RESOURCES = ALL_SYSTEM_RESOURCES;
|
|
@@ -7815,11 +8058,13 @@ exports.COMPUTED_FUNCTIONS = COMPUTED_FUNCTIONS;
|
|
|
7815
8058
|
exports.COMPUTED_FUNCTION_METADATA = COMPUTED_FUNCTION_METADATA;
|
|
7816
8059
|
exports.COMPUTED_FUNCTION_NAMES = COMPUTED_FUNCTION_NAMES;
|
|
7817
8060
|
exports.CONNECTOR_CALLBACK_PARAM = CONNECTOR_CALLBACK_PARAM;
|
|
8061
|
+
exports.COUNT_MODES = COUNT_MODES;
|
|
7818
8062
|
exports.ComputedFormulaCompileError = ComputedFormulaCompileError;
|
|
7819
8063
|
exports.CustomTabConfig = CustomTabConfig;
|
|
7820
8064
|
exports.DB_COLUMN_FIELDS = DB_COLUMN_FIELDS;
|
|
7821
8065
|
exports.DEFAULT_AGENT_EXECUTION_CONFIG = DEFAULT_AGENT_EXECUTION_CONFIG;
|
|
7822
8066
|
exports.DEFAULT_APPROVAL_POLICY = DEFAULT_APPROVAL_POLICY;
|
|
8067
|
+
exports.DEFAULT_LABEL_FALLBACK = DEFAULT_LABEL_FALLBACK;
|
|
7823
8068
|
exports.DEFAULT_ROLES = DEFAULT_ROLES;
|
|
7824
8069
|
exports.DEFAULT_ROLE_DESCRIPTIONS = DEFAULT_ROLE_DESCRIPTIONS;
|
|
7825
8070
|
exports.DEFAULT_ROLE_LABELS = DEFAULT_ROLE_LABELS;
|
|
@@ -7840,7 +8085,6 @@ exports.FormStepBuilder = FormStepBuilder;
|
|
|
7840
8085
|
exports.GroupBuilder = GroupBuilder;
|
|
7841
8086
|
exports.IDENTITY_PROPERTIES = IDENTITY_PROPERTIES;
|
|
7842
8087
|
exports.LIVE_EVENT_TYPES = LIVE_EVENT_TYPES;
|
|
7843
|
-
exports.LIVE_STREAM_START_CURSOR = LIVE_STREAM_START_CURSOR;
|
|
7844
8088
|
exports.ListViewBuilder = ListViewBuilder;
|
|
7845
8089
|
exports.ListViewTabConfigBuilder = ListViewTabConfigBuilder;
|
|
7846
8090
|
exports.MAX_PRESET_DEPTH = MAX_PRESET_DEPTH;
|
|
@@ -7851,6 +8095,9 @@ exports.MAX_TODO_RESULT_CHARS = MAX_TODO_RESULT_CHARS;
|
|
|
7851
8095
|
exports.MEMORY_LIST_VIEW = MEMORY_LIST_VIEW;
|
|
7852
8096
|
exports.MEMORY_OBJECT = MEMORY_OBJECT;
|
|
7853
8097
|
exports.MEMORY_VIEW = MEMORY_VIEW;
|
|
8098
|
+
exports.MeetingsTabConfig = MeetingsTabConfig;
|
|
8099
|
+
exports.NATIVE_AGENT_UI_PART_IDS_METADATA_KEY = NATIVE_AGENT_UI_PART_IDS_METADATA_KEY;
|
|
8100
|
+
exports.NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION = NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION;
|
|
7854
8101
|
exports.NOTIFICATION_INBOX_STATES = NOTIFICATION_INBOX_STATES;
|
|
7855
8102
|
exports.NOTIFICATION_KINDS = NOTIFICATION_KINDS;
|
|
7856
8103
|
exports.NOTIFICATION_PRIORITIES = NOTIFICATION_PRIORITIES;
|
|
@@ -7886,6 +8133,7 @@ exports.TODO_STATUSES = TODO_STATUSES;
|
|
|
7886
8133
|
exports.TabBuilder = TabBuilder;
|
|
7887
8134
|
exports.TableTabConfig = TableTabConfig;
|
|
7888
8135
|
exports.USER_STATUSES = USER_STATUSES;
|
|
8136
|
+
exports.USER_WORK_POSTURES = USER_WORK_POSTURES;
|
|
7889
8137
|
exports.accessLevelToActions = accessLevelToActions;
|
|
7890
8138
|
exports.actionsToAccessLevel = actionsToAccessLevel;
|
|
7891
8139
|
exports.agent = agent;
|
|
@@ -7893,16 +8141,17 @@ exports.agentDisplayName = agentDisplayName;
|
|
|
7893
8141
|
exports.applyPipes = applyPipes;
|
|
7894
8142
|
exports.applyRelationProps = applyRelationProps;
|
|
7895
8143
|
exports.assertAcyclicComputedDependencies = assertAcyclicComputedDependencies;
|
|
7896
|
-
exports.assertLiveStreamCursor = assertLiveStreamCursor;
|
|
7897
8144
|
exports.booleanFlag = booleanFlag;
|
|
8145
|
+
exports.buildAgentFallbackTitle = buildAgentFallbackTitle;
|
|
8146
|
+
exports.buildPermissionFlags = buildPermissionFlags;
|
|
7898
8147
|
exports.buildPropertySchema = buildPropertySchema;
|
|
7899
8148
|
exports.buildQualifiedAttribute = buildQualifiedAttribute;
|
|
7900
8149
|
exports.canonicalStringify = canonicalStringify;
|
|
7901
8150
|
exports.checkbox = checkbox;
|
|
7902
|
-
exports.compareLiveStreamCursors = compareLiveStreamCursors;
|
|
7903
8151
|
exports.compileComputedFormula = compileComputedFormula;
|
|
7904
8152
|
exports.compileRollupAttribute = compileRollupAttribute;
|
|
7905
8153
|
exports.computeByteMagnitude = computeByteMagnitude;
|
|
8154
|
+
exports.conversationDisplayTitle = conversationDisplayTitle;
|
|
7906
8155
|
exports.createFlagRegistry = createFlagRegistry;
|
|
7907
8156
|
exports.createFlagService = createFlagService;
|
|
7908
8157
|
exports.createStandardSchemaProps = createStandardSchemaProps;
|
|
@@ -7910,6 +8159,7 @@ exports.currency = currency;
|
|
|
7910
8159
|
exports.date = date;
|
|
7911
8160
|
exports.dateInTimezone = dateInTimezone;
|
|
7912
8161
|
exports.dateValueStart = dateValueStart;
|
|
8162
|
+
exports.deriveInitials = deriveInitials;
|
|
7913
8163
|
exports.destructiveSchema = destructiveSchema;
|
|
7914
8164
|
exports.detailView = detailView;
|
|
7915
8165
|
exports.document = document;
|
|
@@ -7919,8 +8169,6 @@ exports.evaluateComputedFormulaWithResult = evaluateComputedFormulaWithResult;
|
|
|
7919
8169
|
exports.evaluateFilterState = evaluateFilterState;
|
|
7920
8170
|
exports.evaluateRecordFilterState = evaluateRecordFilterState;
|
|
7921
8171
|
exports.extractAttributeNames = extractAttributeNames;
|
|
7922
|
-
exports.extractCurrencyFilterValue = extractCurrencyFilterValue;
|
|
7923
|
-
exports.extractFilterValue = extractFilterValue;
|
|
7924
8172
|
exports.extractValueRefs = extractValueRefs;
|
|
7925
8173
|
exports.flagRegistry = flagRegistry;
|
|
7926
8174
|
exports.form = form;
|
|
@@ -7935,15 +8183,16 @@ exports.generateDefaultListView = generateDefaultListView;
|
|
|
7935
8183
|
exports.getActiveTab = getActiveTab;
|
|
7936
8184
|
exports.getErrorMessage = getErrorMessage;
|
|
7937
8185
|
exports.getLiveProtocolPayloadChannel = getLiveProtocolPayloadChannel;
|
|
7938
|
-
exports.getOperatorPolarity = getOperatorPolarity;
|
|
7939
8186
|
exports.getRecordCreatorPrincipalId = getRecordCreatorPrincipalId;
|
|
7940
8187
|
exports.getSlotFieldTargets = getSlotFieldTargets;
|
|
7941
8188
|
exports.getUserDisplayName = getUserDisplayName;
|
|
7942
8189
|
exports.group = group;
|
|
7943
8190
|
exports.hasDestructiveEntries = hasDestructiveEntries;
|
|
7944
8191
|
exports.hasOptions = hasOptions;
|
|
8192
|
+
exports.includesAction = includesAction;
|
|
7945
8193
|
exports.inferInverseCardinality = inferInverseCardinality;
|
|
7946
8194
|
exports.inferRollupReturnType = inferRollupReturnType;
|
|
8195
|
+
exports.isAgentUIMessageBatch = isAgentUIMessageBatch;
|
|
7947
8196
|
exports.isAttributeSortable = isAttributeSortable2;
|
|
7948
8197
|
exports.isBilateralRelation = isBilateralRelation;
|
|
7949
8198
|
exports.isCheckboxEquality = isCheckboxEquality;
|
|
@@ -7963,34 +8212,33 @@ exports.isFormSlotFieldRef = isFormSlotFieldRef;
|
|
|
7963
8212
|
exports.isFormTextRow = isFormTextRow;
|
|
7964
8213
|
exports.isLabelExpression = isLabelExpression;
|
|
7965
8214
|
exports.isListView = isListView;
|
|
7966
|
-
exports.isLiveErrorPayload = isLiveErrorPayload;
|
|
7967
8215
|
exports.isLiveEventEnvelope = isLiveEventEnvelope;
|
|
7968
8216
|
exports.isLiveEventPayload = isLiveEventPayload;
|
|
7969
8217
|
exports.isLiveEventPayloadForType = isLiveEventPayloadForType;
|
|
7970
8218
|
exports.isLiveEventType = isLiveEventType;
|
|
7971
|
-
exports.isLiveGapPayload = isLiveGapPayload;
|
|
7972
|
-
exports.isLiveReplayCompletePayload = isLiveReplayCompletePayload;
|
|
7973
|
-
exports.isLiveStreamCursor = isLiveStreamCursor;
|
|
7974
8219
|
exports.isNotEmpty = isNotEmpty;
|
|
7975
|
-
exports.isPlainRecord =
|
|
8220
|
+
exports.isPlainRecord = isPlainRecord2;
|
|
7976
8221
|
exports.isRelationGroup = isRelationGroup;
|
|
7977
8222
|
exports.isStandardSchema = isStandardSchema;
|
|
7978
8223
|
exports.isTerminalSessionStatus = isTerminalSessionStatus;
|
|
8224
|
+
exports.isTerminalState = isTerminalState;
|
|
7979
8225
|
exports.isUniversalRelation = isUniversalRelation;
|
|
7980
8226
|
exports.jsonFlag = jsonFlag;
|
|
8227
|
+
exports.legacyStatusToSessionState = legacyStatusToSessionState;
|
|
7981
8228
|
exports.listView = listView;
|
|
7982
8229
|
exports.liveChannelKey = liveChannelKey;
|
|
7983
8230
|
exports.location = location;
|
|
7984
8231
|
exports.matchesAccepts = matchesAccepts;
|
|
7985
8232
|
exports.multiselect = multiselect;
|
|
8233
|
+
exports.nativeAgentUIPartIdMetadataKey = nativeAgentUIPartIdMetadataKey;
|
|
7986
8234
|
exports.normalizeDateValue = normalizeDateValue;
|
|
7987
|
-
exports.normalizeForEdgeRpc = normalizeForEdgeRpc;
|
|
7988
8235
|
exports.number = number;
|
|
7989
8236
|
exports.numberFlag = numberFlag;
|
|
7990
8237
|
exports.object = object;
|
|
8238
|
+
exports.parseCountMode = parseCountMode;
|
|
7991
8239
|
exports.parseLiveChannelKey = parseLiveChannelKey;
|
|
7992
|
-
exports.
|
|
7993
|
-
exports.
|
|
8240
|
+
exports.parseNativeAgentUIPartIdsMetadata = parseNativeAgentUIPartIdsMetadata;
|
|
8241
|
+
exports.parseOptionalCountMode = parseOptionalCountMode;
|
|
7994
8242
|
exports.parseQualifiedAttribute = parseQualifiedAttribute;
|
|
7995
8243
|
exports.persistedDefaultViewTargetSchema = persistedDefaultViewTargetSchema;
|
|
7996
8244
|
exports.persistedSchemaPlanSchema = persistedSchemaPlanSchema;
|
|
@@ -8006,21 +8254,23 @@ exports.relationPropertyDefs = relationPropertyDefs;
|
|
|
8006
8254
|
exports.renderLabelExpression = renderLabelExpression;
|
|
8007
8255
|
exports.resetViewToDefault = resetViewToDefault;
|
|
8008
8256
|
exports.resolveAttributeDefaultValue = resolveAttributeDefaultValue;
|
|
8257
|
+
exports.resolveFieldRequired = resolveFieldRequired;
|
|
8009
8258
|
exports.resolvePropertyDefinitions = resolvePropertyDefinitions;
|
|
8010
8259
|
exports.richtext = richtext;
|
|
8011
8260
|
exports.rollup = rollup;
|
|
8012
8261
|
exports.rollupToFormulaExpression = rollupToFormulaExpression;
|
|
8013
8262
|
exports.schemaPlanSchema = schemaPlanSchema;
|
|
8014
8263
|
exports.select = select;
|
|
8264
|
+
exports.sessionStateToLegacyStatus = sessionStateToLegacyStatus;
|
|
8015
8265
|
exports.status = status;
|
|
8016
8266
|
exports.stringFlag = stringFlag;
|
|
8017
8267
|
exports.text = text;
|
|
8018
|
-
exports.toMultiValueOperator = toMultiValueOperator;
|
|
8019
8268
|
exports.toUndefinedIfEmpty = toUndefinedIfEmpty;
|
|
8020
8269
|
exports.user = user;
|
|
8021
8270
|
exports.validateAttributeName = validateAttributeName;
|
|
8022
8271
|
exports.validateLabelExpression = validateLabelExpression;
|
|
8023
8272
|
exports.validateObjectName = validateObjectName;
|
|
8273
|
+
exports.validateViewName = validateViewName;
|
|
8024
8274
|
exports.viewRegistry = viewRegistry;
|
|
8025
8275
|
exports.viewStateKey = viewStateKey;
|
|
8026
8276
|
exports.viewSyncPayload = viewSyncPayload;
|