@nordsym/apiclaw 1.3.1 → 1.3.3

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":"open-apis.d.ts","sourceRoot":"","sources":["../src/open-apis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;CAC7D;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA0IlD,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwF7F;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,CAO3G"}
1
+ {"version":3,"file":"open-apis.d.ts","sourceRoot":"","sources":["../src/open-apis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;CAC7D;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA0HlD,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqI7F;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,CAO3G"}
package/dist/open-apis.js CHANGED
@@ -112,29 +112,15 @@ export const openAPIs = {
112
112
  },
113
113
  },
114
114
  },
115
- // Kroki - Diagrams as code (returns URL, not JSON)
115
+ // Kroki - Diagrams as code
116
116
  kroki: {
117
117
  name: 'Kroki',
118
- description: 'Generate diagram URLs from text (Mermaid, PlantUML, GraphViz, C4)',
118
+ description: 'Generate diagrams from text. Supports: mermaid, d2, plantuml, graphviz, c4plantuml, blockdiag, bpmn. D2 is SVG-only.',
119
119
  baseUrl: 'https://kroki.io',
120
120
  actions: {
121
121
  render: {
122
- method: 'GET',
123
- path: () => '', // Custom handling
124
- transform: (_, params) => {
125
- const type = params.type || 'mermaid';
126
- const format = params.format || 'svg';
127
- const diagram = params.diagram || '';
128
- // Base64url encode the diagram
129
- const encoded = Buffer.from(diagram).toString('base64url');
130
- const url = `https://kroki.io/${type}/${format}/${encoded}`;
131
- return {
132
- url,
133
- type,
134
- format,
135
- note: 'Open this URL to see/download the diagram',
136
- };
137
- },
122
+ method: 'POST',
123
+ path: () => '', // Custom handling below
138
124
  },
139
125
  },
140
126
  },
@@ -174,10 +160,10 @@ export async function executeOpenAPI(providerId, action, params) {
174
160
  };
175
161
  }
176
162
  try {
177
- // Special handling for Kroki - no fetch needed, just compute URL
163
+ // Special handling for Kroki - use POST to get actual image data
178
164
  if (providerId === 'kroki') {
179
165
  const type = params.type || 'mermaid';
180
- const format = params.format || 'svg';
166
+ let format = params.format || 'svg';
181
167
  const diagram = params.diagram || '';
182
168
  if (!diagram) {
183
169
  return {
@@ -187,20 +173,65 @@ export async function executeOpenAPI(providerId, action, params) {
187
173
  error: 'Missing required param: diagram',
188
174
  };
189
175
  }
190
- const encoded = Buffer.from(diagram).toString('base64url');
191
- const diagramUrl = `https://kroki.io/${type}/${format}/${encoded}`;
192
- return {
193
- success: true,
194
- provider: providerId,
195
- action,
196
- data: {
197
- url: diagramUrl,
198
- type,
199
- format,
200
- supported_types: ['mermaid', 'plantuml', 'graphviz', 'c4plantuml', 'blockdiag', 'bpmn', 'excalidraw'],
201
- supported_formats: ['svg', 'png', 'pdf'],
202
- },
203
- };
176
+ // D2 only supports SVG
177
+ if (type === 'd2' && format !== 'svg') {
178
+ format = 'svg';
179
+ }
180
+ try {
181
+ const response = await fetch(`https://kroki.io/${type}/${format}`, {
182
+ method: 'POST',
183
+ headers: { 'Content-Type': 'text/plain' },
184
+ body: diagram,
185
+ });
186
+ if (!response.ok) {
187
+ const err = await response.text();
188
+ return {
189
+ success: false,
190
+ provider: providerId,
191
+ action,
192
+ error: `Kroki error: ${err}`,
193
+ };
194
+ }
195
+ // For SVG, return the content directly; for binary, return base64
196
+ if (format === 'svg') {
197
+ const svg = await response.text();
198
+ return {
199
+ success: true,
200
+ provider: providerId,
201
+ action,
202
+ data: {
203
+ type,
204
+ format: 'svg',
205
+ content: svg,
206
+ content_type: 'image/svg+xml',
207
+ supported_types: ['mermaid', 'd2', 'plantuml', 'graphviz', 'c4plantuml', 'blockdiag', 'bpmn'],
208
+ },
209
+ };
210
+ }
211
+ else {
212
+ const buffer = await response.arrayBuffer();
213
+ const base64 = Buffer.from(buffer).toString('base64');
214
+ return {
215
+ success: true,
216
+ provider: providerId,
217
+ action,
218
+ data: {
219
+ type,
220
+ format,
221
+ content_base64: base64,
222
+ content_type: format === 'png' ? 'image/png' : 'application/pdf',
223
+ },
224
+ };
225
+ }
226
+ }
227
+ catch (e) {
228
+ return {
229
+ success: false,
230
+ provider: providerId,
231
+ action,
232
+ error: e.message || 'Kroki request failed',
233
+ };
234
+ }
204
235
  }
205
236
  const url = config.baseUrl + actionConfig.path(params);
206
237
  const response = await fetch(url, { method: actionConfig.method });
@@ -1 +1 @@
1
- {"version":3,"file":"open-apis.js","sourceRoot":"","sources":["../src/open-apis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-apis.js","sourceRoot":"","sources":["../src/open-apis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAkC;IACrD,wDAAwD;IACxD,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,yDAAyD;QACtE,OAAO,EAAE,6BAA6B;QACtC,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC1F,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK;oBAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,KAAK;oBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC;oBACxC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM;oBACpD,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;aACH;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpF,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC;aACH;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvF,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC;aACH;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa;gBACzB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;aAC5C;SACF;KACF;IAED,+BAA+B;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uDAAuD;QACpE,OAAO,EAAE,kCAAkC;QAC3C,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,GAAG,IAAI,SAAS,kBAAkB,CAAC,CAAC,aAAa,IAAI,KAAK,EAAE;aACjG;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa;aAC1B;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,6EAA6E;gBACxG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG;oBAC/C,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG;oBACjD,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,2BAA2B;iBAChE,CAAC;aACH;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,EAAE,CAAC,kBAAkB;gBAC9B,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;wBAClC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;wBACb,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;wBACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;wBACrB,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe;qBACxC,CAAC,CAAC;iBACJ,CAAC;aACH;SACF;KACF;IAED,+BAA+B;IAC/B,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;gBAClC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpB,EAAE,EAAE,IAAI,CAAC,KAAK;oBACd,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,MAAM,EAAE,IAAI,CAAC,UAAU;oBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC;aACH;SACF;KACF;IAED,2BAA2B;IAC3B,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,sHAAsH;QACnI,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,wBAAwB;aACzC;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,UAAkB;IAC1C,OAAO,UAAU,IAAI,QAAQ,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB,EAClB,MAAc,EACd,MAA2B;IAE3B,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,KAAK,EAAE,qBAAqB,UAAU,EAAE;SACzC,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,KAAK,EAAE,mBAAmB,MAAM,SAAS,UAAU,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC5G,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,iEAAiE;QACjE,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;YACtC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAErC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,UAAU;oBACpB,MAAM;oBACN,KAAK,EAAE,iCAAiC;iBACzC,CAAC;YACJ,CAAC;YAED,uBAAuB;YACvB,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACtC,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,IAAI,MAAM,EAAE,EAAE;oBACjE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;oBACzC,IAAI,EAAE,OAAO;iBACd,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,UAAU;wBACpB,MAAM;wBACN,KAAK,EAAE,gBAAgB,GAAG,EAAE;qBAC7B,CAAC;gBACJ,CAAC;gBAED,kEAAkE;gBAClE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACrB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClC,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,UAAU;wBACpB,MAAM;wBACN,IAAI,EAAE;4BACJ,IAAI;4BACJ,MAAM,EAAE,KAAK;4BACb,OAAO,EAAE,GAAG;4BACZ,YAAY,EAAE,eAAe;4BAC7B,eAAe,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC;yBAC9F;qBACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACtD,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,UAAU;wBACpB,MAAM;wBACN,IAAI,EAAE;4BACJ,IAAI;4BACJ,MAAM;4BACN,cAAc,EAAE,MAAM;4BACtB,YAAY,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB;yBACjE;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,UAAU;oBACpB,MAAM;oBACN,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,sBAAsB;iBAC3C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,UAAU;gBACpB,MAAM;gBACN,KAAK,EAAE,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE;aACzD,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YAC3B,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,IAAI;SACL,CAAC;IACJ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,gBAAgB;SACrC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;KACrC,CAAC,CAAC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nordsym/apiclaw",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "description": "Agent-native API discovery and Direct Call execution via MCP",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/open-apis.ts CHANGED
@@ -129,31 +129,15 @@ export const openAPIs: Record<string, OpenAPIConfig> = {
129
129
  },
130
130
  },
131
131
 
132
- // Kroki - Diagrams as code (returns URL, not JSON)
132
+ // Kroki - Diagrams as code
133
133
  kroki: {
134
134
  name: 'Kroki',
135
- description: 'Generate diagram URLs from text (Mermaid, PlantUML, GraphViz, C4)',
135
+ description: 'Generate diagrams from text. Supports: mermaid, d2, plantuml, graphviz, c4plantuml, blockdiag, bpmn. D2 is SVG-only.',
136
136
  baseUrl: 'https://kroki.io',
137
137
  actions: {
138
138
  render: {
139
- method: 'GET',
140
- path: () => '', // Custom handling
141
- transform: (_, params) => {
142
- const type = params.type || 'mermaid';
143
- const format = params.format || 'svg';
144
- const diagram = params.diagram || '';
145
-
146
- // Base64url encode the diagram
147
- const encoded = Buffer.from(diagram).toString('base64url');
148
- const url = `https://kroki.io/${type}/${format}/${encoded}`;
149
-
150
- return {
151
- url,
152
- type,
153
- format,
154
- note: 'Open this URL to see/download the diagram',
155
- };
156
- },
139
+ method: 'POST',
140
+ path: () => '', // Custom handling below
157
141
  },
158
142
  },
159
143
  },
@@ -204,10 +188,10 @@ export async function executeOpenAPI(
204
188
  }
205
189
 
206
190
  try {
207
- // Special handling for Kroki - no fetch needed, just compute URL
191
+ // Special handling for Kroki - use POST to get actual image data
208
192
  if (providerId === 'kroki') {
209
193
  const type = params.type || 'mermaid';
210
- const format = params.format || 'svg';
194
+ let format = params.format || 'svg';
211
195
  const diagram = params.diagram || '';
212
196
 
213
197
  if (!diagram) {
@@ -219,21 +203,66 @@ export async function executeOpenAPI(
219
203
  };
220
204
  }
221
205
 
222
- const encoded = Buffer.from(diagram).toString('base64url');
223
- const diagramUrl = `https://kroki.io/${type}/${format}/${encoded}`;
206
+ // D2 only supports SVG
207
+ if (type === 'd2' && format !== 'svg') {
208
+ format = 'svg';
209
+ }
224
210
 
225
- return {
226
- success: true,
227
- provider: providerId,
228
- action,
229
- data: {
230
- url: diagramUrl,
231
- type,
232
- format,
233
- supported_types: ['mermaid', 'plantuml', 'graphviz', 'c4plantuml', 'blockdiag', 'bpmn', 'excalidraw'],
234
- supported_formats: ['svg', 'png', 'pdf'],
235
- },
236
- };
211
+ try {
212
+ const response = await fetch(`https://kroki.io/${type}/${format}`, {
213
+ method: 'POST',
214
+ headers: { 'Content-Type': 'text/plain' },
215
+ body: diagram,
216
+ });
217
+
218
+ if (!response.ok) {
219
+ const err = await response.text();
220
+ return {
221
+ success: false,
222
+ provider: providerId,
223
+ action,
224
+ error: `Kroki error: ${err}`,
225
+ };
226
+ }
227
+
228
+ // For SVG, return the content directly; for binary, return base64
229
+ if (format === 'svg') {
230
+ const svg = await response.text();
231
+ return {
232
+ success: true,
233
+ provider: providerId,
234
+ action,
235
+ data: {
236
+ type,
237
+ format: 'svg',
238
+ content: svg,
239
+ content_type: 'image/svg+xml',
240
+ supported_types: ['mermaid', 'd2', 'plantuml', 'graphviz', 'c4plantuml', 'blockdiag', 'bpmn'],
241
+ },
242
+ };
243
+ } else {
244
+ const buffer = await response.arrayBuffer();
245
+ const base64 = Buffer.from(buffer).toString('base64');
246
+ return {
247
+ success: true,
248
+ provider: providerId,
249
+ action,
250
+ data: {
251
+ type,
252
+ format,
253
+ content_base64: base64,
254
+ content_type: format === 'png' ? 'image/png' : 'application/pdf',
255
+ },
256
+ };
257
+ }
258
+ } catch (e: any) {
259
+ return {
260
+ success: false,
261
+ provider: providerId,
262
+ action,
263
+ error: e.message || 'Kroki request failed',
264
+ };
265
+ }
237
266
  }
238
267
 
239
268
  const url = config.baseUrl + actionConfig.path(params);