@nerdvana/parism 0.3.0 โ†’ 0.5.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.
Files changed (63) hide show
  1. package/README.en.md +144 -43
  2. package/README.md +125 -51
  3. package/dist/cli/add.d.ts +9 -0
  4. package/dist/cli/add.d.ts.map +1 -0
  5. package/dist/cli/add.js +25 -0
  6. package/dist/cli/add.js.map +1 -0
  7. package/dist/cli/auto-loader.d.ts +7 -0
  8. package/dist/cli/auto-loader.d.ts.map +1 -0
  9. package/dist/cli/auto-loader.js +33 -0
  10. package/dist/cli/auto-loader.js.map +1 -0
  11. package/dist/cli/capture.d.ts +9 -0
  12. package/dist/cli/capture.d.ts.map +1 -0
  13. package/dist/cli/capture.js +50 -0
  14. package/dist/cli/capture.js.map +1 -0
  15. package/dist/cli/init-parser.d.ts +9 -0
  16. package/dist/cli/init-parser.d.ts.map +1 -0
  17. package/dist/cli/init-parser.js +66 -0
  18. package/dist/cli/init-parser.js.map +1 -0
  19. package/dist/cli/inspect.d.ts +16 -0
  20. package/dist/cli/inspect.d.ts.map +1 -0
  21. package/dist/cli/inspect.js +28 -0
  22. package/dist/cli/inspect.js.map +1 -0
  23. package/dist/cli/loader.d.ts +6 -0
  24. package/dist/cli/loader.d.ts.map +1 -0
  25. package/dist/cli/loader.js +19 -0
  26. package/dist/cli/loader.js.map +1 -0
  27. package/dist/cli/paths.d.ts +9 -0
  28. package/dist/cli/paths.d.ts.map +1 -0
  29. package/dist/cli/paths.js +19 -0
  30. package/dist/cli/paths.js.map +1 -0
  31. package/dist/cli/test-runner.d.ts +21 -0
  32. package/dist/cli/test-runner.d.ts.map +1 -0
  33. package/dist/cli/test-runner.js +36 -0
  34. package/dist/cli/test-runner.js.map +1 -0
  35. package/dist/cli.d.ts +6 -0
  36. package/dist/cli.d.ts.map +1 -0
  37. package/dist/cli.js +81 -0
  38. package/dist/cli.js.map +1 -0
  39. package/dist/engine/executor.d.ts +3 -1
  40. package/dist/engine/executor.d.ts.map +1 -1
  41. package/dist/engine/executor.js +8 -6
  42. package/dist/engine/executor.js.map +1 -1
  43. package/dist/engine/guard.d.ts.map +1 -1
  44. package/dist/engine/guard.js +20 -2
  45. package/dist/engine/guard.js.map +1 -1
  46. package/dist/index.js +28 -2
  47. package/dist/index.js.map +1 -1
  48. package/dist/parsers/index.d.ts +7 -1
  49. package/dist/parsers/index.d.ts.map +1 -1
  50. package/dist/parsers/index.js +66 -57
  51. package/dist/parsers/index.js.map +1 -1
  52. package/dist/parsers/registry.d.ts +52 -3
  53. package/dist/parsers/registry.d.ts.map +1 -1
  54. package/dist/parsers/registry.js +28 -6
  55. package/dist/parsers/registry.js.map +1 -1
  56. package/dist/server.d.ts +5 -4
  57. package/dist/server.d.ts.map +1 -1
  58. package/dist/server.js +18 -14
  59. package/dist/server.js.map +1 -1
  60. package/dist/types/envelope.d.ts +9 -0
  61. package/dist/types/envelope.d.ts.map +1 -1
  62. package/package.json +6 -1
  63. package/prism.config.json +5 -2
package/dist/index.js CHANGED
@@ -2,14 +2,40 @@
2
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
3
  import { createServer } from "./server.js";
4
4
  import { loadConfig } from "./config/loader.js";
5
+ import { createRegistry } from "./parsers/index.js";
6
+ import { createCli } from "./cli.js";
5
7
  import path from "node:path";
6
- async function main() {
8
+ const CLI_COMMANDS = ["capture", "init-parser", "test", "add", "inspect", "help", "--help", "-h", "--version", "-V"];
9
+ function isCliMode() {
10
+ const firstArg = process.argv[2];
11
+ return firstArg != null && CLI_COMMANDS.includes(firstArg);
12
+ }
13
+ async function startMcpServer() {
7
14
  const configPath = path.join(process.cwd(), "prism.config.json");
8
15
  const config = await loadConfig(configPath);
9
- const server = createServer(config);
16
+ const registry = createRegistry();
17
+ const { loadExternalParsers } = await import("./cli/auto-loader.js");
18
+ const { parismHome } = await import("./cli/paths.js");
19
+ const loaded = await loadExternalParsers(parismHome(), registry);
20
+ if (loaded > 0) {
21
+ console.error(`[parism] Loaded ${loaded} external parser(s)`);
22
+ }
23
+ const server = createServer(config, registry);
10
24
  const transport = new StdioServerTransport();
11
25
  await server.connect(transport);
12
26
  }
27
+ async function startCli() {
28
+ const program = createCli();
29
+ await program.parseAsync(process.argv);
30
+ }
31
+ async function main() {
32
+ if (isCliMode()) {
33
+ await startCli();
34
+ }
35
+ else {
36
+ await startMcpServer();
37
+ }
38
+ }
13
39
  main().catch((err) => {
14
40
  console.error("[parism] Fatal error:", err);
15
41
  process.exit(1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAc,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAgB,oBAAoB,CAAC;AAC1D,OAAO,IAAI,MAA0B,WAAW,CAAC;AAEjD,KAAK,UAAU,IAAI;IACjB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAO,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAc,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAgB,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAY,oBAAoB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAiB,UAAU,CAAC;AAChD,OAAO,IAAI,MAA0B,WAAW,CAAC;AAEjD,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAErH,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,QAAQ,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAO,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAK,cAAc,EAAE,CAAC;IAEpC,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACrE,MAAM,EAAE,UAAU,EAAE,GAAY,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;IACjE,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,qBAAqB,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,MAAM,GAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,SAAS,EAAE,EAAE,CAAC;QAChB,MAAM,QAAQ,EAAE,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,6 +1,12 @@
1
1
  import { ParserRegistry } from "./registry.js";
2
2
  /**
3
- * ์ „์—ญ ์‹ฑ๊ธ€ํ„ด Parser Registry. ์„œ๋ฒ„ ์‹œ์ž‘ ์‹œ ํ•œ ๋ฒˆ ์ดˆ๊ธฐํ™”๋œ๋‹ค.
3
+ * 44๊ฐœ ๋‚ด์žฅ ํŒŒ์„œ๊ฐ€ ๋“ฑ๋ก๋œ ์ƒˆ ParserRegistry ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
4
+ * ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ, ํ…Œ์ŠคํŠธ๋‚˜ CLI์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
5
+ */
6
+ export declare function createRegistry(): ParserRegistry;
7
+ /**
8
+ * ํ•˜์œ„ ํ˜ธํ™˜์šฉ ์ „์—ญ ์‹ฑ๊ธ€ํ„ด. ๊ธฐ์กด server.ts import๋ฅผ ๊นจ์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์œ ์ง€.
9
+ * @deprecated ์‹ ๊ทœ ์ฝ”๋“œ๋Š” createRegistry()๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ.
4
10
  */
5
11
  export declare const defaultRegistry: ParserRegistry;
6
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAmD,eAAe,CAAC;AAa5F;;GAEG;AACH,eAAO,MAAM,eAAe,gBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAmD,eAAe,CAAC;AAa5F;;;GAGG;AACH,wBAAgB,cAAc,IAAI,cAAc,CAyD/C;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,gBAAmB,CAAC"}
@@ -10,62 +10,71 @@ import { parseDir, parseTasklist, parseIpconfig, parseSysteminfo } from "./windo
10
10
  import { parseKubectl, parseDocker, parseGh, parseHelm, parseTerraform } from "./devops/index.js";
11
11
  import { parseNpm, parseCargo } from "./packages/index.js";
12
12
  /**
13
- * ์ „์—ญ ์‹ฑ๊ธ€ํ„ด Parser Registry. ์„œ๋ฒ„ ์‹œ์ž‘ ์‹œ ํ•œ ๋ฒˆ ์ดˆ๊ธฐํ™”๋œ๋‹ค.
13
+ * 44๊ฐœ ๋‚ด์žฅ ํŒŒ์„œ๊ฐ€ ๋“ฑ๋ก๋œ ์ƒˆ ParserRegistry ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
14
+ * ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ, ํ…Œ์ŠคํŠธ๋‚˜ CLI์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
14
15
  */
15
- export const defaultRegistry = new ParserRegistry();
16
- defaultRegistry.register("ls", parseLs);
17
- defaultRegistry.register("find", parseFind);
18
- defaultRegistry.register("stat", parseStat);
19
- defaultRegistry.register("du", parseDu);
20
- defaultRegistry.register("df", parseDf);
21
- defaultRegistry.register("tree", parseTree);
22
- defaultRegistry.register("ps", parsePs);
23
- defaultRegistry.register("kill", parseKill);
24
- defaultRegistry.register("ping", parsePing);
25
- defaultRegistry.register("curl", parseCurl);
26
- defaultRegistry.register("netstat", parseNetstat);
27
- defaultRegistry.register("lsof", parseLsof);
28
- defaultRegistry.register("ss", parseSs);
29
- defaultRegistry.register("dig", parseDig);
30
- defaultRegistry.register("grep", parseGrep);
31
- defaultRegistry.register("wc", parseWc);
32
- defaultRegistry.register("head", parseHead);
33
- defaultRegistry.register("tail", parseTail);
34
- defaultRegistry.register("cat", parseCat);
35
- defaultRegistry.register("env", parseEnv);
36
- defaultRegistry.register("pwd", parsePwd);
37
- defaultRegistry.register("which", parseWhich);
38
- defaultRegistry.register("free", parseFree);
39
- defaultRegistry.register("uname", parseUname);
40
- defaultRegistry.register("id", parseId);
41
- defaultRegistry.register("systemctl", parseSystemctl);
42
- defaultRegistry.register("journalctl", parseJournalctl);
43
- defaultRegistry.register("dir", parseDir);
44
- defaultRegistry.register("tasklist", parseTasklist);
45
- defaultRegistry.register("ipconfig", parseIpconfig);
46
- defaultRegistry.register("systeminfo", parseSysteminfo);
47
- defaultRegistry.register("kubectl", parseKubectl);
48
- defaultRegistry.register("docker", parseDocker);
49
- defaultRegistry.register("gh", parseGh);
50
- defaultRegistry.register("helm", parseHelm);
51
- defaultRegistry.register("terraform", parseTerraform);
52
- defaultRegistry.register("apt", parseApt);
53
- defaultRegistry.register("brew", parseBrew);
54
- defaultRegistry.register("npm", parseNpm);
55
- defaultRegistry.register("pnpm", parseNpm);
56
- defaultRegistry.register("yarn", parseNpm);
57
- defaultRegistry.register("cargo", parseCargo);
58
- // git์€ ์„œ๋ธŒ์ปค๋งจ๋“œ ๊ธฐ๋ฐ˜ โ€” args[0]์œผ๋กœ ํŒŒ์„œ๋ฅผ ์„ ํƒ
59
- defaultRegistry.register("git", (cmd, args, raw) => {
60
- const sub = args[0];
61
- if (sub === "status")
62
- return parseGitStatus(cmd, args, raw);
63
- if (sub === "log")
64
- return parseGitLog(cmd, args, raw);
65
- if (sub === "diff")
66
- return parseGitDiff(cmd, args, raw);
67
- if (sub === "branch")
68
- return parseGitBranch(cmd, args, raw);
69
- return null;
70
- });
16
+ export function createRegistry() {
17
+ const registry = new ParserRegistry();
18
+ registry.register("ls", parseLs);
19
+ registry.register("find", parseFind);
20
+ registry.register("stat", parseStat);
21
+ registry.register("du", parseDu);
22
+ registry.register("df", parseDf);
23
+ registry.register("tree", parseTree);
24
+ registry.register("ps", parsePs);
25
+ registry.register("kill", parseKill);
26
+ registry.register("ping", parsePing);
27
+ registry.register("curl", parseCurl);
28
+ registry.register("netstat", parseNetstat);
29
+ registry.register("lsof", parseLsof);
30
+ registry.register("ss", parseSs);
31
+ registry.register("dig", parseDig);
32
+ registry.register("grep", parseGrep);
33
+ registry.register("wc", parseWc);
34
+ registry.register("head", parseHead);
35
+ registry.register("tail", parseTail);
36
+ registry.register("cat", parseCat);
37
+ registry.register("env", parseEnv);
38
+ registry.register("pwd", parsePwd);
39
+ registry.register("which", parseWhich);
40
+ registry.register("free", parseFree);
41
+ registry.register("uname", parseUname);
42
+ registry.register("id", parseId);
43
+ registry.register("systemctl", parseSystemctl);
44
+ registry.register("journalctl", parseJournalctl);
45
+ registry.register("dir", parseDir);
46
+ registry.register("tasklist", parseTasklist);
47
+ registry.register("ipconfig", parseIpconfig);
48
+ registry.register("systeminfo", parseSysteminfo);
49
+ registry.register("kubectl", parseKubectl);
50
+ registry.register("docker", parseDocker);
51
+ registry.register("gh", parseGh);
52
+ registry.register("helm", parseHelm);
53
+ registry.register("terraform", parseTerraform);
54
+ registry.register("apt", parseApt);
55
+ registry.register("brew", parseBrew);
56
+ registry.register("npm", parseNpm);
57
+ registry.register("pnpm", parseNpm);
58
+ registry.register("yarn", parseNpm);
59
+ registry.register("cargo", parseCargo);
60
+ // git์€ ์„œ๋ธŒ์ปค๋งจ๋“œ ๊ธฐ๋ฐ˜ โ€” args[0]์œผ๋กœ ํŒŒ์„œ๋ฅผ ์„ ํƒ
61
+ registry.register("git", (cmd, args, raw) => {
62
+ const sub = args[0];
63
+ if (sub === "status")
64
+ return parseGitStatus(cmd, args, raw);
65
+ if (sub === "log")
66
+ return parseGitLog(cmd, args, raw);
67
+ if (sub === "diff")
68
+ return parseGitDiff(cmd, args, raw);
69
+ if (sub === "branch")
70
+ return parseGitBranch(cmd, args, raw);
71
+ return null;
72
+ });
73
+ return registry;
74
+ }
75
+ /**
76
+ * ํ•˜์œ„ ํ˜ธํ™˜์šฉ ์ „์—ญ ์‹ฑ๊ธ€ํ„ด. ๊ธฐ์กด server.ts import๋ฅผ ๊นจ์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์œ ์ง€.
77
+ * @deprecated ์‹ ๊ทœ ์ฝ”๋“œ๋Š” createRegistry()๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ.
78
+ */
79
+ export const defaultRegistry = createRegistry();
71
80
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"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"}
@@ -17,17 +17,66 @@ export interface ParseContext {
17
17
  * ํŒŒ์„œ ํ•จ์ˆ˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜.
18
18
  */
19
19
  export type ParserFn = (cmd: string, args: string[], raw: string, ctx?: ParseContext) => unknown;
20
+ /**
21
+ * Fixture: ํŒŒ์„œ ๊ฒ€์ฆ์šฉ ์ž…์ถœ๋ ฅ ์Œ.
22
+ */
23
+ export interface Fixture {
24
+ input: string;
25
+ args: string[];
26
+ expected: unknown;
27
+ }
28
+ /**
29
+ * ํŒŒ์„œ ํŒฉ: ๋ช…๋ น์–ด ํŒŒ์„œ์˜ ์™„์ „ํ•œ ์ •์˜.
30
+ * name -- ๋Œ€์ƒ ๋ช…๋ น์–ด (์˜ˆ: "htop")
31
+ * parse -- raw stdout + args -> ๊ตฌ์กฐํ™”๋œ ๊ฒฐ๊ณผ (null์ด๋ฉด ํŒŒ์‹ฑ ๋ถˆ๊ฐ€)
32
+ * schema -- ์ถœ๋ ฅ JSON ์Šคํ‚ค๋งˆ (๊ฒ€์ฆ/๋ฌธ์„œ ์šฉ๋„)
33
+ * fixtures -- ์ž…์ถœ๋ ฅ ์Œ (ํ…Œ์ŠคํŠธ/๊ฒ€์ฆ ์šฉ๋„)
34
+ * meta -- ์„ ํƒ์  ๋ฉ”ํƒ€ ์ •๋ณด
35
+ */
36
+ export interface ParserPack {
37
+ name: string;
38
+ parse: (raw: string, args: string[], ctx?: ParseContext) => unknown;
39
+ schema: Record<string, unknown>;
40
+ fixtures: Fixture[];
41
+ meta?: {
42
+ os?: string[];
43
+ version?: string;
44
+ };
45
+ }
46
+ /**
47
+ * ํŒŒ์„œ ์‹คํ–‰ ๊ฒฐ๊ณผ. parsed๊ฐ€ null์ผ ๋•Œ parse_error๊ฐ€ ์žˆ์œผ๋ฉด ํŒŒ์„œ ์˜ˆ์™ธ, ์—†์œผ๋ฉด ํŒŒ์„œ ์—†์Œ.
48
+ */
49
+ export interface ParseResult {
50
+ parsed: unknown | null;
51
+ parse_error?: {
52
+ reason: "parser_exception";
53
+ message: string;
54
+ };
55
+ }
20
56
  /**
21
57
  * ๋ช…๋ น์–ด โ†’ ํŒŒ์„œ ํ•จ์ˆ˜์˜ ๋งคํ•‘ ํ…Œ์ด๋ธ”.
22
- * ํŒŒ์„œ๊ฐ€ ์—†๊ฑฐ๋‚˜ ์‹คํŒจํ•˜๋ฉด null์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค (graceful degradation).
58
+ * ํŒŒ์„œ๊ฐ€ ์—†์œผ๋ฉด parsed=null. ํŒŒ์„œ๊ฐ€ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋ฉด parsed=null, parse_error ์„ค์ •.
23
59
  */
24
60
  export declare class ParserRegistry {
25
61
  private readonly parsers;
62
+ private readonly packs;
26
63
  register(cmd: string, fn: ParserFn): void;
64
+ /**
65
+ * ParserPack์„ ๋“ฑ๋กํ•œ๋‹ค. parsers Map์—๋„ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋“ฑ๋กํ•˜์—ฌ ๊ธฐ์กด parse() ๊ฒฝ๋กœ์™€ ํ˜ธํ™˜.
66
+ */
67
+ registerPack(pack: ParserPack): void;
68
+ /**
69
+ * ๋“ฑ๋ก๋œ ParserPack์„ ์ด๋ฆ„์œผ๋กœ ์กฐํšŒํ•œ๋‹ค.
70
+ */
71
+ getPack(name: string): ParserPack | undefined;
72
+ /**
73
+ * ๋“ฑ๋ก๋œ ๋ชจ๋“  ParserPack ์ด๋ฆ„ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
74
+ */
75
+ listPacks(): string[];
27
76
  /**
28
77
  * cmd์— ๋“ฑ๋ก๋œ ํŒŒ์„œ๋ฅผ ์ฐพ์•„ ์‹คํ–‰ํ•œ๋‹ค.
29
- * ํŒŒ์„œ ์—†์Œ ๋˜๋Š” ์˜ˆ์™ธ โ†’ null ๋ฐ˜ํ™˜.
78
+ * ํŒŒ์„œ ์—†์Œ โ†’ { parsed: null }. ํŒŒ์„œ ์˜ˆ์™ธ โ†’ { parsed: null, parse_error }.
30
79
  */
31
- parse(cmd: string, args: string[], raw: string, ctx?: ParseContext): unknown | null;
80
+ parse(cmd: string, args: string[], raw: string, ctx?: ParseContext): ParseResult;
32
81
  }
33
82
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/parsers/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAI,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC;AAEjG;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IAEvD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAIzC;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,IAAI;CAUpF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/parsers/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAI,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAK,MAAM,CAAC;IACjB,IAAI,EAAM,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAO,MAAM,CAAC;IAClB,KAAK,EAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC;IACxE,MAAM,EAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,EAAG,OAAO,EAAE,CAAC;IACrB,IAAI,CAAC,EAAM;QAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAO,OAAO,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,kBAAkB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IAEzD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAIzC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAKpC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI7C;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,WAAW;CAYjF"}
@@ -1,25 +1,47 @@
1
1
  /**
2
2
  * ๋ช…๋ น์–ด โ†’ ํŒŒ์„œ ํ•จ์ˆ˜์˜ ๋งคํ•‘ ํ…Œ์ด๋ธ”.
3
- * ํŒŒ์„œ๊ฐ€ ์—†๊ฑฐ๋‚˜ ์‹คํŒจํ•˜๋ฉด null์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค (graceful degradation).
3
+ * ํŒŒ์„œ๊ฐ€ ์—†์œผ๋ฉด parsed=null. ํŒŒ์„œ๊ฐ€ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋ฉด parsed=null, parse_error ์„ค์ •.
4
4
  */
5
5
  export class ParserRegistry {
6
6
  parsers = new Map();
7
+ packs = new Map();
7
8
  register(cmd, fn) {
8
9
  this.parsers.set(cmd, fn);
9
10
  }
11
+ /**
12
+ * ParserPack์„ ๋“ฑ๋กํ•œ๋‹ค. parsers Map์—๋„ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋“ฑ๋กํ•˜์—ฌ ๊ธฐ์กด parse() ๊ฒฝ๋กœ์™€ ํ˜ธํ™˜.
13
+ */
14
+ registerPack(pack) {
15
+ this.packs.set(pack.name, pack);
16
+ this.parsers.set(pack.name, (_cmd, args, raw, ctx) => pack.parse(raw, args, ctx));
17
+ }
18
+ /**
19
+ * ๋“ฑ๋ก๋œ ParserPack์„ ์ด๋ฆ„์œผ๋กœ ์กฐํšŒํ•œ๋‹ค.
20
+ */
21
+ getPack(name) {
22
+ return this.packs.get(name);
23
+ }
24
+ /**
25
+ * ๋“ฑ๋ก๋œ ๋ชจ๋“  ParserPack ์ด๋ฆ„ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
26
+ */
27
+ listPacks() {
28
+ return [...this.packs.keys()];
29
+ }
10
30
  /**
11
31
  * cmd์— ๋“ฑ๋ก๋œ ํŒŒ์„œ๋ฅผ ์ฐพ์•„ ์‹คํ–‰ํ•œ๋‹ค.
12
- * ํŒŒ์„œ ์—†์Œ ๋˜๋Š” ์˜ˆ์™ธ โ†’ null ๋ฐ˜ํ™˜.
32
+ * ํŒŒ์„œ ์—†์Œ โ†’ { parsed: null }. ํŒŒ์„œ ์˜ˆ์™ธ โ†’ { parsed: null, parse_error }.
13
33
  */
14
34
  parse(cmd, args, raw, ctx) {
15
35
  const fn = this.parsers.get(cmd);
16
36
  if (!fn)
17
- return null;
37
+ return { parsed: null };
18
38
  try {
19
- return fn(cmd, args, raw, ctx);
39
+ const parsed = fn(cmd, args, raw, ctx);
40
+ return { parsed: parsed ?? null };
20
41
  }
21
- catch {
22
- return null;
42
+ catch (err) {
43
+ const message = err instanceof Error ? err.message : String(err);
44
+ return { parsed: null, parse_error: { reason: "parser_exception", message } };
23
45
  }
24
46
  }
25
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/parsers/registry.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,MAAM,OAAO,cAAc;IACR,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEvD,QAAQ,CAAC,GAAW,EAAE,EAAY;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAW,EAAE,IAAc,EAAE,GAAW,EAAE,GAAkB;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAErB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/parsers/registry.ts"],"names":[],"mappings":"AAuDA;;;GAGG;AACH,MAAM,OAAO,cAAc;IACR,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IACtC,KAAK,GAAK,IAAI,GAAG,EAAsB,CAAC;IAEzD,QAAQ,CAAC,GAAW,EAAE,EAAY;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAAgB;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAW,EAAE,IAAc,EAAE,GAAW,EAAE,GAAkB;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACvC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,CAAC;QAChF,CAAC;IACH,CAAC;CACF"}
package/dist/server.d.ts CHANGED
@@ -1,19 +1,20 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { PrismConfig } from "./config/loader.js";
3
+ import type { ParserRegistry } from "./parsers/registry.js";
3
4
  import type { OutputFormat } from "./parsers/registry.js";
4
- export declare const PACKAGE_VERSION = "0.3.0";
5
+ export declare const PACKAGE_VERSION = "0.5.0";
5
6
  /**
6
7
  * Guard ๊ฒ€์‚ฌ โ†’ ์‹คํ–‰ โ†’ JSON ์ง๋ ฌํ™”๊นŒ์ง€์˜ ํŒŒ์ดํ”„๋ผ์ธ.
7
8
  * MCP ์„œ๋ฒ„์™€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
8
9
  */
9
- export declare function buildRunResult(cmd: string, args: string[], cwd: string, config: PrismConfig, format?: OutputFormat): Promise<string>;
10
+ export declare function buildRunResult(cmd: string, args: string[], cwd: string, config: PrismConfig, registry: ParserRegistry, format?: OutputFormat, includeDiff?: boolean): Promise<string>;
10
11
  /**
11
12
  * Guard ๊ฒ€์‚ฌ โ†’ ์‹คํ–‰ โ†’ ํŽ˜์ด์ง€ ๋ถ„ํ•  โ†’ JSON ์ง๋ ฌํ™”.
12
13
  * parsed๋Š” ํ•ญ์ƒ null (๋ถ€๋ถ„ ์ถœ๋ ฅ์€ ๊ตฌ์กฐํ™” ํŒŒ์‹ฑ ๋ถˆ๊ฐ€).
13
14
  */
14
- export declare function buildPagedResult(cmd: string, args: string[], cwd: string, page: number, pageSize: number, config: PrismConfig): Promise<string>;
15
+ export declare function buildPagedResult(cmd: string, args: string[], cwd: string, page: number, pageSize: number, config: PrismConfig, includeDiff?: boolean): Promise<string>;
15
16
  /**
16
17
  * MCP ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•˜๊ณ  `run` ๋„๊ตฌ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.
17
18
  */
18
- export declare function createServer(config: PrismConfig): McpServer;
19
+ export declare function createServer(config: PrismConfig, registry: ParserRegistry): McpServer;
19
20
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAY,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAW,uBAAuB,CAAC;AAI/D,eAAO,MAAM,eAAe,UAAU,CAAC;AAsBvC;;;GAGG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAK,MAAM,EACd,IAAI,EAAI,MAAM,EAAE,EAChB,GAAG,EAAK,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,MAAM,GAAE,YAAqB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAO,MAAM,EAChB,IAAI,EAAM,MAAM,EAAE,EAClB,GAAG,EAAO,MAAM,EAChB,IAAI,EAAM,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAI,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AA2BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CA8C3D"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAY,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAQ,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAW,uBAAuB,CAAC;AAI/D,eAAO,MAAM,eAAe,UAAU,CAAC;AAsBvC;;;GAGG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAU,MAAM,EACnB,IAAI,EAAS,MAAM,EAAE,EACrB,GAAG,EAAU,MAAM,EACnB,MAAM,EAAO,WAAW,EACxB,QAAQ,EAAK,cAAc,EAC3B,MAAM,GAAO,YAAqB,EAClC,WAAW,GAAE,OAAkB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAU,MAAM,EACnB,IAAI,EAAS,MAAM,EAAE,EACrB,GAAG,EAAU,MAAM,EACnB,IAAI,EAAS,MAAM,EACnB,QAAQ,EAAK,MAAM,EACnB,MAAM,EAAO,WAAW,EACxB,WAAW,GAAE,OAAc,GAC1B,OAAO,CAAC,MAAM,CAAC,CAwBjB;AA2BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,GAAG,SAAS,CAkDrF"}
package/dist/server.js CHANGED
@@ -2,11 +2,10 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { z } from "zod";
3
3
  import { execute } from "./engine/executor.js";
4
4
  import { checkGuard, GuardError } from "./engine/guard.js";
5
- import { defaultRegistry } from "./parsers/index.js";
6
5
  import { paginateLines } from "./engine/paginator.js";
7
6
  import { toCompact } from "./parsers/compact.js";
8
7
  import { tryParseNativeJson } from "./parsers/json-passthrough.js";
9
- export const PACKAGE_VERSION = "0.3.0";
8
+ export const PACKAGE_VERSION = "0.5.0";
10
9
  /**
11
10
  * Guard ์ฐจ๋‹จ ์‹œ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—๋Ÿฌ ๋ด‰ํˆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
12
11
  */
@@ -28,7 +27,7 @@ function buildGuardErrorEnvelope(cmd, args, cwd, err) {
28
27
  * Guard ๊ฒ€์‚ฌ โ†’ ์‹คํ–‰ โ†’ JSON ์ง๋ ฌํ™”๊นŒ์ง€์˜ ํŒŒ์ดํ”„๋ผ์ธ.
29
28
  * MCP ์„œ๋ฒ„์™€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
30
29
  */
31
- export async function buildRunResult(cmd, args, cwd, config, format = "json") {
30
+ export async function buildRunResult(cmd, args, cwd, config, registry, format = "json", includeDiff = true) {
32
31
  try {
33
32
  checkGuard(cmd, args, cwd, config);
34
33
  }
@@ -37,15 +36,16 @@ export async function buildRunResult(cmd, args, cwd, config, format = "json") {
37
36
  return buildGuardErrorEnvelope(cmd, args, cwd, err);
38
37
  throw err;
39
38
  }
40
- const envelope = await execute(cmd, args, cwd, config.guard.env_secret_patterns, config.guard.timeout_ms, config.guard.max_output_bytes);
39
+ const envelope = await execute(cmd, args, cwd, config.guard.env_secret_patterns, config.guard.timeout_ms, config.guard.max_output_bytes, includeDiff);
41
40
  const parseFormat = format === "json-no-raw" ? "json" : format;
42
- let parsed = defaultRegistry.parse(cmd, args, envelope.stdout.raw, { maxItems: config.guard.max_items, format: parseFormat });
41
+ const parseResult = registry.parse(cmd, args, envelope.stdout.raw, { maxItems: config.guard.max_items, format: parseFormat });
42
+ let parsed = parseResult.parsed;
43
43
  if (parsed == null)
44
44
  parsed = tryParseNativeJson(envelope.stdout.raw);
45
45
  const final = parseFormat === "compact" ? toCompact(parsed) : parsed;
46
46
  const stdout = format === "json-no-raw"
47
- ? { raw: "", parsed: final }
48
- : { ...envelope.stdout, parsed: final };
47
+ ? { raw: "", parsed: final, ...(parseResult.parse_error && { parse_error: parseResult.parse_error }) }
48
+ : { ...envelope.stdout, parsed: final, ...(parseResult.parse_error && { parse_error: parseResult.parse_error }) };
49
49
  const enriched = { ...envelope, stdout };
50
50
  return JSON.stringify(enriched, null, 2);
51
51
  }
@@ -53,7 +53,7 @@ export async function buildRunResult(cmd, args, cwd, config, format = "json") {
53
53
  * Guard ๊ฒ€์‚ฌ โ†’ ์‹คํ–‰ โ†’ ํŽ˜์ด์ง€ ๋ถ„ํ•  โ†’ JSON ์ง๋ ฌํ™”.
54
54
  * parsed๋Š” ํ•ญ์ƒ null (๋ถ€๋ถ„ ์ถœ๋ ฅ์€ ๊ตฌ์กฐํ™” ํŒŒ์‹ฑ ๋ถˆ๊ฐ€).
55
55
  */
56
- export async function buildPagedResult(cmd, args, cwd, page, pageSize, config) {
56
+ export async function buildPagedResult(cmd, args, cwd, page, pageSize, config, includeDiff = true) {
57
57
  try {
58
58
  checkGuard(cmd, args, cwd, config);
59
59
  }
@@ -63,7 +63,7 @@ export async function buildPagedResult(cmd, args, cwd, page, pageSize, config) {
63
63
  throw err;
64
64
  }
65
65
  // ์ „์ฒด stdout์ด ํ•„์š”ํ•˜๋ฏ€๋กœ max_output_bytes ๋น„ํ™œ์„ฑ (0)
66
- const envelope = await execute(cmd, args, cwd, config.guard.env_secret_patterns, config.guard.timeout_ms, 0);
66
+ const envelope = await execute(cmd, args, cwd, config.guard.env_secret_patterns, config.guard.timeout_ms, 0, includeDiff);
67
67
  const { lines, page_info } = paginateLines(envelope.stdout.raw, page, pageSize);
68
68
  const pagedRaw = lines.join("\n") + (lines.length > 0 ? "\n" : "");
69
69
  const enriched = {
@@ -100,7 +100,7 @@ Usage:
100
100
  /**
101
101
  * MCP ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•˜๊ณ  `run` ๋„๊ตฌ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.
102
102
  */
103
- export function createServer(config) {
103
+ export function createServer(config, registry) {
104
104
  const server = new McpServer({ name: "parism", version: PACKAGE_VERSION }, { instructions: MCP_INSTRUCTIONS });
105
105
  server.tool("run", "Execute a shell command and receive structured output. " +
106
106
  "All commands are filtered through an execution guard (whitelist + injection prevention). " +
@@ -110,8 +110,10 @@ export function createServer(config) {
110
110
  cwd: z.string().default(process.cwd()).describe("Working directory"),
111
111
  format: z.enum(["json", "compact", "json-no-raw"]).default("json")
112
112
  .describe("Output format. 'compact'=columnar. 'json-no-raw'=omit raw for token savings."),
113
- }, async ({ cmd, args, cwd, format }) => {
114
- const result = await buildRunResult(cmd, args, cwd, config, format);
113
+ includeDiff: z.boolean().default(false)
114
+ .describe("Include filesystem diff (created/deleted/modified). false=skip snapshot, lower latency."),
115
+ }, async ({ cmd, args, cwd, format, includeDiff }) => {
116
+ const result = await buildRunResult(cmd, args, cwd, config, registry, format, includeDiff);
115
117
  return {
116
118
  content: [{ type: "text", text: result }],
117
119
  };
@@ -125,8 +127,10 @@ export function createServer(config) {
125
127
  page: z.number().int().min(0).default(0).describe("Page index (0-based)"),
126
128
  page_size: z.number().int().min(1).default(config.guard.default_page_size)
127
129
  .describe("Lines per page"),
128
- }, async ({ cmd, args, cwd, page, page_size }) => {
129
- const result = await buildPagedResult(cmd, args, cwd, page, page_size, config);
130
+ includeDiff: z.boolean().default(false)
131
+ .describe("Include filesystem diff. false=skip snapshot, lower latency."),
132
+ }, async ({ cmd, args, cwd, page, page_size, includeDiff }) => {
133
+ const result = await buildPagedResult(cmd, args, cwd, page, page_size, config, includeDiff);
130
134
  return { content: [{ type: "text", text: result }] };
131
135
  });
132
136
  return server;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,18 @@
1
+ /**
2
+ * ํŒŒ์„œ ์˜ˆ์™ธ ์ •๋ณด. ํŒŒ์„œ๊ฐ€ ์˜ˆ์™ธ๋ฅผ ๋˜์กŒ์„ ๋•Œ๋งŒ ์กด์žฌ. "ํŒŒ์„œ ์—†์Œ"๊ณผ "ํŒŒ์„œ ๋ฒ„๊ทธ"๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.
3
+ */
4
+ export interface ParseErrorField {
5
+ reason: "parser_exception";
6
+ message: string;
7
+ }
1
8
  /**
2
9
  * ๋ช…๋ น stdout/stderr ํ•„๋“œ. raw๋Š” ํ•ญ์ƒ ๋ณด์กด๋˜๊ณ , parsed๋Š” ํŒŒ์„œ ์กด์žฌ ์‹œ ์ฑ„์›Œ์ง„๋‹ค.
10
+ * parse_error๋Š” ํŒŒ์„œ๊ฐ€ ์˜ˆ์™ธ๋ฅผ ๋˜์กŒ์„ ๋•Œ๋งŒ ์กด์žฌํ•œ๋‹ค (ํŒŒ์„œ ์—†์Œ๊ณผ ๊ตฌ๋ถ„).
3
11
  */
4
12
  export interface OutputField {
5
13
  raw: string;
6
14
  parsed: unknown | null;
15
+ parse_error?: ParseErrorField;
7
16
  }
8
17
  export type StdoutField = OutputField;
9
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/types/envelope.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAK,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB;AAGD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAG,MAAM,EAAE,CAAC;IACnB,OAAO,EAAG,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAS,MAAM,CAAC;IACpB,SAAS,EAAI,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAK,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAW,OAAO,CAAC;IACrB,QAAQ,EAAK,MAAM,CAAC;IACpB,GAAG,EAAU,MAAM,CAAC;IACpB,IAAI,EAAS,MAAM,EAAE,CAAC;IACtB,GAAG,EAAU,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAO,WAAW,CAAC;IACzB,MAAM,EAAO,WAAW,CAAC;IACzB,IAAI,EAAS,SAAS,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAG,OAAO,CAAC;IACrB,SAAS,CAAC,EAAG,QAAQ,CAAC;CACvB"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/types/envelope.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAG,kBAAkB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAU,MAAM,CAAC;IACpB,MAAM,EAAO,OAAO,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAGD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAG,MAAM,EAAE,CAAC;IACnB,OAAO,EAAG,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAS,MAAM,CAAC;IACpB,SAAS,EAAI,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAK,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAW,OAAO,CAAC;IACrB,QAAQ,EAAK,MAAM,CAAC;IACpB,GAAG,EAAU,MAAM,CAAC;IACpB,IAAI,EAAS,MAAM,EAAE,CAAC;IACtB,GAAG,EAAU,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAO,WAAW,CAAC;IACzB,MAAM,EAAO,WAAW,CAAC;IACzB,IAAI,EAAS,SAAS,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAG,OAAO,CAAC;IACrB,SAAS,CAAC,EAAG,QAAQ,CAAC;CACvB"}
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@nerdvana/parism",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Structured shell output wrapper for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
+ "exports": {
8
+ ".": "./dist/index.js",
9
+ "./types": "./dist/parsers/registry.js"
10
+ },
7
11
  "bin": {
8
12
  "parism": "dist/index.js"
9
13
  },
@@ -19,6 +23,7 @@
19
23
  },
20
24
  "dependencies": {
21
25
  "@modelcontextprotocol/sdk": "^1.10.0",
26
+ "commander": "^14.0.3",
22
27
  "zod": "^3.24.0"
23
28
  },
24
29
  "devDependencies": {
package/prism.config.json CHANGED
@@ -15,12 +15,15 @@
15
15
  "terraform", "helm", "cargo",
16
16
  "systemctl", "journalctl", "apt", "brew"
17
17
  ],
18
- "allowed_paths": [],
18
+ "allowed_paths": ["./"],
19
19
  "timeout_ms": 10000,
20
20
  "block_patterns": [";", "$(", "`", "&&", "||", ">", ">>", "<", "|"],
21
21
  "command_arg_restrictions": {
22
22
  "node": { "blocked_flags": ["-e", "--eval", "-r", "--require", "-p", "--print", "--input-type"] },
23
- "npx": { "blocked_flags": ["--yes", "-y"] }
23
+ "npx": { "blocked_flags": ["--yes", "-y"] },
24
+ "curl": {
25
+ "blocked_flags": ["-d", "--data", "-F", "--upload-file", "-T", "-K", "--config", "-o", "--output", "-O"]
26
+ }
24
27
  },
25
28
  "env_secret_patterns": [
26
29
  "TOKEN", "SECRET", "AUTHZ", "PASSWORD", "PASSWD", "CREDENTIAL"