@ductape/mcp 0.1.29 → 0.1.30

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.
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-client.d.ts","sourceRoot":"","sources":["../src/proxy-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,4BAA4B,CAAC;AAEtD,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,KAAK,GACL,WAAW,GACX,OAAO,GACP,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,MAAM,GACN,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,SAAS,CAAC;AAUd;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,GAAG,OAAO,EAC/C,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,EAAO,GACrB,OAAO,CAAC,CAAC,CAAC,CAuBZ;AAED,MAAM,WAAW,iCAAiC;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,kCAAkC;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AASD,wBAAsB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYvE;AAED,wBAAsB,yBAAyB,CAAC,CAAC,GAAG,kCAAkC,EACpF,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,CAAC,CAAC,CAoBZ"}
1
+ {"version":3,"file":"proxy-client.d.ts","sourceRoot":"","sources":["../src/proxy-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,4BAA4B,CAAC;AAEtD,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,KAAK,GACL,WAAW,GACX,OAAO,GACP,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,MAAM,GACN,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,SAAS,CAAC;AAUd;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,GAAG,OAAO,EAC/C,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,EAAO,GACrB,OAAO,CAAC,CAAC,CAAC,CAuBZ;AAED,MAAM,WAAW,iCAAiC;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,kCAAkC;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AASD,wBAAsB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYvE;AA4BD,wBAAsB,yBAAyB,CAAC,CAAC,GAAG,kCAAkC,EACpF,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,CAAC,CAAC,CAwBZ"}
@@ -41,14 +41,43 @@ export async function getAssetSchemas(module) {
41
41
  }
42
42
  return body.data;
43
43
  }
44
+ function normalizeTargets(targets) {
45
+ const result = { ...targets };
46
+ const renames = [
47
+ ['feature', 'feature_tag'],
48
+ ['database', 'database_tag'],
49
+ ['action', 'action_tag'],
50
+ ['app', 'access_tag'],
51
+ ['graph', 'graph_tag'],
52
+ ['vector', 'vector_tag'],
53
+ ['storage', 'storage_tag'],
54
+ ['notification', 'notification_tag'],
55
+ ['message', 'message_tag'],
56
+ ['broker', 'broker_tag'],
57
+ ['topic', 'topic_tag'],
58
+ ['session', 'session_tag'],
59
+ ['cache', 'cache_tag'],
60
+ ];
61
+ for (const [from, to] of renames) {
62
+ if (from in result && !(to in result)) {
63
+ result[to] = result[from];
64
+ delete result[from];
65
+ }
66
+ }
67
+ return result;
68
+ }
44
69
  export async function generateExecutablePayload(request) {
70
+ const normalizedRequest = {
71
+ ...request,
72
+ targets: request.targets ? normalizeTargets(request.targets) : request.targets,
73
+ };
45
74
  const url = `${API_BASE_URL.replace(/\/$/, '')}/integrations/v1/payloads/generate`;
46
75
  const res = await fetch(url, {
47
76
  method: 'POST',
48
77
  headers: {
49
78
  'Content-Type': 'application/json',
50
79
  },
51
- body: JSON.stringify(request),
80
+ body: JSON.stringify(normalizedRequest),
52
81
  });
53
82
  const body = (await res.json());
54
83
  const detail = (b) => b.message ?? (typeof b.errors === 'string' ? b.errors : b.errors ? JSON.stringify(b.errors) : undefined);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ductape/mcp",
3
- "version": "0.1.29",
3
+ "version": "0.1.30",
4
4
  "description": "MCP server that exposes Ductape SDK operations via the backend proxy",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -106,16 +106,46 @@ export async function getAssetSchemas(module?: string): Promise<unknown> {
106
106
  return body.data;
107
107
  }
108
108
 
109
+ function normalizeTargets(targets: Record<string, unknown>): Record<string, unknown> {
110
+ const result = { ...targets };
111
+ const renames: Array<[string, string]> = [
112
+ ['feature', 'feature_tag'],
113
+ ['database', 'database_tag'],
114
+ ['action', 'action_tag'],
115
+ ['app', 'access_tag'],
116
+ ['graph', 'graph_tag'],
117
+ ['vector', 'vector_tag'],
118
+ ['storage', 'storage_tag'],
119
+ ['notification', 'notification_tag'],
120
+ ['message', 'message_tag'],
121
+ ['broker', 'broker_tag'],
122
+ ['topic', 'topic_tag'],
123
+ ['session', 'session_tag'],
124
+ ['cache', 'cache_tag'],
125
+ ];
126
+ for (const [from, to] of renames) {
127
+ if (from in result && !(to in result)) {
128
+ result[to] = result[from];
129
+ delete result[from];
130
+ }
131
+ }
132
+ return result;
133
+ }
134
+
109
135
  export async function generateExecutablePayload<T = IGenerateExecutablePayloadResponse>(
110
136
  request: IGenerateExecutablePayloadRequest,
111
137
  ): Promise<T> {
138
+ const normalizedRequest = {
139
+ ...request,
140
+ targets: request.targets ? normalizeTargets(request.targets as Record<string, unknown>) : request.targets,
141
+ };
112
142
  const url = `${API_BASE_URL.replace(/\/$/, '')}/integrations/v1/payloads/generate`;
113
143
  const res = await fetch(url, {
114
144
  method: 'POST',
115
145
  headers: {
116
146
  'Content-Type': 'application/json',
117
147
  },
118
- body: JSON.stringify(request),
148
+ body: JSON.stringify(normalizedRequest),
119
149
  });
120
150
 
121
151
  const body = (await res.json()) as GenericResponse<T>;