codingbuddy 4.2.0 → 4.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.
Files changed (124) hide show
  1. package/dist/src/cli/cli.d.ts +2 -2
  2. package/dist/src/cli/cli.js +4 -2
  3. package/dist/src/cli/cli.js.map +1 -1
  4. package/dist/src/cli/cli.types.d.ts +3 -0
  5. package/dist/src/cli/init/prompts/agent-prompt.d.ts +1 -1
  6. package/dist/src/cli/restart-tui.d.ts +9 -0
  7. package/dist/src/cli/restart-tui.js +30 -0
  8. package/dist/src/cli/restart-tui.js.map +1 -0
  9. package/dist/src/cli/run-tui.d.ts +3 -1
  10. package/dist/src/cli/run-tui.js +13 -1
  11. package/dist/src/cli/run-tui.js.map +1 -1
  12. package/dist/src/keyword/keyword.types.d.ts +3 -3
  13. package/dist/src/keyword/keyword.types.js +31 -1
  14. package/dist/src/keyword/keyword.types.js.map +1 -1
  15. package/dist/src/keyword/patterns/backend.patterns.js +10 -0
  16. package/dist/src/keyword/patterns/backend.patterns.js.map +1 -1
  17. package/dist/src/keyword/patterns/context.patterns.js +1 -1
  18. package/dist/src/keyword/patterns/data-science.patterns.d.ts +2 -0
  19. package/dist/src/keyword/patterns/data-science.patterns.js +71 -0
  20. package/dist/src/keyword/patterns/data-science.patterns.js.map +1 -0
  21. package/dist/src/keyword/patterns/index.d.ts +3 -0
  22. package/dist/src/keyword/patterns/index.js +7 -1
  23. package/dist/src/keyword/patterns/index.js.map +1 -1
  24. package/dist/src/keyword/patterns/intent-pattern-checks.js +24 -0
  25. package/dist/src/keyword/patterns/intent-pattern-checks.js.map +1 -1
  26. package/dist/src/keyword/patterns/security.patterns.d.ts +2 -0
  27. package/dist/src/keyword/patterns/security.patterns.js +106 -0
  28. package/dist/src/keyword/patterns/security.patterns.js.map +1 -0
  29. package/dist/src/keyword/patterns/systems.patterns.d.ts +2 -0
  30. package/dist/src/keyword/patterns/systems.patterns.js +101 -0
  31. package/dist/src/keyword/patterns/systems.patterns.js.map +1 -0
  32. package/dist/src/keyword/patterns/test.patterns.d.ts +2 -0
  33. package/dist/src/keyword/patterns/test.patterns.js +71 -0
  34. package/dist/src/keyword/patterns/test.patterns.js.map +1 -0
  35. package/dist/src/keyword/strategies/__tests__/strategy-test.utils.d.ts +1 -1
  36. package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js +4 -0
  37. package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js.map +1 -1
  38. package/dist/src/keyword/strategies/act-agent.strategy.js +2 -2
  39. package/dist/src/keyword/strategies/act-agent.strategy.js.map +1 -1
  40. package/dist/src/mcp/handlers/index.d.ts +1 -0
  41. package/dist/src/mcp/handlers/index.js +3 -1
  42. package/dist/src/mcp/handlers/index.js.map +1 -1
  43. package/dist/src/mcp/handlers/mode.handler.js +15 -1
  44. package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
  45. package/dist/src/mcp/handlers/tui.handler.d.ts +8 -0
  46. package/dist/src/mcp/handlers/tui.handler.js +50 -0
  47. package/dist/src/mcp/handlers/tui.handler.js.map +1 -0
  48. package/dist/src/mcp/mcp.module.js +1 -0
  49. package/dist/src/mcp/mcp.module.js.map +1 -1
  50. package/dist/src/shared/version.d.ts +1 -0
  51. package/dist/src/shared/version.js +5 -0
  52. package/dist/src/shared/version.js.map +1 -0
  53. package/dist/src/shared/version.utils.js +2 -14
  54. package/dist/src/shared/version.utils.js.map +1 -1
  55. package/dist/src/tui/__perf__/rendering-performance.spec.js +4 -4
  56. package/dist/src/tui/__perf__/rendering-performance.spec.js.map +1 -1
  57. package/dist/src/tui/components/ActivityVisualizer.d.ts +7 -3
  58. package/dist/src/tui/components/ActivityVisualizer.js +8 -9
  59. package/dist/src/tui/components/ActivityVisualizer.js.map +1 -1
  60. package/dist/src/tui/components/ActivityVisualizer.spec.js +73 -27
  61. package/dist/src/tui/components/ActivityVisualizer.spec.js.map +1 -1
  62. package/dist/src/tui/components/ChecklistPanel.d.ts +10 -0
  63. package/dist/src/tui/components/ChecklistPanel.js +19 -0
  64. package/dist/src/tui/components/ChecklistPanel.js.map +1 -0
  65. package/dist/src/tui/components/ChecklistPanel.spec.d.ts +1 -0
  66. package/dist/src/tui/components/ChecklistPanel.spec.js +45 -0
  67. package/dist/src/tui/components/ChecklistPanel.spec.js.map +1 -0
  68. package/dist/src/tui/components/FocusedAgentPanel.d.ts +2 -8
  69. package/dist/src/tui/components/FocusedAgentPanel.js +1 -14
  70. package/dist/src/tui/components/FocusedAgentPanel.js.map +1 -1
  71. package/dist/src/tui/components/FocusedAgentPanel.spec.js +20 -51
  72. package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +1 -1
  73. package/dist/src/tui/components/HeaderBar.d.ts +1 -2
  74. package/dist/src/tui/components/HeaderBar.js +3 -7
  75. package/dist/src/tui/components/HeaderBar.js.map +1 -1
  76. package/dist/src/tui/components/HeaderBar.spec.js +13 -13
  77. package/dist/src/tui/components/HeaderBar.spec.js.map +1 -1
  78. package/dist/src/tui/components/StageHealthBar.d.ts +3 -1
  79. package/dist/src/tui/components/StageHealthBar.js +10 -4
  80. package/dist/src/tui/components/StageHealthBar.js.map +1 -1
  81. package/dist/src/tui/components/StageHealthBar.spec.js +21 -7
  82. package/dist/src/tui/components/StageHealthBar.spec.js.map +1 -1
  83. package/dist/src/tui/components/activity-visualizer.pure.d.ts +3 -8
  84. package/dist/src/tui/components/activity-visualizer.pure.js +113 -50
  85. package/dist/src/tui/components/activity-visualizer.pure.js.map +1 -1
  86. package/dist/src/tui/components/checklist-panel.pure.d.ts +2 -0
  87. package/dist/src/tui/components/checklist-panel.pure.js +18 -0
  88. package/dist/src/tui/components/checklist-panel.pure.js.map +1 -0
  89. package/dist/src/tui/components/flow-map.pure.d.ts +2 -2
  90. package/dist/src/tui/components/flow-map.pure.js +120 -29
  91. package/dist/src/tui/components/flow-map.pure.js.map +1 -1
  92. package/dist/src/tui/components/focused-agent.pure.d.ts +0 -14
  93. package/dist/src/tui/components/focused-agent.pure.js +0 -45
  94. package/dist/src/tui/components/focused-agent.pure.js.map +1 -1
  95. package/dist/src/tui/components/grid-layout.pure.js +26 -4
  96. package/dist/src/tui/components/grid-layout.pure.js.map +1 -1
  97. package/dist/src/tui/components/index.d.ts +4 -2
  98. package/dist/src/tui/components/index.js +7 -7
  99. package/dist/src/tui/components/index.js.map +1 -1
  100. package/dist/src/tui/components/stage-health.pure.d.ts +1 -0
  101. package/dist/src/tui/components/stage-health.pure.js +4 -0
  102. package/dist/src/tui/components/stage-health.pure.js.map +1 -1
  103. package/dist/src/tui/dashboard-app.d.ts +2 -1
  104. package/dist/src/tui/dashboard-app.js +12 -15
  105. package/dist/src/tui/dashboard-app.js.map +1 -1
  106. package/dist/src/tui/dashboard-app.spec.js +11 -3
  107. package/dist/src/tui/dashboard-app.spec.js.map +1 -1
  108. package/dist/src/tui/dashboard-types.d.ts +6 -0
  109. package/dist/src/tui/dashboard-types.js +1 -0
  110. package/dist/src/tui/dashboard-types.js.map +1 -1
  111. package/dist/src/tui/eventbus-ui.integration.spec.js +1 -0
  112. package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -1
  113. package/dist/src/tui/events/parse-agent.js +0 -26
  114. package/dist/src/tui/events/parse-agent.js.map +1 -1
  115. package/dist/src/tui/events/response-event-extractor.js +33 -7
  116. package/dist/src/tui/events/response-event-extractor.js.map +1 -1
  117. package/dist/src/tui/hooks/use-dashboard-state.d.ts +6 -0
  118. package/dist/src/tui/hooks/use-dashboard-state.js +68 -18
  119. package/dist/src/tui/hooks/use-dashboard-state.js.map +1 -1
  120. package/dist/src/tui/multi-session-app.js +6 -1
  121. package/dist/src/tui/multi-session-app.js.map +1 -1
  122. package/dist/src/tui-bundle.mjs +615 -333
  123. package/dist/tsconfig.build.tsbuildinfo +1 -1
  124. package/package.json +3 -3
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import type { InitOptions } from './cli.types';
2
+ import type { InitOptions, TuiOptions } from './cli.types';
3
3
  export interface ParsedArgs {
4
4
  command: 'init' | 'mcp' | 'tui' | 'help' | 'version';
5
- options: Partial<InitOptions>;
5
+ options: Partial<InitOptions> & Partial<TuiOptions>;
6
6
  }
7
7
  export declare function parseArgs(args: string[]): ParsedArgs;
8
8
  export declare function printUsage(): void;
@@ -25,7 +25,8 @@ function parseArgs(args) {
25
25
  return { command: 'mcp', options };
26
26
  }
27
27
  if (command === 'tui') {
28
- return { command: 'tui', options };
28
+ const restart = args.includes('--restart');
29
+ return { command: 'tui', options: { ...options, restart } };
29
30
  }
30
31
  if (command !== 'init') {
31
32
  return { command: 'help', options };
@@ -55,6 +56,7 @@ Usage:
55
56
  codingbuddy init [path] [options] Initialize configuration
56
57
  codingbuddy mcp Start MCP server (stdio mode)
57
58
  codingbuddy tui Monitor agent execution in real-time
59
+ codingbuddy tui --restart Restart TUI client (fixes blank screen)
58
60
  codingbuddy --help Show this help
59
61
  codingbuddy --version Show version
60
62
 
@@ -111,7 +113,7 @@ async function main(args = process.argv.slice(2)) {
111
113
  break;
112
114
  case 'tui': {
113
115
  const { runTui } = await Promise.resolve().then(() => require('./run-tui'));
114
- await runTui();
116
+ await runTui({ restart: options.restart ?? false });
115
117
  break;
116
118
  }
117
119
  case 'init': {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,7 @@ export interface InitResult {
12
12
  configPath?: string;
13
13
  error?: string;
14
14
  }
15
+ export interface TuiOptions {
16
+ restart: boolean;
17
+ }
15
18
  export type LogLevel = 'info' | 'success' | 'warn' | 'error';
@@ -4,6 +4,6 @@ export interface AgentChoice {
4
4
  value: ActPrimaryAgent;
5
5
  description?: string;
6
6
  }
7
- export declare const DEFAULT_PRIMARY_AGENT: "frontend-developer";
7
+ export declare const DEFAULT_PRIMARY_AGENT: "software-engineer";
8
8
  export declare function getPrimaryAgentChoices(): AgentChoice[];
9
9
  export declare function promptPrimaryAgentSelection(message?: string): Promise<ActPrimaryAgent>;
@@ -0,0 +1,9 @@
1
+ export interface RestartResult {
2
+ success: boolean;
3
+ reason: string;
4
+ pid?: number;
5
+ }
6
+ export interface RestartOptions {
7
+ codingbuddyBin?: string;
8
+ }
9
+ export declare function restartTui(options?: RestartOptions): Promise<RestartResult>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.restartTui = restartTui;
4
+ const child_process_1 = require("child_process");
5
+ const ipc_types_1 = require("../tui/ipc/ipc.types");
6
+ const instance_registry_1 = require("../tui/ipc/instance-registry");
7
+ const tui_auto_launcher_1 = require("../tui/ipc/tui-auto-launcher");
8
+ async function restartTui(options = {}) {
9
+ (0, child_process_1.spawnSync)('pkill', ['-f', 'codingbuddy.*tui$'], { stdio: 'ignore' });
10
+ const registry = new instance_registry_1.InstanceRegistry((0, ipc_types_1.getInstancesFilePath)());
11
+ registry.prune();
12
+ const instances = registry.list();
13
+ if (instances.length === 0) {
14
+ return {
15
+ success: false,
16
+ reason: 'No running MCP server found. Start your AI tool (Claude Code, Cursor, etc.) first.',
17
+ };
18
+ }
19
+ const launcher = new tui_auto_launcher_1.TuiAutoLauncher({
20
+ enabled: true,
21
+ delayMs: 0,
22
+ codingbuddyBin: options.codingbuddyBin ?? 'codingbuddy',
23
+ });
24
+ const result = await launcher.launch({ clientCount: () => 0 });
25
+ if (!result.launched) {
26
+ return { success: false, reason: result.reason };
27
+ }
28
+ return { success: true, reason: result.reason, pid: result.pid };
29
+ }
30
+ //# sourceMappingURL=restart-tui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart-tui.js","sourceRoot":"","sources":["../../../src/cli/restart-tui.ts"],"names":[],"mappings":";;AAwBA,gCAiCC;AAzDD,iDAA0C;AAC1C,oDAA4D;AAC5D,oEAAgE;AAChE,oEAA+D;AAqBxD,KAAK,UAAU,UAAU,CAAC,UAA0B,EAAE;IAE3D,IAAA,yBAAS,EAAC,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAGrE,MAAM,QAAQ,GAAG,IAAI,oCAAgB,CAAC,IAAA,gCAAoB,GAAE,CAAC,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,CAAC;IAGjB,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,oFAAoF;SAC7F,CAAC;IACJ,CAAC;IAKD,MAAM,QAAQ,GAAG,IAAI,mCAAe,CAAC;QACnC,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC;QACV,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,aAAa;KACxD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACnD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AACnE,CAAC"}
@@ -1 +1,3 @@
1
- export declare function runTui(): Promise<void>;
1
+ export declare function runTui(options?: {
2
+ restart?: boolean;
3
+ }): Promise<void>;
@@ -3,8 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runTui = runTui;
4
4
  const ipc_types_1 = require("../tui/ipc/ipc.types");
5
5
  const instance_registry_1 = require("../tui/ipc/instance-registry");
6
+ const restart_tui_1 = require("./restart-tui");
6
7
  const CLIENT_SHUTDOWN_TIMEOUT_MS = 3000;
7
- async function runTui() {
8
+ async function runTui(options = {}) {
9
+ if (options.restart) {
10
+ const result = await (0, restart_tui_1.restartTui)();
11
+ if (result.success) {
12
+ process.stderr.write(`TUI restarted successfully (pid: ${result.pid ?? 'unknown'}).\n`);
13
+ }
14
+ else {
15
+ process.stderr.write(`Failed to restart TUI: ${result.reason}\n`);
16
+ process.exitCode = 1;
17
+ }
18
+ return;
19
+ }
8
20
  const registry = new instance_registry_1.InstanceRegistry((0, ipc_types_1.getInstancesFilePath)());
9
21
  registry.prune();
10
22
  const instances = registry.list();
@@ -1 +1 @@
1
- {"version":3,"file":"run-tui.js","sourceRoot":"","sources":["../../../src/cli/run-tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-tui.js","sourceRoot":"","sources":["../../../src/cli/run-tui.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@ export declare const KEYWORDS: readonly ["PLAN", "ACT", "EVAL", "AUTO"];
2
2
  export type Mode = (typeof KEYWORDS)[number];
3
3
  export declare const MODE_AGENTS: readonly ["plan-mode", "act-mode", "eval-mode", "auto-mode"];
4
4
  export declare const PLAN_PRIMARY_AGENTS: readonly ["solution-architect", "technical-planner"];
5
- export declare const ACT_PRIMARY_AGENTS: readonly ["tooling-engineer", "platform-engineer", "data-engineer", "mobile-developer", "frontend-developer", "backend-developer", "devops-engineer", "agent-architect"];
5
+ export declare const ACT_PRIMARY_AGENTS: readonly ["tooling-engineer", "platform-engineer", "data-engineer", "data-scientist", "ai-ml-engineer", "mobile-developer", "frontend-developer", "backend-developer", "devops-engineer", "agent-architect", "test-engineer", "security-engineer", "systems-developer", "software-engineer"];
6
6
  export declare const EVAL_PRIMARY_AGENT: "code-reviewer";
7
- export declare const DEFAULT_ACT_AGENT: "frontend-developer";
8
- export declare const ALL_PRIMARY_AGENTS: readonly ["solution-architect", "technical-planner", "tooling-engineer", "platform-engineer", "data-engineer", "mobile-developer", "frontend-developer", "backend-developer", "devops-engineer", "agent-architect", "code-reviewer"];
7
+ export declare const DEFAULT_ACT_AGENT: "software-engineer";
8
+ export declare const ALL_PRIMARY_AGENTS: readonly ["solution-architect", "technical-planner", "tooling-engineer", "platform-engineer", "data-engineer", "data-scientist", "ai-ml-engineer", "mobile-developer", "frontend-developer", "backend-developer", "devops-engineer", "agent-architect", "test-engineer", "security-engineer", "systems-developer", "software-engineer", "code-reviewer"];
9
9
  export type ActPrimaryAgent = (typeof ACT_PRIMARY_AGENTS)[number];
10
10
  export type PrimaryAgent = (typeof ALL_PRIMARY_AGENTS)[number];
11
11
  export interface AgentDisplayInfo {
@@ -8,14 +8,20 @@ exports.ACT_PRIMARY_AGENTS = [
8
8
  'tooling-engineer',
9
9
  'platform-engineer',
10
10
  'data-engineer',
11
+ 'data-scientist',
12
+ 'ai-ml-engineer',
11
13
  'mobile-developer',
12
14
  'frontend-developer',
13
15
  'backend-developer',
14
16
  'devops-engineer',
15
17
  'agent-architect',
18
+ 'test-engineer',
19
+ 'security-engineer',
20
+ 'systems-developer',
21
+ 'software-engineer',
16
22
  ];
17
23
  exports.EVAL_PRIMARY_AGENT = 'code-reviewer';
18
- exports.DEFAULT_ACT_AGENT = 'frontend-developer';
24
+ exports.DEFAULT_ACT_AGENT = 'software-engineer';
19
25
  exports.ALL_PRIMARY_AGENTS = [
20
26
  ...exports.PLAN_PRIMARY_AGENTS,
21
27
  ...exports.ACT_PRIMARY_AGENTS,
@@ -34,6 +40,14 @@ exports.ACT_AGENT_DISPLAY_INFO = {
34
40
  name: 'Data Engineer',
35
41
  description: 'Database, schema design, migrations, analytics',
36
42
  },
43
+ 'data-scientist': {
44
+ name: 'Data Scientist',
45
+ description: 'EDA, statistical analysis, ML modeling, data visualization, Jupyter notebooks',
46
+ },
47
+ 'ai-ml-engineer': {
48
+ name: 'AI/ML Engineer',
49
+ description: 'ML frameworks, LLM integration, embeddings, fine-tuning',
50
+ },
37
51
  'mobile-developer': {
38
52
  name: 'Mobile Developer',
39
53
  description: 'React Native, Flutter, iOS, Android',
@@ -54,6 +68,22 @@ exports.ACT_AGENT_DISPLAY_INFO = {
54
68
  name: 'Agent Architect',
55
69
  description: 'AI agent systems, MCP servers, LLM integration',
56
70
  },
71
+ 'test-engineer': {
72
+ name: 'Test Engineer',
73
+ description: 'TDD, unit/integration/e2e testing, coverage improvement',
74
+ },
75
+ 'security-engineer': {
76
+ name: 'Security Engineer',
77
+ description: 'Security implementation, vulnerability fixes, auth/authz, encryption',
78
+ },
79
+ 'systems-developer': {
80
+ name: 'Systems Developer',
81
+ description: 'Rust, C, C++, FFI, WASM, embedded, low-level performance',
82
+ },
83
+ 'software-engineer': {
84
+ name: 'Software Engineer',
85
+ description: 'General-purpose engineer — any language, any domain, TDD-first',
86
+ },
57
87
  };
58
88
  exports.LOCALIZED_KEYWORD_MAP = {
59
89
  계획: 'PLAN',
@@ -1 +1 @@
1
- {"version":3,"file":"keyword.types.js","sourceRoot":"","sources":["../../../src/keyword/keyword.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyword.types.js","sourceRoot":"","sources":["../../../src/keyword/keyword.types.ts"],"names":[],"mappings":"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"}
@@ -87,5 +87,15 @@ exports.BACKEND_INTENT_PATTERNS = [
87
87
  confidence: 0.85,
88
88
  description: 'Microservice',
89
89
  },
90
+ {
91
+ pattern: /리팩토링|refactor/i,
92
+ confidence: 0.75,
93
+ description: 'Refactoring',
94
+ },
95
+ {
96
+ pattern: /타입\s*추가|type\s*definition/i,
97
+ confidence: 0.8,
98
+ description: 'TypeScript Type Definition',
99
+ },
90
100
  ];
91
101
  //# sourceMappingURL=backend.patterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend.patterns.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/backend.patterns.ts"],"names":[],"mappings":";;;AAoBa,QAAA,uBAAuB,GAAiC;IAEnE;QACE,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,QAAQ;KACtB;IACD;QACE,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,SAAS;KACvB;IACD;QACE,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,mBAAmB;KACjC;IAED;QACE,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,kBAAkB;KAChC;IAED;QACE,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,OAAO,EAAE,0BAA0B;QACnC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,eAAe;KAC7B;IAED;QACE,OAAO,EAAE,qBAAqB;QAC9B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,UAAU;KACxB;IACD;QACE,OAAO,EAAE,uCAAuC;QAChD,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,SAAS;KACvB;IACD;QACE,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,MAAM;KACpB;IAED;QACE,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,iBAAiB;KAC/B;IACD;QACE,OAAO,EAAE,iDAAiD;QAC1D,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,OAAO,EAAE,uDAAuD;QAChE,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,qBAAqB;KACnC;IACD;QACE,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,YAAY;KAC1B;IACD;QACE,OAAO,EAAE,kCAAkC;QAC3C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,OAAO,EAAE,2BAA2B;QACpC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,WAAW;KACzB;IACD;QACE,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,cAAc;KAC5B;CACF,CAAC"}
1
+ {"version":3,"file":"backend.patterns.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/backend.patterns.ts"],"names":[],"mappings":";;;AAsBa,QAAA,uBAAuB,GAAiC;IAEnE;QACE,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,QAAQ;KACtB;IACD;QACE,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,SAAS;KACvB;IACD;QACE,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,mBAAmB;KACjC;IAED;QACE,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,kBAAkB;KAChC;IAED;QACE,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,OAAO,EAAE,0BAA0B;QACnC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,eAAe;KAC7B;IAED;QACE,OAAO,EAAE,qBAAqB;QAC9B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,UAAU;KACxB;IACD;QACE,OAAO,EAAE,uCAAuC;QAChD,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,SAAS;KACvB;IACD;QACE,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,MAAM;KACpB;IAED;QACE,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,iBAAiB;KAC/B;IACD;QACE,OAAO,EAAE,iDAAiD;QAC1D,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,OAAO,EAAE,uDAAuD;QAChE,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,qBAAqB;KACnC;IACD;QACE,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,YAAY;KAC1B;IACD;QACE,OAAO,EAAE,kCAAkC;QAC3C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,OAAO,EAAE,2BAA2B;QACpC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,WAAW;KACzB;IACD;QACE,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,cAAc;KAC5B;IAGD;QACE,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,OAAO,EAAE,4BAA4B;QACrC,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,4BAA4B;KAC1C;CACF,CAAC"}
@@ -74,7 +74,7 @@ exports.CONTEXT_PATTERNS = [
74
74
  { pattern: /\.go$/i, agent: 'backend-developer', confidence: 0.85 },
75
75
  { pattern: /\.py$/i, agent: 'backend-developer', confidence: 0.85 },
76
76
  { pattern: /\.java$/i, agent: 'backend-developer', confidence: 0.85 },
77
- { pattern: /\.rs$/i, agent: 'backend-developer', confidence: 0.85 },
77
+ { pattern: /\.rs$/i, agent: 'systems-developer', confidence: 0.85 },
78
78
  { pattern: /\.tsx?$/i, agent: 'frontend-developer', confidence: 0.7 },
79
79
  { pattern: /\.jsx?$/i, agent: 'frontend-developer', confidence: 0.7 },
80
80
  { pattern: /agents?.*\.json$/i, agent: 'agent-architect', confidence: 0.8 },
@@ -0,0 +1,2 @@
1
+ import type { IntentPattern } from './intent-patterns.types';
2
+ export declare const DATA_SCIENCE_INTENT_PATTERNS: ReadonlyArray<IntentPattern>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DATA_SCIENCE_INTENT_PATTERNS = void 0;
4
+ exports.DATA_SCIENCE_INTENT_PATTERNS = [
5
+ {
6
+ pattern: /pandas|numpy|matplotlib|seaborn|plotly/i,
7
+ confidence: 0.95,
8
+ description: 'Data science libraries (pandas/numpy/matplotlib/seaborn/plotly)',
9
+ },
10
+ {
11
+ pattern: /jupyter|\.ipynb|주피터/i,
12
+ confidence: 0.95,
13
+ description: 'Jupyter notebook (incl. Korean: 주피터)',
14
+ },
15
+ {
16
+ pattern: /scikit.?learn|sklearn/i,
17
+ confidence: 0.95,
18
+ description: 'scikit-learn ML library',
19
+ },
20
+ {
21
+ pattern: /탐색적\s*분석|EDA|exploratory\s*data\s*analysis/i,
22
+ confidence: 0.95,
23
+ description: 'Exploratory data analysis (EDA)',
24
+ },
25
+ {
26
+ pattern: /데이터\s*분석\s*(스크립트|코드|구현|작성)|data\s*analysis\s*(script|code|implement)/i,
27
+ confidence: 0.95,
28
+ description: 'Data analysis script/code',
29
+ },
30
+ {
31
+ pattern: /데이터\s*시각화|data\s*visualization/i,
32
+ confidence: 0.9,
33
+ description: 'Data visualization',
34
+ },
35
+ {
36
+ pattern: /통계\s*(분석|모델|검정)|statistical\s*(analysis|model|test)/i,
37
+ confidence: 0.9,
38
+ description: 'Statistical analysis/modeling',
39
+ },
40
+ {
41
+ pattern: /상관관계\s*분석|correlation\s*analysis/i,
42
+ confidence: 0.9,
43
+ description: 'Correlation analysis',
44
+ },
45
+ {
46
+ pattern: /회귀\s*(분석|모델)|regression\s*(analysis|model)/i,
47
+ confidence: 0.9,
48
+ description: 'Regression analysis/modeling',
49
+ },
50
+ {
51
+ pattern: /분류\s*(모델|알고리즘)|classification\s*(model|algorithm)/i,
52
+ confidence: 0.9,
53
+ description: 'Classification modeling',
54
+ },
55
+ {
56
+ pattern: /피처\s*엔지니어링|feature\s*engineering/i,
57
+ confidence: 0.9,
58
+ description: 'Feature engineering',
59
+ },
60
+ {
61
+ pattern: /scipy|statsmodels/i,
62
+ confidence: 0.9,
63
+ description: 'Scientific computing libraries (scipy/statsmodels)',
64
+ },
65
+ {
66
+ pattern: /데이터\s*분석/i,
67
+ confidence: 0.85,
68
+ description: 'Data analysis (Korean, standalone)',
69
+ },
70
+ ];
71
+ //# sourceMappingURL=data-science.patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-science.patterns.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/data-science.patterns.ts"],"names":[],"mappings":";;;AA4Ba,QAAA,4BAA4B,GAAiC;IAExE;QACE,OAAO,EAAE,yCAAyC;QAClD,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,iEAAiE;KAC/E;IACD;QACE,OAAO,EAAE,sBAAsB;QAC/B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,sCAAsC;KACpD;IACD;QACE,OAAO,EAAE,wBAAwB;QACjC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,yBAAyB;KACvC;IAED;QACE,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,OAAO,EAAE,uEAAuE;QAChF,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,2BAA2B;KACzC;IAED;QACE,OAAO,EAAE,iCAAiC;QAC1C,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,oBAAoB;KAClC;IAED;QACE,OAAO,EAAE,sDAAsD;QAC/D,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,+BAA+B;KAC7C;IACD;QACE,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,sBAAsB;KACpC;IAED;QACE,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,8BAA8B;KAC5C;IACD;QACE,OAAO,EAAE,oDAAoD;QAC7D,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,yBAAyB;KACvC;IACD;QACE,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,qBAAqB;KACnC;IAED;QACE,OAAO,EAAE,oBAAoB;QAC7B,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,oDAAoD;KAClE;IAED;QACE,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,oCAAoC;KAClD;CACF,CAAC"}
@@ -2,11 +2,14 @@ export type { IntentPattern, IntentPatternCheck, ContextPattern } from './intent
2
2
  export { EXPLICIT_PATTERNS } from './explicit.patterns';
3
3
  export { AGENT_INTENT_PATTERNS } from './agent.patterns';
4
4
  export { AI_ML_INTENT_PATTERNS } from './ai-ml.patterns';
5
+ export { TEST_INTENT_PATTERNS } from './test.patterns';
5
6
  export { BACKEND_INTENT_PATTERNS } from './backend.patterns';
6
7
  export { DATA_INTENT_PATTERNS } from './data.patterns';
7
8
  export { MOBILE_INTENT_PATTERNS } from './mobile.patterns';
8
9
  export { PLATFORM_INTENT_PATTERNS } from './platform.patterns';
9
10
  export { TOOLING_INTENT_PATTERNS } from './tooling.patterns';
11
+ export { SECURITY_INTENT_PATTERNS } from './security.patterns';
12
+ export { SYSTEMS_INTENT_PATTERNS } from './systems.patterns';
10
13
  export { INTENT_PATTERN_CHECKS } from './intent-pattern-checks';
11
14
  export { CONTEXT_PATTERNS } from './context.patterns';
12
15
  export { META_AGENT_DISCUSSION_PATTERNS } from './meta-discussion.patterns';
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.META_AGENT_DISCUSSION_PATTERNS = exports.CONTEXT_PATTERNS = exports.INTENT_PATTERN_CHECKS = exports.TOOLING_INTENT_PATTERNS = exports.PLATFORM_INTENT_PATTERNS = exports.MOBILE_INTENT_PATTERNS = exports.DATA_INTENT_PATTERNS = exports.BACKEND_INTENT_PATTERNS = exports.AI_ML_INTENT_PATTERNS = exports.AGENT_INTENT_PATTERNS = exports.EXPLICIT_PATTERNS = void 0;
3
+ exports.META_AGENT_DISCUSSION_PATTERNS = exports.CONTEXT_PATTERNS = exports.INTENT_PATTERN_CHECKS = exports.SYSTEMS_INTENT_PATTERNS = exports.SECURITY_INTENT_PATTERNS = exports.TOOLING_INTENT_PATTERNS = exports.PLATFORM_INTENT_PATTERNS = exports.MOBILE_INTENT_PATTERNS = exports.DATA_INTENT_PATTERNS = exports.BACKEND_INTENT_PATTERNS = exports.TEST_INTENT_PATTERNS = exports.AI_ML_INTENT_PATTERNS = exports.AGENT_INTENT_PATTERNS = exports.EXPLICIT_PATTERNS = void 0;
4
4
  var explicit_patterns_1 = require("./explicit.patterns");
5
5
  Object.defineProperty(exports, "EXPLICIT_PATTERNS", { enumerable: true, get: function () { return explicit_patterns_1.EXPLICIT_PATTERNS; } });
6
6
  var agent_patterns_1 = require("./agent.patterns");
7
7
  Object.defineProperty(exports, "AGENT_INTENT_PATTERNS", { enumerable: true, get: function () { return agent_patterns_1.AGENT_INTENT_PATTERNS; } });
8
8
  var ai_ml_patterns_1 = require("./ai-ml.patterns");
9
9
  Object.defineProperty(exports, "AI_ML_INTENT_PATTERNS", { enumerable: true, get: function () { return ai_ml_patterns_1.AI_ML_INTENT_PATTERNS; } });
10
+ var test_patterns_1 = require("./test.patterns");
11
+ Object.defineProperty(exports, "TEST_INTENT_PATTERNS", { enumerable: true, get: function () { return test_patterns_1.TEST_INTENT_PATTERNS; } });
10
12
  var backend_patterns_1 = require("./backend.patterns");
11
13
  Object.defineProperty(exports, "BACKEND_INTENT_PATTERNS", { enumerable: true, get: function () { return backend_patterns_1.BACKEND_INTENT_PATTERNS; } });
12
14
  var data_patterns_1 = require("./data.patterns");
@@ -17,6 +19,10 @@ var platform_patterns_1 = require("./platform.patterns");
17
19
  Object.defineProperty(exports, "PLATFORM_INTENT_PATTERNS", { enumerable: true, get: function () { return platform_patterns_1.PLATFORM_INTENT_PATTERNS; } });
18
20
  var tooling_patterns_1 = require("./tooling.patterns");
19
21
  Object.defineProperty(exports, "TOOLING_INTENT_PATTERNS", { enumerable: true, get: function () { return tooling_patterns_1.TOOLING_INTENT_PATTERNS; } });
22
+ var security_patterns_1 = require("./security.patterns");
23
+ Object.defineProperty(exports, "SECURITY_INTENT_PATTERNS", { enumerable: true, get: function () { return security_patterns_1.SECURITY_INTENT_PATTERNS; } });
24
+ var systems_patterns_1 = require("./systems.patterns");
25
+ Object.defineProperty(exports, "SYSTEMS_INTENT_PATTERNS", { enumerable: true, get: function () { return systems_patterns_1.SYSTEMS_INTENT_PATTERNS; } });
20
26
  var intent_pattern_checks_1 = require("./intent-pattern-checks");
21
27
  Object.defineProperty(exports, "INTENT_PATTERN_CHECKS", { enumerable: true, get: function () { return intent_pattern_checks_1.INTENT_PATTERN_CHECKS; } });
22
28
  var context_patterns_1 = require("./context.patterns");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/index.ts"],"names":[],"mappings":";;;AAiBA,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAG1B,mDAAyD;AAAhD,uHAAA,qBAAqB,OAAA;AAC9B,mDAAyD;AAAhD,uHAAA,qBAAqB,OAAA;AAC9B,uDAA6D;AAApD,2HAAA,uBAAuB,OAAA;AAChC,iDAAuD;AAA9C,qHAAA,oBAAoB,OAAA;AAC7B,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA;AAC/B,yDAA+D;AAAtD,6HAAA,wBAAwB,OAAA;AACjC,uDAA6D;AAApD,2HAAA,uBAAuB,OAAA;AAGhC,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAG9B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAGzB,uEAA4E;AAAnE,0IAAA,8BAA8B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/index.ts"],"names":[],"mappings":";;;AAiBA,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAG1B,mDAAyD;AAAhD,uHAAA,qBAAqB,OAAA;AAC9B,mDAAyD;AAAhD,uHAAA,qBAAqB,OAAA;AAC9B,iDAAuD;AAA9C,qHAAA,oBAAoB,OAAA;AAC7B,uDAA6D;AAApD,2HAAA,uBAAuB,OAAA;AAChC,iDAAuD;AAA9C,qHAAA,oBAAoB,OAAA;AAC7B,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA;AAC/B,yDAA+D;AAAtD,6HAAA,wBAAwB,OAAA;AACjC,uDAA6D;AAApD,2HAAA,uBAAuB,OAAA;AAChC,yDAA+D;AAAtD,6HAAA,wBAAwB,OAAA;AACjC,uDAA6D;AAApD,2HAAA,uBAAuB,OAAA;AAGhC,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAG9B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAGzB,uEAA4E;AAAnE,0IAAA,8BAA8B,OAAA"}
@@ -2,9 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.INTENT_PATTERN_CHECKS = void 0;
4
4
  const agent_patterns_1 = require("./agent.patterns");
5
+ const test_patterns_1 = require("./test.patterns");
5
6
  const tooling_patterns_1 = require("./tooling.patterns");
6
7
  const platform_patterns_1 = require("./platform.patterns");
8
+ const security_patterns_1 = require("./security.patterns");
9
+ const systems_patterns_1 = require("./systems.patterns");
7
10
  const data_patterns_1 = require("./data.patterns");
11
+ const data_science_patterns_1 = require("./data-science.patterns");
8
12
  const ai_ml_patterns_1 = require("./ai-ml.patterns");
9
13
  const backend_patterns_1 = require("./backend.patterns");
10
14
  const frontend_patterns_1 = require("./frontend.patterns");
@@ -16,6 +20,11 @@ exports.INTENT_PATTERN_CHECKS = [
16
20
  patterns: agent_patterns_1.AGENT_INTENT_PATTERNS,
17
21
  category: 'Agent',
18
22
  },
23
+ {
24
+ agent: 'test-engineer',
25
+ patterns: test_patterns_1.TEST_INTENT_PATTERNS,
26
+ category: 'Test',
27
+ },
19
28
  {
20
29
  agent: 'tooling-engineer',
21
30
  patterns: tooling_patterns_1.TOOLING_INTENT_PATTERNS,
@@ -26,11 +35,26 @@ exports.INTENT_PATTERN_CHECKS = [
26
35
  patterns: platform_patterns_1.PLATFORM_INTENT_PATTERNS,
27
36
  category: 'Platform',
28
37
  },
38
+ {
39
+ agent: 'security-engineer',
40
+ patterns: security_patterns_1.SECURITY_INTENT_PATTERNS,
41
+ category: 'Security',
42
+ },
43
+ {
44
+ agent: 'systems-developer',
45
+ patterns: systems_patterns_1.SYSTEMS_INTENT_PATTERNS,
46
+ category: 'Systems',
47
+ },
29
48
  {
30
49
  agent: 'data-engineer',
31
50
  patterns: data_patterns_1.DATA_INTENT_PATTERNS,
32
51
  category: 'Data',
33
52
  },
53
+ {
54
+ agent: 'data-scientist',
55
+ patterns: data_science_patterns_1.DATA_SCIENCE_INTENT_PATTERNS,
56
+ category: 'DataScience',
57
+ },
34
58
  {
35
59
  agent: 'ai-ml-engineer',
36
60
  patterns: ai_ml_patterns_1.AI_ML_INTENT_PATTERNS,
@@ -1 +1 @@
1
- {"version":3,"file":"intent-pattern-checks.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/intent-pattern-checks.ts"],"names":[],"mappings":";;;AAmBA,qDAAyD;AACzD,yDAA6D;AAC7D,2DAA+D;AAC/D,mDAAuD;AACvD,qDAAyD;AACzD,yDAA6D;AAC7D,2DAA+D;AAC/D,uDAA2D;AAC3D,uDAA2D;AAE9C,QAAA,qBAAqB,GAAsC;IAEtE;QACE,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,sCAAqB;QAC/B,QAAQ,EAAE,OAAO;KAClB;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,0CAAuB;QACjC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,4CAAwB;QAClC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,oCAAoB;QAC9B,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,sCAAqB;QAC/B,QAAQ,EAAE,OAAO;KAClB;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,0CAAuB;QACjC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,4CAAwB;QAClC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,wCAAsB;QAChC,QAAQ,EAAE,QAAQ;KACnB;IAED;QACE,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,wCAAsB;QAChC,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC"}
1
+ {"version":3,"file":"intent-pattern-checks.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/intent-pattern-checks.ts"],"names":[],"mappings":";;;AAuBA,qDAAyD;AACzD,mDAAuD;AACvD,yDAA6D;AAC7D,2DAA+D;AAC/D,2DAA+D;AAC/D,yDAA6D;AAC7D,mDAAuD;AACvD,mEAAuE;AACvE,qDAAyD;AACzD,yDAA6D;AAC7D,2DAA+D;AAC/D,uDAA2D;AAC3D,uDAA2D;AAE9C,QAAA,qBAAqB,GAAsC;IAEtE;QACE,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,sCAAqB;QAC/B,QAAQ,EAAE,OAAO;KAClB;IAED;QACE,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,oCAAoB;QAC9B,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,0CAAuB;QACjC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,4CAAwB;QAClC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,4CAAwB;QAClC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,0CAAuB;QACjC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,oCAAoB;QAC9B,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,oDAA4B;QACtC,QAAQ,EAAE,aAAa;KACxB;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,sCAAqB;QAC/B,QAAQ,EAAE,OAAO;KAClB;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE,0CAAuB;QACjC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,4CAAwB;QAClC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,wCAAsB;QAChC,QAAQ,EAAE,QAAQ;KACnB;IAED;QACE,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,wCAAsB;QAChC,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IntentPattern } from './intent-patterns.types';
2
+ export declare const SECURITY_INTENT_PATTERNS: ReadonlyArray<IntentPattern>;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SECURITY_INTENT_PATTERNS = void 0;
4
+ exports.SECURITY_INTENT_PATTERNS = [
5
+ {
6
+ pattern: /SQL\s*(injection|인젝션)/i,
7
+ confidence: 0.95,
8
+ description: 'SQL Injection vulnerability',
9
+ },
10
+ {
11
+ pattern: /XSS\s*(방어|방지|수정|취약점|fix|prevent|vulnerabilit)/i,
12
+ confidence: 0.95,
13
+ description: 'XSS vulnerability',
14
+ },
15
+ {
16
+ pattern: /CSRF\s*(방어|방지|토큰|fix|prevent|token)/i,
17
+ confidence: 0.95,
18
+ description: 'CSRF vulnerability',
19
+ },
20
+ {
21
+ pattern: /JWT\s*(구현|인증|토큰\s*생성|implement|auth)/i,
22
+ confidence: 0.95,
23
+ description: 'JWT implementation',
24
+ },
25
+ {
26
+ pattern: /OAuth\s*(구현|2\.0|플로우|implement|flow)/i,
27
+ confidence: 0.95,
28
+ description: 'OAuth implementation',
29
+ },
30
+ {
31
+ pattern: /bcrypt|argon2|password\s*hash(ing)?/i,
32
+ confidence: 0.95,
33
+ description: 'Password hashing',
34
+ },
35
+ {
36
+ pattern: /보안\s*(취약점|버그|이슈)\s*(수정|패치|fix|해결)/i,
37
+ confidence: 0.95,
38
+ description: 'Korean: Fix security vulnerability',
39
+ },
40
+ {
41
+ pattern: /security\s*(vulnerabilit\w*|bug|issue)\s*(fix|patch|resolv)/i,
42
+ confidence: 0.95,
43
+ description: 'Fix security vulnerability (EN)',
44
+ },
45
+ {
46
+ pattern: /OWASP\s*(구현|적용|준수\s*구현|implement|apply|remedi)/i,
47
+ confidence: 0.9,
48
+ description: 'OWASP guideline implementation',
49
+ },
50
+ {
51
+ pattern: /인증\s*(구현|개발|시스템\s*(구현|개발))/i,
52
+ confidence: 0.9,
53
+ description: 'Korean: Auth implementation',
54
+ },
55
+ {
56
+ pattern: /authentication\s*(implement|develop|system)/i,
57
+ confidence: 0.9,
58
+ description: 'Authentication implementation (EN)',
59
+ },
60
+ {
61
+ pattern: /인가\s*(구현|로직)|authorization\s*(implement|logic)/i,
62
+ confidence: 0.9,
63
+ description: 'Authorization implementation',
64
+ },
65
+ {
66
+ pattern: /RBAC|role[-\s]?based\s*access(\s*control)?/i,
67
+ confidence: 0.9,
68
+ description: 'Role-based access control',
69
+ },
70
+ {
71
+ pattern: /암호화\s*(구현|추가|적용)|encrypt(ion)?\s*(implement|add|apply)/i,
72
+ confidence: 0.9,
73
+ description: 'Encryption implementation',
74
+ },
75
+ {
76
+ pattern: /secrets?\s*(관리|management)/i,
77
+ confidence: 0.9,
78
+ description: 'Secrets management',
79
+ },
80
+ {
81
+ pattern: /rate\s*limit\s*(구현|추가|implement|add)/i,
82
+ confidence: 0.9,
83
+ description: 'Rate limiting implementation',
84
+ },
85
+ {
86
+ pattern: /sanitiz(e|ation)|입력\s*검증\s*(구현|추가)/i,
87
+ confidence: 0.78,
88
+ description: 'Input sanitization implementation',
89
+ },
90
+ {
91
+ pattern: /CORS\s*(설정|구현|정책|configuration|policy|implement)/i,
92
+ confidence: 0.9,
93
+ description: 'CORS configuration',
94
+ },
95
+ {
96
+ pattern: /CSP|Content[-\s]Security[-\s]Policy|security\s*header/i,
97
+ confidence: 0.9,
98
+ description: 'Security headers / CSP',
99
+ },
100
+ {
101
+ pattern: /HSTS|Strict[-\s]Transport[-\s]Security/i,
102
+ confidence: 0.88,
103
+ description: 'HSTS / Strict-Transport-Security',
104
+ },
105
+ ];
106
+ //# sourceMappingURL=security.patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.patterns.js","sourceRoot":"","sources":["../../../../src/keyword/patterns/security.patterns.ts"],"names":[],"mappings":";;;AAuBa,QAAA,wBAAwB,GAAiC;IAEpE;QACE,OAAO,EAAE,wBAAwB;QACjC,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,6BAA6B;KAC3C;IACD;QACE,OAAO,EAAE,gDAAgD;QACzD,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,mBAAmB;KACjC;IACD;QACE,OAAO,EAAE,sCAAsC;QAC/C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,oBAAoB;KAClC;IAED;QACE,OAAO,EAAE,uCAAuC;QAChD,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,OAAO,EAAE,uCAAuC;QAChD,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,sBAAsB;KACpC;IAED;QACE,OAAO,EAAE,sCAAsC;QAC/C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,kBAAkB;KAChC;IAED;QACE,OAAO,EAAE,oCAAoC;QAC7C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,oCAAoC;KAClD;IACD;QACE,OAAO,EAAE,8DAA8D;QACvE,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,iCAAiC;KAC/C;IAED;QACE,OAAO,EAAE,iDAAiD;QAC1D,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,gCAAgC;KAC9C;IAED;QACE,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,6BAA6B;KAC3C;IACD;QACE,OAAO,EAAE,8CAA8C;QACvD,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,oCAAoC;KAClD;IAED;QACE,OAAO,EAAE,iDAAiD;QAC1D,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,8BAA8B;KAC5C;IACD;QACE,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,2BAA2B;KACzC;IAED;QACE,OAAO,EAAE,yDAAyD;QAClE,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,2BAA2B;KACzC;IAED;QACE,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,oBAAoB;KAClC;IAED;QACE,OAAO,EAAE,uCAAuC;QAChD,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,8BAA8B;KAC5C;IAED;QACE,OAAO,EAAE,qCAAqC;QAC9C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,mCAAmC;KACjD;IAED;QACE,OAAO,EAAE,mDAAmD;QAC5D,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,oBAAoB;KAClC;IAED;QACE,OAAO,EAAE,wDAAwD;QACjE,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,wBAAwB;KACtC;IACD;QACE,OAAO,EAAE,yCAAyC;QAClD,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,kCAAkC;KAChD;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IntentPattern } from './intent-patterns.types';
2
+ export declare const SYSTEMS_INTENT_PATTERNS: ReadonlyArray<IntentPattern>;