opencode-swarm 6.48.0 → 6.50.0

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.
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Framework Detection Utilities
3
+ *
4
+ * Provides deterministic multi-signal framework detection.
5
+ * Laravel detection uses at least 2 of 3 signals to avoid false positives.
6
+ */
7
+ /**
8
+ * Detection signals for Laravel framework identification.
9
+ * Each signal independently indicates a Laravel project.
10
+ */
11
+ export interface LaravelDetectionSignals {
12
+ /** artisan file present in project root (no extension) */
13
+ hasArtisanFile: boolean;
14
+ /** laravel/framework present in composer.json require dependencies */
15
+ hasLaravelFrameworkDep: boolean;
16
+ /** config/app.php present (Laravel config directory structure) */
17
+ hasConfigApp: boolean;
18
+ }
19
+ /**
20
+ * Resolved command overlay for a detected Laravel project.
21
+ * All fields are set to best-available commands for CI-quality use.
22
+ */
23
+ export interface LaravelCommandOverlay {
24
+ /** Primary test command. Always php artisan test for Laravel. */
25
+ testCommand: string;
26
+ /** Lint/format command. Pint if detected, PHP-CS-Fixer otherwise, null if neither. */
27
+ lintCommand: string | null;
28
+ /** Static analysis command. PHPStan if phpstan config is present, null otherwise. */
29
+ staticAnalysisCommand: string | null;
30
+ /** Dependency audit command (always composer audit --locked --format=json for Laravel). */
31
+ auditCommand: string;
32
+ /** Whether --parallel flag is supported (Pest parallel testing via artisan). */
33
+ supportsParallel: boolean;
34
+ }
35
+ /**
36
+ * Detect whether a directory is a Laravel project.
37
+ * Uses multi-signal detection: at least 2 of 3 signals must be present
38
+ * to minimize false positives against generic Composer PHP projects.
39
+ *
40
+ * Signals checked:
41
+ * 1. artisan file in project root (strong signal — only Laravel projects have this)
42
+ * 2. laravel/framework in composer.json require section
43
+ * 3. config/app.php file (Laravel directory structure)
44
+ *
45
+ * @param directory - Absolute path to the project root
46
+ * @returns true if project is a Laravel project, false otherwise
47
+ */
48
+ export declare function detectLaravelProject(directory: string): boolean;
49
+ /**
50
+ * Get individual Laravel detection signals for a directory.
51
+ * Exposed for testing and diagnostic purposes.
52
+ *
53
+ * @param directory - Absolute path to the project root
54
+ * @returns LaravelDetectionSignals with each signal's boolean state
55
+ */
56
+ export declare function getLaravelSignals(directory: string): LaravelDetectionSignals;
57
+ /**
58
+ * Get the Laravel command overlay for a project directory.
59
+ * Returns null if the directory is not a Laravel project.
60
+ *
61
+ * Command selection logic:
62
+ * - testCommand: always 'php artisan test' (wraps both PHPUnit and Pest)
63
+ * - lintCommand: 'vendor/bin/pint --test' if pint.json present,
64
+ * 'vendor/bin/php-cs-fixer fix --dry-run --diff' if .php-cs-fixer.php present,
65
+ * null otherwise
66
+ * - staticAnalysisCommand: 'vendor/bin/phpstan analyse' if phpstan.neon or phpstan.neon.dist present,
67
+ * null otherwise
68
+ * - auditCommand: always 'composer audit --locked --format=json'
69
+ * - supportsParallel: true (php artisan test --parallel is supported)
70
+ *
71
+ * @param directory - Absolute path to the project root
72
+ * @returns LaravelCommandOverlay if Laravel detected, null if not a Laravel project
73
+ */
74
+ export declare function getLaravelCommandOverlay(directory: string): LaravelCommandOverlay | null;
@@ -55,6 +55,7 @@ export interface LanguageProfile {
55
55
  prompts: {
56
56
  coderConstraints: string[];
57
57
  reviewerChecklist: string[];
58
+ testConstraints?: string[];
58
59
  };
59
60
  }
60
61
  export declare class LanguageRegistry {
@@ -1,4 +1,6 @@
1
1
  import { type Plan, type TaskStatus } from '../config/plan-schema';
2
+ /** Reset the startup ledger check flag. For testing only. */
3
+ export declare function resetStartupLedgerCheck(): void;
2
4
  /**
3
5
  * Load plan.json ONLY without auto-migration from plan.md.
4
6
  * Returns null if plan.json doesn't exist or is invalid.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "6.48.0",
3
+ "version": "6.50.0",
4
4
  "description": "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",