mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 14:46:55 +01:00
v24: flyt roster-agenter, .mcp.json og find-altool.ps1 fra repo til maskine
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>
This commit is contained in:
parent
34d9d765d0
commit
11b4e2ec99
5 changed files with 591 additions and 402 deletions
78
custom/setup/machine/find-altool.ps1
Normal file
78
custom/setup/machine/find-altool.ps1
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# 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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue