Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
5ae2523
WIP AI Nodes
Luc45 Jun 19, 2025
a03fe7a
WIP AI Nodes
Luc45 Jun 19, 2025
e4a394d
Schema
Luc45 Jun 19, 2025
4268874
Performance metrics and name
Luc45 Jun 20, 2025
ce73d36
Add more context to security issues
Luc45 Jun 20, 2025
08c0d57
Enhances error handling and logging in AI node server
Luc45 Jun 20, 2025
d7ba147
Enhances AI web server with comprehensive logging and error handling
Luc45 Jun 21, 2025
9d849d5
Pull models if needed
Luc45 Jun 21, 2025
c73be3f
Explore context around security vulnerability
Luc45 Jun 24, 2025
a59f85c
Coder-model driven discoverability
Luc45 Jun 24, 2025
f1fec91
Logical security analysis WIP
Luc45 Jun 26, 2025
4568f98
Logical security analysis WIP
Luc45 Jun 26, 2025
1e23189
Normalize extracted path handling
Luc45 Jun 26, 2025
7d1549c
SImplify/basic prompt
Luc45 Jun 26, 2025
79f6706
Convert handlers to classes
Luc45 Jun 26, 2025
db5385c
Namespace rename
Luc45 Jun 27, 2025
3b6c219
Standardized responses
Luc45 Jun 27, 2025
5f28077
Add file reading handler
Luc45 Jun 27, 2025
c9d65a8
Security investigation
Luc45 Jun 28, 2025
3267216
Logical security analsyis
Luc45 Jun 28, 2025
a2da98c
Security analysis WIP
Luc45 Jun 28, 2025
07f0012
Remove/simplify
Luc45 Jun 28, 2025
844c182
Remove/simplify
Luc45 Jun 28, 2025
ae25120
Remove/simplify
Luc45 Jun 28, 2025
991e6a7
Remove/simplify
Luc45 Jun 28, 2025
15b36ea
Remove/simplify
Luc45 Jun 28, 2025
d474be1
Handlers -> Endpoints
Luc45 Jun 29, 2025
9166e42
Improvements to model options
Luc45 Jun 29, 2025
1eeca5f
Store http request/response
Luc45 Jun 29, 2025
b82477d
Remove/simplify
Luc45 Jun 29, 2025
08457ae
Logical security analysis
Luc45 Jun 30, 2025
1c2f227
Message/role
Luc45 Jun 30, 2025
0a2e817
Benchmark and loop improvements
Luc45 Jun 30, 2025
45dd435
Stop the modal explicitly to free up VRAM
Luc45 Jun 30, 2025
117c629
Stop model if needed
Luc45 Jun 30, 2025
8d4f224
Improve line handling
Luc45 Jun 30, 2025
24647c9
Update response_schema to format
Luc45 Jul 1, 2025
8bbf708
Local mode webserver
Luc45 Jul 1, 2025
0858359
WIP tool-based investigation
Luc45 Jul 1, 2025
c200c72
Use LLPhant
Luc45 Jul 2, 2025
e7c64f2
Logical security analysis
Luc45 Jul 2, 2025
b10402f
Logical security analysis
Luc45 Jul 3, 2025
9e371a7
Logical security analysis WIP (add php-parser)
Luc45 Jul 3, 2025
f6109bb
Logical security analysis
Luc45 Jul 3, 2025
d554df1
Handle very big responses/prompts
Luc45 Jul 3, 2025
080922c
Typo
Luc45 Jul 3, 2025
1ce1bcd
Avoid duplicated function calling
Luc45 Jul 3, 2025
507673d
Repair tool calls
Luc45 Jul 3, 2025
f2d90b4
Use dedicated endpoint for vuln scan
Luc45 Jul 3, 2025
a171a33
Automate tools prompt
Luc45 Jul 3, 2025
2780513
Plan-driven
Luc45 Jul 3, 2025
bcb8ef0
Break down planning and execution
Luc45 Jul 3, 2025
614e7c8
WIP scan
Luc45 Jul 3, 2025
afc9cad
Guided investigation WIP
Luc45 Jul 3, 2025
d99f556
Guided investigation WIP
Luc45 Jul 3, 2025
da7b4d7
Guided security analysis
Luc45 Jul 4, 2025
17641e8
File path fix
Luc45 Jul 4, 2025
d8fcd7d
File/directory path handling
Luc45 Jul 4, 2025
00cdb1f
Normalized tool responses
Luc45 Jul 4, 2025
110c6ac
Consistent tools
Luc45 Jul 4, 2025
b21da2c
Switch to LM Studio
Luc45 Jul 4, 2025
eabd50c
Switch to LM Studio
Luc45 Jul 4, 2025
ee235f4
LM Studio
Luc45 Jul 5, 2025
657c760
LM Studio, tools
Luc45 Jul 5, 2025
c054441
Runtime debug
Luc45 Jul 5, 2025
6da795f
Remove rolling digest window and add retrievable fact store
Luc45 Jul 5, 2025
1d3b639
Force at least one discoverability tool, improve logs
Luc45 Jul 5, 2025
7b3acab
Investigation
Luc45 Jul 5, 2025
45ea96f
WIP unified vulnerability scan per file
Luc45 Jul 5, 2025
925e8d3
WIP per-file analysis
Luc45 Jul 5, 2025
55f5c6f
WIP per-file analysis
Luc45 Jul 5, 2025
af058ea
Json schema for screening
Luc45 Jul 5, 2025
abc313a
Improvements to path extraction
Luc45 Jul 5, 2025
8b5ce8b
WIP per-file analysis
Luc45 Jul 6, 2025
3a78be7
Improve file visibility
Luc45 Jul 6, 2025
bd2174e
Improve file visibility
Luc45 Jul 6, 2025
d990bbc
Path context
Luc45 Jul 6, 2025
61e7db0
Focus only on screening
Luc45 Jul 6, 2025
52a7435
WIP thinking mode
Luc45 Jul 6, 2025
fba69e7
Pass down static analysis results
Luc45 Jul 6, 2025
f433d34
Pass down static context, allow to filter by file
Luc45 Jul 6, 2025
959ebc4
WIP
Luc45 Jul 7, 2025
55a6c30
WIP improvements to tool calling
Luc45 Jul 7, 2025
c8b5c21
Investigate one vuln
Luc45 Jul 7, 2025
aead0c3
Typo
Luc45 Jul 7, 2025
08e7e81
Allow to use without tunnel (for local)
Luc45 Jul 7, 2025
3c42a3c
Better candidate selection
Luc45 Jul 7, 2025
66d476a
Nag on duplicated tool usage
Luc45 Jul 7, 2025
a5c3c8c
Use Open AI
Luc45 Jul 7, 2025
f320976
Async: Endpoints, etc
Luc45 Jul 8, 2025
a7f90b9
Async: Worker vs comms nodes
Luc45 Jul 8, 2025
39444ff
Async: openbasedir, etc
Luc45 Jul 8, 2025
290bea1
Async: Worker and listener
Luc45 Jul 9, 2025
7f4ad5e
Use sleekdb instead of sqlite for state management at node-level
Luc45 Jul 9, 2025
6935a26
WIP async
Luc45 Jul 11, 2025
c57d11d
Remove node-level queue
Luc45 Jul 11, 2025
a55a11d
Remove node-level queue
Luc45 Jul 11, 2025
0cebd45
WIP schemas on all inbound/outbound requests for testability
Luc45 Jul 11, 2025
9b17942
Node registration through webserver
Luc45 Jul 11, 2025
e6f0d8c
Revert "Node registration through webserver"
Luc45 Jul 11, 2025
27cdb9e
Reapply "Node registration through webserver"
Luc45 Jul 11, 2025
1745bc6
Validate outbound node registration
Luc45 Jul 11, 2025
08a9f03
Add command to download logs from node
Luc45 Jul 12, 2025
59d64aa
Tweak schema
Luc45 Jul 12, 2025
8457430
Remove prompt with tools
Luc45 Jul 12, 2025
2094fc9
Async WIP
Luc45 Jul 13, 2025
ef1c170
PHPCS
Luc45 Jul 13, 2025
8e17a56
PHPCS
Luc45 Jul 13, 2025
183e79a
Disable AI features behind a feature flag
Luc45 Jul 15, 2025
0931e4f
Monolithic PHPCS fixes
Luc45 Jul 16, 2025
7027ce6
PHPCS leftovers
Luc45 Jul 16, 2025
600959f
Fix 200+ PHPStan errors
Luc45 Jul 16, 2025
d49851c
Ignore PHPCS, PHPStan and Phan on the AI directory
Luc45 Jul 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,9 @@ src/tests/unit/data/sync.json


src/tests/integration/cache/

src/src/AI/webserver/router.local.php

src/src/AI/webserver/router.worker.local.php

src/src/AI/webserver/router.listener.local.php
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ define execPhpAlpine
--workdir "$(2:=/)" \
--add-host=host.docker.internal:host-gateway \
qit-cli-tests:$(PHP_VERSION) \
bash -c "php $(XDEBUG_FLAGS) $(1)"
bash -c "php -d memory_limit=2G $(XDEBUG_FLAGS) $(1)"
endef

watch:
Expand Down
2 changes: 2 additions & 0 deletions src/.phan/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,8 @@
// should be added to the `directory_list` as well as
// to `exclude_analysis_directory_list`.
'exclude_analysis_directory_list' => [
'src/AI',
'src/Commands/AI/NodeStartCommand.php',
'vendor/',
],

Expand Down
8 changes: 8 additions & 0 deletions src/.phpcs.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
<arg name="colors"/>
<arg name="extensions" value="php"/>
<arg name="parallel" value="16"/>

<exclude-pattern>dev/*</exclude-pattern>
<exclude-pattern>src/src/AI/*</exclude-pattern>

<config name="testVersion" value="7.4-"/>
<rule ref="PHPCompatibility"/>
Expand Down Expand Up @@ -59,6 +62,7 @@
<!-- WPCS 3 -->
<exclude name="Universal.Arrays.DisallowShortArraySyntax.Found"/>
<exclude name="WordPress.Security.EscapeOutput.ExceptionNotEscaped"/>
<exclude name="WordPress.Security.EscapeOutput.OutputNotEscaped"/>
<exclude name="Universal.ControlStructures.DisallowLonelyIf.Found"/>
<exclude name="Universal.Operators.DisallowShortTernary.Found"/>

Expand All @@ -71,6 +75,10 @@
<exclude name="WordPress.PHP.DiscouragedPHPFunctions.runtime_configuration_putenv"/>
<!-- Exclude deprecated sniff that will be removed in PHPCS 4.0.0 -->
<exclude name="Generic.Functions.CallTimePassByReference"/>

<exclude name="WordPress.PHP.IniSet"/>
<exclude name="WordPress.Security.NonceVerification.Recommended"/>
<exclude name="WordPress.PHP.DiscouragedPHPFunctions.runtime_configuration_error_reporting"/>
</rule>

<rule ref="Generic.Arrays.DisallowLongArraySyntax"/>
Expand Down
3 changes: 2 additions & 1 deletion src/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@
"composer/ca-bundle": "^1.4",
"symfony/serializer": "^5",
"symfony/yaml": "^5",
"vlucas/phpdotenv": "^5"
"vlucas/phpdotenv": "^5",
"psr/container": "^1.1"
},
"require-dev": {
"phpunit/phpunit": "^8",
Expand Down
2 changes: 1 addition & 1 deletion src/composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions src/phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ parameters:
- /app/src/qit-cli.php
scanDirectories:
- /app/src/vendor
- /app/src/src/AI/dev
excludePaths:
analyse:
- /app/src/src/Commands/AI
- /app/src/src/AI
analyseAndScan:
- /app/src/*/dev/*
tmpDir: /app/.cache
parallel:
jobSize: 10
Expand Down
Loading
Loading