@oneentry/mcp-platform-server 0.1.11 → 0.1.12

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.
@@ -190,38 +190,63 @@ export const OPERATION_NOTES = {
190
190
  },
191
191
  AdminMenusController_updatePosition: {
192
192
  example: {
193
- position: { leftObjectId: null, rightObjectId: null },
193
+ position: {
194
+ leftObjectId: 459,
195
+ leftObjectType: 'menu-custom-item',
196
+ rightObjectId: 4,
197
+ rightObjectType: 'menu-page',
198
+ },
194
199
  newParentId: 12,
195
200
  newParentType: 'custom',
196
201
  },
197
202
  note: '"position" is required even when the order does not matter, and it must be an object: a ' +
198
203
  'body without it answers 400 naming the field, and an empty object is not enough — send ' +
199
204
  '{ leftObjectId: null, rightObjectId: null }. Both re-parenting and sibling order apply, ' +
200
- 'and a public read returns the items in that order. Neighbours are addressed by the id of ' +
201
- 'the item, not of its position, and page items and custom items are numbered separately: ' +
202
- 'in a mixed row name each neighbour with "leftObjectType" and "rightObjectType", or a ' +
203
- 'neighbour of the other kind is not found and the item lands at the edge of the list. ' +
204
- '"newParentType" says which kind the new parent is; omit it and the number is looked up ' +
205
- 'among pages first, which is not necessarily the parent you meant.',
205
+ 'and a public read returns the items in that order the order is reproducible, for a row ' +
206
+ 'of pages and for a mixed row alike. Neighbours are addressed by the id of the item, not ' +
207
+ 'of its position, and page items and custom items are numbered separately, so in a mixed ' +
208
+ 'row each neighbour is named with its kind. The body then carries TWO different ' +
209
+ 'vocabularies for "kind", and that is where this operation is lost: ' +
210
+ '"leftObjectType" / "rightObjectType" take the object type of the position record ' +
211
+ '"menu-page" or "menu-custom-item" — while "newParentType" takes "page" or "custom". ' +
212
+ 'Sending "page" or "custom" as a neighbour kind is not refused: the neighbour is not ' +
213
+ 'resolved, the moved item\'s rank is reset to the middle of the range and the answer is ' +
214
+ 'still 200, so the resulting order can look intended and be arbitrary. Omit the neighbour ' +
215
+ 'kinds only in a row of one kind — then each neighbour is read as the kind of the item ' +
216
+ 'being moved. Omit "newParentType" and the number is looked up among pages first, which ' +
217
+ 'is not necessarily the parent you meant. Omitting "position" while changing the parent ' +
218
+ 'leaves the order alone.',
206
219
  verifyWith: {
207
220
  opId: 'AdminMenusController_findOne',
208
- check: 'the parent of the item you moved, its parentType, and the order of its siblings',
209
- why: 'a neighbour or parent resolved to the other kind answers success and moves it elsewhere',
221
+ check: 'the lexorank of the item you moved against its two neighbours\', and its parent ' +
222
+ 'and parentType',
223
+ why: 'an unresolved neighbour answers 200 and resets the rank to the middle of the range, ' +
224
+ 'which the order alone can still show as the one you asked for',
210
225
  },
211
226
  },
212
227
  AdminMenusController_updateCustomItemPosition: {
213
228
  example: {
214
- position: { leftObjectId: null, rightObjectId: null },
229
+ position: {
230
+ leftObjectId: 3,
231
+ leftObjectType: 'menu-page',
232
+ rightObjectId: 4,
233
+ rightObjectType: 'menu-page',
234
+ },
215
235
  newParentId: 12,
216
236
  newParentType: 'custom',
217
237
  },
218
238
  note: 'Same body as AdminMenusController_updatePosition: "position" is required and must be an ' +
219
239
  'object — { leftObjectId: null, rightObjectId: null } when the order does not matter — and ' +
220
- 'the kind of every neighbour and of the new parent is named alongside its number.',
240
+ 'the kind of every neighbour and of the new parent is named alongside its number, in the ' +
241
+ 'two vocabularies that body uses: "menu-page" / "menu-custom-item" for a neighbour, ' +
242
+ '"page" / "custom" for the new parent. A custom item does move in among pages this way; ' +
243
+ 'a neighbour kind the instance does not know is not refused but resets the rank.',
221
244
  verifyWith: {
222
245
  opId: 'AdminMenusController_findOne',
223
- check: 'the parent of the item you moved, its parentType, and the order of its siblings',
224
- why: 'a neighbour or parent resolved to the other kind answers success and moves it elsewhere',
246
+ check: 'the lexorank of the item you moved against its two neighbours\', and its parent ' +
247
+ 'and parentType',
248
+ why: 'an unresolved neighbour answers 200 and resets the rank to the middle of the range, ' +
249
+ 'which the order alone can still show as the one you asked for',
225
250
  },
226
251
  },
227
252
  AdminFormsController_create: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneentry/mcp-platform-server",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "MCP server that lets an AI agent operate the OneEntry Admin API, grounded in the project's own rules",
5
5
  "license": "MIT",
6
6
  "type": "module",