From b2d0daaa4b852201faeaa2f902863ebdad2a83cf Mon Sep 17 00:00:00 2001 From: Oliver-Liu99 Date: Mon, 8 Jun 2026 14:59:35 -0700 Subject: [PATCH] Align Packs/ source PAI/Tools -> PAI/TOOLS to match shipped v5 runtime dir The v5 runtime tools directory is canonically PAI/TOOLS/ (all-caps): the installer alias, settings.json, CLAUDE.md, and the entire shipped Releases/v5.0.0 tree use PAI/TOOLS/, and the v5 graders / Telos chat route already import from PAI/TOOLS/. However 10 source files under Packs/ still referenced the legacy lowercase PAI/Tools/ from v4. The release builder silently rewrites Tools->TOOLS on packaging, so shipped v5 is fine, but the source tree diverges: on case-sensitive filesystems (Linux, WSL2) these Packs paths fail to resolve when run directly, while case-insensitive macOS masks it. This is the source-side half of issue #1324. Scope: only the literal 'PAI/Tools/' runtime-tools token is rewritten; skill-level /Tools/, DOCUMENTATION/Tools/, and the repo-root Tools/ dir are intentionally left untouched. No directory rename / git mv needed (physical dir is already TOOLS). Verified case-exact via git ls-files against Releases/v5.0.0. Refs #1324 Co-Authored-By: Claude Opus 4.8 (1M context) --- Packs/Media/src/Art/Workflows/Essay.md | 4 ++-- Packs/Media/src/Art/Workflows/Mermaid.md | 2 +- Packs/Media/src/Art/Workflows/Visualize.md | 2 +- Packs/Telos/src/DashboardTemplate/App/api/chat/route.ts | 2 +- Packs/Utilities/src/Evals/Graders/ModelBased/LLMRubric.ts | 2 +- .../src/Evals/Graders/ModelBased/NaturalLanguageAssert.ts | 2 +- .../src/Evals/Graders/ModelBased/PairwiseComparison.ts | 2 +- Packs/Utilities/src/Fabric/SKILL.md | 2 +- Packs/Utilities/src/PAIUpgrade/Workflows/AlgorithmUpgrade.md | 2 +- Packs/Utilities/src/PAIUpgrade/Workflows/Upgrade.md | 4 ++-- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Packs/Media/src/Art/Workflows/Essay.md b/Packs/Media/src/Art/Workflows/Essay.md index 7ab050c3f..057e7b9c6 100755 --- a/Packs/Media/src/Art/Workflows/Essay.md +++ b/Packs/Media/src/Art/Workflows/Essay.md @@ -513,10 +513,10 @@ For non-blog images that only need transparency, or to remove backgrounds after ```bash # Use the Images Skill for background removal -bun ~/.claude/PAI/Tools/RemoveBg.ts /path/to/output.png +bun ~/.claude/PAI/TOOLS/RemoveBg.ts /path/to/output.png # Or batch process multiple images -bun ~/.claude/PAI/Tools/RemoveBg.ts image1.png image2.png image3.png +bun ~/.claude/PAI/TOOLS/RemoveBg.ts image1.png image2.png image3.png ``` **See:** `~/.claude/skills/Images/Workflows/BackgroundRemoval.md` for full documentation. diff --git a/Packs/Media/src/Art/Workflows/Mermaid.md b/Packs/Media/src/Art/Workflows/Mermaid.md index a7b0fcb0b..1bcd26170 100755 --- a/Packs/Media/src/Art/Workflows/Mermaid.md +++ b/Packs/Media/src/Art/Workflows/Mermaid.md @@ -669,7 +669,7 @@ GOING INTO BLOG/WEBSITE: Remove background for transparency **For blog/website use** — use the **Images skill** for background removal: ```bash -bun ~/.claude/PAI/Tools/RemoveBg.ts /path/to/mermaid-diagram.png +bun ~/.claude/PAI/TOOLS/RemoveBg.ts /path/to/mermaid-diagram.png ``` **See:** `~/.claude/skills/Images/Workflows/BackgroundRemoval.md` for full documentation. diff --git a/Packs/Media/src/Art/Workflows/Visualize.md b/Packs/Media/src/Art/Workflows/Visualize.md index 94a87b84d..621f67b60 100755 --- a/Packs/Media/src/Art/Workflows/Visualize.md +++ b/Packs/Media/src/Art/Workflows/Visualize.md @@ -98,7 +98,7 @@ TRANSPARENT: Use Images skill to remove background for overlay use **For transparent background** — use the **Images skill** for background removal: ```bash -bun ~/.claude/PAI/Tools/RemoveBg.ts /path/to/visualization.png +bun ~/.claude/PAI/TOOLS/RemoveBg.ts /path/to/visualization.png ``` **See:** `~/.claude/skills/Images/Workflows/BackgroundRemoval.md` for full documentation. diff --git a/Packs/Telos/src/DashboardTemplate/App/api/chat/route.ts b/Packs/Telos/src/DashboardTemplate/App/api/chat/route.ts index b0cee6770..3bea4b4d6 100755 --- a/Packs/Telos/src/DashboardTemplate/App/api/chat/route.ts +++ b/Packs/Telos/src/DashboardTemplate/App/api/chat/route.ts @@ -30,7 +30,7 @@ When answering questions: // Use Inference tool instead of direct API const inferenceResult = await new Promise<{ success: boolean; output?: string; error?: string }>((resolve) => { const homeDir = process.env.HOME || '' - const proc = spawn('bun', ['run', `${homeDir}/.claude/PAI/Tools/Inference.ts`, '--level', 'fast', systemPrompt, message], { + const proc = spawn('bun', ['run', `${homeDir}/.claude/PAI/TOOLS/Inference.ts`, '--level', 'fast', systemPrompt, message], { stdio: ['ignore', 'pipe', 'pipe'], }) diff --git a/Packs/Utilities/src/Evals/Graders/ModelBased/LLMRubric.ts b/Packs/Utilities/src/Evals/Graders/ModelBased/LLMRubric.ts index 727f155c9..3c8d863c4 100755 --- a/Packs/Utilities/src/Evals/Graders/ModelBased/LLMRubric.ts +++ b/Packs/Utilities/src/Evals/Graders/ModelBased/LLMRubric.ts @@ -5,7 +5,7 @@ import { BaseGrader, registerGrader, type GraderContext } from '../Base.ts'; import type { GraderConfig, GraderResult, LLMRubricParams } from '../../Types/index.ts'; -import { inference, type InferenceLevel } from '../../../PAI/Tools/Inference'; +import { inference, type InferenceLevel } from '../../../PAI/TOOLS/Inference'; import { readFileSync, existsSync } from 'fs'; export class LLMRubricGrader extends BaseGrader { diff --git a/Packs/Utilities/src/Evals/Graders/ModelBased/NaturalLanguageAssert.ts b/Packs/Utilities/src/Evals/Graders/ModelBased/NaturalLanguageAssert.ts index dba7cd343..21984876a 100755 --- a/Packs/Utilities/src/Evals/Graders/ModelBased/NaturalLanguageAssert.ts +++ b/Packs/Utilities/src/Evals/Graders/ModelBased/NaturalLanguageAssert.ts @@ -5,7 +5,7 @@ import { BaseGrader, registerGrader, type GraderContext } from '../Base.ts'; import type { GraderConfig, GraderResult, NaturalLanguageAssertParams } from '../../Types/index.ts'; -import { inference, type InferenceLevel } from '../../../PAI/Tools/Inference'; +import { inference, type InferenceLevel } from '../../../PAI/TOOLS/Inference'; export class NaturalLanguageAssertGrader extends BaseGrader { type = 'natural_language_assert' as const; diff --git a/Packs/Utilities/src/Evals/Graders/ModelBased/PairwiseComparison.ts b/Packs/Utilities/src/Evals/Graders/ModelBased/PairwiseComparison.ts index 8f75aa9aa..d62947c45 100755 --- a/Packs/Utilities/src/Evals/Graders/ModelBased/PairwiseComparison.ts +++ b/Packs/Utilities/src/Evals/Graders/ModelBased/PairwiseComparison.ts @@ -5,7 +5,7 @@ import { BaseGrader, registerGrader, type GraderContext } from '../Base.ts'; import type { GraderConfig, GraderResult, PairwiseComparisonParams } from '../../Types/index.ts'; -import { inference, type InferenceLevel } from '../../../PAI/Tools/Inference'; +import { inference, type InferenceLevel } from '../../../PAI/TOOLS/Inference'; import { readFileSync, existsSync } from 'fs'; export class PairwiseComparisonGrader extends BaseGrader { diff --git a/Packs/Utilities/src/Fabric/SKILL.md b/Packs/Utilities/src/Fabric/SKILL.md index b1c8e66e8..f2c4c93b2 100644 --- a/Packs/Utilities/src/Fabric/SKILL.md +++ b/Packs/Utilities/src/Fabric/SKILL.md @@ -179,7 +179,7 @@ Each pattern's `system.md` contains the full prompt that defines: ## Changelog ### 2026-01-18 -- Initial skill creation (extracted from PAI/Tools/fabric) +- Initial skill creation (extracted from PAI/TOOLS/fabric) - Native pattern execution (no CLI dependency for most patterns) - Two workflows: ExecutePattern, UpdatePatterns - 240+ patterns organized by category diff --git a/Packs/Utilities/src/PAIUpgrade/Workflows/AlgorithmUpgrade.md b/Packs/Utilities/src/PAIUpgrade/Workflows/AlgorithmUpgrade.md index d6707d4b0..93ead870b 100644 --- a/Packs/Utilities/src/PAIUpgrade/Workflows/AlgorithmUpgrade.md +++ b/Packs/Utilities/src/PAIUpgrade/Workflows/AlgorithmUpgrade.md @@ -225,7 +225,7 @@ Ideas that require fundamental changes, not just spec edits: - [ ] Review proposals - [ ] Apply approved changes to Algorithm spec - [ ] Bump version if warranted -- [ ] Run `bun PAI/Tools/RebuildPAI.ts` to rebuild +- [ ] Run `bun PAI/TOOLS/RebuildPAI.ts` to rebuild ``` --- diff --git a/Packs/Utilities/src/PAIUpgrade/Workflows/Upgrade.md b/Packs/Utilities/src/PAIUpgrade/Workflows/Upgrade.md index b74613774..fb50061eb 100644 --- a/Packs/Utilities/src/PAIUpgrade/Workflows/Upgrade.md +++ b/Packs/Utilities/src/PAIUpgrade/Workflows/Upgrade.md @@ -143,7 +143,7 @@ Agent 2 - YouTube Channels: "Check configured YouTube channels for new content and EXTRACT GRANULAR TECHNIQUES: 1. Load channel config: - bun ~/.claude/PAI/Tools/LoadSkillConfig.ts ../youtube-channels.json + bun ~/.claude/PAI/TOOLS/LoadSkillConfig.ts ../youtube-channels.json 2. For each channel, check recent videos: yt-dlp --flat-playlist --dump-json 'https://www.youtube.com/@channelhandle/videos' 2>/dev/null | head -5 @@ -152,7 +152,7 @@ Agent 2 - YouTube Channels: cat ../State/youtube-videos.json 4. For NEW videos, extract transcripts: - bun ~/.claude/PAI/Tools/GetTranscript.ts '' + bun ~/.claude/PAI/TOOLS/GetTranscript.ts '' 5. CRITICAL - For each transcript, extract SPECIFIC TECHNIQUES: - Look for code patterns, configurations, command examples