Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
311 commits
Select commit Hold shift + click to select a range
2a4270a
docs: separate routing hints from model judgment
seonghobae Aug 12, 2026
125bfc1
docs: record central review cleanup findings
seonghobae Aug 12, 2026
32ba3a9
docs: record fast Strix evidence boundary
seonghobae Aug 12, 2026
c138d17
docs: close central cleanup remediation record
seonghobae Aug 12, 2026
ddd0591
docs: record local judge retry calibration
seonghobae Aug 12, 2026
bbb6361
feat: bridge Codex Responses to local MLX
seonghobae Aug 12, 2026
ab0c05c
docs: record workflow contract reachability finding
seonghobae Aug 12, 2026
fccac33
docs: record live gateway judge method sensitivity
seonghobae Aug 12, 2026
54dfce2
feat: expose orchestrator control-plane candidate
seonghobae Aug 12, 2026
21a17f0
fix: separate candidate discovery from disablement
seonghobae Aug 12, 2026
13fe555
feat: expose full local candidate registry
seonghobae Aug 12, 2026
a107892
fix(local): avoid retry multiplication on mlx queues
seonghobae Aug 12, 2026
8394373
fix(api): reject unknown passthrough models
seonghobae Aug 12, 2026
da24b1a
fix(api): separate model readiness from registry status
seonghobae Aug 12, 2026
583c4f3
Merge remote-tracking branch 'origin/codex/local-llm-benchmark' into …
seonghobae Aug 12, 2026
c1c7997
docs(adr): record network and ruleset merge boundaries
seonghobae Aug 12, 2026
216177f
fix(local): honor provider-specific retry budgets
seonghobae Aug 12, 2026
56d3085
docs(adr): correct draft review-gate status
seonghobae Aug 12, 2026
8fee52b
fix(local): reject malformed responses and retry config
seonghobae Aug 12, 2026
5b49594
docs(adr): refresh exact-head coverage evidence
seonghobae Aug 12, 2026
1ffdc3f
docs(adr): bind review note to latest head
seonghobae Aug 12, 2026
ea254c2
docs(adr): clarify implementation head provenance
seonghobae Aug 12, 2026
2e76caa
feat(mlsirm): route local judge to contextual-orchestrator and add po…
seonghobae Aug 13, 2026
ea4dfa9
fix: enforce fast judge and multi-item evidence
seonghobae Aug 13, 2026
46725e2
fix: bind provider allowlists to explicit config
seonghobae Aug 13, 2026
c7b5dbc
docs: record mlx model and batch throughput probe
seonghobae Aug 13, 2026
79ce905
docs(adr): record current Strix false-green evidence
seonghobae Aug 13, 2026
4af8e26
docs(adr): record trusted Strix evidence follow-ups
seonghobae Aug 13, 2026
f7b2079
docs(adr): distinguish VPN LibreSSL path failures
seonghobae Aug 13, 2026
17d636b
docs(adr): record strix smoke-contract regression
seonghobae Aug 13, 2026
b7ee4bb
docs(adr): record hyphenated strix marker guard
seonghobae Aug 13, 2026
becc758
docs(benchmark): record repeated mlx concurrency probe
seonghobae Aug 13, 2026
a1d8128
fix(local): bound batch concurrency input
seonghobae Aug 13, 2026
fe7b632
docs(local): document concurrency bound
seonghobae Aug 13, 2026
8a88063
docs(judge): record current mlx K sweep
seonghobae Aug 13, 2026
5ea0f77
docs(adr): record runner-capacity merge blocker
seonghobae Aug 13, 2026
d3ed441
docs(adr): record unbound Strix status fallback
seonghobae Aug 13, 2026
a159dff
docs(adr): record fresh runner-capacity blocker
seonghobae Aug 13, 2026
4d8cd86
fix(judge): require fast-mlsirm calibration boundary
seonghobae Aug 13, 2026
998c86f
test(judge): isolate missing calibration dependency
seonghobae Aug 13, 2026
fb16482
fix(ci): quote fuzz time budget expansion
seonghobae Aug 13, 2026
76de3e1
docs(adr): record unbound strix metadata finding
seonghobae Aug 13, 2026
51ac452
docs(adr): record independent review authority boundary
seonghobae Aug 13, 2026
ec94d99
docs(adr): record false-green Strix artifact
seonghobae Aug 13, 2026
7cb34a9
docs(adr): record current Strix false-green evidence
seonghobae Aug 13, 2026
c646ba5
docs(bench): record 3b mlx saturation probe
seonghobae Aug 13, 2026
5d80e11
perf(local): reuse bounded concurrency for in-process batches
seonghobae Aug 13, 2026
454b9f5
docs(adr): qualify local batch error propagation
seonghobae Aug 13, 2026
b81f8d7
test(batch): assert concurrent result order
seonghobae Aug 13, 2026
173288c
docs(bench): record coordinator mlx smoke
seonghobae Aug 13, 2026
f7141ea
docs(adr): record latest CI capacity evidence
seonghobae Aug 13, 2026
361725b
fix(runtime): guard circuit breaker under batch concurrency
seonghobae Aug 13, 2026
d3abf51
docs(bench): record warm coordinator smoke
seonghobae Aug 13, 2026
8aaa0e0
docs(adr): record latest central Strix false green
seonghobae Aug 13, 2026
823ce91
docs(adr): record fast Strix base evidence
seonghobae Aug 13, 2026
c5e0286
docs(adr): record CI cancellation evidence
seonghobae Aug 13, 2026
4b954e4
docs(adr): record approval policy drift
seonghobae Aug 13, 2026
73c6c98
docs(adr): record semantic judge miss
seonghobae Aug 13, 2026
e59ef71
docs(adr): record latest ci capacity evidence
seonghobae Aug 13, 2026
a29ff9e
docs(calibration): record paired binary threshold evidence
seonghobae Aug 13, 2026
1eef1e9
docs(calibration): record bounded binary concurrency
seonghobae Aug 13, 2026
9bc620d
perf(mlx): align HTTP admission with measured batches
seonghobae Aug 13, 2026
0f61128
fix(server): bound concurrent run configuration
seonghobae Aug 13, 2026
78894f6
docs(adr): record exact-head CI cancellations
seonghobae Aug 13, 2026
d82e592
perf(judge): expose gateway concurrency capability
seonghobae Aug 13, 2026
9b6dec3
docs(benchmark): record integrated judge smoke
seonghobae Aug 13, 2026
d8c1b73
docs(adr): record polytomous default hardening
seonghobae Aug 13, 2026
a0a354a
docs(adr): record current PR gate state
seonghobae Aug 13, 2026
618810e
docs(benchmark): record integrated polytomous smoke
seonghobae Aug 13, 2026
db45804
docs(adr): retain integrated judge failure evidence
seonghobae Aug 13, 2026
f8cac36
docs(benchmark): record anchored model and throughput evidence
seonghobae Aug 13, 2026
6422a20
docs(adr): record anchored judge merge gate
seonghobae Aug 13, 2026
18d8c3b
docs(adr): record synchronized judge head
seonghobae Aug 13, 2026
e0000ad
docs(benchmark): record MLX readiness and judge failure
seonghobae Aug 13, 2026
c518049
docs(adr): record latest exact-head gate
seonghobae Aug 13, 2026
c2bb2b2
feat: add bounded provider readiness refresh
seonghobae Aug 13, 2026
2f904a2
docs: record anchored judge calibration reruns
seonghobae Aug 13, 2026
bd4c1a3
docs: reconcile linked fast judge head
seonghobae Aug 13, 2026
fe8437d
docs: track fast judge evidence head
seonghobae Aug 13, 2026
bcb55d0
docs: record exact-head comment correction
seonghobae Aug 13, 2026
c860644
docs: record protection policy reconciliation
seonghobae Aug 13, 2026
273943e
docs: distinguish hosted runner queue evidence
seonghobae Aug 13, 2026
b782b01
docs: record repeated mlx concurrency sweep
seonghobae Aug 13, 2026
a7de9f6
docs: record integrated two-item judge smoke
seonghobae Aug 13, 2026
96501bb
docs: record latest exact-head merge audit
seonghobae Aug 13, 2026
910d9ef
docs: record post-main mlx smoke
seonghobae Aug 13, 2026
9d4562f
docs: record option-only bias literature
seonghobae Aug 13, 2026
435c3ef
docs: bind corrected exact-head review evidence
seonghobae Aug 13, 2026
153ca6b
docs: record full-sha review evidence correction
seonghobae Aug 13, 2026
fa20fe3
docs: record paired option-count calibration
seonghobae Aug 13, 2026
2f42a1b
docs: extend model calibration and merge evidence
seonghobae Aug 13, 2026
d83a029
docs: bind benchmark to final judge head
seonghobae Aug 13, 2026
d1f97a2
docs: record LibreSSL transport diagnosis
seonghobae Aug 13, 2026
c460270
docs: bind linked judge head to merge audit
seonghobae Aug 13, 2026
36b3d2a
docs: record latest linked judge head
seonghobae Aug 13, 2026
cc0d295
docs: record current CI capacity gate
seonghobae Aug 13, 2026
54ef9bb
docs: record binary judge calibration evidence
seonghobae Aug 13, 2026
237ba2d
docs: record judge concurrency plateau
seonghobae Aug 13, 2026
01aafd5
docs: reconcile OA and hosted gate evidence
seonghobae Aug 13, 2026
f783e95
docs: record effective protection drift
seonghobae Aug 13, 2026
bb88bf7
docs: record protection remediation
seonghobae Aug 13, 2026
7f47665
fix: require gateway provenance for LLM judges
seonghobae Aug 13, 2026
c722fa8
docs: record judge saturation evidence
seonghobae Aug 13, 2026
f3d54b1
docs: record occupancy merge gate
seonghobae Aug 13, 2026
af500ee
docs: record fast base synchronization
seonghobae Aug 13, 2026
cb88960
docs: record hosted runner capacity gate
seonghobae Aug 13, 2026
1614c7f
docs: record draft review gate
seonghobae Aug 13, 2026
adc4f80
chore: keep unreliable tiny model out of verifier lane
seonghobae Aug 13, 2026
67ed128
docs: record verifier routing gate
seonghobae Aug 13, 2026
e5180c3
docs: pin latest verifier gate evidence
seonghobae Aug 13, 2026
490dfd8
fix: route unreliable mlx judges away from verifier
seonghobae Aug 13, 2026
0df4267
docs: record final verifier routing merge gate
seonghobae Aug 14, 2026
cc413a4
docs: record protection drift remediation
seonghobae Aug 14, 2026
f6456e1
docs: record final exact-head audit
seonghobae Aug 14, 2026
8ecd379
fix: bound local MLX model switching
seonghobae Aug 14, 2026
3f33a72
feat: add fast-mlsirm runtime preflight
seonghobae Aug 14, 2026
2816140
docs: record OA PDF rights conflict
seonghobae Aug 14, 2026
d3480cc
docs: gate divergent local-llm PR behind security base
seonghobae Aug 14, 2026
6373d98
docs: record held-out MLX calibration limits
seonghobae Aug 14, 2026
63451a0
docs: refresh protected merge evidence
seonghobae Aug 14, 2026
6354c04
docs: record dedicated MLX calibration evidence
seonghobae Aug 14, 2026
62100d3
fix(local): validate MLX model registry before readiness probe
seonghobae Aug 14, 2026
bd2515f
docs: record 3B non-ceiling calibration result
seonghobae Aug 14, 2026
b36878c
docs: bind latest exact-head merge evidence
seonghobae Aug 14, 2026
52e0746
docs: reject unbound Strix evidence
seonghobae Aug 14, 2026
29e1388
docs: bind central Strix dependency
seonghobae Aug 14, 2026
b30697d
docs(adr): record stale gates and calibration stratification
seonghobae Aug 14, 2026
160471b
docs(calibration): record K-stratified MLX evidence
seonghobae Aug 14, 2026
a5f7697
docs: record unbound Strix evidence
seonghobae Aug 14, 2026
7cfad1b
docs: record review evidence transport fix
seonghobae Aug 14, 2026
d00431e
docs: record Strix provider recovery
seonghobae Aug 14, 2026
4465922
docs: record organization ruleset governance gap
seonghobae Aug 14, 2026
da849d3
docs: record repaired organization policy
seonghobae Aug 14, 2026
27aa4ad
docs: record review identity correction
seonghobae Aug 14, 2026
b2b3d8e
docs: record provider execution contract failure
seonghobae Aug 14, 2026
d1bc819
docs: clarify dedicated MLX benchmark endpoint
seonghobae Aug 14, 2026
8bf757f
docs: record exact-head identity correction
seonghobae Aug 14, 2026
8194e04
docs: record current unbound security evidence
seonghobae Aug 14, 2026
383ccfd
docs: record contextual strix provenance gap
seonghobae Aug 14, 2026
50b91c3
docs: clarify intermittent libreSSL transport evidence
seonghobae Aug 14, 2026
792c9ce
docs: record central evidence boundary remediation
seonghobae Aug 14, 2026
b72a838
docs: record exact-head comment correction
seonghobae Aug 14, 2026
e99b097
docs: record structured status regressions
seonghobae Aug 14, 2026
abfb45a
docs: record unbound central strix success
seonghobae Aug 14, 2026
9f45226
docs: record stale review request correction
seonghobae Aug 14, 2026
eaf7ff3
docs: record safe review payload transport
seonghobae Aug 14, 2026
bad1e1a
fix: prevent concurrent completion ID collisions
seonghobae Aug 14, 2026
a07c11f
docs: record review transport limits
seonghobae Aug 14, 2026
19c3e88
docs: record fast judge contract preflight regression
seonghobae Aug 14, 2026
4923447
docs: record linked PR runner gate state
seonghobae Aug 14, 2026
a9278d1
docs: record judge evidence redaction
seonghobae Aug 14, 2026
c0c2ecb
docs: bind current judge preflight evidence
seonghobae Aug 14, 2026
73853a4
docs: bind final linked PR gate evidence
seonghobae Aug 14, 2026
3ab44dd
docs: correct runner evidence interpretation
seonghobae Aug 14, 2026
474b667
docs: record warm mlx gateway throughput
seonghobae Aug 14, 2026
1d3e062
docs: record exact-head judge smoke
seonghobae Aug 14, 2026
1b22ff0
fix: retry transient TLS socket failures
seonghobae Aug 14, 2026
bc882c0
docs: pin TLS retry ADR evidence
seonghobae Aug 14, 2026
0fb8fdb
docs: record exact-head K calibration
seonghobae Aug 14, 2026
f0f30f3
docs: record current actions queue evidence
seonghobae Aug 14, 2026
3bc1264
docs: record review identity correction
seonghobae Aug 14, 2026
8f922d8
docs: distinguish actions queue from outage
seonghobae Aug 14, 2026
1c5b5c8
docs: record current MLX judge recheck
seonghobae Aug 14, 2026
9f662c4
docs: clarify cross-repository judge runtime
seonghobae Aug 14, 2026
070d929
docs: record direct MLX gateway comparison
seonghobae Aug 14, 2026
53f47a6
docs: record current integrated judge smoke
seonghobae Aug 14, 2026
dac931f
docs: record unbound exact-head strix evidence
seonghobae Aug 14, 2026
229bb30
fix: redact provider probe diagnostics
seonghobae Aug 14, 2026
f15ccb0
docs: record warm local mlx gateway recheck
seonghobae Aug 14, 2026
c6f30eb
docs: record exact-head judge smoke
seonghobae Aug 14, 2026
228126b
docs: align container secret guidance with KV
seonghobae Aug 14, 2026
cdca9d8
fix: reject incomplete batch responses
seonghobae Aug 14, 2026
018f6ef
docs: record current-head judge smoke
seonghobae Aug 14, 2026
c580839
docs: record current hosted gate state
seonghobae Aug 14, 2026
61f94a0
docs: record unbound strix artifact
seonghobae Aug 14, 2026
c179b54
docs: record exact Strix artifact identity gate
seonghobae Aug 14, 2026
ccfa292
docs: record exact-head comment correction
seonghobae Aug 14, 2026
15a16d8
docs: record current MLX integrated smoke
seonghobae Aug 14, 2026
06dfa40
docs: record minimal Strix successor gate
seonghobae Aug 14, 2026
b1dc49e
docs: record inconsistent PR snapshot guard
seonghobae Aug 14, 2026
87e1c3b
docs: record central suite validation
seonghobae Aug 14, 2026
df5f5bf
docs: record quoted check audit paths
seonghobae Aug 14, 2026
a9cd011
docs: harden shell audit argument handling
seonghobae Aug 14, 2026
71164ae
docs: record current Actions queue evidence
seonghobae Aug 14, 2026
a139ece
docs: record superseded central PR closure
seonghobae Aug 14, 2026
1c05e20
docs: record current gateway throughput sweep
seonghobae Aug 14, 2026
bd78ca1
docs: record strict option-count calibration
seonghobae Aug 14, 2026
ebc76d4
docs: record current exact-head queue
seonghobae Aug 14, 2026
719d9cc
docs: compare polytomous judge methods
seonghobae Aug 14, 2026
e9935d7
docs: record routed mlx judge recheck
seonghobae Aug 14, 2026
aeae379
docs: record fresh local gateway evidence
seonghobae Aug 14, 2026
efc4b5f
docs: record current protected gate state
seonghobae Aug 14, 2026
1003cea
docs: record check materialization re-poll
seonghobae Aug 14, 2026
40b7bac
fix(security): enforce scoped token modes
seonghobae Aug 14, 2026
2e36f9b
fix(security): keep scope precedence at authorization
seonghobae Aug 14, 2026
491566e
docs: record vpn and trusted strix failure evidence
seonghobae Aug 14, 2026
887cc66
docs: record current protected merge gate
seonghobae Aug 14, 2026
cdfc15d
docs: record gateway rate-limit benchmark boundary
seonghobae Aug 14, 2026
fcb82a1
docs: record check audit quoting regression
seonghobae Aug 14, 2026
3a59b67
docs: record invalid review identity
seonghobae Aug 14, 2026
007acf6
docs: record current hosted gate state
seonghobae Aug 14, 2026
0b19112
docs: correct mlx benchmark evidence
seonghobae Aug 14, 2026
60d9cfc
fix: separate local gateway credentials and structured judge transport
seonghobae Aug 14, 2026
9058a08
docs: record hosted security provenance gaps
seonghobae Aug 14, 2026
e3e9788
docs: record Strix provider contract failure
seonghobae Aug 14, 2026
621c42f
docs: record MLX output budget calibration
seonghobae Aug 14, 2026
d7133c4
docs: record linked security finding
seonghobae Aug 14, 2026
64b6d56
docs: record linked fix validation
seonghobae Aug 14, 2026
e0413fe
docs: record unbound strix evidence
seonghobae Aug 14, 2026
68002d0
docs: record current Strix review evidence drift
seonghobae Aug 14, 2026
d5236bb
docs: bind latest contextual Strix evidence state
seonghobae Aug 14, 2026
de4d95a
docs: record Strix failure-marker evidence
seonghobae Aug 14, 2026
2acb3a4
docs: bind latest contextual zero-finding evidence
seonghobae Aug 14, 2026
775ea13
docs: record live orchestration latency
seonghobae Aug 14, 2026
badcf28
fix(ci): align atheris with coverage image
seonghobae Aug 15, 2026
6a411be
docs(adr): bind coverage review evidence
seonghobae Aug 15, 2026
d2072fa
docs(adr): record review dependency gate
seonghobae Aug 15, 2026
63d9abf
docs(adr): record unbound green Strix evidence
seonghobae Aug 15, 2026
83b17bd
docs: record unbound Strix SQL finding false positive
seonghobae Aug 15, 2026
a1d486a
docs: record current bound-free Strix result
seonghobae Aug 15, 2026
785d125
feat: multi-provider model auto-discovery and cost-based auto-optimiz…
seonghobae Aug 18, 2026
b01c1f0
feat: support provider Responses API protocols
seonghobae Aug 19, 2026
d97e481
feat: make multimodal message handling native
seonghobae Aug 19, 2026
4cf6114
feat: configure native provider embedding backend
seonghobae Aug 19, 2026
f16c751
feat: propagate request metadata through orchestration
seonghobae Aug 19, 2026
bfecabd
feat: let orchestrator own reasoning effort defaults
seonghobae Aug 19, 2026
5913c2a
feat: orchestrate provider-shaped requests across agents
seonghobae Aug 19, 2026
b3a81ac
test: cover provider reasoning effort capabilities
seonghobae Aug 19, 2026
c064db5
fix: enforce structured synthesis output
seonghobae Aug 19, 2026
146ae37
test: cover json schema multi-agent synthesis
seonghobae Aug 19, 2026
76941bd
fix: include json schema in synthesis prompt
seonghobae Aug 19, 2026
b200ca9
feat: configure multimodal request body limits
seonghobae Aug 19, 2026
1d4910d
fix: validate and repair structured synthesis
seonghobae Aug 19, 2026
624e8c3
fix: use JSON object for schema repair
seonghobae Aug 19, 2026
0d6b5bd
feat: discover provider model pools in orchestrator
seonghobae Aug 19, 2026
6e5a9b1
fix: normalize local provider discovery URLs
seonghobae Aug 19, 2026
fdf83bd
fix: rotate failed provider feature agents
seonghobae Aug 19, 2026
ff24865
fix: keep structured format at synthesis boundary
seonghobae Aug 19, 2026
e3b818a
fix: adapt schema synthesis to gateway capabilities
seonghobae Aug 19, 2026
eba2671
fix: exhaust synthesis pool for structured repair
seonghobae Aug 19, 2026
6e7d44a
fix: exclude explicit embedding model from chat pool
seonghobae Aug 19, 2026
7af21d7
fix: omit unsupported default sampling parameters
seonghobae Aug 19, 2026
b5436e0
fix: negotiate unsupported provider temperature
seonghobae Aug 19, 2026
9cc2918
refactor: remove direct mlx provider contract
seonghobae Aug 19, 2026
7bcb977
fix: negotiate structured output provider capabilities
seonghobae Aug 19, 2026
af228e5
fix: omit image payloads from synthesis prompts
seonghobae Aug 19, 2026
81364ee
fix: negotiate responses for auto feature requests
seonghobae Aug 19, 2026
0298693
fix: keep gateway alive when model discovery is unavailable
seonghobae Aug 19, 2026
4a90126
docs: codify paper-grounded adaptive reasoning policy
seonghobae Aug 19, 2026
11ac446
docs: separate transport capability from model policy
seonghobae Aug 19, 2026
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 .adr-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
project_slug: contextual-orchestrator
owner: ContextualWisdomLab
default_status: proposed
decision_id_format: NNNN
template_source: madr-v4
last_decision_id: 0009
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ updates:
day: monday
time: "04:00"
timezone: Asia/Seoul
cooldown:
default-days: 7
open-pull-requests-limit: 5

- package-ecosystem: pip
Expand All @@ -16,4 +18,6 @@ updates:
day: monday
time: "04:30"
timezone: Asia/Seoul
cooldown:
default-days: 7
open-pull-requests-limit: 5
16 changes: 10 additions & 6 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,11 @@ jobs:
persist-credentials: false

- name: Set up Python
# Atheris ships wheels/builds cleanly for 3.11 (Clang + libFuzzer).
# Atheris 3.1.0 dropped the cp311 wheel; use the same cp312-compatible
# pin that the central CPython 3.14 coverage-evidence image preflights.
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # actions/setup-python@v6
with:
python-version: "3.11"
python-version: "3.12"

- name: Install Atheris
# Hash-pinned per OpenSSF Scorecard Pinned-Dependencies. Sources:
Expand All @@ -72,16 +73,19 @@ jobs:
fi

- name: Fuzz request-body parser
run: python fuzz/fuzz_request_body.py -max_total_time=${FUZZ_SECONDS} -artifact_prefix=crash- fuzz/corpus/request_body
run: python fuzz/fuzz_request_body.py -max_total_time="${FUZZ_SECONDS}" -artifact_prefix=crash- fuzz/corpus/request_body

- name: Fuzz agent-config parser
run: python fuzz/fuzz_agent_config.py -max_total_time=${FUZZ_SECONDS} -artifact_prefix=crash- fuzz/corpus/agent_config
run: python fuzz/fuzz_agent_config.py -max_total_time="${FUZZ_SECONDS}" -artifact_prefix=crash- fuzz/corpus/agent_config

- name: Fuzz secret redaction
run: python fuzz/fuzz_redaction.py -max_total_time=${FUZZ_SECONDS} -artifact_prefix=crash- fuzz/corpus/redaction
run: python fuzz/fuzz_redaction.py -max_total_time="${FUZZ_SECONDS}" -artifact_prefix=crash- fuzz/corpus/redaction

- name: Fuzz orchestration engine
run: python fuzz/fuzz_orchestration.py -max_total_time=${FUZZ_SECONDS} -artifact_prefix=crash- fuzz/corpus/orchestration
run: python fuzz/fuzz_orchestration.py -max_total_time="${FUZZ_SECONDS}" -artifact_prefix=crash- fuzz/corpus/orchestration

- name: Fuzz model-judge response parser
run: python fuzz/fuzz_model_judge.py -max_total_time="${FUZZ_SECONDS}" -artifact_prefix=crash- fuzz/corpus/judge

- name: Upload crash artifacts
if: failure()
Expand Down
38 changes: 36 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,19 @@ push or open a PR.
- Its `ModelClient` currently reads `os.environ.get(agent.api_key_env)` — this
is the KV-principle deviation above. Resolve the API key (including the org
`OPENAI_API_KEY`) from the **KV / credential registry**, not env.
- The **OpenCode review pipeline is separate** and stays on **GitHub Models** —
do not change it.
- **Policy change (2026-08-18, explicit org decision, supersedes the prior
"stays on GitHub Models" rule):** OpenCode, Noema, and Strix — the org's
three-stage CI review pipeline defined in `ContextualWisdomLab/.github`
(`opencode.jsonc`, `noema-review.yml`, `strix.yml`) — are being migrated to
use `contextual-orchestrator` as their shared backend, with
`BYTEZ_API_KEY`, `NVIDIA_NIM_API_KEY`, `NVIDIA_NIM_API_KEY_SUB`,
`OPENROUTER_API_KEY`, and `OPENAI_API_KEY` registered in this repo's KV so
it auto-discovers models across all five and auto-optimizes routing by
cost (see `contextual_orchestrator/model_discovery.py`, the
`discover-models` CLI subcommand, and `ModelAgent.auth_scheme` for
non-Bearer providers like Bytez). The provider-config change to the org
repo itself lands as a separate, human-reviewed PR — this repo does not
push or merge it automatically.

### This repo's role in the ecosystem

Expand Down Expand Up @@ -108,4 +119,27 @@ push or open a PR.
cost-optimal LLM routing, upstream load balancing, and latency/throughput
scheduling (e.g. LLM-cascade / model-routing and queueing/load-balancing
papers).

### Model and reasoning policy

- Model selection, reasoning-effort allocation, orchestration topology, and
claims about quality/cost trade-offs must be grounded in cited academic
papers and current capability evidence. Do not introduce a model policy from
a vendor blog, benchmark marketing claim, or an implementation convention.
The governing decision is [ADR 0011](docs/planning/adrs/0011-paper-grounded-adaptive-reasoning-policy.md).
- `auto` is an orchestrator policy, not a provider `reasoning_effort` value. It
may select a provider-supported value or an orchestrated multi-agent path,
but the trace must retain the requested policy and the effective strategy.
- Provider values are capability-negotiated. Do not send `none`, `minimal`,
`low`, `medium`, `high`, or `xhigh` unless the selected provider advertises
that value; omit the field for a non-reasoning provider. Never infer support
from a model name.
- `high` and `xhigh` may require multiple independent attempts, verification,
and synthesis when one worker cannot provide the requested capability. That
is an orchestrator strategy, not a claim that a non-reasoning worker became a
reasoning model.
- MLX is not a public provider contract. Keep runtime-specific local model
behavior behind an authenticated provider-neutral gateway as specified by
ADR 0010; do not add direct `mlx://` configuration, transport, or model
selection logic.
<!-- END cwl-agent-guidance -->
7 changes: 4 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

- **Security gate**: every PR to `main` runs the required Security workflow. A failing Trivy or pip-audit job is a real finding — remediate by bumping the dependency and regenerating `requirements.lock`; never weaken, `continue-on-error`, or disable the gate.
- **KV, not env**: runtime config and provider secrets are resolved from the KV credential registry (`get_credential`), never `os.getenv` at request time. Env is only bootstrap transport into the KV (see `docs/kv-credentials.md`).
- **Org role**: this repo is the org's LLM gateway (cost optimizer + sync/batch routing + upstream load balancing, LiteLLM-plus scope), consumed by `gyeot` and `scopeweave`. The OpenCode review pipeline is separate, stays on GitHub Models, and must not be changed.
- **Org role**: this repo is the org's LLM gateway (cost optimizer + sync/batch routing + upstream load balancing, LiteLLM-plus scope), consumed by `gyeot` and `scopeweave`. As of 2026-08-18, OpenCode/Noema/Strix (the org's CI review pipeline in `ContextualWisdomLab/.github`) are being migrated onto this gateway as their shared backend — see AGENTS.md's "This repo: the org LLM gateway" section for the full policy and scope.
- **Research grounding**: substantive feature/process PRs should attach the relevant papers (PDF when redistribution is permissible, otherwise cite + link + summary) under `docs/papers/` with full citations.

This file complements AGENTS.md with commands and architecture; where they differ, AGENTS.md wins.
Expand Down Expand Up @@ -44,8 +44,9 @@ python fuzz/fuzz_request_body.py -max_total_time=60 fuzz/corpus/request_body
python -m contextual_orchestrator "your prompt" --agents examples/agents.mock.json

# Serve the OpenAI-compatible API + /admin console
export CONTEXTUAL_ORCHESTRATOR_TOKEN="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')"
python -m contextual_orchestrator --serve --agents examples/agents.mock.json --port 8000
local_token="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')"
python -m contextual_orchestrator --serve --agents examples/agents.mock.json --port 8000 \
--auth-token "$local_token"

# Loopback-only local dev server (auth disabled; loopback only)
./.superset/run.sh
Expand Down
11 changes: 6 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
# tree on a slim Python base. Runs the OpenAI-compatible server.
#
# Build: docker build -t contextual-orchestrator .
# Run : docker run --rm -p 8000:8000 \
# -e CONTEXTUAL_ORCHESTRATOR_TOKEN=change-me \
# -e OPENAI_API_KEY=sk-... \
# contextual-orchestrator
# Run : seed CONTEXTUAL_ORCHESTRATOR_TOKEN and provider credentials into the KV
# registry first, then use:
# docker run --rm -p 8000:8000 contextual-orchestrator
# Runtime secrets are never passed through the container environment or argv;
# see docs/kv-credentials.md for the bootstrap flow.
# Agents: defaults to the bundled mock pool; mount your own and set AGENTS_FILE:
# -v ./agents.json:/app/agents.json -e AGENTS_FILE=/app/agents.json
# python:3.12-slim
Expand All @@ -26,4 +27,4 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \
CMD ["python", "-c", "import urllib.request,os;urllib.request.urlopen(f'http://127.0.0.1:{os.environ.get(\"PORT\",\"8000\")}/healthz', timeout=2)"]

# --allow-public-bind: 컨테이너 내부 0.0.0.0 바인딩 필요(외부 노출은 호스트 포트 매핑이 결정)
CMD ["sh", "-c", "python -m contextual_orchestrator --serve --agents \"$AGENTS_FILE\" --host 0.0.0.0 --port \"$PORT\" --allow-public-bind"]
CMD ["sh", "-c", "python -m contextual_orchestrator --serve --agents \"$AGENTS_FILE\" --host 0.0.0.0 --port \"$PORT\" --allow-public-bind --auth-token-key CONTEXTUAL_ORCHESTRATOR_TOKEN"]
Loading
Loading