aidevops 3.21.12 → 3.22.1

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.
Files changed (34) hide show
  1. package/README.md +1 -1
  2. package/VERSION +1 -1
  3. package/aidevops.sh +3 -2
  4. package/bun.lock +573 -0
  5. package/package.json +12 -1
  6. package/packages/gui-api/package.json +9 -0
  7. package/packages/gui-api/src/app.ts +49 -0
  8. package/packages/gui-api/src/file-adapter.ts +207 -0
  9. package/packages/gui-api/src/server.ts +12 -0
  10. package/packages/gui-api/src/status-adapter-utils.ts +108 -0
  11. package/packages/gui-api/src/status-adapter.ts +484 -0
  12. package/packages/gui-api/src/status-local-repos.ts +239 -0
  13. package/packages/gui-desktop/package.json +6 -0
  14. package/packages/gui-desktop/scripts/install-macos-app.sh +1039 -0
  15. package/packages/gui-shared/package.json +9 -0
  16. package/packages/gui-shared/src/contracts.ts +341 -0
  17. package/packages/gui-shared/src/fixtures.ts +250 -0
  18. package/packages/gui-shared/src/index.ts +2 -0
  19. package/packages/gui-web/index.html +24 -0
  20. package/packages/gui-web/package.json +25 -0
  21. package/packages/gui-web/src/App.tsx +269 -0
  22. package/packages/gui-web/src/AppNavigation.tsx +399 -0
  23. package/packages/gui-web/src/AppWorkspace.tsx +114 -0
  24. package/packages/gui-web/src/FileExplorerSurface.tsx +153 -0
  25. package/packages/gui-web/src/InventorySurfaces.tsx +117 -0
  26. package/packages/gui-web/src/PathActions.tsx +17 -0
  27. package/packages/gui-web/src/StatusSurfaces.tsx +396 -0
  28. package/packages/gui-web/src/app-model.ts +546 -0
  29. package/packages/gui-web/src/dashboard.ts +79 -0
  30. package/packages/gui-web/src/main.tsx +24 -0
  31. package/packages/gui-web/src/status-client.ts +93 -0
  32. package/packages/gui-web/src/styles.css +1540 -0
  33. package/packages/gui-web/vite.config.ts +14 -0
  34. package/setup.sh +78 -3
@@ -0,0 +1,14 @@
1
+ import react from "@vitejs/plugin-react";
2
+ import { defineConfig } from "vite";
3
+
4
+ export default defineConfig({
5
+ plugins: [react()],
6
+ root: "packages/gui-web",
7
+ server: {
8
+ host: "127.0.0.1",
9
+ port: 5173,
10
+ proxy: {
11
+ "/api": "http://127.0.0.1:8787",
12
+ },
13
+ },
14
+ });
package/setup.sh CHANGED
@@ -12,7 +12,7 @@ shopt -s inherit_errexit 2>/dev/null || true
12
12
  # AI Assistant Server Access Framework Setup Script
13
13
  # Helps developers set up the framework for their infrastructure
14
14
  #
15
- # Version: 3.21.12
15
+ # Version: 3.22.1
16
16
  #
17
17
  # Quick Install:
18
18
  # npm install -g aidevops && aidevops update (recommended)
@@ -37,6 +37,8 @@ SETUP_STAGE_AGENTS="deploy_aidevops_agents"
37
37
  SETUP_STAGE_HOOKS="setup_safety_hooks"
38
38
  SETUP_STAGE_TABBY="setup_tabby"
39
39
  SETUP_STAGE_PULSE="setup_supervisor_pulse"
40
+ SETUP_STAGE_GUI_DESKTOP="setup_gui_desktop_app"
41
+ SETUP_GUI_APP_NAME="aidevops.app"
40
42
  SETUP_OS_DARWIN="Darwin"
41
43
  # Python compatibility floor used by setup checks and skill/tool gating.
42
44
  # Keep in sync with .agents/scripts/setup/modules/plugins.sh requirements.
@@ -390,8 +392,9 @@ parse_args() {
390
392
  echo "Use --clean after removing or renaming agents to sync deletions."
391
393
  echo "Use --interactive to control each step individually."
392
394
  echo "Use --non-interactive for CI/CD or AI agent shells (no stdin required)."
393
- echo "Use --stage for targeted updates: opencode, agents, hooks, tabby, pulse, full."
394
- echo "Stage aliases: ${SETUP_STAGE_OPENCODE}, ${SETUP_STAGE_AGENTS}, ${SETUP_STAGE_HOOKS}, ${SETUP_STAGE_TABBY}, ${SETUP_STAGE_PULSE}."
395
+ echo "Use --stage for targeted updates: opencode, agents, hooks, tabby, pulse, gui-desktop, full."
396
+ echo "Stage aliases: ${SETUP_STAGE_OPENCODE}, ${SETUP_STAGE_AGENTS}, ${SETUP_STAGE_HOOKS}, ${SETUP_STAGE_TABBY}, ${SETUP_STAGE_PULSE}, ${SETUP_STAGE_GUI_DESKTOP}."
397
+ echo "Install ${SETUP_GUI_APP_NAME} explicitly with --stage gui-desktop or AIDEVOPS_GUI_DESKTOP_INSTALL=true."
395
398
  echo "Use --update to check for tool updates after setup completes."
396
399
  exit 0
397
400
  ;;
@@ -415,6 +418,7 @@ _setup_print_stage_help() {
415
418
  printf ' hooks | %s Install safety hooks only\n' "$SETUP_STAGE_HOOKS"
416
419
  printf ' tabby | %s Sync Tabby profiles only\n' "$SETUP_STAGE_TABBY"
417
420
  printf ' pulse | %s Install/refresh pulse scheduler only\n' "$SETUP_STAGE_PULSE"
421
+ printf ' gui-desktop | gui | app | %s Install native macOS %s only\n' "$SETUP_STAGE_GUI_DESKTOP" "$SETUP_GUI_APP_NAME"
418
422
  printf '%s\n' " full Run the default full setup path"
419
423
  return 0
420
424
  }
@@ -427,6 +431,7 @@ _setup_canonical_stage() {
427
431
  hooks | "$SETUP_STAGE_HOOKS") printf '%s' "$SETUP_STAGE_HOOKS" ;;
428
432
  tabby | "$SETUP_STAGE_TABBY") printf '%s' "$SETUP_STAGE_TABBY" ;;
429
433
  pulse | "$SETUP_STAGE_PULSE") printf '%s' "$SETUP_STAGE_PULSE" ;;
434
+ gui-desktop | gui | app | "$SETUP_STAGE_GUI_DESKTOP") printf '%s' "$SETUP_STAGE_GUI_DESKTOP" ;;
430
435
  full) printf '%s' "full" ;;
431
436
  *) return 1 ;;
432
437
  esac
@@ -443,6 +448,71 @@ _setup_validate_stage() {
443
448
  return 1
444
449
  }
445
450
 
451
+ _setup_gui_desktop_install_opted_in() {
452
+ local flag="${AIDEVOPS_GUI_DESKTOP_INSTALL:-false}"
453
+ case "$flag" in
454
+ 1 | true | TRUE | yes | YES | on | ON)
455
+ return 0
456
+ ;;
457
+ esac
458
+ return 1
459
+ }
460
+
461
+ setup_gui_desktop_app() {
462
+ local installer="${INSTALL_DIR}/packages/gui-desktop/scripts/install-macos-app.sh"
463
+ local os=""
464
+ local rc=0
465
+
466
+ os="$(uname -s)"
467
+ if [[ "$os" != "$SETUP_OS_DARWIN" ]]; then
468
+ print_skip "$SETUP_GUI_APP_NAME" "macOS only" "Run this stage from macOS when the desktop app is needed."
469
+ setup_track_skipped "$SETUP_GUI_APP_NAME" "macOS only"
470
+ return 0
471
+ fi
472
+
473
+ if [[ ! -f "$installer" ]]; then
474
+ print_warning "${SETUP_GUI_APP_NAME} installer not found at: $installer"
475
+ setup_track_deferred "$SETUP_GUI_APP_NAME" "Update aidevops, then run: aidevops setup --scope gui-desktop"
476
+ return 0
477
+ fi
478
+
479
+ bash "$installer" || rc=$?
480
+ if [[ "$rc" -eq 0 ]]; then
481
+ setup_track_configured "$SETUP_GUI_APP_NAME"
482
+ return 0
483
+ fi
484
+
485
+ print_warning "${SETUP_GUI_APP_NAME} install skipped after installer exit $rc (non-fatal)"
486
+ setup_track_deferred "$SETUP_GUI_APP_NAME" "Install requirements, then run: aidevops setup --scope gui-desktop"
487
+ return 0
488
+ }
489
+
490
+ _setup_offer_gui_desktop_app() {
491
+ local answer=""
492
+
493
+ if _setup_gui_desktop_install_opted_in; then
494
+ setup_gui_desktop_app
495
+ return 0
496
+ fi
497
+
498
+ if [[ "$INTERACTIVE_MODE" == "true" ]]; then
499
+ echo ""
500
+ echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
501
+ echo -e "${BLUE}Optional preview:${NC} Install native macOS ${SETUP_GUI_APP_NAME}"
502
+ echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
503
+ setup_prompt answer "Install ${SETUP_GUI_APP_NAME} now? [y/N]: " "N"
504
+ case "$answer" in
505
+ y | Y | yes | YES)
506
+ setup_gui_desktop_app
507
+ return 0
508
+ ;;
509
+ esac
510
+ fi
511
+
512
+ setup_track_skipped "$SETUP_GUI_APP_NAME" "opt-in: run aidevops setup --scope gui-desktop or set AIDEVOPS_GUI_DESKTOP_INSTALL=true"
513
+ return 0
514
+ }
515
+
446
516
  # Initialize ~/.config/aidevops/settings.json with documented defaults.
447
517
  # Idempotent — merges missing keys without overwriting existing values.
448
518
  init_settings_json() {
@@ -1125,6 +1195,9 @@ _setup_run_scoped_stage() {
1125
1195
  "$SETUP_STAGE_PULSE")
1126
1196
  _time_step "$SETUP_STAGE_PULSE" setup_supervisor_pulse "$os"
1127
1197
  ;;
1198
+ "$SETUP_STAGE_GUI_DESKTOP")
1199
+ _time_step "$SETUP_STAGE_GUI_DESKTOP" setup_gui_desktop_app
1200
+ ;;
1128
1201
  *)
1129
1202
  print_error "Unsupported canonical setup stage: $stage"
1130
1203
  return 1
@@ -1243,6 +1316,7 @@ _setup_run_non_interactive() {
1243
1316
  _time_step "setup_knowledge_planes" setup_knowledge_planes
1244
1317
  # Provision cases planes for repos where cases != "off" (idempotent).
1245
1318
  _time_step "setup_cases_planes" setup_cases_planes
1319
+ _time_step "setup_gui_desktop_app_opt_in" _setup_offer_gui_desktop_app
1246
1320
  return 0
1247
1321
  }
1248
1322
 
@@ -1341,6 +1415,7 @@ _setup_run_interactive() {
1341
1415
  confirm_step "Security scan imported skills" && scan_imported_skills
1342
1416
  confirm_step "Inject agents reference into AI configs" && inject_agents_reference
1343
1417
  _setup_run_interactive_runtime_tools
1418
+ _setup_offer_gui_desktop_app
1344
1419
  # Run AFTER CLI installs so config dirs may exist for agent config
1345
1420
  confirm_step "Update OpenCode configuration" && update_opencode_config
1346
1421
  # Run AFTER OpenCode config so Claude Code gets equivalent setup