@vicoa/cli 1.9.2 → 1.9.3-win32-x64
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/bin/_internal/VCRUNTIME140.dll +0 -0
- package/bin/_internal/VCRUNTIME140_1.dll +0 -0
- package/bin/_internal/_asyncio.pyd +0 -0
- package/bin/_internal/_bz2.pyd +0 -0
- package/bin/_internal/_cffi_backend.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/_ctypes.pyd +0 -0
- package/bin/_internal/_decimal.pyd +0 -0
- package/bin/_internal/_hashlib.pyd +0 -0
- package/bin/_internal/_lzma.pyd +0 -0
- package/bin/_internal/_multiprocessing.pyd +0 -0
- package/bin/_internal/_overlapped.pyd +0 -0
- package/bin/_internal/_queue.pyd +0 -0
- package/bin/_internal/_socket.pyd +0 -0
- package/bin/_internal/_sqlite3.pyd +0 -0
- package/bin/_internal/_ssl.pyd +0 -0
- package/bin/_internal/_uuid.pyd +0 -0
- package/bin/_internal/_wmi.pyd +0 -0
- package/bin/_internal/_zoneinfo.pyd +0 -0
- package/bin/_internal/aiofile-3.12.3.dist-info/INSTALLER +1 -0
- package/bin/_internal/aiofile-3.12.3.dist-info/METADATA +564 -0
- package/bin/_internal/aiofile-3.12.3.dist-info/RECORD +15 -0
- package/bin/_internal/aiofile-3.12.3.dist-info/WHEEL +4 -0
- package/bin/_internal/aiofile-3.12.3.dist-info/licenses/LICENCE +195 -0
- package/bin/_internal/aiofile-3.12.3.dist-info/licenses/LICENCE.md +195 -0
- package/bin/_internal/aiohttp/_http_parser.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/aiohttp/_http_writer.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/aiohttp/_websocket/mask.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/aiohttp/_websocket/reader_c.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/aiohttp-3.14.3.dist-info/INSTALLER +1 -0
- package/bin/_internal/aiohttp-3.14.3.dist-info/METADATA +257 -0
- package/bin/_internal/aiohttp-3.14.3.dist-info/RECORD +130 -0
- package/bin/_internal/aiohttp-3.14.3.dist-info/WHEEL +5 -0
- package/bin/_internal/aiohttp-3.14.3.dist-info/licenses/LICENSE.txt +201 -0
- package/bin/_internal/aiohttp-3.14.3.dist-info/licenses/vendor/llhttp/LICENSE +22 -0
- package/bin/_internal/aiohttp-3.14.3.dist-info/top_level.txt +1 -0
- package/bin/_internal/api-ms-win-core-console-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-datetime-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-debug-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-fibers-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-fibers-l1-1-1.dll +0 -0
- package/bin/_internal/api-ms-win-core-file-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-file-l1-2-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-file-l2-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-handle-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-heap-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-kernel32-legacy-l1-1-1.dll +0 -0
- package/bin/_internal/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-localization-l1-2-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-memory-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
- package/bin/_internal/api-ms-win-core-profile-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-string-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-synch-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-synch-l1-2-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-sysinfo-l1-2-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-timezone-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-core-util-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-conio-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-convert-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-environment-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-heap-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-locale-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-math-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-process-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-string-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-time-l1-1-0.dll +0 -0
- package/bin/_internal/api-ms-win-crt-utility-l1-1-0.dll +0 -0
- package/bin/_internal/attrs-26.1.0.dist-info/INSTALLER +1 -0
- package/bin/_internal/attrs-26.1.0.dist-info/METADATA +199 -0
- package/bin/_internal/attrs-26.1.0.dist-info/RECORD +55 -0
- package/bin/_internal/attrs-26.1.0.dist-info/WHEEL +4 -0
- package/bin/_internal/attrs-26.1.0.dist-info/licenses/LICENSE +21 -0
- package/bin/_internal/base_library.zip +0 -0
- package/bin/_internal/certifi/cacert.pem +3959 -0
- package/bin/_internal/certifi/py.typed +0 -0
- package/bin/_internal/charset_normalizer/cd.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/charset_normalizer/md.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/click-8.5.0.dist-info/INSTALLER +1 -0
- package/bin/_internal/click-8.5.0.dist-info/METADATA +83 -0
- package/bin/_internal/click-8.5.0.dist-info/RECORD +40 -0
- package/bin/_internal/click-8.5.0.dist-info/WHEEL +4 -0
- package/bin/_internal/click-8.5.0.dist-info/licenses/LICENSE.txt +28 -0
- package/bin/_internal/cryptography/hazmat/bindings/_rust.pyd +0 -0
- package/bin/_internal/cryptography-50.0.1.dist-info/INSTALLER +1 -0
- package/bin/_internal/cryptography-50.0.1.dist-info/METADATA +110 -0
- package/bin/_internal/cryptography-50.0.1.dist-info/RECORD +199 -0
- package/bin/_internal/cryptography-50.0.1.dist-info/WHEEL +4 -0
- package/bin/_internal/cryptography-50.0.1.dist-info/licenses/LICENSE +3 -0
- package/bin/_internal/cryptography-50.0.1.dist-info/licenses/LICENSE.APACHE +202 -0
- package/bin/_internal/cryptography-50.0.1.dist-info/licenses/LICENSE.BSD +27 -0
- package/bin/_internal/cryptography-50.0.1.dist-info/sboms/cryptography-rust.cyclonedx.json +1365 -0
- package/bin/_internal/cryptography-50.0.1.dist-info/sboms/sbom.json +43 -0
- package/bin/_internal/email_validator-2.3.0.dist-info/INSTALLER +1 -0
- package/bin/_internal/email_validator-2.3.0.dist-info/METADATA +466 -0
- package/bin/_internal/email_validator-2.3.0.dist-info/RECORD +27 -0
- package/bin/_internal/email_validator-2.3.0.dist-info/WHEEL +5 -0
- package/bin/_internal/email_validator-2.3.0.dist-info/entry_points.txt +2 -0
- package/bin/_internal/email_validator-2.3.0.dist-info/licenses/LICENSE +27 -0
- package/bin/_internal/email_validator-2.3.0.dist-info/top_level.txt +1 -0
- package/bin/_internal/fastmcp-4.0.5.dist-info/INSTALLER +1 -0
- package/bin/_internal/fastmcp-4.0.5.dist-info/METADATA +161 -0
- package/bin/_internal/fastmcp-4.0.5.dist-info/RECORD +5 -0
- package/bin/_internal/fastmcp-4.0.5.dist-info/WHEEL +4 -0
- package/bin/_internal/fastmcp-4.0.5.dist-info/licenses/LICENSE +201 -0
- package/bin/_internal/frozenlist/_frozenlist.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/httpcore2-2.13.0.dist-info/INSTALLER +1 -0
- package/bin/_internal/httpcore2-2.13.0.dist-info/METADATA +749 -0
- package/bin/_internal/httpcore2-2.13.0.dist-info/RECORD +68 -0
- package/bin/_internal/httpcore2-2.13.0.dist-info/WHEEL +4 -0
- package/bin/_internal/httpcore2-2.13.0.dist-info/licenses/LICENSE.md +28 -0
- package/bin/_internal/httpx2-2.13.0.dist-info/INSTALLER +1 -0
- package/bin/_internal/httpx2-2.13.0.dist-info/METADATA +234 -0
- package/bin/_internal/httpx2-2.13.0.dist-info/RECORD +68 -0
- package/bin/_internal/httpx2-2.13.0.dist-info/WHEEL +4 -0
- package/bin/_internal/httpx2-2.13.0.dist-info/entry_points.txt +2 -0
- package/bin/_internal/httpx2-2.13.0.dist-info/licenses/LICENSE.md +13 -0
- package/bin/_internal/integrations/cli_wrappers/IMPORTANT_USE_CASES.md +33 -0
- package/bin/_internal/integrations/headless/tests/README.md +58 -0
- package/bin/_internal/integrations/headless/tests/fixtures/antigravity/read_ok_write_denied.ndjson +9 -0
- package/bin/_internal/integrations/headless/tests/fixtures/antigravity/text_then_denied_command.ndjson +10 -0
- package/bin/_internal/integrations/headless/tests/fixtures/antigravity/tools_allowed.ndjson +10 -0
- package/bin/_internal/integrations/headless/tests/fixtures/omp/01-text.jsonl +22 -0
- package/bin/_internal/integrations/headless/tests/fixtures/omp/02-tools.jsonl +41 -0
- package/bin/_internal/integrations/headless/tests/fixtures/omp/03-hosttool.jsonl +44 -0
- package/bin/_internal/integrations/headless/tests/fixtures/omp/04-approval.jsonl +68 -0
- package/bin/_internal/integrations/headless/tests/fixtures/omp/05-todo.jsonl +146 -0
- package/bin/_internal/integrations/headless/tests/fixtures/omp/06-subagent.jsonl +273 -0
- package/bin/_internal/integrations/headless/tests/fixtures/omp/README.md +108 -0
- package/bin/_internal/integrations/headless/tests/fixtures/provider_usage/codex_wham_usage_free.json +41 -0
- package/bin/_internal/integrations/headless/tests/fixtures/provider_usage/codex_wham_usage_plus.json +30 -0
- package/bin/_internal/integrations/headless/tests/fixtures/provider_usage/copilot_user_free_limited.json +67 -0
- package/bin/_internal/integrations/headless/tests/fixtures/provider_usage/copilot_user_pro.json +33 -0
- package/bin/_internal/jiter/jiter.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/jsonschema/benchmarks/issue232/issue.json +2653 -0
- package/bin/_internal/jsonschema-4.26.0.dist-info/INSTALLER +1 -0
- package/bin/_internal/jsonschema-4.26.0.dist-info/METADATA +170 -0
- package/bin/_internal/jsonschema-4.26.0.dist-info/RECORD +82 -0
- package/bin/_internal/jsonschema-4.26.0.dist-info/WHEEL +4 -0
- package/bin/_internal/jsonschema-4.26.0.dist-info/entry_points.txt +2 -0
- package/bin/_internal/jsonschema-4.26.0.dist-info/licenses/COPYING +19 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft201909/metaschema.json +42 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/applicator +56 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/content +17 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/core +57 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/format +14 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data +37 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft201909/vocabularies/validation +98 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft202012/metaschema.json +58 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/applicator +48 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/content +17 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/core +51 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation +14 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion +14 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data +37 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated +15 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft202012/vocabularies/validation +98 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft3/metaschema.json +172 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft4/metaschema.json +149 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft6/metaschema.json +153 -0
- package/bin/_internal/jsonschema_specifications/schemas/draft7/metaschema.json +166 -0
- package/bin/_internal/libcrypto-3.dll +0 -0
- package/bin/_internal/libffi-8.dll +0 -0
- package/bin/_internal/libssl-3.dll +0 -0
- package/bin/_internal/mcp-2.2.0.dist-info/INSTALLER +1 -0
- package/bin/_internal/mcp-2.2.0.dist-info/METADATA +179 -0
- package/bin/_internal/mcp-2.2.0.dist-info/RECORD +254 -0
- package/bin/_internal/mcp-2.2.0.dist-info/WHEEL +4 -0
- package/bin/_internal/mcp-2.2.0.dist-info/entry_points.txt +2 -0
- package/bin/_internal/mcp-2.2.0.dist-info/licenses/LICENSE +21 -0
- package/bin/_internal/multidict/_multidict.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/opentelemetry_api-1.44.0.dist-info/INSTALLER +1 -0
- package/bin/_internal/opentelemetry_api-1.44.0.dist-info/METADATA +43 -0
- package/bin/_internal/opentelemetry_api-1.44.0.dist-info/RECORD +78 -0
- package/bin/_internal/opentelemetry_api-1.44.0.dist-info/WHEEL +4 -0
- package/bin/_internal/opentelemetry_api-1.44.0.dist-info/entry_points.txt +15 -0
- package/bin/_internal/opentelemetry_api-1.44.0.dist-info/licenses/LICENSE +201 -0
- package/bin/_internal/propcache/_helpers_c.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/pydantic-2.13.5.dist-info/INSTALLER +1 -0
- package/bin/_internal/pydantic-2.13.5.dist-info/METADATA +1307 -0
- package/bin/_internal/pydantic-2.13.5.dist-info/RECORD +217 -0
- package/bin/_internal/pydantic-2.13.5.dist-info/WHEEL +4 -0
- package/bin/_internal/pydantic-2.13.5.dist-info/licenses/LICENSE +21 -0
- package/bin/_internal/pydantic_core/_pydantic_core.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/pyexpat.pyd +0 -0
- package/bin/_internal/python3.dll +0 -0
- package/bin/_internal/python312.dll +0 -0
- package/bin/_internal/pywin32_system32/pythoncom312.dll +0 -0
- package/bin/_internal/pywin32_system32/pywintypes312.dll +0 -0
- package/bin/_internal/rpds/rpds.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/select.pyd +0 -0
- package/bin/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt +2 -0
- package/bin/_internal/sqlite3.dll +0 -0
- package/bin/_internal/ucrtbase.dll +0 -0
- package/bin/_internal/unicodedata.pyd +0 -0
- package/bin/_internal/vicoa-1.9.3.dist-info/INSTALLER +1 -0
- package/bin/_internal/vicoa-1.9.3.dist-info/METADATA +111 -0
- package/bin/_internal/vicoa-1.9.3.dist-info/RECORD +10 -0
- package/bin/_internal/vicoa-1.9.3.dist-info/REQUESTED +0 -0
- package/bin/_internal/vicoa-1.9.3.dist-info/WHEEL +5 -0
- package/bin/_internal/vicoa-1.9.3.dist-info/direct_url.json +1 -0
- package/bin/_internal/vicoa-1.9.3.dist-info/entry_points.txt +2 -0
- package/bin/_internal/vicoa-1.9.3.dist-info/top_level.txt +4 -0
- package/bin/_internal/watchfiles/_rust_notify.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/websockets/speedups.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/websockets-17.1.dist-info/INSTALLER +1 -0
- package/bin/_internal/websockets-17.1.dist-info/METADATA +170 -0
- package/bin/_internal/websockets-17.1.dist-info/RECORD +116 -0
- package/bin/_internal/websockets-17.1.dist-info/WHEEL +5 -0
- package/bin/_internal/websockets-17.1.dist-info/entry_points.txt +2 -0
- package/bin/_internal/websockets-17.1.dist-info/licenses/LICENSE +24 -0
- package/bin/_internal/websockets-17.1.dist-info/top_level.txt +1 -0
- package/bin/_internal/win32/_win32sysloader.pyd +0 -0
- package/bin/_internal/win32/win32api.pyd +0 -0
- package/bin/_internal/win32/win32evtlog.pyd +0 -0
- package/bin/_internal/win32/win32job.pyd +0 -0
- package/bin/_internal/yaml/_yaml.cp312-win_amd64.pyd +0 -0
- package/bin/_internal/yarl/_quoting_c.cp312-win_amd64.pyd +0 -0
- package/bin/vicoa.exe +0 -0
- package/package.json +12 -32
- package/README.md +0 -82
- package/bin/vicoa.js +0 -38
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# OMP (`oh-my-pi`) RPC wire traces
|
|
2
|
+
|
|
3
|
+
Real frames captured from `omp --mode rpc`, one JSONL file per scenario, one
|
|
4
|
+
frame per line, verbatim except for the sanitization noted below. These are the
|
|
5
|
+
ground truth for the Pi/OMP wrapper's transport and event mapper — write the
|
|
6
|
+
parsers against these, not against a hand-written idea of the protocol.
|
|
7
|
+
|
|
8
|
+
Captured **2026-09-05** against:
|
|
9
|
+
|
|
10
|
+
| | |
|
|
11
|
+
|---|---|
|
|
12
|
+
| binary | `omp` 18.1.10 (`@oh-my-pi/pi-coding-agent`, needs Bun ≥ 1.3.14) |
|
|
13
|
+
| model | `claude-haiku-4-5-20251001` (via `--model haiku`) |
|
|
14
|
+
| flags | `--mode rpc --no-session --model haiku` (+ per-scenario extras) |
|
|
15
|
+
|
|
16
|
+
Regenerate with `capture.py` in this directory (see "Reproducing" below).
|
|
17
|
+
|
|
18
|
+
## Scenarios
|
|
19
|
+
|
|
20
|
+
| file | what it exercises | notable frames |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `01-text.jsonl` | plain text turn, no tools | full `thinking_*` → `text_*` delta sequence, `turn_end` |
|
|
23
|
+
| `02-tools.jsonl` | native `read` tool | `tool_execution_start` / `_end` |
|
|
24
|
+
| `03-hosttool.jsonl` | full host-tool round trip | `host_tool_call`, our `host_tool_update` / `host_tool_result` reflected back |
|
|
25
|
+
| `04-approval.jsonl` | `--approval-mode always-ask` | the real permission dialog |
|
|
26
|
+
| `05-todo.jsonl` | todo list creation | `todo_reminder` + the native `todo` tool call |
|
|
27
|
+
| `06-subagent.jsonl` | `set_subagent_subscription: "events"` | `subagent_lifecycle` ×2, `subagent_progress` ×31, `subagent_event` ×110 |
|
|
28
|
+
|
|
29
|
+
## Sanitization
|
|
30
|
+
|
|
31
|
+
Only `available_commands_update` frames were modified: the real ones carry the
|
|
32
|
+
operator's full private slash-command and skill list (76 commands, 31 of them
|
|
33
|
+
personal skills). They are replaced with a small synthetic set that preserves
|
|
34
|
+
the shape, including a `subcommands` entry. **Every other frame is verbatim.**
|
|
35
|
+
No credentials, tokens or home-directory paths appear in any file (the capture
|
|
36
|
+
ran in `/tmp`).
|
|
37
|
+
|
|
38
|
+
## What these traces proved
|
|
39
|
+
|
|
40
|
+
Seven places where the real 18.1.10 wire disagrees with paseo's schemas
|
|
41
|
+
(`packages/server/src/server/agent/providers/omp/rpc-types.ts`, pinned to a
|
|
42
|
+
16.3.9 floor). Paseo uses `z.discriminatedUnion`, so unmodelled event types fail
|
|
43
|
+
`safeParse` and are silently dropped:
|
|
44
|
+
|
|
45
|
+
1. **`turn_end`** is a real event carrying the terminal assistant message plus
|
|
46
|
+
`usage`. Not in paseo's union at all.
|
|
47
|
+
2. **`tool_execution_start.intent`** — a human-readable label
|
|
48
|
+
(`"Reading sample.txt"`, `"Listing Vicoa sessions with limit 5"`). Unmodelled,
|
|
49
|
+
and better than anything we would synthesize from `args` for a tool-card
|
|
50
|
+
header.
|
|
51
|
+
3. **`todo_reminder.attempt` / `.maxAttempts`** — unmodelled.
|
|
52
|
+
4. **`available_commands_update` commands carry `subcommands`** — unmodelled.
|
|
53
|
+
5. **`subagent_event.payload.event` includes `advisor_cost_changed` and
|
|
54
|
+
`thinking_level_changed`** — event types absent from paseo's union entirely.
|
|
55
|
+
6. **`get_session_stats`** returns `sessionId`, `userMessages`,
|
|
56
|
+
`assistantMessages`, `toolCalls`, `toolResults`, `totalMessages`,
|
|
57
|
+
`premiumRequests` and `tokens.reasoning` beyond paseo's shape.
|
|
58
|
+
7. **`get_state.model`** carries `int`, `tps`, `thinking:{mode,efforts,supportsDisplay}`,
|
|
59
|
+
`identity:{class,family,revision}`, `requiresGlyphTokenization`, `tokenizer`,
|
|
60
|
+
`supportsComputerUse`, `compat:{…}`.
|
|
61
|
+
|
|
62
|
+
⇒ **Parse extra-allow. Never use a closed union for OMP event types** — dispatch
|
|
63
|
+
on `type` with an explicit default branch that logs and drops.
|
|
64
|
+
|
|
65
|
+
## Facts the traces settle
|
|
66
|
+
|
|
67
|
+
- **Delta order** is `thinking_start` → `thinking_delta`* → `thinking_end` →
|
|
68
|
+
`text_start` → `text_delta`* → `text_end`, each wrapped in
|
|
69
|
+
`message_update.assistantMessageEvent`. Thinking blocks also carry a
|
|
70
|
+
`thinkingSignature` in the final message.
|
|
71
|
+
- **`turn_*` is per model round trip, `agent_*` is per user prompt.** A single
|
|
72
|
+
tool-using prompt produces `agent_start` → (`turn_start`…`turn_end`) ×2 →
|
|
73
|
+
`agent_end`. Do not treat `turn_end` as end-of-work.
|
|
74
|
+
- **The `prompt` ack can be `data: null`** — not always `{agentInvoked}`. Do not
|
|
75
|
+
assume an object.
|
|
76
|
+
- **Host tools render as ordinary tools.** A `host_tool_call` also emits the
|
|
77
|
+
normal `tool_execution_start` / `_update` / `_end` triple, and our
|
|
78
|
+
`host_tool_update.partialResult` comes back as
|
|
79
|
+
`tool_execution_update.partialResult`. No separate rendering path is needed —
|
|
80
|
+
and streaming progress works for free.
|
|
81
|
+
- **`host_tool_call` uses two distinct ids**: `id` (correlation id; the one that
|
|
82
|
+
must be echoed in `host_tool_result`) and `toolCallId` (the model's
|
|
83
|
+
`toolu_…` id, which is what the `tool_execution_*` events key on).
|
|
84
|
+
- **Permission prompts arrive as `extension_ui_request` with `method: "select"`**,
|
|
85
|
+
a multi-line free-text `title` holding the whole prompt, and
|
|
86
|
+
`options: ["Approve", "Deny"]`. Maps onto `headless/permission.py`'s existing
|
|
87
|
+
prompt + options rendering.
|
|
88
|
+
- **`extension_ui_request` also fires with `method: "setWidget"`** in plain
|
|
89
|
+
`--mode rpc` (not just `rpc-ui`), at session start and end. Unknown methods
|
|
90
|
+
must be ignored silently.
|
|
91
|
+
- **`subagent_event` is a firehose** — 110 frames for one trivial subagent, since
|
|
92
|
+
it nests the child's entire event stream. Default
|
|
93
|
+
`set_subagent_subscription` to `"progress"`, not `"events"`, and derive cards
|
|
94
|
+
from `subagent_lifecycle` + `subagent_progress`.
|
|
95
|
+
- **`subagent_lifecycle.payload.id` is a human-readable name** (`"DelightedDinosaur"`),
|
|
96
|
+
not a UUID, and `parentToolCallId` is what links a subagent to its Task card.
|
|
97
|
+
|
|
98
|
+
## Reproducing
|
|
99
|
+
|
|
100
|
+
Requires an authenticated `omp` on the machine (`omp` → `/login`). Costs a few
|
|
101
|
+
cents on haiku.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
cd backend/src/integrations/headless/tests/fixtures/omp
|
|
105
|
+
python3 capture.py # rewrites the *.jsonl files in place
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Re-sanitize `available_commands_update` before committing anything regenerated.
|
package/bin/_internal/integrations/headless/tests/fixtures/provider_usage/codex_wham_usage_free.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"user_id": "user-REDACTED",
|
|
3
|
+
"account_id": "acct-REDACTED",
|
|
4
|
+
"email": "redacted@example.com",
|
|
5
|
+
"plan_type": "free",
|
|
6
|
+
"rate_limit": {
|
|
7
|
+
"allowed": true,
|
|
8
|
+
"limit_reached": false,
|
|
9
|
+
"primary_window": {
|
|
10
|
+
"used_percent": 0,
|
|
11
|
+
"limit_window_seconds": 2592000,
|
|
12
|
+
"reset_after_seconds": 2351904,
|
|
13
|
+
"reset_at": 1791709519
|
|
14
|
+
},
|
|
15
|
+
"secondary_window": null
|
|
16
|
+
},
|
|
17
|
+
"code_review_rate_limit": null,
|
|
18
|
+
"additional_rate_limits": null,
|
|
19
|
+
"model_usage": {},
|
|
20
|
+
"credits": {
|
|
21
|
+
"has_credits": false,
|
|
22
|
+
"unlimited": false,
|
|
23
|
+
"overage_limit_reached": false,
|
|
24
|
+
"balance": null,
|
|
25
|
+
"approx_local_messages": null,
|
|
26
|
+
"approx_cloud_messages": null
|
|
27
|
+
},
|
|
28
|
+
"spend_control": {
|
|
29
|
+
"reached": false,
|
|
30
|
+
"individual_limit": null
|
|
31
|
+
},
|
|
32
|
+
"rate_limit_reached_type": null,
|
|
33
|
+
"promo": {
|
|
34
|
+
"campaign_id": "REDACTED",
|
|
35
|
+
"message": "To continue using Codex and get access to GPT-5.3-Codex, start a free trial of Plus today (https://chatgpt.com/explore/plus)"
|
|
36
|
+
},
|
|
37
|
+
"rate_limit_reset_credits": {
|
|
38
|
+
"available_count": 0,
|
|
39
|
+
"applicable_available_count": 0
|
|
40
|
+
}
|
|
41
|
+
}
|
package/bin/_internal/integrations/headless/tests/fixtures/provider_usage/codex_wham_usage_plus.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"user_id": "user-REDACTED",
|
|
3
|
+
"account_id": "acct-REDACTED",
|
|
4
|
+
"email": "redacted@example.com",
|
|
5
|
+
"plan_type": "plus",
|
|
6
|
+
"rate_limit": {
|
|
7
|
+
"allowed": true,
|
|
8
|
+
"limit_reached": false,
|
|
9
|
+
"primary_window": {
|
|
10
|
+
"used_percent": 63.4,
|
|
11
|
+
"limit_window_seconds": 18000,
|
|
12
|
+
"reset_after_seconds": 7200,
|
|
13
|
+
"reset_at": 1789000000
|
|
14
|
+
},
|
|
15
|
+
"secondary_window": {
|
|
16
|
+
"used_percent": 41,
|
|
17
|
+
"limit_window_seconds": 604800,
|
|
18
|
+
"reset_after_seconds": 400000,
|
|
19
|
+
"reset_at": 1789400000
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"credits": {
|
|
23
|
+
"has_credits": true,
|
|
24
|
+
"unlimited": false,
|
|
25
|
+
"overage_limit_reached": false,
|
|
26
|
+
"balance": "12.5",
|
|
27
|
+
"approx_local_messages": null,
|
|
28
|
+
"approx_cloud_messages": null
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"login": "redacted",
|
|
3
|
+
"access_type_sku": "free_limited_copilot",
|
|
4
|
+
"analytics_tracking_id": "REDACTED",
|
|
5
|
+
"assigned_date": "2025-12-14T13:27:16+08:00",
|
|
6
|
+
"can_signup_for_limited": false,
|
|
7
|
+
"chat_enabled": true,
|
|
8
|
+
"cli_enabled": true,
|
|
9
|
+
"copilot_plan": "individual",
|
|
10
|
+
"organization_login_list": [],
|
|
11
|
+
"organization_list": [],
|
|
12
|
+
"endpoints": {
|
|
13
|
+
"api": "https://api.individual.githubcopilot.com",
|
|
14
|
+
"proxy": "https://proxy.individual.githubcopilot.com"
|
|
15
|
+
},
|
|
16
|
+
"can_upgrade_plan": true,
|
|
17
|
+
"quota_snapshots": {
|
|
18
|
+
"chat": {
|
|
19
|
+
"overage_count": 0,
|
|
20
|
+
"overage_permitted": false,
|
|
21
|
+
"percent_remaining": 100.0,
|
|
22
|
+
"quota_id": "REDACTED",
|
|
23
|
+
"quota_remaining": 200.0,
|
|
24
|
+
"unlimited": false,
|
|
25
|
+
"timestamp_utc": "2026-09-14T03:47:16.920Z",
|
|
26
|
+
"has_quota": true,
|
|
27
|
+
"quota_reset_at": 0,
|
|
28
|
+
"token_based_billing": true,
|
|
29
|
+
"credits_used": 0,
|
|
30
|
+
"remaining": 200,
|
|
31
|
+
"entitlement": 200
|
|
32
|
+
},
|
|
33
|
+
"completions": {
|
|
34
|
+
"overage_count": 0,
|
|
35
|
+
"overage_permitted": false,
|
|
36
|
+
"percent_remaining": 100.0,
|
|
37
|
+
"quota_id": "REDACTED",
|
|
38
|
+
"quota_remaining": 2000.0,
|
|
39
|
+
"unlimited": false,
|
|
40
|
+
"timestamp_utc": "2026-09-14T03:47:16.920Z",
|
|
41
|
+
"has_quota": true,
|
|
42
|
+
"quota_reset_at": 0,
|
|
43
|
+
"token_based_billing": true,
|
|
44
|
+
"credits_used": 0,
|
|
45
|
+
"remaining": 2000,
|
|
46
|
+
"entitlement": 2000
|
|
47
|
+
},
|
|
48
|
+
"premium_interactions": {
|
|
49
|
+
"overage_count": 0,
|
|
50
|
+
"overage_permitted": false,
|
|
51
|
+
"percent_remaining": 0.0,
|
|
52
|
+
"quota_id": "REDACTED",
|
|
53
|
+
"quota_remaining": 0.0,
|
|
54
|
+
"unlimited": false,
|
|
55
|
+
"timestamp_utc": "2026-09-14T03:47:16.920Z",
|
|
56
|
+
"has_quota": false,
|
|
57
|
+
"quota_reset_at": 0,
|
|
58
|
+
"token_based_billing": true,
|
|
59
|
+
"credits_used": 0,
|
|
60
|
+
"remaining": 0,
|
|
61
|
+
"entitlement": 0
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"token_based_billing": true,
|
|
65
|
+
"quota_reset_date": "2026-10-01",
|
|
66
|
+
"quota_reset_date_utc": "2026-10-01T00:00:00.000Z"
|
|
67
|
+
}
|
package/bin/_internal/integrations/headless/tests/fixtures/provider_usage/copilot_user_pro.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"login": "redacted",
|
|
3
|
+
"access_type_sku": "monthly_subscriber",
|
|
4
|
+
"copilot_plan": "individual_pro",
|
|
5
|
+
"quota_snapshots": {
|
|
6
|
+
"chat": {
|
|
7
|
+
"percent_remaining": 100.0,
|
|
8
|
+
"unlimited": true,
|
|
9
|
+
"has_quota": true,
|
|
10
|
+
"remaining": 0,
|
|
11
|
+
"entitlement": 0
|
|
12
|
+
},
|
|
13
|
+
"completions": {
|
|
14
|
+
"percent_remaining": 100.0,
|
|
15
|
+
"unlimited": true,
|
|
16
|
+
"has_quota": true,
|
|
17
|
+
"remaining": 0,
|
|
18
|
+
"entitlement": 0
|
|
19
|
+
},
|
|
20
|
+
"premium_interactions": {
|
|
21
|
+
"overage_count": 0,
|
|
22
|
+
"overage_permitted": true,
|
|
23
|
+
"percent_remaining": 37.5,
|
|
24
|
+
"quota_remaining": 112.5,
|
|
25
|
+
"unlimited": false,
|
|
26
|
+
"has_quota": true,
|
|
27
|
+
"quota_reset_at": 0,
|
|
28
|
+
"remaining": 112,
|
|
29
|
+
"entitlement": 300
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"quota_reset_date": "2026-10-01"
|
|
33
|
+
}
|
|
Binary file
|