@agents-ensemble/core 0.12.0 → 0.14.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.
Files changed (181) hide show
  1. package/dist/acp/testing/fake-acp-server.d.ts +2 -0
  2. package/dist/acp/testing/fake-acp-server.d.ts.map +1 -1
  3. package/dist/acp/testing/fake-acp-server.js +3 -0
  4. package/dist/acp/testing/fake-acp-server.js.map +1 -1
  5. package/dist/conductor/conductor-agent-factory.d.ts +5 -0
  6. package/dist/conductor/conductor-agent-factory.d.ts.map +1 -0
  7. package/dist/conductor/conductor-agent-factory.js +10 -0
  8. package/dist/conductor/conductor-agent-factory.js.map +1 -0
  9. package/dist/conductor/conductor-agent.d.ts +7 -0
  10. package/dist/conductor/conductor-agent.d.ts.map +1 -1
  11. package/dist/conductor/conductor-send-reconnect.d.ts +3 -0
  12. package/dist/conductor/conductor-send-reconnect.d.ts.map +1 -1
  13. package/dist/conductor/conductor-send-reconnect.js +7 -1
  14. package/dist/conductor/conductor-send-reconnect.js.map +1 -1
  15. package/dist/conductor/conductor-session-driver.d.ts +6 -0
  16. package/dist/conductor/conductor-session-driver.d.ts.map +1 -1
  17. package/dist/conductor/conductor-session-driver.js +19 -2
  18. package/dist/conductor/conductor-session-driver.js.map +1 -1
  19. package/dist/conductor/conductor-session.d.ts +5 -2
  20. package/dist/conductor/conductor-session.d.ts.map +1 -1
  21. package/dist/conductor/conductor-session.js +539 -74
  22. package/dist/conductor/conductor-session.js.map +1 -1
  23. package/dist/conductor/index.d.ts +3 -2
  24. package/dist/conductor/index.d.ts.map +1 -1
  25. package/dist/conductor/index.js +2 -1
  26. package/dist/conductor/index.js.map +1 -1
  27. package/dist/conductor/operator-command.d.ts +5 -0
  28. package/dist/conductor/operator-command.d.ts.map +1 -1
  29. package/dist/conductor/operator-command.js +6 -0
  30. package/dist/conductor/operator-command.js.map +1 -1
  31. package/dist/conductor/pi-conductor-agent.d.ts +2 -5
  32. package/dist/conductor/pi-conductor-agent.d.ts.map +1 -1
  33. package/dist/conductor/pi-conductor-agent.js +16 -19
  34. package/dist/conductor/pi-conductor-agent.js.map +1 -1
  35. package/dist/conductor/pi-resource-loader.d.ts +2 -0
  36. package/dist/conductor/pi-resource-loader.d.ts.map +1 -1
  37. package/dist/conductor/pi-resource-loader.js +16 -8
  38. package/dist/conductor/pi-resource-loader.js.map +1 -1
  39. package/dist/conductor/session/dispatch-hold.d.ts +1 -1
  40. package/dist/conductor/session/dispatch-hold.d.ts.map +1 -1
  41. package/dist/conductor/session/dispatch-hold.js +4 -3
  42. package/dist/conductor/session/dispatch-hold.js.map +1 -1
  43. package/dist/conductor/session/dispatch-mode.d.ts +1 -1
  44. package/dist/conductor/session/events/index.d.ts +2 -1
  45. package/dist/conductor/session/events/index.d.ts.map +1 -1
  46. package/dist/conductor/session/events/index.js.map +1 -1
  47. package/dist/conductor/session/events/session-event.d.ts +7 -1
  48. package/dist/conductor/session/events/session-event.d.ts.map +1 -1
  49. package/dist/conductor/session/events/session-log-event-groups.d.ts +1 -1
  50. package/dist/conductor/session/events/session-log-event-groups.d.ts.map +1 -1
  51. package/dist/conductor/session/events/session-log-event-groups.js +1 -0
  52. package/dist/conductor/session/events/session-log-event-groups.js.map +1 -1
  53. package/dist/conductor/session/events/shared/permission-pending.d.ts +5 -0
  54. package/dist/conductor/session/events/shared/permission-pending.d.ts.map +1 -1
  55. package/dist/conductor/session/format-session-event.d.ts.map +1 -1
  56. package/dist/conductor/session/format-session-event.js +32 -2
  57. package/dist/conductor/session/format-session-event.js.map +1 -1
  58. package/dist/conductor/session/select-dispatch-batch.d.ts.map +1 -1
  59. package/dist/conductor/session/select-dispatch-batch.js +21 -4
  60. package/dist/conductor/session/select-dispatch-batch.js.map +1 -1
  61. package/dist/conductor/session/session-event.d.ts +1 -1
  62. package/dist/conductor/session/session-event.d.ts.map +1 -1
  63. package/dist/conductor/session/session-logger.d.ts +1 -0
  64. package/dist/conductor/session/session-logger.d.ts.map +1 -1
  65. package/dist/conductor/session/session-logger.js +4 -0
  66. package/dist/conductor/session/session-logger.js.map +1 -1
  67. package/dist/conductor/submit-operator-input.d.ts +4 -1
  68. package/dist/conductor/submit-operator-input.d.ts.map +1 -1
  69. package/dist/conductor/submit-operator-input.js +4 -1
  70. package/dist/conductor/submit-operator-input.js.map +1 -1
  71. package/dist/dispatch/get-tool-call-tool.d.ts +8 -0
  72. package/dist/dispatch/get-tool-call-tool.d.ts.map +1 -0
  73. package/dist/dispatch/get-tool-call-tool.js +46 -0
  74. package/dist/dispatch/get-tool-call-tool.js.map +1 -0
  75. package/dist/dispatch/index.d.ts +3 -0
  76. package/dist/dispatch/index.d.ts.map +1 -1
  77. package/dist/dispatch/index.js +2 -0
  78. package/dist/dispatch/index.js.map +1 -1
  79. package/dist/dispatch/report-session-state-tool.d.ts +6 -0
  80. package/dist/dispatch/report-session-state-tool.d.ts.map +1 -0
  81. package/dist/dispatch/report-session-state-tool.js +39 -0
  82. package/dist/dispatch/report-session-state-tool.js.map +1 -0
  83. package/dist/dispatch/session-usage-tool.js +1 -1
  84. package/dist/dispatch/session-usage-tool.js.map +1 -1
  85. package/dist/escalation/apply-operator-message.d.ts +2 -0
  86. package/dist/escalation/apply-operator-message.d.ts.map +1 -1
  87. package/dist/escalation/apply-operator-message.js +2 -0
  88. package/dist/escalation/apply-operator-message.js.map +1 -1
  89. package/dist/escalation/ask-human-tool.d.ts +0 -2
  90. package/dist/escalation/ask-human-tool.d.ts.map +1 -1
  91. package/dist/escalation/ask-human-tool.js +1 -7
  92. package/dist/escalation/ask-human-tool.js.map +1 -1
  93. package/dist/escalation/open-question.d.ts +1 -0
  94. package/dist/escalation/open-question.d.ts.map +1 -1
  95. package/dist/escalation/open-question.js +1 -1
  96. package/dist/escalation/open-question.js.map +1 -1
  97. package/dist/escalation/record-open-question-answer.d.ts +1 -0
  98. package/dist/escalation/record-open-question-answer.d.ts.map +1 -1
  99. package/dist/escalation/record-open-question-answer.js +1 -0
  100. package/dist/escalation/record-open-question-answer.js.map +1 -1
  101. package/dist/github/github-monitor.d.ts +1 -1
  102. package/dist/github/github-monitor.d.ts.map +1 -1
  103. package/dist/github/github-monitor.js +1 -1
  104. package/dist/github/github-monitor.js.map +1 -1
  105. package/dist/github/register-github-watch-tool.d.ts +4 -1
  106. package/dist/github/register-github-watch-tool.d.ts.map +1 -1
  107. package/dist/github/register-github-watch-tool.js +17 -1
  108. package/dist/github/register-github-watch-tool.js.map +1 -1
  109. package/dist/github/unregister-github-watch-tool.d.ts +4 -1
  110. package/dist/github/unregister-github-watch-tool.d.ts.map +1 -1
  111. package/dist/github/unregister-github-watch-tool.js +14 -3
  112. package/dist/github/unregister-github-watch-tool.js.map +1 -1
  113. package/dist/operator-runtime.d.ts +24 -0
  114. package/dist/operator-runtime.d.ts.map +1 -0
  115. package/dist/operator-runtime.js +17 -0
  116. package/dist/operator-runtime.js.map +1 -0
  117. package/dist/permission/index.d.ts +2 -0
  118. package/dist/permission/index.d.ts.map +1 -1
  119. package/dist/permission/index.js +1 -0
  120. package/dist/permission/index.js.map +1 -1
  121. package/dist/permission/permission-brief.d.ts +22 -0
  122. package/dist/permission/permission-brief.d.ts.map +1 -0
  123. package/dist/permission/permission-brief.js +245 -0
  124. package/dist/permission/permission-brief.js.map +1 -0
  125. package/dist/prompt/index.d.ts +1 -0
  126. package/dist/prompt/index.d.ts.map +1 -1
  127. package/dist/prompt/index.js +1 -0
  128. package/dist/prompt/index.js.map +1 -1
  129. package/dist/prompt/modules/ensemble/conductor-base-module.d.ts.map +1 -1
  130. package/dist/prompt/modules/ensemble/conductor-base-module.js +11 -1
  131. package/dist/prompt/modules/ensemble/conductor-base-module.js.map +1 -1
  132. package/dist/runtime/index.d.ts +3 -0
  133. package/dist/runtime/index.d.ts.map +1 -1
  134. package/dist/runtime/index.js +2 -0
  135. package/dist/runtime/index.js.map +1 -1
  136. package/dist/runtime/tool-call-snapshot-registry.d.ts +69 -0
  137. package/dist/runtime/tool-call-snapshot-registry.d.ts.map +1 -0
  138. package/dist/runtime/tool-call-snapshot-registry.js +275 -0
  139. package/dist/runtime/tool-call-snapshot-registry.js.map +1 -0
  140. package/dist/runtime/types.d.ts +2 -0
  141. package/dist/runtime/types.d.ts.map +1 -1
  142. package/dist/runtime/worker-runtime.d.ts.map +1 -1
  143. package/dist/runtime/worker-runtime.js +6 -2
  144. package/dist/runtime/worker-runtime.js.map +1 -1
  145. package/dist/session/index.d.ts +7 -1
  146. package/dist/session/index.d.ts.map +1 -1
  147. package/dist/session/index.js +3 -0
  148. package/dist/session/index.js.map +1 -1
  149. package/dist/session/open-question-control.d.ts +53 -0
  150. package/dist/session/open-question-control.d.ts.map +1 -0
  151. package/dist/session/open-question-control.js +410 -0
  152. package/dist/session/open-question-control.js.map +1 -0
  153. package/dist/session/open-questions-store.d.ts +12 -0
  154. package/dist/session/open-questions-store.d.ts.map +1 -0
  155. package/dist/session/open-questions-store.js +164 -0
  156. package/dist/session/open-questions-store.js.map +1 -0
  157. package/dist/session/session-sidecar.d.ts +5 -0
  158. package/dist/session/session-sidecar.d.ts.map +1 -1
  159. package/dist/session/session-sidecar.js +24 -3
  160. package/dist/session/session-sidecar.js.map +1 -1
  161. package/dist/session/session-state-store.d.ts +21 -0
  162. package/dist/session/session-state-store.d.ts.map +1 -0
  163. package/dist/session/session-state-store.js +131 -0
  164. package/dist/session/session-state-store.js.map +1 -0
  165. package/dist/session/tool-call-snapshot-history.d.ts +32 -0
  166. package/dist/session/tool-call-snapshot-history.d.ts.map +1 -0
  167. package/dist/session/tool-call-snapshot-history.js +203 -0
  168. package/dist/session/tool-call-snapshot-history.js.map +1 -0
  169. package/dist/usage/enrich-session-usage-cost.d.ts +4 -1
  170. package/dist/usage/enrich-session-usage-cost.d.ts.map +1 -1
  171. package/dist/usage/enrich-session-usage-cost.js +8 -2
  172. package/dist/usage/enrich-session-usage-cost.js.map +1 -1
  173. package/dist/usage/index.d.ts +1 -1
  174. package/dist/usage/index.d.ts.map +1 -1
  175. package/dist/usage/session-usage-tracker.d.ts +7 -1
  176. package/dist/usage/session-usage-tracker.d.ts.map +1 -1
  177. package/dist/usage/session-usage-tracker.js +51 -0
  178. package/dist/usage/session-usage-tracker.js.map +1 -1
  179. package/dist/usage/types.d.ts +30 -2
  180. package/dist/usage/types.d.ts.map +1 -1
  181. package/package.json +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"session-sidecar.d.ts","sourceRoot":"","sources":["../../src/session/session-sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-sidecar.d.ts","sourceRoot":"","sources":["../../src/session/session-sidecar.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { mkdir, readdir, readFile, rename, writeFile } from 'node:fs/promises';
1
+ import { chmod, mkdir, readdir, readFile, rename, writeFile } from 'node:fs/promises';
2
2
  import { dirname, join } from 'node:path';
3
3
  export const SESSION_SIDECAR_VERSION = 1;
4
4
  export class SessionSidecarNotFoundError extends Error {
@@ -43,9 +43,12 @@ export async function saveSessionSidecar(path, sidecar) {
43
43
  ...sidecar,
44
44
  updatedAt: Date.now(),
45
45
  });
46
- await mkdir(dirname(path), { recursive: true });
46
+ const directory = dirname(path);
47
+ await mkdir(directory, { recursive: true, mode: 0o700 });
48
+ await chmod(directory, 0o700);
47
49
  const tempPath = `${path}.tmp`;
48
- await writeFile(tempPath, `${JSON.stringify(parsed, null, 2)}\n`, 'utf8');
50
+ await writeFile(tempPath, `${JSON.stringify(parsed, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
51
+ await chmod(tempPath, 0o600);
49
52
  await rename(tempPath, path);
50
53
  }
51
54
  export async function listSessionSidecars(repoRoot) {
@@ -140,6 +143,18 @@ function parseSessionSidecar(value) {
140
143
  typeof record.lazyWorkers !== 'boolean') {
141
144
  throw new Error('Invalid session sidecar: lazyWorkers');
142
145
  }
146
+ if (record.harnessSocketPath !== undefined &&
147
+ (typeof record.harnessSocketPath !== 'string' ||
148
+ record.harnessSocketPath.length === 0)) {
149
+ throw new Error('Invalid session sidecar: harnessSocketPath');
150
+ }
151
+ if (record.lifecycle !== undefined &&
152
+ record.lifecycle !== 'closed' &&
153
+ record.lifecycle !== 'exited' &&
154
+ record.lifecycle !== 'interrupted' &&
155
+ record.lifecycle !== 'unknown') {
156
+ throw new Error('Invalid session sidecar: lifecycle');
157
+ }
143
158
  const updatedAt = typeof record.updatedAt === 'number' ? record.updatedAt : 0;
144
159
  let githubMonitor;
145
160
  if (record.githubMonitor && typeof record.githubMonitor === 'object') {
@@ -169,6 +184,9 @@ function parseSessionSidecar(value) {
169
184
  ...(typeof record.lazyWorkers === 'boolean'
170
185
  ? { lazyWorkers: record.lazyWorkers }
171
186
  : {}),
187
+ ...(typeof record.harnessSocketPath === 'string'
188
+ ? { harnessSocketPath: record.harnessSocketPath }
189
+ : {}),
172
190
  issueUrl: record.issueUrl,
173
191
  repoRoot: record.repoRoot,
174
192
  profile: record.profile,
@@ -182,6 +200,9 @@ function parseSessionSidecar(value) {
182
200
  ...(typeof record.mcpConfigDigest === 'string'
183
201
  ? { mcpConfigDigest: record.mcpConfigDigest }
184
202
  : {}),
203
+ ...(record.lifecycle !== undefined
204
+ ? { lifecycle: record.lifecycle }
205
+ : {}),
185
206
  updatedAt,
186
207
  };
187
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-sidecar.js","sourceRoot":"","sources":["../../src/session/session-sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-sidecar.js","sourceRoot":"","sources":["../../src/session/session-sidecar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export declare const SESSION_STATE_STORE_VERSION = 2;
2
+ export declare const SESSION_STATUS_LINE_MAX_LENGTH = 80;
3
+ export declare const SESSION_STATUS_HISTORY_MAX_ENTRIES = 50;
4
+ export declare const SESSION_STATE_STORE_MAX_BYTES: number;
5
+ export interface SessionStatePathOptions {
6
+ repoRoot: string;
7
+ conductorAgentId: string;
8
+ }
9
+ export interface SessionStatusLine {
10
+ statusLine: string;
11
+ reportedAt: number;
12
+ }
13
+ export interface SessionStateStore {
14
+ current: SessionStatusLine;
15
+ /** Previous reports, oldest first; the current report is not duplicated. */
16
+ history: SessionStatusLine[];
17
+ }
18
+ export declare function sessionStateStorePath(options: SessionStatePathOptions): string;
19
+ export declare function loadSessionStateStore(path: string): Promise<SessionStateStore | undefined>;
20
+ export declare function saveSessionStatusLine(path: string, statusLine: string, reportedAt?: number): Promise<void>;
21
+ //# sourceMappingURL=session-state-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-state-store.d.ts","sourceRoot":"","sources":["../../src/session/session-state-store.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD,eAAO,MAAM,6BAA6B,QAAY,CAAC;AAEvD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,4EAA4E;IAC5E,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CAQR;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAaxC;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,SAAa,GACtB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -0,0 +1,131 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { mkdir, readFile, rename, unlink, writeFile } from 'node:fs/promises';
3
+ import { dirname, join } from 'node:path';
4
+ import yaml from 'js-yaml';
5
+ export const SESSION_STATE_STORE_VERSION = 2;
6
+ export const SESSION_STATUS_LINE_MAX_LENGTH = 80;
7
+ export const SESSION_STATUS_HISTORY_MAX_ENTRIES = 50;
8
+ export const SESSION_STATE_STORE_MAX_BYTES = 16 * 1024;
9
+ export function sessionStateStorePath(options) {
10
+ return join(options.repoRoot, '.ensemble', 'sessions', options.conductorAgentId, 'session-state.yaml');
11
+ }
12
+ export async function loadSessionStateStore(path) {
13
+ let raw;
14
+ try {
15
+ raw = await readFile(path, 'utf8');
16
+ }
17
+ catch (error) {
18
+ if (isEnoent(error))
19
+ return undefined;
20
+ throw error;
21
+ }
22
+ if (Buffer.byteLength(raw, 'utf8') > SESSION_STATE_STORE_MAX_BYTES) {
23
+ throw new Error('Invalid session state YAML: document exceeds size limit');
24
+ }
25
+ return parseSessionStateStore(yaml.load(raw));
26
+ }
27
+ export async function saveSessionStatusLine(path, statusLine, reportedAt = Date.now()) {
28
+ const current = parseSessionStatusLine({ statusLine, reportedAt });
29
+ const existing = await loadSessionStateStore(path);
30
+ const next = {
31
+ current,
32
+ history: boundHistory([
33
+ ...(existing?.history ?? []),
34
+ ...(existing ? [existing.current] : []),
35
+ ], current),
36
+ };
37
+ await mkdir(dirname(path), { recursive: true });
38
+ const tempPath = `${path}.${process.pid}.${randomUUID()}.tmp`;
39
+ try {
40
+ await writeFile(tempPath, serializeSessionStateStore(next), 'utf8');
41
+ await rename(tempPath, path);
42
+ }
43
+ catch (error) {
44
+ // A failed rename must not leave temporary state that looks like a store.
45
+ await unlink(tempPath).catch(() => { });
46
+ throw error;
47
+ }
48
+ }
49
+ function parseSessionStateStore(value) {
50
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
51
+ throw new Error('Invalid session state YAML: document');
52
+ }
53
+ const record = value;
54
+ // Read the original single-current format so existing sessions keep their
55
+ // statusLine when the next report upgrades the file to version 2.
56
+ if (record.version === 1) {
57
+ return {
58
+ current: parseSessionStatusLine(record),
59
+ history: [],
60
+ };
61
+ }
62
+ if (record.version !== SESSION_STATE_STORE_VERSION) {
63
+ throw new Error(`Unsupported session state YAML version: ${String(record.version)}`);
64
+ }
65
+ const current = parseSessionStatusLine(record.current);
66
+ if (!Array.isArray(record.history)) {
67
+ throw new Error('Invalid session state YAML: history');
68
+ }
69
+ if (record.history.length > SESSION_STATUS_HISTORY_MAX_ENTRIES) {
70
+ throw new Error('Invalid session state YAML: history exceeds count limit');
71
+ }
72
+ const history = record.history.map(parseSessionStatusLine);
73
+ const parsed = { current, history };
74
+ if (Buffer.byteLength(serializeSessionStateStore(parsed), 'utf8') >
75
+ SESSION_STATE_STORE_MAX_BYTES) {
76
+ throw new Error('Invalid session state YAML: document exceeds size limit');
77
+ }
78
+ return parsed;
79
+ }
80
+ function parseSessionStatusLine(value) {
81
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
82
+ throw new Error('Invalid session state YAML: current');
83
+ }
84
+ const record = value;
85
+ if (typeof record.statusLine !== 'string') {
86
+ throw new Error('Invalid session state YAML: statusLine');
87
+ }
88
+ const statusLine = record.statusLine.trim();
89
+ if (!statusLine) {
90
+ throw new Error('Invalid session state YAML: statusLine must not be empty');
91
+ }
92
+ if (/[\r\n]/u.test(statusLine)) {
93
+ throw new Error('Invalid session state YAML: statusLine must be one line');
94
+ }
95
+ if (Array.from(statusLine).length > SESSION_STATUS_LINE_MAX_LENGTH) {
96
+ throw new Error(`Invalid session state YAML: statusLine must be at most ${SESSION_STATUS_LINE_MAX_LENGTH} characters`);
97
+ }
98
+ if (typeof record.reportedAt !== 'number' ||
99
+ !Number.isFinite(record.reportedAt)) {
100
+ throw new Error('Invalid session state YAML: reportedAt');
101
+ }
102
+ return {
103
+ statusLine,
104
+ reportedAt: record.reportedAt,
105
+ };
106
+ }
107
+ function boundHistory(history, current) {
108
+ const bounded = history.slice(-SESSION_STATUS_HISTORY_MAX_ENTRIES);
109
+ while (bounded.length > 0 &&
110
+ Buffer.byteLength(serializeSessionStateStore({ current, history: bounded }), 'utf8') > SESSION_STATE_STORE_MAX_BYTES) {
111
+ bounded.shift();
112
+ }
113
+ if (Buffer.byteLength(serializeSessionStateStore({ current, history: bounded }), 'utf8') > SESSION_STATE_STORE_MAX_BYTES) {
114
+ throw new Error('Invalid session state YAML: document exceeds size limit');
115
+ }
116
+ return bounded;
117
+ }
118
+ function serializeSessionStateStore(state) {
119
+ return `${yaml.dump({
120
+ version: SESSION_STATE_STORE_VERSION,
121
+ current: state.current,
122
+ history: state.history,
123
+ }, { lineWidth: 120 })}\n`;
124
+ }
125
+ function isEnoent(error) {
126
+ return (typeof error === 'object' &&
127
+ error !== null &&
128
+ 'code' in error &&
129
+ error.code === 'ENOENT');
130
+ }
131
+ //# sourceMappingURL=session-state-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-state-store.js","sourceRoot":"","sources":["../../src/session/session-state-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { type StoredToolCallSnapshot } from '../runtime/tool-call-snapshot-registry.js';
2
+ export interface LoadToolCallSnapshotHistoryResult {
3
+ entries: StoredToolCallSnapshot[];
4
+ /** The loaded data was partially invalid or pruned and should be rewritten. */
5
+ needsRewrite: boolean;
6
+ warning?: string;
7
+ }
8
+ export interface PruneToolCallSnapshotHistoryResult {
9
+ removedCount: number;
10
+ failedCount: number;
11
+ }
12
+ export declare function toolCallSnapshotHistoryPath(input: {
13
+ repoRoot: string;
14
+ conductorAgentId: string;
15
+ }): string;
16
+ /**
17
+ * Read the optional history independently from the required resume sidecar.
18
+ * Invalid history is discarded locally so it cannot prevent session resume.
19
+ */
20
+ export declare function loadToolCallSnapshotHistory(input: {
21
+ repoRoot: string;
22
+ conductorAgentId: string;
23
+ now?: number;
24
+ }): Promise<LoadToolCallSnapshotHistoryResult>;
25
+ /** Save atomically; an empty history removes the optional file. */
26
+ export declare function saveToolCallSnapshotHistory(path: string, snapshots: readonly StoredToolCallSnapshot[]): Promise<void>;
27
+ /**
28
+ * Remove inactive history files after their retention window. Active files
29
+ * prune individual expired snapshots in the registry as new updates arrive.
30
+ */
31
+ export declare function pruneExpiredToolCallSnapshotHistoryFiles(repoRoot: string, now?: number): Promise<PruneToolCallSnapshotHistoryResult>;
32
+ //# sourceMappingURL=tool-call-snapshot-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call-snapshot-history.d.ts","sourceRoot":"","sources":["../../src/session/tool-call-snapshot-history.ts"],"names":[],"mappings":"AAUA,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,2CAA2C,CAAC;AAMnD,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,+EAA+E;IAC/E,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kCAAkC;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAoG7C;AAED,mEAAmE;AACnE,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,sBAAsB,EAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;GAGG;AACH,wBAAsB,wCAAwC,CAC5D,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAa,GACf,OAAO,CAAC,kCAAkC,CAAC,CA+B7C"}
@@ -0,0 +1,203 @@
1
+ import { mkdir, readdir, readFile, rename, rm, stat, writeFile, } from 'node:fs/promises';
2
+ import { dirname, join } from 'node:path';
3
+ import { encodedHistorySize, TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES, TOOL_CALL_SNAPSHOT_HISTORY_MAX_ENTRIES, TOOL_CALL_SNAPSHOT_HISTORY_TTL_MS, } from '../runtime/tool-call-snapshot-registry.js';
4
+ import { sessionSidecarDir } from './session-sidecar.js';
5
+ const TOOL_CALL_SNAPSHOT_HISTORY_VERSION = 1;
6
+ const TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX = '.tool-calls';
7
+ export function toolCallSnapshotHistoryPath(input) {
8
+ return join(sessionSidecarDir(input.repoRoot), `${input.conductorAgentId}${TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX}`);
9
+ }
10
+ /**
11
+ * Read the optional history independently from the required resume sidecar.
12
+ * Invalid history is discarded locally so it cannot prevent session resume.
13
+ */
14
+ export async function loadToolCallSnapshotHistory(input) {
15
+ const path = toolCallSnapshotHistoryPath(input);
16
+ let raw;
17
+ try {
18
+ const fileInfo = await stat(path);
19
+ if (fileInfo.size > TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES) {
20
+ await removeHistoryFile(path);
21
+ return {
22
+ entries: [],
23
+ needsRewrite: false,
24
+ warning: 'tool-call snapshot history exceeds the size limit and was discarded',
25
+ };
26
+ }
27
+ raw = await readFile(path, 'utf8');
28
+ }
29
+ catch (error) {
30
+ if (isEnoent(error)) {
31
+ return { entries: [], needsRewrite: false };
32
+ }
33
+ return {
34
+ entries: [],
35
+ needsRewrite: false,
36
+ warning: 'tool-call snapshot history could not be read and was ignored',
37
+ };
38
+ }
39
+ if (Buffer.byteLength(raw, 'utf8') > TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES) {
40
+ await removeHistoryFile(path);
41
+ return {
42
+ entries: [],
43
+ needsRewrite: false,
44
+ warning: 'tool-call snapshot history exceeds the size limit and was discarded',
45
+ };
46
+ }
47
+ let value;
48
+ try {
49
+ value = JSON.parse(raw);
50
+ }
51
+ catch {
52
+ await removeHistoryFile(path);
53
+ return {
54
+ entries: [],
55
+ needsRewrite: false,
56
+ warning: 'tool-call snapshot history is invalid and was discarded',
57
+ };
58
+ }
59
+ if (!isRecord(value) ||
60
+ value.version !== TOOL_CALL_SNAPSHOT_HISTORY_VERSION ||
61
+ !Array.isArray(value.snapshots)) {
62
+ await removeHistoryFile(path);
63
+ return {
64
+ entries: [],
65
+ needsRewrite: false,
66
+ warning: 'tool-call snapshot history has an unsupported format and was discarded',
67
+ };
68
+ }
69
+ const now = input.now ?? Date.now();
70
+ const entries = [];
71
+ let invalidCount = 0;
72
+ for (const candidate of value.snapshots) {
73
+ const entry = parseHistoryEntry(candidate, now);
74
+ if (!entry) {
75
+ invalidCount += 1;
76
+ continue;
77
+ }
78
+ entries.push(entry);
79
+ }
80
+ entries.sort((left, right) => left.updatedAt - right.updatedAt);
81
+ let needsRewrite = invalidCount > 0;
82
+ while (entries.length > TOOL_CALL_SNAPSHOT_HISTORY_MAX_ENTRIES ||
83
+ encodedHistorySize(entries) > TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES) {
84
+ entries.shift();
85
+ needsRewrite = true;
86
+ }
87
+ const retained = entries.filter((entry) => entry.updatedAt >
88
+ now - TOOL_CALL_SNAPSHOT_HISTORY_TTL_MS);
89
+ if (retained.length !== entries.length)
90
+ needsRewrite = true;
91
+ return {
92
+ entries: retained,
93
+ needsRewrite,
94
+ ...(invalidCount > 0
95
+ ? {
96
+ warning: `tool-call snapshot history contained ${invalidCount} invalid entr${invalidCount === 1 ? 'y' : 'ies'}; invalid entries were skipped`,
97
+ }
98
+ : {}),
99
+ };
100
+ }
101
+ /** Save atomically; an empty history removes the optional file. */
102
+ export async function saveToolCallSnapshotHistory(path, snapshots) {
103
+ if (snapshots.length === 0) {
104
+ await removeHistoryFile(path);
105
+ return;
106
+ }
107
+ if (snapshots.length > TOOL_CALL_SNAPSHOT_HISTORY_MAX_ENTRIES ||
108
+ encodedHistorySize(snapshots) > TOOL_CALL_SNAPSHOT_HISTORY_MAX_BYTES) {
109
+ throw new Error('tool-call snapshot history exceeds its configured limit');
110
+ }
111
+ const serialized = JSON.stringify({
112
+ version: TOOL_CALL_SNAPSHOT_HISTORY_VERSION,
113
+ snapshots,
114
+ });
115
+ await mkdir(dirname(path), { recursive: true });
116
+ const tempPath = `${path}.tmp`;
117
+ try {
118
+ await writeFile(tempPath, serialized, 'utf8');
119
+ await rename(tempPath, path);
120
+ }
121
+ catch (error) {
122
+ await removeHistoryFile(tempPath);
123
+ throw error;
124
+ }
125
+ }
126
+ /**
127
+ * Remove inactive history files after their retention window. Active files
128
+ * prune individual expired snapshots in the registry as new updates arrive.
129
+ */
130
+ export async function pruneExpiredToolCallSnapshotHistoryFiles(repoRoot, now = Date.now()) {
131
+ const dir = sessionSidecarDir(repoRoot);
132
+ let entries;
133
+ try {
134
+ entries = await readdir(dir);
135
+ }
136
+ catch (error) {
137
+ if (isEnoent(error))
138
+ return { removedCount: 0, failedCount: 0 };
139
+ return { removedCount: 0, failedCount: 1 };
140
+ }
141
+ let removedCount = 0;
142
+ let failedCount = 0;
143
+ const cutoff = now - TOOL_CALL_SNAPSHOT_HISTORY_TTL_MS;
144
+ for (const entry of entries) {
145
+ if (!entry.endsWith(TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX) &&
146
+ !entry.endsWith(`${TOOL_CALL_SNAPSHOT_HISTORY_SUFFIX}.tmp`)) {
147
+ continue;
148
+ }
149
+ const path = join(dir, entry);
150
+ try {
151
+ const fileInfo = await stat(path);
152
+ if (!fileInfo.isFile() || fileInfo.mtimeMs > cutoff)
153
+ continue;
154
+ await rm(path, { force: true });
155
+ removedCount += 1;
156
+ }
157
+ catch (error) {
158
+ if (!isEnoent(error))
159
+ failedCount += 1;
160
+ }
161
+ }
162
+ return { removedCount, failedCount };
163
+ }
164
+ function parseHistoryEntry(value, now) {
165
+ if (!isRecord(value))
166
+ return undefined;
167
+ const snapshot = value.snapshot;
168
+ if (typeof value.workerId !== 'string' ||
169
+ value.workerId.trim() === '' ||
170
+ typeof value.workerName !== 'string' ||
171
+ value.workerName.trim() === '' ||
172
+ typeof value.sessionId !== 'string' ||
173
+ value.sessionId.trim() === '' ||
174
+ typeof value.updatedAt !== 'number' ||
175
+ !Number.isFinite(value.updatedAt) ||
176
+ value.updatedAt <= 0 ||
177
+ value.updatedAt > now ||
178
+ !isRecord(snapshot) ||
179
+ typeof snapshot.toolCallId !== 'string' ||
180
+ snapshot.toolCallId.trim() === '') {
181
+ return undefined;
182
+ }
183
+ return {
184
+ workerId: value.workerId,
185
+ workerName: value.workerName,
186
+ sessionId: value.sessionId,
187
+ updatedAt: value.updatedAt,
188
+ snapshot: snapshot,
189
+ };
190
+ }
191
+ async function removeHistoryFile(path) {
192
+ await rm(path, { force: true }).catch(() => { });
193
+ }
194
+ function isRecord(value) {
195
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
196
+ }
197
+ function isEnoent(error) {
198
+ return (typeof error === 'object' &&
199
+ error !== null &&
200
+ 'code' in error &&
201
+ error.code === 'ENOENT');
202
+ }
203
+ //# sourceMappingURL=tool-call-snapshot-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call-snapshot-history.js","sourceRoot":"","sources":["../../src/session/tool-call-snapshot-history.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import type { ConductorUsageCost } from '../conductor/conductor-agent.js';
2
2
  import type { SessionUsageSummary } from './types.js';
3
3
  export type GetConductorUsageCost = () => Promise<ConductorUsageCost | undefined>;
4
- /** SDK `getUsage().cost` を session usage にマージする。未取得・失敗時は元の summary を返す。 */
4
+ /**
5
+ * Conductor が報告した請求記録を session usage にマージする。
6
+ * 推定値は渡さず、未取得・失敗時は元の summary を返す。
7
+ */
5
8
  export declare function enrichSessionUsageWithCost(summary: SessionUsageSummary, getCost?: GetConductorUsageCost): Promise<SessionUsageSummary>;
6
9
  //# sourceMappingURL=enrich-session-usage-cost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enrich-session-usage-cost.d.ts","sourceRoot":"","sources":["../../src/usage/enrich-session-usage-cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;AAElF,2EAA2E;AAC3E,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAc9B"}
1
+ {"version":3,"file":"enrich-session-usage-cost.d.ts","sourceRoot":"","sources":["../../src/usage/enrich-session-usage-cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;AAElF;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAiB9B"}
@@ -1,4 +1,7 @@
1
- /** SDK `getUsage().cost` を session usage にマージする。未取得・失敗時は元の summary を返す。 */
1
+ /**
2
+ * Conductor が報告した請求記録を session usage にマージする。
3
+ * 推定値は渡さず、未取得・失敗時は元の summary を返す。
4
+ */
2
5
  export async function enrichSessionUsageWithCost(summary, getCost) {
3
6
  if (!getCost) {
4
7
  return summary;
@@ -8,7 +11,10 @@ export async function enrichSessionUsageWithCost(summary, getCost) {
8
11
  if (cost == null) {
9
12
  return summary;
10
13
  }
11
- return { ...summary, cost };
14
+ return {
15
+ ...summary,
16
+ cost: { ...cost, scope: 'conductor-only' },
17
+ };
12
18
  }
13
19
  catch {
14
20
  return summary;
@@ -1 +1 @@
1
- {"version":3,"file":"enrich-session-usage-cost.js","sourceRoot":"","sources":["../../src/usage/enrich-session-usage-cost.ts"],"names":[],"mappings":"AAKA,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAA4B,EAC5B,OAA+B;IAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"enrich-session-usage-cost.js","sourceRoot":"","sources":["../../src/usage/enrich-session-usage-cost.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAA4B,EAC5B,OAA+B;IAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO;YACL,GAAG,OAAO;YACV,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE;SAC3C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { SessionUsageTracker, resetSessionUsageRoundCounter, } from './session-usage-tracker.js';
2
2
  export type { SessionUsageTrackerOptions } from './session-usage-tracker.js';
3
3
  export { estimateTokenUsageFromText } from './estimate-token-usage.js';
4
- export type { LlmTokenCounts, LlmUsageRecord, LlmUsageSource, SessionContextUtilization, SessionUsageAgentKind, SessionUsageAgentTotals, SessionUsageRound, SessionUsageSummary, } from './types.js';
4
+ export type { LlmTokenCounts, LlmUsageRecord, LlmUsageSource, SessionContextUtilization, SessionUsageAgentKind, SessionUsageAgentTotals, SessionUsageCacheStats, SessionUsageCacheSummary, SessionUsageCost, SessionUsageRound, SessionUsageTokenScope, SessionUsageSummary, } from './types.js';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/usage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/usage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -2,13 +2,18 @@ import type { PromptResult } from '../acp/types.js';
2
2
  import type { ConductorTokenUsage } from '../conductor/conductor-agent.js';
3
3
  import type { SessionUsageRound, SessionUsageSummary } from './types.js';
4
4
  export interface SessionUsageTrackerOptions {
5
- /** テスト用。SDK が limit を返さないため、指定時のみ利用率を算出する。 */
5
+ /** SDK が limit を返さないため、指定時のみ利用率を算出する。 */
6
6
  contextLimitTokens?: number;
7
+ /** Enable only when the selected backend exposes a reliable compaction counter. */
8
+ trackCompactions?: boolean;
7
9
  }
8
10
  export declare class SessionUsageTracker {
9
11
  private readonly rounds;
10
12
  private readonly contextLimitTokens?;
13
+ private readonly trackCompactions;
14
+ private compactionCount;
11
15
  constructor(options?: SessionUsageTrackerOptions);
16
+ recordContextCompaction(): void;
12
17
  recordConductorRound(input: {
13
18
  runId: string;
14
19
  status: string;
@@ -26,6 +31,7 @@ export declare class SessionUsageTracker {
26
31
  agent?: 'conductor' | string;
27
32
  }): SessionUsageRound | null;
28
33
  getSessionSummary(): SessionUsageSummary;
34
+ private buildCacheSummary;
29
35
  private buildContextUtilization;
30
36
  }
31
37
  /** テスト用。 */
@@ -1 +1 @@
1
- {"version":3,"file":"session-usage-tracker.d.ts","sourceRoot":"","sources":["../../src/usage/session-usage-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,KAAK,EAKV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,0BAA0B;IACzC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;gBAEjC,OAAO,GAAE,0BAA+B;IAIpD,oBAAoB,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,mBAAmB,CAAC;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,iBAAiB;IAerB,iBAAiB,CAAC,KAAK,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,YAAY,CAAC;KAC5B,GAAG,iBAAiB;IAuBrB,cAAc,CAAC,MAAM,CAAC,EAAE;QACtB,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;KAC9B,GAAG,iBAAiB,GAAG,IAAI;IAa5B,iBAAiB,IAAI,mBAAmB;IAoCxC,OAAO,CAAC,uBAAuB;CAsBhC;AAiGD,YAAY;AACZ,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
1
+ {"version":3,"file":"session-usage-tracker.d.ts","sourceRoot":"","sources":["../../src/usage/session-usage-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,KAAK,EAOV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,0BAA0B;IACzC,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,eAAe,CAAK;gBAEhB,OAAO,GAAE,0BAA+B;IAKpD,uBAAuB,IAAI,IAAI;IAM/B,oBAAoB,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,mBAAmB,CAAC;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,iBAAiB;IAerB,iBAAiB,CAAC,KAAK,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,YAAY,CAAC;KAC5B,GAAG,iBAAiB;IAuBrB,cAAc,CAAC,MAAM,CAAC,EAAE;QACtB,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;KAC9B,GAAG,iBAAiB,GAAG,IAAI;IAa5B,iBAAiB,IAAI,mBAAmB;IAwCxC,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,uBAAuB;CAsBhC;AAyID,YAAY;AACZ,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}