mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 22:56:55 +01:00
19 af 21 agent-filer, de to standard MCP-servere (al, businesscentral) og find-altool.ps1 var byte-identiske kopier duplikeret ind i hvert af de 14 CURABIS-repos. De flyttes til ~/.claude/ (én kopi pr. maskine i stedet for pr. repo), gated paa den eksisterende .github/.agents/bcquality.agent.md- markoer. Kun bcquality.agent.md og feynman.agent.md forbliver repo-lokale (Mode C support-brugere har intet ~/.claude/ at laese globalt indhold fra), og CLAUDE.md's machine-self-heal-blok forbliver repo-lokal (den installerer selve den globale fil, kan ikke ligge i den). find-altool.ps1 finder nu repo-roden ved cwd-walkup til en .AL-Go-markoer i stedet for sin egen placering, og MCP-registrering sker idempotent via `claude mcp add --scope user`. Mode B faar en engangs-migreringssektion for de 14 eksisterende v23-repos; .mcp.json-oprydningen kraever eksplicit bekraeftelse af at alle udviklere paa repoet har migreret foerst, da filen er delt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
78 lines
3.1 KiB
PowerShell
78 lines
3.1 KiB
PowerShell
# find-altool.ps1 - CURABIS-artefakt (deployes fra BCQuality, ikke genereret
|
|
# af AL-extensionen - der findes ingen VS Code-kommando til dette).
|
|
#
|
|
# v24: MASKIN-GLOBALT artefakt (%USERPROFILE%\.claude\find-altool.ps1),
|
|
# deployes af sync-bcquality-knowledge.ps1 - ligger IKKE i noget repo.
|
|
#
|
|
# Finder altool.exe dynamisk i den NYESTE installerede AL Language extension
|
|
# og videresender alle argumenter. Dette opslag er 100% maskinlokalt og har
|
|
# intet med repoet at goere.
|
|
#
|
|
# Specialargument 'auto': erstattes med alle AL-projektmapper fundet under
|
|
# det AKTUELLE repos apps-mappe (.apps/Apps/apps - mapper med app.json).
|
|
# Repo-roden findes IKKE via scriptets egen placering ($PSScriptRoot - det
|
|
# giver ~/.claude, hvilket er forkert nu scriptet er globalt) men ved at
|
|
# walke op fra cwd og lede efter en <appsName>\.AL-Go-markoer. Sessioner
|
|
# binder cwd til apps-workspace-mappen (en app-undermappe, ikke repo-roden),
|
|
# saa opslaget skal fungere uanset hvor i repoet cwd peger:
|
|
# ... find-altool.ps1 launchmcpserver auto --transport stdio
|
|
#
|
|
# BEMAERK: altool launchmcpserver KRAEVER projektstier - uden doer serveren.
|
|
|
|
$ext = Get-ChildItem "$env:USERPROFILE\.vscode\extensions" -Filter "ms-dynamics-smb.al-*" -Directory |
|
|
Sort-Object { [version]($_.Name -replace '^ms-dynamics-smb\.al-', '' -replace '-.*$', '') } -Descending |
|
|
Select-Object -First 1
|
|
|
|
if (-not $ext) {
|
|
Write-Error "AL Language extension ikke fundet. Installer ms-dynamics-smb.al fra VS Code Marketplace."
|
|
exit 1
|
|
}
|
|
|
|
$altool = Join-Path $ext.FullName "bin\win32\altool.exe"
|
|
|
|
if (-not (Test-Path $altool)) {
|
|
Write-Error "altool.exe ikke fundet i $($ext.FullName) - opdater AL-extensionen (MCP-serveren kraever en nyere version)."
|
|
exit 1
|
|
}
|
|
|
|
if ($args -contains 'auto') {
|
|
# Walk op fra cwd og led efter <appsName>\.AL-Go som repo-rod-markoer.
|
|
# Case-insensitive filsystem (Windows) betyder .apps/Apps/apps kan matche
|
|
# den samme fysiske mappe flere gange - stop ved foerste match i stedet
|
|
# for at tjekke alle tre ubetinget (undgaar dubletter i projektlisten).
|
|
$d = (Get-Location).Path
|
|
$repo = $null
|
|
$appsFolderName = $null
|
|
while ($d.Length -gt 3) {
|
|
foreach ($appsName in @('.apps', 'Apps', 'apps')) {
|
|
if (Test-Path (Join-Path $d "$appsName\.AL-Go")) {
|
|
$repo = $d
|
|
$appsFolderName = $appsName
|
|
break
|
|
}
|
|
}
|
|
if ($repo) { break }
|
|
$d = Split-Path $d
|
|
}
|
|
if (-not $repo) {
|
|
Write-Error "Ingen AL-Go repo-rod (<.apps|Apps|apps>\.AL-Go) fundet ved opadgaaende soegning fra $((Get-Location).Path)."
|
|
exit 1
|
|
}
|
|
|
|
$appsDir = Join-Path $repo $appsFolderName
|
|
$projects = Get-ChildItem $appsDir -Directory |
|
|
Where-Object { Test-Path (Join-Path $_.FullName 'app.json') } |
|
|
ForEach-Object { $_.FullName }
|
|
|
|
if (-not $projects) {
|
|
Write-Error "Ingen AL-projektmapper (med app.json) fundet under $appsDir."
|
|
exit 1
|
|
}
|
|
$resolved = @()
|
|
foreach ($a in $args) {
|
|
if ($a -eq 'auto') { $resolved += $projects } else { $resolved += $a }
|
|
}
|
|
& $altool @resolved
|
|
} else {
|
|
& $altool @args
|
|
}
|