@make-u-free/migi 0.5.9 → 0.5.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@make-u-free/migi",
3
- "version": "0.5.9",
3
+ "version": "0.5.11",
4
4
  "description": "Your AI right-hand agent. Works anywhere, with any LLM API.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/agent.js CHANGED
@@ -61,21 +61,13 @@ ${userNameLine}
61
61
  - 「どうしますか?」と聞く前に、自分でできることをやりきる
62
62
  - 完了したら1〜2文で報告。途中経過は出さない
63
63
 
64
- ## 文脈の自律的な構築と維持
64
+ ## 文脈の自律的な構築
65
65
 
66
- ### 探索
67
66
  - 作業前に、関連フォルダの内容を把握していないと感じたら、list_files で探索する
68
67
  - 「このフォルダに何があるか分からない」状態で作業しない
69
68
  - 過去の記録・決定事項が不明なときは search_content で能動的に探す
70
69
  - 「たぶんこうだろう」で進めるより、read_file で確認してから進める
71
70
 
72
- ### MIGI.md の維持(重要)
73
- - プロジェクトフォルダで重要な作業をしたら、そのフォルダの MIGI.md を必ず更新する
74
- - MIGI.md に書く内容: プロジェクト概要・重要な決定・現在の状況・次にやること・参照すべきファイル
75
- - MIGI.md がないフォルダで初めて作業した場合、作業後に作成する
76
- - MIGI.md は「次回セッションの自分へのブリーフィング」として書く。読み返したとき即座に文脈が戻るように
77
- - セッション再開時は、該当フォルダの MIGI.md をまず読んでから作業を始める
78
-
79
71
  ## メモリと文脈の継続
80
72
  ワークスペースメモリは ${cwd}/.migi/memory/ に構造化して保存する:
81
73
  - projects.md ── 進行中の仕事・状況
package/src/tools.js CHANGED
@@ -134,14 +134,22 @@ function extractImagesFromPdf(buf) {
134
134
  const images = []
135
135
  let i = 0
136
136
 
137
- while (i < buf.length - 1) {
138
- // JPEG: FF D8 で始まり FF D9 で終わる
139
- if (buf[i] === 0xFF && buf[i + 1] === 0xD8) {
140
- const eoiIdx = buf.indexOf(Buffer.from([0xFF, 0xD9]), i + 2)
141
- if (eoiIdx === -1) break
142
- images.push({ data: buf.slice(i, eoiIdx + 2), mime: 'image/jpeg' })
143
- i = eoiIdx + 2
144
- continue
137
+ while (i < buf.length - 3) {
138
+ // JPEG: FF D8 で始まり、直後に FF E0〜EF(APPマーカー)か FF DB(DQT)が続く本物だけ拾う
139
+ if (buf[i] === 0xFF && buf[i + 1] === 0xD8 && buf[i + 2] === 0xFF) {
140
+ const nextMarker = buf[i + 3]
141
+ const isApp = nextMarker >= 0xE0 && nextMarker <= 0xEF // JFIF / EXIF 等
142
+ const isDqt = nextMarker === 0xDB // 量子化テーブル
143
+ if (isApp || isDqt) {
144
+ const eoiIdx = buf.indexOf(Buffer.from([0xFF, 0xD9]), i + 4)
145
+ if (eoiIdx === -1) break
146
+ const data = buf.slice(i, eoiIdx + 2)
147
+ if (data.length > 1024) { // 1KB未満はアイコン等のゴミなので除外
148
+ images.push({ data, mime: 'image/jpeg' })
149
+ }
150
+ i = eoiIdx + 2
151
+ continue
152
+ }
145
153
  }
146
154
 
147
155
  // PNG: 89 50 4E 47 0D 0A 1A 0A で始まる
@@ -152,7 +160,10 @@ function extractImagesFromPdf(buf) {
152
160
  ) {
153
161
  const iend = buf.indexOf(Buffer.from([0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82]), i + 8)
154
162
  if (iend === -1) break
155
- images.push({ data: buf.slice(i, iend + 8), mime: 'image/png' })
163
+ const data = buf.slice(i, iend + 8)
164
+ if (data.length > 1024) {
165
+ images.push({ data, mime: 'image/png' })
166
+ }
156
167
  i = iend + 8
157
168
  continue
158
169
  }