apex-ai 0.1.0__tar.gz
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.
- apex_ai-0.1.0/.github/FUNDING.yml +6 -0
- apex_ai-0.1.0/.github/ISSUE_TEMPLATE/bug_report.yml +89 -0
- apex_ai-0.1.0/.github/ISSUE_TEMPLATE/config.yml +11 -0
- apex_ai-0.1.0/.github/ISSUE_TEMPLATE/feature_request.yml +72 -0
- apex_ai-0.1.0/.github/dependabot.yml +112 -0
- apex_ai-0.1.0/.github/labeler.yml +53 -0
- apex_ai-0.1.0/.github/release-drafter.yml +129 -0
- apex_ai-0.1.0/.github/workflows/audit.yml +60 -0
- apex_ai-0.1.0/.github/workflows/ci.yml +137 -0
- apex_ai-0.1.0/.github/workflows/commitlint.yml +72 -0
- apex_ai-0.1.0/.github/workflows/coverage.yml +83 -0
- apex_ai-0.1.0/.github/workflows/dependabot-auto-merge.yml +33 -0
- apex_ai-0.1.0/.github/workflows/dependency-review.yml +21 -0
- apex_ai-0.1.0/.github/workflows/deploy-website.yml +60 -0
- apex_ai-0.1.0/.github/workflows/docker-ci.yml +78 -0
- apex_ai-0.1.0/.github/workflows/docs.yml +82 -0
- apex_ai-0.1.0/.github/workflows/install.yml +119 -0
- apex_ai-0.1.0/.github/workflows/labeler.yml +20 -0
- apex_ai-0.1.0/.github/workflows/link-check.yml +70 -0
- apex_ai-0.1.0/.github/workflows/markdown-lint.yml +47 -0
- apex_ai-0.1.0/.github/workflows/npm.yml +40 -0
- apex_ai-0.1.0/.github/workflows/opencode.yml +68 -0
- apex_ai-0.1.0/.github/workflows/performance.yml +135 -0
- apex_ai-0.1.0/.github/workflows/pr-checks.yml +130 -0
- apex_ai-0.1.0/.github/workflows/release-drafter.yml +23 -0
- apex_ai-0.1.0/.github/workflows/release.yml +351 -0
- apex_ai-0.1.0/.github/workflows/security.yml +122 -0
- apex_ai-0.1.0/.github/workflows/spellcheck.yml +30 -0
- apex_ai-0.1.0/.github/workflows/stale.yml +75 -0
- apex_ai-0.1.0/.github/workflows/tui.yml +96 -0
- apex_ai-0.1.0/.github/workflows/website.yml +85 -0
- apex_ai-0.1.0/.github/workflows/welcome.yml +38 -0
- apex_ai-0.1.0/LICENSE +74 -0
- apex_ai-0.1.0/MANIFEST.in +11 -0
- apex_ai-0.1.0/PKG-INFO +700 -0
- apex_ai-0.1.0/README.md +655 -0
- apex_ai-0.1.0/apex/__init__.py +214 -0
- apex_ai-0.1.0/apex/__main__.py +6 -0
- apex_ai-0.1.0/apex/advanced.py +251 -0
- apex_ai-0.1.0/apex/agent.py +896 -0
- apex_ai-0.1.0/apex/agents.py +750 -0
- apex_ai-0.1.0/apex/api_key.py +294 -0
- apex_ai-0.1.0/apex/apply_patch.py +1125 -0
- apex_ai-0.1.0/apex/auto_commit.py +239 -0
- apex_ai-0.1.0/apex/billing.py +346 -0
- apex_ai-0.1.0/apex/codegen.py +388 -0
- apex_ai-0.1.0/apex/commands.py +152 -0
- apex_ai-0.1.0/apex/commands_manager.py +272 -0
- apex_ai-0.1.0/apex/config.py +635 -0
- apex_ai-0.1.0/apex/config_tools.py +225 -0
- apex_ai-0.1.0/apex/config_v2.py +905 -0
- apex_ai-0.1.0/apex/context.py +206 -0
- apex_ai-0.1.0/apex/context_budget.py +254 -0
- apex_ai-0.1.0/apex/context_manager.py +169 -0
- apex_ai-0.1.0/apex/context_tracking.py +171 -0
- apex_ai-0.1.0/apex/cost_local.py +277 -0
- apex_ai-0.1.0/apex/extras.py +291 -0
- apex_ai-0.1.0/apex/formatter.py +322 -0
- apex_ai-0.1.0/apex/gateway/__init__.py +13 -0
- apex_ai-0.1.0/apex/gateway/auth.py +105 -0
- apex_ai-0.1.0/apex/gateway/config.py +112 -0
- apex_ai-0.1.0/apex/gateway/router.py +156 -0
- apex_ai-0.1.0/apex/gateway/server.py +138 -0
- apex_ai-0.1.0/apex/git_undo.py +172 -0
- apex_ai-0.1.0/apex/github_integration.py +234 -0
- apex_ai-0.1.0/apex/http_api.py +1878 -0
- apex_ai-0.1.0/apex/i18n.py +145 -0
- apex_ai-0.1.0/apex/install_manager.py +426 -0
- apex_ai-0.1.0/apex/lsp.py +289 -0
- apex_ai-0.1.0/apex/lsp_diagnostics.py +286 -0
- apex_ai-0.1.0/apex/main.py +2767 -0
- apex_ai-0.1.0/apex/mcp.py +362 -0
- apex_ai-0.1.0/apex/mcp_server.py +404 -0
- apex_ai-0.1.0/apex/memory.py +70 -0
- apex_ai-0.1.0/apex/mentions.py +164 -0
- apex_ai-0.1.0/apex/permission.py +204 -0
- apex_ai-0.1.0/apex/plugins.py +318 -0
- apex_ai-0.1.0/apex/project.py +309 -0
- apex_ai-0.1.0/apex/py.typed +0 -0
- apex_ai-0.1.0/apex/rate_limiter.py +239 -0
- apex_ai-0.1.0/apex/repomap.py +911 -0
- apex_ai-0.1.0/apex/rlm.py +251 -0
- apex_ai-0.1.0/apex/sandbox.py +200 -0
- apex_ai-0.1.0/apex/server.py +291 -0
- apex_ai-0.1.0/apex/session.py +300 -0
- apex_ai-0.1.0/apex/share.py +238 -0
- apex_ai-0.1.0/apex/shell_security.py +316 -0
- apex_ai-0.1.0/apex/skills.py +248 -0
- apex_ai-0.1.0/apex/skills_system.py +360 -0
- apex_ai-0.1.0/apex/slash.py +421 -0
- apex_ai-0.1.0/apex/snapshot.py +237 -0
- apex_ai-0.1.0/apex/structured_message.py +132 -0
- apex_ai-0.1.0/apex/task_queue.py +179 -0
- apex_ai-0.1.0/apex/telemetry.py +218 -0
- apex_ai-0.1.0/apex/theme_manager.py +894 -0
- apex_ai-0.1.0/apex/tools.py +3290 -0
- apex_ai-0.1.0/apex/ui.py +428 -0
- apex_ai-0.1.0/apex/vision.py +181 -0
- apex_ai-0.1.0/apex/watcher.py +356 -0
- apex_ai-0.1.0/apex/workspace.py +219 -0
- apex_ai-0.1.0/apex/workspace_rollback.py +190 -0
- apex_ai-0.1.0/apex_ai.egg-info/PKG-INFO +700 -0
- apex_ai-0.1.0/apex_ai.egg-info/SOURCES.txt +224 -0
- apex_ai-0.1.0/apex_ai.egg-info/dependency_links.txt +1 -0
- apex_ai-0.1.0/apex_ai.egg-info/entry_points.txt +2 -0
- apex_ai-0.1.0/apex_ai.egg-info/requires.txt +20 -0
- apex_ai-0.1.0/apex_ai.egg-info/top_level.txt +1 -0
- apex_ai-0.1.0/docs/adr/ADR-0001-rust-shell-security-lookahead.md +23 -0
- apex_ai-0.1.0/docs/adr/ADR-0002-rust-permission-init.md +21 -0
- apex_ai-0.1.0/docs/adr/ADR-0003-rust-rate-limiter-storage.md +21 -0
- apex_ai-0.1.0/docs/adr/ADR-0004-rust-distribution-deferred.md +40 -0
- apex_ai-0.1.0/docs/adr/ADR-0005-symbolic-repo-map.md +55 -0
- apex_ai-0.1.0/docs/adr/ADR-0006-mcp-server-stdio.md +54 -0
- apex_ai-0.1.0/docs/adr/ADR-0007-vscode-thin-client.md +53 -0
- apex_ai-0.1.0/docs/adr/ADR-0008-installation-refonte.md +77 -0
- apex_ai-0.1.0/docs/advanced.md +429 -0
- apex_ai-0.1.0/docs/agents.md +165 -0
- apex_ai-0.1.0/docs/api.md +729 -0
- apex_ai-0.1.0/docs/changelog.md +385 -0
- apex_ai-0.1.0/docs/commands.md +211 -0
- apex_ai-0.1.0/docs/configuration.md +52 -0
- apex_ai-0.1.0/docs/contributing.md +64 -0
- apex_ai-0.1.0/docs/ecc-agent-sort.md +242 -0
- apex_ai-0.1.0/docs/examples.md +426 -0
- apex_ai-0.1.0/docs/getting-started/configuration.md +55 -0
- apex_ai-0.1.0/docs/getting-started/installation.md +210 -0
- apex_ai-0.1.0/docs/getting-started/quickstart.md +45 -0
- apex_ai-0.1.0/docs/git-workflow.md +35 -0
- apex_ai-0.1.0/docs/guides/custom-agents.md +106 -0
- apex_ai-0.1.0/docs/guides/custom-commands.md +74 -0
- apex_ai-0.1.0/docs/guides/models.md +23 -0
- apex_ai-0.1.0/docs/guides/themes.md +83 -0
- apex_ai-0.1.0/docs/guides/tips.md +31 -0
- apex_ai-0.1.0/docs/guides/tools.md +98 -0
- apex_ai-0.1.0/docs/guides/tui.md +179 -0
- apex_ai-0.1.0/docs/index.md +94 -0
- apex_ai-0.1.0/docs/installation.md +95 -0
- apex_ai-0.1.0/docs/models.md +289 -0
- apex_ai-0.1.0/docs/plugins.md +173 -0
- apex_ai-0.1.0/docs/quickstart.md +147 -0
- apex_ai-0.1.0/docs/reference/api.md +103 -0
- apex_ai-0.1.0/docs/reference/cli.md +100 -0
- apex_ai-0.1.0/docs/reference/config.md +150 -0
- apex_ai-0.1.0/docs/reference/http-api.md +168 -0
- apex_ai-0.1.0/docs/reference/mcp-server.md +80 -0
- apex_ai-0.1.0/docs/reference/repomap.md +113 -0
- apex_ai-0.1.0/docs/reference/vscode.md +63 -0
- apex_ai-0.1.0/docs/tools.md +124 -0
- apex_ai-0.1.0/docs/troubleshooting.md +330 -0
- apex_ai-0.1.0/pyproject.toml +122 -0
- apex_ai-0.1.0/requirements.txt +8 -0
- apex_ai-0.1.0/setup.cfg +4 -0
- apex_ai-0.1.0/tests/test_advanced.py +352 -0
- apex_ai-0.1.0/tests/test_agent.py +399 -0
- apex_ai-0.1.0/tests/test_agent_coverage.py +830 -0
- apex_ai-0.1.0/tests/test_agent_full.py +460 -0
- apex_ai-0.1.0/tests/test_agent_more.py +545 -0
- apex_ai-0.1.0/tests/test_agents.py +1222 -0
- apex_ai-0.1.0/tests/test_api_key.py +515 -0
- apex_ai-0.1.0/tests/test_apply_patch.py +611 -0
- apex_ai-0.1.0/tests/test_auto_commit.py +219 -0
- apex_ai-0.1.0/tests/test_billing.py +798 -0
- apex_ai-0.1.0/tests/test_codegen.py +528 -0
- apex_ai-0.1.0/tests/test_codegen_full.py +242 -0
- apex_ai-0.1.0/tests/test_commands.py +193 -0
- apex_ai-0.1.0/tests/test_commands_manager.py +702 -0
- apex_ai-0.1.0/tests/test_config.py +446 -0
- apex_ai-0.1.0/tests/test_config_tools.py +360 -0
- apex_ai-0.1.0/tests/test_config_v2.py +996 -0
- apex_ai-0.1.0/tests/test_context.py +342 -0
- apex_ai-0.1.0/tests/test_context_budget.py +652 -0
- apex_ai-0.1.0/tests/test_context_budget_security.py +134 -0
- apex_ai-0.1.0/tests/test_context_manager.py +309 -0
- apex_ai-0.1.0/tests/test_context_tracking.py +377 -0
- apex_ai-0.1.0/tests/test_cost_local.py +384 -0
- apex_ai-0.1.0/tests/test_extras.py +536 -0
- apex_ai-0.1.0/tests/test_extras_full.py +117 -0
- apex_ai-0.1.0/tests/test_formatter.py +763 -0
- apex_ai-0.1.0/tests/test_git_undo.py +286 -0
- apex_ai-0.1.0/tests/test_github_integration.py +498 -0
- apex_ai-0.1.0/tests/test_http_api.py +2069 -0
- apex_ai-0.1.0/tests/test_http_api_security.py +529 -0
- apex_ai-0.1.0/tests/test_i18n.py +213 -0
- apex_ai-0.1.0/tests/test_install_manager.py +368 -0
- apex_ai-0.1.0/tests/test_lsp_diagnostics.py +329 -0
- apex_ai-0.1.0/tests/test_main.py +849 -0
- apex_ai-0.1.0/tests/test_main_full.py +427 -0
- apex_ai-0.1.0/tests/test_main_more.py +229 -0
- apex_ai-0.1.0/tests/test_mcp.py +400 -0
- apex_ai-0.1.0/tests/test_mcp_full.py +208 -0
- apex_ai-0.1.0/tests/test_mcp_server.py +281 -0
- apex_ai-0.1.0/tests/test_memory.py +286 -0
- apex_ai-0.1.0/tests/test_mentions.py +374 -0
- apex_ai-0.1.0/tests/test_modular_tools.py +287 -0
- apex_ai-0.1.0/tests/test_new_tools.py +384 -0
- apex_ai-0.1.0/tests/test_permission.py +677 -0
- apex_ai-0.1.0/tests/test_plugins_full.py +665 -0
- apex_ai-0.1.0/tests/test_project.py +424 -0
- apex_ai-0.1.0/tests/test_rate_limiter.py +595 -0
- apex_ai-0.1.0/tests/test_repomap.py +602 -0
- apex_ai-0.1.0/tests/test_rlm.py +636 -0
- apex_ai-0.1.0/tests/test_sandbox.py +324 -0
- apex_ai-0.1.0/tests/test_server.py +793 -0
- apex_ai-0.1.0/tests/test_session.py +384 -0
- apex_ai-0.1.0/tests/test_share.py +625 -0
- apex_ai-0.1.0/tests/test_shell_security.py +1015 -0
- apex_ai-0.1.0/tests/test_skills.py +293 -0
- apex_ai-0.1.0/tests/test_skills_system.py +274 -0
- apex_ai-0.1.0/tests/test_slash.py +293 -0
- apex_ai-0.1.0/tests/test_snapshot.py +266 -0
- apex_ai-0.1.0/tests/test_structured_message.py +229 -0
- apex_ai-0.1.0/tests/test_task_queue.py +188 -0
- apex_ai-0.1.0/tests/test_telemetry.py +231 -0
- apex_ai-0.1.0/tests/test_theme_manager.py +617 -0
- apex_ai-0.1.0/tests/test_tools.py +2539 -0
- apex_ai-0.1.0/tests/test_tools_comprehensive.py +338 -0
- apex_ai-0.1.0/tests/test_tools_coverage.py +1050 -0
- apex_ai-0.1.0/tests/test_tools_extended.py +262 -0
- apex_ai-0.1.0/tests/test_tools_full.py +338 -0
- apex_ai-0.1.0/tests/test_tools_more.py +202 -0
- apex_ai-0.1.0/tests/test_ui.py +390 -0
- apex_ai-0.1.0/tests/test_version_manifests.py +84 -0
- apex_ai-0.1.0/tests/test_vision.py +225 -0
- apex_ai-0.1.0/tests/test_watcher.py +627 -0
- apex_ai-0.1.0/tests/test_workspace.py +411 -0
- apex_ai-0.1.0/tests/test_workspace_rollback.py +282 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Report a reproducible defect in APEX
|
|
3
|
+
title: "[Bug]: "
|
|
4
|
+
labels: ["bug"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for taking the time to report a bug. Please search existing issues first.
|
|
10
|
+
For security vulnerabilities, do **not** open a public issue — follow `SECURITY.md`.
|
|
11
|
+
|
|
12
|
+
- type: textarea
|
|
13
|
+
id: what-happened
|
|
14
|
+
attributes:
|
|
15
|
+
label: What happened?
|
|
16
|
+
description: A clear and concise description of the defect.
|
|
17
|
+
placeholder: When I run `apex ...`, ...
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
|
|
21
|
+
- type: textarea
|
|
22
|
+
id: expected
|
|
23
|
+
attributes:
|
|
24
|
+
label: Expected behavior
|
|
25
|
+
description: What did you expect to happen instead?
|
|
26
|
+
validations:
|
|
27
|
+
required: true
|
|
28
|
+
|
|
29
|
+
- type: textarea
|
|
30
|
+
id: reproduction
|
|
31
|
+
attributes:
|
|
32
|
+
label: Steps to reproduce
|
|
33
|
+
description: Minimal, deterministic steps.
|
|
34
|
+
placeholder: |
|
|
35
|
+
1. Install APEX ...
|
|
36
|
+
2. Run `apex ...`
|
|
37
|
+
3. Observe ...
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
|
|
41
|
+
- type: input
|
|
42
|
+
id: version
|
|
43
|
+
attributes:
|
|
44
|
+
label: APEX version
|
|
45
|
+
description: Output of `apex --version`.
|
|
46
|
+
placeholder: 2.0.0
|
|
47
|
+
validations:
|
|
48
|
+
required: true
|
|
49
|
+
|
|
50
|
+
- type: dropdown
|
|
51
|
+
id: surface
|
|
52
|
+
attributes:
|
|
53
|
+
label: Surface
|
|
54
|
+
options:
|
|
55
|
+
- CLI / Python backend
|
|
56
|
+
- TUI (tui-frontend)
|
|
57
|
+
- Rust port (apex-rs)
|
|
58
|
+
- Website / docs
|
|
59
|
+
- CI / tooling
|
|
60
|
+
validations:
|
|
61
|
+
required: true
|
|
62
|
+
|
|
63
|
+
- type: input
|
|
64
|
+
id: environment
|
|
65
|
+
attributes:
|
|
66
|
+
label: Environment
|
|
67
|
+
description: OS, Python version, terminal.
|
|
68
|
+
placeholder: Windows 11, Python 3.12, Windows Terminal
|
|
69
|
+
validations:
|
|
70
|
+
required: true
|
|
71
|
+
|
|
72
|
+
- type: textarea
|
|
73
|
+
id: logs
|
|
74
|
+
attributes:
|
|
75
|
+
label: Relevant logs
|
|
76
|
+
description: Paste logs with secrets removed. Never include API keys or tokens.
|
|
77
|
+
render: shell
|
|
78
|
+
validations:
|
|
79
|
+
required: false
|
|
80
|
+
|
|
81
|
+
- type: checkboxes
|
|
82
|
+
id: checks
|
|
83
|
+
attributes:
|
|
84
|
+
label: Checklist
|
|
85
|
+
options:
|
|
86
|
+
- label: I searched existing issues and this is not a duplicate.
|
|
87
|
+
required: true
|
|
88
|
+
- label: I removed API keys, tokens, and other secrets from logs.
|
|
89
|
+
required: true
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Security vulnerability
|
|
4
|
+
url: https://github.com/Ggboykxz/APEX/security/advisories/new
|
|
5
|
+
about: Report vulnerabilities privately. Do not open a public issue.
|
|
6
|
+
- name: Documentation
|
|
7
|
+
url: https://apex-ai.dev/docs
|
|
8
|
+
about: Installation, configuration, tools, and guides.
|
|
9
|
+
- name: Public roadmap
|
|
10
|
+
url: https://apex-ai.dev/roadmap
|
|
11
|
+
about: See what is shipped and what is planned for v2.5.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Feature request
|
|
2
|
+
description: Propose a capability or improvement for APEX
|
|
3
|
+
title: "[Feature]: "
|
|
4
|
+
labels: ["enhancement"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for the suggestion. Please check the public roadmap first:
|
|
10
|
+
https://apex-ai.dev/roadmap
|
|
11
|
+
|
|
12
|
+
- type: textarea
|
|
13
|
+
id: problem
|
|
14
|
+
attributes:
|
|
15
|
+
label: Problem
|
|
16
|
+
description: What user problem does this solve? Who is affected?
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- type: textarea
|
|
21
|
+
id: solution
|
|
22
|
+
attributes:
|
|
23
|
+
label: Proposed solution
|
|
24
|
+
description: Describe the behavior you would like, including CLI/TUI/API surface.
|
|
25
|
+
validations:
|
|
26
|
+
required: true
|
|
27
|
+
|
|
28
|
+
- type: textarea
|
|
29
|
+
id: alternatives
|
|
30
|
+
attributes:
|
|
31
|
+
label: Alternatives considered
|
|
32
|
+
description: Existing workarounds or other designs you evaluated.
|
|
33
|
+
validations:
|
|
34
|
+
required: false
|
|
35
|
+
|
|
36
|
+
- type: dropdown
|
|
37
|
+
id: area
|
|
38
|
+
attributes:
|
|
39
|
+
label: Area
|
|
40
|
+
options:
|
|
41
|
+
- CLI / Python backend
|
|
42
|
+
- TUI (tui-frontend)
|
|
43
|
+
- Rust port (apex-rs)
|
|
44
|
+
- Website / docs
|
|
45
|
+
- Integrations (MCP, VS Code)
|
|
46
|
+
- CI / tooling
|
|
47
|
+
validations:
|
|
48
|
+
required: true
|
|
49
|
+
|
|
50
|
+
- type: dropdown
|
|
51
|
+
id: milestone
|
|
52
|
+
attributes:
|
|
53
|
+
label: Roadmap alignment
|
|
54
|
+
options:
|
|
55
|
+
- v2.5 M1 — Repository Map & Context
|
|
56
|
+
- v2.5 M2 — Rust GA (internal)
|
|
57
|
+
- v2.5 M3 — TUI Streaming & Diff
|
|
58
|
+
- v2.5 M4 — MCP, Vision, VS Code
|
|
59
|
+
- Post-v2.5
|
|
60
|
+
- Not sure
|
|
61
|
+
validations:
|
|
62
|
+
required: true
|
|
63
|
+
|
|
64
|
+
- type: checkboxes
|
|
65
|
+
id: checks
|
|
66
|
+
attributes:
|
|
67
|
+
label: Checklist
|
|
68
|
+
options:
|
|
69
|
+
- label: I searched existing issues and this is not a duplicate.
|
|
70
|
+
required: true
|
|
71
|
+
- label: I checked the public roadmap.
|
|
72
|
+
required: true
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Dependabot configuration for APEX
|
|
2
|
+
# Auto dependency updates across all ecosystems
|
|
3
|
+
|
|
4
|
+
version: 2
|
|
5
|
+
|
|
6
|
+
updates:
|
|
7
|
+
# Python pip dependencies
|
|
8
|
+
- package-ecosystem: pip
|
|
9
|
+
directory: /
|
|
10
|
+
schedule:
|
|
11
|
+
interval: weekly
|
|
12
|
+
day: monday
|
|
13
|
+
time: "06:00"
|
|
14
|
+
timezone: UTC
|
|
15
|
+
open-pull-requests-limit: 10
|
|
16
|
+
reviewers:
|
|
17
|
+
- Ggboykxz
|
|
18
|
+
labels:
|
|
19
|
+
- dependencies
|
|
20
|
+
- python
|
|
21
|
+
commit-message:
|
|
22
|
+
prefix: chore
|
|
23
|
+
prefix-development: chore
|
|
24
|
+
include: scope
|
|
25
|
+
rebase-strategy: auto
|
|
26
|
+
|
|
27
|
+
# npm dependencies — Next.js frontend (src/)
|
|
28
|
+
- package-ecosystem: npm
|
|
29
|
+
directory: /
|
|
30
|
+
schedule:
|
|
31
|
+
interval: weekly
|
|
32
|
+
day: monday
|
|
33
|
+
time: "06:00"
|
|
34
|
+
timezone: UTC
|
|
35
|
+
open-pull-requests-limit: 10
|
|
36
|
+
reviewers:
|
|
37
|
+
- Ggboykxz
|
|
38
|
+
labels:
|
|
39
|
+
- dependencies
|
|
40
|
+
- website
|
|
41
|
+
commit-message:
|
|
42
|
+
prefix: chore
|
|
43
|
+
prefix-development: chore
|
|
44
|
+
include: scope
|
|
45
|
+
rebase-strategy: auto
|
|
46
|
+
ignore:
|
|
47
|
+
- dependency-name: "next"
|
|
48
|
+
update-types: [version-update:semver-major]
|
|
49
|
+
- dependency-name: "react"
|
|
50
|
+
- dependency-name: "react-dom"
|
|
51
|
+
- dependency-name: "typescript"
|
|
52
|
+
- dependency-name: "eslint"
|
|
53
|
+
|
|
54
|
+
# npm dependencies — TUI frontend (tui-frontend/)
|
|
55
|
+
- package-ecosystem: npm
|
|
56
|
+
directory: /tui-frontend
|
|
57
|
+
schedule:
|
|
58
|
+
interval: weekly
|
|
59
|
+
day: monday
|
|
60
|
+
time: "06:00"
|
|
61
|
+
timezone: UTC
|
|
62
|
+
open-pull-requests-limit: 10
|
|
63
|
+
reviewers:
|
|
64
|
+
- Ggboykxz
|
|
65
|
+
labels:
|
|
66
|
+
- dependencies
|
|
67
|
+
- tui
|
|
68
|
+
commit-message:
|
|
69
|
+
prefix: chore
|
|
70
|
+
prefix-development: chore
|
|
71
|
+
include: scope
|
|
72
|
+
rebase-strategy: auto
|
|
73
|
+
|
|
74
|
+
# GitHub Actions
|
|
75
|
+
- package-ecosystem: github-actions
|
|
76
|
+
directory: /
|
|
77
|
+
schedule:
|
|
78
|
+
interval: weekly
|
|
79
|
+
day: monday
|
|
80
|
+
time: "06:00"
|
|
81
|
+
timezone: UTC
|
|
82
|
+
open-pull-requests-limit: 10
|
|
83
|
+
reviewers:
|
|
84
|
+
- Ggboykxz
|
|
85
|
+
labels:
|
|
86
|
+
- dependencies
|
|
87
|
+
- ci
|
|
88
|
+
commit-message:
|
|
89
|
+
prefix: ci
|
|
90
|
+
prefix-development: ci
|
|
91
|
+
include: scope
|
|
92
|
+
rebase-strategy: auto
|
|
93
|
+
|
|
94
|
+
# Docker base images
|
|
95
|
+
- package-ecosystem: docker
|
|
96
|
+
directory: /
|
|
97
|
+
schedule:
|
|
98
|
+
interval: weekly
|
|
99
|
+
day: monday
|
|
100
|
+
time: "06:00"
|
|
101
|
+
timezone: UTC
|
|
102
|
+
open-pull-requests-limit: 10
|
|
103
|
+
reviewers:
|
|
104
|
+
- Ggboykxz
|
|
105
|
+
labels:
|
|
106
|
+
- dependencies
|
|
107
|
+
- docker
|
|
108
|
+
commit-message:
|
|
109
|
+
prefix: chore
|
|
110
|
+
prefix-development: chore
|
|
111
|
+
include: scope
|
|
112
|
+
rebase-strategy: auto
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Auto-label configuration for APEX PRs
|
|
2
|
+
# Used by actions/labeler@v5
|
|
3
|
+
|
|
4
|
+
python:
|
|
5
|
+
- changed-files:
|
|
6
|
+
- any-glob-to-any-file:
|
|
7
|
+
- apex/**
|
|
8
|
+
- tests/**
|
|
9
|
+
- "*.py"
|
|
10
|
+
- pyproject.toml
|
|
11
|
+
- requirements.txt
|
|
12
|
+
|
|
13
|
+
website:
|
|
14
|
+
- changed-files:
|
|
15
|
+
- any-glob-to-any-file:
|
|
16
|
+
- src/**
|
|
17
|
+
- public/**
|
|
18
|
+
- package.json
|
|
19
|
+
- bun.lock
|
|
20
|
+
- tailwind.config.ts
|
|
21
|
+
- next.config.ts
|
|
22
|
+
- tsconfig.json
|
|
23
|
+
- eslint.config.mjs
|
|
24
|
+
- postcss.config.mjs
|
|
25
|
+
- components.json
|
|
26
|
+
|
|
27
|
+
tui:
|
|
28
|
+
- changed-files:
|
|
29
|
+
- any-glob-to-any-file:
|
|
30
|
+
- tui-frontend/**
|
|
31
|
+
- tui-frontend/package.json
|
|
32
|
+
- tui-frontend/tsconfig.json
|
|
33
|
+
|
|
34
|
+
docs:
|
|
35
|
+
- changed-files:
|
|
36
|
+
- any-glob-to-any-file:
|
|
37
|
+
- docs/**
|
|
38
|
+
- "*.md"
|
|
39
|
+
- mkdocs.yml
|
|
40
|
+
|
|
41
|
+
ci:
|
|
42
|
+
- changed-files:
|
|
43
|
+
- any-glob-to-any-file:
|
|
44
|
+
- .github/**
|
|
45
|
+
- .github/workflows/**
|
|
46
|
+
- .github/dependabot.yml
|
|
47
|
+
|
|
48
|
+
docker:
|
|
49
|
+
- changed-files:
|
|
50
|
+
- any-glob-to-any-file:
|
|
51
|
+
- Dockerfile
|
|
52
|
+
- docker-compose*
|
|
53
|
+
- .dockerignore
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Release Drafter configuration for APEX
|
|
2
|
+
|
|
3
|
+
name-template: "v$RESOLVED_VERSION"
|
|
4
|
+
tag-template: "v$RESOLVED_VERSION"
|
|
5
|
+
template: |
|
|
6
|
+
## APEX v$RESOLVED_VERSION
|
|
7
|
+
|
|
8
|
+
The universal AI coding agent. Every model. One terminal.
|
|
9
|
+
|
|
10
|
+
### Changes
|
|
11
|
+
|
|
12
|
+
$CHANGES
|
|
13
|
+
|
|
14
|
+
### Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# pip (recommended)
|
|
18
|
+
pip install apex-ai==$RESOLVED_VERSION
|
|
19
|
+
|
|
20
|
+
# pipx (isolated)
|
|
21
|
+
pipx install apex-ai==$RESOLVED_VERSION
|
|
22
|
+
|
|
23
|
+
# uv (fastest)
|
|
24
|
+
uv tool install apex-ai==$RESOLVED_VERSION
|
|
25
|
+
|
|
26
|
+
# Installer (macOS/Linux)
|
|
27
|
+
curl -fsSLO https://apex-ai.dev/install.sh
|
|
28
|
+
bash install.sh
|
|
29
|
+
|
|
30
|
+
# Installer (Windows PowerShell)
|
|
31
|
+
Invoke-WebRequest https://apex-ai.dev/install.ps1 -OutFile install.ps1
|
|
32
|
+
powershell -ExecutionPolicy Bypass -File .\install.ps1
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Native backend (headless, opt-in)
|
|
36
|
+
|
|
37
|
+
Verified release assets ship for Linux (x86_64/aarch64), macOS
|
|
38
|
+
(x86_64/aarch64) and Windows (x86_64), each with a `.sha256` sidecar:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
bash install.sh --method native --version $RESOLVED_VERSION
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Docker
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
docker pull ghcr.io/ggboykxz/apex:$RESOLVED_VERSION
|
|
48
|
+
docker run -it -v $(pwd):/workspace ghcr.io/ggboykxz/apex
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Quick Start
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
55
|
+
apex # Interactive mode
|
|
56
|
+
apex --model gpt-4o # Start with GPT-4o
|
|
57
|
+
apex --model ollama-llama3 # Local, no API key
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Full Changelog**: https://github.com/Ggboykxz/APEX/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION
|
|
61
|
+
|
|
62
|
+
categories:
|
|
63
|
+
- title: "🚀 Features"
|
|
64
|
+
labels:
|
|
65
|
+
- feature
|
|
66
|
+
- enhancement
|
|
67
|
+
- feat
|
|
68
|
+
- title: "🐛 Bug Fixes"
|
|
69
|
+
labels:
|
|
70
|
+
- bug
|
|
71
|
+
- fix
|
|
72
|
+
- bugfix
|
|
73
|
+
- title: "📚 Documentation"
|
|
74
|
+
labels:
|
|
75
|
+
- documentation
|
|
76
|
+
- docs
|
|
77
|
+
- title: "♻️ Refactoring"
|
|
78
|
+
labels:
|
|
79
|
+
- refactor
|
|
80
|
+
- refactoring
|
|
81
|
+
- title: "⚡ Performance"
|
|
82
|
+
labels:
|
|
83
|
+
- perf
|
|
84
|
+
- performance
|
|
85
|
+
- title: "🧪 Tests"
|
|
86
|
+
labels:
|
|
87
|
+
- test
|
|
88
|
+
- tests
|
|
89
|
+
- title: "🔧 CI/CD"
|
|
90
|
+
labels:
|
|
91
|
+
- ci
|
|
92
|
+
- build
|
|
93
|
+
- title: "🎫 Chores"
|
|
94
|
+
labels:
|
|
95
|
+
- chore
|
|
96
|
+
- dependencies
|
|
97
|
+
- title: "🔒 Security"
|
|
98
|
+
labels:
|
|
99
|
+
- security
|
|
100
|
+
|
|
101
|
+
label-template: "$TITLE @$AUTHOR (#$NUMBER)"
|
|
102
|
+
|
|
103
|
+
change-template: "- $TITLE @$AUTHOR (#$NUMBER)"
|
|
104
|
+
change-title-escapes: '\<*_&'
|
|
105
|
+
|
|
106
|
+
version-resolver:
|
|
107
|
+
major:
|
|
108
|
+
labels:
|
|
109
|
+
- breaking
|
|
110
|
+
- major
|
|
111
|
+
minor:
|
|
112
|
+
labels:
|
|
113
|
+
- feature
|
|
114
|
+
- enhancement
|
|
115
|
+
- feat
|
|
116
|
+
patch:
|
|
117
|
+
labels:
|
|
118
|
+
- bug
|
|
119
|
+
- fix
|
|
120
|
+
- bugfix
|
|
121
|
+
- security
|
|
122
|
+
- chore
|
|
123
|
+
- dependencies
|
|
124
|
+
default: patch
|
|
125
|
+
|
|
126
|
+
exclude-labels:
|
|
127
|
+
- skip-changelog
|
|
128
|
+
- stale
|
|
129
|
+
- wontfix
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name: Dependency Audit
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: "0 5 * * 1" # Every Monday at 05:00 UTC
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
push:
|
|
8
|
+
branches: [main]
|
|
9
|
+
paths:
|
|
10
|
+
- "package.json"
|
|
11
|
+
- "package-lock.json"
|
|
12
|
+
- "tui-frontend/package.json"
|
|
13
|
+
- "tui-frontend/package-lock.json"
|
|
14
|
+
- "requirements.txt"
|
|
15
|
+
- "pyproject.toml"
|
|
16
|
+
- ".github/workflows/audit.yml"
|
|
17
|
+
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
audit:
|
|
23
|
+
name: Audit dependencies
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v6
|
|
27
|
+
|
|
28
|
+
- uses: actions/setup-node@v6
|
|
29
|
+
with:
|
|
30
|
+
node-version: "24"
|
|
31
|
+
cache: npm
|
|
32
|
+
cache-dependency-path: |
|
|
33
|
+
package-lock.json
|
|
34
|
+
tui-frontend/package-lock.json
|
|
35
|
+
|
|
36
|
+
- uses: actions/setup-python@v6
|
|
37
|
+
with:
|
|
38
|
+
python-version: "3.12"
|
|
39
|
+
cache: pip
|
|
40
|
+
cache-dependency-path: requirements.txt
|
|
41
|
+
|
|
42
|
+
- name: npm audit (website)
|
|
43
|
+
run: npm audit --omit=dev
|
|
44
|
+
continue-on-error: true
|
|
45
|
+
|
|
46
|
+
- name: npm audit (TUI)
|
|
47
|
+
working-directory: tui-frontend
|
|
48
|
+
run: npm audit --omit=dev
|
|
49
|
+
continue-on-error: true
|
|
50
|
+
|
|
51
|
+
- name: Install pip-audit
|
|
52
|
+
run: pip install pip-audit
|
|
53
|
+
|
|
54
|
+
- name: pip-audit (requirements)
|
|
55
|
+
run: pip-audit -r requirements.txt
|
|
56
|
+
continue-on-error: true
|
|
57
|
+
|
|
58
|
+
- name: pip-audit (pyproject)
|
|
59
|
+
run: pip-audit -r <(python -c "import tomllib, pathlib; d=tomllib.loads(pathlib.Path('pyproject.toml').read_text()); print('\n'.join(d['project']['dependencies']))")
|
|
60
|
+
continue-on-error: true
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, dev]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
merge_group:
|
|
9
|
+
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ci-${{ github.ref }}
|
|
12
|
+
cancel-in-progress: true
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
lint:
|
|
16
|
+
name: Lint (Python ${{ matrix.python-version }})
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
strategy:
|
|
19
|
+
matrix:
|
|
20
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- uses: actions/setup-python@v6
|
|
25
|
+
with:
|
|
26
|
+
python-version: ${{ matrix.python-version }}
|
|
27
|
+
cache: pip
|
|
28
|
+
|
|
29
|
+
- name: Install dependencies
|
|
30
|
+
run: |
|
|
31
|
+
python -m pip install --upgrade pip
|
|
32
|
+
pip install ruff==0.9.10 mypy
|
|
33
|
+
pip install -e ".[dev]" || pip install -e .
|
|
34
|
+
|
|
35
|
+
- name: Ruff lint
|
|
36
|
+
run: ruff check apex/ tests/ --output-format=github
|
|
37
|
+
|
|
38
|
+
- name: Ruff format check
|
|
39
|
+
run: ruff format --check apex/ tests/
|
|
40
|
+
|
|
41
|
+
- name: Type check
|
|
42
|
+
run: mypy apex/ --ignore-missing-imports
|
|
43
|
+
continue-on-error: true
|
|
44
|
+
|
|
45
|
+
test:
|
|
46
|
+
name: Test (Python ${{ matrix.python-version }})
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
strategy:
|
|
49
|
+
fail-fast: false
|
|
50
|
+
matrix:
|
|
51
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
52
|
+
|
|
53
|
+
steps:
|
|
54
|
+
- uses: actions/checkout@v6
|
|
55
|
+
|
|
56
|
+
- uses: actions/setup-python@v6
|
|
57
|
+
with:
|
|
58
|
+
python-version: ${{ matrix.python-version }}
|
|
59
|
+
cache: pip
|
|
60
|
+
|
|
61
|
+
- name: Install dependencies
|
|
62
|
+
run: |
|
|
63
|
+
python -m pip install --upgrade pip
|
|
64
|
+
pip install -e ".[dev]" || pip install -e .
|
|
65
|
+
|
|
66
|
+
- name: Run tests
|
|
67
|
+
run: pytest --tb=short -q --junitxml=test-results.xml
|
|
68
|
+
env:
|
|
69
|
+
CI: "true"
|
|
70
|
+
|
|
71
|
+
- name: Test summary
|
|
72
|
+
if: always()
|
|
73
|
+
run: |
|
|
74
|
+
echo "=== Test Results ==="
|
|
75
|
+
if [ -f test-results.xml ]; then
|
|
76
|
+
echo "Test results generated"
|
|
77
|
+
else
|
|
78
|
+
echo "Warning: No test results file"
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
- name: Upload test results
|
|
82
|
+
if: always()
|
|
83
|
+
uses: actions/upload-artifact@v4
|
|
84
|
+
with:
|
|
85
|
+
name: test-results-py${{ matrix.python-version }}
|
|
86
|
+
path: test-results.xml
|
|
87
|
+
|
|
88
|
+
rust:
|
|
89
|
+
name: Rust (fmt, clippy, test)
|
|
90
|
+
runs-on: ubuntu-latest
|
|
91
|
+
defaults:
|
|
92
|
+
run:
|
|
93
|
+
working-directory: rust/apex-rs
|
|
94
|
+
steps:
|
|
95
|
+
- uses: actions/checkout@v6
|
|
96
|
+
|
|
97
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
98
|
+
with:
|
|
99
|
+
components: rustfmt, clippy
|
|
100
|
+
|
|
101
|
+
- name: Cache cargo
|
|
102
|
+
uses: actions/cache@v6
|
|
103
|
+
with:
|
|
104
|
+
path: |
|
|
105
|
+
~/.cargo/registry
|
|
106
|
+
~/.cargo/git
|
|
107
|
+
rust/apex-rs/target
|
|
108
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/apex-rs/Cargo.lock') }}
|
|
109
|
+
restore-keys: ${{ runner.os }}-cargo-
|
|
110
|
+
|
|
111
|
+
- name: Format check
|
|
112
|
+
run: cargo fmt --all -- --check
|
|
113
|
+
|
|
114
|
+
- name: Clippy
|
|
115
|
+
run: cargo clippy --all-targets -- -D warnings
|
|
116
|
+
|
|
117
|
+
- name: Tests
|
|
118
|
+
run: cargo test
|
|
119
|
+
|
|
120
|
+
build-check:
|
|
121
|
+
name: Build check (sdist + wheel)
|
|
122
|
+
runs-on: ubuntu-latest
|
|
123
|
+
needs: [lint, test, rust]
|
|
124
|
+
steps:
|
|
125
|
+
- uses: actions/checkout@v6
|
|
126
|
+
|
|
127
|
+
- uses: actions/setup-python@v6
|
|
128
|
+
with:
|
|
129
|
+
python-version: "3.12"
|
|
130
|
+
|
|
131
|
+
- name: Build package
|
|
132
|
+
run: |
|
|
133
|
+
pip install build twine
|
|
134
|
+
python -m build
|
|
135
|
+
|
|
136
|
+
- name: Check package
|
|
137
|
+
run: twine check dist/*
|