@horizon_works/banto 0.8.1 → 0.8.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.
package/license/client.js CHANGED
@@ -98,10 +98,16 @@ function post(url, body, apiKey, timeoutMs = 4000) {
98
98
  apiKey ? { apikey: apiKey, Authorization: 'Bearer ' + apiKey } : {}
99
99
  ) },
100
100
  (res) => {
101
- let b = '';
102
- res.on('data', (d) => (b += d));
101
+ // 🚨★**バイトのまま溜めて、最後に1回だけ文字へ直す**(2026-08-28)。
102
+ // ★前は `b += d` で、届いたかたまりを**その場で文字に直していた**。
103
+ // ★★日本語は1文字3バイト。★かたまりの切れ目が文字の途中に来ると、
104
+ // ★そこだけ「」に化ける(★棚の説明で実際に起きた)。
105
+ // ★★通信は成功し、JSON も読めるので、**どこにも異常が出ない**。
106
+ const 粒 = [];
107
+ res.on('data', (d) => 粒.push(d));
108
+ const 読む = () => Buffer.concat(粒).toString('utf8');
103
109
  res.on('end', () => {
104
- try { resolve(JSON.parse(b)); } catch (e) { reject(new Error('応答を読めません')); }
110
+ try { resolve(JSON.parse(読む())); } catch (e) { reject(new Error('応答を読めません')); }
105
111
  });
106
112
  }
107
113
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@horizon_works/banto",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "AI番頭のOS。ルール・記憶・検査を1本のMCPで配ります。中身をクラウドへ渡さずに検査できます。",
5
5
  "keywords": [
6
6
  "mcp",
package/server.js CHANGED
@@ -1188,11 +1188,17 @@ function supPost(fn, body) {
1188
1188
  apikey: anonKey, Authorization: 'Bearer ' + anonKey,
1189
1189
  },
1190
1190
  }, (res) => {
1191
- let b = '';
1192
- res.on('data', (d) => (b += d));
1191
+ // 🚨★**バイトのまま溜めて、最後に1回だけ文字へ直す**(2026-08-28)。
1192
+ // ★前は `b += d` で、届いたかたまりを**その場で文字に直していた**。
1193
+ // ★★日本語は1文字3バイト。★かたまりの切れ目が文字の途中に来ると、
1194
+ // ★そこだけ「」に化ける(★棚の説明で実際に起きた)。
1195
+ // ★★通信は成功し、JSON も読めるので、**どこにも異常が出ない**。
1196
+ const 粒 = [];
1197
+ res.on('data', (d) => 粒.push(d));
1198
+ const 読む = () => Buffer.concat(粒).toString('utf8');
1193
1199
  res.on('end', () => {
1194
1200
  let j;
1195
- try { j = JSON.parse(b); } catch (_) { return reject(new Error('応答を読めません')); }
1201
+ try { j = JSON.parse(読む()); } catch (_) { return reject(new Error('応答を読めません')); }
1196
1202
  if (res.statusCode >= 400) {
1197
1203
  return reject(new Error((j && (j.message || j.hint)) || ('HTTP ' + res.statusCode)));
1198
1204
  }