promptkaizen-agent 0.3.5 → 0.3.6
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/dist/env-detect.d.ts +1 -1
- package/dist/env-detect.d.ts.map +1 -1
- package/dist/env-detect.js +29 -15
- package/dist/env-detect.js.map +1 -1
- package/dist/parser.d.ts +7 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +49 -0
- package/dist/parser.js.map +1 -1
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js +9 -3
- package/dist/source.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/suppress-sea-warning.d.ts +0 -2
- package/dist/suppress-sea-warning.d.ts.map +0 -1
- package/dist/suppress-sea-warning.js +0 -21
- package/dist/suppress-sea-warning.js.map +0 -1
package/dist/env-detect.d.ts
CHANGED
package/dist/env-detect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-detect.d.ts","sourceRoot":"","sources":["../src/env-detect.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"env-detect.d.ts","sourceRoot":"","sources":["../src/env-detect.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,OAAO,GAAG,YAAY,CAAA;AAEjE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,kBAAkB;IAClB,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,WAAW,EAAE,OAAO,CAAA;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA6BD,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,OAAO,CAO/E;AAyED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2C/F;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAgB1E"}
|
package/dist/env-detect.js
CHANGED
|
@@ -10,9 +10,20 @@ const promises_1 = __importDefault(require("fs/promises"));
|
|
|
10
10
|
const fs_1 = __importDefault(require("fs"));
|
|
11
11
|
const os_1 = __importDefault(require("os"));
|
|
12
12
|
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const JSONL_META = {
|
|
14
|
+
globSuffix: '**/*.jsonl',
|
|
15
|
+
match: (n) => n.endsWith('.jsonl'),
|
|
16
|
+
};
|
|
13
17
|
const TOOL_META = {
|
|
14
|
-
claude_code: { label: 'Claude Code', rel: ['.claude', 'projects'] },
|
|
15
|
-
codex: { label: 'Codex', rel: ['.codex', 'sessions'] },
|
|
18
|
+
claude_code: { label: 'Claude Code', rel: ['.claude', 'projects'], ...JSONL_META },
|
|
19
|
+
codex: { label: 'Codex', rel: ['.codex', 'sessions'], ...JSONL_META },
|
|
20
|
+
// Gemini CLI: ~/.gemini/tmp/<hash>/chats/session-*.json (単一 JSON。config.json 等を拾わない命名)。
|
|
21
|
+
gemini_cli: {
|
|
22
|
+
label: 'Gemini CLI',
|
|
23
|
+
rel: ['.gemini', 'tmp'],
|
|
24
|
+
globSuffix: '**/session-*.json',
|
|
25
|
+
match: (n) => n.startsWith('session-') && n.endsWith('.json'),
|
|
26
|
+
},
|
|
16
27
|
};
|
|
17
28
|
/** WSL 上で動いているか (/proc/version に microsoft/WSL を含むか)。 */
|
|
18
29
|
function detectWSL(platform = process.platform) {
|
|
@@ -40,15 +51,15 @@ function listWindowsUserDirs() {
|
|
|
40
51
|
}
|
|
41
52
|
}
|
|
42
53
|
/** base を ~ 圧縮した watch glob を返す。home 配下なら `~/...`、それ以外は絶対パス。 */
|
|
43
|
-
function toWatchGlob(base, home) {
|
|
54
|
+
function toWatchGlob(base, home, globSuffix) {
|
|
44
55
|
const norm = base.replace(/\\/g, '/');
|
|
45
56
|
const h = home.replace(/\\/g, '/').replace(/\/+$/, '');
|
|
46
57
|
const rel = norm === h ? '' : norm.startsWith(h + '/') ? norm.slice(h.length + 1) : null;
|
|
47
58
|
const head = rel === null ? norm : rel === '' ? '~' : `~/${rel}`;
|
|
48
|
-
return `${head}
|
|
59
|
+
return `${head}/${globSuffix}`;
|
|
49
60
|
}
|
|
50
|
-
/** base ディレクトリの project 数 (直下のディレクトリ) と
|
|
51
|
-
async function countDir(base, maxDepth) {
|
|
61
|
+
/** base ディレクトリの project 数 (直下のディレクトリ) と match に合うセッション数を数える。 */
|
|
62
|
+
async function countDir(base, maxDepth, match = (n) => n.endsWith('.jsonl')) {
|
|
52
63
|
let exists = false;
|
|
53
64
|
let projects = 0;
|
|
54
65
|
let sessions = 0;
|
|
@@ -62,14 +73,14 @@ async function countDir(base, maxDepth) {
|
|
|
62
73
|
}
|
|
63
74
|
// 直下のディレクトリ数 = projects (Claude の project 単位)。
|
|
64
75
|
projects = top.filter((e) => e.isDirectory() && !e.isSymbolicLink()).length;
|
|
65
|
-
//
|
|
76
|
+
// セッションファイルを再帰カウント (symlink は辿らない / 深さ上限)。
|
|
66
77
|
const walk = async (dir, entries, depth) => {
|
|
67
78
|
for (const e of entries) {
|
|
68
79
|
if (e.isSymbolicLink())
|
|
69
80
|
continue;
|
|
70
81
|
const full = path_1.default.join(dir, e.name);
|
|
71
82
|
if (e.isFile()) {
|
|
72
|
-
if (e.name.toLowerCase()
|
|
83
|
+
if (match(e.name.toLowerCase()))
|
|
73
84
|
sessions++;
|
|
74
85
|
}
|
|
75
86
|
else if (e.isDirectory() && depth < maxDepth) {
|
|
@@ -99,25 +110,27 @@ async function detectEnvironment(opts = {}) {
|
|
|
99
110
|
const windowsUserDirs = opts.windowsUserDirs ?? (isWSL ? listWindowsUserDirs() : []);
|
|
100
111
|
const tools = [];
|
|
101
112
|
for (const tool of Object.keys(TOOL_META)) {
|
|
102
|
-
const { label, rel } = TOOL_META[tool];
|
|
113
|
+
const { label, rel, globSuffix, match } = TOOL_META[tool];
|
|
103
114
|
const candidates = [path_1.default.join(home, ...rel), ...windowsUserDirs.map((d) => path_1.default.join(d, ...rel))];
|
|
104
115
|
let chosen = null;
|
|
105
116
|
for (const base of candidates) {
|
|
106
|
-
const counts = await countDir(base, maxDepth);
|
|
117
|
+
const counts = await countDir(base, maxDepth, match);
|
|
107
118
|
if (!counts.exists)
|
|
108
119
|
continue;
|
|
109
120
|
// 存在する候補のうちセッション数が最大のものを採用 (同数なら先勝ち = ホーム優先)。
|
|
110
121
|
if (!chosen || counts.sessions > chosen.counts.sessions)
|
|
111
122
|
chosen = { base, counts };
|
|
112
123
|
}
|
|
124
|
+
// project 概念があるのは Claude Code のみ (codex / gemini_cli は 0)。
|
|
125
|
+
const hasProjects = tool === 'claude_code';
|
|
113
126
|
tools.push({
|
|
114
127
|
tool,
|
|
115
128
|
label,
|
|
116
129
|
basePath: chosen?.base ?? null,
|
|
117
130
|
present: chosen !== null,
|
|
118
|
-
projects:
|
|
131
|
+
projects: hasProjects ? (chosen?.counts.projects ?? 0) : 0,
|
|
119
132
|
sessions: chosen?.counts.sessions ?? 0,
|
|
120
|
-
watchGlob: chosen ? toWatchGlob(chosen.base, home) : null,
|
|
133
|
+
watchGlob: chosen ? toWatchGlob(chosen.base, home, globSuffix) : null,
|
|
121
134
|
});
|
|
122
135
|
}
|
|
123
136
|
const detected = tools.filter((t) => t.present);
|
|
@@ -139,9 +152,10 @@ function formatDetectionSummary(env) {
|
|
|
139
152
|
lines.push(` ${t.label.padEnd(12)}: 未検出`);
|
|
140
153
|
continue;
|
|
141
154
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
155
|
+
// project 概念があるのは Claude Code のみ。codex / gemini_cli は sessions のみ表示。
|
|
156
|
+
const count = t.tool === 'claude_code'
|
|
157
|
+
? `${t.projects.toLocaleString()} projects / ${t.sessions.toLocaleString()} sessions`
|
|
158
|
+
: `${t.sessions.toLocaleString()} sessions`;
|
|
145
159
|
lines.push(` ${t.label.padEnd(12)}: ${count} (${t.basePath})`);
|
|
146
160
|
}
|
|
147
161
|
if (env.isWSL)
|
package/dist/env-detect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-detect.js","sourceRoot":"","sources":["../src/env-detect.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"env-detect.js","sourceRoot":"","sources":["../src/env-detect.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts
CHANGED
|
@@ -9,6 +9,13 @@ export declare class JsonlParser {
|
|
|
9
9
|
private offsetStore;
|
|
10
10
|
constructor(offsetStore: OffsetStore);
|
|
11
11
|
parseDelta(filepath: string): Promise<ParseResult>;
|
|
12
|
+
/**
|
|
13
|
+
* Gemini CLI のセッション JSON ({ sessionId, messages: [{id,timestamp,type,content}] }) を
|
|
14
|
+
* 増分処理する。ファイル全体が毎回書き換わるので offset = 既処理メッセージ数 として扱い、
|
|
15
|
+
* messages[startOffset:] を新規 entry として返す。consumed = 新規メッセージ数。
|
|
16
|
+
* raw には message オブジェクトをそのまま入れ、後段の検知/マスク/cloud normalize に渡す。
|
|
17
|
+
*/
|
|
18
|
+
private parseGeminiDelta;
|
|
12
19
|
/**
|
|
13
20
|
* filepath を 1 行ずつ streaming で読み、0-based 行番号が startOffset 以上の行だけを返す。
|
|
14
21
|
* readline は末尾改行のみの空行を emit しない (= 旧実装の trailing pop と等価) し、
|
package/dist/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAOD,qBAAa,WAAW;IACV,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAEtC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAOD,qBAAa,WAAW;IACV,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAEtC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiFxD;;;;;OAKG;YACW,gBAAgB;IA0C9B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAiBrB"}
|
package/dist/parser.js
CHANGED
|
@@ -20,6 +20,11 @@ class JsonlParser {
|
|
|
20
20
|
}
|
|
21
21
|
async parseDelta(filepath) {
|
|
22
22
|
const source = (0, source_1.detectSource)(filepath);
|
|
23
|
+
// Gemini CLI は単一 JSON (messages 配列) でファイル全体が毎回書き換わるため、
|
|
24
|
+
// JSONL の行 offset ではなく「処理済みメッセージ数」を offset として増分処理する。
|
|
25
|
+
if (source === 'gemini_cli') {
|
|
26
|
+
return this.parseGeminiDelta(filepath, source);
|
|
27
|
+
}
|
|
23
28
|
let size;
|
|
24
29
|
try {
|
|
25
30
|
size = (await promises_1.default.stat(filepath)).size;
|
|
@@ -89,6 +94,50 @@ class JsonlParser {
|
|
|
89
94
|
}
|
|
90
95
|
return { entries, consumed };
|
|
91
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Gemini CLI のセッション JSON ({ sessionId, messages: [{id,timestamp,type,content}] }) を
|
|
99
|
+
* 増分処理する。ファイル全体が毎回書き換わるので offset = 既処理メッセージ数 として扱い、
|
|
100
|
+
* messages[startOffset:] を新規 entry として返す。consumed = 新規メッセージ数。
|
|
101
|
+
* raw には message オブジェクトをそのまま入れ、後段の検知/マスク/cloud normalize に渡す。
|
|
102
|
+
*/
|
|
103
|
+
async parseGeminiDelta(filepath, source) {
|
|
104
|
+
let text;
|
|
105
|
+
try {
|
|
106
|
+
// Gemini のチャット JSON は小さい (会話 1 本) ので一括読みで十分。
|
|
107
|
+
text = await promises_1.default.readFile(filepath, 'utf8');
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
logger_1.logger.warn('parseDelta(gemini): failed to read file', { filepath, error: e.message });
|
|
111
|
+
return { entries: [], consumed: 0 };
|
|
112
|
+
}
|
|
113
|
+
let doc;
|
|
114
|
+
try {
|
|
115
|
+
doc = JSON.parse(text);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// 書き込み途中で不完全な JSON のことがある。次回 change を待つ (offset は進めない)。
|
|
119
|
+
return { entries: [], consumed: 0 };
|
|
120
|
+
}
|
|
121
|
+
const messages = doc && typeof doc === 'object' && Array.isArray(doc.messages)
|
|
122
|
+
? doc.messages
|
|
123
|
+
: null;
|
|
124
|
+
if (!messages) {
|
|
125
|
+
logger_1.logger.warn('parseDelta(gemini): no messages array', { filepath });
|
|
126
|
+
return { entries: [], consumed: 0 };
|
|
127
|
+
}
|
|
128
|
+
const startOffset = this.offsetStore.get(filepath);
|
|
129
|
+
if (messages.length <= startOffset) {
|
|
130
|
+
// 既処理分以下 (再書き込みで縮んだ等)。新規なし。
|
|
131
|
+
return { entries: [], consumed: 0 };
|
|
132
|
+
}
|
|
133
|
+
const parsedAt = new Date().toISOString();
|
|
134
|
+
const entries = [];
|
|
135
|
+
for (let i = startOffset; i < messages.length; i++) {
|
|
136
|
+
entries.push({ filepath, lineNumber: i, raw: messages[i], parsedAt, source });
|
|
137
|
+
}
|
|
138
|
+
// consumed は delta (新規メッセージ数)。offsetStore.advance が加算するため total ではなく差分を返す。
|
|
139
|
+
return { entries, consumed: messages.length - startOffset };
|
|
140
|
+
}
|
|
92
141
|
/**
|
|
93
142
|
* filepath を 1 行ずつ streaming で読み、0-based 行番号が startOffset 以上の行だけを返す。
|
|
94
143
|
* readline は末尾改行のみの空行を emit しない (= 旧実装の trailing pop と等価) し、
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/source.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAmBhD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAQhE"}
|
package/dist/source.js
CHANGED
|
@@ -14,9 +14,11 @@ const path_1 = __importDefault(require("path"));
|
|
|
14
14
|
// entry がどちらのツール由来かを filepath から判定する。
|
|
15
15
|
//
|
|
16
16
|
// 判定基準 (順に評価):
|
|
17
|
-
// 1. ファイル名が `rollout-` で始まる
|
|
18
|
-
// 2. パスに `/.codex/` を含む (CODEX_HOME 既定)
|
|
19
|
-
// 3.
|
|
17
|
+
// 1. ファイル名が `rollout-` で始まる → codex (Codex の rollout JSONL 命名)
|
|
18
|
+
// 2. パスに `/.codex/` を含む (CODEX_HOME 既定) → codex
|
|
19
|
+
// 3. ファイル名が `session-` で始まり .json → gemini_cli (Gemini CLI の chats/session-*.json)
|
|
20
|
+
// 4. パスに `/.gemini/` を含む → gemini_cli
|
|
21
|
+
// 5. それ以外 → claude_code (既定)
|
|
20
22
|
//
|
|
21
23
|
// CODEX_HOME を変更しても rollout ファイル名は不変なので (1) で拾える。
|
|
22
24
|
function detectSource(filepath) {
|
|
@@ -26,6 +28,10 @@ function detectSource(filepath) {
|
|
|
26
28
|
return 'codex';
|
|
27
29
|
if (normalized.includes('/.codex/'))
|
|
28
30
|
return 'codex';
|
|
31
|
+
if (base.startsWith('session-') && base.endsWith('.json'))
|
|
32
|
+
return 'gemini_cli';
|
|
33
|
+
if (normalized.includes('/.gemini/'))
|
|
34
|
+
return 'gemini_cli';
|
|
29
35
|
return 'claude_code';
|
|
30
36
|
}
|
|
31
37
|
//# sourceMappingURL=source.js.map
|
package/dist/source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":";;;;;AAoBA,oCAQC;AA5BD,gDAAuB;AAGvB,gDAAgD;AAChD,YAAY;AACZ,gDAAgD;AAChD,EAAE;AACF,wDAAwD;AACxD,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,eAAe;AACf,yEAAyE;AACzE,mDAAmD;AACnD,yFAAyF;AACzF,yDAAyD;AACzD,iEAAiE;AACjE,EAAE;AACF,kDAAkD;AAElD,SAAgB,YAAY,CAAC,QAAgB;IAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAA;IAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAA;IACnD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,YAAY,CAAA;IAC9E,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,YAAY,CAAA;IACzD,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -4,9 +4,11 @@ import type { ReductionMeta } from './hooks/reduction';
|
|
|
4
4
|
/**
|
|
5
5
|
* 観測対象の収集経路。
|
|
6
6
|
* - claude_code / codex: chokidar による JSONL 監視 (filepath から判定)
|
|
7
|
+
* - gemini_cli: Gemini CLI の ~/.gemini/tmp/<hash>/chats/session-*.json 監視
|
|
8
|
+
* (JSONL でなく単一 JSON の messages 配列。offset は処理済みメッセージ数で追跡)
|
|
7
9
|
* - hook: Claude Code 公式 hooks 経由 (Issue #67、事前ブロック対応)
|
|
8
10
|
*/
|
|
9
|
-
export type ObservationSource = 'claude_code' | 'codex' | 'hook';
|
|
11
|
+
export type ObservationSource = 'claude_code' | 'codex' | 'gemini_cli' | 'hook';
|
|
10
12
|
export interface ParsedEntry {
|
|
11
13
|
filepath: string;
|
|
12
14
|
lineNumber: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,CAAA;AAE/E,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,OAAO,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,MAAM,EAAE,iBAAiB,CAAA;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAA;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,aAAa,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,WAAW,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const AGENT_VERSION = "0.3.
|
|
1
|
+
export declare const AGENT_VERSION = "0.3.6";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"suppress-sea-warning.d.ts","sourceRoot":"","sources":["../src/suppress-sea-warning.ts"],"names":[],"mappings":""}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// Node SEA (スタンドアロン exe) では、埋め込み main script の require が組み込みモジュールしか
|
|
4
|
-
// 解決できず、非組み込みを require すると警告を出す。chokidar の `require('fsevents')` など、
|
|
5
|
-
// 意図的に同梱しないネイティブ依存で必ず出るため、**スタンドアロン時のみ**この特定警告だけ抑止する。
|
|
6
|
-
// (npm 配布版では何もしない=他の警告は通常どおり表示)
|
|
7
|
-
//
|
|
8
|
-
// 注意: 副作用 import。chokidar 等が読み込まれる前に実行する必要があるため、
|
|
9
|
-
// index.ts の最初の import にすること。
|
|
10
|
-
const standalone_1 = require("./standalone");
|
|
11
|
-
if ((0, standalone_1.isStandalone)()) {
|
|
12
|
-
const original = process.emitWarning.bind(process);
|
|
13
|
-
const filtered = (warning, ...args) => {
|
|
14
|
-
const msg = typeof warning === 'string' ? warning : warning?.message;
|
|
15
|
-
if (msg && msg.includes('single-executable applications'))
|
|
16
|
-
return;
|
|
17
|
-
original(warning, ...args);
|
|
18
|
-
};
|
|
19
|
-
process.emitWarning = filtered;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=suppress-sea-warning.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"suppress-sea-warning.js","sourceRoot":"","sources":["../src/suppress-sea-warning.ts"],"names":[],"mappings":";;AAAA,oEAAoE;AACpE,qEAAqE;AACrE,sDAAsD;AACtD,gCAAgC;AAChC,EAAE;AACF,iDAAiD;AACjD,8BAA8B;AAC9B,6CAA2C;AAE3C,IAAI,IAAA,yBAAY,GAAE,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,CAAC,OAAuB,EAAE,GAAG,IAAe,EAAQ,EAAE;QACrE,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAA;QACpE,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAAE,OAC1D;QAAC,QAAsC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;IAC5D,CAAC,CAAA;IACD,OAAO,CAAC,WAAW,GAAG,QAAsC,CAAA;AAC9D,CAAC"}
|