@superdoc-dev/sdk 1.0.0-next.72 → 1.0.0-next.73

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.
Files changed (36) hide show
  1. package/README.md +23 -15
  2. package/dist/generated/client.cjs +258 -6
  3. package/dist/generated/client.d.ts +10715 -2107
  4. package/dist/generated/client.d.ts.map +1 -1
  5. package/dist/generated/client.js +258 -6
  6. package/dist/generated/contract.cjs +115121 -34336
  7. package/dist/generated/contract.d.ts +30 -46113
  8. package/dist/generated/contract.d.ts.map +1 -1
  9. package/dist/generated/contract.js +115121 -34336
  10. package/dist/generated/intent-dispatch.generated.cjs +94 -0
  11. package/dist/generated/intent-dispatch.generated.d.ts +2 -0
  12. package/dist/generated/intent-dispatch.generated.d.ts.map +1 -0
  13. package/dist/generated/intent-dispatch.generated.js +90 -0
  14. package/dist/index.cjs +3 -2
  15. package/dist/index.d.ts +3 -2
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -1
  18. package/dist/runtime/transport-common.cjs +10 -0
  19. package/dist/runtime/transport-common.d.ts.map +1 -1
  20. package/dist/runtime/transport-common.js +10 -0
  21. package/dist/tools.cjs +141 -283
  22. package/dist/tools.d.ts +29 -90
  23. package/dist/tools.d.ts.map +1 -1
  24. package/dist/tools.js +140 -281
  25. package/package.json +7 -6
  26. package/tools/__pycache__/__init__.cpython-312.pyc +0 -0
  27. package/tools/__pycache__/intent_dispatch_generated.cpython-312.pyc +0 -0
  28. package/tools/catalog.json +4380 -66403
  29. package/tools/intent_dispatch_generated.py +122 -0
  30. package/tools/system-prompt.md +113 -0
  31. package/tools/tools-policy.json +37 -94
  32. package/tools/tools.anthropic.json +4362 -27847
  33. package/tools/tools.generic.json +4428 -64145
  34. package/tools/tools.openai.json +4381 -28991
  35. package/tools/tools.vercel.json +4381 -28991
  36. package/tools/tool-name-map.json +0 -386
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ // Auto-generated by generate-intent-tools.mjs — do not edit
4
+ function dispatchIntentTool(toolName, args, execute) {
5
+ switch (toolName) {
6
+ case 'superdoc_get_content': {
7
+ const { action, ...rest } = args;
8
+ switch (action) {
9
+ case 'text': return execute('doc.getText', rest);
10
+ case 'markdown': return execute('doc.getMarkdown', rest);
11
+ case 'html': return execute('doc.getHtml', rest);
12
+ case 'info': return execute('doc.info', rest);
13
+ default: throw new Error(`Unknown action for superdoc_get_content: ${action}`);
14
+ }
15
+ }
16
+ case 'superdoc_edit': {
17
+ const { action, ...rest } = args;
18
+ switch (action) {
19
+ case 'insert': return execute('doc.insert', rest);
20
+ case 'replace': return execute('doc.replace', rest);
21
+ case 'delete': return execute('doc.delete', rest);
22
+ case 'undo': return execute('doc.history.undo', rest);
23
+ case 'redo': return execute('doc.history.redo', rest);
24
+ default: throw new Error(`Unknown action for superdoc_edit: ${action}`);
25
+ }
26
+ }
27
+ case 'superdoc_format': {
28
+ const { action, ...rest } = args;
29
+ switch (action) {
30
+ case 'inline': return execute('doc.format.apply', rest);
31
+ case 'set_style': return execute('doc.styles.paragraph.setStyle', rest);
32
+ case 'set_alignment': return execute('doc.format.paragraph.setAlignment', rest);
33
+ case 'set_indentation': return execute('doc.format.paragraph.setIndentation', rest);
34
+ case 'set_spacing': return execute('doc.format.paragraph.setSpacing', rest);
35
+ case 'set_direction': return execute('doc.format.paragraph.setDirection', rest);
36
+ default: throw new Error(`Unknown action for superdoc_format: ${action}`);
37
+ }
38
+ }
39
+ case 'superdoc_create': {
40
+ const { action, ...rest } = args;
41
+ switch (action) {
42
+ case 'paragraph': return execute('doc.create.paragraph', rest);
43
+ case 'heading': return execute('doc.create.heading', rest);
44
+ default: throw new Error(`Unknown action for superdoc_create: ${action}`);
45
+ }
46
+ }
47
+ case 'superdoc_list': {
48
+ const { action, ...rest } = args;
49
+ switch (action) {
50
+ case 'insert': return execute('doc.lists.insert', rest);
51
+ case 'create': return execute('doc.lists.create', rest);
52
+ case 'detach': return execute('doc.lists.detach', rest);
53
+ case 'indent': return execute('doc.lists.indent', rest);
54
+ case 'outdent': return execute('doc.lists.outdent', rest);
55
+ case 'set_level': return execute('doc.lists.setLevel', rest);
56
+ case 'set_type': return execute('doc.lists.setType', rest);
57
+ default: throw new Error(`Unknown action for superdoc_list: ${action}`);
58
+ }
59
+ }
60
+ case 'superdoc_comment': {
61
+ const { action, ...rest } = args;
62
+ switch (action) {
63
+ case 'create': return execute('doc.comments.create', rest);
64
+ case 'update': return execute('doc.comments.patch', rest);
65
+ case 'delete': return execute('doc.comments.delete', rest);
66
+ case 'get': return execute('doc.comments.get', rest);
67
+ case 'list': return execute('doc.comments.list', rest);
68
+ default: throw new Error(`Unknown action for superdoc_comment: ${action}`);
69
+ }
70
+ }
71
+ case 'superdoc_track_changes': {
72
+ const { action, ...rest } = args;
73
+ switch (action) {
74
+ case 'list': return execute('doc.trackChanges.list', rest);
75
+ case 'decide': return execute('doc.trackChanges.decide', rest);
76
+ default: throw new Error(`Unknown action for superdoc_track_changes: ${action}`);
77
+ }
78
+ }
79
+ case 'superdoc_search':
80
+ return execute('doc.query.match', args);
81
+ case 'superdoc_mutations': {
82
+ const { action, ...rest } = args;
83
+ switch (action) {
84
+ case 'preview': return execute('doc.mutations.preview', rest);
85
+ case 'apply': return execute('doc.mutations.apply', rest);
86
+ default: throw new Error(`Unknown action for superdoc_mutations: ${action}`);
87
+ }
88
+ }
89
+ default:
90
+ throw new Error(`Unknown intent tool: ${toolName}`);
91
+ }
92
+ }
93
+
94
+ exports.dispatchIntentTool = dispatchIntentTool;
@@ -0,0 +1,2 @@
1
+ export declare function dispatchIntentTool(toolName: string, args: Record<string, unknown>, execute: (operationId: string, input: Record<string, unknown>) => unknown): unknown;
2
+ //# sourceMappingURL=intent-dispatch.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-dispatch.generated.d.ts","sourceRoot":"","sources":["../../src/generated/intent-dispatch.generated.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,GACxE,OAAO,CAwFT"}
@@ -0,0 +1,90 @@
1
+ // Auto-generated by generate-intent-tools.mjs — do not edit
2
+ export function dispatchIntentTool(toolName, args, execute) {
3
+ switch (toolName) {
4
+ case 'superdoc_get_content': {
5
+ const { action, ...rest } = args;
6
+ switch (action) {
7
+ case 'text': return execute('doc.getText', rest);
8
+ case 'markdown': return execute('doc.getMarkdown', rest);
9
+ case 'html': return execute('doc.getHtml', rest);
10
+ case 'info': return execute('doc.info', rest);
11
+ default: throw new Error(`Unknown action for superdoc_get_content: ${action}`);
12
+ }
13
+ }
14
+ case 'superdoc_edit': {
15
+ const { action, ...rest } = args;
16
+ switch (action) {
17
+ case 'insert': return execute('doc.insert', rest);
18
+ case 'replace': return execute('doc.replace', rest);
19
+ case 'delete': return execute('doc.delete', rest);
20
+ case 'undo': return execute('doc.history.undo', rest);
21
+ case 'redo': return execute('doc.history.redo', rest);
22
+ default: throw new Error(`Unknown action for superdoc_edit: ${action}`);
23
+ }
24
+ }
25
+ case 'superdoc_format': {
26
+ const { action, ...rest } = args;
27
+ switch (action) {
28
+ case 'inline': return execute('doc.format.apply', rest);
29
+ case 'set_style': return execute('doc.styles.paragraph.setStyle', rest);
30
+ case 'set_alignment': return execute('doc.format.paragraph.setAlignment', rest);
31
+ case 'set_indentation': return execute('doc.format.paragraph.setIndentation', rest);
32
+ case 'set_spacing': return execute('doc.format.paragraph.setSpacing', rest);
33
+ case 'set_direction': return execute('doc.format.paragraph.setDirection', rest);
34
+ default: throw new Error(`Unknown action for superdoc_format: ${action}`);
35
+ }
36
+ }
37
+ case 'superdoc_create': {
38
+ const { action, ...rest } = args;
39
+ switch (action) {
40
+ case 'paragraph': return execute('doc.create.paragraph', rest);
41
+ case 'heading': return execute('doc.create.heading', rest);
42
+ default: throw new Error(`Unknown action for superdoc_create: ${action}`);
43
+ }
44
+ }
45
+ case 'superdoc_list': {
46
+ const { action, ...rest } = args;
47
+ switch (action) {
48
+ case 'insert': return execute('doc.lists.insert', rest);
49
+ case 'create': return execute('doc.lists.create', rest);
50
+ case 'detach': return execute('doc.lists.detach', rest);
51
+ case 'indent': return execute('doc.lists.indent', rest);
52
+ case 'outdent': return execute('doc.lists.outdent', rest);
53
+ case 'set_level': return execute('doc.lists.setLevel', rest);
54
+ case 'set_type': return execute('doc.lists.setType', rest);
55
+ default: throw new Error(`Unknown action for superdoc_list: ${action}`);
56
+ }
57
+ }
58
+ case 'superdoc_comment': {
59
+ const { action, ...rest } = args;
60
+ switch (action) {
61
+ case 'create': return execute('doc.comments.create', rest);
62
+ case 'update': return execute('doc.comments.patch', rest);
63
+ case 'delete': return execute('doc.comments.delete', rest);
64
+ case 'get': return execute('doc.comments.get', rest);
65
+ case 'list': return execute('doc.comments.list', rest);
66
+ default: throw new Error(`Unknown action for superdoc_comment: ${action}`);
67
+ }
68
+ }
69
+ case 'superdoc_track_changes': {
70
+ const { action, ...rest } = args;
71
+ switch (action) {
72
+ case 'list': return execute('doc.trackChanges.list', rest);
73
+ case 'decide': return execute('doc.trackChanges.decide', rest);
74
+ default: throw new Error(`Unknown action for superdoc_track_changes: ${action}`);
75
+ }
76
+ }
77
+ case 'superdoc_search':
78
+ return execute('doc.query.match', args);
79
+ case 'superdoc_mutations': {
80
+ const { action, ...rest } = args;
81
+ switch (action) {
82
+ case 'preview': return execute('doc.mutations.preview', rest);
83
+ case 'apply': return execute('doc.mutations.apply', rest);
84
+ default: throw new Error(`Unknown action for superdoc_mutations: ${action}`);
85
+ }
86
+ }
87
+ default:
88
+ throw new Error(`Unknown intent tool: ${toolName}`);
89
+ }
90
+ }
package/dist/index.cjs CHANGED
@@ -4,6 +4,7 @@ var client = require('./generated/client.cjs');
4
4
  var process = require('./runtime/process.cjs');
5
5
  var skills = require('./skills.cjs');
6
6
  var tools = require('./tools.cjs');
7
+ var intentDispatch_generated = require('./generated/intent-dispatch.generated.cjs');
7
8
  var errors = require('./runtime/errors.cjs');
8
9
 
9
10
  /**
@@ -36,10 +37,10 @@ exports.installSkill = skills.installSkill;
36
37
  exports.listSkills = skills.listSkills;
37
38
  exports.chooseTools = tools.chooseTools;
38
39
  exports.dispatchSuperDocTool = tools.dispatchSuperDocTool;
40
+ exports.getSystemPrompt = tools.getSystemPrompt;
39
41
  exports.getToolCatalog = tools.getToolCatalog;
40
- exports.inferDocumentFeatures = tools.inferDocumentFeatures;
41
42
  exports.listTools = tools.listTools;
42
- exports.resolveToolOperation = tools.resolveToolOperation;
43
+ exports.dispatchIntentTool = intentDispatch_generated.dispatchIntentTool;
43
44
  exports.SuperDocCliError = errors.SuperDocCliError;
44
45
  exports.SuperDocClient = SuperDocClient;
45
46
  exports.createSuperDocClient = createSuperDocClient;
package/dist/index.d.ts CHANGED
@@ -16,8 +16,9 @@ export declare class SuperDocClient {
16
16
  }
17
17
  export declare function createSuperDocClient(options?: SuperDocClientOptions): SuperDocClient;
18
18
  export { getSkill, installSkill, listSkills } from './skills.js';
19
- export { chooseTools, dispatchSuperDocTool, getToolCatalog, inferDocumentFeatures, listTools, resolveToolOperation, } from './tools.js';
19
+ export { chooseTools, dispatchSuperDocTool, getSystemPrompt, getToolCatalog, listTools } from './tools.js';
20
+ export { dispatchIntentTool } from './generated/intent-dispatch.generated.js';
20
21
  export { SuperDocCliError } from './runtime/errors.js';
21
22
  export type { InvokeOptions, OperationSpec, OperationParamSpec, SuperDocClientOptions } from './runtime/process.js';
22
- export type { DocumentFeatures, ToolChooserInput, ToolPhase, ToolProfile, ToolProvider } from './tools.js';
23
+ export type { ToolChooserInput, ToolProvider } from './tools.js';
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEnF;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;gBAElC,OAAO,GAAE,qBAA0B;IAKzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAExF;AAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACpH,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEnF;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;gBAElC,OAAO,GAAE,qBAA0B;IAKzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAExF;AAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACpH,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -25,5 +25,6 @@ export function createSuperDocClient(options = {}) {
25
25
  return new SuperDocClient(options);
26
26
  }
27
27
  export { getSkill, installSkill, listSkills } from './skills.js';
28
- export { chooseTools, dispatchSuperDocTool, getToolCatalog, inferDocumentFeatures, listTools, resolveToolOperation, } from './tools.js';
28
+ export { chooseTools, dispatchSuperDocTool, getSystemPrompt, getToolCatalog, listTools } from './tools.js';
29
+ export { dispatchIntentTool } from './generated/intent-dispatch.generated.js';
29
30
  export { SuperDocCliError } from './runtime/errors.js';
@@ -35,6 +35,14 @@ function buildOperationArgv(operation, params, options, runtimeTimeoutMs, defaul
35
35
  normalizedParams = { ...normalizedParams, userEmail: user.email };
36
36
  }
37
37
  }
38
+ // Legacy alias: tables.split renamed atRowIndex → rowIndex (SD-2132).
39
+ if (operation.operationId === 'doc.tables.split' && normalizedParams.atRowIndex !== undefined) {
40
+ if (normalizedParams.rowIndex !== undefined && normalizedParams.rowIndex !== normalizedParams.atRowIndex) {
41
+ throw new Error('tables.split: cannot provide both rowIndex and atRowIndex with different values.');
42
+ }
43
+ const { atRowIndex, ...rest } = normalizedParams;
44
+ normalizedParams = { ...rest, rowIndex: atRowIndex };
45
+ }
38
46
  const argv = [...operation.commandTokens];
39
47
  for (const spec of operation.params) {
40
48
  const value = normalizedParams[spec.name];
@@ -61,6 +69,8 @@ function buildOperationArgv(operation, params, options, runtimeTimeoutMs, defaul
61
69
  }
62
70
  break;
63
71
  case 'jsonFlag':
72
+ // CLI always parses --*-json values via JSON.parse, so even scalar
73
+ // strings must be serialized as JSON string literals.
64
74
  argv.push(flag, JSON.stringify(value));
65
75
  break;
66
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport-common.d.ts","sourceRoot":"","sources":["../../src/runtime/transport-common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAC9E,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAU/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,iBAAiB,CAAC,EAAE,UAAU,EAC9B,IAAI,CAAC,EAAE,YAAY,GAClB,MAAM,EAAE,CAsDV"}
1
+ {"version":3,"file":"transport-common.d.ts","sourceRoot":"","sources":["../../src/runtime/transport-common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAC9E,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAU/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,iBAAiB,CAAC,EAAE,UAAU,EAC9B,IAAI,CAAC,EAAE,YAAY,GAClB,MAAM,EAAE,CAiEV"}
@@ -33,6 +33,14 @@ export function buildOperationArgv(operation, params, options, runtimeTimeoutMs,
33
33
  normalizedParams = { ...normalizedParams, userEmail: user.email };
34
34
  }
35
35
  }
36
+ // Legacy alias: tables.split renamed atRowIndex → rowIndex (SD-2132).
37
+ if (operation.operationId === 'doc.tables.split' && normalizedParams.atRowIndex !== undefined) {
38
+ if (normalizedParams.rowIndex !== undefined && normalizedParams.rowIndex !== normalizedParams.atRowIndex) {
39
+ throw new Error('tables.split: cannot provide both rowIndex and atRowIndex with different values.');
40
+ }
41
+ const { atRowIndex, ...rest } = normalizedParams;
42
+ normalizedParams = { ...rest, rowIndex: atRowIndex };
43
+ }
36
44
  const argv = [...operation.commandTokens];
37
45
  for (const spec of operation.params) {
38
46
  const value = normalizedParams[spec.name];
@@ -59,6 +67,8 @@ export function buildOperationArgv(operation, params, options, runtimeTimeoutMs,
59
67
  }
60
68
  break;
61
69
  case 'jsonFlag':
70
+ // CLI always parses --*-json values via JSON.parse, so even scalar
71
+ // strings must be serialized as JSON string literals.
62
72
  argv.push(flag, JSON.stringify(value));
63
73
  break;
64
74
  }