touchdesigner-mcp-server 0.2.1

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 (102) hide show
  1. package/LICENSE +21 -0
  2. package/README.ja.md +211 -0
  3. package/README.md +204 -0
  4. package/dist/api/customInstance.js +18 -0
  5. package/dist/cli.js +36 -0
  6. package/dist/core/constants.js +26 -0
  7. package/dist/core/errorHandling.js +19 -0
  8. package/dist/core/logger.js +45 -0
  9. package/dist/core/result.js +12 -0
  10. package/dist/features/prompts/handlers/td_prompts.js +131 -0
  11. package/dist/features/prompts/index.js +1 -0
  12. package/dist/features/prompts/register.js +7 -0
  13. package/dist/features/tools/handlers/tdTools.js +214 -0
  14. package/dist/features/tools/index.js +1 -0
  15. package/dist/features/tools/register.js +7 -0
  16. package/dist/features/tools/types.js +1 -0
  17. package/dist/features/tools/utils/toolUtils.js +1 -0
  18. package/dist/gen/endpoints/TouchDesignerAPI.js +250 -0
  19. package/dist/gen/mcp/touchDesignerAPI.zod.js +203 -0
  20. package/dist/index.js +3 -0
  21. package/dist/mock/index.js +5 -0
  22. package/dist/mock/node.js +3 -0
  23. package/dist/server/connectionManager.js +83 -0
  24. package/dist/server/touchDesignerServer.js +60 -0
  25. package/dist/tdClient/index.js +6 -0
  26. package/dist/tdClient/touchDesignerClient.js +150 -0
  27. package/package.json +76 -0
  28. package/src/index.ts +6 -0
  29. package/td/genHandlers.js +47 -0
  30. package/td/import_modules.py +52 -0
  31. package/td/mcp_webserver_base.tox +0 -0
  32. package/td/modules/mcp/controllers/__init__.py +9 -0
  33. package/td/modules/mcp/controllers/api_controller.py +623 -0
  34. package/td/modules/mcp/controllers/generated_handlers.py +365 -0
  35. package/td/modules/mcp/controllers/openapi_router.py +265 -0
  36. package/td/modules/mcp/services/__init__.py +8 -0
  37. package/td/modules/mcp/services/api_service.py +535 -0
  38. package/td/modules/mcp_webserver_script.py +134 -0
  39. package/td/modules/td_server/.dockerignore +72 -0
  40. package/td/modules/td_server/.openapi-generator/FILES +55 -0
  41. package/td/modules/td_server/.openapi-generator/VERSION +1 -0
  42. package/td/modules/td_server/.openapi-generator-ignore +23 -0
  43. package/td/modules/td_server/.travis.yml +14 -0
  44. package/td/modules/td_server/Dockerfile +16 -0
  45. package/td/modules/td_server/README.md +49 -0
  46. package/td/modules/td_server/git_push.sh +57 -0
  47. package/td/modules/td_server/openapi_server/__init__.py +0 -0
  48. package/td/modules/td_server/openapi_server/__main__.py +19 -0
  49. package/td/modules/td_server/openapi_server/controllers/__init__.py +0 -0
  50. package/td/modules/td_server/openapi_server/controllers/default_controller.py +160 -0
  51. package/td/modules/td_server/openapi_server/controllers/security_controller.py +2 -0
  52. package/td/modules/td_server/openapi_server/encoder.py +19 -0
  53. package/td/modules/td_server/openapi_server/models/__init__.py +33 -0
  54. package/td/modules/td_server/openapi_server/models/base_model.py +68 -0
  55. package/td/modules/td_server/openapi_server/models/create_node200_response.py +125 -0
  56. package/td/modules/td_server/openapi_server/models/create_node200_response_data.py +63 -0
  57. package/td/modules/td_server/openapi_server/models/create_node_request.py +123 -0
  58. package/td/modules/td_server/openapi_server/models/delete_node200_response.py +125 -0
  59. package/td/modules/td_server/openapi_server/models/delete_node200_response_data.py +91 -0
  60. package/td/modules/td_server/openapi_server/models/exec_node_method200_response.py +125 -0
  61. package/td/modules/td_server/openapi_server/models/exec_node_method200_response_data.py +65 -0
  62. package/td/modules/td_server/openapi_server/models/exec_node_method_request.py +153 -0
  63. package/td/modules/td_server/openapi_server/models/exec_node_method_request_args_inner.py +34 -0
  64. package/td/modules/td_server/openapi_server/models/exec_python_script200_response.py +125 -0
  65. package/td/modules/td_server/openapi_server/models/exec_python_script200_response_data.py +65 -0
  66. package/td/modules/td_server/openapi_server/models/exec_python_script200_response_data_result.py +63 -0
  67. package/td/modules/td_server/openapi_server/models/exec_python_script_request.py +65 -0
  68. package/td/modules/td_server/openapi_server/models/get_node_detail200_response.py +125 -0
  69. package/td/modules/td_server/openapi_server/models/get_nodes200_response.py +125 -0
  70. package/td/modules/td_server/openapi_server/models/get_nodes200_response_data.py +65 -0
  71. package/td/modules/td_server/openapi_server/models/get_td_info200_response.py +125 -0
  72. package/td/modules/td_server/openapi_server/models/get_td_info200_response_data.py +155 -0
  73. package/td/modules/td_server/openapi_server/models/get_td_python_class_details200_response.py +125 -0
  74. package/td/modules/td_server/openapi_server/models/get_td_python_classes200_response.py +125 -0
  75. package/td/modules/td_server/openapi_server/models/get_td_python_classes200_response_data.py +63 -0
  76. package/td/modules/td_server/openapi_server/models/td_node.py +175 -0
  77. package/td/modules/td_server/openapi_server/models/td_node_family_type.py +44 -0
  78. package/td/modules/td_server/openapi_server/models/td_python_class_details.py +191 -0
  79. package/td/modules/td_server/openapi_server/models/td_python_class_info.py +127 -0
  80. package/td/modules/td_server/openapi_server/models/td_python_method_info.py +121 -0
  81. package/td/modules/td_server/openapi_server/models/td_python_property_info.py +123 -0
  82. package/td/modules/td_server/openapi_server/models/update_node200_response.py +125 -0
  83. package/td/modules/td_server/openapi_server/models/update_node200_response_data.py +149 -0
  84. package/td/modules/td_server/openapi_server/models/update_node200_response_data_failed_inner.py +91 -0
  85. package/td/modules/td_server/openapi_server/models/update_node_request.py +93 -0
  86. package/td/modules/td_server/openapi_server/openapi/openapi.yaml +966 -0
  87. package/td/modules/td_server/openapi_server/test/__init__.py +16 -0
  88. package/td/modules/td_server/openapi_server/test/test_default_controller.py +200 -0
  89. package/td/modules/td_server/openapi_server/typing_utils.py +30 -0
  90. package/td/modules/td_server/openapi_server/util.py +147 -0
  91. package/td/modules/td_server/requirements.txt +13 -0
  92. package/td/modules/td_server/setup.py +37 -0
  93. package/td/modules/td_server/test-requirements.txt +4 -0
  94. package/td/modules/td_server/tox.ini +11 -0
  95. package/td/modules/utils/config.py +7 -0
  96. package/td/modules/utils/error_handling.py +104 -0
  97. package/td/modules/utils/logging.py +23 -0
  98. package/td/modules/utils/result.py +40 -0
  99. package/td/modules/utils/serialization.py +57 -0
  100. package/td/modules/utils/types.py +33 -0
  101. package/td/modules/utils/utils_logging.py +60 -0
  102. package/td/templates/mcp/api_controller_handlers.mustache +63 -0
@@ -0,0 +1,966 @@
1
+ openapi: 3.0.0
2
+ info:
3
+ description: OpenAPI schema for generating TouchDesigner API client code
4
+ title: TouchDesigner API
5
+ version: 0.2.1
6
+ servers:
7
+ - url: "{baseUrl}"
8
+ variables:
9
+ baseUrl:
10
+ default: http://localhost:9981
11
+ paths:
12
+ /api/nodes:
13
+ delete:
14
+ operationId: delete_node
15
+ parameters:
16
+ - description: "Path to the node to delete. e.g., \"/project1/geo1\""
17
+ in: query
18
+ name: nodePath
19
+ required: true
20
+ schema:
21
+ description: "e.g., \"/project1/geo1\""
22
+ type: string
23
+ responses:
24
+ "200":
25
+ content:
26
+ application/json:
27
+ schema:
28
+ $ref: '#/components/schemas/delete_node_200_response'
29
+ description: Node deleted successfully
30
+ summary: Delete an existing node
31
+ x-openapi-router-controller: openapi_server.controllers.default_controller
32
+ get:
33
+ operationId: get_nodes
34
+ parameters:
35
+ - description: "Parent path e.g., \"/project1\""
36
+ in: query
37
+ name: parentPath
38
+ required: true
39
+ schema:
40
+ description: "e.g., \"/project1\""
41
+ type: string
42
+ - description: "Pattern to match against node names e.g., \"null*\""
43
+ in: query
44
+ name: pattern
45
+ required: false
46
+ schema:
47
+ default: '*'
48
+ description: "e.g., \"null*\""
49
+ type: string
50
+ responses:
51
+ "200":
52
+ content:
53
+ application/json:
54
+ schema:
55
+ $ref: '#/components/schemas/get_nodes_200_response'
56
+ description: List of nodes matching the specified criteria
57
+ summary: Get nodes in the path
58
+ x-openapi-router-controller: openapi_server.controllers.default_controller
59
+ post:
60
+ operationId: create_node
61
+ requestBody:
62
+ content:
63
+ application/json:
64
+ schema:
65
+ $ref: '#/components/schemas/create_node_request'
66
+ required: true
67
+ responses:
68
+ "200":
69
+ content:
70
+ application/json:
71
+ schema:
72
+ $ref: '#/components/schemas/create_node_200_response'
73
+ description: Node created successfully
74
+ summary: Create a new node
75
+ x-openapi-router-controller: openapi_server.controllers.default_controller
76
+ /api/nodes/detail:
77
+ get:
78
+ description: "Retrieves detailed information about a specific node including\
79
+ \ its properties, parameters and connections"
80
+ operationId: get_node_detail
81
+ parameters:
82
+ - description: "Node path. e.g., \"/project1/textTOP\""
83
+ in: query
84
+ name: nodePath
85
+ required: true
86
+ schema:
87
+ description: "e.g., \"/project1/textTOP\""
88
+ type: string
89
+ responses:
90
+ "200":
91
+ content:
92
+ application/json:
93
+ schema:
94
+ $ref: '#/components/schemas/get_node_detail_200_response'
95
+ description: Node properties
96
+ summary: Get node detail
97
+ x-openapi-router-controller: openapi_server.controllers.default_controller
98
+ patch:
99
+ operationId: update_node
100
+ requestBody:
101
+ content:
102
+ application/json:
103
+ schema:
104
+ $ref: '#/components/schemas/update_node_request'
105
+ responses:
106
+ "200":
107
+ content:
108
+ application/json:
109
+ schema:
110
+ $ref: '#/components/schemas/update_node_200_response'
111
+ description: Information about the updated node
112
+ summary: Update node properties
113
+ x-openapi-router-controller: openapi_server.controllers.default_controller
114
+ /api/td/classes:
115
+ get:
116
+ description: "Returns a list of Python classes, modules, and functions available\
117
+ \ in TouchDesigner"
118
+ operationId: get_td_python_classes
119
+ responses:
120
+ "200":
121
+ content:
122
+ application/json:
123
+ schema:
124
+ $ref: '#/components/schemas/get_td_python_classes_200_response'
125
+ description: Successful response
126
+ summary: Get a list of Python classes and modules
127
+ x-openapi-router-controller: openapi_server.controllers.default_controller
128
+ /api/td/classes/{className}:
129
+ get:
130
+ description: "Returns detailed information about a specific Python class, module,\
131
+ \ or function including methods, properties, and documentation"
132
+ operationId: get_td_python_class_details
133
+ parameters:
134
+ - description: "Name of the class or module. e.g., \"textTOP\""
135
+ in: path
136
+ name: className
137
+ required: true
138
+ schema:
139
+ type: string
140
+ responses:
141
+ "200":
142
+ content:
143
+ application/json:
144
+ schema:
145
+ $ref: '#/components/schemas/get_td_python_class_details_200_response'
146
+ description: Successful response
147
+ summary: Get details of a specific Python class or module
148
+ x-openapi-router-controller: openapi_server.controllers.default_controller
149
+ /api/td/nodes/exec:
150
+ post:
151
+ description: |
152
+ Call a method on the node at the specified path (e.g., /project1).
153
+ This allows operations equivalent to TouchDesigner's Python API such as
154
+ `parent_comp = op('/project1')` and `parent_comp.create('textTOP', 'myText')`.
155
+ operationId: exec_node_method
156
+ requestBody:
157
+ content:
158
+ application/json:
159
+ schema:
160
+ $ref: '#/components/schemas/exec_node_method_request'
161
+ required: true
162
+ responses:
163
+ "200":
164
+ content:
165
+ application/json:
166
+ schema:
167
+ $ref: '#/components/schemas/exec_node_method_200_response'
168
+ description: Method call successful
169
+ summary: Call a method of the specified node
170
+ x-openapi-router-controller: openapi_server.controllers.default_controller
171
+ /api/td/server/exec:
172
+ post:
173
+ description: |
174
+ Execute a Python script directly in TouchDesigner.
175
+ Multiline scripts and scripts containing comments are supported.
176
+ The script can optionally set a `result` variable to explicitly return a value.
177
+ This endpoint allows you to interact with TouchDesigner nodes programmatically.
178
+ operationId: exec_python_script
179
+ requestBody:
180
+ content:
181
+ application/json:
182
+ schema:
183
+ $ref: '#/components/schemas/exec_python_script_request'
184
+ required: true
185
+ responses:
186
+ "200":
187
+ content:
188
+ application/json:
189
+ schema:
190
+ $ref: '#/components/schemas/exec_python_script_200_response'
191
+ description: Script executed successfully
192
+ summary: Execute python code on the server
193
+ x-openapi-router-controller: openapi_server.controllers.default_controller
194
+ /api/td/server/td:
195
+ get:
196
+ description: Returns information about the TouchDesigner
197
+ operationId: get_td_info
198
+ responses:
199
+ "200":
200
+ content:
201
+ application/json:
202
+ schema:
203
+ $ref: '#/components/schemas/get_td_info_200_response'
204
+ description: TouchDesigner information
205
+ summary: Get TouchDesigner information
206
+ x-openapi-router-controller: openapi_server.controllers.default_controller
207
+ components:
208
+ schemas:
209
+ TdNode:
210
+ description: Information about a TouchDesigner node
211
+ example:
212
+ path: path
213
+ opType: opType
214
+ name: name
215
+ id: 0
216
+ properties:
217
+ key: ""
218
+ properties:
219
+ id:
220
+ title: id
221
+ type: integer
222
+ opType:
223
+ title: opType
224
+ type: string
225
+ name:
226
+ title: name
227
+ type: string
228
+ path:
229
+ title: path
230
+ type: string
231
+ properties:
232
+ additionalProperties: true
233
+ title: properties
234
+ type: object
235
+ required:
236
+ - id
237
+ - name
238
+ - opType
239
+ - path
240
+ - properties
241
+ title: TdNode
242
+ type: object
243
+ TdNodeFamilyType:
244
+ enum:
245
+ - COMP
246
+ - CHOP
247
+ - TOP
248
+ - SOP
249
+ - DAT
250
+ - MAT
251
+ - CUSTOM
252
+ type: string
253
+ TdPythonClassInfo:
254
+ description: Information about a Python class or module available in TouchDesigner
255
+ example:
256
+ name: name
257
+ description: description
258
+ type: class
259
+ properties:
260
+ name:
261
+ description: Name of the class or module
262
+ title: name
263
+ type: string
264
+ type:
265
+ description: Type of the Python entity
266
+ enum:
267
+ - class
268
+ - module
269
+ - function
270
+ - object
271
+ title: type
272
+ type: string
273
+ description:
274
+ description: Description of the class or module
275
+ title: description
276
+ type: string
277
+ required:
278
+ - name
279
+ - type
280
+ title: TdPythonClassInfo
281
+ type: object
282
+ TdPythonMethodInfo:
283
+ description: Information about a Python method
284
+ example:
285
+ signature: signature
286
+ name: name
287
+ description: description
288
+ properties:
289
+ name:
290
+ description: Method name
291
+ title: name
292
+ type: string
293
+ signature:
294
+ description: Method signature including parameters
295
+ title: signature
296
+ type: string
297
+ description:
298
+ description: Description of the method
299
+ title: description
300
+ type: string
301
+ required:
302
+ - name
303
+ title: TdPythonMethodInfo
304
+ type: object
305
+ TdPythonPropertyInfo:
306
+ description: Information about a Python property
307
+ example:
308
+ name: name
309
+ type: type
310
+ value: "{}"
311
+ properties:
312
+ name:
313
+ description: Property name
314
+ title: name
315
+ type: string
316
+ type:
317
+ description: Type of the property
318
+ title: type
319
+ type: string
320
+ value:
321
+ description: Current value of the property (if serializable)
322
+ nullable: true
323
+ title: value
324
+ type: object
325
+ required:
326
+ - name
327
+ - type
328
+ title: TdPythonPropertyInfo
329
+ type: object
330
+ TdPythonClassDetails:
331
+ description: Detailed information about a Python class or module
332
+ example:
333
+ methods:
334
+ - signature: signature
335
+ name: name
336
+ description: description
337
+ - signature: signature
338
+ name: name
339
+ description: description
340
+ name: name
341
+ description: description
342
+ type: class
343
+ properties:
344
+ - name: name
345
+ type: type
346
+ value: "{}"
347
+ - name: name
348
+ type: type
349
+ value: "{}"
350
+ properties:
351
+ name:
352
+ description: Name of the class or module
353
+ title: name
354
+ type: string
355
+ type:
356
+ description: Type of the Python entity
357
+ enum:
358
+ - class
359
+ - module
360
+ - function
361
+ - object
362
+ title: type
363
+ type: string
364
+ description:
365
+ description: Description of the class or module
366
+ title: description
367
+ type: string
368
+ methods:
369
+ description: List of methods available in the class or module
370
+ items:
371
+ $ref: '#/components/schemas/TdPythonMethodInfo'
372
+ title: methods
373
+ type: array
374
+ properties:
375
+ description: List of properties available in the class or module
376
+ items:
377
+ $ref: '#/components/schemas/TdPythonPropertyInfo'
378
+ title: properties
379
+ type: array
380
+ required:
381
+ - methods
382
+ - name
383
+ - properties
384
+ - type
385
+ title: TdPythonClassDetails
386
+ type: object
387
+ get_td_info_200_response_data:
388
+ example:
389
+ server: server
390
+ osVersion: osVersion
391
+ osName: osName
392
+ version: version
393
+ nullable: true
394
+ properties:
395
+ server:
396
+ description: Server name (typically "TouchDesigner")
397
+ title: server
398
+ type: string
399
+ version:
400
+ description: TouchDesigner version number
401
+ title: version
402
+ type: string
403
+ osName:
404
+ description: Operating system name
405
+ title: osName
406
+ type: string
407
+ osVersion:
408
+ description: Operating system version
409
+ title: osVersion
410
+ type: string
411
+ required:
412
+ - compileDate
413
+ - osName
414
+ - osVersion
415
+ - server
416
+ - version
417
+ title: get_td_info_200_response_data
418
+ type: object
419
+ get_td_info_200_response:
420
+ example:
421
+ data:
422
+ server: server
423
+ osVersion: osVersion
424
+ osName: osName
425
+ version: version
426
+ success: true
427
+ error: error
428
+ properties:
429
+ success:
430
+ description: Whether the operation was successful
431
+ title: success
432
+ type: boolean
433
+ data:
434
+ $ref: '#/components/schemas/get_td_info_200_response_data'
435
+ error:
436
+ description: Error message if the operation was not successful
437
+ nullable: true
438
+ title: error
439
+ type: string
440
+ required:
441
+ - data
442
+ - error
443
+ - success
444
+ title: get_td_info_200_response
445
+ type: object
446
+ exec_python_script_request:
447
+ properties:
448
+ script:
449
+ description: "e.g., \"op('/project1/text_over_image').outputConnectors[0].connect(op('/project1/out1'))\""
450
+ title: script
451
+ type: string
452
+ required:
453
+ - script
454
+ title: exec_python_script_request
455
+ type: object
456
+ exec_python_script_200_response_data_result:
457
+ description: Result of the executed script
458
+ example:
459
+ value: "{}"
460
+ properties:
461
+ value:
462
+ description: "Return value of the executed script, can be any serializable\
463
+ \ value"
464
+ title: value
465
+ type: object
466
+ title: exec_python_script_200_response_data_result
467
+ type: object
468
+ exec_python_script_200_response_data:
469
+ example:
470
+ result:
471
+ value: "{}"
472
+ nullable: true
473
+ properties:
474
+ result:
475
+ $ref: '#/components/schemas/exec_python_script_200_response_data_result'
476
+ required:
477
+ - result
478
+ title: exec_python_script_200_response_data
479
+ type: object
480
+ exec_python_script_200_response:
481
+ example:
482
+ data:
483
+ result:
484
+ value: "{}"
485
+ success: true
486
+ error: error
487
+ properties:
488
+ success:
489
+ description: Whether the operation was successful
490
+ title: success
491
+ type: boolean
492
+ data:
493
+ $ref: '#/components/schemas/exec_python_script_200_response_data'
494
+ error:
495
+ description: Error message if the operation was not successful
496
+ nullable: true
497
+ title: error
498
+ type: string
499
+ required:
500
+ - data
501
+ - error
502
+ - success
503
+ title: exec_python_script_200_response
504
+ type: object
505
+ get_nodes_200_response_data:
506
+ example:
507
+ nodes:
508
+ - path: path
509
+ opType: opType
510
+ name: name
511
+ id: 0
512
+ properties:
513
+ key: ""
514
+ - path: path
515
+ opType: opType
516
+ name: name
517
+ id: 0
518
+ properties:
519
+ key: ""
520
+ nullable: true
521
+ properties:
522
+ nodes:
523
+ description: Result of the execution
524
+ items:
525
+ $ref: '#/components/schemas/TdNode'
526
+ title: nodes
527
+ type: array
528
+ title: get_nodes_200_response_data
529
+ type: object
530
+ get_nodes_200_response:
531
+ example:
532
+ data:
533
+ nodes:
534
+ - path: path
535
+ opType: opType
536
+ name: name
537
+ id: 0
538
+ properties:
539
+ key: ""
540
+ - path: path
541
+ opType: opType
542
+ name: name
543
+ id: 0
544
+ properties:
545
+ key: ""
546
+ success: true
547
+ error: error
548
+ properties:
549
+ success:
550
+ description: Whether the operation was successful
551
+ title: success
552
+ type: boolean
553
+ data:
554
+ $ref: '#/components/schemas/get_nodes_200_response_data'
555
+ error:
556
+ description: Error message if the operation was not successful
557
+ nullable: true
558
+ title: error
559
+ type: string
560
+ required:
561
+ - data
562
+ - error
563
+ - success
564
+ title: get_nodes_200_response
565
+ type: object
566
+ create_node_request:
567
+ properties:
568
+ parentPath:
569
+ description: "Path to the parent node (e.g., /project1)"
570
+ title: parentPath
571
+ type: string
572
+ nodeType:
573
+ description: "Type of the node to create (e.g., textTop)"
574
+ title: nodeType
575
+ type: string
576
+ nodeName:
577
+ description: Name of the new node (optional)
578
+ title: nodeName
579
+ type: string
580
+ required:
581
+ - nodeType
582
+ - parentPath
583
+ title: create_node_request
584
+ type: object
585
+ create_node_200_response_data:
586
+ example:
587
+ result:
588
+ path: path
589
+ opType: opType
590
+ name: name
591
+ id: 0
592
+ properties:
593
+ key: ""
594
+ nullable: true
595
+ properties:
596
+ result:
597
+ $ref: '#/components/schemas/TdNode'
598
+ title: create_node_200_response_data
599
+ type: object
600
+ create_node_200_response:
601
+ example:
602
+ data:
603
+ result:
604
+ path: path
605
+ opType: opType
606
+ name: name
607
+ id: 0
608
+ properties:
609
+ key: ""
610
+ success: true
611
+ error: error
612
+ properties:
613
+ success:
614
+ description: Whether the operation was successful
615
+ title: success
616
+ type: boolean
617
+ data:
618
+ $ref: '#/components/schemas/create_node_200_response_data'
619
+ error:
620
+ description: Error message if the operation was not successful
621
+ nullable: true
622
+ title: error
623
+ type: string
624
+ required:
625
+ - data
626
+ - error
627
+ - success
628
+ title: create_node_200_response
629
+ type: object
630
+ delete_node_200_response_data:
631
+ example:
632
+ node:
633
+ path: path
634
+ opType: opType
635
+ name: name
636
+ id: 0
637
+ properties:
638
+ key: ""
639
+ deleted: true
640
+ nullable: true
641
+ properties:
642
+ deleted:
643
+ description: Whether the node was successfully deleted
644
+ title: deleted
645
+ type: boolean
646
+ node:
647
+ $ref: '#/components/schemas/TdNode'
648
+ title: delete_node_200_response_data
649
+ type: object
650
+ delete_node_200_response:
651
+ example:
652
+ data:
653
+ node:
654
+ path: path
655
+ opType: opType
656
+ name: name
657
+ id: 0
658
+ properties:
659
+ key: ""
660
+ deleted: true
661
+ success: true
662
+ error: error
663
+ properties:
664
+ success:
665
+ description: Whether the operation was successful
666
+ title: success
667
+ type: boolean
668
+ data:
669
+ $ref: '#/components/schemas/delete_node_200_response_data'
670
+ error:
671
+ description: Error message if the operation was not successful
672
+ nullable: true
673
+ title: error
674
+ type: string
675
+ required:
676
+ - data
677
+ - error
678
+ - success
679
+ title: delete_node_200_response
680
+ type: object
681
+ get_node_detail_200_response:
682
+ example:
683
+ data:
684
+ path: path
685
+ opType: opType
686
+ name: name
687
+ id: 0
688
+ properties:
689
+ key: ""
690
+ success: true
691
+ error: error
692
+ properties:
693
+ success:
694
+ description: Whether the operation was successful
695
+ title: success
696
+ type: boolean
697
+ data:
698
+ $ref: '#/components/schemas/TdNode'
699
+ error:
700
+ description: Error message if the operation was not successful
701
+ nullable: true
702
+ title: error
703
+ type: string
704
+ required:
705
+ - data
706
+ - error
707
+ - success
708
+ title: get_node_detail_200_response
709
+ type: object
710
+ update_node_request:
711
+ properties:
712
+ nodePath:
713
+ description: "Path to the node (e.g., /project1/null1)"
714
+ title: nodePath
715
+ type: string
716
+ properties:
717
+ additionalProperties: true
718
+ title: properties
719
+ type: object
720
+ required:
721
+ - nodePath
722
+ - properties
723
+ title: update_node_request
724
+ type: object
725
+ update_node_200_response_data_failed_inner:
726
+ example:
727
+ reason: reason
728
+ name: name
729
+ properties:
730
+ name:
731
+ description: Name of the property that failed to update
732
+ title: name
733
+ type: string
734
+ reason:
735
+ description: Reason for the failure
736
+ title: reason
737
+ type: string
738
+ title: update_node_200_response_data_failed_inner
739
+ type: object
740
+ update_node_200_response_data:
741
+ example:
742
+ path: path
743
+ failed:
744
+ - reason: reason
745
+ name: name
746
+ - reason: reason
747
+ name: name
748
+ message: message
749
+ updated:
750
+ - updated
751
+ - updated
752
+ nullable: true
753
+ properties:
754
+ path:
755
+ description: Path of the node that was updated
756
+ title: path
757
+ type: string
758
+ updated:
759
+ description: List of property names that were successfully updated
760
+ items:
761
+ type: string
762
+ title: updated
763
+ type: array
764
+ failed:
765
+ description: List of properties that failed to update
766
+ items:
767
+ $ref: '#/components/schemas/update_node_200_response_data_failed_inner'
768
+ title: failed
769
+ type: array
770
+ message:
771
+ description: Summary message about the update operation
772
+ title: message
773
+ type: string
774
+ title: update_node_200_response_data
775
+ type: object
776
+ update_node_200_response:
777
+ example:
778
+ data:
779
+ path: path
780
+ failed:
781
+ - reason: reason
782
+ name: name
783
+ - reason: reason
784
+ name: name
785
+ message: message
786
+ updated:
787
+ - updated
788
+ - updated
789
+ success: true
790
+ error: error
791
+ properties:
792
+ success:
793
+ description: Whether the update operation was successful
794
+ title: success
795
+ type: boolean
796
+ data:
797
+ $ref: '#/components/schemas/update_node_200_response_data'
798
+ error:
799
+ description: Error message if the operation was not successful
800
+ nullable: true
801
+ title: error
802
+ type: string
803
+ required:
804
+ - data
805
+ - error
806
+ - success
807
+ title: update_node_200_response
808
+ type: object
809
+ get_td_python_classes_200_response_data:
810
+ example:
811
+ classes:
812
+ - name: name
813
+ description: description
814
+ type: class
815
+ - name: name
816
+ description: description
817
+ type: class
818
+ nullable: true
819
+ properties:
820
+ classes:
821
+ items:
822
+ $ref: '#/components/schemas/TdPythonClassInfo'
823
+ title: classes
824
+ type: array
825
+ title: get_td_python_classes_200_response_data
826
+ type: object
827
+ get_td_python_classes_200_response:
828
+ example:
829
+ data:
830
+ classes:
831
+ - name: name
832
+ description: description
833
+ type: class
834
+ - name: name
835
+ description: description
836
+ type: class
837
+ success: true
838
+ error: error
839
+ properties:
840
+ success:
841
+ description: Whether the operation was successful
842
+ title: success
843
+ type: boolean
844
+ data:
845
+ $ref: '#/components/schemas/get_td_python_classes_200_response_data'
846
+ error:
847
+ description: Error message if the operation was not successful
848
+ nullable: true
849
+ title: error
850
+ type: string
851
+ required:
852
+ - data
853
+ - error
854
+ - success
855
+ title: get_td_python_classes_200_response
856
+ type: object
857
+ get_td_python_class_details_200_response:
858
+ example:
859
+ data:
860
+ methods:
861
+ - signature: signature
862
+ name: name
863
+ description: description
864
+ - signature: signature
865
+ name: name
866
+ description: description
867
+ name: name
868
+ description: description
869
+ type: class
870
+ properties:
871
+ - name: name
872
+ type: type
873
+ value: "{}"
874
+ - name: name
875
+ type: type
876
+ value: "{}"
877
+ success: true
878
+ error: error
879
+ properties:
880
+ success:
881
+ description: Whether the operation was successful
882
+ title: success
883
+ type: boolean
884
+ data:
885
+ $ref: '#/components/schemas/TdPythonClassDetails'
886
+ error:
887
+ description: Error message if the operation was not successful
888
+ nullable: true
889
+ title: error
890
+ type: string
891
+ required:
892
+ - data
893
+ - error
894
+ - success
895
+ title: get_td_python_class_details_200_response
896
+ type: object
897
+ exec_node_method_request_args_inner:
898
+ oneOf:
899
+ - type: string
900
+ - type: number
901
+ - type: boolean
902
+ title: exec_node_method_request_args_inner
903
+ exec_node_method_request:
904
+ properties:
905
+ nodePath:
906
+ description: "Path to the node (e.g., /project1/null1)"
907
+ title: nodePath
908
+ type: string
909
+ method:
910
+ description: Name of the method to call
911
+ title: method
912
+ type: string
913
+ args:
914
+ description: List of arguments for the method call
915
+ items:
916
+ $ref: '#/components/schemas/exec_node_method_request_args_inner'
917
+ title: args
918
+ type: array
919
+ kwargs:
920
+ additionalProperties: true
921
+ description: Keyword arguments for the method call
922
+ title: kwargs
923
+ type: object
924
+ required:
925
+ - method
926
+ - nodePath
927
+ title: exec_node_method_request
928
+ type: object
929
+ exec_node_method_200_response_data:
930
+ example:
931
+ result: "{}"
932
+ nullable: true
933
+ properties:
934
+ result:
935
+ description: Result of the method call. Can be any type (equivalent to unknown
936
+ in TypeScript).
937
+ title: result
938
+ type: object
939
+ required:
940
+ - result
941
+ title: exec_node_method_200_response_data
942
+ type: object
943
+ exec_node_method_200_response:
944
+ example:
945
+ data:
946
+ result: "{}"
947
+ success: true
948
+ error: error
949
+ properties:
950
+ success:
951
+ description: Whether the operation was successful
952
+ title: success
953
+ type: boolean
954
+ data:
955
+ $ref: '#/components/schemas/exec_node_method_200_response_data'
956
+ error:
957
+ description: Error message if the operation was not successful
958
+ nullable: true
959
+ title: error
960
+ type: string
961
+ required:
962
+ - data
963
+ - error
964
+ - success
965
+ title: exec_node_method_200_response
966
+ type: object