@qwickapps/server 1.5.1 → 1.5.2

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 (77) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/core/control-panel.d.ts.map +1 -1
  3. package/dist/core/control-panel.js +41 -0
  4. package/dist/core/control-panel.js.map +1 -1
  5. package/dist/core/guards.d.ts.map +1 -1
  6. package/dist/core/guards.js +77 -0
  7. package/dist/core/guards.js.map +1 -1
  8. package/dist/core/health-manager.d.ts +4 -0
  9. package/dist/core/health-manager.d.ts.map +1 -1
  10. package/dist/core/health-manager.js +6 -1
  11. package/dist/core/health-manager.js.map +1 -1
  12. package/dist/core/plugin-registry.d.ts +55 -5
  13. package/dist/core/plugin-registry.d.ts.map +1 -1
  14. package/dist/core/plugin-registry.js +57 -19
  15. package/dist/core/plugin-registry.js.map +1 -1
  16. package/dist/core/types.d.ts +2 -0
  17. package/dist/core/types.d.ts.map +1 -1
  18. package/dist/index.d.ts +2 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/plugins/auth/auth-plugin.d.ts.map +1 -1
  23. package/dist/plugins/auth/auth-plugin.js +16 -0
  24. package/dist/plugins/auth/auth-plugin.js.map +1 -1
  25. package/dist/plugins/auth/auth-plugin.test.js +133 -0
  26. package/dist/plugins/auth/auth-plugin.test.js.map +1 -1
  27. package/dist/plugins/auth/env-config.d.ts.map +1 -1
  28. package/dist/plugins/auth/env-config.js +4 -0
  29. package/dist/plugins/auth/env-config.js.map +1 -1
  30. package/dist/plugins/auth/types.d.ts +10 -0
  31. package/dist/plugins/auth/types.d.ts.map +1 -1
  32. package/dist/plugins/auth/types.js.map +1 -1
  33. package/dist/plugins/devices/__tests__/token-utils.test.js +4 -2
  34. package/dist/plugins/devices/__tests__/token-utils.test.js.map +1 -1
  35. package/dist/plugins/frontend-app-plugin.d.ts.map +1 -1
  36. package/dist/plugins/frontend-app-plugin.js +18 -4
  37. package/dist/plugins/frontend-app-plugin.js.map +1 -1
  38. package/dist/plugins/index.d.ts +2 -0
  39. package/dist/plugins/index.d.ts.map +1 -1
  40. package/dist/plugins/index.js +2 -0
  41. package/dist/plugins/index.js.map +1 -1
  42. package/dist/plugins/qwickbrain/index.d.ts +25 -0
  43. package/dist/plugins/qwickbrain/index.d.ts.map +1 -0
  44. package/dist/plugins/qwickbrain/index.js +24 -0
  45. package/dist/plugins/qwickbrain/index.js.map +1 -0
  46. package/dist/plugins/qwickbrain/qwickbrain-plugin.d.ts +23 -0
  47. package/dist/plugins/qwickbrain/qwickbrain-plugin.d.ts.map +1 -0
  48. package/dist/plugins/qwickbrain/qwickbrain-plugin.js +528 -0
  49. package/dist/plugins/qwickbrain/qwickbrain-plugin.js.map +1 -0
  50. package/dist/plugins/qwickbrain/types.d.ts +131 -0
  51. package/dist/plugins/qwickbrain/types.d.ts.map +1 -0
  52. package/dist/plugins/qwickbrain/types.js +9 -0
  53. package/dist/plugins/qwickbrain/types.js.map +1 -0
  54. package/dist-ui/assets/{index-CynOqPkb.js → index-BfC7mG5L.js} +2 -2
  55. package/dist-ui/assets/{index-CynOqPkb.js.map → index-BfC7mG5L.js.map} +1 -1
  56. package/dist-ui/index.html +1 -1
  57. package/dist-ui-lib/api/controlPanelApi.d.ts +6 -0
  58. package/dist-ui-lib/index.js +277 -266
  59. package/dist-ui-lib/index.js.map +1 -1
  60. package/package.json +1 -1
  61. package/src/core/control-panel.ts +47 -0
  62. package/src/core/guards.ts +89 -0
  63. package/src/core/health-manager.ts +6 -1
  64. package/src/core/plugin-registry.ts +123 -25
  65. package/src/core/types.ts +2 -0
  66. package/src/index.ts +11 -0
  67. package/src/plugins/auth/auth-plugin.test.ts +167 -0
  68. package/src/plugins/auth/auth-plugin.ts +16 -0
  69. package/src/plugins/auth/env-config.ts +4 -0
  70. package/src/plugins/auth/types.ts +10 -0
  71. package/src/plugins/devices/__tests__/token-utils.test.ts +4 -2
  72. package/src/plugins/frontend-app-plugin.ts +19 -4
  73. package/src/plugins/index.ts +15 -0
  74. package/src/plugins/qwickbrain/index.ts +33 -0
  75. package/src/plugins/qwickbrain/qwickbrain-plugin.ts +642 -0
  76. package/src/plugins/qwickbrain/types.ts +146 -0
  77. package/ui/src/api/controlPanelApi.ts +49 -37
@@ -0,0 +1,131 @@
1
+ /**
2
+ * QwickBrain Plugin Types
3
+ *
4
+ * Type definitions for the QwickBrain MCP proxy plugin.
5
+ *
6
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
7
+ */
8
+ /**
9
+ * Configuration for the QwickBrain plugin
10
+ */
11
+ export interface QwickBrainPluginConfig {
12
+ /**
13
+ * Base URL of the QwickBrain instance (via Tailscale)
14
+ * Example: "http://macmini.tailnet-xxx.ts.net:8080"
15
+ */
16
+ qwickbrainUrl: string;
17
+ /**
18
+ * Request timeout in milliseconds
19
+ * @default 30000
20
+ */
21
+ timeout?: number;
22
+ /**
23
+ * Which MCP tools to expose publicly
24
+ * Use '*' to expose all tools, or provide a list of tool names
25
+ * @default '*'
26
+ */
27
+ exposedTools?: string[] | '*';
28
+ /**
29
+ * API configuration
30
+ */
31
+ api?: {
32
+ /**
33
+ * Enable API routes
34
+ * @default true
35
+ */
36
+ enabled?: boolean;
37
+ /**
38
+ * API route prefix (mounted under /api)
39
+ * @default '/mcp'
40
+ */
41
+ prefix?: string;
42
+ };
43
+ /**
44
+ * Authentication configuration
45
+ */
46
+ auth?: {
47
+ /**
48
+ * Require authentication for MCP tool endpoints
49
+ * When true, /mcp/tools and /mcp/tools/:name require valid auth
50
+ * Status endpoint (/mcp/status) is always public
51
+ * @default true
52
+ */
53
+ required?: boolean;
54
+ /**
55
+ * Roles required to access MCP tools (optional)
56
+ * If set, user must have at least one of these roles
57
+ */
58
+ allowedRoles?: string[];
59
+ };
60
+ /**
61
+ * Rate limiting configuration
62
+ */
63
+ rateLimit?: MCPRateLimitConfig;
64
+ /**
65
+ * Enable debug logging
66
+ * @default false
67
+ */
68
+ debug?: boolean;
69
+ }
70
+ /**
71
+ * MCP Tool definition from QwickBrain
72
+ */
73
+ export interface MCPToolDefinition {
74
+ name: string;
75
+ description: string;
76
+ inputSchema: {
77
+ type: 'object';
78
+ properties: Record<string, unknown>;
79
+ required?: string[];
80
+ };
81
+ }
82
+ /**
83
+ * MCP Tool call request
84
+ */
85
+ export interface MCPToolCallRequest {
86
+ name: string;
87
+ arguments: Record<string, unknown>;
88
+ }
89
+ /**
90
+ * MCP Tool call response
91
+ */
92
+ export interface MCPToolCallResponse {
93
+ content: Array<{
94
+ type: 'text' | 'image' | 'resource';
95
+ text?: string;
96
+ data?: string;
97
+ mimeType?: string;
98
+ }>;
99
+ isError?: boolean;
100
+ }
101
+ /**
102
+ * QwickBrain connection status
103
+ */
104
+ export interface QwickBrainConnectionStatus {
105
+ connected: boolean;
106
+ lastCheck: Date;
107
+ latencyMs?: number;
108
+ error?: string;
109
+ tailscaleStatus?: 'connected' | 'disconnected' | 'unknown';
110
+ }
111
+ /**
112
+ * Rate limit configuration for MCP requests
113
+ */
114
+ export interface MCPRateLimitConfig {
115
+ /**
116
+ * Enable rate limiting
117
+ * @default true
118
+ */
119
+ enabled?: boolean;
120
+ /**
121
+ * Requests per minute per client
122
+ * @default 60
123
+ */
124
+ perClientPerMinute?: number;
125
+ /**
126
+ * Total requests per minute (global)
127
+ * @default 1000
128
+ */
129
+ globalPerMinute?: number;
130
+ }
131
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/qwickbrain/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAE9B;;OAEG;IACH,GAAG,CAAC,EAAE;QACJ;;;WAGG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF;;OAEG;IACH,IAAI,CAAC,EAAE;QACL;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;QAEnB;;;WAGG;QACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAE/B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * QwickBrain Plugin Types
3
+ *
4
+ * Type definitions for the QwickBrain MCP proxy plugin.
5
+ *
6
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/qwickbrain/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}