agent_sessions 0.3.0 → 0.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +87 -3
- data/doc/Agent/Sessions/Adapters/Amp.md +91 -0
- data/doc/Agent/Sessions/Adapters/Base.md +198 -0
- data/doc/Agent/Sessions/Adapters/Claude.md +63 -0
- data/doc/Agent/Sessions/Adapters/Codex.md +79 -0
- data/doc/Agent/Sessions/Adapters/Copilot.md +38 -0
- data/doc/Agent/Sessions/Adapters/Cursor.md +54 -0
- data/doc/Agent/Sessions/Adapters/CursorIde.md +49 -0
- data/doc/Agent/Sessions/Adapters/Enumeration.md +135 -0
- data/doc/Agent/Sessions/Adapters/Gemini.md +67 -0
- data/doc/Agent/Sessions/Adapters/Grok.md +64 -0
- data/doc/Agent/Sessions/Adapters/Opencode.md +93 -0
- data/doc/Agent/Sessions/Adapters/Pi.md +137 -0
- data/doc/Agent/Sessions/Adapters/Qwen.md +32 -0
- data/doc/Agent/Sessions/Adapters.md +5 -0
- data/doc/Agent/Sessions/Audit/Finding.md +27 -0
- data/doc/Agent/Sessions/Audit.md +21 -0
- data/doc/Agent/Sessions/CLI.md +36 -0
- data/doc/Agent/Sessions/Check.md +27 -0
- data/doc/Agent/Sessions/Compaction.md +23 -0
- data/doc/Agent/Sessions/EnvOverride.md +19 -0
- data/doc/Agent/Sessions/Error.md +6 -0
- data/doc/Agent/Sessions/HomeExpansion.md +11 -0
- data/doc/Agent/Sessions/Location.md +60 -0
- data/doc/Agent/Sessions/Message.md +59 -0
- data/doc/Agent/Sessions/MissingDependency.md +6 -0
- data/doc/Agent/Sessions/Node.md +24 -0
- data/doc/Agent/Sessions/Part.md +41 -0
- data/doc/Agent/Sessions/Readers/Amp.md +41 -0
- data/doc/Agent/Sessions/Readers/Base.md +122 -0
- data/doc/Agent/Sessions/Readers/Claude.md +80 -0
- data/doc/Agent/Sessions/Readers/Codex.md +81 -0
- data/doc/Agent/Sessions/Readers/Copilot.md +31 -0
- data/doc/Agent/Sessions/Readers/Gemini.md +38 -0
- data/doc/Agent/Sessions/Readers/Grok.md +45 -0
- data/doc/Agent/Sessions/Readers/Opencode.md +37 -0
- data/doc/Agent/Sessions/Readers/Pi.md +38 -0
- data/doc/Agent/Sessions/Readers/Qwen.md +30 -0
- data/doc/Agent/Sessions/Readers.md +5 -0
- data/doc/Agent/Sessions/RoundTrip.md +57 -0
- data/doc/Agent/Sessions/Session.md +73 -0
- data/doc/Agent/Sessions/Sqlite.md +43 -0
- data/doc/Agent/Sessions/Store.md +57 -0
- data/doc/Agent/Sessions/UnknownAgent.md +6 -0
- data/doc/Agent/Sessions/UnreadableStore.md +6 -0
- data/doc/Agent/Sessions/UnsupportedFormat.md +6 -0
- data/doc/Agent/Sessions/Usage.md +56 -0
- data/doc/Agent/Sessions.md +178 -0
- data/doc/Agent.md +5 -0
- data/doc/CHANGELOG.md +77 -0
- data/doc/README.md +182 -0
- data/doc/index.csv +330 -0
- data/exe/agent-sessions +0 -2
- data/lib/agent/sessions/adapters/cursor.rb +3 -3
- data/lib/agent/sessions/cli.rb +2 -2
- data/lib/agent/sessions/message.rb +1 -2
- data/lib/agent/sessions/part.rb +1 -2
- data/lib/agent/sessions/readers/base.rb +95 -0
- data/lib/agent/sessions/readers/claude.rb +10 -0
- data/lib/agent/sessions/round_trip.rb +39 -0
- data/lib/agent/sessions/version.rb +1 -1
- data/llm.txt +178 -0
- metadata +56 -2
data/doc/index.csv
ADDED
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
name,type,path
|
|
2
|
+
README.md,File,README.md
|
|
3
|
+
CHANGELOG.md,File,CHANGELOG.md
|
|
4
|
+
Agent,Module,Agent.md
|
|
5
|
+
Agent::Sessions,Module,Agent/Sessions.md
|
|
6
|
+
Agent::Sessions.LOADER,Constant,Agent/Sessions.md#constant-LOADER
|
|
7
|
+
Agent::Sessions.STALE_AFTER_DAYS,Constant,Agent/Sessions.md#constant-STALE_AFTER_DAYS
|
|
8
|
+
Agent::Sessions.VERIFIED_ON,Constant,Agent/Sessions.md#constant-VERIFIED_ON
|
|
9
|
+
Agent::Sessions.VERSION,Constant,Agent/Sessions.md#constant-VERSION
|
|
10
|
+
Agent::Sessions.agents,Method,Agent/Sessions.md#method-c-agents
|
|
11
|
+
Agent::Sessions.all,Method,Agent/Sessions.md#method-c-all
|
|
12
|
+
Agent::Sessions.audit,Method,Agent/Sessions.md#method-c-audit
|
|
13
|
+
Agent::Sessions.doctor,Method,Agent/Sessions.md#method-c-doctor
|
|
14
|
+
Agent::Sessions.for_project,Method,Agent/Sessions.md#method-c-for_project
|
|
15
|
+
Agent::Sessions.installed,Method,Agent/Sessions.md#method-c-installed
|
|
16
|
+
Agent::Sessions.locate,Method,Agent/Sessions.md#method-c-locate
|
|
17
|
+
Agent::Sessions.projects,Method,Agent/Sessions.md#method-c-projects
|
|
18
|
+
Agent::Sessions.read,Method,Agent/Sessions.md#method-c-read
|
|
19
|
+
Agent::Sessions.register,Method,Agent/Sessions.md#method-c-register
|
|
20
|
+
Agent::Sessions.registry,Method,Agent/Sessions.md#method-c-registry
|
|
21
|
+
Agent::Sessions.sessions,Method,Agent/Sessions.md#method-c-sessions
|
|
22
|
+
Agent::Sessions.unresolved_project_count,Method,Agent/Sessions.md#method-c-unresolved_project_count
|
|
23
|
+
Agent::Sessions.verify,Method,Agent/Sessions.md#method-c-verify
|
|
24
|
+
Agent::Sessions::Sqlite,Module,Agent/Sessions/Sqlite.md
|
|
25
|
+
Agent::Sessions::Sqlite.escape_uri_path,Method,Agent/Sessions/Sqlite.md#method-c-escape_uri_path
|
|
26
|
+
Agent::Sessions::Sqlite.open_readonly,Method,Agent/Sessions/Sqlite.md#method-c-open_readonly
|
|
27
|
+
Agent::Sessions::Readers,Module,Agent/Sessions/Readers.md
|
|
28
|
+
Agent::Sessions::Adapters,Module,Agent/Sessions/Adapters.md
|
|
29
|
+
Agent::Sessions::HomeExpansion,Module,Agent/Sessions/HomeExpansion.md
|
|
30
|
+
Agent::Sessions::Adapters::Enumeration,Module,Agent/Sessions/Adapters/Enumeration.md
|
|
31
|
+
Agent::Sessions::Adapters::Enumeration.MAX_LINE_BYTES,Constant,Agent/Sessions/Adapters/Enumeration.md#constant-MAX_LINE_BYTES
|
|
32
|
+
Agent::Sessions::Adapters::Enumeration.bytes_for,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-bytes_for
|
|
33
|
+
Agent::Sessions::Adapters::Enumeration.encode_project,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-encode_project
|
|
34
|
+
Agent::Sessions::Adapters::Enumeration.project_dir_name,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-project_dir_name
|
|
35
|
+
Agent::Sessions::Adapters::Enumeration.project_path_for,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-project_path_for
|
|
36
|
+
Agent::Sessions::Adapters::Enumeration.project_paths,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-project_paths
|
|
37
|
+
Agent::Sessions::Adapters::Enumeration.session_id_from,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-session_id_from
|
|
38
|
+
Agent::Sessions::Adapters::Enumeration.sessions,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-sessions
|
|
39
|
+
Agent::Sessions::Adapters::Enumeration.sessions_for_project,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-sessions_for_project
|
|
40
|
+
Agent::Sessions::Adapters::Enumeration.started_at_for,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-started_at_for
|
|
41
|
+
Agent::Sessions::Adapters::Enumeration.updated_at_for,Method,Agent/Sessions/Adapters/Enumeration.md#method-i-updated_at_for
|
|
42
|
+
Agent::Sessions::CLI,Class,Agent/Sessions/CLI.md
|
|
43
|
+
Agent::Sessions::CLI.STATUS_MARKS,Constant,Agent/Sessions/CLI.md#constant-STATUS_MARKS
|
|
44
|
+
Agent::Sessions::CLI.SINCE_UNITS,Constant,Agent/Sessions/CLI.md#constant-SINCE_UNITS
|
|
45
|
+
Agent::Sessions::CLI.ID_COLUMN_MAX,Constant,Agent/Sessions/CLI.md#constant-ID_COLUMN_MAX
|
|
46
|
+
Agent::Sessions::CLI.GROUP_COLUMN_MAX,Constant,Agent/Sessions/CLI.md#constant-GROUP_COLUMN_MAX
|
|
47
|
+
Agent::Sessions::CLI.initialize,Method,Agent/Sessions/CLI.md#method-i-initialize
|
|
48
|
+
Agent::Sessions::CLI.run,Method,Agent/Sessions/CLI.md#method-i-run
|
|
49
|
+
Agent::Sessions::Node,Class,Agent/Sessions/Node.md
|
|
50
|
+
Agent::Sessions::Node.children,Attribute,Agent/Sessions/Node.md#attribute-i-children
|
|
51
|
+
Agent::Sessions::Node.message,Attribute,Agent/Sessions/Node.md#attribute-i-message
|
|
52
|
+
Agent::Sessions::Part,Class,Agent/Sessions/Part.md
|
|
53
|
+
Agent::Sessions::Part.TYPES,Constant,Agent/Sessions/Part.md#constant-TYPES
|
|
54
|
+
Agent::Sessions::Part.initialize,Method,Agent/Sessions/Part.md#method-i-initialize
|
|
55
|
+
Agent::Sessions::Part.call_id,Attribute,Agent/Sessions/Part.md#attribute-i-call_id
|
|
56
|
+
Agent::Sessions::Part.name,Attribute,Agent/Sessions/Part.md#attribute-i-name
|
|
57
|
+
Agent::Sessions::Part.text,Attribute,Agent/Sessions/Part.md#attribute-i-text
|
|
58
|
+
Agent::Sessions::Part.type,Attribute,Agent/Sessions/Part.md#attribute-i-type
|
|
59
|
+
Agent::Sessions::Audit,Class,Agent/Sessions/Audit.md
|
|
60
|
+
Agent::Sessions::Audit.SYNC_ROOTS,Constant,Agent/Sessions/Audit.md#constant-SYNC_ROOTS
|
|
61
|
+
Agent::Sessions::Audit.initialize,Method,Agent/Sessions/Audit.md#method-i-initialize
|
|
62
|
+
Agent::Sessions::Audit.report,Method,Agent/Sessions/Audit.md#method-i-report
|
|
63
|
+
Agent::Sessions::Audit::Finding,Class,Agent/Sessions/Audit/Finding.md
|
|
64
|
+
Agent::Sessions::Audit::Finding.agent,Attribute,Agent/Sessions/Audit/Finding.md#attribute-i-agent
|
|
65
|
+
Agent::Sessions::Audit::Finding.bytes,Attribute,Agent/Sessions/Audit/Finding.md#attribute-i-bytes
|
|
66
|
+
Agent::Sessions::Audit::Finding.kind,Attribute,Agent/Sessions/Audit/Finding.md#attribute-i-kind
|
|
67
|
+
Agent::Sessions::Audit::Finding.path,Attribute,Agent/Sessions/Audit/Finding.md#attribute-i-path
|
|
68
|
+
Agent::Sessions::Audit::Finding.synced_to,Attribute,Agent/Sessions/Audit/Finding.md#attribute-i-synced_to
|
|
69
|
+
Agent::Sessions::Check,Class,Agent/Sessions/Check.md
|
|
70
|
+
Agent::Sessions::Check.pass?,Method,Agent/Sessions/Check.md#method-i-pass-3F
|
|
71
|
+
Agent::Sessions::Check.agent,Attribute,Agent/Sessions/Check.md#attribute-i-agent
|
|
72
|
+
Agent::Sessions::Check.claim,Attribute,Agent/Sessions/Check.md#attribute-i-claim
|
|
73
|
+
Agent::Sessions::Check.detail,Attribute,Agent/Sessions/Check.md#attribute-i-detail
|
|
74
|
+
Agent::Sessions::Check.status,Attribute,Agent/Sessions/Check.md#attribute-i-status
|
|
75
|
+
Agent::Sessions::Error,Class,Agent/Sessions/Error.md
|
|
76
|
+
Agent::Sessions::Store,Class,Agent/Sessions/Store.md
|
|
77
|
+
Agent::Sessions::Store.documented?,Method,Agent/Sessions/Store.md#method-i-documented-3F
|
|
78
|
+
Agent::Sessions::Store.format,Method,Agent/Sessions/Store.md#method-i-format
|
|
79
|
+
Agent::Sessions::Store.installed?,Method,Agent/Sessions/Store.md#method-i-installed-3F
|
|
80
|
+
Agent::Sessions::Store.agent,Attribute,Agent/Sessions/Store.md#attribute-i-agent
|
|
81
|
+
Agent::Sessions::Store.documented,Attribute,Agent/Sessions/Store.md#attribute-i-documented
|
|
82
|
+
Agent::Sessions::Store.effective,Attribute,Agent/Sessions/Store.md#attribute-i-effective
|
|
83
|
+
Agent::Sessions::Store.env_overrides,Attribute,Agent/Sessions/Store.md#attribute-i-env_overrides
|
|
84
|
+
Agent::Sessions::Store.label,Attribute,Agent/Sessions/Store.md#attribute-i-label
|
|
85
|
+
Agent::Sessions::Store.layers,Attribute,Agent/Sessions/Store.md#attribute-i-layers
|
|
86
|
+
Agent::Sessions::Store.retention,Attribute,Agent/Sessions/Store.md#attribute-i-retention
|
|
87
|
+
Agent::Sessions::Store.retention_source,Attribute,Agent/Sessions/Store.md#attribute-i-retention_source
|
|
88
|
+
Agent::Sessions::Store.verified_on,Attribute,Agent/Sessions/Store.md#attribute-i-verified_on
|
|
89
|
+
Agent::Sessions::Store.warnings,Attribute,Agent/Sessions/Store.md#attribute-i-warnings
|
|
90
|
+
Agent::Sessions::Usage,Class,Agent/Sessions/Usage.md
|
|
91
|
+
Agent::Sessions::Usage.+,Method,Agent/Sessions/Usage.md#method-i--2B
|
|
92
|
+
Agent::Sessions::Usage.initialize,Method,Agent/Sessions/Usage.md#method-i-initialize
|
|
93
|
+
Agent::Sessions::Usage.cache_creation,Attribute,Agent/Sessions/Usage.md#attribute-i-cache_creation
|
|
94
|
+
Agent::Sessions::Usage.cache_read,Attribute,Agent/Sessions/Usage.md#attribute-i-cache_read
|
|
95
|
+
Agent::Sessions::Usage.cost,Attribute,Agent/Sessions/Usage.md#attribute-i-cost
|
|
96
|
+
Agent::Sessions::Usage.input,Attribute,Agent/Sessions/Usage.md#attribute-i-input
|
|
97
|
+
Agent::Sessions::Usage.output,Attribute,Agent/Sessions/Usage.md#attribute-i-output
|
|
98
|
+
Agent::Sessions::Usage.reasoning,Attribute,Agent/Sessions/Usage.md#attribute-i-reasoning
|
|
99
|
+
Agent::Sessions::Message,Class,Agent/Sessions/Message.md
|
|
100
|
+
Agent::Sessions::Message.ROLES,Constant,Agent/Sessions/Message.md#constant-ROLES
|
|
101
|
+
Agent::Sessions::Message.initialize,Method,Agent/Sessions/Message.md#method-i-initialize
|
|
102
|
+
Agent::Sessions::Message.text,Method,Agent/Sessions/Message.md#method-i-text
|
|
103
|
+
Agent::Sessions::Message.at,Attribute,Agent/Sessions/Message.md#attribute-i-at
|
|
104
|
+
Agent::Sessions::Message.model,Attribute,Agent/Sessions/Message.md#attribute-i-model
|
|
105
|
+
Agent::Sessions::Message.parts,Attribute,Agent/Sessions/Message.md#attribute-i-parts
|
|
106
|
+
Agent::Sessions::Message.raw,Attribute,Agent/Sessions/Message.md#attribute-i-raw
|
|
107
|
+
Agent::Sessions::Message.role,Attribute,Agent/Sessions/Message.md#attribute-i-role
|
|
108
|
+
Agent::Sessions::Message.usage,Attribute,Agent/Sessions/Message.md#attribute-i-usage
|
|
109
|
+
Agent::Sessions::Session,Class,Agent/Sessions/Session.md
|
|
110
|
+
Agent::Sessions::Session.UNRESOLVED,Constant,Agent/Sessions/Session.md#constant-UNRESOLVED
|
|
111
|
+
Agent::Sessions::Session.initialize,Method,Agent/Sessions/Session.md#method-i-initialize
|
|
112
|
+
Agent::Sessions::Session.inspect,Method,Agent/Sessions/Session.md#method-i-inspect
|
|
113
|
+
Agent::Sessions::Session.project_path,Method,Agent/Sessions/Session.md#method-i-project_path
|
|
114
|
+
Agent::Sessions::Session.to_h,Method,Agent/Sessions/Session.md#method-i-to_h
|
|
115
|
+
Agent::Sessions::Session.uid,Method,Agent/Sessions/Session.md#method-i-uid
|
|
116
|
+
Agent::Sessions::Session.agent,Attribute,Agent/Sessions/Session.md#attribute-i-agent
|
|
117
|
+
Agent::Sessions::Session.bytes,Attribute,Agent/Sessions/Session.md#attribute-i-bytes
|
|
118
|
+
Agent::Sessions::Session.fidelity,Attribute,Agent/Sessions/Session.md#attribute-i-fidelity
|
|
119
|
+
Agent::Sessions::Session.format,Attribute,Agent/Sessions/Session.md#attribute-i-format
|
|
120
|
+
Agent::Sessions::Session.id,Attribute,Agent/Sessions/Session.md#attribute-i-id
|
|
121
|
+
Agent::Sessions::Session.path,Attribute,Agent/Sessions/Session.md#attribute-i-path
|
|
122
|
+
Agent::Sessions::Session.started_at,Attribute,Agent/Sessions/Session.md#attribute-i-started_at
|
|
123
|
+
Agent::Sessions::Session.updated_at,Attribute,Agent/Sessions/Session.md#attribute-i-updated_at
|
|
124
|
+
Agent::Sessions::Location,Class,Agent/Sessions/Location.md
|
|
125
|
+
Agent::Sessions::Location.enumerable?,Method,Agent/Sessions/Location.md#method-i-enumerable-3F
|
|
126
|
+
Agent::Sessions::Location.exists?,Method,Agent/Sessions/Location.md#method-i-exists-3F
|
|
127
|
+
Agent::Sessions::Location.files,Method,Agent/Sessions/Location.md#method-i-files
|
|
128
|
+
Agent::Sessions::Location.initialize,Method,Agent/Sessions/Location.md#method-i-initialize
|
|
129
|
+
Agent::Sessions::Location.format,Attribute,Agent/Sessions/Location.md#attribute-i-format
|
|
130
|
+
Agent::Sessions::Location.glob,Attribute,Agent/Sessions/Location.md#attribute-i-glob
|
|
131
|
+
Agent::Sessions::Location.kind,Attribute,Agent/Sessions/Location.md#attribute-i-kind
|
|
132
|
+
Agent::Sessions::Location.path,Attribute,Agent/Sessions/Location.md#attribute-i-path
|
|
133
|
+
Agent::Sessions::Location.single_file,Attribute,Agent/Sessions/Location.md#attribute-i-single_file
|
|
134
|
+
Agent::Sessions::Compaction,Class,Agent/Sessions/Compaction.md
|
|
135
|
+
Agent::Sessions::Compaction.at,Attribute,Agent/Sessions/Compaction.md#attribute-i-at
|
|
136
|
+
Agent::Sessions::Compaction.raw,Attribute,Agent/Sessions/Compaction.md#attribute-i-raw
|
|
137
|
+
Agent::Sessions::Compaction.replaced_count,Attribute,Agent/Sessions/Compaction.md#attribute-i-replaced_count
|
|
138
|
+
Agent::Sessions::Readers::Pi,Class,Agent/Sessions/Readers/Pi.md
|
|
139
|
+
Agent::Sessions::Readers::Pi.NON_MESSAGE_TYPES,Constant,Agent/Sessions/Readers/Pi.md#constant-NON_MESSAGE_TYPES
|
|
140
|
+
Agent::Sessions::Readers::Pi.ROLES,Constant,Agent/Sessions/Readers/Pi.md#constant-ROLES
|
|
141
|
+
Agent::Sessions::Readers::Pi.usage,Method,Agent/Sessions/Readers/Pi.md#method-i-usage
|
|
142
|
+
Agent::Sessions::RoundTrip,Class,Agent/Sessions/RoundTrip.md
|
|
143
|
+
Agent::Sessions::RoundTrip.at,Method,Agent/Sessions/RoundTrip.md#method-i-at
|
|
144
|
+
Agent::Sessions::RoundTrip.calls,Method,Agent/Sessions/RoundTrip.md#method-i-calls
|
|
145
|
+
Agent::Sessions::RoundTrip.model,Method,Agent/Sessions/RoundTrip.md#method-i-model
|
|
146
|
+
Agent::Sessions::RoundTrip.parts,Method,Agent/Sessions/RoundTrip.md#method-i-parts
|
|
147
|
+
Agent::Sessions::RoundTrip.roles,Method,Agent/Sessions/RoundTrip.md#method-i-roles
|
|
148
|
+
Agent::Sessions::RoundTrip.index,Attribute,Agent/Sessions/RoundTrip.md#attribute-i-index
|
|
149
|
+
Agent::Sessions::RoundTrip.messages,Attribute,Agent/Sessions/RoundTrip.md#attribute-i-messages
|
|
150
|
+
Agent::Sessions::RoundTrip.recorded,Attribute,Agent/Sessions/RoundTrip.md#attribute-i-recorded
|
|
151
|
+
Agent::Sessions::RoundTrip.usage,Attribute,Agent/Sessions/RoundTrip.md#attribute-i-usage
|
|
152
|
+
Agent::Sessions::Adapters::Pi,Class,Agent/Sessions/Adapters/Pi.md
|
|
153
|
+
Agent::Sessions::Adapters::Pi.FILENAME,Constant,Agent/Sessions/Adapters/Pi.md#constant-FILENAME
|
|
154
|
+
Agent::Sessions::Adapters::Pi.encode_project,Method,Agent/Sessions/Adapters/Pi.md#method-i-encode_project
|
|
155
|
+
Agent::Sessions::Adapters::Pi.project_path_for,Method,Agent/Sessions/Adapters/Pi.md#method-i-project_path_for
|
|
156
|
+
Agent::Sessions::Adapters::Pi.session_id_from,Method,Agent/Sessions/Adapters/Pi.md#method-i-session_id_from
|
|
157
|
+
Agent::Sessions::Adapters::Pi.started_at_for,Method,Agent/Sessions/Adapters/Pi.md#method-i-started_at_for
|
|
158
|
+
Agent::Sessions::Adapters::Pi.warnings,Method,Agent/Sessions/Adapters/Pi.md#method-i-warnings
|
|
159
|
+
Agent::Sessions::Adapters::Pi.reader_class,Method,Agent/Sessions/Adapters/Pi.md#method-c-reader_class
|
|
160
|
+
Agent::Sessions::Readers::Amp,Class,Agent/Sessions/Readers/Amp.md
|
|
161
|
+
Agent::Sessions::Readers::Amp.MAX_DOCUMENT_BYTES,Constant,Agent/Sessions/Readers/Amp.md#constant-MAX_DOCUMENT_BYTES
|
|
162
|
+
Agent::Sessions::Readers::Amp.CONTENT_PARTS,Constant,Agent/Sessions/Readers/Amp.md#constant-CONTENT_PARTS
|
|
163
|
+
Agent::Sessions::Readers::Amp.ROLES,Constant,Agent/Sessions/Readers/Amp.md#constant-ROLES
|
|
164
|
+
Agent::Sessions::Readers::Amp.partial?,Method,Agent/Sessions/Readers/Amp.md#method-i-partial-3F
|
|
165
|
+
Agent::Sessions::Adapters::Amp,Class,Agent/Sessions/Adapters/Amp.md
|
|
166
|
+
Agent::Sessions::Adapters::Amp.project_path_for,Method,Agent/Sessions/Adapters/Amp.md#method-i-project_path_for
|
|
167
|
+
Agent::Sessions::Adapters::Amp.warnings,Method,Agent/Sessions/Adapters/Amp.md#method-i-warnings
|
|
168
|
+
Agent::Sessions::Adapters::Amp.reader_class,Method,Agent/Sessions/Adapters/Amp.md#method-c-reader_class
|
|
169
|
+
Agent::Sessions::EnvOverride,Class,Agent/Sessions/EnvOverride.md
|
|
170
|
+
Agent::Sessions::EnvOverride.active?,Method,Agent/Sessions/EnvOverride.md#method-i-active-3F
|
|
171
|
+
Agent::Sessions::EnvOverride.name,Attribute,Agent/Sessions/EnvOverride.md#attribute-i-name
|
|
172
|
+
Agent::Sessions::EnvOverride.value,Attribute,Agent/Sessions/EnvOverride.md#attribute-i-value
|
|
173
|
+
Agent::Sessions::Readers::Base,Class,Agent/Sessions/Readers/Base.md
|
|
174
|
+
Agent::Sessions::Readers::Base.MAX_RECORD_BYTES,Constant,Agent/Sessions/Readers/Base.md#constant-MAX_RECORD_BYTES
|
|
175
|
+
Agent::Sessions::Readers::Base.branching?,Method,Agent/Sessions/Readers/Base.md#method-i-branching-3F
|
|
176
|
+
Agent::Sessions::Readers::Base.compactions,Method,Agent/Sessions/Readers/Base.md#method-i-compactions
|
|
177
|
+
Agent::Sessions::Readers::Base.each_message,Method,Agent/Sessions/Readers/Base.md#method-i-each_message
|
|
178
|
+
Agent::Sessions::Readers::Base.each_round_trip,Method,Agent/Sessions/Readers/Base.md#method-i-each_round_trip
|
|
179
|
+
Agent::Sessions::Readers::Base.fidelity,Method,Agent/Sessions/Readers/Base.md#method-i-fidelity
|
|
180
|
+
Agent::Sessions::Readers::Base.initialize,Method,Agent/Sessions/Readers/Base.md#method-i-initialize
|
|
181
|
+
Agent::Sessions::Readers::Base.messages,Method,Agent/Sessions/Readers/Base.md#method-i-messages
|
|
182
|
+
Agent::Sessions::Readers::Base.partial?,Method,Agent/Sessions/Readers/Base.md#method-i-partial-3F
|
|
183
|
+
Agent::Sessions::Readers::Base.round_trips,Method,Agent/Sessions/Readers/Base.md#method-i-round_trips
|
|
184
|
+
Agent::Sessions::Readers::Base.round_trips_recorded?,Method,Agent/Sessions/Readers/Base.md#method-i-round_trips_recorded-3F
|
|
185
|
+
Agent::Sessions::Readers::Base.tree,Method,Agent/Sessions/Readers/Base.md#method-i-tree
|
|
186
|
+
Agent::Sessions::Readers::Base.usage,Method,Agent/Sessions/Readers/Base.md#method-i-usage
|
|
187
|
+
Agent::Sessions::Readers::Base.warnings,Method,Agent/Sessions/Readers/Base.md#method-i-warnings
|
|
188
|
+
Agent::Sessions::Readers::Base.session,Attribute,Agent/Sessions/Readers/Base.md#attribute-i-session
|
|
189
|
+
Agent::Sessions::Readers::Grok,Class,Agent/Sessions/Readers/Grok.md
|
|
190
|
+
Agent::Sessions::Readers::Grok.TRANSCRIPT,Constant,Agent/Sessions/Readers/Grok.md#constant-TRANSCRIPT
|
|
191
|
+
Agent::Sessions::Readers::Grok.UNIFIED_LOG,Constant,Agent/Sessions/Readers/Grok.md#constant-UNIFIED_LOG
|
|
192
|
+
Agent::Sessions::Readers::Grok.INFERENCE,Constant,Agent/Sessions/Readers/Grok.md#constant-INFERENCE
|
|
193
|
+
Agent::Sessions::Readers::Grok.ROLES,Constant,Agent/Sessions/Readers/Grok.md#constant-ROLES
|
|
194
|
+
Agent::Sessions::Readers::Grok.summary,Method,Agent/Sessions/Readers/Grok.md#method-i-summary
|
|
195
|
+
Agent::Sessions::Readers::Grok.usage,Method,Agent/Sessions/Readers/Grok.md#method-i-usage
|
|
196
|
+
Agent::Sessions::Readers::Qwen,Class,Agent/Sessions/Readers/Qwen.md
|
|
197
|
+
Agent::Sessions::Readers::Qwen.CONTENT_PARTS,Constant,Agent/Sessions/Readers/Qwen.md#constant-CONTENT_PARTS
|
|
198
|
+
Agent::Sessions::Readers::Qwen.usage,Method,Agent/Sessions/Readers/Qwen.md#method-i-usage
|
|
199
|
+
Agent::Sessions::Adapters::Base,Class,Agent/Sessions/Adapters/Base.md
|
|
200
|
+
Agent::Sessions::Adapters::Base.FIDELITIES,Constant,Agent/Sessions/Adapters/Base.md#constant-FIDELITIES
|
|
201
|
+
Agent::Sessions::Adapters::Base.base_dir,Method,Agent/Sessions/Adapters/Base.md#method-i-base_dir
|
|
202
|
+
Agent::Sessions::Adapters::Base.bytes_for,Method,Agent/Sessions/Adapters/Base.md#method-i-bytes_for
|
|
203
|
+
Agent::Sessions::Adapters::Base.encode_project,Method,Agent/Sessions/Adapters/Base.md#method-i-encode_project
|
|
204
|
+
Agent::Sessions::Adapters::Base.initialize,Method,Agent/Sessions/Adapters/Base.md#method-i-initialize
|
|
205
|
+
Agent::Sessions::Adapters::Base.locate,Method,Agent/Sessions/Adapters/Base.md#method-i-locate
|
|
206
|
+
Agent::Sessions::Adapters::Base.project_dir_name,Method,Agent/Sessions/Adapters/Base.md#method-i-project_dir_name
|
|
207
|
+
Agent::Sessions::Adapters::Base.project_path_for,Method,Agent/Sessions/Adapters/Base.md#method-i-project_path_for
|
|
208
|
+
Agent::Sessions::Adapters::Base.project_paths,Method,Agent/Sessions/Adapters/Base.md#method-i-project_paths
|
|
209
|
+
Agent::Sessions::Adapters::Base.retention,Method,Agent/Sessions/Adapters/Base.md#method-i-retention
|
|
210
|
+
Agent::Sessions::Adapters::Base.retention_source,Method,Agent/Sessions/Adapters/Base.md#method-i-retention_source
|
|
211
|
+
Agent::Sessions::Adapters::Base.session_id_from,Method,Agent/Sessions/Adapters/Base.md#method-i-session_id_from
|
|
212
|
+
Agent::Sessions::Adapters::Base.sessions,Method,Agent/Sessions/Adapters/Base.md#method-i-sessions
|
|
213
|
+
Agent::Sessions::Adapters::Base.sessions_for_project,Method,Agent/Sessions/Adapters/Base.md#method-i-sessions_for_project
|
|
214
|
+
Agent::Sessions::Adapters::Base.started_at_for,Method,Agent/Sessions/Adapters/Base.md#method-i-started_at_for
|
|
215
|
+
Agent::Sessions::Adapters::Base.updated_at_for,Method,Agent/Sessions/Adapters/Base.md#method-i-updated_at_for
|
|
216
|
+
Agent::Sessions::Adapters::Base.verify,Method,Agent/Sessions/Adapters/Base.md#method-i-verify
|
|
217
|
+
Agent::Sessions::Adapters::Base.warnings,Method,Agent/Sessions/Adapters/Base.md#method-i-warnings
|
|
218
|
+
Agent::Sessions::Adapters::Base.fidelity_value,Method,Agent/Sessions/Adapters/Base.md#method-c-fidelity_value
|
|
219
|
+
Agent::Sessions::Adapters::Base.homedir_config,Method,Agent/Sessions/Adapters/Base.md#method-c-homedir_config
|
|
220
|
+
Agent::Sessions::Adapters::Base.reader_class,Method,Agent/Sessions/Adapters/Base.md#method-c-reader_class
|
|
221
|
+
Agent::Sessions::Adapters::Base.store_configs,Method,Agent/Sessions/Adapters/Base.md#method-c-store_configs
|
|
222
|
+
Agent::Sessions::Adapters::Base.agent_name,Attribute,Agent/Sessions/Adapters/Base.md#attribute-c-agent_name
|
|
223
|
+
Agent::Sessions::Adapters::Base.declared_warnings,Attribute,Agent/Sessions/Adapters/Base.md#attribute-c-declared_warnings
|
|
224
|
+
Agent::Sessions::Adapters::Base.documented_value,Attribute,Agent/Sessions/Adapters/Base.md#attribute-c-documented_value
|
|
225
|
+
Agent::Sessions::Adapters::Base.label_text,Attribute,Agent/Sessions/Adapters/Base.md#attribute-c-label_text
|
|
226
|
+
Agent::Sessions::Adapters::Base.verified_on_date,Attribute,Agent/Sessions/Adapters/Base.md#attribute-c-verified_on_date
|
|
227
|
+
Agent::Sessions::Adapters::Grok,Class,Agent/Sessions/Adapters/Grok.md
|
|
228
|
+
Agent::Sessions::Adapters::Grok.bytes_for,Method,Agent/Sessions/Adapters/Grok.md#method-i-bytes_for
|
|
229
|
+
Agent::Sessions::Adapters::Grok.decode_project,Method,Agent/Sessions/Adapters/Grok.md#method-i-decode_project
|
|
230
|
+
Agent::Sessions::Adapters::Grok.encode_project,Method,Agent/Sessions/Adapters/Grok.md#method-i-encode_project
|
|
231
|
+
Agent::Sessions::Adapters::Grok.project_dir_name,Method,Agent/Sessions/Adapters/Grok.md#method-i-project_dir_name
|
|
232
|
+
Agent::Sessions::Adapters::Grok.project_path_for,Method,Agent/Sessions/Adapters/Grok.md#method-i-project_path_for
|
|
233
|
+
Agent::Sessions::Adapters::Grok.session_id_from,Method,Agent/Sessions/Adapters/Grok.md#method-i-session_id_from
|
|
234
|
+
Agent::Sessions::Adapters::Grok.started_at_for,Method,Agent/Sessions/Adapters/Grok.md#method-i-started_at_for
|
|
235
|
+
Agent::Sessions::Adapters::Grok.updated_at_for,Method,Agent/Sessions/Adapters/Grok.md#method-i-updated_at_for
|
|
236
|
+
Agent::Sessions::Adapters::Grok.warnings,Method,Agent/Sessions/Adapters/Grok.md#method-i-warnings
|
|
237
|
+
Agent::Sessions::Adapters::Grok.reader_class,Method,Agent/Sessions/Adapters/Grok.md#method-c-reader_class
|
|
238
|
+
Agent::Sessions::Adapters::Qwen,Class,Agent/Sessions/Adapters/Qwen.md
|
|
239
|
+
Agent::Sessions::Adapters::Qwen.project_path_for,Method,Agent/Sessions/Adapters/Qwen.md#method-i-project_path_for
|
|
240
|
+
Agent::Sessions::Adapters::Qwen.warnings,Method,Agent/Sessions/Adapters/Qwen.md#method-i-warnings
|
|
241
|
+
Agent::Sessions::Adapters::Qwen.reader_class,Method,Agent/Sessions/Adapters/Qwen.md#method-c-reader_class
|
|
242
|
+
Agent::Sessions::Readers::Codex,Class,Agent/Sessions/Readers/Codex.md
|
|
243
|
+
Agent::Sessions::Readers::Codex.NON_MESSAGE_TYPES,Constant,Agent/Sessions/Readers/Codex.md#constant-NON_MESSAGE_TYPES
|
|
244
|
+
Agent::Sessions::Readers::Codex.ROLES,Constant,Agent/Sessions/Readers/Codex.md#constant-ROLES
|
|
245
|
+
Agent::Sessions::Readers::Codex.CONTENT_PARTS,Constant,Agent/Sessions/Readers/Codex.md#constant-CONTENT_PARTS
|
|
246
|
+
Agent::Sessions::Readers::Codex.TOOL_CALLS,Constant,Agent/Sessions/Readers/Codex.md#constant-TOOL_CALLS
|
|
247
|
+
Agent::Sessions::Readers::Codex.TOOL_OUTPUTS,Constant,Agent/Sessions/Readers/Codex.md#constant-TOOL_OUTPUTS
|
|
248
|
+
Agent::Sessions::Readers::Codex.NON_MESSAGE_ITEMS,Constant,Agent/Sessions/Readers/Codex.md#constant-NON_MESSAGE_ITEMS
|
|
249
|
+
Agent::Sessions::Readers::Codex.CALL_INPUTS,Constant,Agent/Sessions/Readers/Codex.md#constant-CALL_INPUTS
|
|
250
|
+
Agent::Sessions::Readers::Codex.CALL_OUTPUTS,Constant,Agent/Sessions/Readers/Codex.md#constant-CALL_OUTPUTS
|
|
251
|
+
Agent::Sessions::Readers::Codex.usage,Method,Agent/Sessions/Readers/Codex.md#method-i-usage
|
|
252
|
+
Agent::Sessions::UnknownAgent,Class,Agent/Sessions/UnknownAgent.md
|
|
253
|
+
Agent::Sessions::Adapters::Codex,Class,Agent/Sessions/Adapters/Codex.md
|
|
254
|
+
Agent::Sessions::Adapters::Codex.FILENAME,Constant,Agent/Sessions/Adapters/Codex.md#constant-FILENAME
|
|
255
|
+
Agent::Sessions::Adapters::Codex.project_path_for,Method,Agent/Sessions/Adapters/Codex.md#method-i-project_path_for
|
|
256
|
+
Agent::Sessions::Adapters::Codex.session_id_from,Method,Agent/Sessions/Adapters/Codex.md#method-i-session_id_from
|
|
257
|
+
Agent::Sessions::Adapters::Codex.sessions,Method,Agent/Sessions/Adapters/Codex.md#method-i-sessions
|
|
258
|
+
Agent::Sessions::Adapters::Codex.started_at_for,Method,Agent/Sessions/Adapters/Codex.md#method-i-started_at_for
|
|
259
|
+
Agent::Sessions::Adapters::Codex.reader_class,Method,Agent/Sessions/Adapters/Codex.md#method-c-reader_class
|
|
260
|
+
Agent::Sessions::Readers::Claude,Class,Agent/Sessions/Readers/Claude.md
|
|
261
|
+
Agent::Sessions::Readers::Claude.NON_MESSAGE_TYPES,Constant,Agent/Sessions/Readers/Claude.md#constant-NON_MESSAGE_TYPES
|
|
262
|
+
Agent::Sessions::Readers::Claude.EVENT_TYPES,Constant,Agent/Sessions/Readers/Claude.md#constant-EVENT_TYPES
|
|
263
|
+
Agent::Sessions::Readers::Claude.CONTENT_PARTS,Constant,Agent/Sessions/Readers/Claude.md#constant-CONTENT_PARTS
|
|
264
|
+
Agent::Sessions::Readers::Claude.SPILL,Constant,Agent/Sessions/Readers/Claude.md#constant-SPILL
|
|
265
|
+
Agent::Sessions::Readers::Claude.MAX_SPILL_BYTES,Constant,Agent/Sessions/Readers/Claude.md#constant-MAX_SPILL_BYTES
|
|
266
|
+
Agent::Sessions::Readers::Claude.branching?,Method,Agent/Sessions/Readers/Claude.md#method-i-branching-3F
|
|
267
|
+
Agent::Sessions::Readers::Claude.initialize,Method,Agent/Sessions/Readers/Claude.md#method-i-initialize
|
|
268
|
+
Agent::Sessions::Readers::Claude.round_trips_recorded?,Method,Agent/Sessions/Readers/Claude.md#method-i-round_trips_recorded-3F
|
|
269
|
+
Agent::Sessions::Readers::Claude.subagents,Method,Agent/Sessions/Readers/Claude.md#method-i-subagents
|
|
270
|
+
Agent::Sessions::Readers::Claude.usage,Method,Agent/Sessions/Readers/Claude.md#method-i-usage
|
|
271
|
+
Agent::Sessions::Readers::Gemini,Class,Agent/Sessions/Readers/Gemini.md
|
|
272
|
+
Agent::Sessions::Readers::Gemini.MAX_DOCUMENT_BYTES,Constant,Agent/Sessions/Readers/Gemini.md#constant-MAX_DOCUMENT_BYTES
|
|
273
|
+
Agent::Sessions::Readers::Gemini.ROLES,Constant,Agent/Sessions/Readers/Gemini.md#constant-ROLES
|
|
274
|
+
Agent::Sessions::Readers::Gemini.header,Method,Agent/Sessions/Readers/Gemini.md#method-i-header
|
|
275
|
+
Agent::Sessions::Readers::Gemini.usage,Method,Agent/Sessions/Readers/Gemini.md#method-i-usage
|
|
276
|
+
Agent::Sessions::Adapters::Claude,Class,Agent/Sessions/Adapters/Claude.md
|
|
277
|
+
Agent::Sessions::Adapters::Claude.DEFAULT_CLEANUP_PERIOD_DAYS,Constant,Agent/Sessions/Adapters/Claude.md#constant-DEFAULT_CLEANUP_PERIOD_DAYS
|
|
278
|
+
Agent::Sessions::Adapters::Claude.bytes_for,Method,Agent/Sessions/Adapters/Claude.md#method-i-bytes_for
|
|
279
|
+
Agent::Sessions::Adapters::Claude.encode_project,Method,Agent/Sessions/Adapters/Claude.md#method-i-encode_project
|
|
280
|
+
Agent::Sessions::Adapters::Claude.project_path_for,Method,Agent/Sessions/Adapters/Claude.md#method-i-project_path_for
|
|
281
|
+
Agent::Sessions::Adapters::Claude.retention,Method,Agent/Sessions/Adapters/Claude.md#method-i-retention
|
|
282
|
+
Agent::Sessions::Adapters::Claude.retention_source,Method,Agent/Sessions/Adapters/Claude.md#method-i-retention_source
|
|
283
|
+
Agent::Sessions::Adapters::Claude.warnings,Method,Agent/Sessions/Adapters/Claude.md#method-i-warnings
|
|
284
|
+
Agent::Sessions::Adapters::Claude.reader_class,Method,Agent/Sessions/Adapters/Claude.md#method-c-reader_class
|
|
285
|
+
Agent::Sessions::Adapters::Cursor,Class,Agent/Sessions/Adapters/Cursor.md
|
|
286
|
+
Agent::Sessions::Adapters::Cursor.project_path_for,Method,Agent/Sessions/Adapters/Cursor.md#method-i-project_path_for
|
|
287
|
+
Agent::Sessions::Adapters::Cursor.session_id_from,Method,Agent/Sessions/Adapters/Cursor.md#method-i-session_id_from
|
|
288
|
+
Agent::Sessions::Adapters::Cursor.started_at_for,Method,Agent/Sessions/Adapters/Cursor.md#method-i-started_at_for
|
|
289
|
+
Agent::Sessions::Adapters::Cursor.updated_at_for,Method,Agent/Sessions/Adapters/Cursor.md#method-i-updated_at_for
|
|
290
|
+
Agent::Sessions::Adapters::Cursor.warnings,Method,Agent/Sessions/Adapters/Cursor.md#method-i-warnings
|
|
291
|
+
Agent::Sessions::Adapters::Gemini,Class,Agent/Sessions/Adapters/Gemini.md
|
|
292
|
+
Agent::Sessions::Adapters::Gemini.FILENAME,Constant,Agent/Sessions/Adapters/Gemini.md#constant-FILENAME
|
|
293
|
+
Agent::Sessions::Adapters::Gemini.encode_project,Method,Agent/Sessions/Adapters/Gemini.md#method-i-encode_project
|
|
294
|
+
Agent::Sessions::Adapters::Gemini.project_dir_name,Method,Agent/Sessions/Adapters/Gemini.md#method-i-project_dir_name
|
|
295
|
+
Agent::Sessions::Adapters::Gemini.project_path_for,Method,Agent/Sessions/Adapters/Gemini.md#method-i-project_path_for
|
|
296
|
+
Agent::Sessions::Adapters::Gemini.project_paths,Method,Agent/Sessions/Adapters/Gemini.md#method-i-project_paths
|
|
297
|
+
Agent::Sessions::Adapters::Gemini.started_at_for,Method,Agent/Sessions/Adapters/Gemini.md#method-i-started_at_for
|
|
298
|
+
Agent::Sessions::Adapters::Gemini.warnings,Method,Agent/Sessions/Adapters/Gemini.md#method-i-warnings
|
|
299
|
+
Agent::Sessions::Adapters::Gemini.reader_class,Method,Agent/Sessions/Adapters/Gemini.md#method-c-reader_class
|
|
300
|
+
Agent::Sessions::Readers::Copilot,Class,Agent/Sessions/Readers/Copilot.md
|
|
301
|
+
Agent::Sessions::Readers::Copilot.each_message,Method,Agent/Sessions/Readers/Copilot.md#method-i-each_message
|
|
302
|
+
Agent::Sessions::Readers::Copilot.usage,Method,Agent/Sessions/Readers/Copilot.md#method-i-usage
|
|
303
|
+
Agent::Sessions::Adapters::Copilot,Class,Agent/Sessions/Adapters/Copilot.md
|
|
304
|
+
Agent::Sessions::Adapters::Copilot.SESSION_COLUMNS,Constant,Agent/Sessions/Adapters/Copilot.md#constant-SESSION_COLUMNS
|
|
305
|
+
Agent::Sessions::Adapters::Copilot.project_paths,Method,Agent/Sessions/Adapters/Copilot.md#method-i-project_paths
|
|
306
|
+
Agent::Sessions::Adapters::Copilot.sessions,Method,Agent/Sessions/Adapters/Copilot.md#method-i-sessions
|
|
307
|
+
Agent::Sessions::Adapters::Copilot.sessions_for_project,Method,Agent/Sessions/Adapters/Copilot.md#method-i-sessions_for_project
|
|
308
|
+
Agent::Sessions::Adapters::Copilot.reader_class,Method,Agent/Sessions/Adapters/Copilot.md#method-c-reader_class
|
|
309
|
+
Agent::Sessions::Readers::Opencode,Class,Agent/Sessions/Readers/Opencode.md
|
|
310
|
+
Agent::Sessions::Readers::Opencode.CONTENT_PARTS,Constant,Agent/Sessions/Readers/Opencode.md#constant-CONTENT_PARTS
|
|
311
|
+
Agent::Sessions::Readers::Opencode.STATE_PARTS,Constant,Agent/Sessions/Readers/Opencode.md#constant-STATE_PARTS
|
|
312
|
+
Agent::Sessions::Readers::Opencode.usage,Method,Agent/Sessions/Readers/Opencode.md#method-i-usage
|
|
313
|
+
Agent::Sessions::UnreadableStore,Class,Agent/Sessions/UnreadableStore.md
|
|
314
|
+
Agent::Sessions::Adapters::Opencode,Class,Agent/Sessions/Adapters/Opencode.md
|
|
315
|
+
Agent::Sessions::Adapters::Opencode.DATABASE_GLOB,Constant,Agent/Sessions/Adapters/Opencode.md#constant-DATABASE_GLOB
|
|
316
|
+
Agent::Sessions::Adapters::Opencode.SESSION_COLUMNS,Constant,Agent/Sessions/Adapters/Opencode.md#constant-SESSION_COLUMNS
|
|
317
|
+
Agent::Sessions::Adapters::Opencode.base_dir,Method,Agent/Sessions/Adapters/Opencode.md#method-i-base_dir
|
|
318
|
+
Agent::Sessions::Adapters::Opencode.project_paths,Method,Agent/Sessions/Adapters/Opencode.md#method-i-project_paths
|
|
319
|
+
Agent::Sessions::Adapters::Opencode.sessions,Method,Agent/Sessions/Adapters/Opencode.md#method-i-sessions
|
|
320
|
+
Agent::Sessions::Adapters::Opencode.sessions_for_project,Method,Agent/Sessions/Adapters/Opencode.md#method-i-sessions_for_project
|
|
321
|
+
Agent::Sessions::Adapters::Opencode.verify,Method,Agent/Sessions/Adapters/Opencode.md#method-i-verify
|
|
322
|
+
Agent::Sessions::Adapters::Opencode.reader_class,Method,Agent/Sessions/Adapters/Opencode.md#method-c-reader_class
|
|
323
|
+
Agent::Sessions::MissingDependency,Class,Agent/Sessions/MissingDependency.md
|
|
324
|
+
Agent::Sessions::UnsupportedFormat,Class,Agent/Sessions/UnsupportedFormat.md
|
|
325
|
+
Agent::Sessions::Adapters::CursorIde,Class,Agent/Sessions/Adapters/CursorIde.md
|
|
326
|
+
Agent::Sessions::Adapters::CursorIde.KEY_PREFIX,Constant,Agent/Sessions/Adapters/CursorIde.md#constant-KEY_PREFIX
|
|
327
|
+
Agent::Sessions::Adapters::CursorIde.project_path_for,Method,Agent/Sessions/Adapters/CursorIde.md#method-i-project_path_for
|
|
328
|
+
Agent::Sessions::Adapters::CursorIde.project_paths,Method,Agent/Sessions/Adapters/CursorIde.md#method-i-project_paths
|
|
329
|
+
Agent::Sessions::Adapters::CursorIde.sessions,Method,Agent/Sessions/Adapters/CursorIde.md#method-i-sessions
|
|
330
|
+
Agent::Sessions::Adapters::CursorIde.sessions_for_project,Method,Agent/Sessions/Adapters/CursorIde.md#method-i-sessions_for_project
|
data/exe/agent-sessions
CHANGED
|
@@ -115,12 +115,12 @@ module Agent
|
|
|
115
115
|
# (`@project_path_resolver = nil`) on a Session's FIRST #project_path
|
|
116
116
|
# call, not before — so any Session a caller keeps without ever reading
|
|
117
117
|
# project_path stays holding a live reference to the whole adapter,
|
|
118
|
-
#
|
|
118
|
+
# `@meta` included. `list` is exactly that caller: it never touches
|
|
119
119
|
# project_path, so every Session it returns keeps this adapter (and
|
|
120
|
-
# whatever of
|
|
120
|
+
# whatever of `@meta` got populated enumerating them) alive for as long
|
|
121
121
|
# as the caller holds that Session array — not just for one
|
|
122
122
|
# enumeration pass. All N sessions from one `sessions` call share the
|
|
123
|
-
# SAME adapter instance, so this is one retained
|
|
123
|
+
# SAME adapter instance, so this is one retained `@meta` hash, not N
|
|
124
124
|
# copies of it.
|
|
125
125
|
#
|
|
126
126
|
# What actually keeps this acceptable is SIZE, not lifetime: measured
|
data/lib/agent/sessions/cli.rb
CHANGED
|
@@ -268,7 +268,7 @@ module Agent
|
|
|
268
268
|
|
|
269
269
|
# One agent's missing dependency or unreadable store must not silently empty
|
|
270
270
|
# a cross-agent listing — each skip is announced on stderr, tracked in
|
|
271
|
-
#
|
|
271
|
+
# `@skipped_agents` so the command can exit non-zero, and the rest still
|
|
272
272
|
# print. The exit code matters as much as the stderr line: `--json` is the
|
|
273
273
|
# door built for a machine consumer (design doc section 12), and a machine
|
|
274
274
|
# reading `[]` next to exit 0 has no way to tell "empty store" from
|
|
@@ -335,7 +335,7 @@ module Agent
|
|
|
335
335
|
# a skip must flip the exit code even though the rest of the output still
|
|
336
336
|
# printed successfully. One list, not a list plus a boolean that mirrors
|
|
337
337
|
# it: two variables recording the same fact (an earlier draft had
|
|
338
|
-
#
|
|
338
|
+
# `@agents_skipped` alongside `@skipped_agents`) are one rename away from
|
|
339
339
|
# silently disagreeing, which is exactly the failure mode decision 11a
|
|
340
340
|
# exists to prevent.
|
|
341
341
|
def exit_code_honoring_skips
|
|
@@ -16,8 +16,6 @@ module Agent
|
|
|
16
16
|
# session-level `usage` is where those formats answer. A nil here means
|
|
17
17
|
# "not recorded on this message", never "zero tokens".
|
|
18
18
|
Message = Data.define(:role, :at, :parts, :raw, :usage, :model) do
|
|
19
|
-
self::ROLES = %i[user assistant system tool unknown].freeze
|
|
20
|
-
|
|
21
19
|
def initialize(role:, at:, parts:, raw:, usage: nil, model: nil)
|
|
22
20
|
roles = self.class::ROLES
|
|
23
21
|
raise ArgumentError, "role #{role.inspect} must be one of #{roles.join(", ")}" unless roles.include?(role)
|
|
@@ -32,5 +30,6 @@ module Agent
|
|
|
32
30
|
parts.select { |part| part.type == :text }.map(&:text).join
|
|
33
31
|
end
|
|
34
32
|
end
|
|
33
|
+
Message::ROLES = %i[user assistant system tool unknown].freeze
|
|
35
34
|
end
|
|
36
35
|
end
|
data/lib/agent/sessions/part.rb
CHANGED
|
@@ -11,8 +11,6 @@ module Agent
|
|
|
11
11
|
# neither — its URL or payload stays in raw, because normalizing an image
|
|
12
12
|
# would mean deciding whether to load it, and reading is stat-cheap by design.
|
|
13
13
|
Part = Data.define(:type, :text, :name, :call_id) do
|
|
14
|
-
self::TYPES = %i[text thinking tool_use tool_result image unknown].freeze
|
|
15
|
-
|
|
16
14
|
def initialize(type:, text: nil, name: nil, call_id: nil)
|
|
17
15
|
types = self.class::TYPES
|
|
18
16
|
raise ArgumentError, "part type #{type.inspect} must be one of #{types.join(", ")}" unless types.include?(type)
|
|
@@ -20,5 +18,6 @@ module Agent
|
|
|
20
18
|
super
|
|
21
19
|
end
|
|
22
20
|
end
|
|
21
|
+
Part::TYPES = %i[text thinking tool_use tool_result image unknown].freeze
|
|
23
22
|
end
|
|
24
23
|
end
|
|
@@ -60,6 +60,75 @@ module Agent
|
|
|
60
60
|
# `each_message` is what a 2.6 GB file requires.
|
|
61
61
|
def messages = each_message.to_a
|
|
62
62
|
|
|
63
|
+
# Streams, exactly as each_message does. A group is a RUN of
|
|
64
|
+
# neighbouring records sharing one round-trip id, not every record
|
|
65
|
+
# sharing that id wherever it sits in the file — collecting scattered
|
|
66
|
+
# records cannot stream, and rule 3 says no code path here may assume
|
|
67
|
+
# a file fits in memory.
|
|
68
|
+
#
|
|
69
|
+
# So an id that reappears after its run closed opens a NEW round trip
|
|
70
|
+
# rather than reopening the old one. That is ORDINARY for Claude, not
|
|
71
|
+
# an anomaly: Claude Code writes each tool_result immediately after
|
|
72
|
+
# the tool_use it answers, while every content block of the one API
|
|
73
|
+
# response keeps the same message.id, so a response making two tool
|
|
74
|
+
# calls has its records split by the result in between. Measured over
|
|
75
|
+
# the 60 most recent real Claude transcripts on this machine
|
|
76
|
+
# (2026-09-10): 3,315 distinct message.ids, 261 of them (7.9%) split
|
|
77
|
+
# across more than one run, in 33 of the 60 files; 759 of the splits
|
|
78
|
+
# are a tool_result record, 66 a last-prompt, 12 a file-history-delta.
|
|
79
|
+
#
|
|
80
|
+
# Hence the warning fires only where NOTHING answered a tool between
|
|
81
|
+
# the two runs — the case that is genuinely unexplained and would mean
|
|
82
|
+
# the format drifted. Warning on the benign split would put four or
|
|
83
|
+
# five lines under every real session's loop view, which teaches a
|
|
84
|
+
# caller that these warnings are noise.
|
|
85
|
+
def each_round_trip
|
|
86
|
+
return enum_for(:each_round_trip) unless block_given?
|
|
87
|
+
|
|
88
|
+
open_messages = []
|
|
89
|
+
open_id = nil
|
|
90
|
+
closed_ids = {}
|
|
91
|
+
answers_seen = 0
|
|
92
|
+
index = 0
|
|
93
|
+
|
|
94
|
+
each_message do |message|
|
|
95
|
+
id = round_trip_id_for(message.raw)
|
|
96
|
+
|
|
97
|
+
if id && id == open_id
|
|
98
|
+
open_messages << message
|
|
99
|
+
answers_seen += 1 if answers_a_tool?(message)
|
|
100
|
+
next
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
if open_messages.any?
|
|
104
|
+
index += 1
|
|
105
|
+
yield build_round_trip(index, open_messages, open_id)
|
|
106
|
+
end
|
|
107
|
+
# What this id's run closed at, counted in tool answers seen so
|
|
108
|
+
# far. Comparing that count against the count now is what
|
|
109
|
+
# separates "a tool result split one response" from "this id came
|
|
110
|
+
# back for a reason nothing here explains".
|
|
111
|
+
closed_ids[open_id] = answers_seen if open_id
|
|
112
|
+
|
|
113
|
+
if id && closed_ids[id] == answers_seen
|
|
114
|
+
warn_about("round-trip id #{id} reappears after its run closed with no tool answered " \
|
|
115
|
+
"in between; grouped as a new round trip")
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
open_messages = [message]
|
|
119
|
+
open_id = id
|
|
120
|
+
answers_seen += 1 if answers_a_tool?(message)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
yield build_round_trip(index + 1, open_messages, open_id) if open_messages.any?
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def round_trips = each_round_trip.to_a
|
|
127
|
+
|
|
128
|
+
# False here: most stores are an append-only list of records and no
|
|
129
|
+
# format names which of them belong to one model response.
|
|
130
|
+
def round_trips_recorded? = false
|
|
131
|
+
|
|
63
132
|
# Whether this agent records which turn each turn followed. False here:
|
|
64
133
|
# most stores are an append-only list and a tree would have to be invented.
|
|
65
134
|
def branching? = false
|
|
@@ -117,6 +186,32 @@ module Agent
|
|
|
117
186
|
def node_id_for(_record) = nil
|
|
118
187
|
def parent_id_for(_record) = nil
|
|
119
188
|
|
|
189
|
+
# nil means "this format records no round-trip id". Same shape of
|
|
190
|
+
# hook as node_id_for/parent_id_for: an agent says WHERE its id
|
|
191
|
+
# lives, never how the grouping is assembled.
|
|
192
|
+
def round_trip_id_for(_record) = nil
|
|
193
|
+
|
|
194
|
+
# Whether this message is a tool answering a call. Used only to tell a
|
|
195
|
+
# benign split of one response's records from an unexplained one.
|
|
196
|
+
def answers_a_tool?(message) = message.parts.any? { |part| part.type == :tool_result }
|
|
197
|
+
|
|
198
|
+
def build_round_trip(index, messages, id)
|
|
199
|
+
RoundTrip.new(index: index, messages: messages, usage: usage_for(messages), recorded: !id.nil?)
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
# NEVER a sum. Claude repeats one API response's usage byte-for-byte
|
|
203
|
+
# on each record of that response (94 of 124 message ids in one real
|
|
204
|
+
# transcript), so summing the group would report roughly double what
|
|
205
|
+
# the vendor billed.
|
|
206
|
+
def usage_for(messages)
|
|
207
|
+
found = messages.filter_map(&:usage)
|
|
208
|
+
return nil if found.empty?
|
|
209
|
+
return found.first if found.uniq.size == 1
|
|
210
|
+
|
|
211
|
+
warn_about("round trip records disagree on usage; reporting the first")
|
|
212
|
+
found.first
|
|
213
|
+
end
|
|
214
|
+
|
|
120
215
|
# Two passes over one session. The first records every uuid-bearing
|
|
121
216
|
# record's parent and which of them became messages; the second links
|
|
122
217
|
# each message to the nearest ANCESTOR that is also a message.
|
|
@@ -52,6 +52,8 @@ module Agent
|
|
|
52
52
|
# trustworthy enough to build a tree from.
|
|
53
53
|
def branching? = true
|
|
54
54
|
|
|
55
|
+
def round_trips_recorded? = true
|
|
56
|
+
|
|
55
57
|
def initialize(session, resolve_spills: true, **rest)
|
|
56
58
|
super(session, **rest)
|
|
57
59
|
@resolve_spills = resolve_spills
|
|
@@ -112,6 +114,14 @@ module Agent
|
|
|
112
114
|
def node_id_for(record) = record["uuid"]
|
|
113
115
|
def parent_id_for(record) = record["parentUuid"]
|
|
114
116
|
|
|
117
|
+
# message.id is the id Anthropic's API gives one response; Claude
|
|
118
|
+
# Code writes one record PER CONTENT BLOCK, all repeating it. The
|
|
119
|
+
# reader already dedups session usage by exactly this id (usage,
|
|
120
|
+
# above), so the fact is known and only needs exposing. A record
|
|
121
|
+
# with no message.id (a user turn, an event) yields nil and becomes
|
|
122
|
+
# its own assumed round trip.
|
|
123
|
+
def round_trip_id_for(record) = record.dig("message", "id")
|
|
124
|
+
|
|
115
125
|
def message_for(record, line_number)
|
|
116
126
|
type = record["type"]
|
|
117
127
|
return nil if NON_MESSAGE_TYPES.include?(type)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Agent
|
|
4
|
+
module Sessions
|
|
5
|
+
# One model response, grouped from however many records a format split it
|
|
6
|
+
# across. Claude Code writes one record PER CONTENT BLOCK of an API
|
|
7
|
+
# response: in one real transcript on this machine, 260 assistant records
|
|
8
|
+
# share only 124 message.id values, so a caller counting records over-
|
|
9
|
+
# counts what the session actually did by roughly two to one. A round
|
|
10
|
+
# trip is the unit that actually happened.
|
|
11
|
+
#
|
|
12
|
+
# `recorded` is the load-bearing field. False means this group was
|
|
13
|
+
# ASSUMED — the format names no round-trip id, so grouping fell back to
|
|
14
|
+
# one message per round trip — never "this session has none". Same rule
|
|
15
|
+
# tree()/branching? already enforce for parent links: "not recorded"
|
|
16
|
+
# must never read as "recorded and empty".
|
|
17
|
+
#
|
|
18
|
+
# A round trip deliberately carries NO tool results: a result can arrive
|
|
19
|
+
# long after its call, and grouping streams one record at a time, so
|
|
20
|
+
# pairing a call with its eventual result is a separate, eager layer
|
|
21
|
+
# (Agent::Sessions::Loop, landing next) rather than this one's job.
|
|
22
|
+
RoundTrip = Data.define(:index, :messages, :usage, :recorded) do
|
|
23
|
+
# Every part of every message, in file order.
|
|
24
|
+
def parts = messages.flat_map(&:parts)
|
|
25
|
+
|
|
26
|
+
# The :tool_use parts only, [] when this round trip asked for no tool.
|
|
27
|
+
def calls = parts.select { |part| part.type == :tool_use }
|
|
28
|
+
|
|
29
|
+
# The distinct roles in this group, in first-seen order.
|
|
30
|
+
def roles = messages.map(&:role).uniq
|
|
31
|
+
|
|
32
|
+
# The first recorded Time among the messages, or nil when none carried one.
|
|
33
|
+
def at = messages.filter_map(&:at).first
|
|
34
|
+
|
|
35
|
+
# The first recorded model String, or nil.
|
|
36
|
+
def model = messages.filter_map(&:model).first
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|