@keke1933/vibe-dictionary-mcp 0.11.0 → 0.12.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 +1 -1
- package/dist/index.js +810 -11
- package/package.json +13 -3
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
자연어 요청은 호출하는 AI가 해석한다. AI가 한 효과를 나타내는 짧은 한영 검색어를 생성 → MCP가 키워드로 후보 조회 → AI가 요약·사용 상황을 비교하고 필요하면 동의어·다른 언어·수식어를 줄인 표현으로 재검색 → 선택한 ID의 프롬프트를 조회한다. 예를 들어 “글을 고친 뒤 아직 저장하지 않았다는 표시”는 `저장 상태` 또는 `unsaved changes`로 검색한다. 필수 조건은 유지하고 불필요한 필터만 넓히며, 검색어나 필터를 바꾸면 `offset: 0`부터 조회한다. 순위가 높아도 요구에 맞지 않으면 선택하지 않는다.
|
|
23
23
|
|
|
24
|
-
도메인은 `ui`(UI), `motion`(그래픽), `layout`(레이아웃), `style`(스타일), `pixelart`(픽셀아트), `video`(모션 영상)다. 카테고리·대상·입력 ID는 도구 스키마에서 확인한다. 모든 필터는 함께 만족해야 한다. `target: "button"`, `trigger: "pointer-move"`처럼 필수 조건만 지정한다. 제목에 scroll/drag/audio가 있어도 실제 데모는 클릭·타이머 시연일 수 있으므로 `triggers`와 원문을 확인한다.
|
|
24
|
+
도메인은 `ui`(UI), `motion`(그래픽), `layout`(레이아웃), `style`(스타일), `pixelart`(픽셀아트), `video`(모션 영상), `ai`(AI 네이티브)다. 카테고리·대상·입력 ID는 도구 스키마에서 확인한다. 모든 필터는 함께 만족해야 한다. `target: "button"`, `trigger: "pointer-move"`처럼 필수 조건만 지정한다. 제목에 scroll/drag/audio가 있어도 실제 데모는 클릭·타이머 시연일 수 있으므로 `triggers`와 원문을 확인한다.
|
|
25
25
|
|
|
26
26
|
검색어가 있으면 관련도순이며 `score`는 정렬용 수치로 적합성 확률이 아니다. `matchedOn`은 일치한 필드명(`title`, `alias`, `keyword`, `useCase`, `target`, `trigger`, `summary`, `prompt`)이다. `query`를 생략하면 카탈로그 순서로 목록을 조회한다. 일치가 없으면 빈 목록을 반환한다.
|
|
27
27
|
|
package/dist/index.js
CHANGED
|
@@ -7211,6 +7211,124 @@ var PIXELART_EXPANSION_ADDITIONS = [
|
|
|
7211
7211
|
}
|
|
7212
7212
|
];
|
|
7213
7213
|
|
|
7214
|
+
// ../../packages/catalog/src/additions/ai.ts
|
|
7215
|
+
var AI_ADDITIONS = [
|
|
7216
|
+
/* 1. 입력 제어 (ai_input) */
|
|
7217
|
+
{
|
|
7218
|
+
id: "ai-prompt-box",
|
|
7219
|
+
domain: "ai",
|
|
7220
|
+
category: "ai_input",
|
|
7221
|
+
vibeTag: "\uC785\uB825 \uAE38\uC774\uC5D0 \uB9DE\uCDB0 \uC790\uC5F0\uC2A4\uB7FD\uAC8C \uB298\uC5B4\uB098\uB294",
|
|
7222
|
+
vibeKeywords: ["\uD504\uB86C\uD504\uD2B8 \uC785\uB825\uCC3D", "\uC624\uD1A0\uB9AC\uC0AC\uC774\uC988 textarea", "\uBAA8\uB378 \uD1A0\uAE00", "\uD504\uB86C\uD504\uD2B8 \uC804\uC1A1", "\uC778\uD48B \uBC15\uC2A4"],
|
|
7223
|
+
titleKo: "\uC790\uB3D9 \uD655\uC7A5 \uD504\uB86C\uD504\uD2B8 \uC785\uB825\uCC3D",
|
|
7224
|
+
titleEn: "Auto-Expanding Prompt Box",
|
|
7225
|
+
summary: "\uD14D\uC2A4\uD2B8 \uAE38\uC774\uC5D0 \uB530\uB77C \uB192\uC774\uAC00 \uBD80\uB4DC\uB7FD\uAC8C \uB298\uC5B4\uB098\uACE0 Fast/Pro \uBAA8\uB378 \uC804\uD658\uACFC \uCCA8\uBD80\xB7\uC804\uC1A1 \uC0C1\uD0DC\uB97C \uC81C\uC5B4",
|
|
7226
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD14D\uC2A4\uD2B8 \uAE38\uC774\uC5D0 \uB530\uB77C \uB192\uC774\uAC00 \uB298\uC5B4\uB098\uB294 \uC778\uD130\uB799\uD2F0\uBE0C \uD504\uB86C\uD504\uD2B8 \uC785\uB825\uCC3D\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px\uC758 \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 1px \uD14C\uB450\uB9AC(\uB77C\uC774\uD2B8 #e2e8f0, \uB2E4\uD06C #334155), 16px \uB465\uADFC \uBAA8\uC11C\uB9AC, \uBC30\uACBD(\uB77C\uC774\uD2B8 #ffffff, \uB2E4\uD06C #0f172a)\uC758 \uCE74\uB4DC \uD504\uB808\uC784\uC744 \uAD6C\uC131\uD574 \uC918. \uC0C1\uB2E8\uC5D0\uB294 textarea(\uCD5C\uC18C 48px, \uCD5C\uB300 120px \uB192\uC774, overflow-y auto, resize none, 14px \uAE00\uC790, \uD328\uB529 12px)\uB97C \uBC30\uCE58\uD558\uACE0, \uAE00\uC744 \uC785\uB825\uD558\uBA74 scrollHeight\uC5D0 \uB9DE\uCDB0 \uB192\uC774\uAC00 \uC2E4\uC2DC\uAC04 \uC870\uC808\uB418\uAC8C \uD574 \uC918. \uD558\uB2E8 \uD234\uBC14\uC5D0\uB294 \uC88C\uCE21\uC5D0 Fast\uC640 Pro \uBAA8\uB4DC\uB97C \uC804\uD658\uD558\uB294 2\uAC1C \uC138\uADF8\uBA3C\uD2B8 \uBC84\uD2BC(\uB192\uC774 28px, 11px \uAE00\uC790, 8px \uB465\uADFC \uBAA8\uC11C\uB9AC, \uD65C\uC131 \uC2DC #6366f1 \uBC30\uACBD \uBC0F \uD770\uC0C9 \uAE00\uC790)\uACFC \uD30C\uC77C \uCCA8\uBD80 \uBC84\uD2BC\uC744 \uB450\uACE0, \uC6B0\uCE21\uC5D0\uB294 \uD14D\uC2A4\uD2B8 \uC720\uBB34\uC5D0 \uB530\uB77C \uD65C\uC131\uD654\uB418\uB294 \uC804\uC1A1 \uBC84\uD2BC(32px \uC6D0\uD615, #6366f1 \uBC30\uACBD, \uD770\uC0C9 \uD654\uC0B4\uD45C \uC544\uC774\uCF58)\uC744 \uC81C\uACF5\uD574 \uC918. \uC5D4\uD130 \uD0A4\uB97C \uB204\uB974\uBA74 \uC804\uC1A1\uB418\uACE0 Shift+\uC5D4\uD130\uB294 \uC904\uBC14\uAFC8\uC744 \uC9C0\uC6D0\uD574 \uC918. \uC804\uC1A1 \uD6C4\uC5D0\uB294 \uD14D\uC2A4\uD2B8\uAC00 \uBE44\uC6CC\uC9C0\uACE0 \uB192\uC774\uAC00 48px\uB85C \uCD08\uAE30\uD654\uB418\uC5B4\uC57C \uD574. \uC678\uBD80 \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC5C6\uC774 \uC21C\uC218 React\uC640 Tailwind CSS\uB85C \uAD6C\uD604\uD574 \uC918."
|
|
7227
|
+
},
|
|
7228
|
+
{
|
|
7229
|
+
id: "ai-slash-command",
|
|
7230
|
+
domain: "ai",
|
|
7231
|
+
category: "ai_input",
|
|
7232
|
+
vibeTag: "\uC2AC\uB798\uC2DC \uC785\uB825\uC73C\uB85C \uC989\uC2DC \uBA85\uB839\uC5B4\uB97C \uD638\uCD9C\uD558\uB294",
|
|
7233
|
+
vibeKeywords: ["\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC", "\uD504\uB86C\uD504\uD2B8 \uBA85\uB839\uC5B4", "\uCEE4\uB9E8\uB4DC \uD31D\uC624\uBC84", "\uB2E8\uCD95 \uBA85\uB839", "\uD0A4\uBCF4\uB4DC \uD314\uB808\uD2B8"],
|
|
7234
|
+
titleKo: "\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8",
|
|
7235
|
+
titleEn: "Slash Command Palette",
|
|
7236
|
+
summary: "\uC785\uB825\uCC3D\uC5D0 \uC2AC\uB798\uC2DC\uB97C \uC785\uB825\uD558\uBA74 \uCD94\uCC9C \uBA85\uB839 \uD31D\uC624\uBC84\uAC00 \uC5F4\uB9AC\uACE0 \uBC29\uD5A5\uD0A4\uC640 \uC5D4\uD130\uB85C \uD14D\uC2A4\uD2B8\uB97C \uC790\uB3D9 \uC644\uC131",
|
|
7237
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC2AC\uB798\uC2DC(/) \uBB38\uC790\uB85C \uD2B8\uB9AC\uAC70\uB418\uB294 \uBA85\uB839\uC5B4 \uD31D\uC624\uBC84 \uC778\uD130\uB799\uC158\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108\uC5D0 \uB2E8\uC77C input \uB610\uB294 textarea\uB97C \uB450\uACE0, \uC0AC\uC6A9\uC790\uAC00 /\uB97C \uC785\uB825\uD558\uBA74 \uCEE4\uC11C \uC704\uCABD\uC73C\uB85C 220px \uB108\uBE44\uC758 \uD50C\uB85C\uD305 \uBA54\uB274\uAC00 150ms \uD398\uC774\uB4DC\uC778\uC73C\uB85C \uB098\uD0C0\uB098\uAC8C \uD574 \uC918. \uD31D\uC624\uBC84 \uBA54\uB274\uC5D0\uB294 \uC694\uC57D(/summarize), \uBC88\uC5ED(/translate), \uCF54\uB4DC \uC0DD\uC131(/code), \uB9AC\uD329\uD1A0\uB9C1(/refactor)\uC758 4\uAC1C \uCEE4\uB9E8\uB4DC \uD56D\uBAA9(\uB192\uC774 36px, \uD328\uB529 8px, 12px \uD3F0\uD2B8, \uC544\uC774\uCF58 \uD3EC\uD568)\uC744 \uB2F4\uC544 \uC918. \uD0A4\uBCF4\uB4DC \uC704/\uC544\uB798 \uBC29\uD5A5\uD0A4\uB85C \uD3EC\uCEE4\uC2A4 \uD56D\uBAA9\uC744 \uD0D0\uC0C9\uD560 \uC218 \uC788\uACE0, Enter \uD0A4\uB098 \uD074\uB9AD\uC73C\uB85C \uC120\uD0DD\uD558\uBA74 \uC785\uB825\uCC3D\uC758 /\uAC00 \uD574\uB2F9 \uBA85\uB839\uC5B4 \uD504\uB86C\uD504\uD2B8\uB85C \uCE58\uD658\uB418\uBA70 \uD31D\uC624\uBC84\uAC00 \uB2EB\uD788\uAC8C \uD574 \uC918. Escape \uD0A4\uB97C \uB204\uB974\uBA74 \uD31D\uC624\uBC84\uAC00 \uCDE8\uC18C\uB418\uACE0 \uD14C\uB9C8(\uB77C\uC774\uD2B8 #ffffff \uBC14\uD0D5/#e2e8f0 \uD14C\uB450\uB9AC, \uB2E4\uD06C #1e293b \uBC14\uD0D5/#475569 \uD14C\uB450\uB9AC)\uB97C \uC9C0\uC6D0\uD574 \uC918. \uC678\uBD80 \uC758\uC874\uC131 \uC5C6\uC774 React \uC0C1\uD0DC\uB85C \uAD6C\uD604\uD574 \uC918."
|
|
7238
|
+
},
|
|
7239
|
+
{
|
|
7240
|
+
id: "ai-context-pill",
|
|
7241
|
+
domain: "ai",
|
|
7242
|
+
category: "ai_input",
|
|
7243
|
+
vibeTag: "\uCCA8\uBD80\uB41C \uCEE8\uD14D\uC2A4\uD2B8\uC640 \uD1A0\uD070 \uC18C\uBAA8\uB7C9\uC744 \uD55C\uB208\uC5D0 \uBCF4\uC5EC\uC8FC\uB294",
|
|
7244
|
+
vibeKeywords: ["\uCEE8\uD14D\uC2A4\uD2B8 \uAC8C\uC774\uC9C0", "\uD1A0\uD070 \uBC14", "\uBB38\uC11C \uD0DC\uADF8 \uCE69", "\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0", "\uD1A0\uD070 \uC0AC\uC6A9\uB7C9"],
|
|
7245
|
+
titleKo: "\uCEE8\uD14D\uC2A4\uD2B8 \uD1A0\uD070 \uAC8C\uC774\uC9C0",
|
|
7246
|
+
titleEn: "Context Token Gauge",
|
|
7247
|
+
summary: "\uCC38\uC870 \uBB38\uC11C \uCE69\uC744 \uD0DC\uADF8 \uD615\uD0DC\uB85C \uCD94\uAC00\xB7\uC0AD\uC81C\uD558\uBA70 \uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0\uC758 \uD1A0\uD070 \uD55C\uB3C4 \uB300\uBE44 \uC18C\uBAA8\uC728\uC744 \uAC8C\uC774\uC9C0\uB85C \uD45C\uC2DC",
|
|
7248
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uCCA8\uBD80 \uBB38\uC11C \uD0DC\uADF8 \uCE69\uACFC \uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uAC8C\uC774\uC9C0\uB97C \uAC16\uCD98 \uCEE8\uD14D\uC2A4\uD2B8 \uAD00\uB9AC UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 12px \uBAA8\uC11C\uB9AC\uC640 1px \uD14C\uB450\uB9AC\uC758 \uCE74\uB4DC\uB97C \uAD6C\uC131\uD574 \uC918. \uC0C1\uB2E8\uC5D0\uB294 \uCCA8\uBD80\uB41C \uCEE8\uD14D\uC2A4\uD2B8 \uCE69(\uC608: API_Spec.pdf 1200\uD1A0\uD070, System_Prompt 400\uD1A0\uD070)\uB4E4\uC774 \uAC00\uB85C flex\uB85C \uB098\uC5F4\uB418\uBA70, \uAC01 \uCE69\uC740 24px \uB192\uC774, 11px \uAE00\uC790, X \uC0AD\uC81C \uBC84\uD2BC\uC744 \uAC16\uCDB0 \uD074\uB9AD \uC2DC \uC81C\uAC70\uB418\uAC8C \uD574 \uC918. [\uBB38\uC11C \uCD94\uAC00] \uBC84\uD2BC\uC744 \uD074\uB9AD\uD558\uBA74 \uC0C8\uB85C\uC6B4 \uC0D8\uD50C \uCE69(800\uD1A0\uD070)\uC774 \uCD94\uAC00\uB418\uC5B4\uC57C \uD574. \uD558\uB2E8\uC5D0\uB294 \uCD1D \uD55C\uB3C4 8000\uD1A0\uD070 \uC911 \uD604\uC7AC \uC0AC\uC6A9\uB41C \uD1A0\uD070 \uBE44\uC728\uC744 \uB098\uD0C0\uB0B4\uB294 8px \uB192\uC774\uC758 \uD504\uB85C\uADF8\uB808\uC2A4 \uBC14\uB97C \uB450\uACE0, 70% \uBBF8\uB9CC\uC740 #10b981 \uCD08\uB85D, 70% \uC774\uC0C1 90% \uBBF8\uB9CC\uC740 #f59e0b \uC8FC\uD669, 90% \uC774\uC0C1\uC740 #ef4444 \uBE68\uAC15\uC73C\uB85C \uAC8C\uC774\uC9C0 \uC0C9\uC0C1\uC774 \uBC14\uB00C\uAC8C \uD574 \uC918. \uCE69 \uCD94\uAC00\xB7\uC0AD\uC81C \uC2DC \uAC8C\uC774\uC9C0 \uB108\uBE44\uAC00 200ms \uD2B8\uB79C\uC9C0\uC158\uC73C\uB85C \uBD80\uB4DC\uB7FD\uAC8C \uBCC0\uD574\uC57C \uD574."
|
|
7249
|
+
},
|
|
7250
|
+
/* 2. 스트리밍 & 렌더링 (ai_streaming) */
|
|
7251
|
+
{
|
|
7252
|
+
id: "ai-streaming-text",
|
|
7253
|
+
domain: "ai",
|
|
7254
|
+
category: "ai_streaming",
|
|
7255
|
+
vibeTag: "\uD55C \uAE00\uC790\uC529 \uC2E4\uC2DC\uAC04\uC73C\uB85C \uD0C0\uC774\uD551\uB418\uBA70 \uC0DD\uC131\uB418\uB294",
|
|
7256
|
+
vibeKeywords: ["\uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8", "\uD384\uC2A4 \uCEE4\uC11C", "\uD0C0\uC774\uD551 \uD6A8\uACFC", "\uC751\uB2F5 \uC911\uB2E8", "\uC2E4\uC2DC\uAC04 \uC0DD\uC131"],
|
|
7257
|
+
titleKo: "\uD384\uC2A4 \uCEE4\uC11C \uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8",
|
|
7258
|
+
titleEn: "Pulsing Cursor Streaming Text",
|
|
7259
|
+
summary: "\uC751\uB2F5 \uC0DD\uC131 \uC2DC \uAE5C\uBE61\uC774\uB294 \uD384\uC2A4 \uCE90\uB7FF\uACFC \uD568\uAED8 \uAE00\uC790\uAC00 \uD758\uB7EC\uB098\uC624\uBA70 \uC989\uC2DC \uC911\uB2E8\uD560 \uC218 \uC788\uB294 \uCEE8\uD2B8\uB864\uC744 \uC81C\uACF5",
|
|
7260
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC2E4\uC2DC\uAC04 \uD14D\uC2A4\uD2B8 \uC2A4\uD2B8\uB9AC\uBC0D \uD0C0\uC774\uD551\uACFC \uAE5C\uBE61\uC774\uB294 \uD384\uC2A4 \uCE90\uB7FF \uD6A8\uACFC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCE74\uB4DC \uC548\uC5D0\uC11C [\uC751\uB2F5 \uC0DD\uC131] \uBC84\uD2BC\uC744 \uB204\uB974\uBA74 \uBBF8\uB9AC \uC815\uC758\uB41C 150\uC790 \uBD84\uB7C9\uC758 AI \uB2F5\uBCC0\uC774 30ms \uAC04\uACA9\uC73C\uB85C \uD55C \uAE00\uC790\uC529 \uCD9C\uB825\uB418\uAC8C \uD574 \uC918. \uD14D\uC2A4\uD2B8 \uB9E8 \uB05D\uC5D0\uB294 2px \uB108\uBE44, 14px \uB192\uC774\uC758 #6366f1 \uC0C9\uC0C1 \uC218\uC9C1 \uBC14(\uC778\uB77C\uC778 \uCE90\uB7FF)\uAC00 0.8\uCD08 \uC8FC\uAE30\uB85C \uAE5C\uBE61\uC5EC\uC57C \uD574. \uC2A4\uD2B8\uB9AC\uBC0D \uC911\uC5D0\uB294 [\uC751\uB2F5 \uC0DD\uC131] \uBC84\uD2BC\uC774 [\uC751\uB2F5 \uC911\uC9C0] \uBC84\uD2BC(\uBE68\uAC04\uC0C9 \uD14C\uB450\uB9AC\uC640 12px \uD3F0\uD2B8)\uC73C\uB85C \uC804\uD658\uB418\uBA70, \uD074\uB9AD \uC2DC \uC989\uC2DC \uD0C0\uC774\uBA38\uAC00 \uBA48\uCD94\uACE0 \uCE90\uB7FF\uC774 \uC0AC\uB77C\uC838\uC57C \uD574. \uC644\uB8CC\uB418\uAC70\uB098 \uC911\uC9C0\uB41C \uD6C4\uC5D0\uB294 [\uB2E4\uC2DC \uC0DD\uC131] \uBC84\uD2BC\uC73C\uB85C \uCC98\uC74C\uBD80\uD130 \uC7AC\uC0DD\uD560 \uC218 \uC788\uAC8C \uD574 \uC918. \uB77C\uC774\uD2B8 \uBAA8\uB4DC(#1e293b \uAE00\uC790)\uC640 \uB2E4\uD06C \uBAA8\uB4DC(#f8fafc \uAE00\uC790) \uAC00\uB3C5\uC131\uC744 \uBCF4\uC7A5\uD558\uACE0 unmount \uC2DC \uD0C0\uC774\uBA38\uB97C \uC815\uB9AC\uD574 \uC918."
|
|
7261
|
+
},
|
|
7262
|
+
{
|
|
7263
|
+
id: "ai-code-runner",
|
|
7264
|
+
domain: "ai",
|
|
7265
|
+
category: "ai_streaming",
|
|
7266
|
+
vibeTag: "\uC2E0\uD0DD\uC2A4 \uD558\uC774\uB77C\uC774\uD305\uACFC \uACB0\uACFC \uBBF8\uB9AC\uBCF4\uAE30\uB97C \uC624\uAC00\uB294",
|
|
7267
|
+
vibeKeywords: ["\uC778\uD130\uB799\uD2F0\uBE0C \uCF54\uB4DC \uBE14\uB85D", "\uCF54\uB4DC \uD558\uC774\uB77C\uC774\uD2B8", "\uACB0\uACFC \uBBF8\uB9AC\uBCF4\uAE30", "\uC6D0\uD074\uB9AD \uBCF5\uC0AC", "\uC2E4\uD589 \uD0ED"],
|
|
7268
|
+
titleKo: "\uC778\uD130\uB799\uD2F0\uBE0C \uCF54\uB4DC \uBE14\uB85D",
|
|
7269
|
+
titleEn: "Interactive Code Block",
|
|
7270
|
+
summary: "\uC5B8\uC5B4 \uBC30\uC9C0\uC640 \uBCF5\uC0AC \uBC84\uD2BC\uC744 \uAC16\uCD98 \uCF54\uB4DC \uBE14\uB85D\uC5D0\uC11C \uD0ED \uC804\uD658\uC744 \uD1B5\uD574 \uB80C\uB354\uB9C1\uB41C \uCEF4\uD3EC\uB10C\uD2B8 \uACB0\uACFC\uB97C \uBC14\uB85C \uD655\uC778",
|
|
7271
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uCF54\uB4DC \uBDF0\uC640 \uBBF8\uB9AC\uBCF4\uAE30(Preview) \uBDF0\uB97C \uD0ED\uC73C\uB85C \uC804\uD658\uD560 \uC218 \uC788\uB294 \uC778\uD130\uB799\uD2F0\uBE0C \uCF54\uB4DC \uBE14\uB85D\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px\uC758 \uC5B4\uB450\uC6B4 \uCE74\uB4DC(#0f172a \uBC30\uACBD, 12px \uBAA8\uC11C\uB9AC, 1px #334155 \uD14C\uB450\uB9AC)\uB97C \uAD6C\uC131\uD574 \uC918. \uC0C1\uB2E8 \uD5E4\uB354(36px \uB192\uC774, \uD328\uB529 12px)\uC5D0\uB294 \uC88C\uCE21\uC5D0 [Code]\uC640 [Preview] 2\uAC1C\uC758 \uD0ED \uBC84\uD2BC(12px \uD3F0\uD2B8, \uC120\uD0DD \uC2DC #6366f1 \uD558\uB2E8 2px \uC778\uB514\uCF00\uC774\uD130)\uACFC TypeScript \uC5B8\uC5B4 \uBC30\uC9C0\uB97C \uB450\uACE0, \uC6B0\uCE21\uC5D0\uB294 [\uBCF5\uC0AC] \uBC84\uD2BC\uC744 \uBC30\uCE58\uD574 \uC918. \uBCF5\uC0AC \uD074\uB9AD \uC2DC 1.5\uCD08\uAC04 [\uBCF5\uC0AC\uB428 \u2713]\uC73C\uB85C \uB77C\uBCA8\uC774 \uC804\uD658\uB418\uC5B4\uC57C \uD574. Code \uD0ED\uC5D0\uC11C\uB294 \uBB38\uBC95 \uD558\uC774\uB77C\uC774\uD2B8 \uC2A4\uD0C0\uC77C\uC774 \uC801\uC6A9\uB41C \uC18C\uC2A4 \uCF54\uB4DC\uB97C \uD45C\uC2DC\uD558\uACE0, Preview \uD0ED\uC73C\uB85C \uC804\uD658\uD558\uBA74 \uD574\uB2F9 \uCF54\uB4DC\uAC00 \uB80C\uB354\uB9C1\uD55C \uC2E4\uC81C \uCE74\uC6B4\uD130 \uBC84\uD2BC UI\uAC00 \uC778\uD130\uB799\uD2F0\uBE0C\uD558\uAC8C \uB3D9\uC791\uD574\uC57C \uD574. \uD0ED \uC804\uD658\uC740 150ms \uD398\uC774\uB4DC \uD6A8\uACFC\uB85C \uBD80\uB4DC\uB7FD\uAC8C \uC5F0\uACB0\uD574 \uC918."
|
|
7272
|
+
},
|
|
7273
|
+
{
|
|
7274
|
+
id: "ai-message-branch",
|
|
7275
|
+
domain: "ai",
|
|
7276
|
+
category: "ai_streaming",
|
|
7277
|
+
vibeTag: "\uB2E4\uC2DC \uC0DD\uC131\uD55C \uB2F5\uBCC0\uB4E4\uC744 \uC790\uC720\uB86D\uAC8C \uB118\uACA8\uBCF4\uB294",
|
|
7278
|
+
vibeKeywords: ["\uBC84\uC804 \uBD84\uAE30", "\uC7AC\uC0DD\uC131 \uD788\uC2A4\uD1A0\uB9AC", "\uC751\uB2F5 \uC2A4\uC704\uCC98", "\uBE0C\uB79C\uCE58 \uB124\uBE44\uAC8C\uC774\uC158", "\uBC84\uC804 \uBE44\uAD50"],
|
|
7279
|
+
titleKo: "\uC751\uB2F5 \uBC84\uC804 \uBD84\uAE30 \uC2A4\uC704\uCC98",
|
|
7280
|
+
titleEn: "Response Branch Switcher",
|
|
7281
|
+
summary: "\uB3D9\uC77C \uD504\uB86C\uD504\uD2B8\uC5D0\uC11C \uC7AC\uC0DD\uC131\uB41C \uC5EC\uB7EC \uB2F5\uBCC0 \uBC84\uC804\uC744 \uC774\uC804/\uB2E4\uC74C \uBC84\uD2BC\uC73C\uB85C \uD0D0\uC0C9\uD558\uBA70 \uBD84\uAE30 \uC774\uB825\uC744 \uAD00\uB9AC",
|
|
7282
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC5EC\uB7EC \uBC88 \uC7AC\uC0DD\uC131\uB41C AI \uC751\uB2F5 \uBC84\uC804\uC744 \uB118\uACA8\uBCFC \uC218 \uC788\uB294 \uBD84\uAE30 \uC2A4\uC704\uCC98 UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uB9D0\uD48D\uC120 \uCE74\uB4DC(12px \uBAA8\uC11C\uB9AC, \uD328\uB529 16px, 1px \uD14C\uB450\uB9AC)\uB97C \uB450\uACE0, \uD558\uB2E8\uC5D0 < 1 / 3 > \uD615\uD0DC\uC758 \uBC84\uC804 \uB124\uBE44\uAC8C\uC774\uC158 \uCEE8\uD2B8\uB864(\uB192\uC774 28px, 11px \uAE00\uC790)\uC744 \uBC30\uCE58\uD574 \uC918. \uC88C\uC6B0 \uD654\uC0B4\uD45C \uBC84\uD2BC\uC744 \uD074\uB9AD\uD558\uBA74 \uBC84\uC804 \uC778\uB371\uC2A4\uAC00 \uBC14\uB00C\uBA74\uC11C \uC774\uC804/\uB2E4\uC74C \uC751\uB2F5 \uD14D\uC2A4\uD2B8(\uC608: \uBC84\uC804 1 \uAC04\uACB0\uD615, \uBC84\uC804 2 \uC0C1\uC138\uD615, \uBC84\uC804 3 \uD45C \uD615\uC2DD)\uB85C 200ms \uC2AC\uB77C\uC774\uB4DC \uC804\uD658\uB418\uC5B4\uC57C \uD574. \uC6B0\uCE21 \uC0C1\uB2E8\uC5D0\uB294 [\uC0C8 \uBC84\uC804 \uC0DD\uC131] \uBC84\uD2BC\uC744 \uB450\uC5B4 \uD074\uB9AD \uC2DC 4\uBC88\uC9F8 \uBC84\uC804\uC774 \uBC30\uC5F4\uC5D0 \uCD94\uAC00\uB418\uACE0 \uC989\uC2DC \uD574\uB2F9 \uBC84\uC804\uC73C\uB85C \uC774\uB3D9\uD558\uAC8C \uD574 \uC918. \uCCAB \uBC84\uC804\uC77C \uB54C\uB294 \uC774\uC804 \uBC84\uD2BC\uC774 \uBE44\uD65C\uC131\uD654\uB418\uACE0 \uB9C8\uC9C0\uB9C9 \uBC84\uC804\uC77C \uB54C\uB294 \uB2E4\uC74C \uBC84\uD2BC\uC774 \uBE44\uD65C\uC131\uD654\uB418\uC5B4\uC57C \uD574."
|
|
7283
|
+
},
|
|
7284
|
+
/* 3. 추론 & 사고과정 (ai_reasoning) */
|
|
7285
|
+
{
|
|
7286
|
+
id: "ai-thinking-accordion",
|
|
7287
|
+
domain: "ai",
|
|
7288
|
+
category: "ai_reasoning",
|
|
7289
|
+
vibeTag: "AI\uC758 \uCD94\uB860 \uB2E8\uACC4\uB97C \uD22C\uBA85\uD558\uAC8C \uD3BC\uCCD0\uBCF4\uB294",
|
|
7290
|
+
vibeKeywords: ["\uC0AC\uACE0 \uACFC\uC815 \uC544\uCF54\uB514\uC5B8", "\uCD94\uB860 \uD1A0\uAE00", "Thinking Log", "CoT \uB2E8\uACC4", "\uACBD\uACFC \uC2DC\uAC04"],
|
|
7291
|
+
titleKo: "\uC0AC\uACE0 \uACFC\uC815 \uC544\uCF54\uB514\uC5B8",
|
|
7292
|
+
titleEn: "Thinking Process Accordion",
|
|
7293
|
+
summary: "\uACBD\uACFC \uC2DC\uAC04 \uBC30\uC9C0\uC640 \uD568\uAED8 AI\uC758 \uB0B4\uBD80 \uCD94\uB860(Chain-of-Thought) \uB85C\uADF8\uB97C \uC811\uACE0 \uD3BC\uCE58\uBA70 \uC810\uAC80",
|
|
7294
|
+
promptSnippet: '\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 AI\uC758 \uCD94\uB860 \uACFC\uC815(Chain-of-Thought)\uC744 \uC811\uACE0 \uD3BC\uCE60 \uC218 \uC788\uB294 \uC544\uCF54\uB514\uC5B8 UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 12px \uBAA8\uC11C\uB9AC\uC640 1px \uD14C\uB450\uB9AC\uC758 \uCE74\uB4DC\uB97C \uAD6C\uC131\uD574 \uC918. \uC0C1\uB2E8 \uBC14(\uB192\uC774 40px, \uD328\uB529 12px)\uC5D0\uB294 \uC804\uAD6C \uC544\uC774\uCF58, "\uC0AC\uACE0 \uACFC\uC815 (4\uCD08 \uC18C\uC694)" \uD14D\uC2A4\uD2B8, \uD384\uC2A4 \uC560\uB2C8\uBA54\uC774\uC158 \uB3C4\uD2B8, \uC6B0\uCE21 \uD68C\uC804 \uD654\uC0B4\uD45C\uB97C \uBC30\uCE58\uD574 \uC918. \uC0C1\uB2E8 \uBC14\uB97C \uD074\uB9AD\uD558\uBA74 200ms \uD2B8\uB79C\uC9C0\uC158\uC73C\uB85C \uBCF8\uBB38 \uC601\uC5ED\uC774 \uD3BC\uCCD0\uC9C0\uAC70\uB098 \uB2EB\uD600\uC57C \uD574. \uD3BC\uCCD0\uC9C4 \uBCF8\uBB38(\uD328\uB529 12px, 12px \uD3F0\uD2B8, \uD750\uB9B0 \uD68C\uC0C9 \uD14D\uC2A4\uD2B8)\uC5D0\uB294 3\uB2E8\uACC4 \uC0AC\uACE0 \uD750\uB984("1. \uC9C8\uBB38 \uC758\uB3C4 \uBD84\uC11D \uC644\uB8CC", "2. \uAD00\uB828 \uBB38\uC11C 3\uAC74 \uC778\uB371\uC2F1", "3. \uCD5C\uC885 \uB2F5\uBCC0 \uC694\uC57D \uC791\uC131")\uC774 \uD0C0\uC784\uB77C\uC778 \uD615\uD0DC\uB85C \uCCB4\uD06C \uC544\uC774\uCF58\uACFC \uD568\uAED8 \uD45C\uC2DC\uB418\uC5B4\uC57C \uD574. \uB77C\uC774\uD2B8\uC640 \uB2E4\uD06C \uBAA8\uB4DC\uC5D0 \uB9DE\uCDB0 \uBC30\uACBD(#f8fafc vs #1e293b)\uACFC \uD14C\uB450\uB9AC\uAC00 \uC790\uC5F0\uC2A4\uB7FD\uAC8C \uC804\uD658\uB418\uB3C4\uB85D \uD574 \uC918.'
|
|
7295
|
+
},
|
|
7296
|
+
{
|
|
7297
|
+
id: "ai-source-citation",
|
|
7298
|
+
domain: "ai",
|
|
7299
|
+
category: "ai_reasoning",
|
|
7300
|
+
vibeTag: "\uB2F5\uBCC0 \uC18D \uC778\uC6A9 \uBC88\uD638\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB9AC\uBA74 \uADFC\uAC70\uB97C \uBCF4\uC5EC\uC8FC\uB294",
|
|
7301
|
+
vibeKeywords: ["\uCD9C\uCC98 \uC778\uC6A9 \uCE69", "\uC778\uB77C\uC778 \uB808\uD37C\uB7F0\uC2A4", "\uCD9C\uCC98 \uBBF8\uB9AC\uBCF4\uAE30", "\uCC38\uACE0 \uBB38\uD5CC \uD31D\uC624\uBC84", "\uADFC\uAC70 \uCE74\uB4DC"],
|
|
7302
|
+
titleKo: "\uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9 \uD31D\uC624\uBC84",
|
|
7303
|
+
titleEn: "Inline Source Citation Popover",
|
|
7304
|
+
summary: "\uD14D\uC2A4\uD2B8 \uC18D \uC778\uC6A9 \uBC30\uC9C0\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB9AC\uBA74 \uC6D0\uBB38 \uC0AC\uC774\uD2B8\uC758 \uD30C\uBE44\uCF58, \uC81C\uBAA9, \uBC1C\uCDCC \uC2A4\uB2C8\uD3AB \uCE74\uB4DC\uB97C \uD31D\uC624\uBC84\uB85C \uB178\uCD9C",
|
|
7305
|
+
promptSnippet: '\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uD14D\uC2A4\uD2B8 \uC778\uB77C\uC778 \uCD9C\uCC98 \uBC88\uD638 \uBC43\uC9C0\uC640 \uD638\uBC84 \uD31D\uC624\uBC84 \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 AI \uB2F5\uBCC0 \uBB38\uC7A5\uC744 \uD45C\uC2DC\uD558\uACE0, \uBB38\uC7A5 \uB05D\uC5D0 [1], [2] \uD615\uD0DC\uC758 \uC791\uC740 \uC778\uC6A9 \uCE69(\uB192\uC774 18px, \uD328\uB529 \uC88C\uC6B0 6px, 11px \uAE00\uC790, \uB465\uADFC \uBAA8\uC11C\uB9AC 9999px, #6366f1 \uD14D\uC2A4\uD2B8)\uC744 \uBC30\uCE58\uD574 \uC918. \uC778\uC6A9 \uCE69\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB9AC\uAC70\uB098 \uD3EC\uCEE4\uC2A4\uD558\uBA74 \uCE69 \uC0C1\uB2E8\uC73C\uB85C 240px \uB108\uBE44\uC758 \uCD9C\uCC98 \uBBF8\uB9AC\uBCF4\uAE30 \uCE74\uB4DC(12px \uBAA8\uC11C\uB9AC, \uD328\uB529 10px, 1px \uD14C\uB450\uB9AC, \uADF8\uB9BC\uC790)\uAC00 150ms \uD398\uC774\uB4DC\uC778\uC73C\uB85C \uB098\uD0C0\uB098\uAC8C \uD574 \uC918. \uD31D\uC624\uBC84 \uCE74\uB4DC \uB0B4\uBD80\uC5D0\uB294 \uBB38\uC11C \uC544\uC774\uCF58, \uCD9C\uCC98 \uC6F9\uD398\uC774\uC9C0 \uC81C\uBAA9("React 19 \uB9C8\uC774\uADF8\uB808\uC774\uC158 \uAC00\uC774\uB4DC"), \uB3C4\uBA54\uC778 URL("react.dev"), \uD575\uC2EC \uBC1C\uCDCC\uBB38 2\uC904\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD574. \uB9C8\uC6B0\uC2A4\uAC00 \uBC97\uC5B4\uB098\uBA74 \uD31D\uC624\uBC84\uAC00 \uBD80\uB4DC\uB7FD\uAC8C \uC0AC\uB77C\uC9C0\uB3C4\uB85D \uD574 \uC918.'
|
|
7306
|
+
},
|
|
7307
|
+
/* 4. 에이전트 & 도구 (ai_agent) */
|
|
7308
|
+
{
|
|
7309
|
+
id: "ai-tool-call-card",
|
|
7310
|
+
domain: "ai",
|
|
7311
|
+
category: "ai_agent",
|
|
7312
|
+
vibeTag: "\uB3C4\uAD6C \uD638\uCD9C \uC778\uC790\uC640 \uC2E4\uD589 \uACB0\uACFC\uB97C \uC2DC\uAC01\uD654\uD558\uB294",
|
|
7313
|
+
vibeKeywords: ["\uB3C4\uAD6C \uC2E4\uD589 \uCE74\uB4DC", "Tool Call", "\uD568\uC218 \uD638\uCD9C", "\uC2E4\uD589 \uC0C1\uD0DC \uBC30\uC9C0", "\uD30C\uB77C\uBBF8\uD130 \uC811\uAE30"],
|
|
7314
|
+
titleKo: "\uC5D0\uC774\uC804\uD2B8 \uB3C4\uAD6C \uC2E4\uD589 \uCE74\uB4DC",
|
|
7315
|
+
titleEn: "Agent Tool Execution Card",
|
|
7316
|
+
summary: "\uAC80\uC0C9\xB7\uACC4\uC0B0 \uB4F1 \uC5D0\uC774\uC804\uD2B8\uAC00 \uD638\uCD9C\uD55C \uB3C4\uAD6C \uC774\uB984, \uC804\uB2EC \uC778\uC790, \uC2E4\uD589 \uC9C4\uD589 \uC2A4\uD53C\uB108 \uBC0F \uACB0\uACFC\uB97C \uB2E8\uACC4\uBCC4 \uCE74\uB4DC\uB85C \uD45C\uC2DC",
|
|
7317
|
+
promptSnippet: '\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 AI \uC5D0\uC774\uC804\uD2B8\uC758 \uB3C4\uAD6C \uC2E4\uD589(Tool Call) \uC0C1\uD0DC\uC640 \uC785\uCD9C\uB825\uC744 \uBCF4\uC5EC\uC8FC\uB294 \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 12px \uBAA8\uC11C\uB9AC\uC640 1px \uD14C\uB450\uB9AC\uC758 \uBC15\uC2A4\uB97C \uAD6C\uC131\uD574 \uC918. \uCE74\uB4DC \uD5E4\uB354\uC5D0\uB294 \uB80C\uCE58 \uC544\uC774\uCF58, \uB3C4\uAD6C \uC774\uB984("search_docs"), \uC2E4\uD589 \uC0C1\uD0DC \uBC30\uC9C0(\uC2E4\uD589 \uC911\uC5D0\uB294 \uD30C\uB780 \uC2A4\uD53C\uB108\uC640 "\uC2E4\uD589 \uC911...", \uC644\uB8CC \uC2DC \uCD08\uB85D \uCCB4\uD06C\uC640 "\uC131\uACF5 (120ms)")\uB97C \uD45C\uC2DC\uD574 \uC918. [\uB3C4\uAD6C \uC7AC\uC2E4\uD589] \uBC84\uD2BC\uC744 \uB204\uB974\uBA74 1.2\uCD08\uAC04 \uC2E4\uD589 \uC911 \uC0C1\uD0DC\uB85C \uC804\uD658\uB41C \uD6C4 \uC644\uB8CC \uC0C1\uD0DC\uB85C \uBCF5\uADC0\uD574\uC57C \uD574. \uBCF8\uBB38\uC5D0\uB294 \uC804\uB2EC\uB41C \uC778\uC790 JSON(query: "vibe coding")\uACFC \uBC18\uD658\uB41C \uACB0\uACFC \uC694\uC57D\uC774 \uC544\uCF54\uB514\uC5B8 \uD615\uD0DC\uB85C \uD3EC\uD568\uB418\uC5B4 \uD074\uB9AD \uC2DC \uC811\uAC70\uB098 \uD3BC\uCE60 \uC218 \uC788\uAC8C \uD574 \uC918. \uBAA8\uB178\uC2A4\uD398\uC774\uC2A4 \uAE00\uAF34\uACFC \uB77C\uC774\uD2B8/\uB2E4\uD06C \uD14C\uB9C8 \uBC30\uACBD\uC744 \uC9C0\uC6D0\uD574 \uC918.'
|
|
7318
|
+
},
|
|
7319
|
+
{
|
|
7320
|
+
id: "ai-human-in-the-loop",
|
|
7321
|
+
domain: "ai",
|
|
7322
|
+
category: "ai_agent",
|
|
7323
|
+
vibeTag: "\uC704\uD5D8\uD55C \uC791\uC5C5\uC744 \uC2E4\uD589\uD558\uAE30 \uC804 \uC0AC\uB78C\uC758 \uD655\uC778\uC744 \uAD6C\uD558\uB294",
|
|
7324
|
+
vibeKeywords: ["\uC2B9\uC778 \uAC00\uB4DC\uB808\uC77C", "Human-in-the-loop", "\uC791\uC5C5 \uC2B9\uC778 \uBAA8\uB2EC", "\uC704\uD5D8 \uBA85\uB839 \uCC28\uB2E8", "\uC2E4\uD589 \uD5C8\uC6A9"],
|
|
7325
|
+
titleKo: "\uC5D0\uC774\uC804\uD2B8 \uC2B9\uC778 \uAC00\uB4DC\uB808\uC77C",
|
|
7326
|
+
titleEn: "Agent Approval Guardrail",
|
|
7327
|
+
summary: "\uC911\uC694\uD55C \uD30C\uC77C \uC218\uC815\uC774\uB098 \uC678\uBD80 \uC804\uC1A1 \uC804 \uC704\uD5D8\uB3C4 \uBC30\uC9C0\uC640 \uC601\uD5A5\uB3C4\uB97C \uC548\uB0B4\uD558\uACE0 \uC0AC\uC6A9\uC790\uC758 \uBA85\uC2DC\uC801 \uC2B9\uC778\xB7\uAC70\uC808\uC744 \uC218\uC2E0",
|
|
7328
|
+
promptSnippet: '\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC5D0\uC774\uC804\uD2B8\uC758 \uC7A0\uC7AC\uC801 \uC704\uD5D8 \uC791\uC5C5\uC5D0 \uB300\uD55C Human-in-the-loop \uC2B9\uC778 \uCE74\uB4DC \uC778\uD130\uB799\uC158\uC744 \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uC8FC\uD669\uC0C9 \uACBD\uACE0 \uD14C\uB450\uB9AC(1px #f59e0b)\uC640 12px \uBAA8\uC11C\uB9AC\uC758 \uCE74\uB4DC\uB97C \uBC30\uCE58\uD574 \uC918. \uC0C1\uB2E8\uC5D0\uB294 \uACBD\uACE0 \uC0BC\uAC01\uD615 \uC544\uC774\uCF58, "\uD30C\uC77C \uC0AD\uC81C \uC2B9\uC778 \uC694\uCCAD", \uC704\uD5D8\uB3C4 [High] \uBE68\uAC04 \uBC30\uC9C0\uB97C \uB450\uACE0, \uC911\uC559\uC5D0\uB294 \uC2E4\uD589 \uC608\uC815 \uBA85\uB839("rm -rf ./temp_cache")\uACFC \uC601\uD5A5\uBC1B\uB294 \uD30C\uC77C 3\uAC74\uC758 \uBAA9\uB85D\uC744 \uC548\uB0B4\uD574 \uC918. \uD558\uB2E8\uC5D0\uB294 [\uAC70\uC808\uD558\uAE30] \uBC84\uD2BC(\uD68C\uC0C9 \uBCF4\uB354, 32px \uB192\uC774)\uACFC [\uC2B9\uC778\uD558\uC5EC \uC2E4\uD589] \uBC84\uD2BC(\uC8FC\uD669/\uBE68\uAC15 \uBC30\uACBD, \uD770\uC0C9 \uD14D\uC2A4\uD2B8, 32px \uB192\uC774)\uC744 \uC81C\uACF5\uD574 \uC918. \uC2B9\uC778 \uD074\uB9AD \uC2DC \uCD08\uB85D\uC0C9 "\uC2B9\uC778 \uC644\uB8CC\uB428" \uC0C1\uD0DC\uB85C \uCE74\uB4DC \uB0B4\uC6A9\uC774 \uC804\uD658\uB418\uACE0, \uAC70\uC808 \uD074\uB9AD \uC2DC \uD68C\uC0C9 "\uC791\uC5C5\uC774 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4"\uB85C \uBCC0\uACBD\uB418\uBA70 \uBCF5\uC6D0 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918.'
|
|
7329
|
+
}
|
|
7330
|
+
];
|
|
7331
|
+
|
|
7214
7332
|
// ../../packages/catalog/src/techniques.ts
|
|
7215
7333
|
var UI_CATEGORIES = [
|
|
7216
7334
|
{ id: "all", label: "\uC804\uCCB4" },
|
|
@@ -7260,13 +7378,21 @@ var VIDEO_CATEGORIES = [
|
|
|
7260
7378
|
{ id: "infographic", label: "\uB370\uC774\uD130\xB7\uCC28\uD2B8 \uBAA8\uC158" },
|
|
7261
7379
|
{ id: "broadcast", label: "\uBC29\uC1A1\xB7\uD2B8\uB79C\uC9C0\uC158\xB7\uC790\uB9C9" }
|
|
7262
7380
|
];
|
|
7381
|
+
var AI_CATEGORIES = [
|
|
7382
|
+
{ id: "all", label: "\uC804\uCCB4" },
|
|
7383
|
+
{ id: "ai_input", label: "\uC785\uB825\xB7\uD504\uB86C\uD504\uD2B8" },
|
|
7384
|
+
{ id: "ai_streaming", label: "\uC2A4\uD2B8\uB9AC\uBC0D\xB7\uB80C\uB354\uB9C1" },
|
|
7385
|
+
{ id: "ai_reasoning", label: "\uCD94\uB860\xB7\uC0AC\uACE0\uACFC\uC815" },
|
|
7386
|
+
{ id: "ai_agent", label: "\uC5D0\uC774\uC804\uD2B8\xB7\uB3C4\uAD6C" }
|
|
7387
|
+
];
|
|
7263
7388
|
var DOMAIN_LABELS = {
|
|
7264
7389
|
ui: "UI",
|
|
7265
7390
|
motion: "\uADF8\uB798\uD53D",
|
|
7266
7391
|
layout: "\uB808\uC774\uC544\uC6C3",
|
|
7267
7392
|
style: "\uC2A4\uD0C0\uC77C",
|
|
7268
7393
|
pixelart: "\uD53D\uC140\uC544\uD2B8",
|
|
7269
|
-
video: "\uBAA8\uC158 \uC601\uC0C1"
|
|
7394
|
+
video: "\uBAA8\uC158 \uC601\uC0C1",
|
|
7395
|
+
ai: "AI \uB124\uC774\uD2F0\uBE0C"
|
|
7270
7396
|
};
|
|
7271
7397
|
var DOMAIN_CATEGORIES = {
|
|
7272
7398
|
ui: UI_CATEGORIES,
|
|
@@ -7274,7 +7400,8 @@ var DOMAIN_CATEGORIES = {
|
|
|
7274
7400
|
layout: LAYOUT_CATEGORIES,
|
|
7275
7401
|
style: STYLE_CATEGORIES,
|
|
7276
7402
|
pixelart: PIXELART_CATEGORIES,
|
|
7277
|
-
video: VIDEO_CATEGORIES
|
|
7403
|
+
video: VIDEO_CATEGORIES,
|
|
7404
|
+
ai: AI_CATEGORIES
|
|
7278
7405
|
};
|
|
7279
7406
|
var CATEGORY_LABEL_MAP = Object.fromEntries(
|
|
7280
7407
|
[
|
|
@@ -7283,10 +7410,12 @@ var CATEGORY_LABEL_MAP = Object.fromEntries(
|
|
|
7283
7410
|
...LAYOUT_CATEGORIES,
|
|
7284
7411
|
...STYLE_CATEGORIES,
|
|
7285
7412
|
...PIXELART_CATEGORIES,
|
|
7286
|
-
...VIDEO_CATEGORIES
|
|
7413
|
+
...VIDEO_CATEGORIES,
|
|
7414
|
+
...AI_CATEGORIES
|
|
7287
7415
|
].map((c) => [c.id, c.label])
|
|
7288
7416
|
);
|
|
7289
7417
|
var TECHNIQUES = [
|
|
7418
|
+
...AI_ADDITIONS,
|
|
7290
7419
|
...STARTER_PACK_ADDITIONS,
|
|
7291
7420
|
...SIGNATURE_ADDITIONS,
|
|
7292
7421
|
...UI_COLLECTION_ADDITIONS,
|
|
@@ -7329,7 +7458,7 @@ var TECHNIQUES = [
|
|
|
7329
7458
|
];
|
|
7330
7459
|
|
|
7331
7460
|
// ../../packages/catalog/src/translations/classification.en.ts
|
|
7332
|
-
var DOMAIN_LABELS_EN = { ui: "UI", motion: "Graphics", layout: "Layout", style: "Style", pixelart: "Pixel Art", video: "Motion video" };
|
|
7461
|
+
var DOMAIN_LABELS_EN = { ui: "UI", motion: "Graphics", layout: "Layout", style: "Style", pixelart: "Pixel Art", video: "Motion video", ai: "AI Native" };
|
|
7333
7462
|
|
|
7334
7463
|
// ../../packages/catalog/src/translations/additions/base.ts
|
|
7335
7464
|
var text = (summary, vibeTag, keywords, promptSnippet) => ({ summary, vibeTag, vibeKeywords: keywords.split("|"), promptSnippet });
|
|
@@ -11761,6 +11890,70 @@ var EN_VFX_TECHNIQUES = {
|
|
|
11761
11890
|
}
|
|
11762
11891
|
};
|
|
11763
11892
|
|
|
11893
|
+
// ../../packages/catalog/src/translations/additions/ai.ts
|
|
11894
|
+
var EN_AI_TECHNIQUES = {
|
|
11895
|
+
"ai-prompt-box": {
|
|
11896
|
+
vibeTag: "Expands smoothly to fit your input length",
|
|
11897
|
+
vibeKeywords: ["prompt box", "autoresize textarea", "model toggle", "prompt submit", "input card"],
|
|
11898
|
+
summary: "Textarea expands smoothly with text length while managing Fast/Pro model switching, file attach, and submission states.",
|
|
11899
|
+
promptSnippet: "Build an interactive prompt input box that expands with text length in the specified area. Inside a container of width 100% and min-height 180px, create a card frame with 1px border (light #e2e8f0, dark #334155), 16px rounded corners, and background (light #ffffff, dark #0f172a). Place a textarea at the top (min-height 48px, max-height 120px, overflow-y auto, resize none, font size 14px, padding 12px) that dynamically adjusts its height based on scrollHeight as the user types. In the bottom toolbar, provide a 2-segment button group on the left to toggle between Fast and Pro modes (height 28px, font size 11px, 8px rounded corners, active state with #6366f1 background and white text) along with an attachment button. On the right, include a circular submit button (diameter 32px, #6366f1 background, white arrow icon) that activates when text is present. Pressing Enter submits the prompt while Shift+Enter inserts a new line. Submitting clears the input and resets height to 48px. Implement with pure React and Tailwind CSS without external libraries."
|
|
11900
|
+
},
|
|
11901
|
+
"ai-slash-command": {
|
|
11902
|
+
vibeTag: "Invokes quick commands on typing a slash",
|
|
11903
|
+
vibeKeywords: ["slash command", "prompt commands", "command popover", "shortcut menu", "keyboard palette"],
|
|
11904
|
+
summary: "Typing a slash opens a floating command palette with keyboard navigation and instant autocomplete.",
|
|
11905
|
+
promptSnippet: "Create a slash command popover interaction triggered by the slash (/) character in the specified area. In a container of width 100% and min-height 180px, provide a single input or textarea. When the user types /, display a 220px wide floating menu above the input with a 150ms fade-in transition. The popover menu displays 4 command options: Summarize (/summarize), Translate (/translate), Generate Code (/code), and Refactor (/refactor), each with height 36px, padding 8px, font size 12px, and an icon. Allow users to navigate the focused item using Up/Down arrow keys, and select an option via Enter key or click to replace / with the command prompt and dismiss the popover. Pressing Escape cancels the popover. Support light (#ffffff background / #e2e8f0 border) and dark (#1e293b background / #475569 border) themes using pure React state without external dependencies."
|
|
11906
|
+
},
|
|
11907
|
+
"ai-context-pill": {
|
|
11908
|
+
vibeTag: "Visualizes attached context and token consumption at a glance",
|
|
11909
|
+
vibeKeywords: ["context gauge", "token bar", "document tag pills", "context window", "token usage"],
|
|
11910
|
+
summary: "Manage referenced document tags and track context window token capacity with a color-coded progress gauge.",
|
|
11911
|
+
promptSnippet: "Create a context management UI featuring attached document tag pills and a real-time token gauge in the specified area. Inside a container of width 100% and min-height 180px, build a card with 12px rounded corners and 1px border. At the top, list attached context chips (e.g., API_Spec.pdf at 1200 tokens, System_Prompt at 400 tokens) in a horizontal flex layout, where each chip has height 24px, font size 11px, and an X button to remove on click. Clicking an [Add Document] button appends a new sample chip (800 tokens). At the bottom, display an 8px tall progress bar showing token consumption relative to the total limit of 8000 tokens. The gauge color changes dynamically: #10b981 green below 70%, #f59e0b amber between 70% and 90%, and #ef4444 red at or above 90%. Adjust gauge width smoothly with a 200ms transition upon adding or removing chips."
|
|
11912
|
+
},
|
|
11913
|
+
"ai-streaming-text": {
|
|
11914
|
+
vibeTag: "Generates text character-by-character in real time",
|
|
11915
|
+
vibeKeywords: ["streaming text", "pulsing cursor", "typing effect", "stop response", "realtime generation"],
|
|
11916
|
+
summary: "Simulate live response streaming with a blinking pulse caret and an immediate stop button.",
|
|
11917
|
+
promptSnippet: "Create a real-time text streaming typing effect with a blinking pulse caret in the specified area. Inside a card of width 100% and min-height 180px, clicking [Generate Response] streams a predefined 150 character AI answer character-by-character at 30ms intervals. At the trailing edge of the text, render an inline caret consisting of a 2px wide, 14px tall vertical bar colored #6366f1 that pulses every 0.8 seconds. While streaming, the button switches to [Stop Generating] with a red border and font size 12px, which immediately clears the timer and hides the caret upon click. Once complete or stopped, allow the user to replay from the start via [Regenerate]. Ensure contrast in light (#1e293b text) and dark (#f8fafc text) modes, and clean up the timer on unmount."
|
|
11918
|
+
},
|
|
11919
|
+
"ai-code-runner": {
|
|
11920
|
+
vibeTag: "Toggles seamlessly between syntax highlighting and live preview",
|
|
11921
|
+
vibeKeywords: ["interactive code block", "code highlight", "result preview", "one-click copy", "execution tab"],
|
|
11922
|
+
summary: "Tabbed code container with language badge, copy confirmation, and interactive component preview.",
|
|
11923
|
+
promptSnippet: "Build an interactive code block that toggles between code view and live preview in the specified area. Inside a dark card of width 100% and min-height 180px (#0f172a background, 12px corners, 1px #334155 border), construct a top header (height 36px, padding 12px). The header features [Code] and [Preview] tab buttons on the left (font size 12px, active tab with a #6366f1 bottom 2px indicator) and a TypeScript badge, with a [Copy] button on the right. Clicking copy temporarily displays [Copied \u2713] for 1.5 seconds. The Code tab renders syntax-highlighted source code, while switching to Preview displays the live interactive counter button rendered by that code. Smoothly transition between tabs using a 150ms fade effect."
|
|
11924
|
+
},
|
|
11925
|
+
"ai-message-branch": {
|
|
11926
|
+
vibeTag: "Navigate freely across regenerated response branches",
|
|
11927
|
+
vibeKeywords: ["branch switcher", "regenerate history", "response switcher", "branch navigation", "version comparison"],
|
|
11928
|
+
summary: "Explore multiple regenerated AI response variations using previous and next pagination buttons.",
|
|
11929
|
+
promptSnippet: "Create a response branch switcher UI allowing users to flip through multiple regenerated AI response versions in the specified area. Inside a container of width 100% and min-height 180px, place a message card (12px corners, padding 16px, 1px border) with a version navigation control formatted as < 1 / 3 > at the bottom (height 28px, font size 11px). Clicking the left or right arrow updates the version index and transitions between response texts (e.g., version 1 concise, version 2 detailed, version 3 tabular) with a 200ms slide animation. Provide a [Generate New Version] button in the top right that appends a 4th version to the array and jumps to it immediately. Disable the previous button on the first version and the next button on the last version."
|
|
11930
|
+
},
|
|
11931
|
+
"ai-thinking-accordion": {
|
|
11932
|
+
vibeTag: "Transparently unfolds the step-by-step AI reasoning",
|
|
11933
|
+
vibeKeywords: ["thinking accordion", "reasoning toggle", "thinking log", "chain of thought", "elapsed time"],
|
|
11934
|
+
summary: "Inspect the AI internal Chain-of-Thought log with an elapsed time badge and collapsible accordion.",
|
|
11935
|
+
promptSnippet: 'Create an accordion UI to inspect the AI Chain-of-Thought reasoning steps in the specified area. Inside a container of width 100% and min-height 180px, build a card with 12px rounded corners and 1px border. The top bar (height 40px, padding 12px) contains a lightbulb icon, "Thinking Process (4s elapsed)" label, a pulsing dot animation, and a rotating arrow on the right. Clicking the bar toggles the body open or closed with a 200ms transition. The expanded body (padding 12px, font size 12px, muted text) reveals a 3-step reasoning timeline ("1. Query intent analyzed", "2. 3 relevant docs indexed", "3. Final answer synthesized") with checkmark icons. Ensure natural background (#f8fafc vs #1e293b) and border adaptation across light and dark modes.'
|
|
11936
|
+
},
|
|
11937
|
+
"ai-source-citation": {
|
|
11938
|
+
vibeTag: "Reveals verifiable source cards upon hovering reference chips",
|
|
11939
|
+
vibeKeywords: ["source citation chips", "inline reference", "source preview", "citation popover", "evidence card"],
|
|
11940
|
+
summary: "Hovering inline citation badges displays a popover card with site favicon, title, and key excerpt.",
|
|
11941
|
+
promptSnippet: 'Create an inline citation badge and hover preview card interaction in the specified area. Inside a container of width 100% and min-height 180px, render an AI answer sentence ending with small citation chips like [1] and [2] (height 18px, horizontal padding 6px, font size 11px, border-radius 9999px, #6366f1 text). Hovering or focusing a citation chip triggers a 240px wide preview popover card (12px corners, padding 10px, 1px border, shadow) above the chip with a 150ms fade-in transition. The popover card includes a document icon, web page title ("React 19 Migration Guide"), domain URL ("react.dev"), and a 2-line snippet excerpt. The popover gracefully disappears when the cursor leaves.'
|
|
11942
|
+
},
|
|
11943
|
+
"ai-tool-call-card": {
|
|
11944
|
+
vibeTag: "Visualizes tool invocation arguments and execution output",
|
|
11945
|
+
vibeKeywords: ["tool execution card", "tool call", "function calling", "execution status badge", "parameter fold"],
|
|
11946
|
+
summary: "Displays tool invocation name, parameters, execution spinner, and returned output in an expandable card.",
|
|
11947
|
+
promptSnippet: 'Build a tool execution card displaying agent tool invocation status and parameters in the specified area. Inside a container of width 100% and min-height 180px, construct a box with 12px corners and 1px border. The card header shows a wrench icon, tool name ("search_docs"), and a status badge (blue spinner with "Running..." during execution, green check with "Success (120ms)" on completion). Clicking a [Re-run Tool] button sets the status to running for 1.2 seconds before returning to completed. The body features a collapsible accordion containing input arguments JSON (query: "vibe coding") and returned output summary. Support monospace typography and light/dark theme backgrounds.'
|
|
11948
|
+
},
|
|
11949
|
+
"ai-human-in-the-loop": {
|
|
11950
|
+
vibeTag: "Requests human confirmation before executing critical operations",
|
|
11951
|
+
vibeKeywords: ["approval guardrail", "human in the loop", "action approval modal", "safety confirmation", "execution consent"],
|
|
11952
|
+
summary: "Prompts users with risk severity badges and impact summaries for explicit approval or rejection before critical actions.",
|
|
11953
|
+
promptSnippet: 'Create a Human-in-the-loop approval card interaction for critical agent operations in the specified area. Inside a container of width 100% and min-height 180px, position a card with an amber warning border (1px #f59e0b) and 12px rounded corners. The top section displays a warning triangle icon, "File Deletion Approval Required" title, and a red [High] risk badge. The center outlines the command to execute ("rm -rf ./temp_cache") and lists 3 affected files. The bottom bar provides a [Reject] button (gray border, height 32px) and an [Approve & Execute] button (amber/red background, white text, height 32px). Clicking approve transitions the card into a green "Operation Approved" state, while clicking reject updates it to a gray "Operation Cancelled" state with an option to restore.'
|
|
11954
|
+
}
|
|
11955
|
+
};
|
|
11956
|
+
|
|
11764
11957
|
// ../../packages/catalog/src/translations/additions/patterns.ts
|
|
11765
11958
|
var EN_PATTERN_TECHNIQUES = {
|
|
11766
11959
|
"zoom-lightbox-gallery": {
|
|
@@ -11797,6 +11990,7 @@ var EN_PATTERN_TECHNIQUES = {
|
|
|
11797
11990
|
|
|
11798
11991
|
// ../../packages/catalog/src/translations/en.ts
|
|
11799
11992
|
var ENGLISH_TECHNIQUES = {
|
|
11993
|
+
...EN_AI_TECHNIQUES,
|
|
11800
11994
|
...EN_STARTER_PACK_TECHNIQUES,
|
|
11801
11995
|
...EN_SIGNATURE_TECHNIQUES,
|
|
11802
11996
|
...EN_UI_COLLECTION,
|
|
@@ -19715,10 +19909,135 @@ var VFX_SEARCH_METADATA = {
|
|
|
19715
19909
|
}
|
|
19716
19910
|
};
|
|
19717
19911
|
|
|
19912
|
+
// ../../packages/catalog/src/search-metadata/additions/ai.ts
|
|
19913
|
+
var AI_SEARCH_METADATA = {
|
|
19914
|
+
"ai-prompt-box": {
|
|
19915
|
+
targets: ["input", "button", "card"],
|
|
19916
|
+
triggers: ["input", "click"],
|
|
19917
|
+
useCases: {
|
|
19918
|
+
ko: ["\uD14D\uC2A4\uD2B8 \uAE38\uC774\uC5D0 \uB530\uB77C \uD655\uC7A5\uB418\uB294 \uD504\uB86C\uD504\uD2B8 \uC785\uB825\uCC3D\uACFC \uBAA8\uB378 \uC804\uD658"],
|
|
19919
|
+
en: ["Auto-expanding prompt textarea with model toggle and submission"]
|
|
19920
|
+
},
|
|
19921
|
+
aliases: {
|
|
19922
|
+
ko: ["\uC624\uD1A0\uB9AC\uC0AC\uC774\uC988 \uC785\uB825\uCC3D", "\uD504\uB86C\uD504\uD2B8 \uC778\uD48B", "\uCC57\uBD07 \uC785\uB825\uCC3D"],
|
|
19923
|
+
en: ["autoresize prompt input", "chat prompt box"]
|
|
19924
|
+
}
|
|
19925
|
+
},
|
|
19926
|
+
"ai-slash-command": {
|
|
19927
|
+
targets: ["input", "panel", "list"],
|
|
19928
|
+
triggers: ["input", "click"],
|
|
19929
|
+
useCases: {
|
|
19930
|
+
ko: ["\uC2AC\uB798\uC2DC(/) \uBB38\uC790\uB85C \uBA85\uB839\uC5B4 \uBA54\uB274\uB97C \uC5F4\uACE0 \uBC29\uD5A5\uD0A4\uC640 \uC5D4\uD130\uB85C \uC790\uB3D9 \uC644\uC131"],
|
|
19931
|
+
en: ["Trigger slash command popover menu with keyboard navigation and autocomplete"]
|
|
19932
|
+
},
|
|
19933
|
+
aliases: {
|
|
19934
|
+
ko: ["\uC2AC\uB798\uC2DC \uBA54\uB274", "\uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8", "\uD504\uB86C\uD504\uD2B8 \uB2E8\uCD95\uD0A4"],
|
|
19935
|
+
en: ["slash command palette", "command popover"]
|
|
19936
|
+
}
|
|
19937
|
+
},
|
|
19938
|
+
"ai-context-pill": {
|
|
19939
|
+
targets: ["card", "panel", "chart"],
|
|
19940
|
+
triggers: ["click"],
|
|
19941
|
+
useCases: {
|
|
19942
|
+
ko: ["\uCC38\uC870 \uBB38\uC11C \uD0DC\uADF8 \uCE69\uC744 \uCD94\uAC00/\uC81C\uAC70\uD558\uACE0 \uD1A0\uD070 \uC18C\uBAA8\uC728 \uAC8C\uC774\uC9C0\uB97C \uD655\uC778"],
|
|
19943
|
+
en: ["Manage context document chips and visualize token window utilization"]
|
|
19944
|
+
},
|
|
19945
|
+
aliases: {
|
|
19946
|
+
ko: ["\uD1A0\uD070 \uC0AC\uC6A9\uB7C9 \uAC8C\uC774\uC9C0", "\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0 \uBC14", "\uBB38\uC11C \uD0DC\uADF8 \uCE69"],
|
|
19947
|
+
en: ["token usage gauge", "context window bar"]
|
|
19948
|
+
}
|
|
19949
|
+
},
|
|
19950
|
+
"ai-streaming-text": {
|
|
19951
|
+
targets: ["text", "button", "card"],
|
|
19952
|
+
triggers: ["click", "auto"],
|
|
19953
|
+
useCases: {
|
|
19954
|
+
ko: ["\uAE5C\uBE61\uC774\uB294 \uD384\uC2A4 \uCE90\uB7FF\uACFC \uD568\uAED8 \uC2E4\uC2DC\uAC04 \uD0C0\uC774\uD551 \uC2A4\uD2B8\uB9AC\uBC0D \uBC0F \uC911\uB2E8 \uC81C\uC5B4"],
|
|
19955
|
+
en: ["Stream text character-by-character with pulsing caret and stop control"]
|
|
19956
|
+
},
|
|
19957
|
+
aliases: {
|
|
19958
|
+
ko: ["\uC2E4\uC2DC\uAC04 \uD0C0\uC774\uD551 \uD6A8\uACFC", "\uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8", "\uC751\uB2F5 \uC911\uC9C0 \uBC84\uD2BC"],
|
|
19959
|
+
en: ["realtime typing stream", "streaming response"]
|
|
19960
|
+
}
|
|
19961
|
+
},
|
|
19962
|
+
"ai-code-runner": {
|
|
19963
|
+
targets: ["panel", "button", "card"],
|
|
19964
|
+
triggers: ["click"],
|
|
19965
|
+
useCases: {
|
|
19966
|
+
ko: ["\uCF54\uB4DC \uBE14\uB85D\uC758 \uAD6C\uBB38 \uAC15\uC870\uC640 \uD0ED \uC804\uD658\uC744 \uD1B5\uD55C \uC2E4\uC2DC\uAC04 \uCEF4\uD3EC\uB10C\uD2B8 \uBBF8\uB9AC\uBCF4\uAE30"],
|
|
19967
|
+
en: ["Syntax-highlighted code block with one-click copy and live component preview tab"]
|
|
19968
|
+
},
|
|
19969
|
+
aliases: {
|
|
19970
|
+
ko: ["\uC778\uD130\uB799\uD2F0\uBE0C \uCF54\uB4DC \uBE14\uB85D", "\uCF54\uB4DC \uBBF8\uB9AC\uBCF4\uAE30 \uD0ED", "\uCEF4\uD3EC\uB10C\uD2B8 \uB7EC\uB108"],
|
|
19971
|
+
en: ["interactive code block", "code preview tab"]
|
|
19972
|
+
}
|
|
19973
|
+
},
|
|
19974
|
+
"ai-message-branch": {
|
|
19975
|
+
targets: ["card", "navigation", "text"],
|
|
19976
|
+
triggers: ["click"],
|
|
19977
|
+
useCases: {
|
|
19978
|
+
ko: ["\uC7AC\uC0DD\uC131\uB41C \uC751\uB2F5 \uBC84\uC804\uB4E4\uC744 \uC774\uC804/\uB2E4\uC74C \uBD84\uAE30 \uB124\uBE44\uAC8C\uC774\uC158\uC73C\uB85C \uD0D0\uC0C9"],
|
|
19979
|
+
en: ["Navigate between regenerated response variations with branch switcher buttons"]
|
|
19980
|
+
},
|
|
19981
|
+
aliases: {
|
|
19982
|
+
ko: ["\uC751\uB2F5 \uBC84\uC804 \uC2A4\uC704\uCC98", "\uBE0C\uB79C\uCE58 \uB124\uBE44\uAC8C\uC774\uC158", "\uB2F5\uBCC0 \uC7AC\uC0DD\uC131 \uC774\uB825"],
|
|
19983
|
+
en: ["response branch switcher", "version history pagination"]
|
|
19984
|
+
}
|
|
19985
|
+
},
|
|
19986
|
+
"ai-thinking-accordion": {
|
|
19987
|
+
targets: ["card", "panel", "list"],
|
|
19988
|
+
triggers: ["click"],
|
|
19989
|
+
useCases: {
|
|
19990
|
+
ko: ["AI\uC758 \uCD94\uB860 \uB2E8\uACC4\uC640 \uACBD\uACFC \uC2DC\uAC04\uC744 \uC811\uC774\uC2DD \uC544\uCF54\uB514\uC5B8\uC73C\uB85C \uAC80\uD1A0"],
|
|
19991
|
+
en: ["Inspect AI reasoning steps and elapsed time in a collapsible accordion"]
|
|
19992
|
+
},
|
|
19993
|
+
aliases: {
|
|
19994
|
+
ko: ["\uC0AC\uACE0 \uACFC\uC815 \uC544\uCF54\uB514\uC5B8", "\uCD94\uB860 \uB85C\uADF8 \uD1A0\uAE00", "Thinking \uC544\uCF54\uB514\uC5B8"],
|
|
19995
|
+
en: ["thinking process accordion", "chain-of-thought log"]
|
|
19996
|
+
}
|
|
19997
|
+
},
|
|
19998
|
+
"ai-source-citation": {
|
|
19999
|
+
targets: ["text", "card", "button"],
|
|
20000
|
+
triggers: ["hover", "pointer-move"],
|
|
20001
|
+
useCases: {
|
|
20002
|
+
ko: ["\uD14D\uC2A4\uD2B8 \uB0B4 \uC778\uB77C\uC778 \uCD9C\uCC98 \uBC88\uD638 \uD638\uBC84 \uC2DC \uC6D0\uBB38 \uC694\uC57D \uD31D\uC624\uBC84 \uB178\uCD9C"],
|
|
20003
|
+
en: ["Hover inline citation numbers to preview source website and excerpt popover"]
|
|
20004
|
+
},
|
|
20005
|
+
aliases: {
|
|
20006
|
+
ko: ["\uC778\uB77C\uC778 \uCD9C\uCC98 \uD31D\uC624\uBC84", "\uCC38\uACE0\uBB38\uD5CC \uCE69", "\uCD9C\uCC98 \uBBF8\uB9AC\uBCF4\uAE30"],
|
|
20007
|
+
en: ["inline source citation", "reference popover card"]
|
|
20008
|
+
}
|
|
20009
|
+
},
|
|
20010
|
+
"ai-tool-call-card": {
|
|
20011
|
+
targets: ["card", "panel", "list"],
|
|
20012
|
+
triggers: ["click"],
|
|
20013
|
+
useCases: {
|
|
20014
|
+
ko: ["\uC5D0\uC774\uC804\uD2B8 \uB3C4\uAD6C \uD638\uCD9C\uC758 \uC778\uC790\uC640 \uC2E4\uD589 \uC0C1\uD0DC, \uACB0\uACFC \uC694\uC57D\uC744 \uD655\uC778"],
|
|
20015
|
+
en: ["Inspect agent tool execution status, parameters, and output results"]
|
|
20016
|
+
},
|
|
20017
|
+
aliases: {
|
|
20018
|
+
ko: ["\uB3C4\uAD6C \uC2E4\uD589 \uC0C1\uD0DC \uCE74\uB4DC", "Tool Call \uCE74\uB4DC", "\uD568\uC218 \uD638\uCD9C \uCE74\uB4DC"],
|
|
20019
|
+
en: ["agent tool call card", "function execution card"]
|
|
20020
|
+
}
|
|
20021
|
+
},
|
|
20022
|
+
"ai-human-in-the-loop": {
|
|
20023
|
+
targets: ["card", "button", "panel"],
|
|
20024
|
+
triggers: ["click"],
|
|
20025
|
+
useCases: {
|
|
20026
|
+
ko: ["\uC704\uD5D8 \uC791\uC5C5 \uC2E4\uD589 \uC804 \uC601\uD5A5\uB3C4 \uC694\uC57D\uACFC \uC0AC\uC6A9\uC790\uC758 \uC2B9\uC778/\uAC70\uC808 \uC561\uC158\uC744 \uC218\uC2E0"],
|
|
20027
|
+
en: ["Prompt human confirmation with risk severity badge before executing critical actions"]
|
|
20028
|
+
},
|
|
20029
|
+
aliases: {
|
|
20030
|
+
ko: ["\uC2B9\uC778 \uAC00\uB4DC\uB808\uC77C \uBAA8\uB2EC", "Human-in-the-loop \uCE74\uB4DC", "\uC704\uD5D8 \uBA85\uB839 \uC2B9\uC778"],
|
|
20031
|
+
en: ["human-in-the-loop approval", "action confirmation card"]
|
|
20032
|
+
}
|
|
20033
|
+
}
|
|
20034
|
+
};
|
|
20035
|
+
|
|
19718
20036
|
// ../../packages/catalog/src/search-metadata.ts
|
|
19719
20037
|
var TARGETS = ["button", "card", "text", "list", "background", "shape", "scene", "navigation", "panel", "input", "chart", "logo", "image"];
|
|
19720
20038
|
var TRIGGERS = ["pointer-move", "hover", "click", "hold", "drag", "input", "auto", "static"];
|
|
19721
20039
|
var SEARCH_METADATA = {
|
|
20040
|
+
...AI_SEARCH_METADATA,
|
|
19722
20041
|
...STARTER_PACK_SEARCH_METADATA,
|
|
19723
20042
|
...SIGNATURE_SEARCH_METADATA,
|
|
19724
20043
|
...UI_COLLECTION_SEARCH,
|
|
@@ -29364,6 +29683,475 @@ var AUTOMATION_KNOWLEDGE = [
|
|
|
29364
29683
|
}
|
|
29365
29684
|
];
|
|
29366
29685
|
|
|
29686
|
+
// ../../packages/catalog/src/domain-knowledge/ai.ts
|
|
29687
|
+
var AI_KNOWLEDGE = [
|
|
29688
|
+
{
|
|
29689
|
+
id: "ai-prompt-context-and-token-budget",
|
|
29690
|
+
aliases: {
|
|
29691
|
+
ko: ["\uD504\uB86C\uD504\uD2B8 \uC5D4\uC9C0\uB2C8\uC5B4\uB9C1", "\uD1A0\uD070 \uC608\uC0B0", "\uD1A0\uD070\uC608\uC0B0", "\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0", "\uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8", "\uD1A0\uD070 \uCD08\uACFC \uBC29\uC9C0"],
|
|
29692
|
+
en: ["prompt engineering", "token budget", "context window management", "system prompt design", "token overflow prevention"]
|
|
29693
|
+
},
|
|
29694
|
+
useCases: {
|
|
29695
|
+
ko: [
|
|
29696
|
+
"LLM \uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0 \uD55C\uB3C4 \uC548\uC5D0\uC11C \uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8, \uB300\uD654 \uD788\uC2A4\uD1A0\uB9AC, RAG \uBB38\uC11C\uC758 \uC6B0\uC120\uC21C\uC704\uB97C \uBC30\uBD84\uD560 \uB54C",
|
|
29697
|
+
"\uD1A0\uD070 \uCD08\uACFC\uB85C \uC778\uD55C API \uD638\uCD9C \uC5D0\uB7EC\uB098 \uACFC\uB3C4\uD55C \uACFC\uAE08\uC744 \uBC29\uC9C0\uD558\uAE30 \uC704\uD55C \uD1A0\uD070 \uBAA8\uB2C8\uD130\uB9C1 UI\uB97C \uAD6C\uC131\uD560 \uB54C",
|
|
29698
|
+
"\uC0AC\uC6A9\uC790 \uC785\uB825 \uAE38\uC774\uC5D0 \uB9DE\uCDB0 \uC2E4\uC2DC\uAC04\uC73C\uB85C \uD1A0\uD070\uC744 \uACC4\uC0B0\uD558\uACE0 \uC704\uD5D8 \uC784\uACC4\uCE58\uB97C \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uACBD\uACE0\uD560 \uB54C",
|
|
29699
|
+
"\uC5EC\uB7EC \uBB38\uC11C\uB97C \uCCA8\uBD80\uD588\uC744 \uB54C \uC6B0\uC120\uC21C\uC704\uC5D0 \uB530\uB77C \uCEE8\uD14D\uC2A4\uD2B8\uB97C \uB3D9\uC801\uC73C\uB85C \uC555\uCD95\uD558\uAC70\uB098 \uC694\uC57D\uD560 \uB54C"
|
|
29700
|
+
],
|
|
29701
|
+
en: [
|
|
29702
|
+
"Allocating context window space between system instructions, conversation history, and retrieved docs",
|
|
29703
|
+
"Preventing token limit errors and unexpected billing surges with token monitoring controls",
|
|
29704
|
+
"Calculating real-time tokens as the user types and providing warning thresholds",
|
|
29705
|
+
"Dynamically truncating or summarizing attachments when total context exceeds budget"
|
|
29706
|
+
]
|
|
29707
|
+
},
|
|
29708
|
+
keywords: {
|
|
29709
|
+
ko: ["\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0", "\uD1A0\uD070 \uD55C\uB3C4", "\uD1A0\uD070 \uC608\uC0B0", "\uD504\uB86C\uD504\uD2B8 \uCD5C\uC801\uD654", "\uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8", "\uD1A0\uD070 \uACC4\uC0B0", "\uBE44\uC6A9 \uCD5C\uC801\uD654"],
|
|
29710
|
+
en: ["context window", "token limit", "token budget", "prompt optimization", "system prompt", "token estimation", "cost control"]
|
|
29711
|
+
},
|
|
29712
|
+
text: {
|
|
29713
|
+
ko: {
|
|
29714
|
+
domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
|
|
29715
|
+
title: "\uD504\uB86C\uD504\uD2B8 \uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0 \uAD00\uB9AC\uC640 \uD1A0\uD070 \uC608\uC0B0 \uC81C\uC5B4",
|
|
29716
|
+
summary: "\uCEE8\uD14D\uC2A4\uD2B8 \uC708\uB3C4\uC6B0 \uB0B4 \uD1A0\uD070 \uC18C\uBAA8\uB7C9\uC744 \uC2E4\uC2DC\uAC04 \uCD94\uC801\uD558\uACE0, \uC785\uB825\xB7\uCC38\uC870 \uBB38\uC11C\xB7\uD788\uC2A4\uD1A0\uB9AC\uC758 \uC6B0\uC120\uC21C\uC704\uB97C \uC81C\uC5B4\uD574 \uBE44\uC6A9\uACFC \uC131\uB2A5\uC744 \uCD5C\uC801\uD654\uD569\uB2C8\uB2E4.",
|
|
29717
|
+
overview: "LLM \uAE30\uBC18 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC5D0\uC11C\uB294 \uBAA8\uB378\uBCC4 \uCD5C\uB300 \uD1A0\uD070 \uC218(Context Window)\uAC00 \uC815\uD574\uC838 \uC788\uC73C\uBA70, \uC785\uB825\uACFC \uCD9C\uB825 \uD1A0\uD070\uC5D0 \uB530\uB77C \uC9C1\uC811\uC801\uC778 \uBE44\uC6A9\uACFC \uC751\uB2F5 \uC9C0\uC5F0\uC774 \uBC1C\uC0DD\uD569\uB2C8\uB2E4. \uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8, \uCCA8\uBD80 \uBB38\uC11C, \uC774\uC804 \uB300\uD654 \uAE30\uB85D\uC774 \uC313\uC5EC \uD55C\uB3C4\uB97C \uCD08\uACFC\uD558\uBA74 API \uD638\uCD9C\uC774 \uC2E4\uD328\uD558\uAC70\uB098 \uC55E\uC120 \uB9E5\uB77D\uC774 \uC720\uC2E4\uB429\uB2C8\uB2E4. \uB530\uB77C\uC11C \uAC01 \uC694\uC18C\uC758 \uD1A0\uD070 \uC810\uC720\uC728\uC744 \uC2E4\uC2DC\uAC04\uC73C\uB85C \uC2DC\uAC01\uD654\uD558\uACE0, \uC911\uC694\uB3C4\uC5D0 \uB530\uB77C \uC624\uB798\uB41C \uB300\uD654\uB97C \uC694\uC57D\uD558\uAC70\uB098 \uCCA8\uBD80 \uBB38\uC11C\uB97C \uC120\uD0DD\uC801\uC73C\uB85C \uC798\uB77C\uB0B4\uB294 \uD1A0\uD070 \uAD00\uB9AC \uC815\uCC45\uC744 \uC218\uB9BD\uD574\uC57C \uD569\uB2C8\uB2E4.",
|
|
29718
|
+
concepts: [
|
|
29719
|
+
{ name: "\uD1A0\uD070 \uC608\uC0B0 \uBC30\uBD84(Token Budgeting)", description: "\uC804\uCCB4 \uCEE8\uD14D\uC2A4\uD2B8 \uC6A9\uB7C9 \uC911 \uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8 \uACE0\uC815\uBD84, \uAC80\uC0C9 \uBB38\uC11C \uAC00\uBCC0\uBD84, \uB300\uD654 \uD788\uC2A4\uD1A0\uB9AC \uC2AC\uB77C\uC774\uB529 \uC708\uB3C4\uC6B0\uBD84\uC758 \uCD5C\uB300 \uD560\uB2F9\uB7C9\uC744 \uC0AC\uC804\uC5D0 \uADDC\uC815\uD569\uB2C8\uB2E4." },
|
|
29720
|
+
{ name: "\uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uCE74\uC6B4\uD305(Tokenizer Feedback)", description: "\uD074\uB77C\uC774\uC5B8\uD2B8 \uC0AC\uC774\uB4DC BPE \uD1A0\uD06C\uB098\uC774\uC800\uB97C \uC0AC\uC6A9\uD574 \uC0AC\uC6A9\uC790\uAC00 \uC785\uB825\uD558\uB294 \uB3C4\uC911 \uC2E4\uC2DC\uAC04\uC73C\uB85C \uD1A0\uD070 \uC218\uC640 \uC608\uC0C1 \uBE44\uC6A9\uC744 \uACC4\uC0B0\uD574 \uC2DC\uAC01\uC801 \uD53C\uB4DC\uBC31\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4." },
|
|
29721
|
+
{ name: "\uCEE8\uD14D\uC2A4\uD2B8 \uC555\uCD95 \uBC0F \uC2AC\uB77C\uC774\uB529 \uC708\uB3C4\uC6B0(Sliding Window & Compression)", description: "\uB300\uD654\uAC00 \uAE38\uC5B4\uC9C0\uBA74 \uCD08\uAE30 \uBA54\uC2DC\uC9C0\uB97C \uC694\uC57D\uBCF8\uC73C\uB85C \uB300\uCCB4\uD558\uACE0 \uCD5C\uADFC \uD134\uB9CC \uC6D0\uBB38\uC73C\uB85C \uC720\uC9C0\uD574 \uD55C\uB3C4 \uCD08\uACFC\uB97C \uBC29\uC9C0\uD569\uB2C8\uB2E4." }
|
|
29722
|
+
],
|
|
29723
|
+
workflow: [
|
|
29724
|
+
{ name: "\uC601\uC5ED\uBCC4 \uD1A0\uD070 \uD55C\uB3C4 \uD560\uB2F9\uD558\uAE30", description: "\uBAA8\uB378 \uD55C\uB3C4(\uC608: 8k/128k)\uC5D0 \uB9DE\uCDB0 \uC2DC\uC2A4\uD15C \uC9C0\uC2DC 15%, RAG \uAC80\uC0C9 45%, \uB300\uD654 \uD788\uC2A4\uD1A0\uB9AC 30%, \uCD9C\uB825 \uC5EC\uC720 10%\uC758 \uC608\uC0B0 \uBE44\uC728\uC744 \uC124\uC815\uD569\uB2C8\uB2E4." },
|
|
29725
|
+
{ name: "\uC2E4\uC2DC\uAC04 \uC785\uB825 \uBC0F \uCCA8\uBD80 \uD30C\uC77C \uD1A0\uD070 \uC0B0\uCD9C\uD558\uAE30", description: "\uC0AC\uC6A9\uC790\uAC00 \uD14D\uC2A4\uD2B8\uB97C \uC785\uB825\uD558\uAC70\uB098 \uBB38\uC11C\uB97C \uB4DC\uB86D\uD560 \uB54C \uD1A0\uD070 \uC218\uB97C \uACC4\uC0B0\uD574 \uD504\uB85C\uADF8\uB808\uC2A4 \uAC8C\uC774\uC9C0\uC5D0 \uBC18\uC601\uD569\uB2C8\uB2E4." },
|
|
29726
|
+
{ name: "\uC784\uACC4\uCE58 \uB3C4\uB2EC \uC2DC \uC790\uB3D9 \uC555\uCD95 \uBC0F \uACBD\uACE0 \uCC98\uB9AC\uD558\uAE30", description: "80% \uB3C4\uB2EC \uC2DC \uACBD\uACE0 \uC0C9\uC0C1 \uC804\uD658, 95% \uB3C4\uB2EC \uC2DC \uC624\uB798\uB41C \uD134 \uC694\uC57D \uC2E4\uD589 \uB610\uB294 \uC804\uC1A1 \uC81C\uD55C\uC744 \uC801\uC6A9\uD569\uB2C8\uB2E4." }
|
|
29727
|
+
],
|
|
29728
|
+
pitfalls: [
|
|
29729
|
+
{ name: "\uAE00\uC790 \uC218(Length)\uC640 \uD1A0\uD070 \uC218(Token Count)\uB97C \uB3D9\uC77C\uC2DC\uD558\uAE30", description: "\uD55C\uAE00\uC774\uB098 \uCF54\uB4DC, \uD2B9\uC218\uBB38\uC790\uB294 \uBB38\uC790\uB2F9 2~3\uD1A0\uD070 \uC774\uC0C1\uC744 \uC18C\uBAA8\uD558\uBBC0\uB85C \uB2E8\uC21C \uAE00\uC790 \uC218\uAC00 \uC544\uB2CC \uC2E4\uC81C \uD1A0\uD06C\uB098\uC774\uC800 \uBC14\uC774\uD2B8 \uAE30\uC900\uC73C\uB85C \uACC4\uC0B0\uD574\uC57C \uD569\uB2C8\uB2E4." },
|
|
29730
|
+
{ name: "\uCD9C\uB825 \uD1A0\uD070(Max Completion Tokens) \uC5EC\uC720\uBD84\uC744 \uB0A8\uACA8\uB450\uC9C0 \uC54A\uAE30", description: "\uCEE8\uD14D\uC2A4\uD2B8\uB97C \uAF49 \uCC44\uC6CC \uBCF4\uB0B4\uBA74 \uBAA8\uB378\uC774 \uB2F5\uBCC0\uC744 \uD55C\uB450 \uBB38\uC7A5 \uB9CC\uC5D0 \uC798\uB77C\uBC84\uB9AC\uB294 Truncation \uD604\uC0C1\uC774 \uBC1C\uC0DD\uD569\uB2C8\uB2E4." }
|
|
29731
|
+
],
|
|
29732
|
+
questions: [
|
|
29733
|
+
"\uC0AC\uC6A9\uC790\uAC00 \uC5EC\uB7EC \uB300\uC6A9\uB7C9 \uD30C\uC77C\uC744 \uCCA8\uBD80\uD588\uC744 \uB54C, \uC5B4\uB5A4 \uAE30\uC900\uC73C\uB85C \uC6B0\uC120\uC21C\uC704\uB97C \uB9E4\uACA8 \uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uD3EC\uD568\uD560 \uAC83\uC778\uAC00\uC694?",
|
|
29734
|
+
"\uD1A0\uD070 \uD55C\uB3C4 \uCD08\uACFC \uC2DC \uC774\uC804 \uB300\uD654\uB97C \uC644\uC804 \uC0AD\uC81C\uD560 \uAC83\uC778\uAC00\uC694, \uC544\uB2C8\uBA74 AI \uC694\uC57D\uBCF8\uC73C\uB85C \uCD95\uC57D\uD560 \uAC83\uC778\uAC00\uC694?",
|
|
29735
|
+
"\uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uCD94\uC815\uCE58\uC640 \uC2E4\uC81C API \uACFC\uAE08 \uD1A0\uD070 \uC218 \uAC04\uC758 \uC624\uCC28\uB97C UI\uC5D0\uC11C \uC5B4\uB5BB\uAC8C \uACE0\uC9C0\uD560 \uAC83\uC778\uAC00\uC694?"
|
|
29736
|
+
],
|
|
29737
|
+
example: "\uC608\uC2DC: \uBB38\uC11C \uBD84\uC11D \uCC57\uBD07\uC5D0\uC11C \uC0AC\uC6A9\uC790\uAC00 4\uAC1C\uC758 PDF\uB97C \uCCA8\uBD80\uD558\uBA74 \uAC01 \uD30C\uC77C\uBCC4 \uD1A0\uD070 \uCE69\uC744 \uD45C\uC2DC\uD558\uACE0, \uCD1D 8,000\uD1A0\uD070 \uC911 6,500\uD1A0\uD070 \uC0AC\uC6A9 \uC2DC \uC8FC\uD669\uC0C9 \uAC8C\uC774\uC9C0\uC640 \uD568\uAED8 [\uBB38\uC11C \uC555\uCD95] \uBC84\uD2BC\uC744 \uB744\uC6CC \uD575\uC2EC \uBC1C\uCDCC\uBB38\uB9CC \uB0A8\uAE30\uB3C4\uB85D \uC720\uB3C4\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
|
|
29738
|
+
relatedDesigns: [
|
|
29739
|
+
{ id: "ai-prompt-box", reason: "\uBAA8\uB378 \uC2A4\uC704\uCC98\uC640 \uB192\uC774 \uC790\uB3D9 \uC870\uC808\uC744 \uAC16\uCD98 \uC785\uB825\uCC3D\uC73C\uB85C \uD504\uB86C\uD504\uD2B8 \uC804\uC1A1 \uC778\uD130\uB799\uC158\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4." },
|
|
29740
|
+
{ id: "ai-context-pill", reason: "\uCCA8\uBD80\uB41C \uCEE8\uD14D\uC2A4\uD2B8 \uD0DC\uADF8 \uCE69\uACFC \uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uC0AC\uC6A9\uB7C9 \uD504\uB85C\uADF8\uB808\uC2A4 \uBC14\uB97C \uC2DC\uAC01\uD654\uD569\uB2C8\uB2E4." }
|
|
29741
|
+
],
|
|
29742
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uCCA8\uBD80 \uBB38\uC11C \uD0DC\uADF8 \uCE69\uACFC \uC2E4\uC2DC\uAC04 \uD1A0\uD070 \uC18C\uBAA8\uC728 \uAC8C\uC774\uC9C0\uB97C \uAC16\uCD98 \uD504\uB86C\uD504\uD2B8 \uC785\uB825 \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 12px \uBAA8\uC11C\uB9AC\uC640 1px \uD14C\uB450\uB9AC\uC758 \uCE74\uB4DC\uB97C \uAD6C\uC131\uD558\uACE0, \uC0C1\uB2E8\uC5D0\uB294 \uCCA8\uBD80 \uBB38\uC11C \uCE69 \uBAA9\uB85D(X \uC0AD\uC81C \uBC84\uD2BC \uD3EC\uD568), \uD558\uB2E8\uC5D0\uB294 \uCD1D 8000\uD1A0\uD070 \uB300\uBE44 \uC0AC\uC6A9\uB7C9\uC744 \uB098\uD0C0\uB0B4\uB294 \uD504\uB85C\uADF8\uB808\uC2A4 \uBC14\uB97C \uBC30\uCE58\uD574 \uC918."
|
|
29743
|
+
},
|
|
29744
|
+
en: {
|
|
29745
|
+
domain: "AI Agents & LLM Services",
|
|
29746
|
+
title: "Prompt Context Window Management and Token Budget Control",
|
|
29747
|
+
summary: "Track token usage against context window limits in real-time, optimizing allocation across instructions, retrieval, and chat history.",
|
|
29748
|
+
overview: "LLM applications operate within fixed context window ceilings, where input and output tokens directly dictate financial costs and latency. Without deliberate budgeting, accumulated chat histories and file attachments trigger API overflow errors or silent context truncation. Teams must implement explicit token allocations, real-time client-side counting, and automated summarization rules.",
|
|
29749
|
+
concepts: [
|
|
29750
|
+
{ name: "Token Budget Allocation", description: "Predefining ceiling ratios for system directives, retrieved documents, and conversational turns within the total window." },
|
|
29751
|
+
{ name: "Real-time Tokenizer Feedback", description: "Using client-side tokenizers to compute token load and cost projections as the user types." },
|
|
29752
|
+
{ name: "Context Compression & Sliding Window", description: "Collapsing older messages into summaries while preserving recent turns verbatim to maintain coherency without overflow." }
|
|
29753
|
+
],
|
|
29754
|
+
workflow: [
|
|
29755
|
+
{ name: "Define Budget Allocation Quotas", description: "Establish proportional quotas (e.g., 15% instructions, 45% retrieval, 30% history, 10% completion headroom)." },
|
|
29756
|
+
{ name: "Calculate Real-time Input & Attachment Tokens", description: "Compute token metrics on text change and file drop, updating visual gauges dynamically." },
|
|
29757
|
+
{ name: "Enforce Threshold Warnings & Auto-summaries", description: "Shift gauge alerts at 80% and trigger automated conversation summarization at 95% capacity." }
|
|
29758
|
+
],
|
|
29759
|
+
pitfalls: [
|
|
29760
|
+
{ name: "Equating Character Count with Token Usage", description: "Multilingual text and code consume substantially more tokens per character than English prose; compute using authentic tokenizers." },
|
|
29761
|
+
{ name: "Neglecting Output Completion Headroom", description: "Maxing out input context leaves no capacity for model completions, truncating responses mid-sentence." }
|
|
29762
|
+
],
|
|
29763
|
+
questions: [
|
|
29764
|
+
"How will the system prioritize among multiple large document attachments when context limits are reached?",
|
|
29765
|
+
"Will overflow conditions discard older messages entirely or condense them via background LLM summarization?",
|
|
29766
|
+
"How should discrepancies between client-side estimates and provider billing be communicated?"
|
|
29767
|
+
],
|
|
29768
|
+
example: "Example: In a document analysis assistant, attached files are tagged with token pills. When utilization hits 6,500 of 8,000 tokens, the gauge shifts to amber and offers a one-click summarization option.",
|
|
29769
|
+
relatedDesigns: [
|
|
29770
|
+
{ id: "ai-prompt-box", reason: "Provides an auto-expanding prompt input with model switching controls." },
|
|
29771
|
+
{ id: "ai-context-pill", reason: "Visualizes attached document tags and real-time token capacity bars." }
|
|
29772
|
+
],
|
|
29773
|
+
promptSnippet: "Create a prompt input card with document tag pills and a real-time token gauge in the specified area. Inside a container of width 100% and min-height 180px, build a card with 12px corners and 1px border. Feature removable context tags at the top and a progress bar showing token usage out of 8000 tokens at the bottom."
|
|
29774
|
+
}
|
|
29775
|
+
},
|
|
29776
|
+
sources: [
|
|
29777
|
+
{ title: "OpenAI Prompt Engineering Guide", url: "https://platform.openai.com/docs/guides/prompt-engineering" },
|
|
29778
|
+
{ title: "Anthropic Context Window Guidance", url: "https://docs.anthropic.com/en/docs/build-with-claude/context-window" }
|
|
29779
|
+
]
|
|
29780
|
+
},
|
|
29781
|
+
{
|
|
29782
|
+
id: "ai-streaming-response-and-reconnection",
|
|
29783
|
+
aliases: {
|
|
29784
|
+
ko: ["SSE \uC2A4\uD2B8\uB9AC\uBC0D", "\uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8", "\uC751\uB2F5 \uC911\uB2E8", "\uC6F9\uC18C\uCF13 \uCCAD\uD06C", "\uC2A4\uD2B8\uB9AC\uBC0D \uC5D0\uB7EC \uBCF5\uAD6C"],
|
|
29785
|
+
en: ["SSE streaming", "text streaming", "streaming abort", "chunked transfer", "streaming reconnect"]
|
|
29786
|
+
},
|
|
29787
|
+
useCases: {
|
|
29788
|
+
ko: [
|
|
29789
|
+
"LLM\uC758 \uAE34 \uC0DD\uC131 \uC2DC\uAC04\uC744 \uBCF4\uC644\uD558\uAE30 \uC704\uD574 \uCCAB \uD1A0\uD070 \uC9C0\uC5F0 \uC2DC\uAC04(TTFT)\uC744 \uCD5C\uC18C\uD654\uD558\uACE0 \uD55C \uAE00\uC790\uC529 \uC2E4\uC2DC\uAC04 \uB80C\uB354\uB9C1\uD560 \uB54C",
|
|
29790
|
+
"\uC0DD\uC131 \uC911 \uC0AC\uC6A9\uC790\uAC00 [\uC0DD\uC131 \uC911\uC9C0(Stop)]\uB97C \uB20C\uB7EC \uBD88\uD544\uC694\uD55C \uD1A0\uD070 \uB0AD\uBE44\uC640 \uB300\uAE30\uB97C \uC989\uC2DC \uCC28\uB2E8\uD560 \uB54C",
|
|
29791
|
+
"\uB124\uD2B8\uC6CC\uD06C \uBD88\uC548\uC815\uC73C\uB85C \uCCAD\uD06C \uC804\uC1A1\uC774 \uB04A\uACBC\uC744 \uB54C \uBD80\uBD84 \uC0DD\uC131\uB41C \uD14D\uC2A4\uD2B8\uB97C \uC720\uC9C0\uD558\uACE0 \uC7AC\uC5F0\uACB0\uC744 \uC2DC\uB3C4\uD560 \uB54C",
|
|
29792
|
+
"\uC2A4\uD2B8\uB9AC\uBC0D \uB3C4\uC911 \uB9C8\uD06C\uB2E4\uC6B4 \uD0DC\uADF8(\uCF54\uB4DC \uBE14\uB85D, \uD45C \uB4F1)\uAC00 \uBBF8\uC644\uC131\uC778 \uC0C1\uD0DC\uC5D0\uC11C\uB3C4 \uB808\uC774\uC544\uC6C3 \uAE68\uC9D0 \uC5C6\uC774 \uB80C\uB354\uB9C1\uD560 \uB54C"
|
|
29793
|
+
],
|
|
29794
|
+
en: [
|
|
29795
|
+
"Minimizing time-to-first-token (TTFT) by rendering text chunks in real-time as tokens arrive",
|
|
29796
|
+
"Empowering users to abort generations immediately to halt token burn and clear the UI",
|
|
29797
|
+
"Recovering from network drops by retaining partial text buffers and retrying connection",
|
|
29798
|
+
"Streaming incomplete markdown tokens without breaking code blocks or table layouts"
|
|
29799
|
+
]
|
|
29800
|
+
},
|
|
29801
|
+
keywords: {
|
|
29802
|
+
ko: ["SSE", "Server-Sent Events", "\uC2A4\uD2B8\uB9AC\uBC0D", "TTFT", "\uC911\uB2E8 \uBC84\uD2BC", "AbortController", "\uCCAD\uD06C \uB80C\uB354\uB9C1", "\uB9C8\uD06C\uB2E4\uC6B4 \uD30C\uC11C"],
|
|
29803
|
+
en: ["SSE", "Server-Sent Events", "streaming", "TTFT", "stop generation", "AbortController", "chunk rendering", "markdown stream"]
|
|
29804
|
+
},
|
|
29805
|
+
text: {
|
|
29806
|
+
ko: {
|
|
29807
|
+
domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
|
|
29808
|
+
title: "SSE \uC2A4\uD2B8\uB9AC\uBC0D \uC751\uB2F5 \uB80C\uB354\uB9C1\uACFC \uC5F0\uACB0 \uBCF5\uAD6C \uBC0F \uC870\uAE30 \uC911\uB2E8",
|
|
29809
|
+
summary: "\uC11C\uBC84-\uC13C\uD2B8 \uC774\uBCA4\uD2B8(SSE)\uB85C \uCCAB \uD1A0\uD070 \uC9C0\uC5F0\uC744 \uB2E8\uCD95\uD558\uACE0, AbortController \uAE30\uBC18 \uC0DD\uC131 \uC911\uB2E8\uACFC \uB04A\uAE40 \uBCF5\uAD6C\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4.",
|
|
29810
|
+
overview: "\uC0DD\uC131\uD615 AI \uBAA8\uB378\uC740 \uC804\uCCB4 \uB2F5\uBCC0\uC744 \uC644\uC131\uD558\uAE30\uAE4C\uC9C0 \uC218 \uCD08\uC5D0\uC11C \uC218\uC2ED \uCD08\uAC00 \uC18C\uC694\uB418\uBBC0\uB85C, HTTP \uB2E8\uC77C \uC751\uB2F5 \uB300\uC2E0 Server-Sent Events(SSE)\uB098 \uC6F9\uC18C\uCF13\uC744 \uD1B5\uD55C \uCCAD\uD06C \uC2A4\uD2B8\uB9AC\uBC0D\uC774 \uD544\uC218\uC801\uC785\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uB294 \uCCAB \uAE00\uC790\uAC00 \uBE60\uB974\uAC8C \uCC0D\uD788\uB294 \uAC83\uC744 \uBCF4\uBA70 \uCCB4\uAC10 \uB300\uAE30 \uC2DC\uAC04\uC744 \uC904\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB610\uD55C \uC6D0\uCE58 \uC54A\uB294 \uBC29\uD5A5\uC73C\uB85C \uB2F5\uBCC0\uC774 \uC0DD\uC131\uB420 \uB54C \uC989\uAC01 \uC911\uB2E8(Abort)\uD560 \uC218 \uC788\uC5B4\uC57C \uD558\uBA70, \uC77C\uC2DC\uC801 \uB124\uD2B8\uC6CC\uD06C \uB2E8\uC808 \uC2DC\uC5D0\uB3C4 \uC774\uBBF8 \uB3C4\uCC29\uD55C \uB0B4\uC6A9\uC744 \uBCF4\uC874\uD558\uACE0 \uC7AC\uC804\uC1A1\uC744 \uC694\uCCAD\uD560 \uC218 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4.",
|
|
29811
|
+
concepts: [
|
|
29812
|
+
{ name: "\uCCAB \uD1A0\uD070 \uC2DC\uAC04(Time-to-First-Token, TTFT)", description: "\uC804\uCCB4 \uC0DD\uC131 \uC644\uB8CC\uAC00 \uC544\uB2CC \uCD5C\uCD08 \uCCAD\uD06C\uAC00 \uD074\uB77C\uC774\uC5B8\uD2B8\uC5D0 \uB3C4\uCC29\uD574 \uD654\uBA74\uC5D0 \uB80C\uB354\uB9C1\uB418\uAE30\uAE4C\uC9C0\uC758 \uC18C\uC694 \uC2DC\uAC04\uC73C\uB85C, UX \uB9CC\uC871\uB3C4\uC758 \uD575\uC2EC \uCC99\uB3C4\uC785\uB2C8\uB2E4." },
|
|
29813
|
+
{ name: "\uC870\uAE30 \uC911\uB2E8 \uC2E0\uD638(AbortController Signal)", description: "\uC0AC\uC6A9\uC790\uAC00 \uC911\uC9C0 \uBC84\uD2BC\uC744 \uB204\uB974\uBA74 fetch API\uC758 signal\uC744 \uC911\uB2E8\uD574 \uC11C\uBC84\uC758 \uBD88\uD544\uC694\uD55C GPU \uC5F0\uC0B0\uACFC \uD1A0\uD070 \uACFC\uAE08\uC744 \uC989\uC2DC \uCC28\uB2E8\uD569\uB2C8\uB2E4." },
|
|
29814
|
+
{ name: "\uBD88\uC644\uC804 \uB9C8\uD06C\uB2E4\uC6B4 \uBC84\uD37C\uB9C1(Fault-Tolerant Markdown Parsing)", description: "\uCF54\uB4DC \uBE14\uB85D\uC758 \uB2EB\uB294 \uBC31\uD2F1(```)\uC774\uB098 \uBCFC\uB4DC \uD0DC\uADF8(**)\uAC00 \uC544\uC9C1 \uC2A4\uD2B8\uB9AC\uBC0D\uB418\uC9C0 \uC54A\uC558\uC744 \uB54C\uB3C4 \uD30C\uC11C\uAC00 \uD06C\uB798\uC2DC \uC5C6\uC774 \uC810\uC9C4\uC801\uC73C\uB85C \uB80C\uB354\uB9C1\uD558\uB3C4\uB85D \uCC98\uB9AC\uD569\uB2C8\uB2E4." }
|
|
29815
|
+
],
|
|
29816
|
+
workflow: [
|
|
29817
|
+
{ name: "SSE \uC5F0\uACB0 \uC218\uB9BD \uBC0F \uC0C1\uD0DC \uCD08\uAE30\uD654\uD558\uAE30", description: "\uC694\uCCAD \uC2DC AbortController\uB97C \uB4F1\uB85D\uD558\uACE0, UI\uC5D0 \uD384\uC2A4 \uCEE4\uC11C\uC640 [\uC751\uB2F5 \uC911\uB2E8] \uBC84\uD2BC\uC744 \uD65C\uC131\uD654\uD569\uB2C8\uB2E4." },
|
|
29818
|
+
{ name: "\uCCAD\uD06C \uC218\uC2E0 \uBC0F \uC810\uC9C4\uC801 \uD14D\uC2A4\uD2B8 \uCD94\uAC00\uD558\uAE30", description: "\uB3C4\uCC29\uD558\uB294 \uD14D\uC2A4\uD2B8 \uCCAD\uD06C\uB97C \uB204\uC801 \uBC84\uD37C\uC5D0 \uCD94\uAC00\uD558\uACE0, \uB80C\uB354\uB7EC\uB97C \uD1B5\uD574 \uBD80\uB4DC\uB7EC\uC6B4 \uD0C0\uC774\uD551 \uBAA8\uC158\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4." },
|
|
29819
|
+
{ name: "\uC644\uB8CC \uC2E0\uD638 \uC218\uC2E0 \uB610\uB294 \uC911\uB2E8 \uC774\uBCA4\uD2B8 \uCC98\uB9AC\uD558\uAE30", description: "[DONE] \uD1A0\uD070 \uC218\uC2E0 \uC2DC \uCEE4\uC11C\uB97C \uC228\uAE30\uACE0 [\uB2E4\uC2DC \uC0DD\uC131]\uC73C\uB85C \uC804\uD658\uD558\uBA70, \uC0AC\uC6A9\uC790 \uC911\uB2E8 \uC2DC \uC5F0\uACB0\uC744 \uB2EB\uACE0 \uBD80\uBD84 \uBC84\uD37C\uB97C \uD655\uC815\uD569\uB2C8\uB2E4." }
|
|
29820
|
+
],
|
|
29821
|
+
pitfalls: [
|
|
29822
|
+
{ name: "\uCCAD\uD06C\uB9C8\uB2E4 \uBB34\uAC70\uC6B4 \uC804\uCCB4 \uB9AC\uB80C\uB354\uB9C1 \uBC1C\uC0DD\uC2DC\uD0A4\uAE30", description: "\uB9E4 \uD1A0\uD070\uB9C8\uB2E4 \uBCF5\uC7A1\uD55C \uCEF4\uD3EC\uB10C\uD2B8 \uD2B8\uB9AC\uB97C \uB2E4\uC2DC \uADF8\uB9AC\uBA74 \uBE0C\uB77C\uC6B0\uC800 \uBA54\uC778 \uC2A4\uB808\uB4DC\uAC00 \uC815\uC9C0\uD558\uBBC0\uB85C \uAC00\uBCBC\uC6B4 \uD14D\uC2A4\uD2B8 \uB178\uB4DC \uC5C5\uB370\uC774\uD2B8\uB098 requestAnimationFrame \uBC30\uCE6D\uC744 \uC801\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4." },
|
|
29823
|
+
{ name: "\uD074\uB77C\uC774\uC5B8\uD2B8 \uC911\uB2E8 \uC2DC \uC11C\uBC84 \uC138\uC158\uC744 \uBC29\uCE58\uD558\uAE30", description: "\uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C\uB9CC \uC911\uB2E8\uD558\uACE0 \uBC31\uC5D4\uB4DC LLM \uD638\uCD9C\uC744 \uCDE8\uC18C\uD558\uC9C0 \uC54A\uC73C\uBA74 \uBC31\uC5D4\uB4DC\uC5D0\uC11C \uBC31\uADF8\uB77C\uC6B4\uB4DC \uD1A0\uD070 \uBE44\uC6A9\uC774 \uACC4\uC18D \uBC1C\uC0DD\uD569\uB2C8\uB2E4." }
|
|
29824
|
+
],
|
|
29825
|
+
questions: [
|
|
29826
|
+
"\uC2A4\uD2B8\uB9AC\uBC0D \uB3C4\uC911 \uC77C\uC2DC\uC801 \uB124\uD2B8\uC6CC\uD06C \uC624\uB958\uAC00 \uB098\uBA74 \uC5B4\uB514\uC11C\uBD80\uD130 \uC7AC\uC5F0\uACB0\uC744 \uC2DC\uB3C4\uD560 \uAC83\uC778\uAC00\uC694?",
|
|
29827
|
+
"\uC911\uB2E8(Abort)\uB41C \uBD88\uC644\uC804\uD55C \uC751\uB2F5\uB3C4 \uB300\uD654 \uAE30\uB85D\uC5D0 \uC800\uC7A5\uD574 \uB2E4\uC74C \uD504\uB86C\uD504\uD2B8\uC758 \uCEE8\uD14D\uC2A4\uD2B8\uB85C \uB118\uAE38 \uAC83\uC778\uAC00\uC694?",
|
|
29828
|
+
"\uCF54\uB4DC \uBE14\uB85D \uB0B4\uBD80\uAC00 \uC2A4\uD2B8\uB9AC\uBC0D\uB418\uB294 \uB3C4\uC911 \uC0AC\uC6A9\uC790\uAC00 [\uCF54\uB4DC \uBCF5\uC0AC]\uB97C \uB204\uB974\uBA74 \uC5B4\uB5BB\uAC8C \uB3D9\uC791\uD574\uC57C \uD558\uB098\uC694?"
|
|
29829
|
+
],
|
|
29830
|
+
example: "\uC608\uC2DC: \uCF54\uB4DC \uC0DD\uC131 AI\uC5D0\uC11C \uC0AC\uC6A9\uC790\uAC00 \uD504\uB86C\uD504\uD2B8\uB97C \uBCF4\uB0B4\uBA74 30ms \uAC04\uACA9\uC73C\uB85C \uCF54\uB4DC\uAC00 \uC2A4\uD2B8\uB9AC\uBC0D\uB418\uBA70, \uC6D0\uCE58 \uC54A\uB294 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB85C \uC791\uC131\uB418\uAE30 \uC2DC\uC791\uD560 \uB54C [\uC751\uB2F5 \uC911\uB2E8] \uBC84\uD2BC\uC744 \uB20C\uB7EC 150\uC790 \uC2DC\uC810\uC5D0 \uC989\uC2DC \uBA48\uCD94\uACE0 \uD504\uB86C\uD504\uD2B8\uB97C \uC218\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
|
|
29831
|
+
relatedDesigns: [
|
|
29832
|
+
{ id: "ai-streaming-text", reason: "\uC2E4\uC2DC\uAC04 \uD0C0\uC774\uD551 \uD6A8\uACFC\uC640 \uD384\uC2A4 \uCEE4\uC11C, \uC751\uB2F5 \uC911\uC9C0 \uBC84\uD2BC\uC758 \uC2DC\uAC01\uC801 \uC778\uD130\uB799\uC158\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4." },
|
|
29833
|
+
{ id: "ai-code-runner", reason: "\uC2A4\uD2B8\uB9AC\uBC0D\uB41C \uCF54\uB4DC\uC758 \uC2E0\uD0DD\uC2A4 \uD558\uC774\uB77C\uC774\uD305\uACFC \uBBF8\uB9AC\uBCF4\uAE30 \uD0ED \uC804\uD658\uC744 \uC9C0\uC6D0\uD569\uB2C8\uB2E4." }
|
|
29834
|
+
],
|
|
29835
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uAE5C\uBE61\uC774\uB294 \uD384\uC2A4 \uCEE4\uC11C\uC640 [\uC751\uB2F5 \uC911\uC9C0] \uC81C\uC5B4\uAC00 \uD3EC\uD568\uB41C \uC2E4\uC2DC\uAC04 \uC2A4\uD2B8\uB9AC\uBC0D \uD14D\uC2A4\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108\uC5D0\uC11C 30ms \uAC04\uACA9\uC73C\uB85C \uAE00\uC790\uAC00 \uCD9C\uB825\uB418\uBA70 \uD074\uB9AD \uC2DC \uC989\uC2DC \uD0C0\uC774\uBA38\uB97C \uC815\uC9C0\uD558\uB294 \uC911\uC9C0 \uBC84\uD2BC\uC744 \uC81C\uACF5\uD574 \uC918."
|
|
29836
|
+
},
|
|
29837
|
+
en: {
|
|
29838
|
+
domain: "AI Agents & LLM Services",
|
|
29839
|
+
title: "SSE Streaming Response Rendering, Connection Recovery, and Early Abort",
|
|
29840
|
+
summary: "Stream tokens via SSE to slash TTFT, supporting AbortController-driven stops and resilient partial rendering.",
|
|
29841
|
+
overview: "Because LLM completions can span several seconds, chunked streaming over Server-Sent Events (SSE) or WebSockets is indispensable for minimizing perceived latency. Real-time token streaming creates responsive feedback while enabling users to abort suboptimal answers early. The architecture must handle incomplete markdown tokens and gracefully recover from dropped sockets.",
|
|
29842
|
+
concepts: [
|
|
29843
|
+
{ name: "Time-to-First-Token (TTFT)", description: "The elapsed time until the initial text chunk renders in the browser, representing the primary benchmark of perceived system responsiveness." },
|
|
29844
|
+
{ name: "AbortController Signal", description: "Transmitting cancellation signals to terminate the upstream LLM invocation and arrest downstream GPU billing." },
|
|
29845
|
+
{ name: "Fault-tolerant Markdown Streaming", description: "Parsing incomplete markdown chunks (such as unclosed code fences) incrementally without crashing the DOM renderer." }
|
|
29846
|
+
],
|
|
29847
|
+
workflow: [
|
|
29848
|
+
{ name: "Establish SSE Stream & Abort Handles", description: "Initiate HTTP streaming with an attached AbortSignal, activating the stop button and typing cursor." },
|
|
29849
|
+
{ name: "Accumulate Chunks & Batch Render", description: "Buffer incoming tokens and apply requestAnimationFrame updates for smooth typographic expansion." },
|
|
29850
|
+
{ name: "Handle Completion or Abort Interrupts", description: "Finalize output on [DONE] signals, or cleanly sever the connection upon user abort while preserving partial buffers." }
|
|
29851
|
+
],
|
|
29852
|
+
pitfalls: [
|
|
29853
|
+
{ name: "Triggering Full Tree Re-renders Per Token", description: "Re-evaluating entire virtual DOM trees for every arriving token stalls the browser UI thread; batch DOM mutations." },
|
|
29854
|
+
{ name: "Orphaning Upstream Server Generation on Abort", description: "Halting the client socket without signaling the backend API allows costly LLM compute to run to completion." }
|
|
29855
|
+
],
|
|
29856
|
+
questions: [
|
|
29857
|
+
"How will dropped socket connections resume without duplicate token generation?",
|
|
29858
|
+
"Should truncated or aborted turns be committed into persistent session history?",
|
|
29859
|
+
"What state should one-click copy buttons present while a code block is actively streaming?"
|
|
29860
|
+
],
|
|
29861
|
+
example: "Example: In an AI coding assistant, code blocks stream at 30ms intervals with a pulsing caret. When the developer spots an obsolete dependency, clicking Stop immediately halts generation at 150 characters.",
|
|
29862
|
+
relatedDesigns: [
|
|
29863
|
+
{ id: "ai-streaming-text", reason: "Implements a pulsing cursor streaming effect with start and stop controls." },
|
|
29864
|
+
{ id: "ai-code-runner", reason: "Renders streaming code with syntax highlighting and a live preview tab." }
|
|
29865
|
+
],
|
|
29866
|
+
promptSnippet: "Create a streaming text component with a pulsing caret and stop button in the specified area. Inside a container of width 100% and min-height 180px, stream text at 30ms intervals and provide a button to immediately halt the stream on click."
|
|
29867
|
+
}
|
|
29868
|
+
},
|
|
29869
|
+
sources: [
|
|
29870
|
+
{ title: "MDN Server-Sent Events Guide", url: "https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events" },
|
|
29871
|
+
{ title: "W3C Fetch AbortController Standard", url: "https://fetch.spec.whatwg.org/#abortcontroller-interface" }
|
|
29872
|
+
]
|
|
29873
|
+
},
|
|
29874
|
+
{
|
|
29875
|
+
id: "ai-tool-calling-and-human-approval",
|
|
29876
|
+
aliases: {
|
|
29877
|
+
ko: ["\uD568\uC218 \uD638\uCD9C", "Function Calling", "\uC5D0\uC774\uC804\uD2B8 \uB3C4\uAD6C", "\uD734\uBA3C\uC778\uB354\uB8E8\uD504", "\uC704\uD5D8 \uBA85\uB839 \uC2B9\uC778", "\uB3C4\uAD6C \uC2E4\uD589 \uAC00\uB4DC\uB808\uC77C"],
|
|
29878
|
+
en: ["tool calling", "function calling", "agent tools", "human-in-the-loop", "action approval", "guardrail validation"]
|
|
29879
|
+
},
|
|
29880
|
+
useCases: {
|
|
29881
|
+
ko: [
|
|
29882
|
+
"AI \uC5D0\uC774\uC804\uD2B8\uAC00 \uC678\uBD80 \uAC80\uC0C9, \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC870\uD68C, API \uD638\uCD9C\uC744 \uC9C1\uC811 \uC218\uD589\uD560 \uC218 \uC788\uB3C4\uB85D \uB3C4\uAD6C\uB97C \uC5F0\uACB0\uD560 \uB54C",
|
|
29883
|
+
"\uD30C\uC77C \uC0AD\uC81C, \uACB0\uC81C \uC2E4\uD589, \uC774\uBA54\uC77C \uBC1C\uC1A1 \uB4F1 \uBE44\uAC00\uC5ED\uC801 \uC704\uD5D8 \uC791\uC5C5 \uC804 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC2B9\uC778\uC744 \uC694\uCCAD\uD560 \uB54C",
|
|
29884
|
+
"\uB3C4\uAD6C \uC2E4\uD589 \uC778\uC790(JSON Arguments)\uC640 \uBC18\uD658 \uACB0\uACFC\uB97C \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC2DC\uAC01\uC801\uC73C\uB85C \uD22C\uBA85\uD558\uAC8C \uACF5\uAC1C\uD560 \uB54C",
|
|
29885
|
+
"\uB3C4\uAD6C \uC2E4\uD589 \uC2E4\uD328\uB098 \uD0C0\uC784\uC544\uC6C3 \uC2DC \uC5D0\uC774\uC804\uD2B8\uAC00 \uC2A4\uC2A4\uB85C \uB300\uCCB4 \uB3C4\uAD6C\uB97C \uCC3E\uAC70\uB098 \uC7AC\uC2DC\uB3C4\uD558\uB3C4\uB85D \uAD6C\uC131\uD560 \uB54C"
|
|
29886
|
+
],
|
|
29887
|
+
en: [
|
|
29888
|
+
"Equipping AI agents with tools for external search, database queries, and API integrations",
|
|
29889
|
+
"Requiring explicit human approval before irreversible actions like file deletions or payment execution",
|
|
29890
|
+
"Transparently displaying structured JSON tool arguments and return payloads in the interface",
|
|
29891
|
+
"Enabling fallback tools or automated retries when a tool invocation times out or errors"
|
|
29892
|
+
]
|
|
29893
|
+
},
|
|
29894
|
+
keywords: {
|
|
29895
|
+
ko: ["\uB3C4\uAD6C \uD638\uCD9C", "Function Calling", "\uC5D0\uC774\uC804\uD2B8", "Human-in-the-loop", "\uC2B9\uC778 \uBAA8\uB2EC", "\uAC00\uB4DC\uB808\uC77C", "JSON \uC778\uC790", "\uAD8C\uD55C \uAD00\uB9AC"],
|
|
29896
|
+
en: ["tool call", "function calling", "agent", "human in the loop", "approval card", "guardrail", "json arguments", "permissions"]
|
|
29897
|
+
},
|
|
29898
|
+
text: {
|
|
29899
|
+
ko: {
|
|
29900
|
+
domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
|
|
29901
|
+
title: "Function Calling \uB3C4\uAD6C \uC624\uCF00\uC2A4\uD2B8\uB808\uC774\uC158\uACFC \uC704\uD5D8 \uC791\uC5C5 \uC778\uAC04 \uC2B9\uC778(Human-in-the-Loop)",
|
|
29902
|
+
summary: "\uB3C4\uAD6C \uD638\uCD9C \uC785\uCD9C\uB825\uC744 \uC2DC\uAC01\uD654\uD558\uACE0, \uBE44\uAC00\uC5ED\uC801\uC778 \uBA85\uB839 \uC2E4\uD589 \uC804 \uC778\uAC04 \uC2B9\uC778(Human-in-the-Loop) \uAC00\uB4DC\uB808\uC77C\uC744 \uC801\uC6A9\uD569\uB2C8\uB2E4.",
|
|
29903
|
+
overview: "\uCD5C\uC2E0 \uC790\uC728 \uC5D0\uC774\uC804\uD2B8\uB294 \uC0AC\uC6A9\uC790\uC758 \uC758\uB3C4\uB97C \uBD84\uC11D\uD574 \uC6F9 \uAC80\uC0C9, \uACC4\uC0B0\uAE30, \uD130\uBBF8\uB110 \uC2E4\uD589, DB \uC218\uC815 \uB4F1\uC758 \uB3C4\uAD6C\uB97C \uC5F0\uACC4 \uD638\uCD9C\uD569\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uBAA8\uB378\uC774 \uC798\uBABB\uB41C \uC778\uC790\uB97C \uB123\uAC70\uB098 \uD30C\uC77C \uC2DC\uC2A4\uD15C \uC0AD\uC81C, \uACB0\uC81C \uB4F1 \uBE44\uAC00\uC5ED\uC801 \uBD80\uC791\uC6A9\uC774 \uC788\uB294 \uBA85\uB839\uC744 \uC790\uC758\uC801\uC73C\uB85C \uC2E4\uD589\uD558\uBA74 \uCE58\uBA85\uC801\uC778 \uD53C\uD574\uB97C \uCD08\uB798\uD569\uB2C8\uB2E4. \uB530\uB77C\uC11C \uB3C4\uAD6C \uD638\uCD9C\uC758 \uC9C4\uD589 \uC0C1\uD0DC\uB97C \uBA85\uD655\uD788 \uBCF4\uC5EC\uC8FC\uACE0, \uACE0\uC704\uD5D8 \uC791\uC5C5\uC740 Human-in-the-loop \uB2E8\uACC4\uB85C \uACA9\uB9AC\uD574 \uC0AC\uC6A9\uC790\uC758 \uBA85\uC2DC\uC801 [\uC2B9\uC778] \uC5C6\uC774\uB294 \uC2E4\uD589\uB418\uC9C0 \uC54A\uB3C4\uB85D \uAC15\uC81C\uD574\uC57C \uD569\uB2C8\uB2E4.",
|
|
29904
|
+
concepts: [
|
|
29905
|
+
{ name: "\uB3C4\uAD6C \uC2A4\uD0A4\uB9C8 \uBC0F \uC778\uC790 \uD30C\uC2F1(Tool Schema & JSON Arguments)", description: "\uBAA8\uB378\uC774 \uD638\uCD9C\uD560 \uD568\uC218\uC758 \uC774\uB984, \uC124\uBA85, \uB9E4\uAC1C\uBCC0\uC218 \uC2A4\uD0A4\uB9C8\uB97C \uC815\uC758\uD558\uACE0 \uBC18\uD658\uB41C JSON \uC778\uC790\uC758 \uC720\uD6A8\uC131\uC744 \uB7F0\uD0C0\uC784\uC5D0\uC11C \uAC80\uC99D\uD569\uB2C8\uB2E4." },
|
|
29906
|
+
{ name: "\uC704\uD5D8\uB3C4 \uC218\uC900 \uBD84\uB958(Risk Severity Tiering)", description: "\uB2E8\uC21C \uC870\uD68C(Low), \uB370\uC774\uD130 \uBCC0\uACBD(Medium), \uC0AD\uC81C/\uACB0\uC81C/\uC678\uBD80 \uC804\uC1A1(High)\uC73C\uB85C \uC791\uC5C5\uC744 \uBD84\uB958\uD574 High \uB4F1\uAE09\uC5D0\uB9CC \uC2B9\uC778 \uC778\uD130\uB799\uC158\uC744 \uD544\uC218\uB85C \uC694\uAD6C\uD569\uB2C8\uB2E4." },
|
|
29907
|
+
{ name: "\uD734\uBA3C \uC778 \uB354 \uB8E8\uD504(Human-in-the-Loop, HITL)", description: "\uC5D0\uC774\uC804\uD2B8 \uC2E4\uD589 \uB8E8\uD504\uB97C \uC77C\uC2DC \uC911\uC9C0\uD558\uACE0 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBA85\uB839 \uD30C\uB77C\uBBF8\uD130\uC640 \uC608\uC0C1 \uC601\uD5A5\uC744 \uC81C\uC2DC\uD55C \uB4A4 [\uC2B9\uC778/\uAC70\uC808] \uC785\uB825\uC744 \uAE30\uB2E4\uB9BD\uB2C8\uB2E4." }
|
|
29908
|
+
],
|
|
29909
|
+
workflow: [
|
|
29910
|
+
{ name: "\uBAA8\uB378\uC758 Tool Call \uC694\uCCAD \uC218\uC2E0 \uBC0F \uAC80\uC99D\uD558\uAE30", description: "\uBAA8\uB378\uC774 \uC0DD\uC131\uD55C function_call \uB370\uC774\uD130\uB97C \uD30C\uC2F1\uD574 \uB3C4\uAD6C \uBA85\uC138 \uBC0F \uC778\uC790 \uC720\uD6A8\uC131\uC744 \uD655\uC778\uD569\uB2C8\uB2E4." },
|
|
29911
|
+
{ name: "\uC791\uC5C5 \uC704\uD5D8\uB3C4 \uD3C9\uAC00 \uBC0F \uC2B9\uC778 \uCE74\uB4DC \uB80C\uB354\uB9C1\uD558\uAE30", description: "\uACE0\uC704\uD5D8 \uC791\uC5C5\uC77C \uACBD\uC6B0 \uC989\uC2DC \uC2E4\uD589\uD558\uC9C0 \uC54A\uACE0 \uC2B9\uC778 \uB300\uAE30 \uC0C1\uD0DC\uB85C \uC804\uD658\uD574 \uACBD\uACE0 \uCE74\uB4DC\uC640 \uBC84\uD2BC\uC744 \uB178\uCD9C\uD569\uB2C8\uB2E4." },
|
|
29912
|
+
{ name: "\uC0AC\uC6A9\uC790 \uC2B9\uC778 \uC2DC \uC2E4\uD589 \uBC0F \uACB0\uACFC \uBC18\uD658\uD558\uAE30", description: "\uC0AC\uC6A9\uC790\uAC00 \uC2B9\uC778\uD558\uBA74 \uC2E4\uC81C \uD568\uC218\uB97C \uD638\uCD9C\uD574 \uACB0\uACFC\uB97C \uC5D0\uC774\uC804\uD2B8 \uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uC8FC\uC785\uD558\uACE0, \uAC70\uC808 \uC2DC \uCDE8\uC18C \uBA54\uC2DC\uC9C0\uB97C \uC804\uB2EC\uD569\uB2C8\uB2E4." }
|
|
29913
|
+
],
|
|
29914
|
+
pitfalls: [
|
|
29915
|
+
{ name: "\uC2B9\uC778 \uBAA8\uB2EC \uC5C6\uC774 \uC178(Shell)\uC774\uB098 \uD30C\uC77C \uC4F0\uAE30 \uAD8C\uD55C \uD5C8\uC6A9\uD558\uAE30", description: "\uD504\uB86C\uD504\uD2B8 \uC778\uC81D\uC158 \uACF5\uACA9\uC5D0 \uB178\uCD9C\uB420 \uACBD\uC6B0 \uC2DC\uC2A4\uD15C \uD30C\uC77C\uC774 \uC0AD\uC81C\uB418\uAC70\uB098 \uC545\uC131 \uC2A4\uD06C\uB9BD\uD2B8\uAC00 \uC2E4\uD589\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4." },
|
|
29916
|
+
{ name: "\uB3C4\uAD6C \uC2E4\uD589 \uC2E4\uD328 \uC2DC \uBB34\uD55C \uC7AC\uC2DC\uB3C4 \uB8E8\uD504\uC5D0 \uBE60\uC9C0\uAE30", description: "\uC5D0\uB7EC \uC751\uB2F5\uC744 \uBC1B\uC740 \uBAA8\uB378\uC774 \uB3D9\uC77C\uD55C \uC2E4\uD328 \uBA85\uB839\uC744 \uBC18\uBCF5 \uD638\uCD9C\uD574 \uD06C\uB808\uB527\uC744 \uACE0\uAC08\uC2DC\uD0A4\uB294 \uBB38\uC81C\uB97C \uBC29\uC9C0\uD558\uAE30 \uC704\uD574 \uCD5C\uB300 \uC7AC\uC2DC\uB3C4 \uD69F\uC218\uB97C \uC81C\uD55C\uD574\uC57C \uD569\uB2C8\uB2E4." }
|
|
29917
|
+
],
|
|
29918
|
+
questions: [
|
|
29919
|
+
"\uC5B4\uB5A4 \uC791\uC5C5(\uC608: \uD30C\uC77C \uC0AD\uC81C, \uC678\uBD80 API \uBC1C\uC1A1)\uC744 \uBC18\uB4DC\uC2DC \uC0AC\uC6A9\uC790\uC758 \uC2B9\uC778\uC744 \uAC70\uCCD0\uC57C \uD558\uB294 \uACE0\uC704\uD5D8\uAD70\uC73C\uB85C \uC9C0\uC815\uD560 \uAC83\uC778\uAC00\uC694?",
|
|
29920
|
+
"\uC0AC\uC6A9\uC790\uAC00 \uC2B9\uC778\uC744 \uAC70\uC808\uD588\uC744 \uB54C, \uC5D0\uC774\uC804\uD2B8\uAC00 \uB2E4\uB978 \uB300\uC548\uC744 \uC81C\uC2DC\uD558\uB3C4\uB85D \uD504\uB86C\uD504\uD2B8\uB97C \uC5B4\uB5BB\uAC8C \uC720\uB3C4\uD560 \uAC83\uC778\uAC00\uC694?",
|
|
29921
|
+
"\uBC31\uADF8\uB77C\uC6B4\uB4DC\uC5D0\uC11C \uC2E4\uD589\uB418\uB294 \uAE34 \uB3C4\uAD6C(\uC608: \uC6F9 \uD06C\uB864\uB9C1)\uC758 \uC9C4\uD589\uB960\uC744 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC5B4\uB5BB\uAC8C \uBCF4\uACE0\uD560 \uAC83\uC778\uAC00\uC694?"
|
|
29922
|
+
],
|
|
29923
|
+
example: '\uC608\uC2DC: \uCF54\uB529 \uC5D0\uC774\uC804\uD2B8\uAC00 \uCE90\uC2DC \uB514\uB809\uD130\uB9AC \uC815\uB9AC \uBA85\uB839("rm -rf ./temp_cache")\uC744 \uB0B4\uB838\uC744 \uB54C, \uBE68\uAC04\uC0C9 [High] \uC704\uD5D8\uB3C4 \uBC30\uC9C0\uC640 \uC601\uD5A5\uBC1B\uB294 \uD30C\uC77C \uBAA9\uB85D\uC744 \uB2F4\uC740 \uC2B9\uC778 \uCE74\uB4DC\uB97C \uB744\uC6CC \uC0AC\uC6A9\uC790\uAC00 [\uC2B9\uC778\uD558\uC5EC \uC2E4\uD589]\uC744 \uD074\uB9AD\uD560 \uB54C\uB9CC \uC2E4\uC81C \uBA85\uB839\uC774 \uC2E4\uD589\uB418\uB3C4\uB85D \uC81C\uC5B4\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.',
|
|
29924
|
+
relatedDesigns: [
|
|
29925
|
+
{ id: "ai-tool-call-card", reason: "\uC5D0\uC774\uC804\uD2B8\uAC00 \uD638\uCD9C\uD55C \uB3C4\uAD6C\uBA85, \uD30C\uB77C\uBBF8\uD130 JSON, \uC2E4\uD589 \uC0C1\uD0DC \uC2A4\uD53C\uB108\uB97C \uB2E8\uACC4\uBCC4\uB85C \uC2DC\uAC01\uD654\uD569\uB2C8\uB2E4." },
|
|
29926
|
+
{ id: "ai-human-in-the-loop", reason: "\uACE0\uC704\uD5D8 \uBA85\uB839 \uC2E4\uD589 \uC804 \uC601\uD5A5\uB3C4 \uC694\uC57D\uACFC \uC2B9\uC778/\uAC70\uC808 \uC561\uC158\uC744 \uC81C\uC5B4\uD558\uB294 \uAC00\uB4DC\uB808\uC77C UI\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4." }
|
|
29927
|
+
],
|
|
29928
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uACE0\uC704\uD5D8 \uC791\uC5C5 \uC804 \uC0AC\uC6A9\uC790 \uC2B9\uC778\uC744 \uC694\uAD6C\uD558\uB294 Human-in-the-loop \uAC00\uB4DC\uB808\uC77C \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uACBD\uACE0 \uC544\uC774\uCF58, \uC704\uD5D8\uB3C4 [High] \uBC30\uC9C0, \uC2E4\uD589 \uC608\uC815 \uBA85\uB839 \uBC0F \uC601\uD5A5 \uD30C\uC77C \uBAA9\uB85D, \uADF8\uB9AC\uACE0 [\uC2B9\uC778\uD558\uC5EC \uC2E4\uD589]\uACFC [\uAC70\uC808\uD558\uAE30] \uBC84\uD2BC\uC744 \uBC30\uCE58\uD574 \uC918."
|
|
29929
|
+
},
|
|
29930
|
+
en: {
|
|
29931
|
+
domain: "AI Agents & LLM Services",
|
|
29932
|
+
title: "Function Calling Tool Orchestration and Human-in-the-Loop Approval",
|
|
29933
|
+
summary: "Visualize agent tool invocations while gating irreversible actions behind human-in-the-loop approval guardrails.",
|
|
29934
|
+
overview: "Autonomous agents leverage function calling to interact with search engines, databases, and system utilities. However, unconstrained tool access creates severe vulnerabilities when models emit erroneous arguments or execute destructive system operations. Robust architectures classify action risk levels and isolate high-severity operations behind interactive human checkpoints.",
|
|
29935
|
+
concepts: [
|
|
29936
|
+
{ name: "Tool Schema & Parameter Validation", description: "Defining JSON schemas for available tools and validating model-generated arguments before execution." },
|
|
29937
|
+
{ name: "Risk Severity Tiering", description: "Categorizing tools into read-only (Low), mutation (Medium), and destructive/financial (High) tiers." },
|
|
29938
|
+
{ name: "Human-in-the-Loop (HITL)", description: "Suspending agent execution loops to solicit explicit approval or cancellation from the user for high-risk operations." }
|
|
29939
|
+
],
|
|
29940
|
+
workflow: [
|
|
29941
|
+
{ name: "Parse Tool Call Directives", description: "Inspect model output for tool invocations and validate argument integrity against schemas." },
|
|
29942
|
+
{ name: "Evaluate Risk & Trigger Approval UI", description: "If flagged as high risk, intercept execution and render an interactive approval modal detailing projected impacts." },
|
|
29943
|
+
{ name: "Execute on Approval or Inject Refusal", description: "On human approval, run the function and stream results; on rejection, feed a structured cancellation notice back to the agent." }
|
|
29944
|
+
],
|
|
29945
|
+
pitfalls: [
|
|
29946
|
+
{ name: "Permitting Unrestricted Shell Access Without Approvals", description: "Prompt injection vectors can compromise system hosts via automated script execution; enforce strict human verification." },
|
|
29947
|
+
{ name: "Unbounded Tool Retry Spirals", description: "Failing invocations can trap agents in repetitive error loops, rapidly draining API allowances without human intervention." }
|
|
29948
|
+
],
|
|
29949
|
+
questions: [
|
|
29950
|
+
"Which specific operations (e.g., file deletes, webhook calls) strictly mandate human sign-off?",
|
|
29951
|
+
"How should the agent recover when a user explicitly rejects a proposed tool invocation?",
|
|
29952
|
+
"What visual telemetry should communicate progress for long-running asynchronous tools?"
|
|
29953
|
+
],
|
|
29954
|
+
example: 'Example: An autonomous coding agent proposing "rm -rf ./temp_cache" triggers an amber warning card with a red [High] badge. The command remains dormant until the user explicitly clicks [Approve & Execute].',
|
|
29955
|
+
relatedDesigns: [
|
|
29956
|
+
{ id: "ai-tool-call-card", reason: "Displays tool names, JSON arguments, and execution spinner indicators." },
|
|
29957
|
+
{ id: "ai-human-in-the-loop", reason: "Implements human approval guardrails with risk badges and confirmation buttons." }
|
|
29958
|
+
],
|
|
29959
|
+
promptSnippet: "Create a Human-in-the-loop approval guardrail card in the specified area. Inside a container of width 100% and min-height 180px, render a warning card displaying a [High] risk badge, command details, and dual [Approve & Execute] and [Reject] buttons."
|
|
29960
|
+
}
|
|
29961
|
+
},
|
|
29962
|
+
sources: [
|
|
29963
|
+
{ title: "OpenAI Function Calling Guide", url: "https://platform.openai.com/docs/guides/function-calling" },
|
|
29964
|
+
{ title: "Anthropic Tool Use Documentation", url: "https://docs.anthropic.com/en/docs/build-with-claude/tool-use" }
|
|
29965
|
+
]
|
|
29966
|
+
},
|
|
29967
|
+
{
|
|
29968
|
+
id: "ai-rag-retrieval-and-source-attribution",
|
|
29969
|
+
aliases: {
|
|
29970
|
+
ko: ["RAG", "\uAC80\uC0C9 \uC99D\uAC15 \uC0DD\uC131", "\uCD9C\uCC98 \uC778\uC6A9", "\uD560\uB8E8\uC2DC\uB124\uC774\uC158 \uBC29\uC9C0", "\uADFC\uAC70 \uC81C\uC2DC", "\uBB38\uC11C \uC784\uBCA0\uB529"],
|
|
29971
|
+
en: ["RAG", "retrieval-augmented generation", "source attribution", "citation chips", "hallucination reduction", "document embeddings"]
|
|
29972
|
+
},
|
|
29973
|
+
useCases: {
|
|
29974
|
+
ko: [
|
|
29975
|
+
"\uAE30\uC5C5 \uC0AC\uB0B4 \uBB38\uC11C\uB098 \uCD5C\uC2E0 \uC9C0\uC2DD\uC744 \uAC80\uC0C9\uD574 AI \uB2F5\uBCC0\uC758 \uADFC\uAC70\uB85C \uD65C\uC6A9\uD558\uACE0 \uC2E0\uB8B0\uB3C4\uB97C \uB192\uC774\uACE0\uC790 \uD560 \uB54C",
|
|
29976
|
+
"\uC0DD\uC131\uB41C \uB2F5\uBCC0 \uBB38\uC7A5\uB9C8\uB2E4 \uC778\uB77C\uC778 \uCD9C\uCC98 \uBC88\uD638([1], [2])\uB97C \uB2EC\uC544 \uD638\uBC84 \uC2DC \uC6D0\uBB38 \uC2A4\uB2C8\uD3AB\uC744 \uAC80\uC99D\uD558\uAC8C \uD560 \uB54C",
|
|
29977
|
+
"AI\uAC00 \uC9C0\uC5B4\uB0B8 \uAC70\uC9D3 \uC815\uBCF4(\uD560\uB8E8\uC2DC\uB124\uC774\uC158)\uB97C \uC904\uC774\uAE30 \uC704\uD574 \uB2F5\uBCC0 \uC791\uC131 \uC804 \uCD94\uB860(Thinking) \uB2E8\uACC4\uB97C \uB178\uCD9C\uD560 \uB54C",
|
|
29978
|
+
"\uAC80\uC0C9\uB41C \uBB38\uC11C \uCCAD\uD06C(Chunk) \uC911 \uC2E4\uC81C \uB2F5\uBCC0\uC5D0 \uAE30\uC5EC\uD55C \uD575\uC2EC \uBB38\uB2E8\uC744 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uD22C\uBA85\uD558\uAC8C \uBCF4\uC5EC\uC904 \uB54C"
|
|
29979
|
+
],
|
|
29980
|
+
en: [
|
|
29981
|
+
"Grounding AI completions in proprietary documents or fresh knowledge bases to build trust",
|
|
29982
|
+
"Attaching inline citation badges ([1], [2]) that reveal source snippets and URLs on hover",
|
|
29983
|
+
"Mitigating model hallucinations by exposing step-by-step thinking processes to users",
|
|
29984
|
+
"Displaying the exact document chunks that informed the generated answer"
|
|
29985
|
+
]
|
|
29986
|
+
},
|
|
29987
|
+
keywords: {
|
|
29988
|
+
ko: ["RAG", "\uAC80\uC0C9 \uC99D\uAC15", "\uCD9C\uCC98 \uC778\uC6A9", "\uD560\uB8E8\uC2DC\uB124\uC774\uC158", "\uCD94\uB860 \uACFC\uC815", "CoT", "\uC2E0\uB8B0\uB3C4", "\uC784\uBCA0\uB529"],
|
|
29989
|
+
en: ["RAG", "retrieval augmented generation", "citations", "hallucination", "thinking process", "chain of thought", "attribution"]
|
|
29990
|
+
},
|
|
29991
|
+
text: {
|
|
29992
|
+
ko: {
|
|
29993
|
+
domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
|
|
29994
|
+
title: "RAG \uAC80\uC0C9 \uC99D\uAC15\uACFC \uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9 \uBC0F \uD560\uB8E8\uC2DC\uB124\uC774\uC158 \uAC00\uB4DC\uB808\uC77C",
|
|
29995
|
+
summary: "\uAC80\uC0C9 \uC99D\uAC15(RAG) \uC9C0\uC2DD\uC744 \uBC14\uD0D5\uC73C\uB85C \uBB38\uC7A5\uBCC4 \uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9\uACFC \uC0AC\uACE0 \uACFC\uC815(Thinking)\uC744 \uC81C\uACF5\uD574 \uD560\uB8E8\uC2DC\uB124\uC774\uC158\uC744 \uC5B5\uC81C\uD569\uB2C8\uB2E4.",
|
|
29996
|
+
overview: "LLM\uC758 \uAC00\uC7A5 \uD070 \uD55C\uACC4\uB294 \uD559\uC2B5 \uC2DC\uC810 \uC774\uD6C4\uC758 \uCD5C\uC2E0 \uC815\uBCF4\uB97C \uC54C\uC9C0 \uBABB\uD558\uACE0 \uADF8\uB7F4\uB4EF\uD55C \uAC70\uC9D3\uB9D0\uC744 \uC9C0\uC5B4\uB0B4\uB294 \uD560\uB8E8\uC2DC\uB124\uC774\uC158(Hallucination)\uC785\uB2C8\uB2E4. \uC774\uB97C \uADF9\uBCF5\uD558\uAE30 \uC704\uD574 \uC0AC\uC6A9\uC790 \uC9C8\uBB38\uACFC \uAD00\uB828\uB41C \uBB38\uC11C\uB97C \uBCA1\uD130 DB\uC5D0\uC11C \uAC80\uC0C9\uD574 \uCEE8\uD14D\uC2A4\uD2B8\uB85C \uC81C\uACF5\uD558\uB294 RAG \uAE30\uBC95\uC774 \uB110\uB9AC \uC0AC\uC6A9\uB429\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uB192\uC740 \uC2E0\uB8B0\uB97C \uC8FC\uB824\uBA74 \uB2F5\uBCC0 \uBB38\uC7A5\uB9C8\uB2E4 \uCD9C\uCC98 \uBC88\uD638 \uCE69\uC744 \uB2EC\uC544 \uB9C8\uC6B0\uC2A4 \uD638\uBC84 \uC2DC \uC6D0\uBB38 \uC81C\uBAA9\uACFC \uBC1C\uCDCC\uBB38\uC744 \uD655\uC778\uD558\uAC8C \uD558\uACE0, \uBCF5\uC7A1\uD55C \uB2F5\uBCC0\uC740 AI\uC758 \uC0AC\uACE0 \uACFC\uC815(Thinking)\uC744 \uD3BC\uCCD0\uBCFC \uC218 \uC788\uAC8C \uD574\uC57C \uD569\uB2C8\uB2E4.",
|
|
29997
|
+
concepts: [
|
|
29998
|
+
{ name: "\uAC80\uC0C9 \uC99D\uAC15 \uC0DD\uC131(RAG, Retrieval-Augmented Generation)", description: "\uC678\uBD80 \uC9C0\uC2DD \uBCA0\uC774\uC2A4\uC5D0\uC11C \uAD00\uB828 \uD14D\uC2A4\uD2B8 \uCCAD\uD06C\uB97C \uAC80\uC0C9\uD574 LLM\uC758 \uD504\uB86C\uD504\uD2B8 \uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uC8FC\uC785\uD568\uC73C\uB85C\uC368 \uC815\uD655\uD55C \uADFC\uAC70 \uAE30\uBC18 \uB2F5\uBCC0\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4." },
|
|
29999
|
+
{ name: "\uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9(Inline Attribution)", description: "\uC0DD\uC131\uB41C \uD14D\uC2A4\uD2B8 \uBCF8\uBB38 \uB0B4\uC5D0 [1], [2] \uAC19\uC740 \uAC01\uC8FC \uD615\uD0DC\uC758 \uCE69\uC744 \uBC30\uCE58\uD558\uACE0, \uC0C1\uD638\uC791\uC6A9 \uC2DC \uC6D0\uBB38 \uB9C1\uD06C\uC640 \uBC1C\uCDCC\uBB38\uC744 \uD31D\uC624\uBC84\uB85C \uC81C\uACF5\uD569\uB2C8\uB2E4." },
|
|
30000
|
+
{ name: "\uC0AC\uACE0 \uACFC\uC815 \uD22C\uBA85\uC131(Chain-of-Thought Transparency)", description: "\uBAA8\uB378\uC774 \uCD5C\uC885 \uB2F5\uBCC0\uC744 \uB0B4\uB193\uAE30 \uC804 \uAC70\uCE5C \uBD84\uC11D\xB7\uAC80\uC0C9\xB7\uAC80\uC99D \uB2E8\uACC4\uB97C \uC544\uCF54\uB514\uC5B8 \uD615\uD0DC\uB85C \uB178\uCD9C\uD574 \uB2F5\uBCC0\uC758 \uB17C\uB9AC\uC801 \uD0C0\uB2F9\uC131\uC744 \uC0AC\uC6A9\uC790\uAC00 \uC9C1\uC811 \uAC80\uD1A0\uD558\uAC8C \uD569\uB2C8\uB2E4." }
|
|
30001
|
+
],
|
|
30002
|
+
workflow: [
|
|
30003
|
+
{ name: "\uC9C8\uBB38 \uC784\uBCA0\uB529 \uBC0F \uAD00\uB828 \uCCAD\uD06C \uAC80\uC0C9\uD558\uAE30", description: "\uC0AC\uC6A9\uC790 \uC9C8\uBB38\uACFC \uC720\uC0AC\uD55C \uBB38\uC11C \uCCAD\uD06C \uC0C1\uC704 3~5\uAC1C\uB97C \uBCA1\uD130 DB\uC5D0\uC11C \uC870\uD68C\uD574 \uBA54\uD0C0\uB370\uC774\uD130(URL, \uC81C\uBAA9)\uC640 \uD568\uAED8 \uC900\uBE44\uD569\uB2C8\uB2E4." },
|
|
30004
|
+
{ name: "\uADFC\uAC70 \uAE30\uBC18 \uB2F5\uBCC0 \uBC0F \uC778\uC6A9 \uD0DC\uADF8 \uC0DD\uC131\uD558\uAE30", description: "\uC2DC\uC2A4\uD15C \uD504\uB86C\uD504\uD2B8\uC5D0 \uC81C\uACF5\uB41C \uBB38\uC11C\uB9CC\uC744 \uAE30\uBC18\uC73C\uB85C \uB2F5\uBCC0\uD558\uACE0 \uC778\uC6A9 \uBC88\uD638\uB97C \uBD99\uC774\uB3C4\uB85D \uC9C0\uC2DC\uD569\uB2C8\uB2E4." },
|
|
30005
|
+
{ name: "\uC778\uB77C\uC778 \uCE69 \uBC0F \uD638\uBC84 \uD31D\uC624\uBC84 \uCE74\uB4DC \uBC14\uC778\uB529\uD558\uAE30", description: "\uB80C\uB354\uB9C1 \uC2DC [1] \uD0DC\uADF8\uB97C \uAC10\uC9C0\uD574 \uCD9C\uCC98 \uD31D\uC624\uBC84 \uCEF4\uD3EC\uB10C\uD2B8\uB85C \uCE58\uD658\uD558\uACE0 \uC6D0\uBB38 \uD30C\uBE44\uCF58 \uBC0F \uBC1C\uCDCC\uBB38\uC744 \uC5F0\uACB0\uD569\uB2C8\uB2E4." }
|
|
30006
|
+
],
|
|
30007
|
+
pitfalls: [
|
|
30008
|
+
{ name: "\uAC80\uC0C9\uB41C \uCCAD\uD06C\uAC00 \uC9C8\uBB38\uACFC \uBB34\uAD00\uD55C\uB370\uB3C4 \uC5B5\uC9C0\uB85C \uB2F5\uBCC0\uC5D0 \uB07C\uC6CC \uB9DE\uCD94\uAE30", description: '\uC720\uC0AC\uB3C4 \uC810\uC218\uAC00 \uB0AE\uC740 \uAC80\uC0C9 \uACB0\uACFC\uB294 \uACFC\uAC10\uD788 \uBC84\uB9AC\uACE0 "\uC81C\uACF5\uB41C \uBB38\uC11C\uC5D0\uC11C \uAD00\uB828 \uC815\uBCF4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4"\uB77C\uACE0 \uC194\uC9C1\uD788 \uB2F5\uBCC0\uD558\uB3C4\uB85D \uAC00\uB4DC\uB808\uC77C\uC744 \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.' },
|
|
30009
|
+
{ name: "\uD074\uB9AD\uD574\uB3C4 \uC774\uB3D9\uD560 \uC218 \uC5C6\uB294 \uAC00\uC9DC \uCD9C\uCC98 URL \uB9C1\uD06C \uB0A8\uAE30\uAE30", description: "\uCD9C\uCC98 \uCE69\uC5D0 \uC2E4\uC81C \uC720\uD6A8\uD55C URL\uC774\uB098 \uBB38\uC11C \uBBF8\uB9AC\uBCF4\uAE30\uAC00 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC73C\uBA74 \uC11C\uBE44\uC2A4 \uC2E0\uB8B0\uB3C4\uAC00 \uAE09\uACA9\uD788 \uD558\uB77D\uD569\uB2C8\uB2E4." }
|
|
30010
|
+
],
|
|
30011
|
+
questions: [
|
|
30012
|
+
"\uC0AC\uC6A9\uC790\uAC00 \uC778\uC6A9 \uCE69\uC744 \uD074\uB9AD\uD588\uC744 \uB54C \uC678\uBD80 \uC6F9\uD398\uC774\uC9C0\uB85C \uC774\uB3D9\uD558\uB098\uC694, \uC544\uB2C8\uBA74 \uC11C\uBE44\uC2A4 \uB0B4 \uBB38\uC11C \uBDF0\uC5B4\uB85C \uC5F0\uACB0\uD558\uB098\uC694?",
|
|
30013
|
+
"\uAC80\uC0C9\uB41C \uBB38\uC11C \uB0B4\uC6A9\uACFC LLM \uC790\uCCB4 \uC9C0\uC2DD\uC774 \uC0C1\uCDA9\uD560 \uB54C \uC5B4\uB5A4 \uC815\uBCF4\uB97C \uC6B0\uC120\uD558\uC5EC \uB2F5\uBCC0\uD560 \uAC83\uC778\uAC00\uC694?",
|
|
30014
|
+
"AI \uC0AC\uACE0 \uACFC\uC815(Thinking Process)\uC744 \uAE30\uBCF8\uC801\uC73C\uB85C \uD3BC\uCCD0\uB458 \uAC83\uC778\uAC00\uC694, \uC811\uC5B4\uB450\uACE0 \uC0AC\uC6A9\uC790\uAC00 \uC6D0\uD560 \uB54C\uB9CC \uBCF4\uAC8C \uD560 \uAC83\uC778\uAC00\uC694?"
|
|
30015
|
+
],
|
|
30016
|
+
example: '\uC608\uC2DC: \uAE30\uC220 \uBB38\uC11C Q&A\uC5D0\uC11C React 19 \uBCC0\uACBD\uC810\uC744 \uC9C8\uBB38\uD558\uBA74, \uBCF8\uBB38 \uB05D\uC5D0 [1], [2] \uCE69\uC744 \uD45C\uC2DC\uD558\uACE0 [1]\uC5D0 \uB9C8\uC6B0\uC2A4\uB97C \uC62C\uB838\uC744 \uB54C "React 19 \uB9C8\uC774\uADF8\uB808\uC774\uC158 \uAC00\uC774\uB4DC" \uC81C\uBAA9\uACFC react.dev URL \uBC0F \uD575\uC2EC \uBC1C\uCDCC\uBB38\uC744 \uB2F4\uC740 \uCE74\uB4DC\uAC00 \uBD80\uB4DC\uB7FD\uAC8C \uB098\uD0C0\uB0A9\uB2C8\uB2E4.',
|
|
30017
|
+
relatedDesigns: [
|
|
30018
|
+
{ id: "ai-source-citation", reason: "\uD14D\uC2A4\uD2B8 \uC18D \uC778\uB77C\uC778 \uCD9C\uCC98 \uBC88\uD638\uC640 \uB9C8\uC6B0\uC2A4 \uD638\uBC84 \uC2DC \uB098\uD0C0\uB098\uB294 \uC6D0\uBB38 \uC694\uC57D \uD31D\uC624\uBC84\uB97C \uAD6C\uD604\uD569\uB2C8\uB2E4." },
|
|
30019
|
+
{ id: "ai-thinking-accordion", reason: "AI\uC758 \uCD94\uB860 \uACFC\uC815\uACFC \uACBD\uACFC \uC2DC\uAC04, \uB2E8\uACC4\uBCC4 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8\uB97C \uB2F4\uC740 \uC811\uC774\uC2DD \uC544\uCF54\uB514\uC5B8\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4." }
|
|
30020
|
+
],
|
|
30021
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 \uC778\uB77C\uC778 \uCD9C\uCC98 \uC778\uC6A9 \uCE69\uACFC \uD638\uBC84 \uBBF8\uB9AC\uBCF4\uAE30 \uCE74\uB4DC\uB97C \uAC16\uCD98 AI \uB2F5\uBCC0 UI\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uB2F5\uBCC0 \uD14D\uC2A4\uD2B8\uC640 [1] \uC778\uC6A9 \uCE69\uC744 \uBC30\uCE58\uD558\uACE0, \uD638\uBC84 \uC2DC 240px \uB108\uBE44\uC758 \uCD9C\uCC98 \uCE74\uB4DC(\uC81C\uBAA9, URL, 2\uC904 \uBC1C\uCDCC\uBB38)\uAC00 150ms \uD398\uC774\uB4DC\uC778\uC73C\uB85C \uB098\uD0C0\uB098\uAC8C \uD574 \uC918."
|
|
30022
|
+
},
|
|
30023
|
+
en: {
|
|
30024
|
+
domain: "AI Agents & LLM Services",
|
|
30025
|
+
title: "RAG Retrieval Augmentation, Inline Source Attribution, and Hallucination Guardrails",
|
|
30026
|
+
summary: "Ground AI answers in retrieved documents with inline citation badges and collapsible thinking timelines to suppress hallucinations.",
|
|
30027
|
+
overview: "A primary hurdle in generative AI adoption is hallucination\u2014the confident assertion of fabricated claims. Retrieval-Augmented Generation (RAG) resolves this by fetching relevant document chunks from vector databases to anchor responses in verified truth. To cultivate user trust, answers should furnish inline reference badges that reveal underlying sources on hover alongside transparent reasoning logs.",
|
|
30028
|
+
concepts: [
|
|
30029
|
+
{ name: "Retrieval-Augmented Generation (RAG)", description: "Injecting queried knowledge base chunks into the prompt context to ensure strictly factual, evidence-backed answers." },
|
|
30030
|
+
{ name: "Inline Attribution Badges", description: "Embedding interactive reference markers ([1], [2]) directly within prose to anchor assertions to verifiable documents." },
|
|
30031
|
+
{ name: "Chain-of-Thought Transparency", description: "Exposing intermediate reasoning and search steps inside an accordion so users can evaluate logical integrity." }
|
|
30032
|
+
],
|
|
30033
|
+
workflow: [
|
|
30034
|
+
{ name: "Query Vector Stores for Context Chunks", description: "Retrieve top matching document snippets with associated metadata (title, URL, timestamps)." },
|
|
30035
|
+
{ name: "Synthesize Answers with Citation Footnotes", description: "Instruct the model to reference source indices corresponding to cited propositions." },
|
|
30036
|
+
{ name: "Bind Interactive Citation Popovers", description: "Map citation tokens to rich hover cards displaying site favicons, page titles, and snippet excerpts." }
|
|
30037
|
+
],
|
|
30038
|
+
pitfalls: [
|
|
30039
|
+
{ name: "Forcing Responses When Retrieval Confidence Is Poor", description: "Failing to implement similarity score floors prompts models to hallucinate answers instead of reporting missing data." },
|
|
30040
|
+
{ name: "Dangling Citations Without Navigable Sources", description: "Displaying dead reference numbers with unverified links severely damages platform credibility." }
|
|
30041
|
+
],
|
|
30042
|
+
questions: [
|
|
30043
|
+
"Should citation clicks navigate externally or open an internal split-pane viewer?",
|
|
30044
|
+
"How will conflicting facts between enterprise documents and model priors be arbitrated?",
|
|
30045
|
+
"Should the thinking process accordion mount open by default or remain collapsed?"
|
|
30046
|
+
],
|
|
30047
|
+
example: 'Example: In a technical documentation assistant, answers append [1] markers. Hovering marker [1] reveals a 240px card with title "React 19 Migration Guide", domain "react.dev", and excerpt text.',
|
|
30048
|
+
relatedDesigns: [
|
|
30049
|
+
{ id: "ai-source-citation", reason: "Provides inline citation chips with hoverable source preview cards." },
|
|
30050
|
+
{ id: "ai-thinking-accordion", reason: "Renders collapsible reasoning logs with elapsed time badges." }
|
|
30051
|
+
],
|
|
30052
|
+
promptSnippet: "Create an AI answer layout with inline citation chips and hover preview cards in the specified area. Inside a container of width 100% and min-height 180px, render text with a [1] badge that triggers a 240px source preview popover on hover."
|
|
30053
|
+
}
|
|
30054
|
+
},
|
|
30055
|
+
sources: [
|
|
30056
|
+
{ title: "Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", url: "https://arxiv.org/abs/2005.11401" },
|
|
30057
|
+
{ title: "Pinecone RAG Architecture Guide", url: "https://www.pinecone.io/learn/retrieval-augmented-generation/" }
|
|
30058
|
+
]
|
|
30059
|
+
},
|
|
30060
|
+
{
|
|
30061
|
+
id: "ai-agent-state-memory-and-branching",
|
|
30062
|
+
aliases: {
|
|
30063
|
+
ko: ["\uB300\uD654 \uC138\uC158 \uC0C1\uD0DC", "\uC751\uB2F5 \uBC84\uC804 \uBD84\uAE30", "\uB300\uD654 \uBE0C\uB79C\uCE58", "\uC5D0\uC774\uC804\uD2B8 \uBA54\uBAA8\uB9AC", "\uC2AC\uB798\uC2DC \uBA85\uB839\uC5B4", "\uB300\uD654 \uB864\uBC31"],
|
|
30064
|
+
en: ["conversation state", "response branching", "message history branches", "agent memory", "slash commands", "session rollback"]
|
|
30065
|
+
},
|
|
30066
|
+
useCases: {
|
|
30067
|
+
ko: [
|
|
30068
|
+
"\uB3D9\uC77C\uD55C \uC9C8\uBB38\uC5D0 \uB300\uD574 \uC5EC\uB7EC \uBC88 \uB2E4\uC2DC \uC0DD\uC131(Regenerate)\uD55C \uB2F5\uBCC0\uB4E4\uC744 \uBC84\uB9AC\uC9C0 \uC54A\uACE0 \uBC84\uC804\uBCC4\uB85C \uD0D0\uC0C9\uD560 \uB54C",
|
|
30069
|
+
"\uB300\uD654 \uB3C4\uC911 \uD2B9\uC815 \uC2DC\uC810\uC73C\uB85C \uB3CC\uC544\uAC00 \uC0C8\uB85C\uC6B4 \uB300\uD654 \uC904\uAE30\uB97C \uBED7\uC5B4\uB098\uAC00\uB294 \uBD84\uAE30(Forking/Branching)\uB97C \uAD6C\uD604\uD560 \uB54C",
|
|
30070
|
+
"\uC2AC\uB798\uC2DC(/) \uBA85\uB839\uC5B4\uB85C \uC0AC\uC804\uC5D0 \uC815\uC758\uB41C \uD504\uB86C\uD504\uD2B8 \uD15C\uD50C\uB9BF\uC744 \uBE60\uB974\uAC8C \uBD88\uB7EC\uC640 \uC138\uC158\uC5D0 \uC801\uC6A9\uD560 \uB54C",
|
|
30071
|
+
"\uC138\uC158\uC774 \uAE38\uC5B4\uC9C8 \uB54C \uC0AC\uC6A9\uC790\uC758 \uD575\uC2EC \uC120\uD638\uB3C4\uC640 \uACFC\uAC70 \uC791\uC5C5 \uB9E5\uB77D\uC744 \uC7A5\uAE30 \uBA54\uBAA8\uB9AC\uB85C \uC694\uC57D \uBCF4\uAD00\uD560 \uB54C"
|
|
30072
|
+
],
|
|
30073
|
+
en: [
|
|
30074
|
+
"Retaining multiple regenerated answer versions rather than discarding past responses",
|
|
30075
|
+
"Branching conversation threads from earlier turns to explore alternative paths",
|
|
30076
|
+
"Invoking preset prompt templates via slash commands directly into active sessions",
|
|
30077
|
+
"Summarizing user preferences and ongoing task state into persistent agent memory"
|
|
30078
|
+
]
|
|
30079
|
+
},
|
|
30080
|
+
keywords: {
|
|
30081
|
+
ko: ["\uC138\uC158 \uC0C1\uD0DC", "\uC751\uB2F5 \uBD84\uAE30", "\uBC84\uC804 \uC2A4\uC704\uCC98", "\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC", "\uC7A5\uAE30 \uBA54\uBAA8\uB9AC", "\uB864\uBC31", "\uC7AC\uC0DD\uC131 \uD788\uC2A4\uD1A0\uB9AC"],
|
|
30082
|
+
en: ["session state", "response branching", "version switcher", "slash commands", "long-term memory", "rollback", "regeneration history"]
|
|
30083
|
+
},
|
|
30084
|
+
text: {
|
|
30085
|
+
ko: {
|
|
30086
|
+
domain: "AI \uC5D0\uC774\uC804\uD2B8 & LLM \uC11C\uBE44\uC2A4",
|
|
30087
|
+
title: "\uC5D0\uC774\uC804\uD2B8 \uB300\uD654 \uC138\uC158 \uC0C1\uD0DC \uAD00\uB9AC\uC640 \uC751\uB2F5 \uBC84\uC804 \uBD84\uAE30 \uBC0F \uB864\uBC31",
|
|
30088
|
+
summary: "\uBA40\uD2F0\uD134 \uC138\uC158 \uC0C1\uD0DC\uB97C \uBCF4\uC874\uD558\uACE0, \uC7AC\uC0DD\uC131\uB41C \uC5EC\uB7EC \uC751\uB2F5 \uBC84\uC804 \uAC04\uC758 \uD0D0\uC0C9\uACFC \uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC \uD15C\uD50C\uB9BF\uC744 \uC9C0\uC6D0\uD569\uB2C8\uB2E4.",
|
|
30089
|
+
overview: "\uB300\uD654\uD615 AI \uC11C\uBE44\uC2A4\uC5D0\uC11C \uC0AC\uC6A9\uC790\uB294 \uB9C8\uC74C\uC5D0 \uB4E4\uC9C0 \uC54A\uB294 \uB2F5\uBCC0\uC744 \uB2E4\uC2DC \uC0DD\uC131(Retry)\uD558\uAC70\uB098, \uC774\uC804 \uD134\uC73C\uB85C \uB3CC\uC544\uAC00 \uB2E4\uB978 \uC9C8\uBB38\uC744 \uB358\uC9C0\uB294 \uC77C\uC774 \uD754\uD569\uB2C8\uB2E4. \uC774\uC804 \uB2F5\uBCC0\uC744 \uB36E\uC5B4\uC368\uBC84\uB9AC\uBA74 \uACFC\uAC70\uC758 \uC720\uC6A9\uD55C \uC815\uBCF4\uB97C \uC601\uAD6C\uD788 \uC783\uAC8C \uB429\uB2C8\uB2E4. \uB610\uD55C \uBC18\uBCF5\uC801\uC778 \uC791\uC5C5\uC744 \uB2E8\uCD95\uD558\uAE30 \uC704\uD574 \uC2AC\uB798\uC2DC(/) \uCEE4\uB9E8\uB4DC\uB85C \uC790\uC8FC \uC4F0\uB294 \uD15C\uD50C\uB9BF\uC744 \uD638\uCD9C\uD560 \uC218 \uC788\uC5B4\uC57C \uD558\uBA70, \uC7A5\uAE30 \uC138\uC158\uC5D0\uC11C\uB3C4 \uC0AC\uC6A9\uC790\uC758 \uC120\uD638 \uC2A4\uD0C0\uC77C\uACFC \uC791\uC5C5 \uC0C1\uD0DC\uB97C \uBA54\uBAA8\uB9AC\uB85C \uC720\uC9C0\uD574\uC57C \uD569\uB2C8\uB2E4.",
|
|
30090
|
+
concepts: [
|
|
30091
|
+
{ name: "\uD2B8\uB9AC \uAE30\uBC18 \uB300\uD654 \uC0C1\uD0DC(Tree-structured Conversation State)", description: "\uB2E8\uC21C \uC120\uD615 \uBC30\uC5F4\uC774 \uC544\uB2CC \uBD80\uBAA8-\uC790\uC2DD \uB178\uB4DC\uB85C \uBA54\uC2DC\uC9C0\uB97C \uC800\uC7A5\uD574 \uD55C \uC9C8\uBB38\uC5D0\uC11C \uC5EC\uB7EC \uB2F5\uBCC0 \uBE0C\uB79C\uCE58\uAC00 \uBD84\uAE30\uD560 \uC218 \uC788\uB3C4\uB85D \uB370\uC774\uD130 \uAD6C\uC870\uB97C \uC124\uACC4\uD569\uB2C8\uB2E4." },
|
|
30092
|
+
{ name: "\uBC84\uC804 \uB124\uBE44\uAC8C\uC774\uC158(Version Pagination)", description: "\uB3D9\uC77C \uB178\uB4DC\uC5D0\uC11C \uBD84\uAE30\uB41C \uC5EC\uB7EC \uB2F5\uBCC0 \uBC84\uC804\uC744 < 1 / 3 > \uD615\uD0DC\uC758 \uCEE8\uD2B8\uB864\uB85C \uB118\uACA8\uBCF4\uBA70 \uD65C\uC131 \uBE0C\uB79C\uCE58\uB97C \uC804\uD658\uD569\uB2C8\uB2E4." },
|
|
30093
|
+
{ name: "\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC \uD15C\uD50C\uB9BF(Slash Command Prompt Ingestion)", description: "\uC785\uB825\uCC3D\uC5D0\uC11C / \uD0A4\uB85C \uD2B8\uB9AC\uAC70\uB418\uB294 \uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8\uB97C \uD1B5\uD574 \uC77C\uAD00\uB41C \uACE0\uD488\uC9C8 \uC2DC\uC2A4\uD15C \uC9C0\uC2DC \uD504\uB86C\uD504\uD2B8\uB97C \uC8FC\uC785\uD569\uB2C8\uB2E4." }
|
|
30094
|
+
],
|
|
30095
|
+
workflow: [
|
|
30096
|
+
{ name: "\uC7AC\uC0DD\uC131 \uC694\uCCAD \uC2DC \uC2E0\uADDC \uB178\uB4DC \uCD94\uAC00\uD558\uAE30", description: "\uAE30\uC874 \uB2F5\uBCC0\uC744 \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uACE0 \uBD80\uBAA8 \uC9C8\uBB38 \uB178\uB4DC\uC758 \uC790\uC2DD \uBC30\uC5F4\uC5D0 \uC0C8\uB85C\uC6B4 \uB2F5\uBCC0 \uBC84\uC804\uC744 \uCD94\uAC00\uD569\uB2C8\uB2E4." },
|
|
30097
|
+
{ name: "\uBC84\uC804 \uC2A4\uC704\uCC98 \uCEE8\uD2B8\uB864 \uB80C\uB354\uB9C1\uD558\uAE30", description: "\uB2F5\uBCC0 \uCE74\uB4DC \uD558\uB2E8\uC5D0 \uC774\uC804/\uB2E4\uC74C \uD654\uC0B4\uD45C\uC640 \uD604\uC7AC \uBC84\uC804 \uC778\uB371\uC2A4\uB97C \uD45C\uC2DC\uD574 \uC2AC\uB77C\uC774\uB4DC \uC804\uD658\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4." },
|
|
30098
|
+
{ name: "\uC2AC\uB798\uC2DC \uCEE4\uB9E8\uB4DC\uB85C \uD504\uB86C\uD504\uD2B8 \uC790\uB3D9 \uC644\uC131\uD558\uAE30", description: "\uC0AC\uC6A9\uC790\uAC00 /\uB97C \uC785\uB825\uD558\uBA74 \uCD94\uCC9C \uBA85\uB839 \uD31D\uC624\uBC84\uB97C \uC5F4\uACE0 \uC120\uD0DD \uC2DC \uD574\uB2F9 \uD15C\uD50C\uB9BF\uC73C\uB85C \uCE58\uD658\uD569\uB2C8\uB2E4." }
|
|
30099
|
+
],
|
|
30100
|
+
pitfalls: [
|
|
30101
|
+
{ name: "\uC0C8 \uBC84\uC804 \uC0DD\uC131 \uC2DC \uC774\uC804 \uBC84\uC804\uC744 \uD30C\uAD34\uC801\uC73C\uB85C \uB36E\uC5B4\uC4F0\uAE30", description: "\uC0AC\uC6A9\uC790\uAC00 \uC774\uC804 \uBC84\uC804\uC758 \uCF54\uB4DC\uAC00 \uB354 \uB9C8\uC74C\uC5D0 \uB4E4\uC5C8\uC744 \uB54C \uB418\uB3CC\uC544\uAC08 \uC218 \uC5C6\uC73C\uBA74 \uD070 \uBD88\uB9CC\uC744 \uC57C\uAE30\uD569\uB2C8\uB2E4." },
|
|
30102
|
+
{ name: "\uAE4A\uC740 \uBD84\uAE30 \uD2B8\uB9AC\uB85C \uC778\uD55C \uC138\uC158 \uC0C1\uD0DC \uBCF5\uC7A1\uB3C4 \uD3ED\uC99D", description: "\uBB34\uC81C\uD55C \uBD84\uAE30 \uC2DC \uD074\uB77C\uC774\uC5B8\uD2B8 \uBA54\uBAA8\uB9AC\uC640 DB \uAD00\uACC4\uAC00 \uBCF5\uC7A1\uD574\uC9C0\uBBC0\uB85C \uB178\uB4DC \uAE4A\uC774 \uC81C\uD55C\uC774\uB098 \uBA85\uC2DC\uC801 \uAC00\uC9C0\uCE58\uAE30(Prune) \uC815\uCC45\uC744 \uB450\uC5B4\uC57C \uD569\uB2C8\uB2E4." }
|
|
30103
|
+
],
|
|
30104
|
+
questions: [
|
|
30105
|
+
"\uC0AC\uC6A9\uC790\uAC00 \uD2B9\uC815 \uC774\uC804 \uBC84\uC804\uC73C\uB85C \uC804\uD658\uD588\uC744 \uB54C, \uADF8 \uC774\uD6C4\uC5D0 \uC774\uC5B4\uC9C0\uB294 \uD6C4\uC18D \uB300\uD654\uB4E4\uB3C4 \uD574\uB2F9 \uBC84\uC804\uC5D0 \uB9DE\uCDB0 \uB3D9\uAE30\uD654\uB418\uB098\uC694?",
|
|
30106
|
+
"\uC2AC\uB798\uC2DC \uBA85\uB839\uC5B4 \uBAA9\uB85D\uC744 \uC0AC\uC6A9\uC790\uAC00 \uC9C1\uC811 \uCEE4\uC2A4\uD140\uC73C\uB85C \uCD94\uAC00\uD558\uACE0 \uD3B8\uC9D1\uD560 \uC218 \uC788\uB098\uC694?",
|
|
30107
|
+
"\uBE0C\uB77C\uC6B0\uC800\uB97C \uC0C8\uB85C\uACE0\uCE68\uD558\uAC70\uB098 \uC138\uC158\uC744 \uB098\uAC14\uB2E4 \uC640\uB3C4 \uC0DD\uC131\uB41C \uBAA8\uB4E0 \uBC84\uC804 \uD788\uC2A4\uD1A0\uB9AC\uAC00 \uC720\uC9C0\uB418\uB098\uC694?"
|
|
30108
|
+
],
|
|
30109
|
+
example: "\uC608\uC2DC: \uB3D9\uC77C\uD55C \uCF54\uB4DC \uB9AC\uD329\uD1A0\uB9C1 \uC694\uCCAD\uC5D0 \uB300\uD574 \uAC04\uACB0\uD615, \uC0C1\uC138\uD615, \uD45C \uD615\uC2DD\uC758 3\uAC00\uC9C0 \uBC84\uC804\uC744 \uC0DD\uC131\uD55C \uB4A4, \uB2F5\uBCC0 \uCE74\uB4DC \uD558\uB2E8\uC758 < 1 / 3 > \uBC84\uD2BC\uC73C\uB85C \uC790\uC720\uB86D\uAC8C \uB118\uACA8\uBCF4\uBA70 \uAC00\uC7A5 \uC801\uD569\uD55C \uBC84\uC804\uC744 \uCC44\uD0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
|
|
30110
|
+
relatedDesigns: [
|
|
30111
|
+
{ id: "ai-message-branch", reason: "\uC7AC\uC0DD\uC131\uB41C \uB2F5\uBCC0 \uBC84\uC804\uB4E4\uC744 \uC774\uC804/\uB2E4\uC74C \uD654\uC0B4\uD45C\uB85C \uB118\uACA8\uBCF4\uB294 \uBE0C\uB79C\uCE58 \uC2A4\uC704\uCC98\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4." },
|
|
30112
|
+
{ id: "ai-slash-command", reason: "\uC2AC\uB798\uC2DC(/) \uBB38\uC790\uB85C \uC790\uC8FC \uC4F0\uB294 \uD504\uB86C\uD504\uD2B8 \uD15C\uD50C\uB9BF\uC744 \uBE60\uB974\uAC8C \uBD88\uB7EC\uC624\uB294 \uCEE4\uB9E8\uB4DC \uD314\uB808\uD2B8\uB97C \uAD6C\uC131\uD569\uB2C8\uB2E4." }
|
|
30113
|
+
],
|
|
30114
|
+
promptSnippet: "\uC9C0\uC815\uD55C \uC601\uC5ED\uC5D0 < 1 / 3 > \uD615\uD0DC\uC758 \uBC84\uC804 \uB124\uBE44\uAC8C\uC774\uC158\uC744 \uAC16\uCD98 AI \uC751\uB2F5 \uBC84\uC804 \uBD84\uAE30 \uCE74\uB4DC\uB97C \uB9CC\uB4E4\uC5B4 \uC918. \uB108\uBE44 100%, \uCD5C\uC18C \uB192\uC774 180px \uCEE8\uD14C\uC774\uB108 \uC548\uC5D0 \uB2F5\uBCC0 \uB0B4\uC6A9\uACFC \uC774\uC804/\uB2E4\uC74C \uBC84\uD2BC\uC744 \uBC30\uCE58\uD558\uACE0, \uC0C8 \uBC84\uC804 \uC0DD\uC131 \uD074\uB9AD \uC2DC \uC2E0\uADDC \uBC84\uC804\uC774 \uBC30\uC5F4\uC5D0 \uCD94\uAC00\uB418\uBA70 \uC989\uC2DC \uC774\uB3D9\uD558\uAC8C \uD574 \uC918."
|
|
30115
|
+
},
|
|
30116
|
+
en: {
|
|
30117
|
+
domain: "AI Agents & LLM Services",
|
|
30118
|
+
title: "Agent Conversation Session State, Response Branching, and Rollback",
|
|
30119
|
+
summary: "Manage multi-turn conversation states with non-destructive response version branching and slash command palettes.",
|
|
30120
|
+
overview: "Users routinely regenerate AI answers or backstep to fork alternative lines of inquiry. Overwriting previous responses discards viable solutions permanently. Structuring session histories as trees preserves parallel branches, navigated via version switchers, while slash command palettes facilitate rapid ingestion of standard prompt templates.",
|
|
30121
|
+
concepts: [
|
|
30122
|
+
{ name: "Tree-structured Session State", description: "Representing conversations as parent-child nodes rather than flat lists to support multiple branching response variants." },
|
|
30123
|
+
{ name: "Response Version Pagination", description: "Navigating parallel response alternatives using < 1 / 3 > controls to switch the active branch." },
|
|
30124
|
+
{ name: "Slash Command Palette Ingestion", description: 'Surfacing command popovers on "/" keypress to insert structured prompt templates seamlessly.' }
|
|
30125
|
+
],
|
|
30126
|
+
workflow: [
|
|
30127
|
+
{ name: "Append New Node on Regeneration", description: "Record newly generated responses as sibling nodes beneath the parent prompt rather than mutating existing records." },
|
|
30128
|
+
{ name: "Render Branch Pagination Controls", description: "Display previous/next selectors and version tallies at the base of message bubbles to toggle states." },
|
|
30129
|
+
{ name: "Trigger Slash Palette Autocompletion", description: 'Open a floating command selector when "/" is typed, substituting prompts upon selection.' }
|
|
30130
|
+
],
|
|
30131
|
+
pitfalls: [
|
|
30132
|
+
{ name: "Destructively Overwriting Prior Generations", description: "Eliminating earlier generations frustrates users seeking snippets from previous completions; retain versions in memory." },
|
|
30133
|
+
{ name: "Unbounded Tree Memory Growth", description: "Unchecked branching inflates client memory and serialization complexity; establish pragmatic pruning boundaries." }
|
|
30134
|
+
],
|
|
30135
|
+
questions: [
|
|
30136
|
+
"Does navigating to an earlier sibling version automatically switch the downstream conversational context?",
|
|
30137
|
+
"Can users configure custom personal slash command macros?",
|
|
30138
|
+
"Does session persistence retain full branch histories across page reloads?"
|
|
30139
|
+
],
|
|
30140
|
+
example: "Example: A developer requests three refactoring variants (concise, detailed, tabular) and navigates among them using < 1 / 3 > controls before deciding which variant to keep.",
|
|
30141
|
+
relatedDesigns: [
|
|
30142
|
+
{ id: "ai-message-branch", reason: "Enables navigating across multiple response generations with version pagination." },
|
|
30143
|
+
{ id: "ai-slash-command", reason: "Provides a slash command menu to autocomplete common prompt instructions." }
|
|
30144
|
+
],
|
|
30145
|
+
promptSnippet: "Create a response branch switcher card with < 1 / 3 > version navigation in the specified area. Inside a container of width 100% and min-height 180px, render message content and pagination controls to switch between regenerated responses."
|
|
30146
|
+
}
|
|
30147
|
+
},
|
|
30148
|
+
sources: [
|
|
30149
|
+
{ title: "LangChain Chat History & Memory Concepts", url: "https://python.langchain.com/docs/concepts/chat_history/" },
|
|
30150
|
+
{ title: "Vercel AI SDK Core Concepts", url: "https://sdk.vercel.ai/docs/concepts" }
|
|
30151
|
+
]
|
|
30152
|
+
}
|
|
30153
|
+
];
|
|
30154
|
+
|
|
29367
30155
|
// ../../packages/catalog/src/domain-knowledge.ts
|
|
29368
30156
|
var DOMAIN_KNOWLEDGE = [
|
|
29369
30157
|
...EDUCATION_KNOWLEDGE,
|
|
@@ -29385,7 +30173,8 @@ var DOMAIN_KNOWLEDGE = [
|
|
|
29385
30173
|
...LOGISTICS_KNOWLEDGE,
|
|
29386
30174
|
...FINTECH_KNOWLEDGE,
|
|
29387
30175
|
...HEALTHCARE_KNOWLEDGE,
|
|
29388
|
-
...AUTOMATION_KNOWLEDGE
|
|
30176
|
+
...AUTOMATION_KNOWLEDGE,
|
|
30177
|
+
...AI_KNOWLEDGE
|
|
29389
30178
|
];
|
|
29390
30179
|
|
|
29391
30180
|
// ../../packages/catalog/src/domain-knowledge/search-vocabulary.ts
|
|
@@ -29766,7 +30555,7 @@ function searchTechniques(options = {}) {
|
|
|
29766
30555
|
// package.json
|
|
29767
30556
|
var package_default = {
|
|
29768
30557
|
name: "@keke1933/vibe-dictionary-mcp",
|
|
29769
|
-
version: "0.
|
|
30558
|
+
version: "0.12.0",
|
|
29770
30559
|
license: "MIT",
|
|
29771
30560
|
author: "leejh96",
|
|
29772
30561
|
description: "Read-only local MCP for searching Vibe Dictionary techniques and retrieving implementation prompts",
|
|
@@ -29778,7 +30567,13 @@ var package_default = {
|
|
|
29778
30567
|
},
|
|
29779
30568
|
homepage: "https://leejh96.github.io/vibe-dictionary/",
|
|
29780
30569
|
bugs: "https://github.com/leejh96/vibe-dictionary/issues",
|
|
29781
|
-
keywords: [
|
|
30570
|
+
keywords: [
|
|
30571
|
+
"mcp",
|
|
30572
|
+
"model-context-protocol",
|
|
30573
|
+
"ui",
|
|
30574
|
+
"prompts",
|
|
30575
|
+
"vibe-coding"
|
|
30576
|
+
],
|
|
29782
30577
|
publishConfig: {
|
|
29783
30578
|
access: "public",
|
|
29784
30579
|
registry: "https://registry.npmjs.org/"
|
|
@@ -29786,7 +30581,11 @@ var package_default = {
|
|
|
29786
30581
|
bin: {
|
|
29787
30582
|
"vibe-dictionary-mcp": "dist/index.js"
|
|
29788
30583
|
},
|
|
29789
|
-
files: [
|
|
30584
|
+
files: [
|
|
30585
|
+
"dist/index.js",
|
|
30586
|
+
"README.md",
|
|
30587
|
+
"LICENSE"
|
|
30588
|
+
],
|
|
29790
30589
|
engines: {
|
|
29791
30590
|
node: ">=22.12.0"
|
|
29792
30591
|
},
|
|
@@ -29808,7 +30607,7 @@ var package_default = {
|
|
|
29808
30607
|
|
|
29809
30608
|
// src/server.ts
|
|
29810
30609
|
var localeSchema = z.enum(["ko", "en"]).default("ko").describe("Output language; search matches both languages regardless of locale.");
|
|
29811
|
-
var domainSchema = z.enum(["ui", "motion", "layout", "style", "pixelart", "video"]);
|
|
30610
|
+
var domainSchema = z.enum(["ui", "motion", "layout", "style", "pixelart", "video", "ai"]);
|
|
29812
30611
|
var categoryIds = [...new Set(Object.values(DOMAIN_CATEGORIES).flatMap((categories) => categories.map(({ id }) => id)))].filter((id) => id !== "all");
|
|
29813
30612
|
var categorySchema = z.enum(categoryIds);
|
|
29814
30613
|
var targetSchema = z.enum(TARGETS);
|
|
@@ -29856,8 +30655,8 @@ function result(output) {
|
|
|
29856
30655
|
function createServer() {
|
|
29857
30656
|
const server = new McpServer({ name: package_default.name, version: package_default.version }, {
|
|
29858
30657
|
instructions: [
|
|
29859
|
-
"Find UI, graphics, layout, style, pixel art and
|
|
29860
|
-
'Before choosing designs for an education, community, commerce, booking, subscription, collaboration, customer-support, auth/account, notification, CMS/publishing, file/media, marketplace, event/check-in, recruiting/ATS, analytics, security/RBAC, logistics, fintech/wallet, healthcare
|
|
30658
|
+
"Find UI, graphics, layout, style, pixel art, video and AI native techniques. Search for a few candidates, compare summaries, useCases and matchedOn fields, then get_technique by exact ID only for the selected prompts.",
|
|
30659
|
+
'Before choosing designs for an education, community, commerce, booking, subscription, collaboration, customer-support, auth/account, notification, CMS/publishing, file/media, marketplace, event/check-in, recruiting/ATS, analytics, security/RBAC, logistics, fintech/wallet, healthcare, form/workflow-automation or AI agent service, use search_domain_knowledge with a short domain or workflow phrase such as "LMS", "\uD68C\uC6D0 \uC804\uC6A9", "\uBD80\uBD84 \uD658\uBD88", "\uD0C0\uC784\uC2AC\uB86F", "\uC815\uAE30 \uACB0\uC81C", "\uCE78\uBC18", "\uD5EC\uD504\uB370\uC2A4\uD06C", "RBAC", "\uD569\uD3EC\uC7A5", "\uBCF5\uC2DD \uC6D0\uC7A5" or "\uD1A0\uD070 \uC608\uC0B0". Compare summaries, useCases and matchedOn fields, then call get_domain_knowledge by a returned ID for concepts, workflows, pitfalls, open decisions, sources, related technique IDs and a reference prompt. Search supports bilingual aliases and ranked keyword matching, not semantic AI. If no entry fits, retry fewer terms or a synonym, or browse with an empty query. Workflows and examples are design references, not established policies. Do not assume answers to the open questions. Related designs do not implement the domain rules.',
|
|
29861
30660
|
"The calling assistant interprets the user request and generates short Korean or English search phrases for one effect at a time. The MCP performs bilingual weighted keyword/alias matching and runs no AI model. Extract concrete effects and targets; omit uncertain filters. For broad requests such as a clean or premium webpage, use the stated purpose and preferences; do not equate an adjective with one fixed style. Ask for clarification when missing context prevents a meaningful choice.",
|
|
29862
30661
|
"For requests combining techniques, search distinct needs such as style, layout and interaction separately. Retrieve the selected prompts, then decide where each technique applies and compare their visual treatment, inputs and timing for conflicts. The tools do not compose techniques or check compatibility; the calling assistant makes those judgments.",
|
|
29863
30662
|
"Use target/trigger filters only for required demo inputs. Compare summaries and useCases against the original request. If candidates are missing or unsuitable, retry a synonym, the other language or fewer modifiers, and remove only filters that are not required. Reset offset to zero when changing the query or filters. Do not select an unrelated result merely because it ranks first; clarify if useful candidates still cannot be found. Scores are not probabilities. locale selects output language independently of search language. These read-only tools return reference data only."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keke1933/vibe-dictionary-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "leejh96",
|
|
6
6
|
"description": "Read-only local MCP for searching Vibe Dictionary techniques and retrieving implementation prompts",
|
|
@@ -12,7 +12,13 @@
|
|
|
12
12
|
},
|
|
13
13
|
"homepage": "https://leejh96.github.io/vibe-dictionary/",
|
|
14
14
|
"bugs": "https://github.com/leejh96/vibe-dictionary/issues",
|
|
15
|
-
"keywords": [
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mcp",
|
|
17
|
+
"model-context-protocol",
|
|
18
|
+
"ui",
|
|
19
|
+
"prompts",
|
|
20
|
+
"vibe-coding"
|
|
21
|
+
],
|
|
16
22
|
"publishConfig": {
|
|
17
23
|
"access": "public",
|
|
18
24
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -20,7 +26,11 @@
|
|
|
20
26
|
"bin": {
|
|
21
27
|
"vibe-dictionary-mcp": "dist/index.js"
|
|
22
28
|
},
|
|
23
|
-
"files": [
|
|
29
|
+
"files": [
|
|
30
|
+
"dist/index.js",
|
|
31
|
+
"README.md",
|
|
32
|
+
"LICENSE"
|
|
33
|
+
],
|
|
24
34
|
"engines": {
|
|
25
35
|
"node": ">=22.12.0"
|
|
26
36
|
},
|