@defai.digital/automatosx 12.8.7 → 13.1.2

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 (130) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bin.d.ts +8 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +16 -0
  5. package/dist/bin.js.map +1 -0
  6. package/dist/index.d.ts +8 -2
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +7 -74239
  9. package/dist/index.js.map +1 -0
  10. package/package.json +35 -160
  11. package/.github/assets/ax-cli.png +0 -0
  12. package/.github/assets/axlogo.png +0 -0
  13. package/CHANGELOG.md +0 -81
  14. package/README.md +0 -790
  15. package/SECURITY.md +0 -173
  16. package/dist/mcp/index.d.ts +0 -2
  17. package/dist/mcp/index.js +0 -43627
  18. package/examples/AGENTS_INFO.md +0 -187
  19. package/examples/README.md +0 -434
  20. package/examples/abilities/accessibility.md +0 -115
  21. package/examples/abilities/api-design.md +0 -168
  22. package/examples/abilities/best-practices.md +0 -102
  23. package/examples/abilities/caching-strategy.md +0 -165
  24. package/examples/abilities/ci-cd.md +0 -61
  25. package/examples/abilities/clean-code.md +0 -398
  26. package/examples/abilities/code-generation.md +0 -333
  27. package/examples/abilities/code-review.md +0 -51
  28. package/examples/abilities/component-architecture.md +0 -112
  29. package/examples/abilities/content-creation.md +0 -97
  30. package/examples/abilities/data-modeling.md +0 -171
  31. package/examples/abilities/data-validation.md +0 -50
  32. package/examples/abilities/db-modeling.md +0 -167
  33. package/examples/abilities/debugging.md +0 -52
  34. package/examples/abilities/design-patterns.md +0 -437
  35. package/examples/abilities/design-system-implementation.md +0 -126
  36. package/examples/abilities/documentation.md +0 -54
  37. package/examples/abilities/etl-pipelines.md +0 -44
  38. package/examples/abilities/feasibility-study.md +0 -20
  39. package/examples/abilities/general-assistance.md +0 -26
  40. package/examples/abilities/idea-evaluation.md +0 -21
  41. package/examples/abilities/infra-as-code.md +0 -57
  42. package/examples/abilities/job-orchestration.md +0 -44
  43. package/examples/abilities/literature-review.md +0 -19
  44. package/examples/abilities/longform-report.md +0 -25
  45. package/examples/abilities/mathematical-reasoning.md +0 -170
  46. package/examples/abilities/observability.md +0 -61
  47. package/examples/abilities/orbital-mechanics.md +0 -50
  48. package/examples/abilities/our-architecture-decisions.md +0 -180
  49. package/examples/abilities/our-code-review-checklist.md +0 -149
  50. package/examples/abilities/our-coding-standards.md +0 -369
  51. package/examples/abilities/our-project-structure.md +0 -183
  52. package/examples/abilities/performance.md +0 -89
  53. package/examples/abilities/problem-solving.md +0 -50
  54. package/examples/abilities/propulsion-systems.md +0 -50
  55. package/examples/abilities/quantum-algorithm-design.md +0 -54
  56. package/examples/abilities/quantum-error-correction.md +0 -56
  57. package/examples/abilities/quantum-frameworks-transpilation.md +0 -53
  58. package/examples/abilities/quantum-noise-modeling.md +0 -58
  59. package/examples/abilities/refactoring.md +0 -223
  60. package/examples/abilities/release-strategy.md +0 -58
  61. package/examples/abilities/secrets-policy.md +0 -61
  62. package/examples/abilities/secure-coding-review.md +0 -60
  63. package/examples/abilities/software-architecture.md +0 -394
  64. package/examples/abilities/solid-principles.md +0 -341
  65. package/examples/abilities/sql-optimization.md +0 -84
  66. package/examples/abilities/state-management.md +0 -96
  67. package/examples/abilities/task-planning.md +0 -65
  68. package/examples/abilities/technical-writing.md +0 -77
  69. package/examples/abilities/telemetry-diagnostics.md +0 -51
  70. package/examples/abilities/testing.md +0 -56
  71. package/examples/abilities/threat-modeling.md +0 -58
  72. package/examples/abilities/troubleshooting.md +0 -80
  73. package/examples/abilities/typescript-zod-validation.md +0 -830
  74. package/examples/agents/AGENTS_INTEGRATION.md +0 -99
  75. package/examples/agents/aerospace-scientist.yaml +0 -159
  76. package/examples/agents/architecture.yaml +0 -244
  77. package/examples/agents/automatosx.config.json +0 -286
  78. package/examples/agents/backend.yaml +0 -141
  79. package/examples/agents/ceo.yaml +0 -105
  80. package/examples/agents/creative-marketer.yaml +0 -173
  81. package/examples/agents/cto.yaml +0 -118
  82. package/examples/agents/data-scientist.yaml +0 -200
  83. package/examples/agents/data.yaml +0 -106
  84. package/examples/agents/design.yaml +0 -115
  85. package/examples/agents/devops.yaml +0 -124
  86. package/examples/agents/frontend.yaml +0 -171
  87. package/examples/agents/fullstack.yaml +0 -172
  88. package/examples/agents/mobile.yaml +0 -185
  89. package/examples/agents/product.yaml +0 -103
  90. package/examples/agents/quality.yaml +0 -117
  91. package/examples/agents/quantum-engineer.yaml +0 -166
  92. package/examples/agents/researcher.yaml +0 -122
  93. package/examples/agents/security.yaml +0 -115
  94. package/examples/agents/standard.yaml +0 -214
  95. package/examples/agents/writer.yaml +0 -122
  96. package/examples/providers/README.md +0 -117
  97. package/examples/providers/claude/CLAUDE_INTEGRATION.md +0 -302
  98. package/examples/providers/claude/mcp/automatosx.json +0 -244
  99. package/examples/providers/codex/CODEX_INTEGRATION.md +0 -593
  100. package/examples/providers/codex/README.md +0 -349
  101. package/examples/providers/codex/usage-examples.ts +0 -421
  102. package/examples/providers/gemini/GEMINI_INTEGRATION.md +0 -236
  103. package/examples/providers/gemini/README.md +0 -76
  104. package/examples/providers/openai-codex-example.ts +0 -421
  105. package/examples/pytorch_resnet50_training.py +0 -289
  106. package/examples/specs/automatosx-release.ax.yaml +0 -380
  107. package/examples/specs/enterprise.ax.yaml +0 -121
  108. package/examples/specs/enterprise.yaml.mustache +0 -121
  109. package/examples/specs/government.ax.yaml +0 -148
  110. package/examples/specs/government.yaml.mustache +0 -148
  111. package/examples/specs/minimal.ax.yaml +0 -21
  112. package/examples/specs/minimal.yaml.mustache +0 -21
  113. package/examples/teams/business.yaml +0 -56
  114. package/examples/teams/core.yaml +0 -60
  115. package/examples/teams/design.yaml +0 -58
  116. package/examples/teams/engineering.yaml +0 -69
  117. package/examples/teams/research.yaml +0 -56
  118. package/examples/use-cases/01-web-app-development.md +0 -374
  119. package/examples/workflows/analyst.yaml +0 -60
  120. package/examples/workflows/assistant.yaml +0 -48
  121. package/examples/workflows/basic-agent.yaml +0 -28
  122. package/examples/workflows/code-reviewer.yaml +0 -52
  123. package/examples/workflows/debugger.yaml +0 -63
  124. package/examples/workflows/designer.yaml +0 -69
  125. package/examples/workflows/developer.yaml +0 -60
  126. package/examples/workflows/fullstack-developer.yaml +0 -395
  127. package/examples/workflows/qa-specialist.yaml +0 -71
  128. package/schema/ability-metadata.json +0 -21
  129. package/schema/config.json +0 -703
  130. package/schema/spec-schema.json +0 -608
@@ -1,21 +0,0 @@
1
- Goal
2
- - Evaluate ideas against objectives, constraints, user value, and alternatives.
3
-
4
- How to do it
5
- - Clarify the objective, target users, and measurable outcomes.
6
- - Identify assumptions; label each as validated, unvalidated, or unknown.
7
- - Compare at least two alternatives; state trade‑offs.
8
- - Use simple scoring (e.g., 1–5) for value, cost, risk, and time.
9
-
10
- Do
11
- - Show a short decision table with criteria and scores.
12
- - Call out unknowns and how to validate them.
13
- - Provide an executive summary before details.
14
-
15
- Don’t
16
- - Don’t assume feasibility without evidence.
17
- - Don’t hide uncertainties; surface them with next steps.
18
-
19
- Output
20
- - A concise evaluation with assumptions, alternatives, scores, and a clear recommendation.
21
-
@@ -1,57 +0,0 @@
1
- # Infrastructure as Code
2
-
3
- Define and manage infrastructure through code using Terraform, Pulumi, or AWS CDK. Enable version control, reproducibility, and automation.
4
-
5
- ## Do's ✅
6
-
7
- ```hcl
8
- # ✅ Good: Modular Terraform
9
- resource "aws_vpc" "main" {
10
- cidr_block = var.vpc_cidr
11
- enable_dns_hostnames = true
12
-
13
- tags = {
14
- Name = "${var.project}-vpc"
15
- Environment = var.environment
16
- }
17
- }
18
-
19
- # ✅ Good: Remote state with locking
20
- terraform {
21
- backend "s3" {
22
- bucket = "terraform-state"
23
- key = "prod/terraform.tfstate"
24
- region = "us-east-1"
25
- encrypt = true
26
- dynamodb_table = "terraform-locks"
27
- }
28
- }
29
-
30
- # ✅ Good: Use modules
31
- module "vpc" {
32
- source = "terraform-aws-modules/vpc/aws"
33
- version = "~> 3.0"
34
- name = "${var.project}-vpc"
35
- cidr = var.vpc_cidr
36
- }
37
- ```
38
-
39
- ## Don'ts ❌
40
-
41
- ```hcl
42
- # ❌ Bad: Hardcoded values
43
- resource "aws_instance" "web" {
44
- ami = "ami-0c55b159cbfafe1f0" # Region-specific!
45
- subnet_id = "subnet-12345" # Hardcoded
46
- }
47
-
48
- # ❌ Bad: Manual changes
49
- # Never modify infrastructure manually in console
50
- ```
51
-
52
- ## Best Practices
53
- - Use workspaces for environments (dev/staging/prod)
54
- - Enable state locking
55
- - Always run `terraform plan` before apply
56
- - Version pin modules and providers
57
- - Implement automated testing (Terratest)
@@ -1,44 +0,0 @@
1
- # Job Orchestration
2
-
3
- Schedule and orchestrate data jobs, pipelines, and workflows. Manage dependencies, retries, and monitoring using orchestration tools.
4
-
5
- ## Do's ✅
6
-
7
- ```python
8
- # ✅ Good: Clear task dependencies (Airflow)
9
- from airflow import DAG
10
- from airflow.operators.python import PythonOperator
11
-
12
- with DAG('user_pipeline', schedule='0 2 * * *') as dag:
13
- extract = PythonOperator(task_id='extract', python_callable=extract_users)
14
- transform = PythonOperator(task_id='transform', python_callable=transform_users)
15
- load = PythonOperator(task_id='load', python_callable=load_users)
16
-
17
- extract >> transform >> load
18
-
19
- # ✅ Good: Retry configuration
20
- PythonOperator(
21
- task_id='api_call',
22
- python_callable=call_api,
23
- retries=3,
24
- retry_delay=timedelta(minutes=5),
25
- retry_exponential_backoff=True
26
- )
27
- ```
28
-
29
- ## Don'ts ❌
30
-
31
- ```python
32
- # ❌ Bad: Complex dependencies
33
- task1 >> [task2, task3, task4] >> task5 >> [task6, task7] >> task8
34
-
35
- # ✅ Good: Logical groupings
36
- extract_tasks >> transform_task >> load_tasks
37
- ```
38
-
39
- ## Best Practices
40
- - Use task groups for related operations
41
- - Implement SLA monitoring
42
- - Configure alerting for failures
43
- - Version control DAG definitions
44
- - Use dynamic task generation when appropriate
@@ -1,19 +0,0 @@
1
- Goal
2
- - Summarize prior work and credible sources; extract insights and gaps.
3
-
4
- How to do it
5
- - Collect 5–10 relevant sources; prefer primary research or official docs.
6
- - For each source: key claim, method, limits, and applicability.
7
- - Synthesize themes; identify contradictions and open questions.
8
-
9
- Do
10
- - Provide inline citations (Author/Org, Year or URL).
11
- - Group findings by theme; call out where evidence is weak.
12
-
13
- Don’t
14
- - Don’t copy long quotes; summarize.
15
- - Don’t mix citation and commentary without clearly separating them.
16
-
17
- Output
18
- - A thematic summary with citations and a short “Implications for this project” section.
19
-
@@ -1,25 +0,0 @@
1
- Goal
2
- - Produce a structured, long‑form report suitable for stakeholders.
3
-
4
- Structure
5
- - Title, Author, Date
6
- - Executive Summary (bullets)
7
- - Background & Objectives
8
- - Methodology (how you reasoned / sources)
9
- - Findings (thematic)
10
- - Analysis (logic, feasibility, risks)
11
- - Options & Recommendations (w/ criteria)
12
- - Citations & Appendices
13
-
14
- Do
15
- - Use clear headings, short paragraphs, and lists.
16
- - Call out assumptions and uncertainties.
17
- - Add tables where helpful (scores, risks, timelines).
18
-
19
- Don’t
20
- - Don’t bury the lede—start with the summary.
21
- - Don’t omit sources when making claims.
22
-
23
- Output
24
- - A polished document following the above structure; aim for clarity over length.
25
-
@@ -1,170 +0,0 @@
1
- # Mathematical Reasoning
2
-
3
- ## Description
4
- Rigorous mathematical analysis capabilities spanning linear algebra, calculus, probability, numerical methods, and symbolic reasoning to support research-grade problem solving, model verification, and algorithm design for Bob and Data Scientist while powering Quinn and Astrid workflows.
5
-
6
- ## Core Domains
7
-
8
- ### 1. Linear Algebra
9
- - Matrix algebra (addition, multiplication, transposition, trace/determinant)
10
- - Eigenvalue and eigenvector computation (power iteration, QR algorithm)
11
- - Singular value decomposition, low-rank approximations, and PCA linkage
12
- - Vector spaces, basis transformations, orthogonality, and projections
13
- - Positive definiteness checks, conditioning, and spectral properties
14
-
15
- ```python
16
- import numpy as np
17
-
18
- A = np.array([[4., 2.], [1., 3.]])
19
-
20
- eigvals, eigvecs = np.linalg.eig(A)
21
- u, s, vt = np.linalg.svd(A)
22
- proj = A @ np.linalg.solve(A.T @ A, A.T) # Least-squares projector
23
-
24
- cond_number = np.linalg.cond(A)
25
- ```
26
-
27
- ### 2. Calculus & Optimization
28
- - Differential calculus, gradients, Jacobians, Hessians
29
- - Line search, Newton, quasi-Newton, and trust-region methods
30
- - Constrained optimization (KKT conditions, Lagrange multipliers)
31
- - Convex analysis, duality, strong/weak convexity checks
32
- - Sensitivity analysis and automatic differentiation workflows
33
-
34
- ```python
35
- import sympy as sp
36
-
37
- x, y = sp.symbols('x y', real=True)
38
- f = (x - 2)**2 + (y + 1)**2 + 3 * x * y
39
- grad = [sp.diff(f, var) for var in (x, y)]
40
- hessian = sp.hessian(f, (x, y))
41
-
42
- λ = sp.symbols('λ')
43
- constraint = x + y - 1
44
- lagrangian = f + λ * constraint
45
- kkt_eqs = [sp.diff(lagrangian, var) for var in (x, y, λ)]
46
- solution = sp.solve(kkt_eqs, (x, y, λ), dict=True)
47
- ```
48
-
49
- ### 3. Probability & Statistics
50
- - Probability distributions (continuous/discrete), conjugacy, transformations
51
- - Bayesian inference (posterior computation, MAP/MCMC, credible intervals)
52
- - Frequentist inference (hypothesis tests, p-values, confidence intervals)
53
- - Estimators, bias-variance trade-offs, sufficiency, asymptotics
54
- - Information measures (entropy, KL divergence, mutual information)
55
-
56
- ```python
57
- import numpy as np
58
- from scipy import stats
59
-
60
- # Bayesian update for Beta-Binomial model
61
- prior_a, prior_b = 2, 2
62
- successes, trials = 18, 25
63
- posterior = stats.beta(prior_a + successes, prior_b + trials - successes)
64
- cred_interval = posterior.interval(0.95)
65
- evidence = stats.binom.pmf(successes, trials, prior_a / (prior_a + prior_b))
66
-
67
- # Frequentist hypothesis test
68
- sample = np.random.normal(loc=1.05, scale=0.2, size=40)
69
- t_stat, p_value = stats.ttest_1samp(sample, popmean=1.0)
70
- ```
71
-
72
- ### 4. Numerical Methods
73
- - Numerical integration (Gaussian quadrature, adaptive Simpson)
74
- - Root finding (Newton-Raphson, secant, bracketing methods)
75
- - ODE/PDE solvers (Runge-Kutta, implicit schemes, finite differences)
76
- - Stability and convergence analysis, stiffness diagnostics
77
- - Error bounds, conditioning, floating-point safeguards
78
-
79
- ```python
80
- import numpy as np
81
- from scipy.integrate import quad, solve_ivp
82
-
83
- area, err = quad(lambda t: np.exp(-t**2), 0, np.inf)
84
-
85
- def logistic(t, y, r=1.2, K=10.0):
86
- return r * y * (1 - y / K)
87
-
88
- solution = solve_ivp(logistic, (0, 20), [0.5], method="RK45", dense_output=True)
89
- stability = np.max(np.abs(np.linalg.eigvals([[0., 1.], [-4., -1.5]])))
90
- ```
91
-
92
- ### 5. Symbolic Computation
93
- - Formal manipulations (simplification, expansion, factorization)
94
- - Symbolic integration/differentiation and series expansions
95
- - Proof assistants for identity verification and equivalence checking
96
- - Symbolic linear algebra, polynomial resultants, Groebner bases
97
- - Derivation tracing with justification for documentation and review
98
-
99
- ```python
100
- import sympy as sp
101
-
102
- t = sp.symbols('t', positive=True)
103
- series = sp.series(sp.sin(t) / t, t, 0, 6)
104
- identity = sp.simplify(sp.exp(sp.I * t) * sp.exp(-sp.I * t))
105
- proof = sp.Eq(sp.diff(sp.log(sp.factorial(t)), t), sp.digamma(t + 1))
106
-
107
- M = sp.Matrix([[1, 2], [3, 4]])
108
- eigen_decomp = M.eigenvects()
109
- ```
110
-
111
- ### 6. Mathematical Verification Notebooks
112
- - Structured Python notebooks using NumPy, SciPy, and SymPy for reproducible math experiments
113
- - Cells organized by assumptions → derivations → numerical validation → sensitivity checks
114
- - Parameterized widgets or YAML configs for scenario sweeps
115
- - Automatic assertion blocks to verify algebraic vs. numeric equivalence
116
- - Version-controlled notebooks (`.ipynb` or `.py` using Jupytext) with deterministic seeds
117
-
118
- ```python
119
- # verification_notebook.py (Jupytext style)
120
- import numpy as np
121
- import sympy as sp
122
- from scipy.optimize import minimize
123
-
124
- np.random.seed(42)
125
- w = sp.symbols('w')
126
- symbolic_grad = sp.diff(sp.sin(w) + w**2, w)
127
-
128
- def objective(val):
129
- return np.sin(val) + val**2
130
-
131
- res = minimize(objective, x0=[0.5])
132
- assert abs(symbolic_grad.subs({w: res.x[0]}) - 0) < 1e-6
133
- ```
134
-
135
- ## Best Practices
136
- 1. **State Assumptions Explicitly**: Document domains, constraints, and approximation regimes before derivations.
137
- 2. **Cross-Validate**: Confirm symbolic results with numerical experiments (Monte Carlo, sampling, discretization).
138
- 3. **Track Units and Scaling**: Maintain dimensional consistency and rescale ill-conditioned problems.
139
- 4. **Monitor Conditioning**: Inspect condition numbers and step sizes to pre-empt numerical instability.
140
- 5. **Use Reproducible Seeds**: Fix random seeds and record solver tolerances for repeatability.
141
- 6. **Validate Constraints**: Ensure solution candidates satisfy KKT or feasibility conditions post-optimization.
142
-
143
- ## Common Workflows
144
- - Analytical derivation with SymPy → numerical verification via SciPy → documentation in notebook with Markdown proof steps.
145
- - Linear algebra pipelines converting symbolic expressions to callable NumPy functions for high-performance evaluation.
146
- - Bayesian model evaluation combining closed-form posteriors with MCMC diagnostics when conjugacy fails.
147
- - PDE prototyping using finite differences followed by spectral method comparison for convergence profiling.
148
-
149
- ## Anti-patterns to Avoid
150
- 1. ❌ Treating floating-point equality as exact; always compare with tolerance windows.
151
- 2. ❌ Ignoring solver diagnostics (residual norms, iteration counts, Jacobian approximations).
152
- 3. ❌ Skipping preconditioning for stiff or ill-conditioned linear systems.
153
- 4. ❌ Mixing symbolic and numeric domains without explicit casting, leading to type errors or performance hits.
154
- 5. ❌ Assuming convergence without verifying gradients/Hessians or constraint satisfaction.
155
-
156
- ## Tooling & References
157
- - **Core Libraries**: NumPy, SciPy, SymPy, JAX, PyTorch (autograd), cvxpy
158
- - **Notebooks**: JupyterLab, VS Code notebooks, Jupytext for `.py` parity
159
- - **Visualization**: Matplotlib, Plotly, seaborn for residuals and convergence plots
160
- - **Verification**: hypothesis for property-based testing, pytest for deterministic assertions
161
- - **Resources**: Matrix Cookbook, Boyd & Vandenberghe’s Convex Optimization, Numerical Recipes, Probabilistic Machine Learning (Murphy)
162
-
163
- ## Quick Checklist
164
- - [ ] Assumptions and variable domains documented
165
- - [ ] Symbolic derivations simplified and verified numerically
166
- - [ ] Conditioning and stability assessed with diagnostics
167
- - [ ] Optimization routines include gradient/Hessian validation
168
- - [ ] Probabilistic models report uncertainty (CI or posterior summaries)
169
- - [ ] Notebooks or scripts captured in version control with reproducible seeds
170
-
@@ -1,61 +0,0 @@
1
- # Observability
2
-
3
- Implement logging, metrics, and tracing to understand system behavior. Monitor health, troubleshoot issues, and optimize performance.
4
-
5
- ## Three Pillars
6
-
7
- ### 1. Logs
8
- ```javascript
9
- // ✅ Good: Structured logging
10
- logger.info('User login', {
11
- user_id: user.id,
12
- ip: req.ip,
13
- timestamp: new Date().toISOString()
14
- });
15
- ```
16
-
17
- ### 2. Metrics
18
- ```javascript
19
- // ✅ Good: Application metrics (Prometheus)
20
- const counter = new promClient.Counter({
21
- name: 'http_requests_total',
22
- help: 'Total HTTP requests',
23
- labelNames: ['method', 'route', 'status']
24
- });
25
-
26
- app.use((req, res, next) => {
27
- res.on('finish', () => {
28
- counter.inc({ method: req.method, route: req.route, status: res.statusCode });
29
- });
30
- });
31
- ```
32
-
33
- ### 3. Traces
34
- ```javascript
35
- // ✅ Good: Distributed tracing
36
- const span = tracer.startSpan('get_user');
37
- try {
38
- const user = await db.getUser(id);
39
- res.json(user);
40
- } finally {
41
- span.finish();
42
- }
43
- ```
44
-
45
- ## Don'ts ❌
46
-
47
- ```javascript
48
- // ❌ Bad: Log sensitive data
49
- logger.info('Login', { username, password }); // Never!
50
-
51
- // ❌ Bad: Unstructured logs
52
- console.log('User ' + user.id + ' logged in');
53
- ```
54
-
55
- ## Best Practices
56
- - Use log levels appropriately
57
- - Implement correlation IDs for tracing
58
- - Set up dashboards for key metrics
59
- - Configure alerts with thresholds
60
- - Use APM tools (Datadog, New Relic)
61
- - Implement SLOs and error budgets
@@ -1,50 +0,0 @@
1
- # Orbital Mechanics
2
-
3
- ## Overview
4
-
5
- Analyze orbital dynamics for spacecraft, including multi-body perturbations,
6
- station-keeping strategies, and maneuver planning that respects mission
7
- constraints, propellant budgets, and operational safety.
8
-
9
- ## Core Concepts & Best Practices
10
-
11
- - **Two-Body Foundations**: Master Keplerian elements, conic sections, Lambert
12
- targeting, and orbital perturbation theory.
13
- - **Perturbation Modeling**: Incorporate J2 oblateness, atmospheric drag, solar
14
- radiation pressure, and third-body effects in long-duration analyses.
15
- - **Maneuver Planning**: Design Hohmann, bi-elliptic, low-thrust, and
16
- plane-change maneuvers; evaluate trade-offs between time, delta-v, and risk.
17
- - **Relative Motion**: Apply Clohessy-Wiltshire and Tschauner-Hempel equations
18
- for rendezvous; integrate collision avoidance envelopes.
19
- - **Station-Keeping**: Develop periodic correction strategies for GEO, LEO
20
- constellations, and Lagrange point orbits while balancing propellant and
21
- pointing needs.
22
-
23
- ## Tools & Methodologies
24
-
25
- - **Numerical Propagators**: Use GMAT, Orekit, STK, Basilisk, or custom
26
- Runge-Kutta integrators with event detection for shadow entry or exit.
27
- - **Astrodynamics Libraries**: Leverage poliastro, NASA GMAT API, and JPL SPICE
28
- kernels for ephemeris and frame transformations.
29
- - **Optimization Routines**: Employ differential correction, sequential
30
- quadratic programming, or heuristic search for multi-burn sequences.
31
- - **Monte Carlo Analysis**: Simulate maneuver execution dispersions and
32
- environmental uncertainties to bound state covariance growth.
33
- - **Validation & Verification**: Cross-check analytical solutions with
34
- high-fidelity propagators; maintain traceability of gravitational models and
35
- reference frames.
36
-
37
- ## Example Scenario
38
-
39
- A mission team plans a lunar orbit insertion. They run Lambert targeting from
40
- translunar injection to perilune, account for Earth-Moon three-body
41
- perturbations using GMAT, and apply sequential quadratic programming to
42
- minimize delta-v while satisfying lighting constraints for optical navigation.
43
-
44
- ## Reference Resources
45
-
46
- - Vallado, *Fundamentals of Astrodynamics and Applications*, Microcosm Press
47
- - Curtis, *Orbital Mechanics for Engineering Students*, Butterworth-Heinemann
48
- - NASA GMAT User Guide: <https://gmatcentral.org>
49
- - Orekit Documentation: <https://www.orekit.org>
50
- - JPL SPICE Toolkit: <https://naif.jpl.nasa.gov/naif/toolkit.html>
@@ -1,180 +0,0 @@
1
- # Our Architecture Decisions - AutomatosX v5
2
-
3
- > Key architectural decisions and rationale for AutomatosX
4
-
5
- ## ADR-001: SQLite FTS5 Over Milvus
6
-
7
- **Decision:** Use SQLite with FTS5 full-text search instead of Milvus
8
-
9
- **Rationale:**
10
-
11
- - v3.1 used Milvus (340MB bundle, complex setup)
12
- - SQLite FTS5 offers < 1ms search performance
13
- - Simple setup, no external services
14
-
15
- **Impact:**
16
-
17
- - ✅ Bundle: 340MB → 381KB (99.9% reduction)
18
- - ✅ Fast text search (45ms → <1ms, 45x faster)
19
- - ✅ No embedding costs (removed vector search)
20
- - ❌ Limited to single-node (acceptable for CLI tool)
21
-
22
- ## ADR-002: ESM Over CommonJS
23
-
24
- **Decision:** Use ES Modules (ESM) for entire codebase
25
-
26
- **Rationale:**
27
-
28
- - Node.js 24+ has first-class ESM support
29
- - Better tree-shaking and bundle optimization
30
- - Modern standards compliance
31
-
32
- **Impact:**
33
-
34
- - ✅ Better tree-shaking (smaller bundle)
35
- - ✅ Future-proof
36
- - ⚠️ Requires `.js` in imports (minor inconvenience)
37
-
38
- ## ADR-003: TypeScript Strict Mode
39
-
40
- **Decision:** Enable all strict TypeScript checks
41
-
42
- **Configuration:**
43
-
44
- ```json
45
- {
46
- "strict": true,
47
- "noUncheckedIndexedAccess": true,
48
- "noImplicitOverride": true,
49
- "noFallthroughCasesInSwitch": true
50
- }
51
- ```
52
-
53
- **Impact:**
54
-
55
- - ✅ Fewer runtime errors
56
- - ✅ Better IDE support
57
- - ✅ Safer refactoring
58
- - ⚠️ More initial development time (worth it)
59
-
60
- ## ADR-004: Three-Layer Security Model
61
-
62
- **Decision:** Implement path validation, workspace access control, and input sanitization
63
-
64
- **Layers:**
65
-
66
- 1. **Path Resolution:** All file access through PathResolver
67
- 2. **Workspace Access Control:** Shared workspaces with path validation
68
- 3. **Input Validation:** Sanitize all user inputs
69
-
70
- **Impact:**
71
-
72
- - ✅ Prevents path traversal attacks
73
- - ✅ Controlled workspace access with validation
74
- - ✅ No privilege escalation
75
- - ⚠️ Slightly more complex file operations
76
-
77
- ## ADR-005: Profile + Abilities = Agent
78
-
79
- **Decision:** Separate agent profile (YAML) from abilities (Markdown)
80
-
81
- **Structure:**
82
-
83
- - Profile: YAML with metadata, systemPrompt, abilities references
84
- - Abilities: Markdown files with domain knowledge
85
- - Agent = Profile + loaded Abilities
86
-
87
- **Impact:**
88
-
89
- - ✅ Reusable abilities across agents
90
- - ✅ Easy to add new knowledge
91
- - ✅ Clear separation of concerns
92
- - ✅ User can customize both independently
93
-
94
- ## ADR-006: Team-Based Configuration
95
-
96
- **Decision:** Agents inherit configuration from their team
97
-
98
- **4 Built-in Teams:**
99
-
100
- - **core:** Quality assurance (primary: claude)
101
- - **engineering:** Software development (primary: codex)
102
- - **business:** Product & planning (primary: gemini)
103
- - **design:** Design & content (primary: gemini)
104
-
105
- **Impact:**
106
-
107
- - ✅ No configuration duplication
108
- - ✅ Change provider for entire team at once
109
- - ✅ Shared abilities automatically included
110
- - ✅ Centralized orchestration settings
111
-
112
- ## ADR-007: Lazy Loading for Performance
113
-
114
- **Decision:** Defer expensive imports until needed
115
-
116
- **Implementation:**
117
-
118
- - Heavy modules use dynamic import: `await import('module')`
119
- - Core modules use static imports
120
- - LazyLoader utility for caching
121
-
122
- **Impact:**
123
-
124
- - ✅ Faster CLI startup (~200ms)
125
- - ✅ Smaller initial memory footprint
126
- - ✅ Pay for what you use
127
-
128
- ## ADR-008: Vitest Over Jest
129
-
130
- **Decision:** Use Vitest as testing framework
131
-
132
- **Rationale:**
133
-
134
- - Modern test runner with native ESM support
135
- - Fast execution with watch mode
136
- - Compatible with Vite ecosystem
137
-
138
- **Impact:**
139
-
140
- - ✅ Fast test execution (1,149 tests in ~10s)
141
- - ✅ Native ESM support (no transform)
142
- - ✅ Great developer experience
143
-
144
- ## ADR-009: TTL Cache for Profiles
145
-
146
- **Decision:** Cache loaded profiles with 5-minute TTL
147
-
148
- **Configuration:**
149
-
150
- - TTLCache with 5-minute TTL
151
- - Max 20 entries (LRU eviction)
152
- - Cleanup every 60 seconds
153
-
154
- **Impact:**
155
-
156
- - ✅ Faster repeated executions
157
- - ✅ Reduced file I/O
158
- - ✅ Automatic cache invalidation
159
- - ⚠️ 5-minute delay for profile updates (acceptable)
160
-
161
- ## ADR-010: Provider Router Pattern
162
-
163
- **Decision:** Use Router to abstract provider selection
164
-
165
- **Features:**
166
-
167
- - Router manages provider selection
168
- - Retry with exponential backoff
169
- - Fallback to alternative providers
170
-
171
- **Impact:**
172
-
173
- - ✅ Provider flexibility
174
- - ✅ Resilience to provider failures
175
- - ✅ Easy to add new providers
176
-
177
- ---
178
-
179
- **Last Updated:** 2025-10-10
180
- **For:** AutomatosX v5.0+