promptkaizen-agent 0.1.0 → 0.2.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 -3
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +4 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/install-systemd.d.ts +17 -0
- package/dist/cli/install-systemd.d.ts.map +1 -0
- package/dist/cli/install-systemd.js +96 -0
- package/dist/cli/install-systemd.js.map +1 -0
- package/dist/cli/start.d.ts.map +1 -1
- package/dist/cli/start.js +43 -2
- package/dist/cli/start.js.map +1 -1
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +24 -2
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/uninstall-systemd.d.ts +8 -0
- package/dist/cli/uninstall-systemd.d.ts.map +1 -0
- package/dist/cli/uninstall-systemd.js +58 -0
- package/dist/cli/uninstall-systemd.js.map +1 -0
- package/dist/config.d.ts +61 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +31 -1
- package/dist/config.js.map +1 -1
- package/dist/detection-secret.d.ts +8 -0
- package/dist/detection-secret.d.ts.map +1 -0
- package/dist/detection-secret.js +37 -0
- package/dist/detection-secret.js.map +1 -0
- package/dist/index.js +13 -5
- package/dist/index.js.map +1 -1
- package/dist/mask-rules-fetcher.d.ts +15 -0
- package/dist/mask-rules-fetcher.d.ts.map +1 -0
- package/dist/mask-rules-fetcher.js +67 -0
- package/dist/mask-rules-fetcher.js.map +1 -0
- package/dist/pii-masker.d.ts +48 -1
- package/dist/pii-masker.d.ts.map +1 -1
- package/dist/pii-masker.js +144 -41
- package/dist/pii-masker.js.map +1 -1
- package/dist/secret-detector.d.ts +82 -0
- package/dist/secret-detector.d.ts.map +1 -0
- package/dist/secret-detector.js +400 -0
- package/dist/secret-detector.js.map +1 -0
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -71,15 +71,17 @@ PK_API_KEY=pk_xxxxx PK_ENV=stg ./scripts/install-agent.sh
|
|
|
71
71
|
| `init` | 対話 or `--api-key K --env stg --yes` で config.json 生成 |
|
|
72
72
|
| `start` | foreground 起動 (launchd が裏で叩いているのと同じ) |
|
|
73
73
|
| `status` | config / plist / プロセス / offsets / endpoint の診断 |
|
|
74
|
-
| `install-launchd` | macOS launchd に登録 (自動起動 + 落ちたら再起動) |
|
|
75
|
-
| `uninstall-launchd` | launchd 登録を解除 (config/offsets は残す) |
|
|
74
|
+
| `install-launchd` | [macOS] launchd に登録 (自動起動 + 落ちたら再起動) |
|
|
75
|
+
| `uninstall-launchd` | [macOS] launchd 登録を解除 (config/offsets は残す) |
|
|
76
|
+
| `install-systemd` | [Linux] systemd user unit に登録 (自動起動 + 落ちたら再起動) |
|
|
77
|
+
| `uninstall-systemd` | [Linux] systemd 登録を解除 (config/offsets は残す) |
|
|
76
78
|
| `version` | バージョン表示 |
|
|
77
79
|
| `help` | ヘルプ |
|
|
78
80
|
|
|
79
81
|
## アンインストール
|
|
80
82
|
|
|
81
83
|
```bash
|
|
82
|
-
promptkaizen-agent uninstall-launchd # 自動起動を止める
|
|
84
|
+
promptkaizen-agent uninstall-launchd # 自動起動を止める (Linux: uninstall-systemd)
|
|
83
85
|
rm -rf ~/.promptkaizen # config + offsets + logs を削除
|
|
84
86
|
cd promptkaizen-mvp/agent && npm unlink # グローバル CLI を削除 (任意)
|
|
85
87
|
```
|
package/dist/cli/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG3D"}
|
package/dist/cli/init.js
CHANGED
|
@@ -101,8 +101,11 @@ async function runInit(argv) {
|
|
|
101
101
|
await promises_1.default.writeFile(CONFIG_PATH, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
102
102
|
console.log(`✅ Config written to ${CONFIG_PATH}`);
|
|
103
103
|
if (!nonInteractive) {
|
|
104
|
+
const installCmd = process.platform === 'linux'
|
|
105
|
+
? ' promptkaizen-agent install-systemd # auto-start on Linux (systemd user unit)'
|
|
106
|
+
: ' promptkaizen-agent install-launchd # auto-start on macOS';
|
|
104
107
|
console.log('\nNext steps:');
|
|
105
|
-
console.log(
|
|
108
|
+
console.log(installCmd);
|
|
106
109
|
console.log(' promptkaizen-agent start # manual foreground run');
|
|
107
110
|
console.log(' promptkaizen-agent status # health check');
|
|
108
111
|
}
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";;;;;AAsBA,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";;;;;AAsBA,0BAsGC;AA5HD,2DAA4B;AAC5B,4CAAmB;AACnB,gDAAuB;AACvB,wDAA+B;AAE/B,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAA;AAEjF,MAAM,SAAS,GAAG;IAChB,GAAG,EAAE,iFAAiF;IACtF,IAAI,EAAE,kFAAkF;CAChF,CAAA;AAEV;;;;;;;;;GASG;AACI,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;IACvB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACtD,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;IACzD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC1D,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAA;IAC3C,MAAM,cAAc,GAAG,KAAK,IAAI,CAAC,cAAc,IAAI,WAAW,CAAC,CAAA;IAE/D,MAAM,EAAE,GAAG,cAAc;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,kBAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9E,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,QAAQ,GAAG,EAAE,EAAmB,EAAE,CACxD,cAAc,IAAI,CAAC,EAAE;QACnB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3B,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAExE,IAAI,CAAC;QACH,IAAI,CAAC,cAAc;YAAE,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;QAExE,gBAAgB;QAChB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,4BAA4B,WAAW,sBAAsB,EAAE,GAAG,CAAC,CAAA;YACzF,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;gBAClD,OAAM;YACR,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GACV,WAAW;YACX,CAAC,MAAM,GAAG,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;YACzE,KAAK,CAAA;QACP,IAAI,WAAmB,CAAA;QACvB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,WAAW,GAAG,SAAS,CAAC,IAAI,CAAA;QAC9B,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,WAAW,GAAG,MAAM,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,SAAS,CAAC,GAAG,CAAA;QAC7B,CAAC;QAED,YAAY;QACZ,IAAI,MAAM,GACR,cAAc;YACd,CAAC,MAAM,GAAG,CAAC,2DAA2D,EAAE,EAAE,CAAC,CAAC,CAAA;QAC9E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,+GAA+G,CAChH,CAAA;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,0DAA0D,EAAE,GAAG,CAAC,CAAA;YACvF,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBACvB,OAAM;YACR,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GACd,kBAAkB;YAClB,CAAC,MAAM,GAAG,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAA;QAE7E,MAAM,MAAM,GAAG;YACb,WAAW;YACX,MAAM;YACN,UAAU,EAAE,CAAC,+BAA+B,EAAE,8BAA8B,CAAC;YAC7E,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;YAC3C,KAAK,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE;YACnC,GAAG,EAAE;gBACH,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,IAAI;gBACjB,UAAU;gBACV,cAAc,EAAE,EAAE;aACnB;YACD,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SAC7B,CAAA;QAED,MAAM,kBAAE,CAAC,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9D,MAAM,kBAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAEjF,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,UAAU,GACd,OAAO,CAAC,QAAQ,KAAK,OAAO;gBAC1B,CAAC,CAAC,kFAAkF;gBACpF,CAAC,CAAC,8DAA8D,CAAA;YACpE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;YAC7E,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,EAAE,KAAK,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AASD,SAAS,UAAU,CAAC,IAAc;IAChC,MAAM,GAAG,GAAc,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;aAC/D,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;aAC7D,IAAI,CAAC,KAAK,eAAe;YAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAA;aAChD,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAA;IACtD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const SYSTEMD_UNIT_NAME = "promptkaizen-agent.service";
|
|
2
|
+
export declare function unitPath(): string;
|
|
3
|
+
export interface UnitOptions {
|
|
4
|
+
nodeBin: string;
|
|
5
|
+
agentScript: string;
|
|
6
|
+
logDir: string;
|
|
7
|
+
}
|
|
8
|
+
/** systemd user unit の内容を組み立て。テスト容易性のため引数で外部依存を受ける */
|
|
9
|
+
export declare function buildUnit(opts: UnitOptions): string;
|
|
10
|
+
/**
|
|
11
|
+
* `promptkaizen-agent install-systemd`
|
|
12
|
+
*
|
|
13
|
+
* Linux の systemd user unit に agent を登録して、ログイン時に自動起動 + 落ちたら
|
|
14
|
+
* 自動再起動 (install-launchd の Linux 版)。既存 unit があれば上書きして再起動。
|
|
15
|
+
*/
|
|
16
|
+
export declare function runInstallSystemd(_argv: string[]): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=install-systemd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-systemd.d.ts","sourceRoot":"","sources":["../../src/cli/install-systemd.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,+BAA+B,CAAA;AAE7D,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAkBnD;AAWD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CtE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
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.SYSTEMD_UNIT_NAME = void 0;
|
|
7
|
+
exports.unitPath = unitPath;
|
|
8
|
+
exports.buildUnit = buildUnit;
|
|
9
|
+
exports.runInstallSystemd = runInstallSystemd;
|
|
10
|
+
const child_process_1 = require("child_process");
|
|
11
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
12
|
+
const os_1 = __importDefault(require("os"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
14
|
+
exports.SYSTEMD_UNIT_NAME = 'promptkaizen-agent.service';
|
|
15
|
+
function unitPath() {
|
|
16
|
+
return path_1.default.join(os_1.default.homedir(), '.config', 'systemd', 'user', exports.SYSTEMD_UNIT_NAME);
|
|
17
|
+
}
|
|
18
|
+
/** systemd user unit の内容を組み立て。テスト容易性のため引数で外部依存を受ける */
|
|
19
|
+
function buildUnit(opts) {
|
|
20
|
+
// systemd は引用符付きの space-separated 引数を解釈する。% は specifier なので %% に。
|
|
21
|
+
const exec = [opts.nodeBin, opts.agentScript, 'start'].map(quoteExecArg).join(' ');
|
|
22
|
+
return `[Unit]
|
|
23
|
+
Description=PromptKaizen local observability agent (Claude Code / Codex CLI)
|
|
24
|
+
After=network-online.target
|
|
25
|
+
|
|
26
|
+
[Service]
|
|
27
|
+
ExecStart=${exec}
|
|
28
|
+
Restart=always
|
|
29
|
+
RestartSec=5
|
|
30
|
+
# StandardOutput/Error の append: は systemd 240+ (Ubuntu 20.04+/Debian 11+)
|
|
31
|
+
StandardOutput=append:${escapeUnitValue(path_1.default.join(opts.logDir, 'agent.log'))}
|
|
32
|
+
StandardError=append:${escapeUnitValue(path_1.default.join(opts.logDir, 'agent.error.log'))}
|
|
33
|
+
|
|
34
|
+
[Install]
|
|
35
|
+
WantedBy=default.target
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
/** ExecStart の 1 引数を quote (空白対応) + systemd specifier (%) を escape。 */
|
|
39
|
+
function quoteExecArg(s) {
|
|
40
|
+
return `"${escapeUnitValue(s).replaceAll('"', '\\"')}"`;
|
|
41
|
+
}
|
|
42
|
+
function escapeUnitValue(s) {
|
|
43
|
+
return s.replaceAll('%', '%%');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* `promptkaizen-agent install-systemd`
|
|
47
|
+
*
|
|
48
|
+
* Linux の systemd user unit に agent を登録して、ログイン時に自動起動 + 落ちたら
|
|
49
|
+
* 自動再起動 (install-launchd の Linux 版)。既存 unit があれば上書きして再起動。
|
|
50
|
+
*/
|
|
51
|
+
async function runInstallSystemd(_argv) {
|
|
52
|
+
if (process.platform !== 'linux') {
|
|
53
|
+
console.error('install-systemd is Linux only. Use install-launchd on macOS.');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
// dist/cli/install-systemd.js から見て dist/index.js を絶対パスで指す
|
|
57
|
+
const agentScript = path_1.default.resolve(__dirname, '..', 'index.js');
|
|
58
|
+
await assertExists(agentScript, 'Agent script not found. Did you run `npm run build`?');
|
|
59
|
+
const logDir = path_1.default.join(os_1.default.homedir(), '.promptkaizen');
|
|
60
|
+
await promises_1.default.mkdir(logDir, { recursive: true });
|
|
61
|
+
const unit = buildUnit({
|
|
62
|
+
nodeBin: process.execPath,
|
|
63
|
+
agentScript,
|
|
64
|
+
logDir,
|
|
65
|
+
});
|
|
66
|
+
const dst = unitPath();
|
|
67
|
+
await promises_1.default.mkdir(path_1.default.dirname(dst), { recursive: true });
|
|
68
|
+
await promises_1.default.writeFile(dst, unit, 'utf8');
|
|
69
|
+
console.log(`✅ Wrote unit: ${dst}`);
|
|
70
|
+
try {
|
|
71
|
+
(0, child_process_1.execSync)('systemctl --user daemon-reload', { stdio: 'inherit' });
|
|
72
|
+
(0, child_process_1.execSync)(`systemctl --user enable --now ${exports.SYSTEMD_UNIT_NAME}`, { stdio: 'inherit' });
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.error(`systemctl failed: ${e.message}`);
|
|
76
|
+
console.error('Hint: systemd user セッションが無い環境 (一部のコンテナ/WSL) では `sudo loginctl enable-linger $USER` の後にログインし直してください。');
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
console.log(`✅ systemd user unit registered: ${exports.SYSTEMD_UNIT_NAME}`);
|
|
80
|
+
console.log('\nNote: ログアウト後・再起動後も常駐させるには linger を有効化してください:');
|
|
81
|
+
console.log(' sudo loginctl enable-linger $USER');
|
|
82
|
+
console.log('\nVerify with:');
|
|
83
|
+
console.log(` systemctl --user status ${exports.SYSTEMD_UNIT_NAME}`);
|
|
84
|
+
console.log(' tail -f ~/.promptkaizen/agent.log');
|
|
85
|
+
console.log(' promptkaizen-agent status');
|
|
86
|
+
}
|
|
87
|
+
async function assertExists(p, msg) {
|
|
88
|
+
try {
|
|
89
|
+
await promises_1.default.access(p);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
console.error(`${msg} (looked for ${p})`);
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=install-systemd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-systemd.js","sourceRoot":"","sources":["../../src/cli/install-systemd.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"AAkBA;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwH5D"}
|
package/dist/cli/start.js
CHANGED
|
@@ -9,13 +9,17 @@ const readline_1 = __importDefault(require("readline"));
|
|
|
9
9
|
const batcher_1 = require("../batcher");
|
|
10
10
|
const config_1 = require("../config");
|
|
11
11
|
const logger_1 = require("../logger");
|
|
12
|
+
const mask_rules_fetcher_1 = require("../mask-rules-fetcher");
|
|
12
13
|
const offset_store_1 = require("../offset-store");
|
|
13
14
|
const parser_1 = require("../parser");
|
|
14
15
|
const pii_masker_1 = require("../pii-masker");
|
|
16
|
+
const detection_secret_1 = require("../detection-secret");
|
|
17
|
+
const secret_detector_1 = require("../secret-detector");
|
|
15
18
|
const sender_1 = require("../sender");
|
|
16
19
|
const version_1 = require("../version");
|
|
17
20
|
const watcher_1 = require("../watcher");
|
|
18
21
|
const HEARTBEAT_INTERVAL_MS = 5 * 60 * 1000; // 5 分
|
|
22
|
+
const MASK_RULES_REFRESH_INTERVAL_MS = 30 * 60 * 1000; // 30 分 (Issue #43 組織ルール同期)
|
|
19
23
|
/**
|
|
20
24
|
* `promptkaizen-agent start [--config <path>]`
|
|
21
25
|
*
|
|
@@ -29,7 +33,36 @@ async function runStart(argv) {
|
|
|
29
33
|
const offsetStore = new offset_store_1.OffsetStore();
|
|
30
34
|
await offsetStore.load();
|
|
31
35
|
const parser = new parser_1.JsonlParser(offsetStore);
|
|
32
|
-
|
|
36
|
+
// 組織マスクルール (Issue #43): cloud から取得してローカル設定とマージする。
|
|
37
|
+
// 取得失敗・未設定なら null = ローカル設定のみ。適用は常に agent ローカルで行う。
|
|
38
|
+
let masker = new pii_masker_1.PiiMasker(config.pii);
|
|
39
|
+
if (config.pii.syncOrgRules) {
|
|
40
|
+
const applyRemoteRules = async () => {
|
|
41
|
+
const remote = await (0, mask_rules_fetcher_1.fetchMaskRules)({
|
|
42
|
+
apiEndpoint: config.apiEndpoint,
|
|
43
|
+
apiKey: config.apiKey,
|
|
44
|
+
});
|
|
45
|
+
if (remote) {
|
|
46
|
+
masker = new pii_masker_1.PiiMasker(config.pii, { remoteRules: remote });
|
|
47
|
+
logger_1.logger.info('Mask rules synced from cloud', {
|
|
48
|
+
customRules: remote.customRules.length,
|
|
49
|
+
updatedAt: remote.updatedAt,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
await applyRemoteRules();
|
|
54
|
+
setInterval(() => void applyRemoteRules(), MASK_RULES_REFRESH_INTERVAL_MS).unref();
|
|
55
|
+
}
|
|
56
|
+
// 流出検知 (Issue #42): マスキング前の生テキストに対して検知し、検知メタ
|
|
57
|
+
// (生機密本文を含まない) を entry に付与する。検知後にマスキングする。
|
|
58
|
+
// pii/pii_jp の matchHash 用ローカル鍵 (設定 or 初回起動時生成)。クラウドへは送らない。
|
|
59
|
+
const detector = config.detection.enabled
|
|
60
|
+
? new secret_detector_1.SecretDetector({
|
|
61
|
+
customDictionary: config.detection.customDictionary,
|
|
62
|
+
enableEntropy: config.detection.enableEntropy,
|
|
63
|
+
hmacSecret: await (0, detection_secret_1.loadOrCreateDetectionSecret)(config.detection.hmacSecret),
|
|
64
|
+
})
|
|
65
|
+
: null;
|
|
33
66
|
const sender = new sender_1.Sender({
|
|
34
67
|
apiEndpoint: config.apiEndpoint,
|
|
35
68
|
apiKey: config.apiKey,
|
|
@@ -70,7 +103,15 @@ async function runStart(argv) {
|
|
|
70
103
|
const { entries, consumed } = await parser.parseDelta(filepath);
|
|
71
104
|
if (entries.length === 0 && consumed === 0)
|
|
72
105
|
return;
|
|
73
|
-
|
|
106
|
+
// 検知はマスキング前の生テキストに対して行う (マスク後は検出できない)。
|
|
107
|
+
// 付与する detections は生機密を含まないので、後段のマスキングでも保持される。
|
|
108
|
+
const detected = detector
|
|
109
|
+
? entries.map((e) => {
|
|
110
|
+
const found = detector.detect((0, secret_detector_1.collectStrings)(e.raw));
|
|
111
|
+
return found.length > 0 ? { ...e, detections: found } : e;
|
|
112
|
+
})
|
|
113
|
+
: entries;
|
|
114
|
+
const masked = masker.maskAll(detected);
|
|
74
115
|
batcher.add(filepath, masked, consumed);
|
|
75
116
|
}
|
|
76
117
|
catch (e) {
|
package/dist/cli/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/status.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAUA;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkG9D"}
|
package/dist/cli/status.js
CHANGED
|
@@ -10,6 +10,7 @@ const os_1 = __importDefault(require("os"));
|
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const config_1 = require("../config");
|
|
12
12
|
const install_launchd_1 = require("./install-launchd");
|
|
13
|
+
const install_systemd_1 = require("./install-systemd");
|
|
13
14
|
const OFFSET_PATH = path_1.default.join(os_1.default.homedir(), '.promptkaizen', 'offsets.json');
|
|
14
15
|
/**
|
|
15
16
|
* `promptkaizen-agent status`
|
|
@@ -52,13 +53,23 @@ async function runStatus(_argv) {
|
|
|
52
53
|
? 'detected & watched'
|
|
53
54
|
: 'detected — add "~/.codex/sessions/**/*.jsonl" to watchPaths (re-run init)');
|
|
54
55
|
}
|
|
55
|
-
// 2. launchd
|
|
56
|
+
// 2. 自動起動の登録状態 (macOS: launchd / Linux: systemd user unit)
|
|
56
57
|
if (process.platform === 'darwin') {
|
|
57
58
|
const plistOk = await fileExists((0, install_launchd_1.plistPath)());
|
|
58
59
|
push(plistOk ? '✅' : '⚠️ ', 'launchd plist', plistOk ? (0, install_launchd_1.plistPath)() : 'not installed (run install-launchd)');
|
|
59
60
|
}
|
|
61
|
+
else if (process.platform === 'linux') {
|
|
62
|
+
const unitOk = await fileExists((0, install_systemd_1.unitPath)());
|
|
63
|
+
if (!unitOk) {
|
|
64
|
+
push('⚠️ ', 'systemd unit', 'not installed (run install-systemd)');
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const active = systemdUserUnitState();
|
|
68
|
+
push(active === 'active' ? '✅' : '⚠️ ', 'systemd unit', active === 'active' ? `${(0, install_systemd_1.unitPath)()} (active)` : `${(0, install_systemd_1.unitPath)()} (${active ?? 'state unknown'})`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
60
71
|
else {
|
|
61
|
-
push(' ', '
|
|
72
|
+
push(' ', 'autostart', '(Windows is not supported yet — see Issue #61)');
|
|
62
73
|
}
|
|
63
74
|
// 3. process + resource usage (Phase H 指標 spec section 9-3)
|
|
64
75
|
const procs = listAgentPids();
|
|
@@ -102,6 +113,17 @@ async function runStatus(_argv) {
|
|
|
102
113
|
console.log('PromptKaizen Agent — status\n');
|
|
103
114
|
console.log(lines.join('\n'));
|
|
104
115
|
}
|
|
116
|
+
/** systemctl --user is-active の出力 (active/inactive/failed)。取得不能は null。 */
|
|
117
|
+
function systemdUserUnitState() {
|
|
118
|
+
try {
|
|
119
|
+
return (0, child_process_1.execSync)(`systemctl --user is-active ${install_systemd_1.SYSTEMD_UNIT_NAME} 2>/dev/null || true`, {
|
|
120
|
+
encoding: 'utf8',
|
|
121
|
+
}).trim() || null;
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
105
127
|
function listAgentPids() {
|
|
106
128
|
try {
|
|
107
129
|
const out = (0, child_process_1.execSync)('pgrep -f "agent/dist/index.js" 2>/dev/null || true', {
|
package/dist/cli/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `promptkaizen-agent uninstall-systemd`
|
|
3
|
+
*
|
|
4
|
+
* systemd user unit の登録を解除して unit ファイルを削除 (uninstall-launchd の
|
|
5
|
+
* Linux 版)。設定 (~/.promptkaizen/agent.config.json) とオフセットは残す。
|
|
6
|
+
*/
|
|
7
|
+
export declare function runUninstallSystemd(_argv: string[]): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=uninstall-systemd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall-systemd.d.ts","sourceRoot":"","sources":["../../src/cli/uninstall-systemd.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCxE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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.runUninstallSystemd = runUninstallSystemd;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
|
+
const install_systemd_1 = require("./install-systemd");
|
|
10
|
+
/**
|
|
11
|
+
* `promptkaizen-agent uninstall-systemd`
|
|
12
|
+
*
|
|
13
|
+
* systemd user unit の登録を解除して unit ファイルを削除 (uninstall-launchd の
|
|
14
|
+
* Linux 版)。設定 (~/.promptkaizen/agent.config.json) とオフセットは残す。
|
|
15
|
+
*/
|
|
16
|
+
async function runUninstallSystemd(_argv) {
|
|
17
|
+
if (process.platform !== 'linux') {
|
|
18
|
+
console.error('uninstall-systemd is Linux only.');
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
(0, child_process_1.execSync)(`systemctl --user disable --now ${install_systemd_1.SYSTEMD_UNIT_NAME}`, { stdio: 'ignore' });
|
|
23
|
+
console.log(`✅ systemctl disabled ${install_systemd_1.SYSTEMD_UNIT_NAME}`);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
console.log('(systemctl disable skipped — already disabled or never registered)');
|
|
27
|
+
}
|
|
28
|
+
let removed = false;
|
|
29
|
+
const dst = (0, install_systemd_1.unitPath)();
|
|
30
|
+
try {
|
|
31
|
+
await promises_1.default.unlink(dst);
|
|
32
|
+
console.log(`✅ Removed unit: ${dst}`);
|
|
33
|
+
removed = true;
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
const code = e.code;
|
|
37
|
+
if (code === 'ENOENT') {
|
|
38
|
+
console.log(`(unit not present at ${dst})`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.error(`Failed to remove unit: ${e.message}`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
(0, child_process_1.execSync)('systemctl --user daemon-reload', { stdio: 'ignore' });
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
/* best-effort */
|
|
50
|
+
}
|
|
51
|
+
if (!removed) {
|
|
52
|
+
console.log('Nothing to do.');
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log('\nConfig and offsets preserved under ~/.promptkaizen/.');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=uninstall-systemd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall-systemd.js","sourceRoot":"","sources":["../../src/cli/uninstall-systemd.ts"],"names":[],"mappings":";;;;;AAUA,kDAwCC;AAlDD,iDAAwC;AACxC,2DAA4B;AAC5B,uDAA+D;AAE/D;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CAAC,KAAe;IACvD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,kCAAkC,mCAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACpF,OAAO,CAAC,GAAG,CAAC,wBAAwB,mCAAiB,EAAE,CAAC,CAAA;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAA;IACnF,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,GAAG,GAAG,IAAA,0BAAQ,GAAE,CAAA;IACtB,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAA;QACrC,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,GAAI,CAA2B,CAAC,IAAI,CAAA;QAC9C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAA;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,0BAA2B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAA;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;IACvE,CAAC;AACH,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
|
|
|
35
35
|
pattern: string;
|
|
36
36
|
replacement: string;
|
|
37
37
|
}>, "many">>;
|
|
38
|
+
syncOrgRules: z.ZodDefault<z.ZodBoolean>;
|
|
38
39
|
}, "strip", z.ZodTypeAny, {
|
|
39
40
|
maskFilePaths: boolean;
|
|
40
41
|
maskApiKeys: boolean;
|
|
@@ -43,6 +44,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
|
|
|
43
44
|
pattern: string;
|
|
44
45
|
replacement: string;
|
|
45
46
|
}[];
|
|
47
|
+
syncOrgRules: boolean;
|
|
46
48
|
}, {
|
|
47
49
|
maskFilePaths?: boolean | undefined;
|
|
48
50
|
maskApiKeys?: boolean | undefined;
|
|
@@ -51,6 +53,43 @@ export declare const AgentConfigSchema: z.ZodObject<{
|
|
|
51
53
|
pattern: string;
|
|
52
54
|
replacement: string;
|
|
53
55
|
}[] | undefined;
|
|
56
|
+
syncOrgRules?: boolean | undefined;
|
|
57
|
+
}>>;
|
|
58
|
+
detection: z.ZodDefault<z.ZodObject<{
|
|
59
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
60
|
+
enableEntropy: z.ZodDefault<z.ZodBoolean>;
|
|
61
|
+
hmacSecret: z.ZodOptional<z.ZodString>;
|
|
62
|
+
customDictionary: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
63
|
+
ruleId: z.ZodString;
|
|
64
|
+
pattern: z.ZodString;
|
|
65
|
+
severity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
66
|
+
}, "strip", z.ZodTypeAny, {
|
|
67
|
+
pattern: string;
|
|
68
|
+
ruleId: string;
|
|
69
|
+
severity?: "low" | "medium" | "high" | undefined;
|
|
70
|
+
}, {
|
|
71
|
+
pattern: string;
|
|
72
|
+
ruleId: string;
|
|
73
|
+
severity?: "low" | "medium" | "high" | undefined;
|
|
74
|
+
}>, "many">>;
|
|
75
|
+
}, "strip", z.ZodTypeAny, {
|
|
76
|
+
enabled: boolean;
|
|
77
|
+
enableEntropy: boolean;
|
|
78
|
+
customDictionary: {
|
|
79
|
+
pattern: string;
|
|
80
|
+
ruleId: string;
|
|
81
|
+
severity?: "low" | "medium" | "high" | undefined;
|
|
82
|
+
}[];
|
|
83
|
+
hmacSecret?: string | undefined;
|
|
84
|
+
}, {
|
|
85
|
+
enabled?: boolean | undefined;
|
|
86
|
+
enableEntropy?: boolean | undefined;
|
|
87
|
+
hmacSecret?: string | undefined;
|
|
88
|
+
customDictionary?: {
|
|
89
|
+
pattern: string;
|
|
90
|
+
ruleId: string;
|
|
91
|
+
severity?: "low" | "medium" | "high" | undefined;
|
|
92
|
+
}[] | undefined;
|
|
54
93
|
}>>;
|
|
55
94
|
telemetry: z.ZodDefault<z.ZodObject<{
|
|
56
95
|
level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
|
|
@@ -79,6 +118,17 @@ export declare const AgentConfigSchema: z.ZodObject<{
|
|
|
79
118
|
pattern: string;
|
|
80
119
|
replacement: string;
|
|
81
120
|
}[];
|
|
121
|
+
syncOrgRules: boolean;
|
|
122
|
+
};
|
|
123
|
+
detection: {
|
|
124
|
+
enabled: boolean;
|
|
125
|
+
enableEntropy: boolean;
|
|
126
|
+
customDictionary: {
|
|
127
|
+
pattern: string;
|
|
128
|
+
ruleId: string;
|
|
129
|
+
severity?: "low" | "medium" | "high" | undefined;
|
|
130
|
+
}[];
|
|
131
|
+
hmacSecret?: string | undefined;
|
|
82
132
|
};
|
|
83
133
|
telemetry: {
|
|
84
134
|
level: "debug" | "info" | "warn" | "error";
|
|
@@ -103,6 +153,17 @@ export declare const AgentConfigSchema: z.ZodObject<{
|
|
|
103
153
|
pattern: string;
|
|
104
154
|
replacement: string;
|
|
105
155
|
}[] | undefined;
|
|
156
|
+
syncOrgRules?: boolean | undefined;
|
|
157
|
+
} | undefined;
|
|
158
|
+
detection?: {
|
|
159
|
+
enabled?: boolean | undefined;
|
|
160
|
+
enableEntropy?: boolean | undefined;
|
|
161
|
+
hmacSecret?: string | undefined;
|
|
162
|
+
customDictionary?: {
|
|
163
|
+
pattern: string;
|
|
164
|
+
ruleId: string;
|
|
165
|
+
severity?: "low" | "medium" | "high" | undefined;
|
|
166
|
+
}[] | undefined;
|
|
106
167
|
} | undefined;
|
|
107
168
|
telemetry?: {
|
|
108
169
|
level?: "debug" | "info" | "warn" | "error" | undefined;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiE5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAI3D,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5C;AAED,wBAAsB,UAAU,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwB5E"}
|
package/dist/config.js
CHANGED
|
@@ -36,8 +36,38 @@ exports.AgentConfigSchema = zod_1.z.object({
|
|
|
36
36
|
customPatterns: zod_1.z
|
|
37
37
|
.array(zod_1.z.object({ pattern: zod_1.z.string(), replacement: zod_1.z.string() }))
|
|
38
38
|
.default([]),
|
|
39
|
+
// 組織マスクルールの取得 (Issue #43)。true なら起動時 + 定期的に cloud から
|
|
40
|
+
// 組織/ユーザーのルールを取得してローカル設定とマージする。取得失敗時は
|
|
41
|
+
// ローカル設定のみで動作 (マスキング適用は常にローカル完結)。
|
|
42
|
+
syncOrgRules: zod_1.z.boolean().default(true),
|
|
39
43
|
})
|
|
40
|
-
.default({
|
|
44
|
+
.default({
|
|
45
|
+
maskFilePaths: true,
|
|
46
|
+
maskApiKeys: true,
|
|
47
|
+
maskEmails: false,
|
|
48
|
+
customPatterns: [],
|
|
49
|
+
syncOrgRules: true,
|
|
50
|
+
}),
|
|
51
|
+
// 流出検知 (Issue #42)。マスキングとは別レイヤで「何が貼られたか」を検出・記録する。
|
|
52
|
+
// 検知メタ (category/severity/件数/マスク済みプレビュー/ハッシュ) のみクラウドへ送り、
|
|
53
|
+
// 生機密本文は送らない。
|
|
54
|
+
detection: zod_1.z
|
|
55
|
+
.object({
|
|
56
|
+
enabled: zod_1.z.boolean().default(true),
|
|
57
|
+
enableEntropy: zod_1.z.boolean().default(true),
|
|
58
|
+
// pii/pii_jp の matchHash (HMAC-SHA256) 用ローカル鍵。未設定なら初回起動時に
|
|
59
|
+
// ~/.promptkaizen/detection-secret へ自動生成する。クラウドへは送らない。
|
|
60
|
+
hmacSecret: zod_1.z.string().min(32).optional(),
|
|
61
|
+
// 組織/ユーザー登録のカスタム辞書 (category='custom')。#21 連携。
|
|
62
|
+
customDictionary: zod_1.z
|
|
63
|
+
.array(zod_1.z.object({
|
|
64
|
+
ruleId: zod_1.z.string().min(1),
|
|
65
|
+
pattern: zod_1.z.string().min(1),
|
|
66
|
+
severity: zod_1.z.enum(['low', 'medium', 'high']).optional(),
|
|
67
|
+
}))
|
|
68
|
+
.default([]),
|
|
69
|
+
})
|
|
70
|
+
.default({ enabled: true, enableEntropy: true, customDictionary: [] }),
|
|
41
71
|
telemetry: zod_1.z
|
|
42
72
|
.object({
|
|
43
73
|
level: zod_1.z.enum(['debug', 'info', 'warn', 'error']).default('info'),
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|