@cmssy/ai-tools 0.97.0 → 0.98.0
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.
|
@@ -17,6 +17,7 @@ declare const inputSchema: z.ZodObject<{
|
|
|
17
17
|
}, z.core.$strip>>;
|
|
18
18
|
fields: z.ZodOptional<z.ZodArray<z.ZodType<import("../types.js").ProposedField, unknown, z.core.$ZodTypeInternals<import("../types.js").ProposedField, unknown>>>>;
|
|
19
19
|
removeFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
20
|
+
fieldOrder: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
20
21
|
statusField: z.ZodOptional<z.ZodObject<{
|
|
21
22
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
22
23
|
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-model.tool.d.ts","sourceRoot":"","sources":["../../src/tools/update-model.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAC;AAY1E,QAAA,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"update-model.tool.d.ts","sourceRoot":"","sources":["../../src/tools/update-model.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAC;AAY1E,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCf,CAAC;AAEH,KAAK,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAqBzC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,CAqDvD,CAAC"}
|
|
@@ -22,6 +22,11 @@ const inputSchema = z.object({
|
|
|
22
22
|
.min(1)
|
|
23
23
|
.optional()
|
|
24
24
|
.describe("Keys of existing fields to REMOVE. Removing a field abandons its data on existing records - only pass keys the user explicitly asked to remove."),
|
|
25
|
+
fieldOrder: z
|
|
26
|
+
.array(z.string().min(1))
|
|
27
|
+
.min(1)
|
|
28
|
+
.optional()
|
|
29
|
+
.describe("Every field key of the model, in the order the fields should appear - after fields and removeFields are applied. Must name each remaining field exactly once; a missing, unknown or repeated key is refused. Omit to keep the current order (new fields go last)."),
|
|
25
30
|
statusField: statusFieldSchema.optional(),
|
|
26
31
|
product: productConfigSchema.optional(),
|
|
27
32
|
auth: authConfigSchema.optional(),
|
|
@@ -29,14 +34,28 @@ const inputSchema = z.object({
|
|
|
29
34
|
uniqueFields: uniqueFieldsSchema.optional(),
|
|
30
35
|
deliveryAccess: modelDeliveryAccessSchema.optional(),
|
|
31
36
|
});
|
|
37
|
+
function orderFields(merged, fieldOrder) {
|
|
38
|
+
const repeated = fieldOrder.filter((key, index) => fieldOrder.indexOf(key) !== index);
|
|
39
|
+
const unknown = fieldOrder.filter((key) => !merged.has(key));
|
|
40
|
+
const missing = [...merged.keys()].filter((key) => !fieldOrder.includes(key));
|
|
41
|
+
const problems = [
|
|
42
|
+
repeated.length > 0 ? `repeated: ${[...new Set(repeated)].join(", ")}` : "",
|
|
43
|
+
unknown.length > 0 ? `unknown: ${unknown.join(", ")}` : "",
|
|
44
|
+
missing.length > 0 ? `missing: ${missing.join(", ")}` : "",
|
|
45
|
+
].filter(Boolean);
|
|
46
|
+
if (problems.length > 0) {
|
|
47
|
+
throw new Error(`fieldOrder must name every field exactly once (${problems.join("; ")}). Fields: ${[...merged.keys()].join(", ")}`);
|
|
48
|
+
}
|
|
49
|
+
return fieldOrder.map((key) => merged.get(key));
|
|
50
|
+
}
|
|
32
51
|
export const updateModelTool = {
|
|
33
52
|
name: "update_model",
|
|
34
|
-
description: 'Update a data model by id or slug: name, slug, description, icon, color, displayField, defaultSort, statusField, fields, product capability config, uniqueFields (replaces the whole list; refused while records already share a value), or deliveryAccess ("public" lets the user\'s app read the model through the delivery API; "none" is admin only). `fields` is a PATCH - listed fields are added or replaced by key, unlisted fields stay untouched; use `removeFields` to delete fields. `product` is also a PATCH of the commerce capability config (enabled, priceField, skuField, inventoryField, variantAxes) - omitted keys keep their stored values. While the product is enabled, a call that changes product, fields, removeFields or displayField is graded against every product role, and refused when one would name a missing field or a field of a type it cannot read. `auth` is a PATCH of the accounts config (enabled, identityField, companyField for B2B companies over customers - a relation to a model with Company enabled, verification, lockout) - omitted keys keep their stored values, null unlinks the company. Which fields a member may change on their own account and send at sign-up is each field\'s `memberCanSet` (registration accepts only those; password fields and the company field never). `company` is a PATCH of the Company capability ({ enabled }) - a model is at most one of product, account (auth) or company; turning it off is refused while an accounts model\'s companyField links it.',
|
|
53
|
+
description: 'Update a data model by id or slug: name, slug, description, icon, color, displayField, defaultSort, statusField, fields, product capability config, uniqueFields (replaces the whole list; refused while records already share a value), or deliveryAccess ("public" lets the user\'s app read the model through the delivery API; "none" is admin only). `fields` is a PATCH - listed fields are added or replaced by key, unlisted fields stay untouched; use `removeFields` to delete fields and `fieldOrder` (every remaining key, in order) to reorder them. `product` is also a PATCH of the commerce capability config (enabled, priceField, skuField, inventoryField, variantAxes) - omitted keys keep their stored values. While the product is enabled, a call that changes product, fields, removeFields or displayField is graded against every product role, and refused when one would name a missing field or a field of a type it cannot read. `auth` is a PATCH of the accounts config (enabled, identityField, companyField for B2B companies over customers - a relation to a model with Company enabled, verification, lockout) - omitted keys keep their stored values, null unlinks the company. Which fields a member may change on their own account and send at sign-up is each field\'s `memberCanSet` (registration accepts only those; password fields and the company field never). `company` is a PATCH of the Company capability ({ enabled }) - a model is at most one of product, account (auth) or company; turning it off is refused while an accounts model\'s companyField links it.',
|
|
35
54
|
inputSchema,
|
|
36
55
|
requiredPermissions: ["models:edit"],
|
|
37
|
-
execute: async ({ idOrSlug, fields, removeFields, ...rest }, ops) => {
|
|
56
|
+
execute: async ({ idOrSlug, fields, removeFields, fieldOrder, ...rest }, ops) => {
|
|
38
57
|
const patch = { ...rest };
|
|
39
|
-
if (fields?.length || removeFields?.length) {
|
|
58
|
+
if (fields?.length || removeFields?.length || fieldOrder?.length) {
|
|
40
59
|
const duplicate = (fields ?? []).filter((f) => removeFields?.includes(f.key));
|
|
41
60
|
if (duplicate.length > 0) {
|
|
42
61
|
throw new Error(`Field(s) ${duplicate.map((f) => f.key).join(", ")} appear in both fields and removeFields - pick one`);
|
|
@@ -59,7 +78,9 @@ export const updateModelTool = {
|
|
|
59
78
|
if (merged.size === 0) {
|
|
60
79
|
throw new Error("A model must keep at least one field");
|
|
61
80
|
}
|
|
62
|
-
patch.fields =
|
|
81
|
+
patch.fields = fieldOrder
|
|
82
|
+
? orderFields(merged, fieldOrder)
|
|
83
|
+
: [...merged.values()];
|
|
63
84
|
if (current.updatedAt) {
|
|
64
85
|
patch.expectedUpdatedAt = current.updatedAt;
|
|
65
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-model.tool.js","sourceRoot":"","sources":["../../src/tools/update-model.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,2CAA2C,CAAC;IACxD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,mBAAmB,CAAC;SAC1B,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,yKAAyK,CAC1K;IACH,YAAY,EAAE,CAAC;SACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,iJAAiJ,CAClJ;IACH,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAC3C,cAAc,EAAE,yBAAyB,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"update-model.tool.js","sourceRoot":"","sources":["../../src/tools/update-model.tool.ts"],"names":[],"mappings":"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"}
|