hdsp-jupyter-extension 2.0.16__py3-none-any.whl → 2.0.19__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. agent_server/langchain/agent_prompts/planner_prompt.py +19 -11
  2. agent_server/langchain/custom_middleware.py +114 -65
  3. agent_server/langchain/llm_factory.py +2 -5
  4. agent_server/langchain/prompts.py +11 -7
  5. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/build_log.json +1 -1
  6. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/package.json +2 -2
  7. hdsp_jupyter_extension-2.0.16.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.037b3c8e5d6a92b63b16.js → hdsp_jupyter_extension-2.0.19.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.96745acc14125453fba8.js +36 -2
  8. hdsp_jupyter_extension-2.0.19.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.96745acc14125453fba8.js.map +1 -0
  9. jupyter_ext/labextension/static/lib_index_js.90a86cec4c50b0798fb2.js → hdsp_jupyter_extension-2.0.19.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.1917fbaea37d75dc69b3.js +23 -13
  10. hdsp_jupyter_extension-2.0.19.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.1917fbaea37d75dc69b3.js.map +1 -0
  11. hdsp_jupyter_extension-2.0.16.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.44355425a0862dac7bd1.js → hdsp_jupyter_extension-2.0.19.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.d686ab71eb65b5ef8f15.js +3 -3
  12. jupyter_ext/labextension/static/remoteEntry.44355425a0862dac7bd1.js.map → hdsp_jupyter_extension-2.0.19.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.d686ab71eb65b5ef8f15.js.map +1 -1
  13. {hdsp_jupyter_extension-2.0.16.dist-info → hdsp_jupyter_extension-2.0.19.dist-info}/METADATA +1 -1
  14. {hdsp_jupyter_extension-2.0.16.dist-info → hdsp_jupyter_extension-2.0.19.dist-info}/RECORD +44 -44
  15. jupyter_ext/_version.py +1 -1
  16. jupyter_ext/labextension/build_log.json +1 -1
  17. jupyter_ext/labextension/package.json +2 -2
  18. jupyter_ext/labextension/static/{frontend_styles_index_js.037b3c8e5d6a92b63b16.js → frontend_styles_index_js.96745acc14125453fba8.js} +36 -2
  19. jupyter_ext/labextension/static/frontend_styles_index_js.96745acc14125453fba8.js.map +1 -0
  20. hdsp_jupyter_extension-2.0.16.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.90a86cec4c50b0798fb2.js → jupyter_ext/labextension/static/lib_index_js.1917fbaea37d75dc69b3.js +23 -13
  21. jupyter_ext/labextension/static/lib_index_js.1917fbaea37d75dc69b3.js.map +1 -0
  22. jupyter_ext/labextension/static/{remoteEntry.44355425a0862dac7bd1.js → remoteEntry.d686ab71eb65b5ef8f15.js} +3 -3
  23. hdsp_jupyter_extension-2.0.16.data/data/share/jupyter/labextensions/hdsp-agent/static/remoteEntry.44355425a0862dac7bd1.js.map → jupyter_ext/labextension/static/remoteEntry.d686ab71eb65b5ef8f15.js.map +1 -1
  24. hdsp_jupyter_extension-2.0.16.data/data/share/jupyter/labextensions/hdsp-agent/static/frontend_styles_index_js.037b3c8e5d6a92b63b16.js.map +0 -1
  25. hdsp_jupyter_extension-2.0.16.data/data/share/jupyter/labextensions/hdsp-agent/static/lib_index_js.90a86cec4c50b0798fb2.js.map +0 -1
  26. jupyter_ext/labextension/static/frontend_styles_index_js.037b3c8e5d6a92b63b16.js.map +0 -1
  27. jupyter_ext/labextension/static/lib_index_js.90a86cec4c50b0798fb2.js.map +0 -1
  28. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/etc/jupyter/jupyter_server_config.d/hdsp_jupyter_extension.json +0 -0
  29. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/install.json +0 -0
  30. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b80.c095373419d05e6f141a.js +0 -0
  31. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b80.c095373419d05e6f141a.js.map +0 -0
  32. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b81.61e75fb98ecff46cf836.js +0 -0
  33. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/node_modules_emotion_use-insertion-effect-with-fallbacks_dist_emotion-use-insertion-effect-wi-3ba6b81.61e75fb98ecff46cf836.js.map +0 -0
  34. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/style.js +0 -0
  35. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_babel_runtime_helpers_esm_extends_js-node_modules_emotion_serialize_dist-051195.e2553aab0c3963b83dd7.js +0 -0
  36. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_babel_runtime_helpers_esm_extends_js-node_modules_emotion_serialize_dist-051195.e2553aab0c3963b83dd7.js.map +0 -0
  37. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_cache_dist_emotion-cache_browser_development_esm_js.24edcc52a1c014a8a5f0.js +0 -0
  38. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_cache_dist_emotion-cache_browser_development_esm_js.24edcc52a1c014a8a5f0.js.map +0 -0
  39. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_react_dist_emotion-react_browser_development_esm_js.19ecf6babe00caff6b8a.js +0 -0
  40. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_react_dist_emotion-react_browser_development_esm_js.19ecf6babe00caff6b8a.js.map +0 -0
  41. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_styled_dist_emotion-styled_browser_development_esm_js.661fb5836f4978a7c6e1.js +0 -0
  42. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_emotion_styled_dist_emotion-styled_browser_development_esm_js.661fb5836f4978a7c6e1.js.map +0 -0
  43. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js +0 -0
  44. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_index_js.985697e0162d8d088ca2.js.map +0 -0
  45. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.1f5038488cdfd8b3a85d.js +0 -0
  46. {hdsp_jupyter_extension-2.0.16.data → hdsp_jupyter_extension-2.0.19.data}/data/share/jupyter/labextensions/hdsp-agent/static/vendors-node_modules_mui_material_utils_createSvgIcon_js.1f5038488cdfd8b3a85d.js.map +0 -0
  47. {hdsp_jupyter_extension-2.0.16.dist-info → hdsp_jupyter_extension-2.0.19.dist-info}/WHEEL +0 -0
  48. {hdsp_jupyter_extension-2.0.16.dist-info → hdsp_jupyter_extension-2.0.19.dist-info}/licenses/LICENSE +0 -0
@@ -3455,6 +3455,7 @@ SyntaxError: '(' was never closed
3455
3455
  const isWriteFile = interruptAction === 'write_file_tool';
3456
3456
  const isEditFile = interruptAction === 'edit_file_tool';
3457
3457
  const isMultiEditFile = interruptAction === 'multiedit_file_tool';
3458
+ const isMarkdownTool = interruptAction === 'markdown_tool' || interruptAction === 'markdown';
3458
3459
  const writePath = (isWriteFile
3459
3460
  && typeof msg.metadata?.interrupt?.args?.path === 'string') ? msg.metadata?.interrupt?.args?.path : '';
3460
3461
  const editPath = ((isEditFile || isMultiEditFile)
@@ -3508,6 +3509,11 @@ SyntaxError: '(' was never closed
3508
3509
  (replaceAll ? '\n\n(replace_all: true)' : '');
3509
3510
  language = 'diff';
3510
3511
  }
3512
+ else if (isMarkdownTool) {
3513
+ // markdown_tool: render as HTML, not as code block
3514
+ snippet = code || '';
3515
+ language = 'markdown';
3516
+ }
3511
3517
  else {
3512
3518
  snippet = (command || code || '(no details)');
3513
3519
  language = command ? 'bash' : 'python';
@@ -3531,7 +3537,10 @@ SyntaxError: '(' was never closed
3531
3537
  // Get tool description from args (for jupyter_cell_tool)
3532
3538
  const toolDescription = msg.metadata?.interrupt?.args?.description;
3533
3539
  const renderedHtml = (() => {
3534
- let html = (0,_utils_markdownRenderer__WEBPACK_IMPORTED_MODULE_5__.formatMarkdownToHtml)(`\n\`\`\`${language}\n${snippet}\n\`\`\``);
3540
+ // markdown_tool: render content as HTML directly, not as code block
3541
+ let html = isMarkdownTool
3542
+ ? (0,_utils_markdownRenderer__WEBPACK_IMPORTED_MODULE_5__.formatMarkdownToHtml)(snippet)
3543
+ : (0,_utils_markdownRenderer__WEBPACK_IMPORTED_MODULE_5__.formatMarkdownToHtml)(`\n\`\`\`${language}\n${snippet}\n\`\`\``);
3535
3544
  if (isWriteFile && writePath) {
3536
3545
  const safePath = escapeHtml(writePath);
3537
3546
  html = html.replace(/<span class="code-block-language">[^<]*<\/span>/, `<span class="code-block-language jp-agent-interrupt-path">${safePath}</span>`);
@@ -3542,7 +3551,16 @@ SyntaxError: '(' was never closed
3542
3551
  html = html.replace(/<span class="code-block-language">[^<]*<\/span>/, `<span class="code-block-language jp-agent-interrupt-path">${editIcon} ${safePath}</span>`);
3543
3552
  }
3544
3553
  // actionHtml이 비어있지 않을 때만 추가
3545
- const codeHtml = actionHtml ? html.replace('</div>', `${actionHtml}</div>`) : html;
3554
+ let codeHtml;
3555
+ if (isMarkdownTool) {
3556
+ // markdown_tool: wrap in container with action buttons
3557
+ codeHtml = actionHtml
3558
+ ? `<div class="jp-agent-markdown-preview">${html}${actionHtml}</div>`
3559
+ : `<div class="jp-agent-markdown-preview">${html}</div>`;
3560
+ }
3561
+ else {
3562
+ codeHtml = actionHtml ? html.replace('</div>', `${actionHtml}</div>`) : html;
3563
+ }
3546
3564
  // Build the final HTML with proper ordering:
3547
3565
  // 1. jp-agent-code-description (detailed description) - top
3548
3566
  // 2. jp-agent-interrupt-description (approval message) - right above code
@@ -4222,7 +4240,6 @@ const SettingsPanel = ({ onClose, onSave, currentConfig }) => {
4222
4240
  const [vllmEndpoint, setVllmEndpoint] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initConfig.vllm?.endpoint || 'http://localhost:8000/v1');
4223
4241
  const [vllmApiKey, setVllmApiKey] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initConfig.vllm?.apiKey || '');
4224
4242
  const [vllmModel, setVllmModel] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initConfig.vllm?.model || 'meta-llama/Llama-2-7b-chat-hf');
4225
- const [vllmUseResponsesApi, setVllmUseResponsesApi] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(Boolean(initConfig.vllm?.useResponsesApi));
4226
4243
  // OpenAI settings
4227
4244
  const [openaiApiKey, setOpenaiApiKey] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initConfig.openai?.apiKey || '');
4228
4245
  const [openaiModel, setOpenaiModel] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initConfig.openai?.model || 'gpt-4');
@@ -4265,7 +4282,6 @@ const SettingsPanel = ({ onClose, onSave, currentConfig }) => {
4265
4282
  setVllmEndpoint(currentConfig.vllm?.endpoint || 'http://localhost:8000/v1');
4266
4283
  setVllmApiKey(currentConfig.vllm?.apiKey || '');
4267
4284
  setVllmModel(currentConfig.vllm?.model || 'meta-llama/Llama-2-7b-chat-hf');
4268
- setVllmUseResponsesApi(Boolean(currentConfig.vllm?.useResponsesApi));
4269
4285
  setOpenaiApiKey(currentConfig.openai?.apiKey || '');
4270
4286
  setOpenaiModel(currentConfig.openai?.model || 'gpt-4');
4271
4287
  setSystemPrompt(currentConfig.systemPrompt || (0,_services_ApiKeyManager__WEBPACK_IMPORTED_MODULE_10__.getDefaultLLMConfig)().systemPrompt || '');
@@ -4294,8 +4310,7 @@ const SettingsPanel = ({ onClose, onSave, currentConfig }) => {
4294
4310
  vllm: {
4295
4311
  endpoint: vllmEndpoint,
4296
4312
  apiKey: vllmApiKey,
4297
- model: vllmModel,
4298
- useResponsesApi: vllmUseResponsesApi
4313
+ model: vllmModel
4299
4314
  },
4300
4315
  openai: {
4301
4316
  apiKey: openaiApiKey,
@@ -4457,12 +4472,7 @@ const SettingsPanel = ({ onClose, onSave, currentConfig }) => {
4457
4472
  react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { type: "password", className: "jp-agent-settings-input", value: vllmApiKey, onChange: (e) => setVllmApiKey(e.target.value), placeholder: "API \uD0A4\uAC00 \uD544\uC694\uD55C \uACBD\uC6B0 \uC785\uB825" })),
4458
4473
  react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "jp-agent-settings-group" },
4459
4474
  react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { className: "jp-agent-settings-label" }, "\uBAA8\uB378 \uC774\uB984"),
4460
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { type: "text", className: "jp-agent-settings-input", value: vllmModel, onChange: (e) => setVllmModel(e.target.value), placeholder: "meta-llama/Llama-2-7b-chat-hf" })),
4461
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "jp-agent-settings-group" },
4462
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { className: "jp-agent-settings-checkbox" },
4463
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { type: "checkbox", checked: vllmUseResponsesApi, onChange: (e) => setVllmUseResponsesApi(e.target.checked) }),
4464
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "Use Responses API (OpenAI \uC804\uC6A9, /chat/completions \uB300\uC2E0 /responses \uC0AC\uC6A9)")),
4465
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement("small", { style: { color: '#666', marginTop: '4px', display: 'block', marginLeft: '24px' } }, "OpenAI \uACF5\uC2DD API\uC5D0\uC11C\uB9CC \uC9C0\uC6D0\uB429\uB2C8\uB2E4. OpenRouter \uB4F1 \uC11C\uB4DC\uD30C\uD2F0\uC5D0\uC11C\uB294 \uC791\uB3D9\uD558\uC9C0 \uC54A\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.")))),
4475
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { type: "text", className: "jp-agent-settings-input", value: vllmModel, onChange: (e) => setVllmModel(e.target.value), placeholder: "meta-llama/Llama-2-7b-chat-hf" })))),
4466
4476
  provider === 'openai' && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "jp-agent-settings-provider" },
4467
4477
  react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", null, "OpenAI \uC124\uC815"),
4468
4478
  react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "jp-agent-settings-group" },
@@ -11803,4 +11813,4 @@ __webpack_require__.r(__webpack_exports__);
11803
11813
  /***/ }
11804
11814
 
11805
11815
  }]);
11806
- //# sourceMappingURL=lib_index_js.90a86cec4c50b0798fb2.js.map
11816
+ //# sourceMappingURL=lib_index_js.1917fbaea37d75dc69b3.js.map