aidevops 3.39.52 → 3.39.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/VERSION +1 -1
- package/aidevops.sh +77 -10
- package/package.json +1 -1
- package/setup.sh +4 -1
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ token efficiency, and quality control built in.**
|
|
|
25
25
|
[](https://qlty.sh/gh/marcusquinn/projects/aidevops)
|
|
26
26
|
[](https://app.codacy.com/gh/marcusquinn/aidevops/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
|
|
27
27
|
[](https://opensource.org/licenses/MIT)
|
|
28
|
-
[](https://github.com/marcusquinn/aidevops/releases)
|
|
29
29
|
[](https://www.npmjs.com/package/aidevops)
|
|
30
30
|
[](https://github.com/marcusquinn/homebrew-tap)
|
|
31
31
|
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.39.
|
|
1
|
+
3.39.54
|
package/aidevops.sh
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# AI DevOps Framework CLI
|
|
6
6
|
# Usage: aidevops <command> [options]
|
|
7
7
|
#
|
|
8
|
-
# Version: 3.39.
|
|
8
|
+
# Version: 3.39.54
|
|
9
9
|
|
|
10
10
|
set -euo pipefail
|
|
11
11
|
|
|
@@ -1231,7 +1231,7 @@ _help_commands() {
|
|
|
1231
1231
|
echo " lint [cmd] Audit/configure native repo lint, format, typecheck, and hooks"
|
|
1232
1232
|
echo " design <cmd> DESIGN.md detection, scaffolding, and brand guideline exports"
|
|
1233
1233
|
echo " keywords <cmd> context/keywords.md search targets: scaffold, brief, sync, track, budget"
|
|
1234
|
-
echo " cleanup
|
|
1234
|
+
echo " cleanup [cmd] Storage report/reclaim (all --apply) and branch cleanup"
|
|
1235
1235
|
echo " model-accounts-pool OAuth account pool (list/check/diagnose/add/rotate/reset-cooldowns)"
|
|
1236
1236
|
echo " gpt56-context <cmd> Manage the 300K GPT-5.6 OpenCode context cap (enable/disable/status)"
|
|
1237
1237
|
echo " gpt6-context <cmd> Manage the default ~240K GPT-6 Sol/Luna compaction cap (enable/disable/status)"
|
|
@@ -1760,8 +1760,55 @@ _main_check_version() {
|
|
|
1760
1760
|
return 0
|
|
1761
1761
|
}
|
|
1762
1762
|
|
|
1763
|
+
# Verify advisory metadata only during an explicit full security assessment.
|
|
1764
|
+
_security_check_advisories() {
|
|
1765
|
+
local advisories_dir="$HOME/.aidevops/advisories"
|
|
1766
|
+
local dismissed_file="$advisories_dir/dismissed.txt"
|
|
1767
|
+
local tls_helper="tls-trust-helper.sh"
|
|
1768
|
+
local advisory_file adv_id line check status
|
|
1769
|
+
local -a check_args=()
|
|
1770
|
+
for advisory_file in "$advisories_dir"/*.advisory; do
|
|
1771
|
+
[[ -f "$advisory_file" ]] || continue
|
|
1772
|
+
adv_id="${advisory_file##*/}"
|
|
1773
|
+
adv_id="${adv_id%.advisory}"
|
|
1774
|
+
if [[ -f "$dismissed_file" ]] && grep -qxF -- "$adv_id" "$dismissed_file"; then
|
|
1775
|
+
continue
|
|
1776
|
+
fi
|
|
1777
|
+
check=""
|
|
1778
|
+
while IFS= read -r line || [[ -n "$line" ]]; do
|
|
1779
|
+
if [[ "$line" == '# check: '* ]]; then
|
|
1780
|
+
check="${line#\# check: }"
|
|
1781
|
+
break
|
|
1782
|
+
fi
|
|
1783
|
+
done <"$advisory_file"
|
|
1784
|
+
[[ -n "$check" ]] || continue
|
|
1785
|
+
# Split literal whitespace only: no evaluation, expansion or shell quoting.
|
|
1786
|
+
IFS=$' \t' read -r -a check_args <<<"$check"
|
|
1787
|
+
# Allow only the checking subcommand, never help/probe-script (also exit 0).
|
|
1788
|
+
if [[ "${check_args[0]:-}" != tls-trust || "${check_args[1]:-}" != local ]] ||
|
|
1789
|
+
{ [[ ${#check_args[@]} -ne 2 ]] &&
|
|
1790
|
+
! { [[ ${#check_args[@]} -eq 4 && "${check_args[2]:-}" == --canary && "${check_args[3]:-}" != -* ]]; }; }; then
|
|
1791
|
+
printf 'Keeping %s: unsupported advisory check\n' "$adv_id"
|
|
1792
|
+
continue
|
|
1793
|
+
fi
|
|
1794
|
+
status=0
|
|
1795
|
+
_dispatch_helper "$tls_helper" "$tls_helper" "${check_args[@]:1}" || status=$?
|
|
1796
|
+
if [[ "$status" -eq 0 ]]; then
|
|
1797
|
+
if printf '%s\n' "$adv_id" >>"$dismissed_file"; then
|
|
1798
|
+
printf 'auto-dismissed %s: verified clean\n' "$adv_id"
|
|
1799
|
+
else
|
|
1800
|
+
printf 'Keeping %s: could not record dismissal\n' "$adv_id" >&2
|
|
1801
|
+
fi
|
|
1802
|
+
else
|
|
1803
|
+
printf 'Keeping %s: advisory check exited %s\n' "$adv_id" "$status"
|
|
1804
|
+
fi
|
|
1805
|
+
done
|
|
1806
|
+
return 0
|
|
1807
|
+
}
|
|
1808
|
+
|
|
1763
1809
|
# Route 'aidevops security [subcommand]' to appropriate helpers
|
|
1764
1810
|
_cmd_security() {
|
|
1811
|
+
local tls_helper="tls-trust-helper.sh"
|
|
1765
1812
|
case "${1:-}" in
|
|
1766
1813
|
"")
|
|
1767
1814
|
# No args: run ALL security checks (posture + hygiene + advisories)
|
|
@@ -1774,6 +1821,9 @@ _cmd_security() {
|
|
|
1774
1821
|
_dispatch_helper "secret-hygiene-helper.sh" "secret-hygiene-helper.sh" scan || true
|
|
1775
1822
|
echo ""
|
|
1776
1823
|
_dispatch_helper "supply-chain-advisory-helper.sh" "supply-chain-advisory-helper.sh" scan || true
|
|
1824
|
+
echo ""
|
|
1825
|
+
_dispatch_helper "$tls_helper" "$tls_helper" local || true
|
|
1826
|
+
_security_check_advisories
|
|
1777
1827
|
;;
|
|
1778
1828
|
scan | scan-secrets | scan-pth | scan-deps)
|
|
1779
1829
|
_dispatch_helper "secret-hygiene-helper.sh" "secret-hygiene-helper.sh" "$@"
|
|
@@ -1808,6 +1858,11 @@ _cmd_security() {
|
|
|
1808
1858
|
shift || true
|
|
1809
1859
|
_dispatch_helper "supply-chain-advisory-helper.sh" "supply-chain-advisory-helper.sh" "${@:-scan}"
|
|
1810
1860
|
;;
|
|
1861
|
+
tls-trust)
|
|
1862
|
+
shift || true
|
|
1863
|
+
_dispatch_helper "$tls_helper" "$tls_helper" "${@:-local}"
|
|
1864
|
+
return $?
|
|
1865
|
+
;;
|
|
1811
1866
|
*)
|
|
1812
1867
|
_dispatch_helper "security-posture-helper.sh" "security-posture-helper.sh" "$@"
|
|
1813
1868
|
;;
|
|
@@ -2100,7 +2155,8 @@ _main_dispatch() {
|
|
|
2100
2155
|
}
|
|
2101
2156
|
|
|
2102
2157
|
_main_dispatch_cleanup() {
|
|
2103
|
-
local cleanup_subcommand="${1:-
|
|
2158
|
+
local cleanup_subcommand="${1:-report}"
|
|
2159
|
+
local storage_helper="storage-cleanup-helper.sh"
|
|
2104
2160
|
case "$cleanup_subcommand" in
|
|
2105
2161
|
branches | remote-branches)
|
|
2106
2162
|
shift || true
|
|
@@ -2110,22 +2166,33 @@ _main_dispatch_cleanup() {
|
|
|
2110
2166
|
shift || true
|
|
2111
2167
|
_dispatch_helper "local-branch-cleanup-helper.sh" "local-branch-cleanup-helper.sh" "$@"
|
|
2112
2168
|
;;
|
|
2113
|
-
|
|
2114
|
-
|
|
2169
|
+
report | status | all | tmp | worktrees | opencode | observability)
|
|
2170
|
+
# GH#35245: storage stores route to their existing owning cleaners.
|
|
2171
|
+
_dispatch_helper "$storage_helper" "$storage_helper" "$@"
|
|
2172
|
+
return $?
|
|
2173
|
+
;;
|
|
2174
|
+
help | --help | -h)
|
|
2175
|
+
echo "Usage: aidevops cleanup [report|all|<store>|<branch-cmd>] [options]"
|
|
2176
|
+
echo ""
|
|
2177
|
+
echo "Storage (dry-run unless --apply):"
|
|
2178
|
+
echo " (no args), report Sizes of aidevops-owned stores and their cleaners"
|
|
2179
|
+
echo " all [--apply] Preview or clean every store"
|
|
2180
|
+
echo " tmp|worktrees|opencode|observability [--apply] One store"
|
|
2181
|
+
echo " Daily automatic run: routine r922 Storage hygiene (installed by setup)"
|
|
2115
2182
|
echo ""
|
|
2116
|
-
echo "
|
|
2117
|
-
echo " branches Audit stale remote branches
|
|
2183
|
+
echo "Branches (dry-run unless --apply):"
|
|
2184
|
+
echo " branches Audit stale remote branches"
|
|
2118
2185
|
echo " remote-branches Alias for branches"
|
|
2119
|
-
echo " local-branches Audit merged local branches
|
|
2186
|
+
echo " local-branches Audit merged local branches"
|
|
2120
2187
|
echo ""
|
|
2121
|
-
echo "
|
|
2188
|
+
echo "Branch options:"
|
|
2122
2189
|
echo " --repo PATH Repository path (default: current directory)"
|
|
2123
2190
|
echo " --remote NAME Remote to audit (default: origin)"
|
|
2124
2191
|
echo " --branch NAME Single local branch (local-branches only)"
|
|
2125
2192
|
echo " --apply Delete safe candidates"
|
|
2126
2193
|
echo ""
|
|
2127
2194
|
;;
|
|
2128
|
-
*) print_error "Unknown cleanup subcommand: $cleanup_subcommand (try
|
|
2195
|
+
*) print_error "Unknown cleanup subcommand: $cleanup_subcommand (try report|all|tmp|worktrees|opencode|observability|branches|local-branches|help)"; return 1 ;;
|
|
2129
2196
|
esac
|
|
2130
2197
|
return 0
|
|
2131
2198
|
}
|
package/package.json
CHANGED
package/setup.sh
CHANGED
|
@@ -17,7 +17,7 @@ fi
|
|
|
17
17
|
# AI Assistant Server Access Framework Setup Script
|
|
18
18
|
# Helps developers set up the framework for their infrastructure
|
|
19
19
|
#
|
|
20
|
-
# Version: 3.39.
|
|
20
|
+
# Version: 3.39.54
|
|
21
21
|
#
|
|
22
22
|
# Quick Install:
|
|
23
23
|
# npm install -g aidevops && aidevops update (recommended)
|
|
@@ -1902,6 +1902,8 @@ _setup_noninteractive_schedulers() {
|
|
|
1902
1902
|
# opencode DB archive/VACUUM (GH#25136). Dedicated low-priority scheduler;
|
|
1903
1903
|
# not tied to pulse preflight cadence.
|
|
1904
1904
|
_time_step "setup_opencode_db_archive" setup_opencode_db_archive
|
|
1905
|
+
# r922 storage hygiene (GH#35245). Daily owning-cleaner run, Pulse-independent.
|
|
1906
|
+
_time_step "setup_storage_hygiene" setup_storage_hygiene
|
|
1905
1907
|
# Migrate cron entries to systemd after schedulers are installed (GH#17695 Finding D)
|
|
1906
1908
|
_time_step "migrate_cron_to_systemd" migrate_cron_to_systemd
|
|
1907
1909
|
_time_step "$SETUP_STAGE_TABBY" setup_tabby
|
|
@@ -1958,6 +1960,7 @@ _setup_post_setup_steps() {
|
|
|
1958
1960
|
setup_oauth_token_refresh
|
|
1959
1961
|
setup_opencode_db_maintenance
|
|
1960
1962
|
setup_opencode_db_archive
|
|
1963
|
+
setup_storage_hygiene
|
|
1961
1964
|
# Migrate cron entries to systemd after schedulers are installed (GH#17695 Finding D)
|
|
1962
1965
|
migrate_cron_to_systemd
|
|
1963
1966
|
setup_tabby
|