You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit de7c82d
Browse filesBrowse the repository at this point in the historyBrowse files
has no LiteLLM `_hidden_params`, so the teacher's SDK cost estimate would silently
29
-
become "unknown". `DSPyTeacher`therefore passes`engine="litellm"` whenever
30
-
`dspy.LM` accepts `engine`(3.3.x has no such argument and always uses LiteLLM).
31
+
become "unknown". the #90 checkpoint therefore selected`engine="litellm"`. The #93 engine now
32
+
observes the raw LiteLLM response before conversion (3.3 retains its legacy path).
31
33
- Unchanged in 3.4.0 (checked offline against a loopback test double): caches off,
32
34
`disable_history=True` leaves no history, signature-call and LM-forward ceilings count,
33
35
`S1_TEACHER_API_BASE`/`S1_TEACHER_API_KEY` reach the request, consent flags are untouched.
34
36
- Pydantic: `dspy` 3.4.0 itself requires `pydantic>=2.11.0`, so the `optimize` extra
35
37
resolves to it automatically. The base install stays `pydantic>=2.10,<3`.
36
-
- Not covered: `dspy[typesafe]`, `TypeSafe`/`Noul`/`Choice`/`Score` decision types and
37
-
`ReAnchor` are not used or tested here.
38
+
- The #90 checkpoint did not cover the native DSPy client. The #91 qualification
39
+
below covers raw native transport, not DSPy Predict decision-type translation
40
+
or ReAnchor. Those remain unused.
38
41
- The documentation inspection date above was not changed; this verification used the
39
42
installed packages, not a fresh read of the primary documentation.
40
43
@@ -121,3 +124,42 @@ the pinned `jev-1.13.0` only under the operator's own equivalence confirmation,
121
124
not an independent attestation.
122
125
Unexpected returned model identities fail. None of these routes has been verified
123
126
live in this repository. See `examples/ai-gateway/README.md` for caps and setup.
127
+
128
+
## Compile-only TypeSafe qualification (#91)
129
+
130
+
Owner decision on 2026-10-03: use the DSPy client for native compile-time
131
+
evaluation and retain the direct SDK for frozen runtime. Install
132
+
`python -m pip install -e '.[compile]'`; combine with `optimize` when a generative
133
+
teacher/GEPA is required. The teacher's 3.3.1 floor remains supported independently;
134
+
the experimental native wrapper refuses all versions except DSPy 3.4.0 and
135
+
typesafe-sdk 0.7.0. This deliberately fails closed on unverified patch releases.
136
+
137
+
Gap analysis against actual pinned upstream code, rechecked 2026-10-03:
138
+
139
+
| Upstream behavior | Qualified wrapper |
140
+
| --- | --- |
141
+
| Defaults to `jev-latest`; no returned-model equality check | Versioned explicit model; ManagedBackend validates exact returned identity. |
142
+
| SDK kwargs omit RetryPolicy (SDK default is two retries) | Explicit RetryPolicy(max_retries=0), fixed timeout. |
143
+
| Cache defaults on; history may retain raw state/questions/response | Per-client cache off; history/callbacks/tracker disabled; no upstream response retention. |
144
+
| Response mapping drops Score legend; public result drops model/usage envelope | Raw native dictionaries and full SDK JSON envelope preserved. |
145
+
| No paid consent or our attempt ledger | Explicit allow_paid; ManagedBackend pre-dispatch budget/cache/identity and per-leaf reservations/settlement. |
146
+
| No billed cost evidence | Dollar cost remains null. |
147
+
148
+
The wrapper uses exact-version experimental `_sdk_kwargs`, `_response` and
149
+
`_finish` hooks. Native client traffic never goes through a generative Predict
150
+
program. Compile CLI and flat/hierarchy research selection choose this backend;
151
+
frozen run, evaluate and held-out study phases use the direct SDK. Callers of
152
+
the Python compiler explicitly supply their backend. The direct SDK backend is
153
+
retained for runtime, rather than deprecated away. The live hierarchy manifest
154
+
binds separate compile and runtime identities; the code/manifest change needs
155
+
a fresh digest-bound review before paid selection. It cannot revive old consent.
0 commit comments