promptkaizen-agent 0.2.0 → 0.3.0
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/README.md +5 -1
- package/dist/backfill/run.d.ts +15 -0
- package/dist/backfill/run.d.ts.map +1 -0
- package/dist/backfill/run.js +33 -0
- package/dist/backfill/run.js.map +1 -0
- package/dist/backfill/scanner.d.ts +82 -0
- package/dist/backfill/scanner.d.ts.map +1 -0
- package/dist/backfill/scanner.js +271 -0
- package/dist/backfill/scanner.js.map +1 -0
- package/dist/cli/detect.d.ts +2 -0
- package/dist/cli/detect.d.ts.map +1 -0
- package/dist/cli/detect.js +40 -0
- package/dist/cli/detect.js.map +1 -0
- package/dist/cli/disable.d.ts +2 -0
- package/dist/cli/disable.d.ts.map +1 -0
- package/dist/cli/disable.js +44 -0
- package/dist/cli/disable.js.map +1 -0
- package/dist/cli/enable.d.ts +2 -0
- package/dist/cli/enable.d.ts.map +1 -0
- package/dist/cli/enable.js +105 -0
- package/dist/cli/enable.js.map +1 -0
- package/dist/cli/hook.d.ts +2 -0
- package/dist/cli/hook.d.ts.map +1 -0
- package/dist/cli/hook.js +406 -0
- package/dist/cli/hook.js.map +1 -0
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +70 -8
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/install-hooks.d.ts +5 -0
- package/dist/cli/install-hooks.d.ts.map +1 -0
- package/dist/cli/install-hooks.js +132 -0
- package/dist/cli/install-hooks.js.map +1 -0
- package/dist/cli/install-task.d.ts +28 -0
- package/dist/cli/install-task.d.ts.map +1 -0
- package/dist/cli/install-task.js +119 -0
- package/dist/cli/install-task.js.map +1 -0
- package/dist/cli/mcp.d.ts +2 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +148 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/cli/metrics.d.ts +2 -0
- package/dist/cli/metrics.d.ts.map +1 -0
- package/dist/cli/metrics.js +103 -0
- package/dist/cli/metrics.js.map +1 -0
- package/dist/cli/report.d.ts +2 -0
- package/dist/cli/report.d.ts.map +1 -0
- package/dist/cli/report.js +211 -0
- package/dist/cli/report.js.map +1 -0
- package/dist/cli/scan.d.ts +2 -0
- package/dist/cli/scan.d.ts.map +1 -0
- package/dist/cli/scan.js +171 -0
- package/dist/cli/scan.js.map +1 -0
- package/dist/cli/start.d.ts.map +1 -1
- package/dist/cli/start.js +70 -17
- package/dist/cli/start.js.map +1 -1
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +82 -18
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/uninstall-task.d.ts +8 -0
- package/dist/cli/uninstall-task.d.ts.map +1 -0
- package/dist/cli/uninstall-task.js +44 -0
- package/dist/cli/uninstall-task.js.map +1 -0
- package/dist/config.d.ts +172 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +114 -2
- package/dist/config.js.map +1 -1
- package/dist/console-safe.d.ts +21 -0
- package/dist/console-safe.d.ts.map +1 -0
- package/dist/console-safe.js +71 -0
- package/dist/console-safe.js.map +1 -0
- package/dist/detection-secret.d.ts.map +1 -1
- package/dist/detection-secret.js +12 -0
- package/dist/detection-secret.js.map +1 -1
- package/dist/env-detect.d.ts +44 -0
- package/dist/env-detect.d.ts.map +1 -0
- package/dist/env-detect.js +151 -0
- package/dist/env-detect.js.map +1 -0
- package/dist/exec/executor.d.ts +42 -0
- package/dist/exec/executor.d.ts.map +1 -0
- package/dist/exec/executor.js +135 -0
- package/dist/exec/executor.js.map +1 -0
- package/dist/exec/pk-execute.d.ts +30 -0
- package/dist/exec/pk-execute.d.ts.map +1 -0
- package/dist/exec/pk-execute.js +174 -0
- package/dist/exec/pk-execute.js.map +1 -0
- package/dist/exec/policy-fetcher.d.ts +9 -0
- package/dist/exec/policy-fetcher.d.ts.map +1 -0
- package/dist/exec/policy-fetcher.js +46 -0
- package/dist/exec/policy-fetcher.js.map +1 -0
- package/dist/exec/policy.d.ts +32 -0
- package/dist/exec/policy.d.ts.map +1 -0
- package/dist/exec/policy.js +88 -0
- package/dist/exec/policy.js.map +1 -0
- package/dist/hooks/block-store.d.ts +14 -0
- package/dist/hooks/block-store.d.ts.map +1 -0
- package/dist/hooks/block-store.js +26 -0
- package/dist/hooks/block-store.js.map +1 -0
- package/dist/hooks/claude-hook.d.ts +55 -0
- package/dist/hooks/claude-hook.d.ts.map +1 -0
- package/dist/hooks/claude-hook.js +122 -0
- package/dist/hooks/claude-hook.js.map +1 -0
- package/dist/hooks/continuity.d.ts +48 -0
- package/dist/hooks/continuity.d.ts.map +1 -0
- package/dist/hooks/continuity.js +92 -0
- package/dist/hooks/continuity.js.map +1 -0
- package/dist/hooks/observation.d.ts +27 -0
- package/dist/hooks/observation.d.ts.map +1 -0
- package/dist/hooks/observation.js +0 -0
- package/dist/hooks/observation.js.map +1 -0
- package/dist/hooks/platforms.d.ts +24 -0
- package/dist/hooks/platforms.d.ts.map +1 -0
- package/dist/hooks/platforms.js +57 -0
- package/dist/hooks/platforms.js.map +1 -0
- package/dist/hooks/read-cache.d.ts +71 -0
- package/dist/hooks/read-cache.d.ts.map +1 -0
- package/dist/hooks/read-cache.js +166 -0
- package/dist/hooks/read-cache.js.map +1 -0
- package/dist/hooks/reduction.d.ts +78 -0
- package/dist/hooks/reduction.d.ts.map +1 -0
- package/dist/hooks/reduction.js +111 -0
- package/dist/hooks/reduction.js.map +1 -0
- package/dist/hooks/settings-merge.d.ts +32 -0
- package/dist/hooks/settings-merge.d.ts.map +1 -0
- package/dist/hooks/settings-merge.js +74 -0
- package/dist/hooks/settings-merge.js.map +1 -0
- package/dist/hooks/snapshot.d.ts +37 -0
- package/dist/hooks/snapshot.d.ts.map +1 -0
- package/dist/hooks/snapshot.js +180 -0
- package/dist/hooks/snapshot.js.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +118 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +240 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/onboarding-report.d.ts +66 -0
- package/dist/onboarding-report.d.ts.map +1 -0
- package/dist/onboarding-report.js +152 -0
- package/dist/onboarding-report.js.map +1 -0
- package/dist/onboarding.d.ts +55 -0
- package/dist/onboarding.d.ts.map +1 -0
- package/dist/onboarding.js +98 -0
- package/dist/onboarding.js.map +1 -0
- package/dist/pii-masker.d.ts +7 -0
- package/dist/pii-masker.d.ts.map +1 -1
- package/dist/pii-masker.js +27 -51
- package/dist/pii-masker.js.map +1 -1
- package/dist/privacy.d.ts +13 -0
- package/dist/privacy.d.ts.map +1 -0
- package/dist/privacy.js +67 -0
- package/dist/privacy.js.map +1 -0
- package/dist/residency.d.ts +21 -0
- package/dist/residency.d.ts.map +1 -0
- package/dist/residency.js +68 -0
- package/dist/residency.js.map +1 -0
- package/dist/secret-detector.d.ts +19 -0
- package/dist/secret-detector.d.ts.map +1 -1
- package/dist/secret-detector.js +116 -0
- package/dist/secret-detector.js.map +1 -1
- package/dist/store/local-store.d.ts +167 -0
- package/dist/store/local-store.d.ts.map +1 -0
- package/dist/store/local-store.js +538 -0
- package/dist/store/local-store.js.map +1 -0
- package/dist/store/schema.d.ts +38 -0
- package/dist/store/schema.d.ts.map +1 -0
- package/dist/store/schema.js +189 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/types.d.ts +13 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/watcher.d.ts +6 -0
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +13 -2
- package/dist/watcher.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** transcript 末尾の読み取り上限 (巨大 transcript の全読みを避ける)。 */
|
|
2
|
+
export declare const TRANSCRIPT_TAIL_BYTES: number;
|
|
3
|
+
/** 抽出した作業状態 (保存前に呼び出し側で必ずマスクする)。 */
|
|
4
|
+
export interface SnapshotDetail {
|
|
5
|
+
/** 編集していたファイル (新しい順・重複排除)。 */
|
|
6
|
+
editedFiles: string[];
|
|
7
|
+
/** 直近のツールエラー先頭 (新しい順)。 */
|
|
8
|
+
recentErrors: string[];
|
|
9
|
+
/** 進行中タスク (TodoWrite の未完了項目)。 */
|
|
10
|
+
tasks: string[];
|
|
11
|
+
/** 直近の user プロンプト先頭。 */
|
|
12
|
+
lastPrompt: string | null;
|
|
13
|
+
/** 直近コミット (git log --oneline)。 */
|
|
14
|
+
recentCommits: string[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* transcript (jsonl) 末尾テキストから作業状態を抽出する。
|
|
18
|
+
* 行形式の差異 (content blocks / トップレベル) に寛容で、壊れた行は無視する。
|
|
19
|
+
*/
|
|
20
|
+
export declare function extractSnapshotDetail(transcriptTail: string): SnapshotDetail;
|
|
21
|
+
/** transcript 末尾を読む (ファイル不在・読み取り失敗は空文字)。 */
|
|
22
|
+
export declare function readTranscriptTail(transcriptPath: string, maxBytes?: number): string;
|
|
23
|
+
/** 直近コミットを取得する (git リポジトリでない・失敗時は空)。 */
|
|
24
|
+
export declare function readRecentCommits(cwd: string, count?: number): string[];
|
|
25
|
+
/** スナップショット要約 (注入・検索用の単一テキスト)。maxChars で必ず打ち切る。 */
|
|
26
|
+
export declare function buildSnapshotSummary(detail: SnapshotDetail, maxChars: number): string;
|
|
27
|
+
/**
|
|
28
|
+
* SessionStart で注入する additionalContext を組み立てる。
|
|
29
|
+
* summary はマスク済み・保存済みのものを渡す。全体を maxChars に収める。
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildRestoreContext(p: {
|
|
32
|
+
summary: string;
|
|
33
|
+
createdAt: string;
|
|
34
|
+
trigger: string;
|
|
35
|
+
maxChars: number;
|
|
36
|
+
}): string;
|
|
37
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/hooks/snapshot.ts"],"names":[],"mappings":"AAeA,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAQ/C,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,iCAAiC;IACjC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,wBAAwB;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,kCAAkC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc,CAkD5E;AAsBD,4CAA4C;AAC5C,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,SAAwB,GAAG,MAAM,CAenG;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE,CAYlE;AAED,mDAAmD;AACnD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkBrF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAST"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TRANSCRIPT_TAIL_BYTES = void 0;
|
|
7
|
+
exports.extractSnapshotDetail = extractSnapshotDetail;
|
|
8
|
+
exports.readTranscriptTail = readTranscriptTail;
|
|
9
|
+
exports.readRecentCommits = readRecentCommits;
|
|
10
|
+
exports.buildSnapshotSummary = buildSnapshotSummary;
|
|
11
|
+
exports.buildRestoreContext = buildRestoreContext;
|
|
12
|
+
const child_process_1 = require("child_process");
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
14
|
+
// =============================================
|
|
15
|
+
// セッション状態スナップショット (Issue #95 / Epic #91 R3) — 純粋ロジック中心
|
|
16
|
+
// =============================================
|
|
17
|
+
//
|
|
18
|
+
// PreCompact (Claude Code) / Stop (Codex) で transcript 末尾から作業状態
|
|
19
|
+
// (編集中ファイル・直近エラー・進行中タスク・直近プロンプト・直近コミット) を
|
|
20
|
+
// 抽出し、マスキング後に SQLite (session_snapshots) へ保存する。
|
|
21
|
+
// SessionStart (source=compact/resume) で要約を additionalContext として注入する。
|
|
22
|
+
//
|
|
23
|
+
// 注入はそれ自体がコンテキストを消費するため、要約は固定上限 (config
|
|
24
|
+
// continuity.maxInjectChars) に収め、詳細は pk_recall へ誘導する。
|
|
25
|
+
/** transcript 末尾の読み取り上限 (巨大 transcript の全読みを避ける)。 */
|
|
26
|
+
exports.TRANSCRIPT_TAIL_BYTES = 256 * 1024;
|
|
27
|
+
const MAX_FILES = 10;
|
|
28
|
+
const MAX_ERRORS = 3;
|
|
29
|
+
const MAX_TASKS = 6;
|
|
30
|
+
const ERROR_HEAD_CHARS = 160;
|
|
31
|
+
const PROMPT_HEAD_CHARS = 200;
|
|
32
|
+
const EDIT_TOOLS = new Set(['Edit', 'Write', 'MultiEdit', 'NotebookEdit']);
|
|
33
|
+
/**
|
|
34
|
+
* transcript (jsonl) 末尾テキストから作業状態を抽出する。
|
|
35
|
+
* 行形式の差異 (content blocks / トップレベル) に寛容で、壊れた行は無視する。
|
|
36
|
+
*/
|
|
37
|
+
function extractSnapshotDetail(transcriptTail) {
|
|
38
|
+
const editedFiles = [];
|
|
39
|
+
const recentErrors = [];
|
|
40
|
+
let tasks = [];
|
|
41
|
+
let lastPrompt = null;
|
|
42
|
+
const lines = transcriptTail.split('\n');
|
|
43
|
+
// 先頭行は途中から始まっている可能性があるため、parse 失敗はそのままスキップで吸収する。
|
|
44
|
+
for (const line of lines) {
|
|
45
|
+
const t = line.trim();
|
|
46
|
+
if (!t)
|
|
47
|
+
continue;
|
|
48
|
+
let entry;
|
|
49
|
+
try {
|
|
50
|
+
entry = JSON.parse(t);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const message = entry.message;
|
|
56
|
+
const content = Array.isArray(message?.content) ? message.content : [];
|
|
57
|
+
if (entry.type === 'user') {
|
|
58
|
+
for (const block of content) {
|
|
59
|
+
const b = block;
|
|
60
|
+
if (b?.type === 'text' && typeof b.text === 'string' && b.text.trim()) {
|
|
61
|
+
lastPrompt = b.text.slice(0, PROMPT_HEAD_CHARS);
|
|
62
|
+
}
|
|
63
|
+
if (b?.type === 'tool_result' && b.is_error === true) {
|
|
64
|
+
const text = toolResultText(b);
|
|
65
|
+
if (text)
|
|
66
|
+
pushHead(recentErrors, text.slice(0, ERROR_HEAD_CHARS), MAX_ERRORS);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (entry.type === 'assistant') {
|
|
71
|
+
for (const block of content) {
|
|
72
|
+
const b = block;
|
|
73
|
+
if (b?.type !== 'tool_use')
|
|
74
|
+
continue;
|
|
75
|
+
const name = typeof b.name === 'string' ? b.name : '';
|
|
76
|
+
const input = (b.input ?? {});
|
|
77
|
+
if (EDIT_TOOLS.has(name) && typeof input.file_path === 'string') {
|
|
78
|
+
pushHead(editedFiles, input.file_path, MAX_FILES, true);
|
|
79
|
+
}
|
|
80
|
+
if (name === 'TodoWrite' && Array.isArray(input.todos)) {
|
|
81
|
+
const open = input.todos
|
|
82
|
+
.filter((td) => td?.status !== 'completed' && typeof td?.content === 'string')
|
|
83
|
+
.map((td) => String(td.content));
|
|
84
|
+
if (open.length > 0)
|
|
85
|
+
tasks = open.slice(0, MAX_TASKS); // 最新の TodoWrite で置き換え
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return { editedFiles, recentErrors, tasks, lastPrompt, recentCommits: [] };
|
|
91
|
+
}
|
|
92
|
+
function toolResultText(b) {
|
|
93
|
+
if (typeof b.content === 'string')
|
|
94
|
+
return b.content;
|
|
95
|
+
if (Array.isArray(b.content)) {
|
|
96
|
+
for (const c of b.content) {
|
|
97
|
+
if (c?.type === 'text' && typeof c.text === 'string')
|
|
98
|
+
return c.text;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
/** 新しい値を先頭側に保ちながら上限まで集める (新しい行が後に来るため末尾優先)。 */
|
|
104
|
+
function pushHead(arr, v, max, dedupe = false) {
|
|
105
|
+
if (dedupe) {
|
|
106
|
+
const i = arr.indexOf(v);
|
|
107
|
+
if (i >= 0)
|
|
108
|
+
arr.splice(i, 1);
|
|
109
|
+
}
|
|
110
|
+
arr.unshift(v);
|
|
111
|
+
if (arr.length > max)
|
|
112
|
+
arr.length = max;
|
|
113
|
+
}
|
|
114
|
+
/** transcript 末尾を読む (ファイル不在・読み取り失敗は空文字)。 */
|
|
115
|
+
function readTranscriptTail(transcriptPath, maxBytes = exports.TRANSCRIPT_TAIL_BYTES) {
|
|
116
|
+
try {
|
|
117
|
+
const stat = fs_1.default.statSync(transcriptPath);
|
|
118
|
+
const start = Math.max(0, stat.size - maxBytes);
|
|
119
|
+
const fd = fs_1.default.openSync(transcriptPath, 'r');
|
|
120
|
+
try {
|
|
121
|
+
const buf = Buffer.alloc(Math.min(maxBytes, stat.size));
|
|
122
|
+
fs_1.default.readSync(fd, buf, 0, buf.length, start);
|
|
123
|
+
return buf.toString('utf8');
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
fs_1.default.closeSync(fd);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return '';
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** 直近コミットを取得する (git リポジトリでない・失敗時は空)。 */
|
|
134
|
+
function readRecentCommits(cwd, count = 5) {
|
|
135
|
+
try {
|
|
136
|
+
const out = (0, child_process_1.execFileSync)('git', ['log', '--oneline', `-${count}`], {
|
|
137
|
+
cwd,
|
|
138
|
+
timeout: 3000,
|
|
139
|
+
encoding: 'utf8',
|
|
140
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
141
|
+
});
|
|
142
|
+
return out.split('\n').filter(Boolean);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/** スナップショット要約 (注入・検索用の単一テキスト)。maxChars で必ず打ち切る。 */
|
|
149
|
+
function buildSnapshotSummary(detail, maxChars) {
|
|
150
|
+
const sections = [];
|
|
151
|
+
if (detail.tasks.length > 0) {
|
|
152
|
+
sections.push(`進行中タスク:\n${detail.tasks.map((t) => `- ${t}`).join('\n')}`);
|
|
153
|
+
}
|
|
154
|
+
if (detail.editedFiles.length > 0) {
|
|
155
|
+
sections.push(`編集中ファイル:\n${detail.editedFiles.map((f) => `- ${f}`).join('\n')}`);
|
|
156
|
+
}
|
|
157
|
+
if (detail.recentErrors.length > 0) {
|
|
158
|
+
sections.push(`直近のエラー:\n${detail.recentErrors.map((e) => `- ${e}`).join('\n')}`);
|
|
159
|
+
}
|
|
160
|
+
if (detail.recentCommits.length > 0) {
|
|
161
|
+
sections.push(`直近コミット:\n${detail.recentCommits.map((c) => `- ${c}`).join('\n')}`);
|
|
162
|
+
}
|
|
163
|
+
if (detail.lastPrompt) {
|
|
164
|
+
sections.push(`直近の指示: ${detail.lastPrompt}`);
|
|
165
|
+
}
|
|
166
|
+
return sections.join('\n\n').slice(0, maxChars);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* SessionStart で注入する additionalContext を組み立てる。
|
|
170
|
+
* summary はマスク済み・保存済みのものを渡す。全体を maxChars に収める。
|
|
171
|
+
*/
|
|
172
|
+
function buildRestoreContext(p) {
|
|
173
|
+
const header = `[PromptKaizen セッション継続] ${p.createdAt} に保存した作業状態の要約です ` +
|
|
174
|
+
`(${p.trigger === 'pre_compact' ? 'コンパクト直前' : 'ターン終了時'}):\n`;
|
|
175
|
+
const footer = '\n過去の文脈・詳細が必要な場合は MCP ツール pk_recall(query, scope?) で検索できます ' +
|
|
176
|
+
'(再探索のためのファイル再読込より先に pk_recall を試すこと)。';
|
|
177
|
+
const room = Math.max(0, p.maxChars - header.length - footer.length);
|
|
178
|
+
return header + p.summary.slice(0, room) + footer;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/hooks/snapshot.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const console_safe_1 = require("./console-safe");
|
|
5
|
+
const detect_1 = require("./cli/detect");
|
|
6
|
+
const disable_1 = require("./cli/disable");
|
|
7
|
+
const enable_1 = require("./cli/enable");
|
|
8
|
+
const hook_1 = require("./cli/hook");
|
|
4
9
|
const init_1 = require("./cli/init");
|
|
10
|
+
const mcp_1 = require("./cli/mcp");
|
|
11
|
+
const metrics_1 = require("./cli/metrics");
|
|
12
|
+
const report_1 = require("./cli/report");
|
|
13
|
+
const scan_1 = require("./cli/scan");
|
|
14
|
+
const install_hooks_1 = require("./cli/install-hooks");
|
|
5
15
|
const install_launchd_1 = require("./cli/install-launchd");
|
|
6
16
|
const install_systemd_1 = require("./cli/install-systemd");
|
|
17
|
+
const install_task_1 = require("./cli/install-task");
|
|
7
18
|
const start_1 = require("./cli/start");
|
|
8
19
|
const status_1 = require("./cli/status");
|
|
9
20
|
const uninstall_launchd_1 = require("./cli/uninstall-launchd");
|
|
10
21
|
const uninstall_systemd_1 = require("./cli/uninstall-systemd");
|
|
22
|
+
const uninstall_task_1 = require("./cli/uninstall-task");
|
|
11
23
|
const version_1 = require("./version");
|
|
12
24
|
const HELP = `promptkaizen-agent v${version_1.AGENT_VERSION}
|
|
13
25
|
|
|
@@ -20,12 +32,26 @@ Usage:
|
|
|
20
32
|
|
|
21
33
|
Subcommands:
|
|
22
34
|
init Interactive setup — write ~/.promptkaizen/agent.config.json
|
|
35
|
+
detect Auto-detect Claude Code / Codex logs & counts [--json]
|
|
36
|
+
report Onboarding first-run report: scored summary + posture + dashboard link [--demo] [--json]
|
|
37
|
+
enable Turn on live monitoring: register hooks + resident daemon [--yes] [--later]
|
|
38
|
+
disable Turn off live monitoring: remove hooks + resident daemon
|
|
39
|
+
metrics Onboarding TTV & completion funnel vs targets [--json]
|
|
40
|
+
scan Backfill scan: detect secrets in existing logs, print a report
|
|
41
|
+
[--json] [--budget-ms N] [--max-files N] [--limit N] [--no-progress]
|
|
23
42
|
start Run the agent in the foreground (used by launchd/systemd too)
|
|
24
43
|
status Health check: config, autostart, process, offsets, endpoint
|
|
25
44
|
install-launchd [macOS] Register a LaunchAgent — auto-start on login + auto-restart
|
|
26
45
|
uninstall-launchd [macOS] Remove the LaunchAgent (config/offsets preserved)
|
|
27
46
|
install-systemd [Linux] Register a systemd user unit — auto-start + auto-restart
|
|
28
47
|
uninstall-systemd [Linux] Remove the systemd user unit (config/offsets preserved)
|
|
48
|
+
install-task [Windows] Register a Task Scheduler task — auto-start + watchdog
|
|
49
|
+
uninstall-task [Windows] Remove the Task Scheduler task (config/offsets preserved)
|
|
50
|
+
install-hooks Register hooks — block secrets pre-execution. [--platform claude-code|codex]
|
|
51
|
+
uninstall-hooks Remove hooks (other hooks preserved). [--platform claude-code|codex]
|
|
52
|
+
hook <platform> <e> Internal: invoked by Claude Code / Codex hooks (stdin JSON)
|
|
53
|
+
mcp Run the local MCP server (pk_fetch) — register with:
|
|
54
|
+
claude mcp add pk-local -- promptkaizen-agent mcp
|
|
29
55
|
version Print agent version
|
|
30
56
|
help Print this message
|
|
31
57
|
|
|
@@ -36,10 +62,23 @@ Examples:
|
|
|
36
62
|
promptkaizen-agent status
|
|
37
63
|
`;
|
|
38
64
|
async function main() {
|
|
65
|
+
(0, console_safe_1.installConsoleSafe)(); // Windows レガシーコンソールの絵文字文字化け対策 (出力のみ ASCII 化)
|
|
39
66
|
const [sub, ...rest] = process.argv.slice(2);
|
|
40
67
|
switch (sub) {
|
|
41
68
|
case 'init':
|
|
42
69
|
return (0, init_1.runInit)(rest);
|
|
70
|
+
case 'detect':
|
|
71
|
+
return (0, detect_1.runDetect)(rest);
|
|
72
|
+
case 'report':
|
|
73
|
+
return (0, report_1.runReport)(rest);
|
|
74
|
+
case 'enable':
|
|
75
|
+
return (0, enable_1.runEnable)(rest);
|
|
76
|
+
case 'disable':
|
|
77
|
+
return (0, disable_1.runDisable)(rest);
|
|
78
|
+
case 'metrics':
|
|
79
|
+
return (0, metrics_1.runMetrics)(rest);
|
|
80
|
+
case 'scan':
|
|
81
|
+
return (0, scan_1.runScan)(rest);
|
|
43
82
|
case 'start':
|
|
44
83
|
return (0, start_1.runStart)(rest);
|
|
45
84
|
case 'status':
|
|
@@ -52,6 +91,18 @@ async function main() {
|
|
|
52
91
|
return (0, install_systemd_1.runInstallSystemd)(rest);
|
|
53
92
|
case 'uninstall-systemd':
|
|
54
93
|
return (0, uninstall_systemd_1.runUninstallSystemd)(rest);
|
|
94
|
+
case 'install-task':
|
|
95
|
+
return (0, install_task_1.runInstallTask)(rest);
|
|
96
|
+
case 'uninstall-task':
|
|
97
|
+
return (0, uninstall_task_1.runUninstallTask)(rest);
|
|
98
|
+
case 'install-hooks':
|
|
99
|
+
return (0, install_hooks_1.runInstallHooks)(rest);
|
|
100
|
+
case 'uninstall-hooks':
|
|
101
|
+
return (0, install_hooks_1.runUninstallHooks)(rest);
|
|
102
|
+
case 'hook':
|
|
103
|
+
return (0, hook_1.runHook)(rest);
|
|
104
|
+
case 'mcp':
|
|
105
|
+
return (0, mcp_1.runMcp)();
|
|
55
106
|
case 'version':
|
|
56
107
|
case '--version':
|
|
57
108
|
case '-v':
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,qCAAoC;AACpC,2DAAyD;AACzD,2DAAyD;AACzD,uCAAsC;AACtC,yCAAwC;AACxC,+DAA6D;AAC7D,+DAA6D;AAC7D,uCAAyC;AAEzC,MAAM,IAAI,GAAG,uBAAuB,uBAAa
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { LocalStore } from '../store/local-store';
|
|
2
|
+
export declare const PROTOCOL_VERSION = "2024-11-05";
|
|
3
|
+
export declare const SERVER_INFO: {
|
|
4
|
+
name: string;
|
|
5
|
+
version: string;
|
|
6
|
+
};
|
|
7
|
+
/** 全文取得時の上限文字数。超過分は切り詰めて query 絞り込みを促す。 */
|
|
8
|
+
export declare const MAX_FULL_TEXT_CHARS = 80000;
|
|
9
|
+
export interface RpcRequest {
|
|
10
|
+
jsonrpc?: string;
|
|
11
|
+
id?: string | number | null;
|
|
12
|
+
method?: string;
|
|
13
|
+
params?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export interface RpcResponse {
|
|
16
|
+
jsonrpc: '2.0';
|
|
17
|
+
id: string | number | null;
|
|
18
|
+
result?: unknown;
|
|
19
|
+
error?: {
|
|
20
|
+
code: number;
|
|
21
|
+
message: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export declare const PK_FETCH_TOOL: {
|
|
25
|
+
readonly name: "pk_fetch";
|
|
26
|
+
readonly description: string;
|
|
27
|
+
readonly inputSchema: {
|
|
28
|
+
readonly type: "object";
|
|
29
|
+
readonly properties: {
|
|
30
|
+
readonly ref_id: {
|
|
31
|
+
readonly type: "string";
|
|
32
|
+
readonly description: "退避時にツール結果へ埋め込まれた参照ID (例: pk-1a2b3c4d5e6f)";
|
|
33
|
+
};
|
|
34
|
+
readonly query: {
|
|
35
|
+
readonly type: "string";
|
|
36
|
+
readonly description: "絞り込み検索語 (省略時は全文を返す)";
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
readonly required: readonly ["ref_id"];
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
/** pk_fetch の本体。store は呼び出しごとに開いた LocalStore を渡す。 */
|
|
43
|
+
export declare function runPkFetch(store: Pick<LocalStore, 'getToolOutputRef' | 'queryToolOutputRef'>, args: Record<string, unknown>): {
|
|
44
|
+
content: Array<{
|
|
45
|
+
type: 'text';
|
|
46
|
+
text: string;
|
|
47
|
+
}>;
|
|
48
|
+
isError?: boolean;
|
|
49
|
+
};
|
|
50
|
+
export declare const PK_EXECUTE_TOOL: {
|
|
51
|
+
readonly name: "pk_execute";
|
|
52
|
+
readonly description: string;
|
|
53
|
+
readonly inputSchema: {
|
|
54
|
+
readonly type: "object";
|
|
55
|
+
readonly properties: {
|
|
56
|
+
readonly language: {
|
|
57
|
+
readonly type: "string";
|
|
58
|
+
readonly enum: readonly ["bash", "node", "python"];
|
|
59
|
+
readonly description: "実行言語";
|
|
60
|
+
};
|
|
61
|
+
readonly code: {
|
|
62
|
+
readonly type: "string";
|
|
63
|
+
readonly description: "実行するコード";
|
|
64
|
+
};
|
|
65
|
+
readonly timeout: {
|
|
66
|
+
readonly type: "number";
|
|
67
|
+
readonly description: "タイムアウト秒 (省略時 30s、最大 300s)";
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
readonly required: readonly ["language", "code"];
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
export declare const PK_RECALL_TOOL: {
|
|
74
|
+
readonly name: "pk_recall";
|
|
75
|
+
readonly description: string;
|
|
76
|
+
readonly inputSchema: {
|
|
77
|
+
readonly type: "object";
|
|
78
|
+
readonly properties: {
|
|
79
|
+
readonly query: {
|
|
80
|
+
readonly type: "string";
|
|
81
|
+
readonly description: "検索語 (日本語可)";
|
|
82
|
+
};
|
|
83
|
+
readonly scope: {
|
|
84
|
+
readonly type: "string";
|
|
85
|
+
readonly enum: readonly ["current_session", "project", "all"];
|
|
86
|
+
readonly description: "検索範囲 (省略時 project = このプロジェクトの全セッション)";
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
readonly required: readonly ["query"];
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
/** pk_recall の応答上限 (復元目的の検索が逆にコンテキストを食わないように)。 */
|
|
93
|
+
export declare const MAX_RECALL_CHARS = 8000;
|
|
94
|
+
/** pk_recall 本体。マスク済みデータ (events / snapshots) のみが対象。 */
|
|
95
|
+
export declare function runPkRecall(store: Pick<LocalStore, 'search' | 'searchSnapshots' | 'latestSessionIdForCwd'>, args: Record<string, unknown>, projectRoot: string): {
|
|
96
|
+
content: Array<{
|
|
97
|
+
type: 'text';
|
|
98
|
+
text: string;
|
|
99
|
+
}>;
|
|
100
|
+
isError?: boolean;
|
|
101
|
+
};
|
|
102
|
+
export interface McpDeps {
|
|
103
|
+
/** tools/call のたびに LocalStore を開いて処理し、確実に閉じる。 */
|
|
104
|
+
withStore: <T>(fn: (store: LocalStore) => T) => T;
|
|
105
|
+
/** pk_execute の実装 (#94)。null = 無効 (config.execute.enabled=false)。 */
|
|
106
|
+
pkExecute?: ((args: Record<string, unknown>) => Promise<{
|
|
107
|
+
content: Array<{
|
|
108
|
+
type: 'text';
|
|
109
|
+
text: string;
|
|
110
|
+
}>;
|
|
111
|
+
isError?: boolean;
|
|
112
|
+
}>) | null;
|
|
113
|
+
/** pk_recall の scope 解決に使うプロジェクトルート (#95)。 */
|
|
114
|
+
projectRoot?: string;
|
|
115
|
+
}
|
|
116
|
+
/** 1 件の JSON-RPC を処理する。通知 (id 無し) は null (応答しない)。 */
|
|
117
|
+
export declare function dispatchRpc(req: RpcRequest, deps: McpDeps): Promise<RpcResponse | null>;
|
|
118
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAiBtD,eAAO,MAAM,gBAAgB,eAAe,CAAA;AAC5C,eAAO,MAAM,WAAW;;;CAAyD,CAAA;AAEjF,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB,QAAS,CAAA;AAEzC,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1C;AAcD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CAoBhB,CAAA;AAEV,qDAAqD;AACrD,wBAAgB,UAAU,CACxB,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,GAAG,oBAAoB,CAAC,EAClE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAsCvE;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CAuBlB,CAAA;AAEV,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;CAkBjB,CAAA;AAEV,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,OAAQ,CAAA;AAErC,wDAAwD;AACxD,wBAAgB,WAAW,CACzB,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,iBAAiB,GAAG,uBAAuB,CAAC,EAC/E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CA0DvE;AAED,MAAM,WAAW,OAAO;IACtB,iDAAiD;IACjD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,KAAK,CAAC,CAAA;IACjD,qEAAqE;IACrE,SAAS,CAAC,EACN,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,GACnH,IAAI,CAAA;IACR,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,qDAAqD;AACrD,wBAAsB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkD7F"}
|