@protolabsai/proto 0.26.25 → 0.30.0
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/README.md +22 -19
- package/cli.js +5672 -7641
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ At-a-glance overview vs. upstream Qwen Code. For the full architectural breakdow
|
|
|
27
27
|
| Ignore files | `.qwenignore` | `.protoignore` + inherits `.claudeignore` patterns |
|
|
28
28
|
| ACP / Zed integration | Stock | Cron-in-Session, concurrent Agent calls, SSE/HTTP MCP, internal-part filtering |
|
|
29
29
|
| Extra built-in tools | Standard set | + browser automation, repo-map (PageRank), task tools, mailbox, LSP, voice/STT |
|
|
30
|
-
| Observability | Console | Langfuse
|
|
30
|
+
| Observability | Console | OTLP/HTTP to LGTM stack + Langfuse, opt-in, with `gen_ai.response.thinking` and harness-intervention spans (SFT-ready) |
|
|
31
31
|
| Release pipeline | Manual | Conventional-commit auto-release (`feat:` → minor, `fix:` → patch) |
|
|
32
32
|
| VS Code companion | Included | Removed (focus on TUI + ACP/Zed) |
|
|
33
33
|
|
|
@@ -206,53 +206,56 @@ Both no-op outside a TTY, in screen-reader mode, or under tmux/SSH.
|
|
|
206
206
|
|
|
207
207
|
## Observability
|
|
208
208
|
|
|
209
|
-
proto
|
|
209
|
+
proto ships OpenTelemetry-native, with both a Tempo/LGTM-style ops backend and Langfuse for prompt-grade trace UI. Both are **opt-in** — nothing is sent anywhere until `telemetry.enabled` is `true`.
|
|
210
210
|
|
|
211
211
|
### Setup
|
|
212
212
|
|
|
213
|
-
Add to
|
|
213
|
+
Add to `~/.proto/settings.json`:
|
|
214
214
|
|
|
215
215
|
```json
|
|
216
216
|
{
|
|
217
|
+
"telemetry": { "enabled": true },
|
|
217
218
|
"env": {
|
|
219
|
+
"OTEL_INGRESS_TOKEN": "<bearer token from your Infisical or vault>",
|
|
218
220
|
"LANGFUSE_PUBLIC_KEY": "pk-lf-...",
|
|
219
221
|
"LANGFUSE_SECRET_KEY": "sk-lf-...",
|
|
220
|
-
"LANGFUSE_BASE_URL": "https://
|
|
222
|
+
"LANGFUSE_BASE_URL": "https://your-langfuse-instance.example.com"
|
|
221
223
|
}
|
|
222
224
|
}
|
|
223
225
|
```
|
|
224
226
|
|
|
225
|
-
|
|
227
|
+
With `telemetry.enabled = true`:
|
|
226
228
|
|
|
227
|
-
|
|
229
|
+
- **OTLP traces** ship to `https://otel.proto-labs.ai` over HTTP, bearer-auth via `OTEL_INGRESS_TOKEN`. Override `telemetry.otlpEndpoint` / `telemetry.otlpProtocol` to point at a local OTel collector or a different vendor.
|
|
230
|
+
- **Langfuse traces** ship to `LANGFUSE_BASE_URL` (defaults to `https://cloud.langfuse.com`) when both Langfuse keys are present.
|
|
231
|
+
|
|
232
|
+
Without `telemetry.enabled = true`, neither exporter activates regardless of env vars.
|
|
233
|
+
|
|
234
|
+
> **Why `settings.json` and not `.env`?** proto walks up from your CWD loading `.env` files, so a project-level `.env` with telemetry keys would bleed into proto's tracing and mix your traces into the wrong dataset. The `env` block in `settings.json` is proto-namespaced and completely isolated from your projects.
|
|
228
235
|
|
|
229
236
|
### What gets traced
|
|
230
237
|
|
|
231
|
-
| Span | Attributes
|
|
232
|
-
| --------------------- |
|
|
233
|
-
| `turn` | `session.id`, `turn.id` — root span per user prompt
|
|
234
|
-
| `gen_ai chat {model}` | `gen_ai.usage.
|
|
235
|
-
| `tool/{name}` | `tool.name`, `tool.type`, `tool.duration_ms` — one per tool execution
|
|
236
|
-
| `agent/{name}` | `agent.name`, `agent.status`, `agent.duration_ms` — one per subagent
|
|
238
|
+
| Span | Attributes |
|
|
239
|
+
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
240
|
+
| `turn` | `session.id`, `turn.id` — root span per user prompt |
|
|
241
|
+
| `gen_ai chat {model}` | `gen_ai.usage.{input,output,thinking}_tokens`, `gen_ai.request.model`, `gen_ai.response.thinking` (when present) — one per LLM call |
|
|
242
|
+
| `tool/{name}` | `tool.name`, `tool.type`, `tool.duration_ms` — one per tool execution |
|
|
243
|
+
| `agent/{name}` | `agent.name`, `agent.status`, `agent.duration_ms` — one per subagent |
|
|
237
244
|
|
|
238
245
|
All three provider backends are covered: OpenAI-compatible, Anthropic, and Gemini.
|
|
239
246
|
|
|
240
247
|
### Prompt content logging
|
|
241
248
|
|
|
242
|
-
Full prompt messages and
|
|
249
|
+
Full prompt messages, response text, and reasoning text are included in traces by default. To disable:
|
|
243
250
|
|
|
244
251
|
```json
|
|
245
252
|
// ~/.proto/settings.json
|
|
246
253
|
{
|
|
247
|
-
"telemetry": { "logPrompts": false }
|
|
254
|
+
"telemetry": { "enabled": true, "logPrompts": false }
|
|
248
255
|
}
|
|
249
256
|
```
|
|
250
257
|
|
|
251
|
-
> **Privacy note:**
|
|
252
|
-
|
|
253
|
-
### Langfuse activates independently
|
|
254
|
-
|
|
255
|
-
Langfuse tracing activates from env vars alone — it does not require `telemetry.enabled: true` in settings. The general telemetry pipeline (OTLP/GCP) and Langfuse are independent.
|
|
258
|
+
> **Privacy note:** Telemetry is off by default. When you opt in, `logPrompts` defaults to `true` — full prompt, response, and reasoning content are attached to spans (truncated at 10K chars each). Set `logPrompts: false` if you want token counts and timings without message content.
|
|
256
259
|
|
|
257
260
|
## Task Management
|
|
258
261
|
|