@vibe-commit/capture 0.8.0 → 0.9.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 +124 -0
- package/dist/agents/claude_code.js +13 -0
- package/dist/agents/claude_code.js.map +1 -1
- package/dist/agents/codex_cli.js +11 -0
- package/dist/agents/codex_cli.js.map +1 -1
- package/dist/agents/cursor.js +7 -1
- package/dist/agents/cursor.js.map +1 -1
- package/dist/agents/registry.d.ts +7 -0
- package/dist/agents/registry.js +9 -0
- package/dist/agents/registry.js.map +1 -1
- package/dist/agents/types.d.ts +32 -0
- package/dist/agents/types.js.map +1 -1
- package/dist/bounded_id.d.ts +29 -0
- package/dist/bounded_id.js +42 -0
- package/dist/bounded_id.js.map +1 -0
- package/dist/codex_folders.d.ts +340 -0
- package/dist/codex_folders.js +1448 -0
- package/dist/codex_folders.js.map +1 -0
- package/dist/commands/backfill.d.ts +29 -7
- package/dist/commands/backfill.js +387 -109
- package/dist/commands/backfill.js.map +1 -1
- package/dist/commands/connect.d.ts +1 -1
- package/dist/commands/connect.js +1 -1
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connect_picker.js +48 -7
- package/dist/commands/connect_picker.js.map +1 -1
- package/dist/commands/finalize.d.ts +67 -0
- package/dist/commands/finalize.js +450 -114
- package/dist/commands/finalize.js.map +1 -1
- package/dist/commands/scan.d.ts +28 -0
- package/dist/commands/scan.js +11 -0
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/status_machine.js +47 -10
- package/dist/commands/status_machine.js.map +1 -1
- package/dist/consent.d.ts +22 -0
- package/dist/consent.js +38 -1
- package/dist/consent.js.map +1 -1
- package/dist/copy/strings.d.ts +43 -1
- package/dist/copy/strings.js +48 -4
- package/dist/copy/strings.js.map +1 -1
- package/dist/folder_grants.d.ts +44 -0
- package/dist/folder_grants.js +101 -0
- package/dist/folder_grants.js.map +1 -0
- package/dist/git.d.ts +26 -4
- package/dist/git.js +82 -11
- package/dist/git.js.map +1 -1
- package/dist/hooks/entry.d.ts +30 -50
- package/dist/hooks/entry.js +593 -559
- package/dist/hooks/entry.js.map +1 -1
- package/dist/hooks/fire_lock.d.ts +31 -0
- package/dist/hooks/fire_lock.js +120 -12
- package/dist/hooks/fire_lock.js.map +1 -1
- package/dist/machine_state.d.ts +44 -1
- package/dist/machine_state.js +75 -12
- package/dist/machine_state.js.map +1 -1
- package/dist/oauth/discovery.js +2 -1
- package/dist/oauth/discovery.js.map +1 -1
- package/dist/oauth/pkce.js +2 -1
- package/dist/oauth/pkce.js.map +1 -1
- package/dist/paths.d.ts +34 -1
- package/dist/paths.js +62 -12
- package/dist/paths.js.map +1 -1
- package/dist/physical_path.d.ts +46 -0
- package/dist/physical_path.js +151 -0
- package/dist/physical_path.js.map +1 -0
- package/dist/picker.d.ts +52 -3
- package/dist/picker.js +129 -5
- package/dist/picker.js.map +1 -1
- package/dist/picker_checklist.d.ts +9 -1
- package/dist/picker_checklist.js +41 -2
- package/dist/picker_checklist.js.map +1 -1
- package/dist/policy.d.ts +9 -1
- package/dist/policy.js +11 -2
- package/dist/policy.js.map +1 -1
- package/dist/post.d.ts +14 -0
- package/dist/post.js +32 -10
- package/dist/post.js.map +1 -1
- package/dist/project.d.ts +89 -0
- package/dist/project.js +123 -0
- package/dist/project.js.map +1 -1
- package/dist/redact.d.ts +77 -2
- package/dist/redact.js +713 -47
- package/dist/redact.js.map +1 -1
- package/dist/session_targets.d.ts +713 -0
- package/dist/session_targets.js +2602 -0
- package/dist/session_targets.js.map +1 -0
- package/dist/spool.d.ts +12 -0
- package/dist/spool.js +29 -1
- package/dist/spool.js.map +1 -1
- package/dist/spool_union.d.ts +51 -0
- package/dist/spool_union.js +57 -0
- package/dist/spool_union.js.map +1 -0
- package/dist/state.d.ts +5 -0
- package/dist/state.js +19 -1
- package/dist/state.js.map +1 -1
- package/dist/text_tail.d.ts +8 -0
- package/dist/text_tail.js +19 -0
- package/dist/text_tail.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -356,6 +356,130 @@ request; a waiting revoke row is still retried.
|
|
|
356
356
|
*Files.* `grants.json` gains `pending` and `synced_at` and stays written only by the commands, never by a hook; a 0.7.0
|
|
357
357
|
command that rewrites it keeps both. `grants-account.json` is new, and the hooks' file. `pending-revoke.json` is new and
|
|
358
358
|
holds a bearer token while a revoke is waiting.
|
|
359
|
+
### Sessions started in a folder above your repositories
|
|
360
|
+
|
|
361
|
+
Claude Code resets its shell to the folder a session was launched in, so a session started in a parent folder
|
|
362
|
+
(`~/code`, with your repositories inside it) used to be attributed to nothing: the hook looked at the folder the
|
|
363
|
+
turn ended in, found no work tree, and stayed silent. A session is now attributed from two things, the folder the
|
|
364
|
+
turn ended in and the folders its own records name, and its bytes go to every repository **you have chosen** that it
|
|
365
|
+
touched, each under that repository's own name. A repository you have not chosen is never a target, and nothing is
|
|
366
|
+
read on a machine that has chosen nothing.
|
|
367
|
+
|
|
368
|
+
To read those folders the client now scans each Claude Code and Codex transcript (not Cursor's, see below) for two kinds of value, the folder each record ran in and
|
|
369
|
+
the file paths the redaction pass already parses. It keeps only the set of strings it finds, uses them to pick the
|
|
370
|
+
repositories, and sends none of them anywhere on their own.
|
|
371
|
+
|
|
372
|
+
*Folders.* `vibecommit connect` also lists folders you have used an agent in that are not git repositories, under
|
|
373
|
+
"folders outside a repository". Choosing one captures the Claude Code and Codex sessions launched in it whose records name no git
|
|
374
|
+
repository at all, as one repository of its own. Only Claude Code and Codex sessions are offered, counted and captured under a
|
|
375
|
+
folder: Cursor sessions are not (Cursor records no folder), and a folder that holds only those is not listed. A Codex session whose
|
|
376
|
+
records' folders could not all be told is never captured under a folder. It is **private to you**: no other member of your organization can read it unless
|
|
377
|
+
you share it, and if another member's machine uploads a folder at the same path, that upload is refused. A folder's
|
|
378
|
+
sessions are decided only once the session has ended (or `finalize` or `backfill` has read
|
|
379
|
+
every line), never mid-session. A folder never captures anything inside a git work tree nested under it: that belongs
|
|
380
|
+
to the repository's own choice. Saying No to a folder, or `-N` in the typed prompt, records it as not captured; the
|
|
381
|
+
picker offers it again with the hint for turning it on. Folder choices live in `~/.vibecommit/folders.json`, keyed by
|
|
382
|
+
the folder's real path, written only by commands (never by a hook) and never sent to your account. Older versions
|
|
383
|
+
ignore the file.
|
|
384
|
+
|
|
385
|
+
*What `status` shows.* The machine screen counts the repositories and folders that are on, and the count is the list
|
|
386
|
+
it prints: a clone with no remote, or whose folder is gone, is a row with the reason. A repository or folder the
|
|
387
|
+
client has seen sessions touch but you have neither chosen nor declined is listed under "not chosen" with the
|
|
388
|
+
`vibecommit connect` hint; hooks never say it. `status --json` adds `folders` and `undecided` only when they are not
|
|
389
|
+
empty. A folder the server refuses, because a folder at the same path was uploaded first from another member's machine, is
|
|
390
|
+
listed under `refused` in `status` (`refused_folders` in `--json`, only when there is one) until you turn that folder
|
|
391
|
+
off or the session record is forgotten after 30 days, and its sessions are skipped; every other repository keeps
|
|
392
|
+
sending.
|
|
393
|
+
|
|
394
|
+
*Backfill.* `vibecommit backfill` now offers the earlier sessions that were run from a folder outside a repository,
|
|
395
|
+
and reads each one only after you say yes, to find the repositories you chose that it touched (and the folder, if you
|
|
396
|
+
chose one). A session that touched none of them is skipped.
|
|
397
|
+
|
|
398
|
+
*What is withheld from every copy of a session, and what is not.* A file the agent reads, writes or edits outside the repository you
|
|
399
|
+
chose has its content replaced by a mark of the same length (a value too short for a mark is replaced by asterisks) in every record
|
|
400
|
+
that carries it: the structured copy, the text the agent was shown for that tool call, and the copy of the tool call's input that
|
|
401
|
+
Claude Code keeps on the record. When the result names no file itself (an image the agent read), the client keeps the file paths of
|
|
402
|
+
the tool calls that are still waiting for their results in its local session record, never sends them, and removes them once every
|
|
403
|
+
copy of the session is past the result; the result is withheld from the copy of any repository the file is outside of, and from every
|
|
404
|
+
copy when the client cannot tell which call it answers. These records are withheld from every copy whatever they say: the summary
|
|
405
|
+
Claude Code writes when it compacts a conversation, because it can quote any file the session read; the session's last prompt, its
|
|
406
|
+
queued prompts and its request records (`last-prompt`, `queue-operation`, `api-request`, `api-request-blob`, `api-request-shape`),
|
|
407
|
+
which repeat text from the conversation; the file-history records (`file-history-snapshot`, `file-history-delta`), whose file names
|
|
408
|
+
stay and whose other values do not; and an invoked skill that names no file. What is not withheld is the output of a command or tool
|
|
409
|
+
that names no file: a shell command's output, a hook's output, the result of a search (Grep or Glob) over a folder, or over a single file, a fetched page, or
|
|
410
|
+
an MCP tool's result; and the text of a command that ran inside the repository even when it writes a file outside it (`cat > /elsewhere/notes <<EOF`):
|
|
411
|
+
what the command carries is sent as written, because the client judges the paths a call names, not the shell text it runs. If the agent prints an outside file with `cat`, or searches a folder or file outside the repository, what comes back is
|
|
412
|
+
sent as written. Codex is the same: a command whose working folder is outside the repository has its own text withheld (one that ran inside the repository and writes an outside file keeps its text, as above), and a patch or an image that names a file outside the repository is withheld together with its output (the client matches an output to its call by the call's id; one outside file withholds the whole patch, and a script whose working folder is written outside the repository has its text withheld too). The output of a command that names only a folder, not a file, is sent as written. The instruction text Codex injects into a session is withheld from every
|
|
413
|
+
copy, whatever folder it came from: the world-state records (which carry your global `AGENTS.md` and your skills), the copies of
|
|
414
|
+
user and developer messages that Codex sends the model, the developer instructions, a review's instructions and the base
|
|
415
|
+
instructions. Your own prompts, the agent's messages, its tool calls and their output are kept; so is the agent's own message when
|
|
416
|
+
it quotes one of those files.
|
|
417
|
+
|
|
418
|
+
*What a repository's copy of a multi-repository session still contains.* When one session touched repositories A and
|
|
419
|
+
B, each repository receives its own copy of a Claude Code session, and records that ran inside the other repository's work tree are withheld from it:
|
|
420
|
+
every text value in them is replaced by a mark of the same length (a value too short for a mark is replaced by asterisks),
|
|
421
|
+
and a line that cannot be re-serialised exactly as written is withheld whole. The same applies to any line, in any session, that the
|
|
422
|
+
file-path rule would have withheld a value from (an out-of-tree file's content) but that cannot be re-serialised exactly: it is withheld
|
|
423
|
+
whole instead of being sent as written. Records that carry no folder of their own are withheld from such a copy too, except session
|
|
424
|
+
metadata that holds no text (the mode, the permission mode, a bridge session, the cost counters, the tools used, a fork reference): the
|
|
425
|
+
session's title, the agent's name, a pull-request link, a result and any kind of record Claude Code adds later are withheld, and so are
|
|
426
|
+
the summaries of earlier turns that do carry a folder (the idle-return summary and the prompt snapshot) and any attachment or system
|
|
427
|
+
message of a kind this release has not measured. A session counts as multi-repository from the moment the client has seen it name a work
|
|
428
|
+
tree other than the repository's, or cannot tell, and stays so; what was sent in a copy before that moment was sent as written. A
|
|
429
|
+
withheld title is sent as a mark; nothing reads or shows it. A copy of a repository is sent to the end of the transcript by each hook, and for the part of a
|
|
430
|
+
transcript the client has not scanned yet it learns two things as it goes, in order: which files a tool call named (so a result is judged by its
|
|
431
|
+
call, even when both are new) and whether a second work tree has been named (the first record that names a file or a folder inside
|
|
432
|
+
another work tree makes the rest of that send multi-repository; a path inside no work tree, such as your global instructions file, does
|
|
433
|
+
not). The same applies to a copy sent from the start of a transcript whose earlier tool calls the client has already cleared (a repository you
|
|
434
|
+
granted after the others were sent): it learns which files each call named from its own bytes, so its results are judged exactly. A copy of a folder is sent only up to what the client has scanned, so the bytes behind the scan wait for the next hook. Three things remain, by design:
|
|
435
|
+
|
|
436
|
+
- Records that ran from the launch folder, which is not inside either repository, are kept in every copy. That is
|
|
437
|
+
your prompts and the agent's prose from the parent folder, including anything in them about the other repository.
|
|
438
|
+
- The record's own folder path (`cwd`) stays readable in a record that was otherwise set aside, so a copy can show
|
|
439
|
+
the path of the other repository.
|
|
440
|
+
- A key inside a tool's input or result that looks like a field name (a package or customer name written like `acme_merger`)
|
|
441
|
+
cannot be told from a field name, so it stays as a key in the other repository's copy while its text values are withheld. A key
|
|
442
|
+
that is a path, a file name or a name with a space or a hyphen makes the whole line be withheld instead.
|
|
443
|
+
|
|
444
|
+
*Codex.* Codex records a folder only on its session and turn headers, on a finished command and on a thread-settings change, not on a prompt or the
|
|
445
|
+
agent's prose, so the client tells the folder every other record ran in:
|
|
446
|
+
|
|
447
|
+
- a record that carries its own folder takes it;
|
|
448
|
+
- a command takes its working folder (the folder the turn was running in, when it has none) and the files of any patch it carries; `apply_patch` takes the
|
|
449
|
+
files it changes, and `view_image` the folder of its file;
|
|
450
|
+
- an `exec` script takes the working folders written in it as plain string literals, the folder the turn was running in, and the folders of the processes it
|
|
451
|
+
polls by a numeric id written in it;
|
|
452
|
+
- `write_stdin` and `wait` take the folders of the process or script they poll. The client learns which process or script is which only from the line an
|
|
453
|
+
output starts with (`Process running with session ID n`, `Script running with cell ID n`) and from a `session_id` a script's output prints, never from text
|
|
454
|
+
further down an output, and an id it never saw announced is unknown. An id counts only from the line that announced it onward: a poll that comes before
|
|
455
|
+
the line announcing its id is unknown, however the id is announced later;
|
|
456
|
+
- an output takes the folders of its command, matched by the call's id;
|
|
457
|
+
- any other tool (an MCP tool, a tool Codex adds later), any kind of record the client has not measured (including `compacted`), a script whose working folder
|
|
458
|
+
or process id is not a plain literal, a script that holds a patch, and a script that names more than 4,096 places (its working folders, the turn's folder, and the folders and files of the processes it polls, together) are unknown;
|
|
459
|
+
- every other record (a prompt, the agent's prose, a token count) takes the folder the turn was running in, until a session or turn header whose folder
|
|
460
|
+
cannot be read, or a line too long to be read at all: from there the turn's folder is unknown, and so are the records that rely on it, until the next header
|
|
461
|
+
that can be read. A folder that exists but cannot be resolved (a link that no longer points anywhere) is unknown too, and a session that names one is
|
|
462
|
+
treated as having touched more than one repository.
|
|
463
|
+
|
|
464
|
+
A repository's copy then carries the records that ran in it and not the ones that ran in another repository you chose, as for Claude Code, and a
|
|
465
|
+
patch or script that spans two repositories is withheld from both copies. A record whose folder is unknown is kept in a copy of a session that has touched one
|
|
466
|
+
repository and withheld from the copies of one that has touched several. A record whose folder is unknown still names what it names: the folders and files that can be read from it are used to find the repositories a session touched, and each file is judged for the copy like any other. A file that a patch names, or `view_image` shows, outside the copy's repository (for a
|
|
467
|
+
folder, outside the folder) is withheld with its output from every copy, as for Claude Code; a file that was deleted since is judged by the nearest folder
|
|
468
|
+
that still exists, except behind a link that no longer resolves, which counts as outside. A review's findings name files too, and each is judged the same way, whether or not the record also carries a folder of its own or its folder is unknown;
|
|
469
|
+
a review that names more files than the client will walk (or nests them too deep) is withheld from every copy, and so is a command, patch or script that names a path the client cannot resolve, a call whose arguments cannot be read, a call (a script, a poll, a plan update, or a record of a kind the client has not measured) that holds a patch anywhere the client does not read for patches, and the output of a call the client no longer holds when that call may have named a file (it was dropped to stay within the bound, its entry was removed once every copy had passed it, or it came before a line too long to be read). A script that polls a process by an id it cannot name carries the files of every process the session knows at that point. A call that reuses the id of an earlier call of the same session is withheld from every copy, and so is every later output of that id; the earlier call may be withheld too. A call id reused after its earlier call has left the local record (more than 4,096 removed calls earlier, or sooner once the session reaches its 6 MiB limit) is judged as a new call, and a late duplicate output of the earlier call is then placed by the new one. A command or script whose working folder is not a plain value (including an explicit empty `null`) counts the session as having touched more than one repository. A call whose folder is known judges every file it names, up to 4,096 files and up to 1 MiB of path text (a script, up to 4,096 places, folders counted; a call past either limit is unknown and withheld); a call that names more, or whose folder cannot be told, keeps up to 64 of the places it names to look for repositories and, past 64, is withheld from every copy and counts the session as having touched more than one repository. What this does not do: a command that changes folder with `cd` inside itself still counts as the folder it started in; a script that builds the name of the patch tool or a patch at run time (`tools["apply" + "_patch"]`, a heredoc assembled from pieces) is read as the script it is; a process's output
|
|
470
|
+
that the agent reads some other way than `write_stdin` or `wait` is placed by that other call; the prompts, the agent's prose and the commands that name no working folder, of a turn that ran in a folder
|
|
471
|
+
that is no repository (the parent folder) are kept in every copy, as for Claude Code; and the output of a command that names only a folder outside the
|
|
472
|
+
repository is sent as written. The client keeps, in its local session record, the folders the session's turns ran in and, for each command, the folders it ran
|
|
473
|
+
in and the files it named, and for each process and script the folders it ran in; it never sends them, and removes a command's once every copy is past its
|
|
474
|
+
output. That record is bounded whatever a transcript holds: a path over 4,096 bytes (Linux's PATH_MAX, which counts its terminating NUL; macOS's is 1,024, so a macOS path between the two is still resolved as usual) is treated as unreadable and is never stored (for Codex, a folder of that length is not a folder, and a command, patch or script that names such a path is withheld with its output; for Claude Code the call's content, its result and its structured result are withheld, and the long path string itself stays in the copy, as for any file outside the repository), a call id, process id or script id longer than 128 bytes is kept as a short digest, each table of one transcript's record (the calls, the processes, the scripts, the folders the turns ran in) holds at most 1 MiB of path text, and the tables of a session, which holds one set for each transcript (the main one and each subagent's) plus a small envelope per transcript, are held to 6 MiB in all. A session that reaches those limits (none of the sessions measured comes near them) keeps each transcript's newest calls (its 64 newest go last) and its latest folder: past the session's 6 MiB the transcript that holds the most gives up its oldest calls first, and a call the client no longer holds is withheld as above. When a table of processes or scripts has to forget an id, that whole table reads unknown from then on (from that point in the transcript when the table's own limit does it, from the start of the transcript when the session's limit does it), and every poll it answers is withheld from every copy. An id whose folders are cut to keep its table within its 1 MiB of path text, or the session within its 6 MiB, is unknown the same way: every poll it answers is withheld from every copy, and the session counts as having touched more than one repository. A subagent's transcript is read on its own and inherits nothing from the main one.
|
|
475
|
+
|
|
476
|
+
*Cursor.* Keeping one repository's copy free of another's needs to know, for every record that carries text, which folder it ran in.
|
|
477
|
+
Cursor records no folder at all. So nothing changes for it: a session is captured only for the repository its turns end in, as in 0.7.0
|
|
478
|
+
and 0.8.0. Each repository receives the session from where its own copy last stopped, or from the start, up to the turn that ended in
|
|
479
|
+
it, so turns that ran in other folders can appear in its copy. A session run from a parent folder is not captured, even when its tool
|
|
480
|
+
calls name files inside a repository you chose, and it never gets a folder target. The client does not read its transcripts to look for
|
|
481
|
+
repositories. Backfill does not offer or upload Cursor sessions.
|
|
482
|
+
|
|
359
483
|
## Status
|
|
360
484
|
|
|
361
485
|
**Implemented**, not a scaffold. All six commands above have real bodies — OAuth sign-in
|
|
@@ -299,6 +299,19 @@ export const CLAUDE_CODE = {
|
|
|
299
299
|
// over. `CR-124`, D76.
|
|
300
300
|
delegatedTranscripts: "discover",
|
|
301
301
|
redaction: "claude-code",
|
|
302
|
+
// Every Claude Code record carries the shell's current `cwd` at its top level (measured, 2026-10-31).
|
|
303
|
+
cwdKeys: [{ path: ["cwd"] }],
|
|
304
|
+
// Every CONVERSATION record carries `cwd`; 27.9% of all records carry none (measured 2026-11-01, local corpus, counts only): session metadata
|
|
305
|
+
// (last-prompt, queue-operation, api-request blobs, titles, file-history ...), several of them content-bearing, and every one of them repeated
|
|
306
|
+
// text found only in other folders' records. So a record with no folder is decided by its TYPE, never by an inherited folder (C27, C38):
|
|
307
|
+
// - last-prompt, queue-operation, api-request-blob, api-request, api-request-shape, file-history-snapshot, file-history-delta: content withheld
|
|
308
|
+
// in EVERY copy (their path-shaped keys stay);
|
|
309
|
+
// - mode, permission-mode, atis-latch, bridge-session, cost-state, tools-used, fork-context-ref, launched: kept in a multi-repo copy within their
|
|
310
|
+
// measured keys;
|
|
311
|
+
// - everything else (titles, agent-name, pr-link, a type Claude Code adds next year): withheld from a multi-repo copy, kept in a single-repo one.
|
|
312
|
+
// "Multi-repo" is `Target.multi`: the session named a work tree other than the target's (see `resolveTargets`). A record that carries a folder is
|
|
313
|
+
// decided by that folder (R17). What stays is stated in the README.
|
|
314
|
+
isolatesContentRecords: true,
|
|
302
315
|
sessionIdFromEnv: claudeSessionIdFromEnv,
|
|
303
316
|
sessionSource: claudeSessionSource,
|
|
304
317
|
locateCurrentTranscript,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude_code.js","sourceRoot":"","sources":["../../src/agents/claude_code.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude_code.js","sourceRoot":"","sources":["../../src/agents/claude_code.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/codex_cli.js
CHANGED
|
@@ -310,6 +310,17 @@ export const CODEX_CLI = {
|
|
|
310
310
|
// Claude glob cannot run against a layout that has no `subagents/`.
|
|
311
311
|
delegatedTranscripts: "announce",
|
|
312
312
|
redaction: "codex-cli",
|
|
313
|
+
// A Codex rollout names a folder on few record types (measured on 369 rollouts, 18,798 records): `session_meta` and `turn_context` carry
|
|
314
|
+
// `payload.cwd`, and a finished command item (`event_msg` / `item_completed` / `CommandExecution`) carries `item.cwd` as a `file://` URL. The folder
|
|
315
|
+
// of every other record is its EFFECTIVE folder (`codex_folders.ts`: a call's `workdir` or patched files, an output's call, else the turn folder).
|
|
316
|
+
cwdKeys: [
|
|
317
|
+
{ path: ["payload", "cwd"], types: ["session_meta", "turn_context"] },
|
|
318
|
+
{ path: ["payload", "item", "cwd"], types: ["event_msg"] },
|
|
319
|
+
],
|
|
320
|
+
// ⛔ TRUE (part (b)): every Codex record has an effective folder, told from the checkpoint the resolver writes (the turn-folder timeline and the call
|
|
321
|
+
// table) and, past the scan cursor, from the delivery's own bytes. A record that ran in another work tree is withheld from this repo's copy; one whose
|
|
322
|
+
// folder cannot be told is withheld in a multi-repo copy and kept in a single-repo one (a single-repo Codex session stays as 0.8.0 sends it).
|
|
323
|
+
isolatesContentRecords: true,
|
|
313
324
|
// ⛔ **UNMEASURED.** `null` here does NOT mean "Codex CLI has no session id in
|
|
314
325
|
// its environment" — it means nobody has run the measurement `M1` ran for
|
|
315
326
|
// Claude Code (agent commit, human commit, worktree commit) against Codex, so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex_cli.js","sourceRoot":"","sources":["../../src/agents/codex_cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex_cli.js","sourceRoot":"","sources":["../../src/agents/codex_cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQhE;;;;;;GAMG;AACH,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAC9C,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,2EAA2E;AAC3E,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,iCAAiC,GAAG,wBAAwB,CAAC,CAAC,gCAAgC;AACpG,MAAM,6BAA6B,GAAG,oBAAoB,CAAC,CAAC,gCAAgC;AAE5F;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,CAAU,CAAC;AAEpG,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;AAEvF,yFAAyF;AACzF,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAKpC;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,UAAU;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IACrC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,OAAuB,EAAE,GAAG,IAAe,EAAE,EAAE;QACrE,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAClE,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxE,IAAI,IAAI,KAAK,qBAAqB,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC3E,OAAQ,QAAyC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACpF,CAAC,CAA+B,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAiB,CAAC;IACvE,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC;IACjC,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,SAAS,eAAe,CAAC,EAA8C;IACrE,MAAM,OAAO,GAAG,IAAI,GAAG,CACpB,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjF,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CACf,CACF,CAAC;IACF,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,sEAAsE;AACtE,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,YAAY,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,cAAc,CAAC,IAAY,EAAE,YAA+B;IACnE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IACD,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,KAAK,GAAG,CAAC,GAAW,EAAQ,EAAE;QAClC,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC;iBAChC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAS,kBAAkB,CAAC,IAAY,EAAE,GAAsB;IAC9D,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAEzC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;YAC1C,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxC,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE;YACtD,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAChG,CAAC;IAED,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,EAAE,GAAsD,IAAI,CAAC;IACjE,IAAI,CAAC;QACH,2FAA2F;QAC3F,iGAAiG;QACjG,0FAA0F;QAC1F,EAAE,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,EAAE,CAAC,IAAI,CAAC,yBAAyB,qBAAqB,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QACtF,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAgB,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,EAA+B,EAAE,CAAC;YACjF,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;YACxF,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,SAAS;YACrE,iGAAiG;YACjG,4EAA4E;YAC5E,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;gBAAE,SAAS;YAC3E,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,IAAI;gBAAE,SAAS;YAC/B,IAAI,CAAC,IAAI,CAAC;gBACR,GAAG;gBACH,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;gBAClD,sEAAsE;gBACtE,0BAA0B;gBAC1B,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO;aAC3F,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IACxE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1D,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,EAAE,EAAE,KAAK,EAAE,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;QAC5E,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAsB;IAC1C,EAAE,EAAE,WAAW;IACf,SAAS,EAAE,QAAQ;IACnB,cAAc,EAAE,mBAAmB;IACnC,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,+DAA+D;IAC/D,UAAU,EAAE,gBAAgB;IAC5B,4EAA4E;IAC5E,8EAA8E;IAC9E,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IAC/E,mEAAmE;IACnE,EAAE;IACF,kEAAkE;IAClE,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,0EAA0E;IAC1E,2EAA2E;IAC3E,gFAAgF;IAChF,+EAA+E;IAC/E,qEAAqE;IACrE,qFAAqF;IACrF,+EAA+E;IAC/E,UAAU,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,YAAY;QACxB,UAAU,EAAE,YAAY;QACxB,YAAY,EAAE,cAAc;KAC7B;IACD,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,yEAAyE;IACzE,gEAAgE;IAChE,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;IACrD,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,mBAAmB,EAAE,wBAAwB;YAC7C,cAAc,EAAE,oBAAoB;SACrC;QACD,UAAU,EAAE;YACV,mBAAmB,EAAE,wBAAwB;YAC7C,cAAc,EAAE,oBAAoB;SACrC;QACD,UAAU,EAAE;YACV,mBAAmB,EAAE,+BAA+B;YACpD,cAAc,EAAE,2BAA2B;SAC5C;QACD,YAAY,EAAE;YACZ,mBAAmB,EAAE,iCAAiC;YACtD,cAAc,EAAE,6BAA6B;SAC9C;KACF;IACD,+EAA+E;IAC/E,6EAA6E;IAC7E,oEAAoE;IACpE,oBAAoB,EAAE,UAAU;IAChC,SAAS,EAAE,WAAW;IACtB,yIAAyI;IACzI,qJAAqJ;IACrJ,mJAAmJ;IACnJ,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE;QACrE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE;KAC3D;IACD,qJAAqJ;IACrJ,uJAAuJ;IACvJ,8IAA8I;IAC9I,sBAAsB,EAAE,IAAI;IAC5B,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,6EAA6E;IAC7E,+EAA+E;IAC/E,8BAA8B;IAC9B,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC5B,aAAa,EAAE,kBAAkB;IACjC,4EAA4E;IAC5E,wEAAwE;IACxE,6EAA6E;IAC7E,oDAAoD;CACrD,CAAC"}
|
package/dist/agents/cursor.js
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
import { join } from "node:path";
|
|
21
21
|
import { cursorHooksPath, cursorTranscriptRoot, isCursorTranscript } from "../paths.js";
|
|
22
22
|
import { readEntries, sessionFile, subdirectories } from "./session_listing.js";
|
|
23
|
+
import { stripEnds } from "../text_tail.js";
|
|
23
24
|
/**
|
|
24
25
|
* ⭐ **MEASURED. `D5`'s SECOND HALF IS ANSWERED (`TODOS[130]`), AND THE ANSWER IS
|
|
25
26
|
* THAT CURSOR IMPOSES NO NUMBER OF ITS OWN.**
|
|
@@ -105,7 +106,7 @@ export const CURSOR_NAME_LIMIT = 61;
|
|
|
105
106
|
* candidate rather than being assumed away.
|
|
106
107
|
*/
|
|
107
108
|
export function encodeProjectPath(path) {
|
|
108
|
-
return path.replace(/[^A-Za-z0-9]+/g, "-")
|
|
109
|
+
return stripEnds(path.replace(/[^A-Za-z0-9]+/g, "-"), "-");
|
|
109
110
|
}
|
|
110
111
|
/**
|
|
111
112
|
* Is this folder name one Cursor cut and hashed? See `CURSOR_NAME_LIMIT`.
|
|
@@ -248,6 +249,11 @@ export const CURSOR = {
|
|
|
248
249
|
// a wrong declaration here is no longer a line nobody reaches.
|
|
249
250
|
delegatedTranscripts: "announce",
|
|
250
251
|
redaction: "cursor",
|
|
252
|
+
// Cursor records no folder per record (A7, `commands/backfill.ts`).
|
|
253
|
+
// ⛔ EMPTY ON PURPOSE, and it is a gate (C14): Cursor cannot be isolated per record, so `session_targets`
|
|
254
|
+
// gives it the turn-end repo only and reads no transcript for evidence. Filling this in would switch that gate off.
|
|
255
|
+
cwdKeys: [],
|
|
256
|
+
isolatesContentRecords: false,
|
|
251
257
|
// ⛔ **UNMEASURED.** `null` here does NOT mean "Cursor has no session id in its
|
|
252
258
|
// environment" — it means nobody has run the measurement `M1` ran for Claude
|
|
253
259
|
// Code (agent commit, human commit, worktree commit) against Cursor, so this
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/agents/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/agents/cursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,6 +83,13 @@ export declare function resolveAgentId(argv: readonly string[]): string;
|
|
|
83
83
|
* the id, not the dialect.
|
|
84
84
|
*/
|
|
85
85
|
export declare function dialectFor(agentId: string | undefined): TranscriptDialect;
|
|
86
|
+
/**
|
|
87
|
+
* ⛔ **THE ONE PREDICATE FOR "CAN THIS AGENT'S SESSIONS BE CAPTURED UNDER A FOLDER?" (C34).** A folder target needs the dialect to isolate
|
|
88
|
+
* its content records (`isolatesContentRecords`): the resolver gates on the same registry value (`dialectIsolates`, by transcript path),
|
|
89
|
+
* and everything that OFFERS a folder (the picker, `connect`'s counts and copy, the parent-folder backfill) asks it here, by agent id.
|
|
90
|
+
* Never a constant or a list of names: when Codex's isolation lands and its capability flips, every one of them follows.
|
|
91
|
+
*/
|
|
92
|
+
export declare function agentIsolatesRecords(agentId: AgentId): boolean;
|
|
86
93
|
/**
|
|
87
94
|
* ⛔ **WHICH OF THE THREE EVENTS IS THIS `hook_event_name`? — `CR-195`, D205.**
|
|
88
95
|
*
|
package/dist/agents/registry.js
CHANGED
|
@@ -100,6 +100,15 @@ export function resolveAgentId(argv) {
|
|
|
100
100
|
export function dialectFor(agentId) {
|
|
101
101
|
return DIALECTS.find((dialect) => dialect.id === agentId) ?? CLAUDE_CODE;
|
|
102
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* ⛔ **THE ONE PREDICATE FOR "CAN THIS AGENT'S SESSIONS BE CAPTURED UNDER A FOLDER?" (C34).** A folder target needs the dialect to isolate
|
|
105
|
+
* its content records (`isolatesContentRecords`): the resolver gates on the same registry value (`dialectIsolates`, by transcript path),
|
|
106
|
+
* and everything that OFFERS a folder (the picker, `connect`'s counts and copy, the parent-folder backfill) asks it here, by agent id.
|
|
107
|
+
* Never a constant or a list of names: when Codex's isolation lands and its capability flips, every one of them follows.
|
|
108
|
+
*/
|
|
109
|
+
export function agentIsolatesRecords(agentId) {
|
|
110
|
+
return DIALECTS.find((dialect) => dialect.id === agentId)?.isolatesContentRecords === true;
|
|
111
|
+
}
|
|
103
112
|
/**
|
|
104
113
|
* ⛔ **WHICH OF THE THREE EVENTS IS THIS `hook_event_name`? — `CR-195`, D205.**
|
|
105
114
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,WAAW,EACX,gBAAgB,GAKjB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAiC,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAY,aAAa,CAAC;AAEvD,uEAAuE;AACvE,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,cAAc,CAAC,IAAuB;IACpD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,SAAS;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAC,OAA2B;IACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,WAAW,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAC7F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA0B,EAC1B,QAAgB;IAEhB,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC;IAClF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,GAAsB;IAClE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,GAAsB,EACtB,cAAsB;IAEtB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3E,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,GAAsB,EACtB,cAAsB;IAEtB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1C,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,cAAc,CAAC,CAC5D,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACjE,CAAC"}
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -109,6 +109,11 @@ export type SelectedAgentId = AgentId | typeof UNKNOWN_AGENT_ID;
|
|
|
109
109
|
* named after. Typing it as its own union is what stops a later edit passing an
|
|
110
110
|
* agent id here and quietly making the two things one.
|
|
111
111
|
*/
|
|
112
|
+
/** One place a record names its folder: the key path from the top level, and the record `type`s it is valid on (any when absent). */
|
|
113
|
+
export interface CwdKey {
|
|
114
|
+
readonly path: readonly string[];
|
|
115
|
+
readonly types?: readonly string[];
|
|
116
|
+
}
|
|
112
117
|
export type RedactionProfile = "claude-code" | "codex-cli" | "cursor";
|
|
113
118
|
/**
|
|
114
119
|
* How this agent's DELEGATED transcripts are found — announce vs discover.
|
|
@@ -418,6 +423,33 @@ export interface TranscriptDialect {
|
|
|
418
423
|
readonly events: Readonly<Record<HookEventName, EventBudget>>;
|
|
419
424
|
readonly delegatedTranscripts: DelegatedTranscripts;
|
|
420
425
|
readonly redaction: RedactionProfile;
|
|
426
|
+
/**
|
|
427
|
+
* ⛔ **WHERE A RECORD NAMES THE FOLDER IT RAN IN** — the dialect's own half of R2's evidence read (any-folder capture).
|
|
428
|
+
*
|
|
429
|
+
* `session_targets.ts` reads, from new transcript bytes, each record's folder plus the path keys redaction already parses
|
|
430
|
+
* (`rulesForTranscript(...).pathKeys`: ONE list, never a second copy), and keeps only the set of repo roots they map to.
|
|
431
|
+
* This is the folder half: the path of keys from the record's top level to the string, and optionally the record `type`s
|
|
432
|
+
* it is valid for. Claude Code carries a top-level `cwd`; Codex carries `payload.cwd` on `session_meta` and `turn_context`
|
|
433
|
+
* records; Cursor records no folder at all (`[]`, A7: stated, fails closed).
|
|
434
|
+
*
|
|
435
|
+
* ⛔ **REQUIRED, not optional**, `admitsFile`'s device: a dialect added later must ANSWER "does a record name its folder",
|
|
436
|
+
* and the compiler is what asks. `test/agent-registry.test.ts` pins the member.
|
|
437
|
+
*/
|
|
438
|
+
readonly cwdKeys: readonly CwdKey[];
|
|
439
|
+
/**
|
|
440
|
+
* ⛔ **CAN THIS DIALECT'S COPY FOR ONE REPOSITORY BE KEPT FREE OF ANOTHER REPOSITORY'S RECORDS?** (R17 · C24.) Record isolation withholds
|
|
441
|
+
* a record that ran inside a work tree other than the target's, so it is only as good as the dialect's answer to "which folder did
|
|
442
|
+
* THIS record run in" for EVERY record that carries content. Evidence targets (a repo named only by a record's path), folder targets
|
|
443
|
+
* and the transcript read for evidence are therefore allowed only when this is true: without it a session that touched repos A and B
|
|
444
|
+
* would upload B's prompts, outputs and prose inside A's copy.
|
|
445
|
+
*
|
|
446
|
+
* `cwdKeys` being non-empty is NOT this answer: it says some records name a folder, not that every content record does. Claude
|
|
447
|
+
* Code: `true` (each conversation record carries `cwd`; the cwd-less session-metadata records are a documented residual until the
|
|
448
|
+
* stateful isolation of C24 (b) covers them). Codex: `false` (only `session_meta` and `turn_context` carry a folder; prompts,
|
|
449
|
+
* outputs and prose do not). Cursor: `false` (no folder at all). A dialect that is `false` gets the turn-end repo only, exactly as in
|
|
450
|
+
* 0.7.0 and 0.8.0, and never a folder target. REQUIRED, `cwdKeys`' device; `test/agent-registry.test.ts` pins the member.
|
|
451
|
+
*/
|
|
452
|
+
readonly isolatesContentRecords: boolean;
|
|
421
453
|
/**
|
|
422
454
|
* ⛔ **WHICH SESSION IS COMMITTING — read from the environment, not inferred
|
|
423
455
|
* from HEAD (`D3`, `D183`).**
|
package/dist/agents/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AA4BH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AA4BH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAmE1C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,CAAU,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C75 (4): ONE bound for the non-path strings a transcript hands the client and the client keeps as keys (a call id, a tool name, a process session id, a script cell id).
|
|
3
|
+
*
|
|
4
|
+
* The checkpoint stores these (`CallEntry.id`, `droppedIds`, `droppedNamed`, `prunedIds`, the session and cell maps), and a transcript can hold a 3 MB value in any of them:
|
|
5
|
+
* a record of the same size, written on every firing. An id longer than `MAX_ID_BYTES` is stored (and compared) as `sha256:` + the hex digest of its UTF-8 bytes, so two ids still match exactly when
|
|
6
|
+
* they are the same string, and nothing a transcript names is kept at its own length. (A genuine id is a UUID, a `call_...` token or a small integer: all far under the bound.)
|
|
7
|
+
* A tool NAME longer than the bound reads as "" (default deny: the name is not one of the tools the rules know).
|
|
8
|
+
*
|
|
9
|
+
* ⛔ The helper is applied where a string ENTERS (the scan, the delivery observer) and where one is LOOKED UP (a `write_stdin` / `wait` argument, a Claude `tool_use_id`),
|
|
10
|
+
* never in between, so the checkpoint, the observer and the lookup always agree.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MAX_ID_BYTES = 128;
|
|
13
|
+
/** The id as the client keys it: itself, or (over `MAX_ID_BYTES`) `sha256:` + its hex digest (71 bytes). */
|
|
14
|
+
export declare function boundedId(id: string): string;
|
|
15
|
+
/** A tool name as the client keeps it: itself, or "" (default deny) when longer than `MAX_ID_BYTES`. */
|
|
16
|
+
export declare function boundedName(name: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* C75 (8): the bytes ONE stream's call log may store (an entry's fixed cost and the `paths` and `files` of every entry, open and closed). Per-value caps (4,096 bytes a path, 4,096 files a
|
|
19
|
+
* call, 256 open and 4,096 closed calls) multiply to gigabytes; this is the bound on the TABLE. A call that alone names more is UNKNOWN (not stored: UNJUDGED_FILE for Codex,
|
|
20
|
+
* INCOMPLETE for Claude); a table that would pass it evicts its oldest entries through the existing eviction (the departed id is remembered, its output fails closed).
|
|
21
|
+
*/
|
|
22
|
+
export declare const CALL_LOG_BUDGET_BYTES: number;
|
|
23
|
+
/** The bytes the strings take in the persisted record (UTF-8). */
|
|
24
|
+
export declare function bytesOf(strings: readonly string[]): number;
|
|
25
|
+
/** The JSON one stored string costs beyond its own text (quotes, a comma), or one folder of an id map (`{"dir":..., "at":...,"file":true}`) beyond its path. */
|
|
26
|
+
export declare const STRING_OVERHEAD_BYTES = 4;
|
|
27
|
+
export declare const DIR_OVERHEAD_BYTES = 48;
|
|
28
|
+
/** The bytes a list of strings takes in the persisted record: their text and their quoting. */
|
|
29
|
+
export declare function storedBytes(strings: readonly string[]): number;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C75 (4): ONE bound for the non-path strings a transcript hands the client and the client keeps as keys (a call id, a tool name, a process session id, a script cell id).
|
|
3
|
+
*
|
|
4
|
+
* The checkpoint stores these (`CallEntry.id`, `droppedIds`, `droppedNamed`, `prunedIds`, the session and cell maps), and a transcript can hold a 3 MB value in any of them:
|
|
5
|
+
* a record of the same size, written on every firing. An id longer than `MAX_ID_BYTES` is stored (and compared) as `sha256:` + the hex digest of its UTF-8 bytes, so two ids still match exactly when
|
|
6
|
+
* they are the same string, and nothing a transcript names is kept at its own length. (A genuine id is a UUID, a `call_...` token or a small integer: all far under the bound.)
|
|
7
|
+
* A tool NAME longer than the bound reads as "" (default deny: the name is not one of the tools the rules know).
|
|
8
|
+
*
|
|
9
|
+
* ⛔ The helper is applied where a string ENTERS (the scan, the delivery observer) and where one is LOOKED UP (a `write_stdin` / `wait` argument, a Claude `tool_use_id`),
|
|
10
|
+
* never in between, so the checkpoint, the observer and the lookup always agree.
|
|
11
|
+
*/
|
|
12
|
+
import { createHash } from "node:crypto";
|
|
13
|
+
export const MAX_ID_BYTES = 128;
|
|
14
|
+
/** The id as the client keys it: itself, or (over `MAX_ID_BYTES`) `sha256:` + its hex digest (71 bytes). */
|
|
15
|
+
export function boundedId(id) {
|
|
16
|
+
return Buffer.byteLength(id, "utf8") > MAX_ID_BYTES ? `sha256:${createHash("sha256").update(id, "utf8").digest("hex")}` : id;
|
|
17
|
+
}
|
|
18
|
+
/** A tool name as the client keeps it: itself, or "" (default deny) when longer than `MAX_ID_BYTES`. */
|
|
19
|
+
export function boundedName(name) {
|
|
20
|
+
return Buffer.byteLength(name, "utf8") > MAX_ID_BYTES ? "" : name;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* C75 (8): the bytes ONE stream's call log may store (an entry's fixed cost and the `paths` and `files` of every entry, open and closed). Per-value caps (4,096 bytes a path, 4,096 files a
|
|
24
|
+
* call, 256 open and 4,096 closed calls) multiply to gigabytes; this is the bound on the TABLE. A call that alone names more is UNKNOWN (not stored: UNJUDGED_FILE for Codex,
|
|
25
|
+
* INCOMPLETE for Claude); a table that would pass it evicts its oldest entries through the existing eviction (the departed id is remembered, its output fails closed).
|
|
26
|
+
*/
|
|
27
|
+
export const CALL_LOG_BUDGET_BYTES = 1024 * 1024;
|
|
28
|
+
/** The bytes the strings take in the persisted record (UTF-8). */
|
|
29
|
+
export function bytesOf(strings) {
|
|
30
|
+
let total = 0;
|
|
31
|
+
for (const s of strings)
|
|
32
|
+
total += Buffer.byteLength(s, "utf8");
|
|
33
|
+
return total;
|
|
34
|
+
}
|
|
35
|
+
/** The JSON one stored string costs beyond its own text (quotes, a comma), or one folder of an id map (`{"dir":..., "at":...,"file":true}`) beyond its path. */
|
|
36
|
+
export const STRING_OVERHEAD_BYTES = 4;
|
|
37
|
+
export const DIR_OVERHEAD_BYTES = 48;
|
|
38
|
+
/** The bytes a list of strings takes in the persisted record: their text and their quoting. */
|
|
39
|
+
export function storedBytes(strings) {
|
|
40
|
+
return bytesOf(strings) + STRING_OVERHEAD_BYTES * strings.length;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=bounded_id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded_id.js","sourceRoot":"","sources":["../src/bounded_id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAEhC,4GAA4G;AAC5G,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,OAAO,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/H,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,kEAAkE;AAClE,MAAM,UAAU,OAAO,CAAC,OAA0B;IAChD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gKAAgK;AAChK,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,+FAA+F;AAC/F,MAAM,UAAU,WAAW,CAAC,OAA0B;IACpD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;AACnE,CAAC"}
|