@imdanibytes/nexus-sdk 0.10.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 (70) hide show
  1. package/dist/client/client/client.gen.d.ts +3 -0
  2. package/dist/client/client/client.gen.d.ts.map +1 -0
  3. package/dist/client/client/client.gen.js +235 -0
  4. package/dist/client/client/client.gen.js.map +1 -0
  5. package/dist/client/client/index.d.ts +9 -0
  6. package/dist/client/client/index.d.ts.map +1 -0
  7. package/dist/client/client/index.js +7 -0
  8. package/dist/client/client/index.js.map +1 -0
  9. package/dist/client/client/types.gen.d.ts +118 -0
  10. package/dist/client/client/types.gen.d.ts.map +1 -0
  11. package/dist/client/client/types.gen.js +3 -0
  12. package/dist/client/client/types.gen.js.map +1 -0
  13. package/dist/client/client/utils.gen.d.ts +34 -0
  14. package/dist/client/client/utils.gen.d.ts.map +1 -0
  15. package/dist/client/client/utils.gen.js +229 -0
  16. package/dist/client/client/utils.gen.js.map +1 -0
  17. package/dist/client/client.gen.d.ts +13 -0
  18. package/dist/client/client.gen.d.ts.map +1 -0
  19. package/dist/client/client.gen.js +4 -0
  20. package/dist/client/client.gen.js.map +1 -0
  21. package/dist/client/core/auth.gen.d.ts +19 -0
  22. package/dist/client/core/auth.gen.d.ts.map +1 -0
  23. package/dist/client/core/auth.gen.js +15 -0
  24. package/dist/client/core/auth.gen.js.map +1 -0
  25. package/dist/client/core/bodySerializer.gen.d.ts +26 -0
  26. package/dist/client/core/bodySerializer.gen.d.ts.map +1 -0
  27. package/dist/client/core/bodySerializer.gen.js +58 -0
  28. package/dist/client/core/bodySerializer.gen.js.map +1 -0
  29. package/dist/client/core/params.gen.d.ts +44 -0
  30. package/dist/client/core/params.gen.d.ts.map +1 -0
  31. package/dist/client/core/params.gen.js +101 -0
  32. package/dist/client/core/params.gen.js.map +1 -0
  33. package/dist/client/core/pathSerializer.gen.d.ts +34 -0
  34. package/dist/client/core/pathSerializer.gen.d.ts.map +1 -0
  35. package/dist/client/core/pathSerializer.gen.js +107 -0
  36. package/dist/client/core/pathSerializer.gen.js.map +1 -0
  37. package/dist/client/core/queryKeySerializer.gen.d.ts +19 -0
  38. package/dist/client/core/queryKeySerializer.gen.d.ts.map +1 -0
  39. package/dist/client/core/queryKeySerializer.gen.js +93 -0
  40. package/dist/client/core/queryKeySerializer.gen.js.map +1 -0
  41. package/dist/client/core/serverSentEvents.gen.d.ts +72 -0
  42. package/dist/client/core/serverSentEvents.gen.d.ts.map +1 -0
  43. package/dist/client/core/serverSentEvents.gen.js +134 -0
  44. package/dist/client/core/serverSentEvents.gen.js.map +1 -0
  45. package/dist/client/core/types.gen.d.ts +79 -0
  46. package/dist/client/core/types.gen.d.ts.map +1 -0
  47. package/dist/client/core/types.gen.js +3 -0
  48. package/dist/client/core/types.gen.js.map +1 -0
  49. package/dist/client/core/utils.gen.d.ts +20 -0
  50. package/dist/client/core/utils.gen.d.ts.map +1 -0
  51. package/dist/client/core/utils.gen.js +88 -0
  52. package/dist/client/core/utils.gen.js.map +1 -0
  53. package/dist/client/index.d.ts +3 -0
  54. package/dist/client/index.d.ts.map +1 -0
  55. package/dist/client/index.js +3 -0
  56. package/dist/client/index.js.map +1 -0
  57. package/dist/client/sdk.gen.d.ts +42 -0
  58. package/dist/client/sdk.gen.d.ts.map +1 -0
  59. package/dist/client/sdk.gen.js +105 -0
  60. package/dist/client/sdk.gen.js.map +1 -0
  61. package/dist/client/types.gen.d.ts +479 -0
  62. package/dist/client/types.gen.d.ts.map +1 -0
  63. package/dist/client/types.gen.js +3 -0
  64. package/dist/client/types.gen.js.map +1 -0
  65. package/dist/index.d.ts +98 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +159 -0
  68. package/dist/index.js.map +1 -0
  69. package/openapi.json +1041 -0
  70. package/package.json +42 -0
package/openapi.json ADDED
@@ -0,0 +1,1041 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "title": "Nexus Host API",
5
+ "description": "API available to Nexus plugins for interacting with the host system. Plugins exchange their secret (NEXUS_PLUGIN_SECRET) for a short-lived access token via POST /v1/auth/token, then use it as a Bearer token.",
6
+ "contact": {
7
+ "name": "danibytes"
8
+ },
9
+ "license": {
10
+ "name": "MIT"
11
+ },
12
+ "version": "0.1.0"
13
+ },
14
+ "paths": {
15
+ "/api/v1/docker/containers": {
16
+ "get": {
17
+ "tags": [
18
+ "docker"
19
+ ],
20
+ "operationId": "list_containers",
21
+ "responses": {
22
+ "200": {
23
+ "description": "Docker containers",
24
+ "content": {
25
+ "application/json": {
26
+ "schema": {
27
+ "type": "array",
28
+ "items": {
29
+ "$ref": "#/components/schemas/ContainerInfo"
30
+ }
31
+ }
32
+ }
33
+ }
34
+ },
35
+ "401": {
36
+ "description": "Unauthorized"
37
+ },
38
+ "403": {
39
+ "description": "Forbidden"
40
+ }
41
+ },
42
+ "security": [
43
+ {
44
+ "bearer_auth": []
45
+ }
46
+ ]
47
+ }
48
+ },
49
+ "/api/v1/docker/stats/{id}": {
50
+ "get": {
51
+ "tags": [
52
+ "docker"
53
+ ],
54
+ "operationId": "container_stats",
55
+ "parameters": [
56
+ {
57
+ "name": "id",
58
+ "in": "path",
59
+ "description": "Container ID",
60
+ "required": true,
61
+ "schema": {
62
+ "type": "string"
63
+ }
64
+ }
65
+ ],
66
+ "responses": {
67
+ "200": {
68
+ "description": "Container stats (Docker inspect)",
69
+ "content": {
70
+ "application/json": {
71
+ "schema": {
72
+ "type": "object"
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "401": {
78
+ "description": "Unauthorized"
79
+ },
80
+ "403": {
81
+ "description": "Forbidden"
82
+ }
83
+ },
84
+ "security": [
85
+ {
86
+ "bearer_auth": []
87
+ }
88
+ ]
89
+ }
90
+ },
91
+ "/api/v1/fs/edit": {
92
+ "post": {
93
+ "tags": [
94
+ "filesystem"
95
+ ],
96
+ "operationId": "edit_file",
97
+ "requestBody": {
98
+ "content": {
99
+ "application/json": {
100
+ "schema": {
101
+ "$ref": "#/components/schemas/EditRequest"
102
+ }
103
+ }
104
+ },
105
+ "required": true
106
+ },
107
+ "responses": {
108
+ "200": {
109
+ "description": "File edited"
110
+ },
111
+ "400": {
112
+ "description": "old_string not found or not unique"
113
+ },
114
+ "401": {
115
+ "description": "Unauthorized"
116
+ },
117
+ "403": {
118
+ "description": "Forbidden"
119
+ }
120
+ },
121
+ "security": [
122
+ {
123
+ "bearer_auth": []
124
+ }
125
+ ]
126
+ }
127
+ },
128
+ "/api/v1/fs/glob": {
129
+ "get": {
130
+ "tags": [
131
+ "filesystem"
132
+ ],
133
+ "operationId": "glob_files",
134
+ "parameters": [
135
+ {
136
+ "name": "pattern",
137
+ "in": "query",
138
+ "description": "Glob pattern (e.g. \"**/*.ts\", \"src/**/*.rs\")",
139
+ "required": true,
140
+ "schema": {
141
+ "type": "string"
142
+ }
143
+ },
144
+ {
145
+ "name": "path",
146
+ "in": "query",
147
+ "description": "Base directory to search from (must be absolute)",
148
+ "required": true,
149
+ "schema": {
150
+ "type": "string"
151
+ }
152
+ }
153
+ ],
154
+ "responses": {
155
+ "200": {
156
+ "description": "Matching files",
157
+ "content": {
158
+ "application/json": {
159
+ "schema": {
160
+ "$ref": "#/components/schemas/GlobResult"
161
+ }
162
+ }
163
+ }
164
+ },
165
+ "401": {
166
+ "description": "Unauthorized"
167
+ },
168
+ "403": {
169
+ "description": "Forbidden"
170
+ }
171
+ },
172
+ "security": [
173
+ {
174
+ "bearer_auth": []
175
+ }
176
+ ]
177
+ }
178
+ },
179
+ "/api/v1/fs/grep": {
180
+ "get": {
181
+ "tags": [
182
+ "filesystem"
183
+ ],
184
+ "operationId": "grep_files",
185
+ "parameters": [
186
+ {
187
+ "name": "pattern",
188
+ "in": "query",
189
+ "description": "Regex pattern to search for",
190
+ "required": true,
191
+ "schema": {
192
+ "type": "string"
193
+ }
194
+ },
195
+ {
196
+ "name": "path",
197
+ "in": "query",
198
+ "description": "File or directory to search in (must be absolute)",
199
+ "required": true,
200
+ "schema": {
201
+ "type": "string"
202
+ }
203
+ },
204
+ {
205
+ "name": "include",
206
+ "in": "query",
207
+ "description": "Optional glob filter for file names (e.g. \"*.ts\")",
208
+ "required": false,
209
+ "schema": {
210
+ "type": [
211
+ "string",
212
+ "null"
213
+ ]
214
+ }
215
+ },
216
+ {
217
+ "name": "context_lines",
218
+ "in": "query",
219
+ "description": "Number of context lines around matches (default: 0)",
220
+ "required": false,
221
+ "schema": {
222
+ "type": [
223
+ "integer",
224
+ "null"
225
+ ],
226
+ "minimum": 0
227
+ }
228
+ },
229
+ {
230
+ "name": "max_results",
231
+ "in": "query",
232
+ "description": "Maximum number of matching files to return (default: 50)",
233
+ "required": false,
234
+ "schema": {
235
+ "type": [
236
+ "integer",
237
+ "null"
238
+ ],
239
+ "minimum": 0
240
+ }
241
+ }
242
+ ],
243
+ "responses": {
244
+ "200": {
245
+ "description": "Search results",
246
+ "content": {
247
+ "application/json": {
248
+ "schema": {
249
+ "$ref": "#/components/schemas/GrepResult"
250
+ }
251
+ }
252
+ }
253
+ },
254
+ "401": {
255
+ "description": "Unauthorized"
256
+ },
257
+ "403": {
258
+ "description": "Forbidden"
259
+ }
260
+ },
261
+ "security": [
262
+ {
263
+ "bearer_auth": []
264
+ }
265
+ ]
266
+ }
267
+ },
268
+ "/api/v1/fs/list": {
269
+ "get": {
270
+ "tags": [
271
+ "filesystem"
272
+ ],
273
+ "operationId": "list_dir",
274
+ "parameters": [
275
+ {
276
+ "name": "path",
277
+ "in": "query",
278
+ "required": true,
279
+ "schema": {
280
+ "type": "string"
281
+ }
282
+ }
283
+ ],
284
+ "responses": {
285
+ "200": {
286
+ "description": "Directory listing",
287
+ "content": {
288
+ "application/json": {
289
+ "schema": {
290
+ "$ref": "#/components/schemas/DirListing"
291
+ }
292
+ }
293
+ }
294
+ },
295
+ "401": {
296
+ "description": "Unauthorized"
297
+ },
298
+ "403": {
299
+ "description": "Forbidden"
300
+ }
301
+ },
302
+ "security": [
303
+ {
304
+ "bearer_auth": []
305
+ }
306
+ ]
307
+ }
308
+ },
309
+ "/api/v1/fs/read": {
310
+ "get": {
311
+ "tags": [
312
+ "filesystem"
313
+ ],
314
+ "operationId": "read_file",
315
+ "parameters": [
316
+ {
317
+ "name": "path",
318
+ "in": "query",
319
+ "required": true,
320
+ "schema": {
321
+ "type": "string"
322
+ }
323
+ }
324
+ ],
325
+ "responses": {
326
+ "200": {
327
+ "description": "File content",
328
+ "content": {
329
+ "application/json": {
330
+ "schema": {
331
+ "$ref": "#/components/schemas/FileContent"
332
+ }
333
+ }
334
+ }
335
+ },
336
+ "401": {
337
+ "description": "Unauthorized"
338
+ },
339
+ "403": {
340
+ "description": "Forbidden"
341
+ }
342
+ },
343
+ "security": [
344
+ {
345
+ "bearer_auth": []
346
+ }
347
+ ]
348
+ }
349
+ },
350
+ "/api/v1/fs/write": {
351
+ "post": {
352
+ "tags": [
353
+ "filesystem"
354
+ ],
355
+ "operationId": "write_file",
356
+ "requestBody": {
357
+ "content": {
358
+ "application/json": {
359
+ "schema": {
360
+ "$ref": "#/components/schemas/WriteRequest"
361
+ }
362
+ }
363
+ },
364
+ "required": true
365
+ },
366
+ "responses": {
367
+ "200": {
368
+ "description": "File written"
369
+ },
370
+ "401": {
371
+ "description": "Unauthorized"
372
+ },
373
+ "403": {
374
+ "description": "Forbidden"
375
+ }
376
+ },
377
+ "security": [
378
+ {
379
+ "bearer_auth": []
380
+ }
381
+ ]
382
+ }
383
+ },
384
+ "/api/v1/network/proxy": {
385
+ "post": {
386
+ "tags": [
387
+ "network"
388
+ ],
389
+ "operationId": "proxy_request",
390
+ "requestBody": {
391
+ "content": {
392
+ "application/json": {
393
+ "schema": {
394
+ "$ref": "#/components/schemas/ProxyRequest"
395
+ }
396
+ }
397
+ },
398
+ "required": true
399
+ },
400
+ "responses": {
401
+ "200": {
402
+ "description": "Proxied response",
403
+ "content": {
404
+ "application/json": {
405
+ "schema": {
406
+ "$ref": "#/components/schemas/ProxyResponse"
407
+ }
408
+ }
409
+ }
410
+ },
411
+ "401": {
412
+ "description": "Unauthorized"
413
+ },
414
+ "403": {
415
+ "description": "Forbidden"
416
+ },
417
+ "502": {
418
+ "description": "Upstream error"
419
+ }
420
+ },
421
+ "security": [
422
+ {
423
+ "bearer_auth": []
424
+ }
425
+ ]
426
+ }
427
+ },
428
+ "/api/v1/process/exec": {
429
+ "post": {
430
+ "tags": [
431
+ "process"
432
+ ],
433
+ "operationId": "exec_command",
434
+ "requestBody": {
435
+ "content": {
436
+ "application/json": {
437
+ "schema": {
438
+ "$ref": "#/components/schemas/ExecRequest"
439
+ }
440
+ }
441
+ },
442
+ "required": true
443
+ },
444
+ "responses": {
445
+ "200": {
446
+ "description": "Command output",
447
+ "content": {
448
+ "application/json": {
449
+ "schema": {
450
+ "$ref": "#/components/schemas/ExecResult"
451
+ }
452
+ }
453
+ }
454
+ },
455
+ "401": {
456
+ "description": "Unauthorized"
457
+ },
458
+ "403": {
459
+ "description": "Forbidden"
460
+ }
461
+ },
462
+ "security": [
463
+ {
464
+ "bearer_auth": []
465
+ }
466
+ ]
467
+ }
468
+ },
469
+ "/api/v1/process/list": {
470
+ "get": {
471
+ "tags": [
472
+ "process"
473
+ ],
474
+ "operationId": "list_processes",
475
+ "responses": {
476
+ "200": {
477
+ "description": "Running processes",
478
+ "content": {
479
+ "application/json": {
480
+ "schema": {
481
+ "type": "array",
482
+ "items": {
483
+ "$ref": "#/components/schemas/ProcessInfo"
484
+ }
485
+ }
486
+ }
487
+ }
488
+ },
489
+ "401": {
490
+ "description": "Unauthorized"
491
+ },
492
+ "403": {
493
+ "description": "Permission denied"
494
+ }
495
+ },
496
+ "security": [
497
+ {
498
+ "bearer_auth": []
499
+ }
500
+ ]
501
+ }
502
+ },
503
+ "/api/v1/settings": {
504
+ "get": {
505
+ "tags": [
506
+ "settings"
507
+ ],
508
+ "summary": "Get settings for the authenticated plugin.",
509
+ "description": "Returns a flat key-value map. Defaults from the manifest are\napplied first, then any explicitly saved overrides.",
510
+ "operationId": "get_settings",
511
+ "responses": {
512
+ "200": {
513
+ "description": "Plugin settings",
514
+ "content": {
515
+ "application/json": {
516
+ "schema": {
517
+ "type": "object",
518
+ "additionalProperties": {},
519
+ "propertyNames": {
520
+ "type": "string"
521
+ }
522
+ }
523
+ }
524
+ }
525
+ },
526
+ "401": {
527
+ "description": "Unauthorized"
528
+ }
529
+ },
530
+ "security": [
531
+ {
532
+ "bearer_auth": []
533
+ }
534
+ ]
535
+ },
536
+ "put": {
537
+ "tags": [
538
+ "settings"
539
+ ],
540
+ "summary": "Update settings for the authenticated plugin.",
541
+ "description": "Accepts a flat key-value map. Values are validated against the manifest's\nsettings schema: unknown keys are rejected, value types must match.",
542
+ "operationId": "put_settings",
543
+ "requestBody": {
544
+ "content": {
545
+ "application/json": {
546
+ "schema": {
547
+ "type": "object",
548
+ "additionalProperties": {},
549
+ "propertyNames": {
550
+ "type": "string"
551
+ }
552
+ }
553
+ }
554
+ },
555
+ "required": true
556
+ },
557
+ "responses": {
558
+ "200": {
559
+ "description": "Settings saved"
560
+ },
561
+ "400": {
562
+ "description": "Validation error"
563
+ },
564
+ "401": {
565
+ "description": "Unauthorized"
566
+ }
567
+ },
568
+ "security": [
569
+ {
570
+ "bearer_auth": []
571
+ }
572
+ ]
573
+ }
574
+ },
575
+ "/api/v1/system/info": {
576
+ "get": {
577
+ "tags": [
578
+ "system"
579
+ ],
580
+ "operationId": "system_info",
581
+ "responses": {
582
+ "200": {
583
+ "description": "Host system information",
584
+ "content": {
585
+ "application/json": {
586
+ "schema": {
587
+ "$ref": "#/components/schemas/SystemInfo"
588
+ }
589
+ }
590
+ }
591
+ },
592
+ "401": {
593
+ "description": "Unauthorized"
594
+ }
595
+ },
596
+ "security": [
597
+ {
598
+ "bearer_auth": []
599
+ }
600
+ ]
601
+ }
602
+ }
603
+ },
604
+ "components": {
605
+ "schemas": {
606
+ "ContainerInfo": {
607
+ "type": "object",
608
+ "required": [
609
+ "id",
610
+ "names",
611
+ "image",
612
+ "state",
613
+ "status"
614
+ ],
615
+ "properties": {
616
+ "id": {
617
+ "type": "string"
618
+ },
619
+ "image": {
620
+ "type": "string"
621
+ },
622
+ "names": {
623
+ "type": "array",
624
+ "items": {
625
+ "type": "string"
626
+ }
627
+ },
628
+ "state": {
629
+ "type": "string"
630
+ },
631
+ "status": {
632
+ "type": "string"
633
+ }
634
+ }
635
+ },
636
+ "DirEntry": {
637
+ "type": "object",
638
+ "required": [
639
+ "name",
640
+ "path",
641
+ "is_dir",
642
+ "size"
643
+ ],
644
+ "properties": {
645
+ "is_dir": {
646
+ "type": "boolean"
647
+ },
648
+ "name": {
649
+ "type": "string"
650
+ },
651
+ "path": {
652
+ "type": "string"
653
+ },
654
+ "size": {
655
+ "type": "integer",
656
+ "format": "int64",
657
+ "minimum": 0
658
+ }
659
+ }
660
+ },
661
+ "DirListing": {
662
+ "type": "object",
663
+ "required": [
664
+ "path",
665
+ "entries"
666
+ ],
667
+ "properties": {
668
+ "entries": {
669
+ "type": "array",
670
+ "items": {
671
+ "$ref": "#/components/schemas/DirEntry"
672
+ }
673
+ },
674
+ "path": {
675
+ "type": "string"
676
+ }
677
+ }
678
+ },
679
+ "EditRequest": {
680
+ "type": "object",
681
+ "required": [
682
+ "path",
683
+ "old_string",
684
+ "new_string"
685
+ ],
686
+ "properties": {
687
+ "new_string": {
688
+ "type": "string"
689
+ },
690
+ "old_string": {
691
+ "type": "string"
692
+ },
693
+ "path": {
694
+ "type": "string"
695
+ },
696
+ "replace_all": {
697
+ "type": "boolean"
698
+ }
699
+ }
700
+ },
701
+ "ExecRequest": {
702
+ "type": "object",
703
+ "required": [
704
+ "command"
705
+ ],
706
+ "properties": {
707
+ "args": {
708
+ "type": "array",
709
+ "items": {
710
+ "type": "string"
711
+ },
712
+ "description": "Arguments to pass to the command"
713
+ },
714
+ "command": {
715
+ "type": "string",
716
+ "description": "The command to execute (e.g. \"git\", \"cargo\", \"ls\")"
717
+ },
718
+ "timeout_secs": {
719
+ "type": [
720
+ "integer",
721
+ "null"
722
+ ],
723
+ "format": "int64",
724
+ "description": "Timeout in seconds (default: 30, max: 600)",
725
+ "minimum": 0
726
+ },
727
+ "working_dir": {
728
+ "type": [
729
+ "string",
730
+ "null"
731
+ ],
732
+ "description": "Working directory (must be absolute). Defaults to home directory."
733
+ }
734
+ }
735
+ },
736
+ "ExecResult": {
737
+ "type": "object",
738
+ "required": [
739
+ "stdout",
740
+ "stderr",
741
+ "timed_out"
742
+ ],
743
+ "properties": {
744
+ "exit_code": {
745
+ "type": [
746
+ "integer",
747
+ "null"
748
+ ],
749
+ "format": "int32"
750
+ },
751
+ "stderr": {
752
+ "type": "string"
753
+ },
754
+ "stdout": {
755
+ "type": "string"
756
+ },
757
+ "timed_out": {
758
+ "type": "boolean",
759
+ "description": "Whether the command was killed due to timeout"
760
+ }
761
+ }
762
+ },
763
+ "FileContent": {
764
+ "type": "object",
765
+ "required": [
766
+ "path",
767
+ "content",
768
+ "size"
769
+ ],
770
+ "properties": {
771
+ "content": {
772
+ "type": "string"
773
+ },
774
+ "path": {
775
+ "type": "string"
776
+ },
777
+ "size": {
778
+ "type": "integer",
779
+ "format": "int64",
780
+ "minimum": 0
781
+ }
782
+ }
783
+ },
784
+ "GlobResult": {
785
+ "type": "object",
786
+ "required": [
787
+ "pattern",
788
+ "base_path",
789
+ "matches"
790
+ ],
791
+ "properties": {
792
+ "base_path": {
793
+ "type": "string"
794
+ },
795
+ "matches": {
796
+ "type": "array",
797
+ "items": {
798
+ "type": "string"
799
+ }
800
+ },
801
+ "pattern": {
802
+ "type": "string"
803
+ }
804
+ }
805
+ },
806
+ "GrepFileMatch": {
807
+ "type": "object",
808
+ "required": [
809
+ "path",
810
+ "lines"
811
+ ],
812
+ "properties": {
813
+ "lines": {
814
+ "type": "array",
815
+ "items": {
816
+ "$ref": "#/components/schemas/GrepLine"
817
+ }
818
+ },
819
+ "path": {
820
+ "type": "string"
821
+ }
822
+ }
823
+ },
824
+ "GrepLine": {
825
+ "type": "object",
826
+ "required": [
827
+ "line_number",
828
+ "content",
829
+ "is_context"
830
+ ],
831
+ "properties": {
832
+ "content": {
833
+ "type": "string"
834
+ },
835
+ "is_context": {
836
+ "type": "boolean",
837
+ "description": "Whether this line is a context line (vs a direct match)"
838
+ },
839
+ "line_number": {
840
+ "type": "integer",
841
+ "minimum": 0
842
+ }
843
+ }
844
+ },
845
+ "GrepResult": {
846
+ "type": "object",
847
+ "required": [
848
+ "pattern",
849
+ "search_path",
850
+ "matches"
851
+ ],
852
+ "properties": {
853
+ "matches": {
854
+ "type": "array",
855
+ "items": {
856
+ "$ref": "#/components/schemas/GrepFileMatch"
857
+ }
858
+ },
859
+ "pattern": {
860
+ "type": "string"
861
+ },
862
+ "search_path": {
863
+ "type": "string"
864
+ }
865
+ }
866
+ },
867
+ "ProcessInfo": {
868
+ "type": "object",
869
+ "required": [
870
+ "pid",
871
+ "name",
872
+ "cpu_usage",
873
+ "memory"
874
+ ],
875
+ "properties": {
876
+ "cpu_usage": {
877
+ "type": "number",
878
+ "format": "float"
879
+ },
880
+ "memory": {
881
+ "type": "integer",
882
+ "format": "int64",
883
+ "minimum": 0
884
+ },
885
+ "name": {
886
+ "type": "string"
887
+ },
888
+ "pid": {
889
+ "type": "integer",
890
+ "format": "int32",
891
+ "minimum": 0
892
+ }
893
+ }
894
+ },
895
+ "ProxyRequest": {
896
+ "type": "object",
897
+ "required": [
898
+ "url",
899
+ "method"
900
+ ],
901
+ "properties": {
902
+ "body": {
903
+ "type": [
904
+ "string",
905
+ "null"
906
+ ]
907
+ },
908
+ "headers": {
909
+ "type": "object",
910
+ "additionalProperties": {
911
+ "type": "string"
912
+ },
913
+ "propertyNames": {
914
+ "type": "string"
915
+ }
916
+ },
917
+ "method": {
918
+ "type": "string"
919
+ },
920
+ "url": {
921
+ "type": "string"
922
+ }
923
+ }
924
+ },
925
+ "ProxyResponse": {
926
+ "type": "object",
927
+ "required": [
928
+ "status",
929
+ "headers",
930
+ "body"
931
+ ],
932
+ "properties": {
933
+ "body": {
934
+ "type": "string"
935
+ },
936
+ "headers": {
937
+ "type": "object",
938
+ "additionalProperties": {
939
+ "type": "string"
940
+ },
941
+ "propertyNames": {
942
+ "type": "string"
943
+ }
944
+ },
945
+ "status": {
946
+ "type": "integer",
947
+ "format": "int32",
948
+ "minimum": 0
949
+ }
950
+ }
951
+ },
952
+ "SystemInfo": {
953
+ "type": "object",
954
+ "required": [
955
+ "os",
956
+ "os_version",
957
+ "hostname",
958
+ "uptime",
959
+ "cpu_count",
960
+ "total_memory",
961
+ "nexus_version"
962
+ ],
963
+ "properties": {
964
+ "cpu_count": {
965
+ "type": "integer",
966
+ "minimum": 0
967
+ },
968
+ "hostname": {
969
+ "type": "string"
970
+ },
971
+ "nexus_version": {
972
+ "type": "string"
973
+ },
974
+ "os": {
975
+ "type": "string"
976
+ },
977
+ "os_version": {
978
+ "type": "string"
979
+ },
980
+ "total_memory": {
981
+ "type": "integer",
982
+ "format": "int64",
983
+ "minimum": 0
984
+ },
985
+ "uptime": {
986
+ "type": "integer",
987
+ "format": "int64",
988
+ "minimum": 0
989
+ }
990
+ }
991
+ },
992
+ "WriteRequest": {
993
+ "type": "object",
994
+ "required": [
995
+ "path",
996
+ "content"
997
+ ],
998
+ "properties": {
999
+ "content": {
1000
+ "type": "string"
1001
+ },
1002
+ "path": {
1003
+ "type": "string"
1004
+ }
1005
+ }
1006
+ }
1007
+ },
1008
+ "securitySchemes": {
1009
+ "bearer_auth": {
1010
+ "type": "http",
1011
+ "scheme": "bearer"
1012
+ }
1013
+ }
1014
+ },
1015
+ "tags": [
1016
+ {
1017
+ "name": "system",
1018
+ "description": "Host system information"
1019
+ },
1020
+ {
1021
+ "name": "filesystem",
1022
+ "description": "Read and write files on the host"
1023
+ },
1024
+ {
1025
+ "name": "process",
1026
+ "description": "List host processes"
1027
+ },
1028
+ {
1029
+ "name": "docker",
1030
+ "description": "Docker container inspection"
1031
+ },
1032
+ {
1033
+ "name": "network",
1034
+ "description": "Network proxy for external requests"
1035
+ },
1036
+ {
1037
+ "name": "settings",
1038
+ "description": "Per-plugin settings (scoped to authenticated plugin)"
1039
+ }
1040
+ ]
1041
+ }