@bolt-foundry/gambit 0.8.6 → 1.0.0-rc.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.
- package/CHANGELOG.md +54 -2
- package/README.md +165 -50
- package/esm/mod.d.ts +11 -3
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +7 -1
- package/esm/src/codex_app_server_debug.d.ts +1 -1
- package/esm/src/codex_app_server_debug.d.ts.map +1 -1
- package/esm/src/codex_app_server_debug.js +1 -1
- package/esm/src/codex_auth.d.ts +1 -1
- package/esm/src/codex_auth.d.ts.map +1 -1
- package/esm/src/codex_auth.js +1 -1
- package/esm/src/default_runtime.d.ts +5 -1
- package/esm/src/default_runtime.d.ts.map +1 -1
- package/esm/src/default_runtime.js +48 -29
- package/esm/src/openai_compat.d.ts.map +1 -1
- package/esm/src/openai_compat.js +111 -11
- package/esm/src/providers/claude_code.d.ts.map +1 -1
- package/esm/src/providers/claude_code.js +3 -3
- package/esm/src/providers/codex.d.ts +12 -1
- package/esm/src/providers/codex.d.ts.map +1 -1
- package/esm/src/providers/codex.js +94 -30
- package/esm/src/providers/google.d.ts.map +1 -1
- package/esm/src/providers/google.js +7 -114
- package/esm/src/providers/manifest.d.ts +2 -2
- package/esm/src/providers/manifest.d.ts.map +1 -1
- package/esm/src/providers/manifest.js +5 -5
- package/esm/src/providers/ollama.d.ts.map +1 -1
- package/esm/src/providers/ollama.js +0 -112
- package/esm/src/providers/openrouter.d.ts.map +1 -1
- package/esm/src/providers/openrouter.js +0 -264
- package/esm/src/providers/requirements.js +1 -1
- package/package.json +1 -1
- package/script/mod.d.ts +11 -3
- package/script/mod.d.ts.map +1 -1
- package/script/mod.js +15 -6
- package/script/src/codex_app_server_debug.d.ts +1 -1
- package/script/src/codex_app_server_debug.d.ts.map +1 -1
- package/script/src/codex_app_server_debug.js +1 -1
- package/script/src/codex_auth.d.ts +1 -1
- package/script/src/codex_auth.d.ts.map +1 -1
- package/script/src/codex_auth.js +1 -1
- package/script/src/default_runtime.d.ts +5 -1
- package/script/src/default_runtime.d.ts.map +1 -1
- package/script/src/default_runtime.js +48 -28
- package/script/src/openai_compat.d.ts.map +1 -1
- package/script/src/openai_compat.js +110 -10
- package/script/src/providers/claude_code.d.ts.map +1 -1
- package/script/src/providers/claude_code.js +3 -3
- package/script/src/providers/codex.d.ts +12 -1
- package/script/src/providers/codex.d.ts.map +1 -1
- package/script/src/providers/codex.js +94 -29
- package/script/src/providers/google.d.ts.map +1 -1
- package/script/src/providers/google.js +7 -114
- package/script/src/providers/manifest.d.ts +2 -2
- package/script/src/providers/manifest.d.ts.map +1 -1
- package/script/src/providers/manifest.js +5 -5
- package/script/src/providers/ollama.d.ts.map +1 -1
- package/script/src/providers/ollama.js +0 -112
- package/script/src/providers/openrouter.d.ts.map +1 -1
- package/script/src/providers/openrouter.js +0 -264
- package/script/src/providers/requirements.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,16 +1,68 @@
|
|
|
1
1
|
+++
|
|
2
2
|
[release]
|
|
3
|
-
since = "
|
|
3
|
+
since = "00872eb8b2190de2ba0904c0ac4f4cdbc611718b"
|
|
4
4
|
+++
|
|
5
5
|
|
|
6
6
|
# Changelog
|
|
7
7
|
|
|
8
|
-
## Unreleased (
|
|
8
|
+
## Unreleased (v1.0.0)
|
|
9
|
+
|
|
10
|
+
- TBD
|
|
11
|
+
|
|
12
|
+
## v1.0.0-rc.2
|
|
13
|
+
|
|
14
|
+
- fix(gambit): preserve structured text spacing
|
|
15
|
+
- fix(gambit): pass codex runtime tools
|
|
16
|
+
- feat(gambit): make provider execution responses-only
|
|
17
|
+
- feat(gambit): expose structured responses runtime
|
|
18
|
+
- fix(gambit): preserve responses continuation context
|
|
19
|
+
- chore(gambit): remove dead chat provider adapters
|
|
20
|
+
- test(gambit): remove legacy chat suites
|
|
21
|
+
- chore(browser): move runtime out of Gambit
|
|
22
|
+
- feat(gambit): add live browser pointer refs
|
|
23
|
+
- feat(workloop): bridge runtime Codex refresh to host services
|
|
24
|
+
- feat(gambit): add browser introspection live commands
|
|
25
|
+
- fix(gambit): fall back without host service token
|
|
26
|
+
- fix(workloop): preserve Codex auth refresh failures
|
|
27
|
+
- fix(gambit): preserve whitespace in streamed assistant deltas
|
|
28
|
+
- fix(workloop): disable Codex websockets in chief runtime
|
|
29
|
+
- feat(gambit): add local deck chat repro server
|
|
30
|
+
- feat(gambit): stream and control chat turns
|
|
31
|
+
- feat(gambit): improve chat event observability
|
|
32
|
+
- docs(gambit): use canonical graders frontmatter
|
|
33
|
+
- fix(gambit): reject sandboxed chat runs
|
|
34
|
+
- docs(gambit): reposition around scenarios and graders
|
|
35
|
+
- docs(gambit): record agent file naming feedback
|
|
36
|
+
- chore(gambit): record full precommit verification
|
|
37
|
+
- fix(gambit): hydrate chat transcript from persisted state
|
|
38
|
+
- chore(gambit): use generic runtime env names
|
|
39
|
+
- docs(workloop): align Gambit brand hierarchy
|
|
40
|
+
|
|
41
|
+
## v1.0.0-rc.1
|
|
42
|
+
|
|
43
|
+
- BREAKING: make Gambit runtime execution Responses-only.
|
|
44
|
+
- BREAKING: remove provider `chat` and provider-owned `resolveModel` from the
|
|
45
|
+
public `ModelProvider` contract.
|
|
46
|
+
- feat(gambit): add `runDeckResponses` as the canonical structured runtime
|
|
47
|
+
entrypoint with response output items, trace evidence, saved state, usage,
|
|
48
|
+
finish reason, effects, and a legacy fallback result.
|
|
49
|
+
- feat(gambit): add separate `ModelResolver` plumbing for model alias and
|
|
50
|
+
provider fallback resolution.
|
|
51
|
+
- feat(gambit): migrate core runtime, action recursion, MCP, OpenAI
|
|
52
|
+
compatibility, CLI/TUI, simulator workspace flows, website FAQ chat, and
|
|
53
|
+
Workloop completion projection to Responses-shaped execution.
|
|
54
|
+
|
|
55
|
+
## v0.8.7
|
|
9
56
|
|
|
10
57
|
- TBD
|
|
11
58
|
|
|
12
59
|
## v0.8.6
|
|
13
60
|
|
|
61
|
+
- fix(gambit): preserve spaces when flattening structured text parts
|
|
62
|
+
- fix(gambit-release): repair local compile preflight for nested core packages
|
|
63
|
+
|
|
64
|
+
## v0.8.6-rc.7
|
|
65
|
+
|
|
14
66
|
- TBD
|
|
15
67
|
|
|
16
68
|
## v0.8.6-rc.6
|
package/README.md
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
# <img src="./gambit_1color_bg.png" alt="Gambit logo" height="50" />
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
Agent frameworks help you build agents. Gambit helps you create the evidence
|
|
4
|
+
that they work.
|
|
5
|
+
|
|
6
|
+
Gambit is the synthetic scenario and evaluation layer for agent systems: create
|
|
7
|
+
realistic scenarios, validate their quality, run agents against them, grade the
|
|
8
|
+
behavior, capture trace evidence, and turn failures into regression suites.
|
|
9
|
+
|
|
10
|
+
Native Gambit agents are still the fastest path to the fully integrated loop:
|
|
11
|
+
typed inputs and outputs, local runs, scenarios, graders, traces, permission
|
|
12
|
+
evidence, and the simulator's Build/Test/Grade/Verify workflow.
|
|
7
13
|
|
|
8
14
|
[Watch the demo video](https://youtu.be/J_hQ2L_yy60).
|
|
9
15
|
|
|
@@ -19,8 +25,8 @@ export OPENROUTER_API_KEY=...
|
|
|
19
25
|
npx @bolt-foundry/gambit demo
|
|
20
26
|
```
|
|
21
27
|
|
|
22
|
-
Downloads example files (hello
|
|
23
|
-
environment variables.
|
|
28
|
+
Downloads example files (hello agent definitions plus the `examples/` gallery)
|
|
29
|
+
and sets environment variables.
|
|
24
30
|
|
|
25
31
|
To start onboarding with the simulator, run:
|
|
26
32
|
|
|
@@ -29,7 +35,7 @@ npx @bolt-foundry/gambit-simulator serve gambit/hello.deck.md
|
|
|
29
35
|
open http://localhost:8000/debug
|
|
30
36
|
```
|
|
31
37
|
|
|
32
|
-
Use the Build tab to draft your own workspace
|
|
38
|
+
Use the Build tab to draft your own workspace agents and scenarios.
|
|
33
39
|
|
|
34
40
|
Run an example in the terminal (`repl`):
|
|
35
41
|
|
|
@@ -48,35 +54,102 @@ open http://localhost:8000/debug
|
|
|
48
54
|
|
|
49
55
|
---
|
|
50
56
|
|
|
57
|
+
## Why Gambit
|
|
58
|
+
|
|
59
|
+
Agent teams already have many ways to build and orchestrate agents: native
|
|
60
|
+
Gambit, Mastra, LangGraph, OpenAI Agents SDK, CrewAI, Google ADK, LlamaIndex,
|
|
61
|
+
Pydantic AI, and custom stacks. The harder product problem is creating the
|
|
62
|
+
situations those agents need to survive, checking whether those situations are
|
|
63
|
+
good tests, and preserving the evidence when behavior regresses.
|
|
64
|
+
|
|
65
|
+
Gambit focuses on that reliability loop:
|
|
66
|
+
|
|
67
|
+
- **Generate scenarios** for realistic user, tool, workflow, policy, and edge
|
|
68
|
+
case pressure.
|
|
69
|
+
- **Evaluate the scenario data** for realism, coverage, difficulty, grounding,
|
|
70
|
+
duplication, and expected-outcome clarity.
|
|
71
|
+
- **Run agent evals** against native Gambit, Mastra, LangGraph, OpenAI, or
|
|
72
|
+
custom agents.
|
|
73
|
+
- **Grade behavior** from transcripts, artifacts, traces, and typed outputs.
|
|
74
|
+
- **Diagnose failures** with trace evidence and permission evidence.
|
|
75
|
+
- **Regenerate regression suites** from failures so the same behavior does not
|
|
76
|
+
quietly break again.
|
|
77
|
+
|
|
78
|
+
For a native Gambit agent, the same system defines, runs, traces, tests, grades,
|
|
79
|
+
and debugs the agent end to end. For a Mastra, LangGraph, OpenAI, or custom
|
|
80
|
+
agent, Gambit sits on the other side of the framework: the test-data engine,
|
|
81
|
+
grader loop, local reproduction harness, and CI behavior check.
|
|
82
|
+
|
|
83
|
+
## Common workflows
|
|
84
|
+
|
|
85
|
+
### Native Gambit path
|
|
86
|
+
|
|
87
|
+
Define the agent in Gambit, run it locally, add scenarios for the behavior that
|
|
88
|
+
must keep working, attach graders, inspect traces in the simulator, and reuse
|
|
89
|
+
the same checks in CI. This is the most direct path when you want Gambit to own
|
|
90
|
+
both the agent definition and the verification loop.
|
|
91
|
+
|
|
92
|
+
### Bring your own agent
|
|
93
|
+
|
|
94
|
+
Use Mastra to build the TypeScript agent application. Use Gambit to create and
|
|
95
|
+
validate scenario suites around the important Mastra behaviors, then grade the
|
|
96
|
+
transcripts and artifacts those runs produce. A thin wrapper can record run
|
|
97
|
+
inputs, transcript turns, artifacts, state paths, and trace references so Gambit
|
|
98
|
+
can grade them and keep failing cases reproducible.
|
|
99
|
+
|
|
100
|
+
### Pull request gate
|
|
101
|
+
|
|
102
|
+
Run important scenarios on every pull request, grade the resulting transcripts
|
|
103
|
+
or artifacts, and fail the check when behavior drops below the expected
|
|
104
|
+
standard. Failed checks should keep the trace, state, and reproduction inputs so
|
|
105
|
+
the regression can be debugged locally.
|
|
106
|
+
|
|
107
|
+
```yaml
|
|
108
|
+
# Proposed workflow shape. This is positioning guidance, not a published
|
|
109
|
+
# bolt-foundry/gambit-action release.
|
|
110
|
+
name: Agent behavior checks
|
|
111
|
+
|
|
112
|
+
on:
|
|
113
|
+
pull_request:
|
|
114
|
+
|
|
115
|
+
jobs:
|
|
116
|
+
gambit:
|
|
117
|
+
runs-on: ubuntu-latest
|
|
118
|
+
steps:
|
|
119
|
+
- uses: actions/checkout@v4
|
|
120
|
+
- run: npx @bolt-foundry/gambit scenario gambit/root.deck.md --test-deck gambit/scenarios/smoke.deck.md --grade gambit/graders/smoke.deck.md --state .gambit/ci-smoke.json --trace .gambit/ci-smoke.jsonl
|
|
121
|
+
```
|
|
122
|
+
|
|
51
123
|
## Status quo
|
|
52
124
|
|
|
53
|
-
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
125
|
+
- Teams have more ways than ever to build agents, but fewer ways to know whether
|
|
126
|
+
their eval data covers the behavior that will matter in production.
|
|
127
|
+
- Synthetic scenarios can look plausible while duplicating each other, missing
|
|
128
|
+
policy edges, or failing to state the expected outcome clearly.
|
|
129
|
+
- Agent failures often disappear into provider logs, so the team cannot replay
|
|
130
|
+
the exact inputs, transcript, tool calls, and artifacts that caused the
|
|
131
|
+
regression.
|
|
132
|
+
- CI usually checks code shape more reliably than agent behavior.
|
|
61
133
|
|
|
62
134
|
## Our vision
|
|
63
135
|
|
|
64
|
-
-
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
feels like regular software, not guesswork.
|
|
136
|
+
- Generate the situations your agents need to survive: users, tasks, workflows,
|
|
137
|
+
tool pressure, policy edges, and hard failure modes.
|
|
138
|
+
- Grade the scenario data itself before it becomes trusted eval data.
|
|
139
|
+
- Run any target agent against the curated suite and preserve the transcript,
|
|
140
|
+
state, artifacts, trace events, and permission evidence.
|
|
141
|
+
- Diagnose failures by capability gap, tool issue, prompt issue, policy
|
|
142
|
+
ambiguity, retrieval miss, or unsafe action.
|
|
143
|
+
- Feed those failures back into sharper follow-up scenarios and regression
|
|
144
|
+
checks.
|
|
74
145
|
|
|
75
146
|
---
|
|
76
147
|
|
|
77
148
|
## Using the CLI
|
|
78
149
|
|
|
79
|
-
Use the CLI to run
|
|
150
|
+
Use the CLI to run agent definitions locally, stream output, and capture
|
|
151
|
+
traces/state. The current CLI and file format still use `deck` as the exact
|
|
152
|
+
implementation term.
|
|
80
153
|
|
|
81
154
|
Run with npx (no install):
|
|
82
155
|
|
|
@@ -84,7 +157,7 @@ Run with npx (no install):
|
|
|
84
157
|
npx @bolt-foundry/gambit <command>
|
|
85
158
|
```
|
|
86
159
|
|
|
87
|
-
Run
|
|
160
|
+
Run an agent definition once:
|
|
88
161
|
|
|
89
162
|
```
|
|
90
163
|
npx @bolt-foundry/gambit run <deck> --context <json|string> --message <json|string>
|
|
@@ -99,7 +172,34 @@ Drop into a REPL (streams by default):
|
|
|
99
172
|
npx @bolt-foundry/gambit repl <deck>
|
|
100
173
|
```
|
|
101
174
|
|
|
102
|
-
|
|
175
|
+
Start a focused browser chat for an agent definition:
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
npx @bolt-foundry/gambit chat <deck> --state .gambit/chat/workspace.sqlite --trace .gambit/chat/trace.jsonl
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Use `chat` when you need a localhost transcript, saved state, trace output, and
|
|
182
|
+
runtime-supplied tools without the full simulator workbench. Use `repl` for a
|
|
183
|
+
terminal loop, `run` for one-shot automation, and `gambit-simulator serve` for
|
|
184
|
+
Build/Test/Grade/Verify workflows.
|
|
185
|
+
|
|
186
|
+
For repeatable repros, pass `--repro-message <text>` to attach the original user
|
|
187
|
+
ask to the session payload without sending it automatically.
|
|
188
|
+
|
|
189
|
+
Supply runtime tools with Markdown/TOML files:
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
npx @bolt-foundry/gambit chat MANAGER.md --runtime-tools ./workloop-runtime-tools.mock.md
|
|
193
|
+
npx @bolt-foundry/gambit chat support.deck.md --runtime-tools ./taxo-runtime-tools.mock.md
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
The runtime-tool file uses `[[tools]]` entries with `name`, `description`,
|
|
197
|
+
optional `inputSchema`, and optional `action`. Action bindings run Gambit agent
|
|
198
|
+
definitions with the tool arguments as context, keeping product-specific tools
|
|
199
|
+
outside the portable root agent. See `examples/local-chat/` for Workloop-style
|
|
200
|
+
and Taxo-style mock tool fixtures.
|
|
201
|
+
|
|
202
|
+
Run a scenario persona against a root agent:
|
|
103
203
|
|
|
104
204
|
```
|
|
105
205
|
npx @bolt-foundry/gambit scenario <root-deck> --test-deck <persona-deck>
|
|
@@ -125,7 +225,7 @@ Tracing and state:
|
|
|
125
225
|
|
|
126
226
|
### Worker sandbox defaults
|
|
127
227
|
|
|
128
|
-
-
|
|
228
|
+
- CLI commands that execute decks default to worker sandbox execution.
|
|
129
229
|
- Use `--no-worker-sandbox` (or `--legacy-exec`) to force legacy in-process
|
|
130
230
|
execution.
|
|
131
231
|
- `--worker-sandbox` explicitly forces worker execution on.
|
|
@@ -204,7 +304,9 @@ header (left of `New chat`).
|
|
|
204
304
|
|
|
205
305
|
## Using the Library
|
|
206
306
|
|
|
207
|
-
Use the library when you want TypeScript
|
|
307
|
+
Use the library when you want TypeScript agent definitions, reusable instruction
|
|
308
|
+
snippets, or custom compute steps. The exported helper names remain `defineDeck`
|
|
309
|
+
and `defineCard` for compatibility.
|
|
208
310
|
|
|
209
311
|
Import the helpers from JSR:
|
|
210
312
|
|
|
@@ -216,25 +318,31 @@ import { defineDeck, defineCard } from "jsr:@bolt-foundry/gambit";
|
|
|
216
318
|
|
|
217
319
|
- `reviews/2026-04-15-AAR-raw-response-items.md`
|
|
218
320
|
|
|
219
|
-
Define `contextSchema`/`responseSchema` with Zod to validate IO, and implement
|
|
220
|
-
`run`/`execute` for compute
|
|
221
|
-
`ctx.spawnAndWait({ path, input })`. Emit structured trace events
|
|
222
|
-
`ctx.log(...)`.
|
|
321
|
+
Define `contextSchema`/`responseSchema` with Zod to validate IO, and implement
|
|
322
|
+
`run`/`execute` for compute agent definitions. To call a child agent definition
|
|
323
|
+
from code, use `ctx.spawnAndWait({ path, input })`. Emit structured trace events
|
|
324
|
+
with `ctx.log(...)`.
|
|
223
325
|
|
|
224
|
-
### Runtime defaults for programmatic `
|
|
326
|
+
### Runtime defaults for programmatic `runDeckResponses`
|
|
225
327
|
|
|
226
|
-
`
|
|
227
|
-
|
|
328
|
+
`runDeckResponses` from `@bolt-foundry/gambit` is the canonical Gambit 1.0
|
|
329
|
+
runtime entrypoint. It uses CLI-equivalent provider/model defaults (alias
|
|
330
|
+
expansion, provider routing, fallback behavior) and returns structured Responses
|
|
331
|
+
output. Single-string assistant text is a presentation projection, not runtime
|
|
332
|
+
state.
|
|
228
333
|
|
|
229
334
|
Before (direct-provider setup in each caller):
|
|
230
335
|
|
|
231
336
|
```ts
|
|
232
|
-
import {
|
|
337
|
+
import {
|
|
338
|
+
createOpenRouterProvider,
|
|
339
|
+
runDeckResponses,
|
|
340
|
+
} from "jsr:@bolt-foundry/gambit";
|
|
233
341
|
|
|
234
342
|
const provider = createOpenRouterProvider({
|
|
235
343
|
apiKey: Deno.env.get("OPENROUTER_API_KEY")!,
|
|
236
344
|
});
|
|
237
|
-
await
|
|
345
|
+
await runDeckResponses({
|
|
238
346
|
path: "./root.deck.md",
|
|
239
347
|
input: { message: "hi" },
|
|
240
348
|
modelProvider: provider,
|
|
@@ -244,24 +352,29 @@ await runDeck({
|
|
|
244
352
|
After (defaulted wrapper):
|
|
245
353
|
|
|
246
354
|
```ts
|
|
247
|
-
import {
|
|
355
|
+
import { runDeckResponses } from "jsr:@bolt-foundry/gambit";
|
|
248
356
|
|
|
249
|
-
await
|
|
357
|
+
const result = await runDeckResponses({
|
|
250
358
|
path: "./root.deck.md",
|
|
251
359
|
input: { message: "hi" },
|
|
252
360
|
});
|
|
361
|
+
|
|
362
|
+
console.log(result.output);
|
|
253
363
|
```
|
|
254
364
|
|
|
255
365
|
Per-runtime override (shared runtime object):
|
|
256
366
|
|
|
257
367
|
```ts
|
|
258
|
-
import {
|
|
368
|
+
import {
|
|
369
|
+
createDefaultedRuntime,
|
|
370
|
+
runDeckResponses,
|
|
371
|
+
} from "jsr:@bolt-foundry/gambit";
|
|
259
372
|
|
|
260
373
|
const runtime = await createDefaultedRuntime({
|
|
261
374
|
fallbackProvider: "codex-cli",
|
|
262
375
|
});
|
|
263
376
|
|
|
264
|
-
await
|
|
377
|
+
await runDeckResponses({
|
|
265
378
|
runtime,
|
|
266
379
|
path: "./root.deck.md",
|
|
267
380
|
input: { message: "hi" },
|
|
@@ -271,14 +384,15 @@ await runDeck({
|
|
|
271
384
|
Replacement mapping:
|
|
272
385
|
|
|
273
386
|
- Legacy direct core passthrough export: `runDeck` -> `runDeckCore`
|
|
274
|
-
-
|
|
387
|
+
- Canonical structured defaulted export: `runDeckResponses`
|
|
388
|
+
- Legacy defaulted compatibility export: `runDeck`
|
|
275
389
|
- Runtime builder: `createDefaultedRuntime`
|
|
276
390
|
|
|
277
391
|
---
|
|
278
392
|
|
|
279
|
-
## Author your first
|
|
393
|
+
## Author your first native Gambit agent
|
|
280
394
|
|
|
281
|
-
### Minimal Markdown
|
|
395
|
+
### Minimal Markdown agent definition (model-powered): `hello_world.deck.md`
|
|
282
396
|
|
|
283
397
|
```
|
|
284
398
|
+++
|
|
@@ -298,7 +412,7 @@ Run it:
|
|
|
298
412
|
npx @bolt-foundry/gambit run ./hello_world.deck.md --context '"Gambit"' --stream
|
|
299
413
|
```
|
|
300
414
|
|
|
301
|
-
### Compute
|
|
415
|
+
### Compute agent definition in TypeScript (no model call): `echo.deck.ts`
|
|
302
416
|
|
|
303
417
|
```typescript
|
|
304
418
|
// echo.deck.ts
|
|
@@ -321,7 +435,7 @@ Run it:
|
|
|
321
435
|
npx @bolt-foundry/gambit run ./echo.deck.ts --context '{"text":"ping"}'
|
|
322
436
|
```
|
|
323
437
|
|
|
324
|
-
###
|
|
438
|
+
### Agent definition with a child action (calls a TypeScript tool): `agent_with_time.deck.md`
|
|
325
439
|
|
|
326
440
|
```
|
|
327
441
|
+++
|
|
@@ -362,8 +476,9 @@ npx @bolt-foundry/gambit run ./agent_with_time.deck.md --context '"hello"' --str
|
|
|
362
476
|
### Legacy respond-flow demo (historical compatibility)
|
|
363
477
|
|
|
364
478
|
`packages/gambit/examples/respond_flow/` is kept as a legacy compatibility
|
|
365
|
-
example for historical transcript/grader behavior. New
|
|
366
|
-
schema-valid assistant output directly instead of calling
|
|
479
|
+
example for historical transcript/grader behavior. New agent definitions should
|
|
480
|
+
return schema-valid assistant output directly instead of calling
|
|
481
|
+
`gambit_respond`.
|
|
367
482
|
|
|
368
483
|
```
|
|
369
484
|
cd packages/gambit
|
package/esm/mod.d.ts
CHANGED
|
@@ -24,8 +24,8 @@ export type { GraderDeckDefinition } from "@bolt-foundry/gambit-core";
|
|
|
24
24
|
export type { Guardrails } from "@bolt-foundry/gambit-core";
|
|
25
25
|
/** JSON-serializable value type used throughout Gambit. */
|
|
26
26
|
export type { JSONValue } from "@bolt-foundry/gambit-core";
|
|
27
|
-
/** Model provider
|
|
28
|
-
export type { ModelProvider } from "@bolt-foundry/gambit-core";
|
|
27
|
+
/** Model provider and resolver interfaces for LLM backends. */
|
|
28
|
+
export type { ModelProvider, ModelResolver } from "@bolt-foundry/gambit-core";
|
|
29
29
|
/** Scenario deck definition shape. */
|
|
30
30
|
export type { TestDeckDefinition } from "@bolt-foundry/gambit-core";
|
|
31
31
|
/** Check if a value is an explicit end-of-run signal. */
|
|
@@ -36,10 +36,18 @@ export { isRunCanceledError } from "@bolt-foundry/gambit-core";
|
|
|
36
36
|
export { createDefaultedRuntime } from "./src/default_runtime.js";
|
|
37
37
|
/** Runtime defaults/options for the `runDeck` wrapper. */
|
|
38
38
|
export type { CreateDefaultedRuntimeOptions, DefaultedRuntime, DefaultedRuntimeRunOptions, RunDeckWithDefaultsOptions, SessionArtifactsConfig, } from "./src/default_runtime.js";
|
|
39
|
-
/**
|
|
39
|
+
/** Legacy compatibility wrapper with default provider/model/runtime behavior. */
|
|
40
40
|
export { runDeck } from "./src/default_runtime.js";
|
|
41
|
+
/** Run a deck with defaults and return the structured Responses result. */
|
|
42
|
+
export { runDeckResponses } from "./src/default_runtime.js";
|
|
43
|
+
/** Project assistant output text from Responses items for presentation. */
|
|
44
|
+
export { stringifyResponseOutput } from "@bolt-foundry/gambit-core";
|
|
41
45
|
/** Run a deck directly through gambit-core without gambit defaults. */
|
|
42
46
|
export { runDeck as runDeckCore } from "@bolt-foundry/gambit-core";
|
|
47
|
+
/** Run a deck directly through gambit-core and return structured Responses. */
|
|
48
|
+
export { runDeckResponses as runDeckResponsesCore } from "@bolt-foundry/gambit-core";
|
|
49
|
+
/** Structured Responses runtime result. */
|
|
50
|
+
export type { StructuredRuntimeEffect, StructuredRuntimeResult, StructuredRuntimeStatus, } from "@bolt-foundry/gambit-core";
|
|
43
51
|
/** Signal for explicitly ending a Gambit run. */
|
|
44
52
|
export type { GambitEndSignal } from "@bolt-foundry/gambit-core";
|
|
45
53
|
/** OpenAI Chat Completions compatibility helper for a deck. */
|
package/esm/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,yEAAyE;AACzE,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,oDAAoD;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,oCAAoC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,6BAA6B;AAC7B,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,6BAA6B;AAC7B,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,iCAAiC;AACjC,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,yCAAyC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,oCAAoC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,uCAAuC;AACvC,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,2DAA2D;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
|
package/esm/mod.js
CHANGED
|
@@ -14,10 +14,16 @@ export { isGambitEndSignal } from "@bolt-foundry/gambit-core";
|
|
|
14
14
|
export { isRunCanceledError } from "@bolt-foundry/gambit-core";
|
|
15
15
|
/** Build a runtime with CLI-equivalent provider defaults and routing. */
|
|
16
16
|
export { createDefaultedRuntime } from "./src/default_runtime.js";
|
|
17
|
-
/**
|
|
17
|
+
/** Legacy compatibility wrapper with default provider/model/runtime behavior. */
|
|
18
18
|
export { runDeck } from "./src/default_runtime.js";
|
|
19
|
+
/** Run a deck with defaults and return the structured Responses result. */
|
|
20
|
+
export { runDeckResponses } from "./src/default_runtime.js";
|
|
21
|
+
/** Project assistant output text from Responses items for presentation. */
|
|
22
|
+
export { stringifyResponseOutput } from "@bolt-foundry/gambit-core";
|
|
19
23
|
/** Run a deck directly through gambit-core without gambit defaults. */
|
|
20
24
|
export { runDeck as runDeckCore } from "@bolt-foundry/gambit-core";
|
|
25
|
+
/** Run a deck directly through gambit-core and return structured Responses. */
|
|
26
|
+
export { runDeckResponses as runDeckResponsesCore } from "@bolt-foundry/gambit-core";
|
|
21
27
|
/** OpenAI Chat Completions compatibility helper for a deck. */
|
|
22
28
|
export { chatCompletionsWithDeck } from "./src/openai_compat.js";
|
|
23
29
|
/** Render a deck to a human-readable outline or debug view. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const CODEX_APP_SERVER_DEBUG_ENV = "
|
|
1
|
+
declare const CODEX_APP_SERVER_DEBUG_ENV = "GAMBIT_CODEX_APP_SERVER_DEBUG";
|
|
2
2
|
type DebugValue = null | boolean | number | string | Array<DebugValue> | {
|
|
3
3
|
[key: string]: DebugValue;
|
|
4
4
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex_app_server_debug.d.ts","sourceRoot":"","sources":["../../src/src/codex_app_server_debug.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"codex_app_server_debug.d.ts","sourceRoot":"","sources":["../../src/src/codex_app_server_debug.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,0BAA0B,kCAAkC,CAAC;AAenE,KAAK,UAAU,GACX,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,KAAK,CAAC,UAAU,CAAC,GACjB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AA+DlC,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAIN;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAE5E;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as dntShim from "../_dnt.shims.js";
|
|
2
|
-
const CODEX_APP_SERVER_DEBUG_ENV = "
|
|
2
|
+
const CODEX_APP_SERVER_DEBUG_ENV = "GAMBIT_CODEX_APP_SERVER_DEBUG";
|
|
3
3
|
const STRUCTURAL_STRING_KEYS = new Set([
|
|
4
4
|
"error",
|
|
5
5
|
"method",
|
package/esm/src/codex_auth.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex_auth.d.ts","sourceRoot":"","sources":["../../src/src/codex_auth.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"codex_auth.d.ts","sourceRoot":"","sources":["../../src/src/codex_auth.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,6BAA6B,CAAC;AAErE,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAkFF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,GAChD;IACD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CASA;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,GACV,sBAAsB,CAuBxB;AAED,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,GACV,sBAAsB,CAuBxB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAER;AAED,wBAAgB,0BAA0B,IAAI,sBAAsB,GAAG,IAAI,CAI1E;AAED,wBAAsB,6BAA6B,CAAC,KAAK,EAAE;IACzD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAkDlC"}
|
package/esm/src/codex_auth.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as dntShim from "../_dnt.shims.js";
|
|
2
2
|
const CODEX_AUTH0_CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
3
3
|
const CODEX_AUTH0_TOKEN_URL = "https://auth.openai.com/oauth/token";
|
|
4
|
-
export const CODEX_HOST_AUTH_BUNDLE_ENV = "
|
|
4
|
+
export const CODEX_HOST_AUTH_BUNDLE_ENV = "GAMBIT_CODEX_AUTH_BUNDLE";
|
|
5
5
|
function normalizeNonEmptyString(value) {
|
|
6
6
|
return typeof value === "string" && value.trim().length > 0
|
|
7
7
|
? value.trim()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { runDeck as runDeckCore } from "@bolt-foundry/gambit-core";
|
|
2
|
-
import type { ModelProvider } from "@bolt-foundry/gambit-core";
|
|
2
|
+
import type { ModelProvider, ModelResolver, StructuredRuntimeResult } from "@bolt-foundry/gambit-core";
|
|
3
3
|
import { type LoadedProjectConfig, type ModelAliasResolver } from "./project_config.js";
|
|
4
4
|
import { type ProviderKey } from "./providers/router.js";
|
|
5
5
|
export type SessionArtifactsConfig = {
|
|
@@ -21,6 +21,7 @@ export type CreateDefaultedRuntimeOptions = {
|
|
|
21
21
|
configHint?: string;
|
|
22
22
|
projectConfig?: LoadedProjectConfig | null;
|
|
23
23
|
modelProvider?: ModelProvider;
|
|
24
|
+
modelResolver?: ModelResolver;
|
|
24
25
|
defaultModel?: string;
|
|
25
26
|
modelOverride?: string;
|
|
26
27
|
responsesMode?: boolean;
|
|
@@ -34,12 +35,14 @@ export type DefaultedRuntime = {
|
|
|
34
35
|
configuredFallbackProvider: ProviderKey | null | undefined;
|
|
35
36
|
effectiveFallbackProvider: ProviderKey | null;
|
|
36
37
|
modelProvider: ModelProvider;
|
|
38
|
+
modelResolver: ModelResolver;
|
|
37
39
|
defaultModel?: string;
|
|
38
40
|
modelOverride?: string;
|
|
39
41
|
responsesMode: boolean;
|
|
40
42
|
sessionArtifacts?: SessionArtifactsConfig;
|
|
41
43
|
resolveRunOptions: (opts: DefaultedRuntimeRunOptions) => CoreRunDeckOptions;
|
|
42
44
|
runDeck: (opts: DefaultedRuntimeRunOptions) => Promise<unknown>;
|
|
45
|
+
runDeckResponses: (opts: DefaultedRuntimeRunOptions) => Promise<StructuredRuntimeResult>;
|
|
43
46
|
};
|
|
44
47
|
export type RunDeckWithDefaultsOptions = DefaultedRuntimeRunOptions & {
|
|
45
48
|
runtime?: DefaultedRuntime;
|
|
@@ -47,5 +50,6 @@ export type RunDeckWithDefaultsOptions = DefaultedRuntimeRunOptions & {
|
|
|
47
50
|
};
|
|
48
51
|
export declare function createDefaultedRuntime(opts?: CreateDefaultedRuntimeOptions): Promise<DefaultedRuntime>;
|
|
49
52
|
export declare function runDeck(opts: RunDeckWithDefaultsOptions): Promise<unknown>;
|
|
53
|
+
export declare function runDeckResponses(opts: RunDeckWithDefaultsOptions): Promise<StructuredRuntimeResult>;
|
|
50
54
|
export {};
|
|
51
55
|
//# sourceMappingURL=default_runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default_runtime.d.ts","sourceRoot":"","sources":["../../src/src/default_runtime.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"default_runtime.d.ts","sourceRoot":"","sources":["../../src/src/default_runtime.ts"],"names":[],"mappings":"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"}
|