From 287d84163f1e2ccb7e7027bfbae6691f05e25c1f Mon Sep 17 00:00:00 2001 From: Ajax Davis Date: Wed, 7 Jan 2026 15:40:50 +1000 Subject: [PATCH] fix: resolve type errors and lint issues for CI - Fix SkeletonWithRelations type mapping in batch-processor.ts by explicitly mapping only the required fields - Escape unescaped entities in tutorial pages (apostrophes and quotes) --- .../web/src/app/docs/tutorials/agents/page.tsx | 18 ++++++++++-------- apps/web/src/app/docs/tutorials/mcp/page.tsx | 17 ++++++++++------- .../src/enrichment/batch-processor.ts | 7 +++++-- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/apps/web/src/app/docs/tutorials/agents/page.tsx b/apps/web/src/app/docs/tutorials/agents/page.tsx index a278bcd..7f07cd4 100644 --- a/apps/web/src/app/docs/tutorials/agents/page.tsx +++ b/apps/web/src/app/docs/tutorials/agents/page.tsx @@ -25,7 +25,7 @@ const slides: Slide[] = [

AI Agents are custom assistants that can use tools from TPMJS to accomplish tasks. In just - 5 steps, you'll have your own agent up and running. + 5 steps, you'll have your own agent up and running.

@@ -123,9 +123,11 @@ const slides: Slide[] = [ 2
-

Click "Add Key" for your provider

+

+ Click "Add Key" for your provider +

- Each provider card has an "Add Key" button + Each provider card has an "Add Key" button

@@ -163,7 +165,7 @@ const slides: Slide[] = [

Name

- e.g., "Code Helper", "Data Analyst" + e.g., "Code Helper", "Data Analyst"

@@ -184,7 +186,7 @@ const slides: Slide[] = [

System Prompt

- Define your agent's personality & capabilities + Define your agent's personality & capabilities

@@ -272,8 +274,8 @@ const slides: Slide[] = [ content: (

- Click the "Chat" button on your agent to start a conversation. Your agent will use its - tools to help you. + Click the "Chat" button on your agent to start a conversation. Your agent will + use its tools to help you.

@@ -336,7 +338,7 @@ const slides: Slide[] = [
-

What's Next?

+

What's Next?

Use the API

diff --git a/apps/web/src/app/docs/tutorials/mcp/page.tsx b/apps/web/src/app/docs/tutorials/mcp/page.tsx index 4f8ac7f..06e26d8 100644 --- a/apps/web/src/app/docs/tutorials/mcp/page.tsx +++ b/apps/web/src/app/docs/tutorials/mcp/page.tsx @@ -74,7 +74,7 @@ const slides: Slide[] = [
  • - Can't take real actions + Can't take real actions
  • @@ -145,7 +145,8 @@ const slides: Slide[] = [

    Create New Collection

    - Give it a name like "My Development Tools" or "Research Assistant" + Give it a name like "My Development Tools" or "Research + Assistant"

  • @@ -205,7 +206,7 @@ const slides: Slide[] = [ tpmjs.com/mcp/c/{'{collection-uid}'} - — you can also find it on your collection's detail page. + — you can also find it on your collection's detail page.

    @@ -309,7 +310,8 @@ const slides: Slide[] = [

    Any MCP client works! The URL format is the same regardless of which - client you're using. Check your client's documentation for config file location. + client you're using. Check your client's documentation for config file + location.

    @@ -339,7 +341,8 @@ const slides: Slide[] = [

    - Run this Python code and show me the output: print("Hello from TPMJS!") + Run this Python code and show me the output: print("Hello from + TPMJS!")

    @@ -348,7 +351,7 @@ const slides: Slide[] = [

    Using tool: unsandbox-executeCodeAsync

    -

    Here's the result:

    +

    Here's the result:

                         Hello from TPMJS!
                       
    @@ -382,7 +385,7 @@ const slides: Slide[] = [ content: (

    - That's it! Your AI assistant can now use any tool in your TPMJS collection. + That's it! Your AI assistant can now use any tool in your TPMJS collection.

    diff --git a/packages/tool-ideas/src/enrichment/batch-processor.ts b/packages/tool-ideas/src/enrichment/batch-processor.ts index 1bc64a6..372574b 100644 --- a/packages/tool-ideas/src/enrichment/batch-processor.ts +++ b/packages/tool-ideas/src/enrichment/batch-processor.ts @@ -259,13 +259,16 @@ export class BatchProcessor { : new Map(); return skeletons - .map((s) => { + .map((s): SkeletonWithRelations | null => { const category = categoryMap.get(s.categoryId); const verb = verbMap.get(s.verbId); const object = objectMap.get(s.objectId); if (!category || !verb || !object) return null; return { - ...s, + id: s.id, + hash: s.hash, + rawName: s.rawName, + compatibilityScore: s.compatibilityScore, category, verb, object,