@wingman-ai/gateway 0.4.0 → 0.4.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 (59) hide show
  1. package/README.md +29 -111
  2. package/dist/agent/config/agentConfig.cjs +2 -0
  3. package/dist/agent/config/agentConfig.d.ts +6 -0
  4. package/dist/agent/config/agentConfig.js +2 -0
  5. package/dist/agent/config/agentLoader.cjs +21 -18
  6. package/dist/agent/config/agentLoader.js +22 -19
  7. package/dist/agent/config/toolRegistry.cjs +19 -0
  8. package/dist/agent/config/toolRegistry.d.ts +4 -0
  9. package/dist/agent/config/toolRegistry.js +17 -1
  10. package/dist/agent/middleware/additional-messages.cjs +115 -11
  11. package/dist/agent/middleware/additional-messages.d.ts +9 -0
  12. package/dist/agent/middleware/additional-messages.js +115 -11
  13. package/dist/agent/tests/agentLoader.test.cjs +45 -0
  14. package/dist/agent/tests/agentLoader.test.js +45 -0
  15. package/dist/agent/tests/toolRegistry.test.cjs +2 -0
  16. package/dist/agent/tests/toolRegistry.test.js +2 -0
  17. package/dist/agent/tools/node_invoke.cjs +146 -0
  18. package/dist/agent/tools/node_invoke.d.ts +86 -0
  19. package/dist/agent/tools/node_invoke.js +109 -0
  20. package/dist/cli/commands/gateway.cjs +1 -1
  21. package/dist/cli/commands/gateway.js +1 -1
  22. package/dist/cli/core/agentInvoker.cjs +21 -3
  23. package/dist/cli/core/agentInvoker.d.ts +10 -0
  24. package/dist/cli/core/agentInvoker.js +21 -3
  25. package/dist/gateway/http/nodes.cjs +247 -0
  26. package/dist/gateway/http/nodes.d.ts +20 -0
  27. package/dist/gateway/http/nodes.js +210 -0
  28. package/dist/gateway/node.cjs +10 -1
  29. package/dist/gateway/node.d.ts +10 -1
  30. package/dist/gateway/node.js +10 -1
  31. package/dist/gateway/server.cjs +414 -27
  32. package/dist/gateway/server.d.ts +34 -0
  33. package/dist/gateway/server.js +408 -27
  34. package/dist/gateway/types.d.ts +6 -1
  35. package/dist/gateway/validation.cjs +2 -0
  36. package/dist/gateway/validation.d.ts +4 -0
  37. package/dist/gateway/validation.js +2 -0
  38. package/dist/tests/additionalMessageMiddleware.test.cjs +92 -0
  39. package/dist/tests/additionalMessageMiddleware.test.js +92 -0
  40. package/dist/tests/gateway-http-security.test.cjs +277 -0
  41. package/dist/tests/gateway-http-security.test.d.ts +1 -0
  42. package/dist/tests/gateway-http-security.test.js +271 -0
  43. package/dist/tests/gateway-node-mode.test.cjs +174 -0
  44. package/dist/tests/gateway-node-mode.test.d.ts +1 -0
  45. package/dist/tests/gateway-node-mode.test.js +168 -0
  46. package/dist/tests/gateway-origin-policy.test.cjs +60 -0
  47. package/dist/tests/gateway-origin-policy.test.d.ts +1 -0
  48. package/dist/tests/gateway-origin-policy.test.js +54 -0
  49. package/dist/tests/gateway.test.cjs +1 -0
  50. package/dist/tests/gateway.test.js +1 -0
  51. package/dist/tests/node-tools.test.cjs +77 -0
  52. package/dist/tests/node-tools.test.d.ts +1 -0
  53. package/dist/tests/node-tools.test.js +71 -0
  54. package/dist/tests/nodes-api.test.cjs +86 -0
  55. package/dist/tests/nodes-api.test.d.ts +1 -0
  56. package/dist/tests/nodes-api.test.js +80 -0
  57. package/dist/webui/assets/{index-DHbfLOUR.js → index-BMekSELC.js} +106 -106
  58. package/dist/webui/index.html +1 -1
  59. package/package.json +1 -1
@@ -14,7 +14,11 @@ export declare class NodeManager {
14
14
  */
15
15
  registerNode(ws: ServerWebSocket<{
16
16
  nodeId: string;
17
- }>, name: string, capabilities?: string[], sessionId?: string, agentName?: string): Node | null;
17
+ clientId?: string;
18
+ clientType?: string;
19
+ authenticated?: boolean;
20
+ tailscaleUser?: string;
21
+ }>, name: string, capabilities?: string[], sessionId?: string, agentName?: string, clientId?: string): Node | null;
18
22
  /**
19
23
  * Unregister a node
20
24
  */
@@ -27,6 +31,10 @@ export declare class NodeManager {
27
31
  * Get all nodes
28
32
  */
29
33
  getAllNodes(): Node[];
34
+ /**
35
+ * Get all nodes for a stable client ID
36
+ */
37
+ getNodesByClientId(clientId: string): Node[];
30
38
  /**
31
39
  * Get node metadata (without WebSocket)
32
40
  */
@@ -102,6 +110,7 @@ export declare class NodeManager {
102
110
  nodes: {
103
111
  id: string;
104
112
  name: string;
113
+ clientId: string | undefined;
105
114
  groupCount: number;
106
115
  connectedAt: number;
107
116
  lastPing: number | undefined;
@@ -12,12 +12,13 @@ function _define_property(obj, key, value) {
12
12
  }
13
13
  const logger = createLogger();
14
14
  class NodeManager {
15
- registerNode(ws, name, capabilities, sessionId, agentName) {
15
+ registerNode(ws, name, capabilities, sessionId, agentName, clientId) {
16
16
  if (this.nodes.size >= this.maxNodes) return null;
17
17
  const id = this.generateNodeId();
18
18
  const node = {
19
19
  id,
20
20
  name,
21
+ clientId,
21
22
  capabilities,
22
23
  groups: new Set(),
23
24
  connectedAt: Date.now(),
@@ -26,6 +27,7 @@ class NodeManager {
26
27
  agentName
27
28
  };
28
29
  ws.data = {
30
+ ...ws.data,
29
31
  nodeId: id
30
32
  };
31
33
  this.nodes.set(id, node);
@@ -45,12 +47,18 @@ class NodeManager {
45
47
  getAllNodes() {
46
48
  return Array.from(this.nodes.values());
47
49
  }
50
+ getNodesByClientId(clientId) {
51
+ const trimmed = clientId.trim();
52
+ if (!trimmed) return [];
53
+ return Array.from(this.nodes.values()).filter((node)=>node.clientId === trimmed);
54
+ }
48
55
  getNodeMetadata(nodeId) {
49
56
  const node = this.nodes.get(nodeId);
50
57
  if (!node) return;
51
58
  return {
52
59
  id: node.id,
53
60
  name: node.name,
61
+ clientId: node.clientId,
54
62
  capabilities: node.capabilities,
55
63
  groups: node.groups,
56
64
  connectedAt: node.connectedAt,
@@ -162,6 +170,7 @@ class NodeManager {
162
170
  nodes: Array.from(this.nodes.values()).map((n)=>({
163
171
  id: n.id,
164
172
  name: n.name,
173
+ clientId: n.clientId,
165
174
  groupCount: n.groups.size,
166
175
  connectedAt: n.connectedAt,
167
176
  lastPing: n.lastPing,