@cremini/skillpack 1.0.8 → 1.0.9-im.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.
@@ -3,11 +3,20 @@
3
3
  "version": "1.0.0",
4
4
  "type": "module",
5
5
  "scripts": {
6
- "start": "node index.js"
6
+ "build": "tsc",
7
+ "start": "node dist/index.js"
7
8
  },
8
9
  "dependencies": {
9
10
  "express": "^5.1.0",
10
11
  "@mariozechner/pi-coding-agent": "^0.57.1",
11
- "ws": "^8.19.0"
12
+ "ws": "^8.19.0",
13
+ "node-telegram-bot-api": "^0.66.0"
14
+ },
15
+ "devDependencies": {
16
+ "@types/express": "^5.0.0",
17
+ "@types/ws": "^8.18.0",
18
+ "@types/node": "^22.0.0",
19
+ "@types/node-telegram-bot-api": "^0.64.0",
20
+ "typescript": "^5.9.3"
12
21
  }
13
22
  }
package/runtime/start.bat CHANGED
@@ -11,5 +11,5 @@ if not exist "server\node_modules" (
11
11
  echo.
12
12
  )
13
13
 
14
- rem Start the server (port detection and browser launch are handled by server\index.js)
15
- cd server && node index.js
14
+ rem Start the server (port detection and browser launch are handled by server\dist\index.js)
15
+ cd server && node dist/index.js
package/runtime/start.sh CHANGED
@@ -19,4 +19,4 @@ if [ ! -d "server/node_modules" ]; then
19
19
  fi
20
20
 
21
21
  # Start the server
22
- cd server && node index.js
22
+ cd server && node dist/index.js
@@ -181,7 +181,7 @@ function renderMarkdown(mdText, { renderEmbeddedMarkdown = true } = {}) {
181
181
  return escapeHtml(mdText);
182
182
  }
183
183
 
184
- const html = marked.parse(mdText);
184
+ const html = ensureLinksOpenInNewTab(marked.parse(mdText));
185
185
  if (!renderEmbeddedMarkdown) {
186
186
  return html;
187
187
  }
@@ -189,6 +189,18 @@ function renderMarkdown(mdText, { renderEmbeddedMarkdown = true } = {}) {
189
189
  return renderEmbeddedMarkdownBlocks(html);
190
190
  }
191
191
 
192
+ function ensureLinksOpenInNewTab(html) {
193
+ const template = document.createElement("template");
194
+ template.innerHTML = html;
195
+
196
+ template.content.querySelectorAll("a[href]").forEach((linkEl) => {
197
+ linkEl.setAttribute("target", "_blank");
198
+ linkEl.setAttribute("rel", "noopener noreferrer");
199
+ });
200
+
201
+ return template.innerHTML;
202
+ }
203
+
192
204
  function renderEmbeddedMarkdownBlocks(html) {
193
205
  const template = document.createElement("template");
194
206
  template.innerHTML = html;
@@ -365,7 +377,9 @@ function handleAgentEvent(event) {
365
377
 
366
378
  let inputHtml = "";
367
379
  if (typeof marked !== "undefined") {
368
- inputHtml = marked.parse("```json\n" + safeInput + "\n```");
380
+ inputHtml = ensureLinksOpenInNewTab(
381
+ marked.parse("```json\n" + safeInput + "\n```"),
382
+ );
369
383
  } else {
370
384
  inputHtml = escapeHtml(safeInput);
371
385
  }
@@ -438,7 +452,7 @@ function handleAgentEvent(event) {
438
452
  : "```json\n" + safeResult + "\n```";
439
453
 
440
454
  if (typeof marked !== "undefined") {
441
- resultEl.innerHTML = marked.parse(mdText);
455
+ resultEl.innerHTML = ensureLinksOpenInNewTab(marked.parse(mdText));
442
456
  } else {
443
457
  resultEl.textContent = safeResult;
444
458
  }