@stndrds/schema 1.0.0-alpha.258 → 1.0.0-alpha.260
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/{chunk-7VSOCVN7.mjs → chunk-54WDPQ6R.mjs} +2 -0
- package/dist/{chunk-44EVNHSR.js → chunk-TS3PJOMZ.js} +2 -0
- package/dist/index.d.mts +321 -28
- package/dist/index.d.ts +321 -28
- package/dist/index.js +327 -163
- package/dist/index.mjs +243 -84
- package/dist/validation/all.js +7 -7
- package/dist/validation/all.mjs +1 -1
- package/dist/validation/object/index.js +13 -13
- package/dist/validation/object/index.mjs +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var chunkFRCDMQER_js = require('./chunk-FRCDMQER.js');
|
|
4
4
|
require('./chunk-PGERPYDR.js');
|
|
5
5
|
var chunkL4U5QEQL_js = require('./chunk-L4U5QEQL.js');
|
|
6
|
-
var
|
|
6
|
+
var chunkTS3PJOMZ_js = require('./chunk-TS3PJOMZ.js');
|
|
7
7
|
require('./chunk-SI34M4IC.js');
|
|
8
8
|
require('./chunk-YIP5FJ5H.js');
|
|
9
9
|
require('./chunk-QAF3HNKQ.js');
|
|
@@ -1262,36 +1262,20 @@ var DEFAULT_ROLE_PERMISSIONS = {
|
|
|
1262
1262
|
function isDefaultRole(roleName) {
|
|
1263
1263
|
return Object.values(DEFAULT_ROLES).includes(roleName);
|
|
1264
1264
|
}
|
|
1265
|
-
|
|
1266
|
-
// src/standard-schema.ts
|
|
1267
|
-
var STANDARD_SCHEMA_VENDOR = "@stndrds/schema";
|
|
1268
|
-
function createStandardSchemaProps(zodSchema) {
|
|
1269
|
-
return {
|
|
1270
|
-
version: 1,
|
|
1271
|
-
vendor: STANDARD_SCHEMA_VENDOR,
|
|
1272
|
-
validate: (value) => {
|
|
1273
|
-
const result = zodSchema.safeParse(value);
|
|
1274
|
-
if (result.success) {
|
|
1275
|
-
return { value: result.data };
|
|
1276
|
-
}
|
|
1277
|
-
return {
|
|
1278
|
-
issues: result.error.issues.map((issue) => ({
|
|
1279
|
-
message: issue.message,
|
|
1280
|
-
// Zod path segments are string | number which are valid PropertyKey
|
|
1281
|
-
// for Standard Schema v1 (no conversion needed)
|
|
1282
|
-
path: issue.path
|
|
1283
|
-
}))
|
|
1284
|
-
};
|
|
1285
|
-
}
|
|
1286
|
-
};
|
|
1287
|
-
}
|
|
1288
|
-
function isStandardSchema(obj) {
|
|
1289
|
-
return typeof obj === "object" && obj !== null && "~standard" in obj && typeof obj["~standard"] === "object" && obj["~standard"].version === 1;
|
|
1290
|
-
}
|
|
1291
1265
|
var VALID_ICONS = new Set(constants.ICONS);
|
|
1292
1266
|
var ATTRIBUTE_NAME_REGEX = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
1293
1267
|
var MAX_NAME_LENGTH = 63;
|
|
1294
1268
|
var MAX_LABEL_LENGTH = 128;
|
|
1269
|
+
function assertUniqueBy(items, getKey, buildError) {
|
|
1270
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1271
|
+
for (const item of items) {
|
|
1272
|
+
const key = getKey(item);
|
|
1273
|
+
if (seen.has(key)) {
|
|
1274
|
+
throw buildError(key);
|
|
1275
|
+
}
|
|
1276
|
+
seen.add(key);
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1295
1279
|
function validateAttributeName(name) {
|
|
1296
1280
|
if (!name || name.length === 0) {
|
|
1297
1281
|
throw new Error("[AttributeBuilder] Attribute name cannot be empty");
|
|
@@ -1367,6 +1351,136 @@ function validateOptions(attributeName, options) {
|
|
|
1367
1351
|
}
|
|
1368
1352
|
}
|
|
1369
1353
|
|
|
1354
|
+
// src/builders/agent-builder.ts
|
|
1355
|
+
var DEFAULT_AGENT_EXECUTION_CONFIG = {
|
|
1356
|
+
maxConcurrentRuns: 3,
|
|
1357
|
+
retryPolicy: { maxRetries: 3, backoffMs: 1e3, backoffMultiplier: 2 },
|
|
1358
|
+
timeoutMs: 3e5
|
|
1359
|
+
};
|
|
1360
|
+
var AgentBuilder = class {
|
|
1361
|
+
constructor(config) {
|
|
1362
|
+
if (!config.name || config.name.trim().length === 0) {
|
|
1363
|
+
throw new chunkTS3PJOMZ_js.ValidationError("Agent name is required", []);
|
|
1364
|
+
}
|
|
1365
|
+
this.bp = { name: config.name, system: true, triggers: [] };
|
|
1366
|
+
}
|
|
1367
|
+
description(value) {
|
|
1368
|
+
this.bp.description = value;
|
|
1369
|
+
return this;
|
|
1370
|
+
}
|
|
1371
|
+
icon(value) {
|
|
1372
|
+
this.bp.icon = value;
|
|
1373
|
+
return this;
|
|
1374
|
+
}
|
|
1375
|
+
systemPrompt(value) {
|
|
1376
|
+
this.bp.systemPrompt = value;
|
|
1377
|
+
return this;
|
|
1378
|
+
}
|
|
1379
|
+
model(provider, model, options) {
|
|
1380
|
+
this.bp.model = { provider, model, ...options };
|
|
1381
|
+
return this;
|
|
1382
|
+
}
|
|
1383
|
+
tools(names) {
|
|
1384
|
+
this.bp.tools = [...names];
|
|
1385
|
+
return this;
|
|
1386
|
+
}
|
|
1387
|
+
/** Cron schedule; `enabled` defaults to true. */
|
|
1388
|
+
schedule(value) {
|
|
1389
|
+
this.bp.schedule = { ...value, enabled: value.enabled ?? true };
|
|
1390
|
+
return this;
|
|
1391
|
+
}
|
|
1392
|
+
/**
|
|
1393
|
+
* Partial execution config, shallow-merged over the current config
|
|
1394
|
+
* (defaulting to {@link DEFAULT_AGENT_EXECUTION_CONFIG} on the first call).
|
|
1395
|
+
*
|
|
1396
|
+
* The merge is shallow at the top level only: passing a partial
|
|
1397
|
+
* `retryPolicy` REPLACES the whole `retryPolicy` object rather than
|
|
1398
|
+
* merging its individual fields. Pass a complete `retryPolicy` if you
|
|
1399
|
+
* only want to override one of its fields.
|
|
1400
|
+
*/
|
|
1401
|
+
config(value) {
|
|
1402
|
+
this.bp.config = { ...this.bp.config ?? DEFAULT_AGENT_EXECUTION_CONFIG, ...value };
|
|
1403
|
+
return this;
|
|
1404
|
+
}
|
|
1405
|
+
delegation(value) {
|
|
1406
|
+
Object.assign(this.bp, value);
|
|
1407
|
+
return this;
|
|
1408
|
+
}
|
|
1409
|
+
/**
|
|
1410
|
+
* Declare a trigger. `name` is the stable identity the boot sync uses to
|
|
1411
|
+
* reconcile trigger rows; `enabled` defaults to true.
|
|
1412
|
+
*/
|
|
1413
|
+
trigger(name, eventType, options) {
|
|
1414
|
+
this.bp.triggers.push({ name, eventType, ...options, enabled: options?.enabled ?? true });
|
|
1415
|
+
return this;
|
|
1416
|
+
}
|
|
1417
|
+
/**
|
|
1418
|
+
* Marks this agent as runtime-only (system: false).
|
|
1419
|
+
*
|
|
1420
|
+
* ⚠️ ADVANCED USE ONLY. In production, agents declared in code are
|
|
1421
|
+
* automatically system:true (immutable at runtime). Use .runtime() ONLY for:
|
|
1422
|
+
* - Test fixtures (`*.test.ts`, `tests/`)
|
|
1423
|
+
* - Seed data (`seeds/`)
|
|
1424
|
+
* - Dev fixtures (`fixtures/`)
|
|
1425
|
+
*
|
|
1426
|
+
* Calling .runtime() in production code creates an agent that:
|
|
1427
|
+
* - Can be modified or deleted by end users via the admin UI
|
|
1428
|
+
* - Will be picked up by `standards diff` as runtime drift
|
|
1429
|
+
*/
|
|
1430
|
+
runtime() {
|
|
1431
|
+
this.bp.system = false;
|
|
1432
|
+
return this;
|
|
1433
|
+
}
|
|
1434
|
+
build() {
|
|
1435
|
+
if (!this.bp.systemPrompt) {
|
|
1436
|
+
throw new chunkTS3PJOMZ_js.ValidationError(`Agent "${this.bp.name}": systemPrompt is required`, []);
|
|
1437
|
+
}
|
|
1438
|
+
if (!this.bp.model) {
|
|
1439
|
+
throw new chunkTS3PJOMZ_js.ValidationError(`Agent "${this.bp.name}": model is required`, []);
|
|
1440
|
+
}
|
|
1441
|
+
assertUniqueBy(
|
|
1442
|
+
this.bp.triggers,
|
|
1443
|
+
(t) => t.name,
|
|
1444
|
+
(name) => new chunkTS3PJOMZ_js.ValidationError(`Agent "${this.bp.name}": duplicate trigger name "${name}"`, [])
|
|
1445
|
+
);
|
|
1446
|
+
return {
|
|
1447
|
+
...this.bp,
|
|
1448
|
+
config: this.bp.config ?? DEFAULT_AGENT_EXECUTION_CONFIG,
|
|
1449
|
+
systemPrompt: this.bp.systemPrompt,
|
|
1450
|
+
model: this.bp.model
|
|
1451
|
+
};
|
|
1452
|
+
}
|
|
1453
|
+
};
|
|
1454
|
+
function agent(config) {
|
|
1455
|
+
return new AgentBuilder(config);
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
// src/standard-schema.ts
|
|
1459
|
+
var STANDARD_SCHEMA_VENDOR = "@stndrds/schema";
|
|
1460
|
+
function createStandardSchemaProps(zodSchema) {
|
|
1461
|
+
return {
|
|
1462
|
+
version: 1,
|
|
1463
|
+
vendor: STANDARD_SCHEMA_VENDOR,
|
|
1464
|
+
validate: (value) => {
|
|
1465
|
+
const result = zodSchema.safeParse(value);
|
|
1466
|
+
if (result.success) {
|
|
1467
|
+
return { value: result.data };
|
|
1468
|
+
}
|
|
1469
|
+
return {
|
|
1470
|
+
issues: result.error.issues.map((issue) => ({
|
|
1471
|
+
message: issue.message,
|
|
1472
|
+
// Zod path segments are string | number which are valid PropertyKey
|
|
1473
|
+
// for Standard Schema v1 (no conversion needed)
|
|
1474
|
+
path: issue.path
|
|
1475
|
+
}))
|
|
1476
|
+
};
|
|
1477
|
+
}
|
|
1478
|
+
};
|
|
1479
|
+
}
|
|
1480
|
+
function isStandardSchema(obj) {
|
|
1481
|
+
return typeof obj === "object" && obj !== null && "~standard" in obj && typeof obj["~standard"] === "object" && obj["~standard"].version === 1;
|
|
1482
|
+
}
|
|
1483
|
+
|
|
1370
1484
|
// src/builders/attribute-builders.ts
|
|
1371
1485
|
function asMutableArray(arr) {
|
|
1372
1486
|
return arr;
|
|
@@ -1381,7 +1495,7 @@ var BaseAttributeBuilder = class {
|
|
|
1381
1495
|
* @see https://standardschema.dev/
|
|
1382
1496
|
*/
|
|
1383
1497
|
get "~standard"() {
|
|
1384
|
-
const zodSchema =
|
|
1498
|
+
const zodSchema = chunkTS3PJOMZ_js.createAttributeValidator(this.build());
|
|
1385
1499
|
return createStandardSchemaProps(zodSchema);
|
|
1386
1500
|
}
|
|
1387
1501
|
constructor(type, name, label) {
|
|
@@ -2133,9 +2247,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
|
|
|
2133
2247
|
if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
|
|
2134
2248
|
const relation2 = this.attr.relationAttribute ?? "relation";
|
|
2135
2249
|
const target = this.attr.targetAttribute ?? "field";
|
|
2136
|
-
throw new
|
|
2250
|
+
throw new chunkTS3PJOMZ_js.SchemaError(
|
|
2137
2251
|
`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}").`,
|
|
2138
|
-
|
|
2252
|
+
chunkTS3PJOMZ_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2139
2253
|
);
|
|
2140
2254
|
}
|
|
2141
2255
|
return super.build();
|
|
@@ -2645,7 +2759,7 @@ var ObjectBuilder = class {
|
|
|
2645
2759
|
* @see https://standardschema.dev/
|
|
2646
2760
|
*/
|
|
2647
2761
|
get "~standard"() {
|
|
2648
|
-
const zodSchema =
|
|
2762
|
+
const zodSchema = chunkTS3PJOMZ_js.createObjectValidator(this.build());
|
|
2649
2763
|
return createStandardSchemaProps(zodSchema);
|
|
2650
2764
|
}
|
|
2651
2765
|
/**
|
|
@@ -2859,26 +2973,26 @@ var ObjectBuilder = class {
|
|
|
2859
2973
|
throw new Error("[ObjectBuilder] Missing required field: label");
|
|
2860
2974
|
}
|
|
2861
2975
|
if (!this._labelExpression) {
|
|
2862
|
-
throw new
|
|
2976
|
+
throw new chunkTS3PJOMZ_js.SchemaError(
|
|
2863
2977
|
`Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
|
|
2864
|
-
|
|
2978
|
+
chunkTS3PJOMZ_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2865
2979
|
);
|
|
2866
2980
|
}
|
|
2867
2981
|
const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
|
|
2868
2982
|
if (!labelResult.success) {
|
|
2869
2983
|
const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
|
|
2870
|
-
throw new
|
|
2984
|
+
throw new chunkTS3PJOMZ_js.SchemaError(
|
|
2871
2985
|
`Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
|
|
2872
|
-
|
|
2986
|
+
chunkTS3PJOMZ_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2873
2987
|
);
|
|
2874
2988
|
}
|
|
2875
2989
|
if (this._embeddingExpression !== void 0) {
|
|
2876
2990
|
const embeddingResult = labelExpressionSchema.safeParse(this._embeddingExpression);
|
|
2877
2991
|
if (!embeddingResult.success) {
|
|
2878
2992
|
const errorMsg = embeddingResult.error.issues[0]?.message ?? "Invalid embeddingExpression";
|
|
2879
|
-
throw new
|
|
2993
|
+
throw new chunkTS3PJOMZ_js.SchemaError(
|
|
2880
2994
|
`Invalid embeddingExpression for "${this.obj.name}": ${errorMsg}`,
|
|
2881
|
-
|
|
2995
|
+
chunkTS3PJOMZ_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2882
2996
|
);
|
|
2883
2997
|
}
|
|
2884
2998
|
}
|
|
@@ -2919,7 +3033,7 @@ var ObjectBuilder = class {
|
|
|
2919
3033
|
objectNameSchema.parse(name);
|
|
2920
3034
|
} catch (error) {
|
|
2921
3035
|
if (error instanceof z3__default.default.ZodError) {
|
|
2922
|
-
throw new
|
|
3036
|
+
throw new chunkTS3PJOMZ_js.SchemaError(error.issues[0].message, chunkTS3PJOMZ_js.SchemaErrorCode.INVALID_OBJECT_NAME);
|
|
2923
3037
|
}
|
|
2924
3038
|
throw error;
|
|
2925
3039
|
}
|
|
@@ -2930,7 +3044,7 @@ function object(config) {
|
|
|
2930
3044
|
}
|
|
2931
3045
|
function validatePresetStructure(presetId, nodes, depth) {
|
|
2932
3046
|
const fail = (message, detail) => {
|
|
2933
|
-
throw new
|
|
3047
|
+
throw new chunkTS3PJOMZ_js.ValidationError(message, [
|
|
2934
3048
|
{ path: ["documentLayout", "presets", presetId], message: detail }
|
|
2935
3049
|
]);
|
|
2936
3050
|
};
|
|
@@ -3106,19 +3220,6 @@ var RelationGroupBuilder = class {
|
|
|
3106
3220
|
return this.data;
|
|
3107
3221
|
}
|
|
3108
3222
|
};
|
|
3109
|
-
function assertViewVersion(version) {
|
|
3110
|
-
if (version < 1) throw new Error("View version must be >= 1");
|
|
3111
|
-
}
|
|
3112
|
-
function assertUniqueBy(items, getKey, buildError) {
|
|
3113
|
-
const seen = /* @__PURE__ */ new Set();
|
|
3114
|
-
for (const item of items) {
|
|
3115
|
-
const key = getKey(item);
|
|
3116
|
-
if (seen.has(key)) {
|
|
3117
|
-
throw new Error(buildError(key));
|
|
3118
|
-
}
|
|
3119
|
-
seen.add(key);
|
|
3120
|
-
}
|
|
3121
|
-
}
|
|
3122
3223
|
function validateViewName(name, builderName, examples) {
|
|
3123
3224
|
const viewNameSchema = z3.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-]*$/, {
|
|
3124
3225
|
message: `Invalid view name format.
|
|
@@ -3150,15 +3251,23 @@ var TableTabConfig = class {
|
|
|
3150
3251
|
return this;
|
|
3151
3252
|
}
|
|
3152
3253
|
/**
|
|
3153
|
-
* Allow creating new records
|
|
3254
|
+
* Allow creating new records.
|
|
3255
|
+
*
|
|
3256
|
+
* @param options.mode - Creation behavior when clicking "+": "redirect"
|
|
3257
|
+
* (navigate to detail), "inline" (empty row), or "peek" (instant-create a
|
|
3258
|
+
* draft and open it in the record stack side panel).
|
|
3259
|
+
* @example .create() or .create({ mode: "peek" })
|
|
3154
3260
|
*/
|
|
3155
|
-
create() {
|
|
3261
|
+
create(options) {
|
|
3156
3262
|
this.tabData.allowCreate = true;
|
|
3263
|
+
if (options?.mode) {
|
|
3264
|
+
this.tabData.createMode = options.mode;
|
|
3265
|
+
}
|
|
3157
3266
|
return this;
|
|
3158
3267
|
}
|
|
3159
3268
|
/**
|
|
3160
3269
|
* Set creation behavior when clicking "+"
|
|
3161
|
-
* @
|
|
3270
|
+
* @deprecated Use `create({ mode })` instead.
|
|
3162
3271
|
* @example .createMode("inline") or .createMode("peek")
|
|
3163
3272
|
*/
|
|
3164
3273
|
createMode(mode) {
|
|
@@ -3180,7 +3289,8 @@ var TableTabConfig = class {
|
|
|
3180
3289
|
return this;
|
|
3181
3290
|
}
|
|
3182
3291
|
/**
|
|
3183
|
-
*
|
|
3292
|
+
* Sugar for `create().edit().delete()`. Prefer the explicit methods —
|
|
3293
|
+
* creation options live on `create({ mode })`.
|
|
3184
3294
|
*/
|
|
3185
3295
|
crud() {
|
|
3186
3296
|
this.tabData.allowCreate = true;
|
|
@@ -3584,7 +3694,6 @@ var TabBuilder = class {
|
|
|
3584
3694
|
};
|
|
3585
3695
|
var DetailViewBuilder = class {
|
|
3586
3696
|
constructor(name, label) {
|
|
3587
|
-
this._version = 1;
|
|
3588
3697
|
validateViewName(name, "DetailViewBuilder", {
|
|
3589
3698
|
valid: "'detail', 'list-view', 'company-detail'",
|
|
3590
3699
|
invalid: "'Detail', 'listView', 'list_view'"
|
|
@@ -3631,17 +3740,6 @@ var DetailViewBuilder = class {
|
|
|
3631
3740
|
this.data.metadata = value;
|
|
3632
3741
|
return this;
|
|
3633
3742
|
}
|
|
3634
|
-
/**
|
|
3635
|
-
* Set the schema version for this view definition.
|
|
3636
|
-
* Increment when making breaking changes to force client updates.
|
|
3637
|
-
* @param v - Version number (must be >= 1)
|
|
3638
|
-
* @default 1
|
|
3639
|
-
*/
|
|
3640
|
-
version(v) {
|
|
3641
|
-
assertViewVersion(v);
|
|
3642
|
-
this._version = v;
|
|
3643
|
-
return this;
|
|
3644
|
-
}
|
|
3645
3743
|
/**
|
|
3646
3744
|
* Configure a side panel with flat attribute fields displayed alongside tab content.
|
|
3647
3745
|
*
|
|
@@ -3684,7 +3782,7 @@ var DetailViewBuilder = class {
|
|
|
3684
3782
|
assertUniqueBy(
|
|
3685
3783
|
this.data.tabs,
|
|
3686
3784
|
(tab) => tab.name,
|
|
3687
|
-
(name) => `[DetailViewBuilder] Duplicate tab name "${name}"`
|
|
3785
|
+
(name) => new Error(`[DetailViewBuilder] Duplicate tab name "${name}"`)
|
|
3688
3786
|
);
|
|
3689
3787
|
const config = {
|
|
3690
3788
|
tabs: this.data.tabs,
|
|
@@ -3699,8 +3797,7 @@ var DetailViewBuilder = class {
|
|
|
3699
3797
|
type: "detail",
|
|
3700
3798
|
config,
|
|
3701
3799
|
default: this.data.default,
|
|
3702
|
-
metadata: this.data.metadata
|
|
3703
|
-
schema_version: this._version
|
|
3800
|
+
metadata: this.data.metadata
|
|
3704
3801
|
};
|
|
3705
3802
|
}
|
|
3706
3803
|
};
|
|
@@ -3709,7 +3806,6 @@ function detailView(name, label) {
|
|
|
3709
3806
|
}
|
|
3710
3807
|
var ListViewBuilder = class {
|
|
3711
3808
|
constructor(name, label) {
|
|
3712
|
-
this._version = 1;
|
|
3713
3809
|
validateViewName(name, "ListViewBuilder", {
|
|
3714
3810
|
valid: "'default', 'list-view', 'active-contacts'",
|
|
3715
3811
|
invalid: "'Default', 'listView', 'list_view'"
|
|
@@ -3756,17 +3852,6 @@ var ListViewBuilder = class {
|
|
|
3756
3852
|
this.data.metadata = value;
|
|
3757
3853
|
return this;
|
|
3758
3854
|
}
|
|
3759
|
-
/**
|
|
3760
|
-
* Set the schema version for this view definition.
|
|
3761
|
-
* Increment when making breaking changes to force client updates.
|
|
3762
|
-
* @param v - Version number (must be >= 1)
|
|
3763
|
-
* @default 1
|
|
3764
|
-
*/
|
|
3765
|
-
version(v) {
|
|
3766
|
-
assertViewVersion(v);
|
|
3767
|
-
this._version = v;
|
|
3768
|
-
return this;
|
|
3769
|
-
}
|
|
3770
3855
|
/**
|
|
3771
3856
|
* Set base filters applied to ALL tabs (scoping, tenant, etc.)
|
|
3772
3857
|
* @example .baseFilter({ combinator: "and", rules: [{ attribute: "tenant", operator: "is", value: "acme" }] })
|
|
@@ -3808,7 +3893,7 @@ var ListViewBuilder = class {
|
|
|
3808
3893
|
assertUniqueBy(
|
|
3809
3894
|
this.data.tabs,
|
|
3810
3895
|
(tab) => tab.id,
|
|
3811
|
-
(id) => `[ListViewBuilder] Duplicate tab id "${id}"`
|
|
3896
|
+
(id) => new Error(`[ListViewBuilder] Duplicate tab id "${id}"`)
|
|
3812
3897
|
);
|
|
3813
3898
|
const defaultTabs = this.data.tabs.filter((t) => t.default);
|
|
3814
3899
|
if (defaultTabs.length > 1) {
|
|
@@ -3860,8 +3945,7 @@ var ListViewBuilder = class {
|
|
|
3860
3945
|
type: "list",
|
|
3861
3946
|
config,
|
|
3862
3947
|
default: this.data.default,
|
|
3863
|
-
metadata: this.data.metadata
|
|
3864
|
-
schema_version: this._version
|
|
3948
|
+
metadata: this.data.metadata
|
|
3865
3949
|
};
|
|
3866
3950
|
}
|
|
3867
3951
|
};
|
|
@@ -4195,7 +4279,7 @@ function jsonFlag(name, defaultValue) {
|
|
|
4195
4279
|
|
|
4196
4280
|
// src/feature-flags/flag-registry.ts
|
|
4197
4281
|
function duplicateFlagError(name) {
|
|
4198
|
-
return new
|
|
4282
|
+
return new chunkTS3PJOMZ_js.DuplicateError(
|
|
4199
4283
|
"feature flag",
|
|
4200
4284
|
name,
|
|
4201
4285
|
`Flag "${name}" is already registered. Each flag name must be unique.`
|
|
@@ -4273,7 +4357,7 @@ var FlagRegistry = class {
|
|
|
4273
4357
|
getOrThrow(name) {
|
|
4274
4358
|
const flag = this.get(name);
|
|
4275
4359
|
if (!flag) {
|
|
4276
|
-
throw new
|
|
4360
|
+
throw new chunkTS3PJOMZ_js.NotFoundError(
|
|
4277
4361
|
"Feature flag",
|
|
4278
4362
|
name,
|
|
4279
4363
|
void 0,
|
|
@@ -4430,19 +4514,19 @@ var FlagService = class {
|
|
|
4430
4514
|
*/
|
|
4431
4515
|
async setOverride(flagName, level, value, options = {}) {
|
|
4432
4516
|
if (!this.repository) {
|
|
4433
|
-
throw new
|
|
4517
|
+
throw new chunkTS3PJOMZ_js.SchemaError(
|
|
4434
4518
|
"Cannot set override: no FeatureFlagsRepository configured. Add featureFlags to your DatabaseAdapter to enable runtime overrides.",
|
|
4435
|
-
|
|
4519
|
+
chunkTS3PJOMZ_js.SchemaErrorCode.CONFIGURATION_REQUIRED
|
|
4436
4520
|
);
|
|
4437
4521
|
}
|
|
4438
4522
|
const flag = this.registry.get(flagName);
|
|
4439
4523
|
if (flag && !flag.allowedLevels.includes(level)) {
|
|
4440
4524
|
const message = `Flag "${flagName}" does not allow ${level}-level overrides. Allowed levels: ${flag.allowedLevels.join(", ")}`;
|
|
4441
|
-
throw new
|
|
4525
|
+
throw new chunkTS3PJOMZ_js.ValidationError(message, [{ path: ["level"], message }]);
|
|
4442
4526
|
}
|
|
4443
4527
|
if (flag?.system) {
|
|
4444
4528
|
const message = `Flag "${flagName}" is a system flag and cannot be overridden via API.`;
|
|
4445
|
-
throw new
|
|
4529
|
+
throw new chunkTS3PJOMZ_js.ValidationError(message, [{ path: ["flagName"], message }]);
|
|
4446
4530
|
}
|
|
4447
4531
|
await this.repository.setOverride({
|
|
4448
4532
|
flagName,
|
|
@@ -4462,9 +4546,9 @@ var FlagService = class {
|
|
|
4462
4546
|
*/
|
|
4463
4547
|
async deleteOverride(flagName, level, targetId) {
|
|
4464
4548
|
if (!this.repository) {
|
|
4465
|
-
throw new
|
|
4549
|
+
throw new chunkTS3PJOMZ_js.SchemaError(
|
|
4466
4550
|
"Cannot delete override: no FeatureFlagsRepository configured.",
|
|
4467
|
-
|
|
4551
|
+
chunkTS3PJOMZ_js.SchemaErrorCode.CONFIGURATION_REQUIRED
|
|
4468
4552
|
);
|
|
4469
4553
|
}
|
|
4470
4554
|
await this.repository.deleteOverride(flagName, level, targetId);
|
|
@@ -4601,7 +4685,7 @@ var NativeObjectRegistryClass = class {
|
|
|
4601
4685
|
if (!object2.system) {
|
|
4602
4686
|
const message = `[NativeObjectRegistry] Cannot register object "${object2.name}" (id: ${object2.id}): missing system flag.
|
|
4603
4687
|
Native objects must have system=true. Did you call .runtime() on the builder? Remove that call \u2014 objects are system:true by default.`;
|
|
4604
|
-
throw new
|
|
4688
|
+
throw new chunkTS3PJOMZ_js.ValidationError(message, []);
|
|
4605
4689
|
}
|
|
4606
4690
|
if (this.objects.has(object2.name)) {
|
|
4607
4691
|
const existing = this.objects.get(object2.name);
|
|
@@ -4609,7 +4693,7 @@ Native objects must have system=true. Did you call .runtime() on the builder? Re
|
|
|
4609
4693
|
- Existing: "${existing?.label}" (id: ${existing?.id})
|
|
4610
4694
|
- New: "${object2.label}" (id: ${object2.id})
|
|
4611
4695
|
Please use unique names for each native object.`;
|
|
4612
|
-
throw new
|
|
4696
|
+
throw new chunkTS3PJOMZ_js.DuplicateError("object", object2.name, message);
|
|
4613
4697
|
}
|
|
4614
4698
|
this.objects.set(object2.name, cloneObjectDefinition(object2));
|
|
4615
4699
|
}
|
|
@@ -4641,7 +4725,7 @@ Please use unique names for each native object.`;
|
|
|
4641
4725
|
if (!object2) {
|
|
4642
4726
|
const message = `[NativeObjectRegistry] Native object "${name}" not found.
|
|
4643
4727
|
Available objects: ${this.listNames().join(", ")}`;
|
|
4644
|
-
throw new
|
|
4728
|
+
throw new chunkTS3PJOMZ_js.NotFoundError("Native object", name, chunkTS3PJOMZ_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
|
|
4645
4729
|
}
|
|
4646
4730
|
return object2;
|
|
4647
4731
|
}
|
|
@@ -4702,11 +4786,45 @@ Available objects: ${this.listNames().join(", ")}`;
|
|
|
4702
4786
|
}
|
|
4703
4787
|
};
|
|
4704
4788
|
var registry = new NativeObjectRegistryClass();
|
|
4789
|
+
var SKILL_CONTENT_TEMPLATE = `## Overview
|
|
4790
|
+
|
|
4791
|
+
Describe in one or two sentences what this skill does and the outcome it produces. The agent reads this page when it uses the skill \u2014 write instructions for the agent, not documentation for people.
|
|
4792
|
+
|
|
4793
|
+
## When to use
|
|
4794
|
+
|
|
4795
|
+
List the situations or requests that should trigger this skill. Concrete phrases beat vague categories.
|
|
4796
|
+
|
|
4797
|
+
- When asked to \u2026
|
|
4798
|
+
- When a record of \u2026 needs \u2026
|
|
4799
|
+
|
|
4800
|
+
## Instructions
|
|
4801
|
+
|
|
4802
|
+
Write imperative, step-by-step directions. Name the exact objects, documents, or tools involved \u2014 the agent follows these literally.
|
|
4803
|
+
|
|
4804
|
+
1. First, \u2026
|
|
4805
|
+
2. Then, \u2026
|
|
4806
|
+
3. Finally, \u2026
|
|
4807
|
+
|
|
4808
|
+
## Examples
|
|
4809
|
+
|
|
4810
|
+
Show at least one concrete example of the skill applied well.
|
|
4811
|
+
|
|
4812
|
+
**Request:** "\u2026"
|
|
4813
|
+
|
|
4814
|
+
**Expected result:** \u2026
|
|
4815
|
+
|
|
4816
|
+
## What to avoid
|
|
4817
|
+
|
|
4818
|
+
- Never \u2026
|
|
4819
|
+
- Do not \u2026
|
|
4820
|
+
`;
|
|
4705
4821
|
var SKILL_OBJECT = object({ name: "skill", label: "Skill" }).sealed().icon("sparkles").order(Number.MAX_SAFE_INTEGER).pluralLabel("Skills").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}\n{{ content }}").attribute(text({ name: "name", label: "Name" }).maxLength(constants.SKILL_NAME_MAX_LENGTH).required()).attribute(
|
|
4706
|
-
text({ name: "description", label: "Description" }).multiline().maxLength(constants.SKILL_DESCRIPTION_MAX_LENGTH).required()
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4822
|
+
text({ name: "description", label: "Description" }).multiline().maxLength(constants.SKILL_DESCRIPTION_MAX_LENGTH).required().placeholder(
|
|
4823
|
+
'What this skill does and when to use it \u2014 e.g. "Drafts replies to customer complaints. Use when asked to answer an unhappy customer."'
|
|
4824
|
+
)
|
|
4825
|
+
).attribute(richtext({ name: "content", label: "Content" }).defaultValue(SKILL_CONTENT_TEMPLATE)).build();
|
|
4826
|
+
var SKILL_VIEW = detailView("skill-detail", "Skill").for("skill").default().sidePanel({ attributes: ["name", "description"] }).tab("content", "Content").richtext("content").titleAttribute("name").done().build();
|
|
4827
|
+
var SKILL_LIST_VIEW = listView("skill-list", "Skills").for("skill").default().tab("all", "All").table().columns("name", "description").sort("name", "asc").build();
|
|
4710
4828
|
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(
|
|
4711
4829
|
text({ name: "description", label: "Description" }).multiline().maxLength(constants.MEMORY_DESCRIPTION_MAX_LENGTH).required()
|
|
4712
4830
|
).attribute(text({ name: "content", label: "Content" }).multiline()).attribute(
|
|
@@ -4746,7 +4864,7 @@ var ViewRegistry = class {
|
|
|
4746
4864
|
const key = this.makeKey(view.object, view.name, view.type);
|
|
4747
4865
|
if (this.views.has(key)) {
|
|
4748
4866
|
const message = `[ViewRegistry] Duplicate view: "${view.name}" (${view.type}) for object "${view.object}"`;
|
|
4749
|
-
throw new
|
|
4867
|
+
throw new chunkTS3PJOMZ_js.DuplicateError("view", key, message);
|
|
4750
4868
|
}
|
|
4751
4869
|
const storedView = cloneViewDefinition(view);
|
|
4752
4870
|
this.views.set(key, storedView);
|
|
@@ -4791,7 +4909,7 @@ var ViewRegistry = class {
|
|
|
4791
4909
|
const availableNames = available.map((v) => `${v.name} (${v.type})`).join(", ") || "(none)";
|
|
4792
4910
|
const message = `[ViewRegistry] View "${viewName}" not found for object "${objectName}".
|
|
4793
4911
|
Available views: ${availableNames}`;
|
|
4794
|
-
throw new
|
|
4912
|
+
throw new chunkTS3PJOMZ_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
|
|
4795
4913
|
}
|
|
4796
4914
|
return view;
|
|
4797
4915
|
}
|
|
@@ -4961,8 +5079,7 @@ function generateDefaultDetailView(object2, options = {}) {
|
|
|
4961
5079
|
object: object2.name,
|
|
4962
5080
|
type: "detail",
|
|
4963
5081
|
config,
|
|
4964
|
-
default: true
|
|
4965
|
-
schema_version: 1
|
|
5082
|
+
default: true
|
|
4966
5083
|
};
|
|
4967
5084
|
}
|
|
4968
5085
|
function generateDefaultListView(object2, options = {}) {
|
|
@@ -4989,8 +5106,7 @@ function generateDefaultListView(object2, options = {}) {
|
|
|
4989
5106
|
object: object2.name,
|
|
4990
5107
|
type: "list",
|
|
4991
5108
|
config,
|
|
4992
|
-
default: true
|
|
4993
|
-
schema_version: 1
|
|
5109
|
+
default: true
|
|
4994
5110
|
};
|
|
4995
5111
|
}
|
|
4996
5112
|
|
|
@@ -5099,7 +5215,7 @@ var FormRegistry = class {
|
|
|
5099
5215
|
const forms = Array.isArray(formOrForms) ? formOrForms : [formOrForms];
|
|
5100
5216
|
for (const f of forms) {
|
|
5101
5217
|
if (this.forms.has(f.name)) {
|
|
5102
|
-
throw new
|
|
5218
|
+
throw new chunkTS3PJOMZ_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
|
|
5103
5219
|
}
|
|
5104
5220
|
this.forms.set(f.name, cloneFormDefinition(f));
|
|
5105
5221
|
}
|
|
@@ -6986,7 +7102,7 @@ function assertOperatorForType(operator, type, context) {
|
|
|
6986
7102
|
if (!ops?.includes(operator)) {
|
|
6987
7103
|
const validList = ops?.length ? ops.join(", ") : "(no operators registered for this type)";
|
|
6988
7104
|
const summary = `Operator "${operator}" is not valid for ${context} type "${type}". Valid operators: ${validList}.`;
|
|
6989
|
-
throw new
|
|
7105
|
+
throw new chunkTS3PJOMZ_js.ValidationError(summary, [
|
|
6990
7106
|
{
|
|
6991
7107
|
path: ["operator"],
|
|
6992
7108
|
message: summary
|
|
@@ -7002,7 +7118,7 @@ function assertRelativeDateValue(rule) {
|
|
|
7002
7118
|
const valid = typeof v === "object" && v !== null && typeof v.amount === "number" && Number.isFinite(v.amount) && v.amount > 0 && typeof v.unit === "string" && RELATIVE_DATE_UNITS.has(v.unit) && typeof v.direction === "string" && RELATIVE_DATE_DIRECTIONS.has(v.direction);
|
|
7003
7119
|
if (!valid) {
|
|
7004
7120
|
const m = `Operator "is_within" requires a relative-date value { amount: positive number, unit: days|weeks|months|years, direction: past|future }`;
|
|
7005
|
-
throw new
|
|
7121
|
+
throw new chunkTS3PJOMZ_js.ValidationError(m, [{ path: ["value"], message: m }]);
|
|
7006
7122
|
}
|
|
7007
7123
|
}
|
|
7008
7124
|
function assertDynamicValueForAttribute(rule, attrType) {
|
|
@@ -7010,34 +7126,34 @@ function assertDynamicValueForAttribute(rule, attrType) {
|
|
|
7010
7126
|
const v = rule.value;
|
|
7011
7127
|
if (v.dynamic === "actor" && attrType !== "user") {
|
|
7012
7128
|
const m = `actor token (@me) is only valid on user attributes, not "${attrType}"`;
|
|
7013
|
-
throw new
|
|
7129
|
+
throw new chunkTS3PJOMZ_js.ValidationError(m, [{ path: ["value"], message: m }]);
|
|
7014
7130
|
}
|
|
7015
7131
|
if (v.dynamic === "date" && attrType !== "date") {
|
|
7016
7132
|
const m = `date token (@today/@now) is only valid on date attributes, not "${attrType}"`;
|
|
7017
|
-
throw new
|
|
7133
|
+
throw new chunkTS3PJOMZ_js.ValidationError(m, [{ path: ["value"], message: m }]);
|
|
7018
7134
|
}
|
|
7019
7135
|
}
|
|
7020
7136
|
function validateQualifiedRule(rule, context) {
|
|
7021
7137
|
const rootAttr = context.attributes.find((a) => a.name === rule.attribute);
|
|
7022
7138
|
const systemOps = SYSTEM_FILTER_OPERATORS[rule.attribute];
|
|
7023
7139
|
if (!(rootAttr || systemOps)) {
|
|
7024
|
-
throw new
|
|
7140
|
+
throw new chunkTS3PJOMZ_js.ValidationError(`Unknown attribute: ${rule.attribute}`, [
|
|
7025
7141
|
{ path: ["attribute"], message: `Unknown attribute: ${rule.attribute}` }
|
|
7026
7142
|
]);
|
|
7027
7143
|
}
|
|
7028
7144
|
if (rule.quantifier !== void 0 && !rule.property) {
|
|
7029
7145
|
const m = `quantifier is only valid on qualified edge rules (set "property")`;
|
|
7030
|
-
throw new
|
|
7146
|
+
throw new chunkTS3PJOMZ_js.ValidationError(m, [{ path: ["quantifier"], message: m }]);
|
|
7031
7147
|
}
|
|
7032
7148
|
if (!rootAttr) {
|
|
7033
7149
|
if (rule.property) {
|
|
7034
|
-
throw new
|
|
7150
|
+
throw new chunkTS3PJOMZ_js.ValidationError(`Cannot qualify system attribute "${rule.attribute}"`, [
|
|
7035
7151
|
{ path: ["property"], message: `"${rule.attribute}" is a system column, not a reference` }
|
|
7036
7152
|
]);
|
|
7037
7153
|
}
|
|
7038
7154
|
if (!systemOps.includes(rule.operator)) {
|
|
7039
7155
|
const summary = `Operator "${rule.operator}" is not valid for system attribute "${rule.attribute}". Valid operators: ${systemOps.join(", ")}.`;
|
|
7040
|
-
throw new
|
|
7156
|
+
throw new chunkTS3PJOMZ_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
|
|
7041
7157
|
}
|
|
7042
7158
|
assertRelativeDateValue(rule);
|
|
7043
7159
|
return;
|
|
@@ -7048,25 +7164,25 @@ function validateQualifiedRule(rule, context) {
|
|
|
7048
7164
|
if (!ops.includes(rule.operator)) {
|
|
7049
7165
|
const validList = ops.length ? ops.join(", ") : "(not filterable)";
|
|
7050
7166
|
const summary = `Operator "${rule.operator}" is not valid for attribute "${rootAttr.name}". Valid operators: ${validList}.`;
|
|
7051
|
-
throw new
|
|
7167
|
+
throw new chunkTS3PJOMZ_js.ValidationError(summary, [{ path: ["operator"], message: summary }]);
|
|
7052
7168
|
}
|
|
7053
7169
|
assertRelativeDateValue(rule);
|
|
7054
7170
|
return;
|
|
7055
7171
|
}
|
|
7056
7172
|
if (!REFERENCE_TYPES.has(rootAttr.type)) {
|
|
7057
|
-
throw new
|
|
7173
|
+
throw new chunkTS3PJOMZ_js.ValidationError(`Cannot qualify ${rootAttr.type} attribute "${rule.attribute}"`, [
|
|
7058
7174
|
{ path: ["property"], message: `Attribute "${rule.attribute}" is not a reference type` }
|
|
7059
7175
|
]);
|
|
7060
7176
|
}
|
|
7061
7177
|
const propSchema = rootAttr.properties;
|
|
7062
7178
|
if (!propSchema) {
|
|
7063
|
-
throw new
|
|
7179
|
+
throw new chunkTS3PJOMZ_js.ValidationError(`Attribute "${rule.attribute}" has no qualifyWith schema`, [
|
|
7064
7180
|
{ path: ["property"], message: `"${rule.attribute}" has no qualifyWith` }
|
|
7065
7181
|
]);
|
|
7066
7182
|
}
|
|
7067
7183
|
const propDef = propSchema.definitions.find((p) => p.name === rule.property);
|
|
7068
7184
|
if (!propDef) {
|
|
7069
|
-
throw new
|
|
7185
|
+
throw new chunkTS3PJOMZ_js.ValidationError(
|
|
7070
7186
|
`Property "${rule.property}" not defined on "${rule.attribute}".qualifyWith()`,
|
|
7071
7187
|
[{ path: ["property"], message: `Unknown property: ${rule.property}` }]
|
|
7072
7188
|
);
|
|
@@ -7082,6 +7198,49 @@ var CONNECTOR_CALLBACK_PARAM = {
|
|
|
7082
7198
|
provider: "connector_provider"
|
|
7083
7199
|
};
|
|
7084
7200
|
|
|
7201
|
+
// src/utils/canonical-json.ts
|
|
7202
|
+
function canonicalStringify(value) {
|
|
7203
|
+
const seen = /* @__PURE__ */ new Set();
|
|
7204
|
+
function encode(v) {
|
|
7205
|
+
if (v === null) return "null";
|
|
7206
|
+
switch (typeof v) {
|
|
7207
|
+
case "string":
|
|
7208
|
+
case "number":
|
|
7209
|
+
case "boolean":
|
|
7210
|
+
return JSON.stringify(v);
|
|
7211
|
+
case "undefined":
|
|
7212
|
+
return void 0;
|
|
7213
|
+
case "object":
|
|
7214
|
+
break;
|
|
7215
|
+
default:
|
|
7216
|
+
throw new chunkTS3PJOMZ_js.ValidationError(`Cannot canonicalize value of type ${typeof v}`, []);
|
|
7217
|
+
}
|
|
7218
|
+
const obj = v;
|
|
7219
|
+
if (seen.has(obj)) throw new chunkTS3PJOMZ_js.ValidationError("Cannot canonicalize circular structure", []);
|
|
7220
|
+
seen.add(obj);
|
|
7221
|
+
try {
|
|
7222
|
+
if (Array.isArray(obj)) return `[${obj.map((e) => encode(e) ?? "null").join(",")}]`;
|
|
7223
|
+
const entries = Object.entries(obj).map(([k, val]) => [k, encode(val)]).filter((pair) => pair[1] !== void 0).sort(([a], [b]) => a < b ? -1 : 1);
|
|
7224
|
+
return `{${entries.map(([k, val]) => `${JSON.stringify(k)}:${val}`).join(",")}}`;
|
|
7225
|
+
} finally {
|
|
7226
|
+
seen.delete(obj);
|
|
7227
|
+
}
|
|
7228
|
+
}
|
|
7229
|
+
return encode(value) ?? "null";
|
|
7230
|
+
}
|
|
7231
|
+
|
|
7232
|
+
// src/utils/view-sync-payload.ts
|
|
7233
|
+
function viewSyncPayload(view) {
|
|
7234
|
+
return {
|
|
7235
|
+
label: view.label,
|
|
7236
|
+
description: view.description ?? null,
|
|
7237
|
+
icon: view.icon ?? null,
|
|
7238
|
+
config: view.config,
|
|
7239
|
+
default: view.default ?? false,
|
|
7240
|
+
metadata: view.metadata ?? null
|
|
7241
|
+
};
|
|
7242
|
+
}
|
|
7243
|
+
|
|
7085
7244
|
Object.defineProperty(exports, "asTenantId", {
|
|
7086
7245
|
enumerable: true,
|
|
7087
7246
|
get: function () { return chunkFRCDMQER_js.asTenantId; }
|
|
@@ -7116,175 +7275,175 @@ Object.defineProperty(exports, "parseComputedFormula", {
|
|
|
7116
7275
|
});
|
|
7117
7276
|
Object.defineProperty(exports, "AccessDeniedError", {
|
|
7118
7277
|
enumerable: true,
|
|
7119
|
-
get: function () { return
|
|
7278
|
+
get: function () { return chunkTS3PJOMZ_js.AccessDeniedError; }
|
|
7120
7279
|
});
|
|
7121
7280
|
Object.defineProperty(exports, "AttributeInUseError", {
|
|
7122
7281
|
enumerable: true,
|
|
7123
|
-
get: function () { return
|
|
7282
|
+
get: function () { return chunkTS3PJOMZ_js.AttributeInUseError; }
|
|
7124
7283
|
});
|
|
7125
7284
|
Object.defineProperty(exports, "AttributeNotFoundError", {
|
|
7126
7285
|
enumerable: true,
|
|
7127
|
-
get: function () { return
|
|
7286
|
+
get: function () { return chunkTS3PJOMZ_js.AttributeNotFoundError; }
|
|
7128
7287
|
});
|
|
7129
7288
|
Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
|
|
7130
7289
|
enumerable: true,
|
|
7131
|
-
get: function () { return
|
|
7290
|
+
get: function () { return chunkTS3PJOMZ_js.ChangeTypeNotSupportedError; }
|
|
7132
7291
|
});
|
|
7133
7292
|
Object.defineProperty(exports, "ConcurrentModificationError", {
|
|
7134
7293
|
enumerable: true,
|
|
7135
|
-
get: function () { return
|
|
7294
|
+
get: function () { return chunkTS3PJOMZ_js.ConcurrentModificationError; }
|
|
7136
7295
|
});
|
|
7137
7296
|
Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
|
|
7138
7297
|
enumerable: true,
|
|
7139
|
-
get: function () { return
|
|
7298
|
+
get: function () { return chunkTS3PJOMZ_js.DestructiveSyncNotAllowedError; }
|
|
7140
7299
|
});
|
|
7141
7300
|
Object.defineProperty(exports, "DuplicateError", {
|
|
7142
7301
|
enumerable: true,
|
|
7143
|
-
get: function () { return
|
|
7302
|
+
get: function () { return chunkTS3PJOMZ_js.DuplicateError; }
|
|
7144
7303
|
});
|
|
7145
7304
|
Object.defineProperty(exports, "ForbiddenError", {
|
|
7146
7305
|
enumerable: true,
|
|
7147
|
-
get: function () { return
|
|
7306
|
+
get: function () { return chunkTS3PJOMZ_js.ForbiddenError; }
|
|
7148
7307
|
});
|
|
7149
7308
|
Object.defineProperty(exports, "MemoryNotFoundError", {
|
|
7150
7309
|
enumerable: true,
|
|
7151
|
-
get: function () { return
|
|
7310
|
+
get: function () { return chunkTS3PJOMZ_js.MemoryNotFoundError; }
|
|
7152
7311
|
});
|
|
7153
7312
|
Object.defineProperty(exports, "MigrationTimeoutError", {
|
|
7154
7313
|
enumerable: true,
|
|
7155
|
-
get: function () { return
|
|
7314
|
+
get: function () { return chunkTS3PJOMZ_js.MigrationTimeoutError; }
|
|
7156
7315
|
});
|
|
7157
7316
|
Object.defineProperty(exports, "NotFoundError", {
|
|
7158
7317
|
enumerable: true,
|
|
7159
|
-
get: function () { return
|
|
7318
|
+
get: function () { return chunkTS3PJOMZ_js.NotFoundError; }
|
|
7160
7319
|
});
|
|
7161
7320
|
Object.defineProperty(exports, "NotImplementedError", {
|
|
7162
7321
|
enumerable: true,
|
|
7163
|
-
get: function () { return
|
|
7322
|
+
get: function () { return chunkTS3PJOMZ_js.NotImplementedError; }
|
|
7164
7323
|
});
|
|
7165
7324
|
Object.defineProperty(exports, "ObjectNotFoundError", {
|
|
7166
7325
|
enumerable: true,
|
|
7167
|
-
get: function () { return
|
|
7326
|
+
get: function () { return chunkTS3PJOMZ_js.ObjectNotFoundError; }
|
|
7168
7327
|
});
|
|
7169
7328
|
Object.defineProperty(exports, "ObjectReferencedError", {
|
|
7170
7329
|
enumerable: true,
|
|
7171
|
-
get: function () { return
|
|
7330
|
+
get: function () { return chunkTS3PJOMZ_js.ObjectReferencedError; }
|
|
7172
7331
|
});
|
|
7173
7332
|
Object.defineProperty(exports, "OrphanSystemAttributeError", {
|
|
7174
7333
|
enumerable: true,
|
|
7175
|
-
get: function () { return
|
|
7334
|
+
get: function () { return chunkTS3PJOMZ_js.OrphanSystemAttributeError; }
|
|
7176
7335
|
});
|
|
7177
7336
|
Object.defineProperty(exports, "ProtectedResourceError", {
|
|
7178
7337
|
enumerable: true,
|
|
7179
|
-
get: function () { return
|
|
7338
|
+
get: function () { return chunkTS3PJOMZ_js.ProtectedResourceError; }
|
|
7180
7339
|
});
|
|
7181
7340
|
Object.defineProperty(exports, "ProtectedRoleError", {
|
|
7182
7341
|
enumerable: true,
|
|
7183
|
-
get: function () { return
|
|
7342
|
+
get: function () { return chunkTS3PJOMZ_js.ProtectedRoleError; }
|
|
7184
7343
|
});
|
|
7185
7344
|
Object.defineProperty(exports, "RecordNotFoundError", {
|
|
7186
7345
|
enumerable: true,
|
|
7187
|
-
get: function () { return
|
|
7346
|
+
get: function () { return chunkTS3PJOMZ_js.RecordNotFoundError; }
|
|
7188
7347
|
});
|
|
7189
7348
|
Object.defineProperty(exports, "RecordReferencedError", {
|
|
7190
7349
|
enumerable: true,
|
|
7191
|
-
get: function () { return
|
|
7350
|
+
get: function () { return chunkTS3PJOMZ_js.RecordReferencedError; }
|
|
7192
7351
|
});
|
|
7193
7352
|
Object.defineProperty(exports, "RepositoryError", {
|
|
7194
7353
|
enumerable: true,
|
|
7195
|
-
get: function () { return
|
|
7354
|
+
get: function () { return chunkTS3PJOMZ_js.RepositoryError; }
|
|
7196
7355
|
});
|
|
7197
7356
|
Object.defineProperty(exports, "RoleNotFoundError", {
|
|
7198
7357
|
enumerable: true,
|
|
7199
|
-
get: function () { return
|
|
7358
|
+
get: function () { return chunkTS3PJOMZ_js.RoleNotFoundError; }
|
|
7200
7359
|
});
|
|
7201
7360
|
Object.defineProperty(exports, "SchemaError", {
|
|
7202
7361
|
enumerable: true,
|
|
7203
|
-
get: function () { return
|
|
7362
|
+
get: function () { return chunkTS3PJOMZ_js.SchemaError; }
|
|
7204
7363
|
});
|
|
7205
7364
|
Object.defineProperty(exports, "SchemaErrorCode", {
|
|
7206
7365
|
enumerable: true,
|
|
7207
|
-
get: function () { return
|
|
7366
|
+
get: function () { return chunkTS3PJOMZ_js.SchemaErrorCode; }
|
|
7208
7367
|
});
|
|
7209
7368
|
Object.defineProperty(exports, "SearchBackendError", {
|
|
7210
7369
|
enumerable: true,
|
|
7211
|
-
get: function () { return
|
|
7370
|
+
get: function () { return chunkTS3PJOMZ_js.SearchBackendError; }
|
|
7212
7371
|
});
|
|
7213
7372
|
Object.defineProperty(exports, "StorageError", {
|
|
7214
7373
|
enumerable: true,
|
|
7215
|
-
get: function () { return
|
|
7374
|
+
get: function () { return chunkTS3PJOMZ_js.StorageError; }
|
|
7216
7375
|
});
|
|
7217
7376
|
Object.defineProperty(exports, "SyncCascadeError", {
|
|
7218
7377
|
enumerable: true,
|
|
7219
|
-
get: function () { return
|
|
7378
|
+
get: function () { return chunkTS3PJOMZ_js.SyncCascadeError; }
|
|
7220
7379
|
});
|
|
7221
7380
|
Object.defineProperty(exports, "SyncConflictError", {
|
|
7222
7381
|
enumerable: true,
|
|
7223
|
-
get: function () { return
|
|
7382
|
+
get: function () { return chunkTS3PJOMZ_js.SyncConflictError; }
|
|
7224
7383
|
});
|
|
7225
7384
|
Object.defineProperty(exports, "SyncError", {
|
|
7226
7385
|
enumerable: true,
|
|
7227
|
-
get: function () { return
|
|
7386
|
+
get: function () { return chunkTS3PJOMZ_js.SyncError; }
|
|
7228
7387
|
});
|
|
7229
7388
|
Object.defineProperty(exports, "SystemEntityImmutableError", {
|
|
7230
7389
|
enumerable: true,
|
|
7231
|
-
get: function () { return
|
|
7390
|
+
get: function () { return chunkTS3PJOMZ_js.SystemEntityImmutableError; }
|
|
7232
7391
|
});
|
|
7233
7392
|
Object.defineProperty(exports, "ValidationError", {
|
|
7234
7393
|
enumerable: true,
|
|
7235
|
-
get: function () { return
|
|
7394
|
+
get: function () { return chunkTS3PJOMZ_js.ValidationError; }
|
|
7236
7395
|
});
|
|
7237
7396
|
Object.defineProperty(exports, "createFormAttributeValidator", {
|
|
7238
7397
|
enumerable: true,
|
|
7239
|
-
get: function () { return
|
|
7398
|
+
get: function () { return chunkTS3PJOMZ_js.createFormAttributeValidator; }
|
|
7240
7399
|
});
|
|
7241
7400
|
Object.defineProperty(exports, "isAttributeInUseError", {
|
|
7242
7401
|
enumerable: true,
|
|
7243
|
-
get: function () { return
|
|
7402
|
+
get: function () { return chunkTS3PJOMZ_js.isAttributeInUseError; }
|
|
7244
7403
|
});
|
|
7245
7404
|
Object.defineProperty(exports, "isNotFoundError", {
|
|
7246
7405
|
enumerable: true,
|
|
7247
|
-
get: function () { return
|
|
7406
|
+
get: function () { return chunkTS3PJOMZ_js.isNotFoundError; }
|
|
7248
7407
|
});
|
|
7249
7408
|
Object.defineProperty(exports, "isObjectReferencedError", {
|
|
7250
7409
|
enumerable: true,
|
|
7251
|
-
get: function () { return
|
|
7410
|
+
get: function () { return chunkTS3PJOMZ_js.isObjectReferencedError; }
|
|
7252
7411
|
});
|
|
7253
7412
|
Object.defineProperty(exports, "isProtectedResourceError", {
|
|
7254
7413
|
enumerable: true,
|
|
7255
|
-
get: function () { return
|
|
7414
|
+
get: function () { return chunkTS3PJOMZ_js.isProtectedResourceError; }
|
|
7256
7415
|
});
|
|
7257
7416
|
Object.defineProperty(exports, "isRecordReferencedError", {
|
|
7258
7417
|
enumerable: true,
|
|
7259
|
-
get: function () { return
|
|
7418
|
+
get: function () { return chunkTS3PJOMZ_js.isRecordReferencedError; }
|
|
7260
7419
|
});
|
|
7261
7420
|
Object.defineProperty(exports, "isSchemaError", {
|
|
7262
7421
|
enumerable: true,
|
|
7263
|
-
get: function () { return
|
|
7422
|
+
get: function () { return chunkTS3PJOMZ_js.isSchemaError; }
|
|
7264
7423
|
});
|
|
7265
7424
|
Object.defineProperty(exports, "isValidationError", {
|
|
7266
7425
|
enumerable: true,
|
|
7267
|
-
get: function () { return
|
|
7426
|
+
get: function () { return chunkTS3PJOMZ_js.isValidationError; }
|
|
7268
7427
|
});
|
|
7269
7428
|
Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
|
|
7270
7429
|
enumerable: true,
|
|
7271
|
-
get: function () { return
|
|
7430
|
+
get: function () { return chunkTS3PJOMZ_js.rejectUnknownAttributesOrThrow; }
|
|
7272
7431
|
});
|
|
7273
7432
|
Object.defineProperty(exports, "validateDraft", {
|
|
7274
7433
|
enumerable: true,
|
|
7275
|
-
get: function () { return
|
|
7434
|
+
get: function () { return chunkTS3PJOMZ_js.validateDraft; }
|
|
7276
7435
|
});
|
|
7277
7436
|
Object.defineProperty(exports, "validateDraftOrThrow", {
|
|
7278
7437
|
enumerable: true,
|
|
7279
|
-
get: function () { return
|
|
7438
|
+
get: function () { return chunkTS3PJOMZ_js.validateDraftOrThrow; }
|
|
7280
7439
|
});
|
|
7281
7440
|
Object.defineProperty(exports, "validateObject", {
|
|
7282
7441
|
enumerable: true,
|
|
7283
|
-
get: function () { return
|
|
7442
|
+
get: function () { return chunkTS3PJOMZ_js.validateObject; }
|
|
7284
7443
|
});
|
|
7285
7444
|
Object.defineProperty(exports, "validateObjectOrThrow", {
|
|
7286
7445
|
enumerable: true,
|
|
7287
|
-
get: function () { return
|
|
7446
|
+
get: function () { return chunkTS3PJOMZ_js.validateObjectOrThrow; }
|
|
7288
7447
|
});
|
|
7289
7448
|
Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
|
|
7290
7449
|
enumerable: true,
|
|
@@ -7302,6 +7461,7 @@ exports.AUDIT_ACTIONS = AUDIT_ACTIONS;
|
|
|
7302
7461
|
exports.AUDIT_RESOURCE_TYPES = AUDIT_RESOURCE_TYPES;
|
|
7303
7462
|
exports.AUTOFILL_ELIGIBLE_TYPES = AUTOFILL_ELIGIBLE_TYPES;
|
|
7304
7463
|
exports.ActivityTabConfig = ActivityTabConfig;
|
|
7464
|
+
exports.AgentBuilder = AgentBuilder;
|
|
7305
7465
|
exports.BEHAVIOR_PROPERTIES = BEHAVIOR_PROPERTIES;
|
|
7306
7466
|
exports.BROWSER_PREVIEW_STATUSES = BROWSER_PREVIEW_STATUSES;
|
|
7307
7467
|
exports.COMPUTED_FUNCTIONS = COMPUTED_FUNCTIONS;
|
|
@@ -7311,6 +7471,7 @@ exports.CONNECTOR_CALLBACK_PARAM = CONNECTOR_CALLBACK_PARAM;
|
|
|
7311
7471
|
exports.ComputedFormulaCompileError = ComputedFormulaCompileError;
|
|
7312
7472
|
exports.CustomTabConfig = CustomTabConfig;
|
|
7313
7473
|
exports.DB_COLUMN_FIELDS = DB_COLUMN_FIELDS;
|
|
7474
|
+
exports.DEFAULT_AGENT_EXECUTION_CONFIG = DEFAULT_AGENT_EXECUTION_CONFIG;
|
|
7314
7475
|
exports.DEFAULT_ROLES = DEFAULT_ROLES;
|
|
7315
7476
|
exports.DEFAULT_ROLE_DESCRIPTIONS = DEFAULT_ROLE_DESCRIPTIONS;
|
|
7316
7477
|
exports.DEFAULT_ROLE_LABELS = DEFAULT_ROLE_LABELS;
|
|
@@ -7375,6 +7536,7 @@ exports.TableTabConfig = TableTabConfig;
|
|
|
7375
7536
|
exports.USER_STATUSES = USER_STATUSES;
|
|
7376
7537
|
exports.accessLevelToActions = accessLevelToActions;
|
|
7377
7538
|
exports.actionsToAccessLevel = actionsToAccessLevel;
|
|
7539
|
+
exports.agent = agent;
|
|
7378
7540
|
exports.applyPipes = applyPipes;
|
|
7379
7541
|
exports.applyRelationProps = applyRelationProps;
|
|
7380
7542
|
exports.assertAcyclicComputedDependencies = assertAcyclicComputedDependencies;
|
|
@@ -7382,6 +7544,7 @@ exports.assertLiveStreamCursor = assertLiveStreamCursor;
|
|
|
7382
7544
|
exports.booleanFlag = booleanFlag;
|
|
7383
7545
|
exports.buildPropertySchema = buildPropertySchema;
|
|
7384
7546
|
exports.buildQualifiedAttribute = buildQualifiedAttribute;
|
|
7547
|
+
exports.canonicalStringify = canonicalStringify;
|
|
7385
7548
|
exports.checkbox = checkbox;
|
|
7386
7549
|
exports.compareLiveStreamCursors = compareLiveStreamCursors;
|
|
7387
7550
|
exports.compileComputedFormula = compileComputedFormula;
|
|
@@ -7500,3 +7663,4 @@ exports.user = user;
|
|
|
7500
7663
|
exports.validateAttributeName = validateAttributeName;
|
|
7501
7664
|
exports.validateQualifiedRule = validateQualifiedRule;
|
|
7502
7665
|
exports.viewRegistry = viewRegistry;
|
|
7666
|
+
exports.viewSyncPayload = viewSyncPayload;
|