Sync: Complete project state with all MEGA SPRINT V1-V3 features and Codex stubs
This commit is contained in:
63
ralph/scripts/Get-RalphStatus.ps1
Normal file
63
ralph/scripts/Get-RalphStatus.ps1
Normal file
@@ -0,0 +1,63 @@
|
||||
. (Join-Path $PSScriptRoot "Common.ps1")
|
||||
|
||||
$roots = Get-RalphTaskRoots
|
||||
$lockFile = Get-RalphStateFile -Name "inbox_daemon.lock.json"
|
||||
$daemonStateFile = Get-RalphStateFile -Name "inbox_daemon_state.json"
|
||||
$currentRunFile = Get-RalphStateFile -Name "current_run.json"
|
||||
$backgroundFile = Join-Path (Get-RalphRoot) "state\last_inbox_background.json"
|
||||
|
||||
function Get-ItemCount {
|
||||
param([object[]]$Items)
|
||||
return [int](($Items | Measure-Object).Count)
|
||||
}
|
||||
|
||||
$result = [ordered]@{
|
||||
inbox = [ordered]@{
|
||||
queued_taskpacks = Get-ItemCount -Items @(Get-ChildItem -LiteralPath $roots.Inbox -Directory -ErrorAction SilentlyContinue | Where-Object { Test-Path (Join-Path $_.FullName "TASK.md") })
|
||||
queued_markdown_files = Get-ItemCount -Items @(Get-ChildItem -LiteralPath $roots.Inbox -File -Filter *.md -ErrorAction SilentlyContinue)
|
||||
processing = Get-ItemCount -Items @(Get-ChildItem -LiteralPath $roots.Processing -Directory -ErrorAction SilentlyContinue)
|
||||
completed = Get-ItemCount -Items @(Get-ChildItem -LiteralPath $roots.Completed -Directory -ErrorAction SilentlyContinue)
|
||||
failed = Get-ItemCount -Items @(Get-ChildItem -LiteralPath $roots.Failed -Directory -ErrorAction SilentlyContinue)
|
||||
}
|
||||
daemon = $null
|
||||
current_run = $null
|
||||
background = $null
|
||||
}
|
||||
|
||||
if (Test-Path $lockFile) {
|
||||
try {
|
||||
$result.daemon = Read-JsonFile -Path $lockFile
|
||||
}
|
||||
catch {
|
||||
$result.daemon = @{ error = $_.Exception.Message }
|
||||
}
|
||||
}
|
||||
|
||||
if (Test-Path $daemonStateFile) {
|
||||
try {
|
||||
$result.daemon_state = Read-JsonFile -Path $daemonStateFile
|
||||
}
|
||||
catch {
|
||||
$result.daemon_state = @{ error = $_.Exception.Message }
|
||||
}
|
||||
}
|
||||
|
||||
if (Test-Path $currentRunFile) {
|
||||
try {
|
||||
$result.current_run = Read-JsonFile -Path $currentRunFile
|
||||
}
|
||||
catch {
|
||||
$result.current_run = @{ error = $_.Exception.Message }
|
||||
}
|
||||
}
|
||||
|
||||
if (Test-Path $backgroundFile) {
|
||||
try {
|
||||
$result.background = Read-JsonFile -Path $backgroundFile
|
||||
}
|
||||
catch {
|
||||
$result.background = @{ error = $_.Exception.Message }
|
||||
}
|
||||
}
|
||||
|
||||
($result | ConvertTo-Json -Depth 100)
|
||||
Reference in New Issue
Block a user