devchain-cli 0.15.0 → 0.16.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 (192) hide show
  1. package/README.md +5 -4
  2. package/dist/cli.js +14 -5
  3. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js +1 -1
  4. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js.map +1 -1
  5. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.d.ts +3 -1
  6. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +17 -4
  7. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
  8. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.d.ts +5 -1
  9. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js +12 -2
  10. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js.map +1 -1
  11. package/dist/server/modules/core/core-normal.module.js +2 -9
  12. package/dist/server/modules/core/core-normal.module.js.map +1 -1
  13. package/dist/server/modules/core/services/antigravity-trusted-workspaces.module.d.ts +2 -0
  14. package/dist/server/modules/core/services/antigravity-trusted-workspaces.module.js +21 -0
  15. package/dist/server/modules/core/services/antigravity-trusted-workspaces.module.js.map +1 -0
  16. package/dist/server/modules/core/services/antigravity-trusted-workspaces.service.d.ts +21 -0
  17. package/dist/server/modules/core/services/antigravity-trusted-workspaces.service.js +249 -0
  18. package/dist/server/modules/core/services/antigravity-trusted-workspaces.service.js.map +1 -0
  19. package/dist/server/modules/core/services/copilot-auth-probe.module.d.ts +2 -0
  20. package/dist/server/modules/core/services/copilot-auth-probe.module.js +21 -0
  21. package/dist/server/modules/core/services/copilot-auth-probe.module.js.map +1 -0
  22. package/dist/server/modules/core/services/copilot-auth-probe.service.d.ts +7 -0
  23. package/dist/server/modules/core/services/copilot-auth-probe.service.js +63 -0
  24. package/dist/server/modules/core/services/copilot-auth-probe.service.js.map +1 -0
  25. package/dist/server/modules/core/services/copilot-trusted-folders.module.d.ts +2 -0
  26. package/dist/server/modules/core/services/{gemini-trusted-folders.module.js → copilot-trusted-folders.module.js} +9 -9
  27. package/dist/server/modules/core/services/copilot-trusted-folders.module.js.map +1 -0
  28. package/dist/server/modules/core/services/copilot-trusted-folders.service.d.ts +22 -0
  29. package/dist/server/modules/core/services/copilot-trusted-folders.service.js +228 -0
  30. package/dist/server/modules/core/services/copilot-trusted-folders.service.js.map +1 -0
  31. package/dist/server/modules/core/services/preflight.service.d.ts +1 -0
  32. package/dist/server/modules/core/services/preflight.service.js +35 -3
  33. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  34. package/dist/server/modules/core/services/trust-folders-logic.d.ts +11 -0
  35. package/dist/server/modules/core/services/trust-folders-logic.js +33 -0
  36. package/dist/server/modules/core/services/trust-folders-logic.js.map +1 -0
  37. package/dist/server/modules/e2ee/controllers/e2ee-pairing.controller.d.ts +1 -0
  38. package/dist/server/modules/e2ee/controllers/e2ee-pairing.controller.js +1 -0
  39. package/dist/server/modules/e2ee/controllers/e2ee-pairing.controller.js.map +1 -1
  40. package/dist/server/modules/e2ee/services/e2ee-device-store.service.d.ts +8 -1
  41. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +31 -4
  42. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
  43. package/dist/server/modules/e2ee/services/e2ee-pairing.service.d.ts +1 -0
  44. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js +2 -1
  45. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js.map +1 -1
  46. package/dist/server/modules/e2ee/services/e2ee-trust.service.d.ts +1 -1
  47. package/dist/server/modules/e2ee/services/e2ee-trust.service.js +5 -2
  48. package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
  49. package/dist/server/modules/events/catalog/claude.hooks.session.started.d.ts +6 -0
  50. package/dist/server/modules/events/catalog/claude.hooks.session.started.js +2 -0
  51. package/dist/server/modules/events/catalog/claude.hooks.session.started.js.map +1 -1
  52. package/dist/server/modules/events/catalog/index.d.ts +16 -10
  53. package/dist/server/modules/events/catalog/session.activity.changed.d.ts +2 -2
  54. package/dist/server/modules/events/catalog/session.transcript.discovered.d.ts +2 -2
  55. package/dist/server/modules/events/catalog/session.transcript.ended.d.ts +2 -2
  56. package/dist/server/modules/events/catalog/session.transcript.updated.d.ts +2 -2
  57. package/dist/server/modules/events/catalog/terminal.watcher.triggered.d.ts +2 -2
  58. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +126 -10
  59. package/dist/server/modules/hooks/dtos/hook-event.dto.js +22 -6
  60. package/dist/server/modules/hooks/dtos/hook-event.dto.js.map +1 -1
  61. package/dist/server/modules/hooks/hooks.module.js +13 -2
  62. package/dist/server/modules/hooks/hooks.module.js.map +1 -1
  63. package/dist/server/modules/hooks/services/copilot-hooks-config.service.d.ts +13 -0
  64. package/dist/server/modules/hooks/services/copilot-hooks-config.service.js +185 -0
  65. package/dist/server/modules/hooks/services/copilot-hooks-config.service.js.map +1 -0
  66. package/dist/server/modules/hooks/services/hooks.service.d.ts +1 -0
  67. package/dist/server/modules/hooks/services/hooks.service.js +18 -1
  68. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  69. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +2 -2
  70. package/dist/server/modules/orchestrator/docker/services/docker.service.js +16 -3
  71. package/dist/server/modules/orchestrator/docker/services/docker.service.js.map +1 -1
  72. package/dist/server/modules/providers/adapters/antigravity.adapter.d.ts +22 -0
  73. package/dist/server/modules/providers/adapters/antigravity.adapter.js +81 -0
  74. package/dist/server/modules/providers/adapters/antigravity.adapter.js.map +1 -0
  75. package/dist/server/modules/providers/adapters/capabilities/index.d.ts +2 -2
  76. package/dist/server/modules/providers/adapters/capabilities/index.js +3 -1
  77. package/dist/server/modules/providers/adapters/capabilities/index.js.map +1 -1
  78. package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +16 -1
  79. package/dist/server/modules/providers/adapters/capabilities/type-guards.js +8 -0
  80. package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
  81. package/dist/server/modules/providers/adapters/codex.adapter.d.ts +1 -0
  82. package/dist/server/modules/providers/adapters/codex.adapter.js +10 -4
  83. package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
  84. package/dist/server/modules/providers/adapters/copilot.adapter.d.ts +31 -0
  85. package/dist/server/modules/providers/adapters/copilot.adapter.js +122 -0
  86. package/dist/server/modules/providers/adapters/copilot.adapter.js.map +1 -0
  87. package/dist/server/modules/providers/adapters/index.d.ts +1 -1
  88. package/dist/server/modules/providers/adapters/index.js +1 -1
  89. package/dist/server/modules/providers/adapters/index.js.map +1 -1
  90. package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +3 -2
  91. package/dist/server/modules/providers/adapters/provider-adapter.factory.js +8 -5
  92. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
  93. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +4 -0
  94. package/dist/server/modules/providers/adapters/provider-adapters.module.js +19 -4
  95. package/dist/server/modules/providers/adapters/provider-adapters.module.js.map +1 -1
  96. package/dist/server/modules/providers/controllers/provider-models.controller.js +3 -2
  97. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
  98. package/dist/server/modules/providers/providers.module.js +1 -0
  99. package/dist/server/modules/providers/providers.module.js.map +1 -1
  100. package/dist/server/modules/providers/services/mcp-registration/antigravity-mcp-registration.adapter.d.ts +17 -0
  101. package/dist/server/modules/providers/services/mcp-registration/antigravity-mcp-registration.adapter.js +264 -0
  102. package/dist/server/modules/providers/services/mcp-registration/antigravity-mcp-registration.adapter.js.map +1 -0
  103. package/dist/server/modules/providers/services/mcp-registration/cli-mcp-registration.adapter.js +5 -6
  104. package/dist/server/modules/providers/services/mcp-registration/cli-mcp-registration.adapter.js.map +1 -1
  105. package/dist/server/modules/providers/services/mcp-registration/index.d.ts +1 -0
  106. package/dist/server/modules/providers/services/mcp-registration/index.js +3 -1
  107. package/dist/server/modules/providers/services/mcp-registration/index.js.map +1 -1
  108. package/dist/server/modules/providers/services/mcp-registration/mcp-registration.port.d.ts +3 -1
  109. package/dist/server/modules/providers/services/mcp-registration/mcp-registration.port.js +6 -1
  110. package/dist/server/modules/providers/services/mcp-registration/mcp-registration.port.js.map +1 -1
  111. package/dist/server/modules/seeders/seeders/0009_seed_remove_gemini_provider.d.ts +3 -0
  112. package/dist/server/modules/seeders/seeders/0009_seed_remove_gemini_provider.js +64 -0
  113. package/dist/server/modules/seeders/seeders/0009_seed_remove_gemini_provider.js.map +1 -0
  114. package/dist/server/modules/seeders/services/data-seeder.service.js +2 -0
  115. package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
  116. package/dist/server/modules/session-reader/__fixtures__/antigravity-fixture-db.d.ts +12 -0
  117. package/dist/server/modules/session-reader/__fixtures__/antigravity-fixture-db.js +41 -0
  118. package/dist/server/modules/session-reader/__fixtures__/antigravity-fixture-db.js.map +1 -0
  119. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +30 -0
  120. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.js +268 -0
  121. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.js.map +1 -0
  122. package/dist/server/modules/session-reader/adapters/{gemini-session-reader.adapter.d.ts → copilot-session-reader.adapter.d.ts} +4 -5
  123. package/dist/server/modules/session-reader/adapters/{gemini-session-reader.adapter.js → copilot-session-reader.adapter.js} +35 -68
  124. package/dist/server/modules/session-reader/adapters/copilot-session-reader.adapter.js.map +1 -0
  125. package/dist/server/modules/session-reader/adapters/session-reader-adapter.factory.js.map +1 -1
  126. package/dist/server/modules/session-reader/data/pricing.json +126 -10
  127. package/dist/server/modules/session-reader/dtos/unified-session.types.d.ts +6 -0
  128. package/dist/server/modules/session-reader/dtos/unified-session.types.js.map +1 -1
  129. package/dist/server/modules/session-reader/parsers/antigravity-jsonl.parser.d.ts +16 -0
  130. package/dist/server/modules/session-reader/parsers/antigravity-jsonl.parser.js +307 -0
  131. package/dist/server/modules/session-reader/parsers/antigravity-jsonl.parser.js.map +1 -0
  132. package/dist/server/modules/session-reader/parsers/{gemini-json.parser.d.ts → copilot-jsonl.parser.d.ts} +4 -3
  133. package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.js +432 -0
  134. package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.js.map +1 -0
  135. package/dist/server/modules/session-reader/readers/antigravity-metrics.reader.d.ts +25 -0
  136. package/dist/server/modules/session-reader/readers/antigravity-metrics.reader.js +142 -0
  137. package/dist/server/modules/session-reader/readers/antigravity-metrics.reader.js.map +1 -0
  138. package/dist/server/modules/session-reader/readers/antigravity-model-pricing.d.ts +6 -0
  139. package/dist/server/modules/session-reader/readers/antigravity-model-pricing.js +35 -0
  140. package/dist/server/modules/session-reader/readers/antigravity-model-pricing.js.map +1 -0
  141. package/dist/server/modules/session-reader/readers/antigravity-transcript.reader.d.ts +24 -0
  142. package/dist/server/modules/session-reader/readers/antigravity-transcript.reader.js +80 -0
  143. package/dist/server/modules/session-reader/readers/antigravity-transcript.reader.js.map +1 -0
  144. package/dist/server/modules/session-reader/readers/copilot-model-pricing.d.ts +10 -0
  145. package/dist/server/modules/session-reader/readers/copilot-model-pricing.js +37 -0
  146. package/dist/server/modules/session-reader/readers/copilot-model-pricing.js.map +1 -0
  147. package/dist/server/modules/session-reader/readers/protobuf-wire.d.ts +13 -0
  148. package/dist/server/modules/session-reader/readers/protobuf-wire.js +94 -0
  149. package/dist/server/modules/session-reader/readers/protobuf-wire.js.map +1 -0
  150. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js +2 -1
  151. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js.map +1 -1
  152. package/dist/server/modules/session-reader/services/transcript-persistence.listener.d.ts +1 -0
  153. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +40 -8
  154. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -1
  155. package/dist/server/modules/session-reader/session-reader.module.d.ts +5 -3
  156. package/dist/server/modules/session-reader/session-reader.module.js +14 -8
  157. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
  158. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +2 -0
  159. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +13 -0
  160. package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
  161. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +8 -0
  162. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +8 -1
  163. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  164. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.d.ts +5 -1
  165. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +42 -5
  166. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  167. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +1 -0
  168. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  169. package/dist/server/modules/subscribers/events/event-fields-catalog.js +5 -3
  170. package/dist/server/modules/subscribers/events/event-fields-catalog.js.map +1 -1
  171. package/dist/server/templates/3-agents-dev.json +172 -139
  172. package/dist/server/templates/teams-dev.json +271 -183
  173. package/dist/server/tsconfig.tsbuildinfo +1 -1
  174. package/dist/server/ui/assets/{ReviewDetailPage-BpPjTAgL.js → ReviewDetailPage-BDisSE9l.js} +1 -1
  175. package/dist/server/ui/assets/{ReviewsPage-CAs14WVx.js → ReviewsPage-3puoJiOQ.js} +1 -1
  176. package/dist/server/ui/assets/{index-DhGz-UAr.js → index-zlQ1ekQ2.js} +43 -40
  177. package/dist/server/ui/assets/{useReviewSubscription-CscSQD7B.js → useReviewSubscription-wTrdkdi0.js} +1 -1
  178. package/dist/server/ui/index.html +1 -1
  179. package/dist/templates/3-agents-dev.json +172 -139
  180. package/dist/templates/teams-dev.json +271 -183
  181. package/package.json +9 -1
  182. package/dist/server/modules/core/services/gemini-trusted-folders.module.d.ts +0 -2
  183. package/dist/server/modules/core/services/gemini-trusted-folders.module.js.map +0 -1
  184. package/dist/server/modules/core/services/gemini-trusted-folders.service.d.ts +0 -26
  185. package/dist/server/modules/core/services/gemini-trusted-folders.service.js +0 -181
  186. package/dist/server/modules/core/services/gemini-trusted-folders.service.js.map +0 -1
  187. package/dist/server/modules/providers/adapters/gemini.adapter.d.ts +0 -27
  188. package/dist/server/modules/providers/adapters/gemini.adapter.js +0 -119
  189. package/dist/server/modules/providers/adapters/gemini.adapter.js.map +0 -1
  190. package/dist/server/modules/session-reader/adapters/gemini-session-reader.adapter.js.map +0 -1
  191. package/dist/server/modules/session-reader/parsers/gemini-json.parser.js +0 -380
  192. package/dist/server/modules/session-reader/parsers/gemini-json.parser.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ import type { SessionReaderAdapter, SessionDiscoveryContext, SessionFileInfo, SessionSourceRef, ParseOptions, IncrementalResult } from './session-reader-adapter.interface';
2
+ import type { UnifiedSession } from '../dtos/unified-session.types';
3
+ import { type PricingServiceInterface } from '../services/pricing.interface';
4
+ export declare class AntigravitySessionReaderAdapter implements SessionReaderAdapter {
5
+ private readonly pricingService;
6
+ readonly providerName = "agy";
7
+ readonly incrementalMode: "snapshot";
8
+ readonly sourceKind: "db";
9
+ readonly allowedRoots: string[];
10
+ private readonly logger;
11
+ private readonly root;
12
+ private readonly reader;
13
+ private readonly metricsReader;
14
+ constructor(pricingService: PricingServiceInterface);
15
+ discoverSessionFile(context: SessionDiscoveryContext): Promise<SessionFileInfo[]>;
16
+ getFreshnessToken(sourceRef: SessionSourceRef): Promise<unknown>;
17
+ parseFullSession(filePath: string, sourceRef?: SessionSourceRef): Promise<UnifiedSession>;
18
+ parseIncremental(filePath: string, _options: ParseOptions, sourceRef?: SessionSourceRef): Promise<IncrementalResult>;
19
+ parseSessionFile(_filePath: string, _options?: ParseOptions): Promise<IncrementalResult>;
20
+ getWatchPaths(_projectRoot: string): string[];
21
+ calculateCost(entries: unknown[], model: string): number;
22
+ private applyTokenMetrics;
23
+ private dbPathFor;
24
+ private resolveDbPath;
25
+ private requireConversationId;
26
+ private collectCandidateConversationIds;
27
+ private readHistory;
28
+ private readLastConversation;
29
+ private statFile;
30
+ }
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
45
+ return function (target, key) { decorator(target, key, paramIndex); }
46
+ };
47
+ var AntigravitySessionReaderAdapter_1;
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.AntigravitySessionReaderAdapter = void 0;
50
+ const common_1 = require("@nestjs/common");
51
+ const fs = __importStar(require("node:fs/promises"));
52
+ const os = __importStar(require("node:os"));
53
+ const path = __importStar(require("node:path"));
54
+ const pricing_interface_1 = require("../services/pricing.interface");
55
+ const error_types_1 = require("../../../common/errors/error-types");
56
+ const antigravity_transcript_reader_1 = require("../readers/antigravity-transcript.reader");
57
+ const antigravity_metrics_reader_1 = require("../readers/antigravity-metrics.reader");
58
+ const antigravity_model_pricing_1 = require("../readers/antigravity-model-pricing");
59
+ const AGY_ROOT = '.gemini/antigravity-cli';
60
+ const CONVERSATIONS_DIR = 'conversations';
61
+ const HISTORY_FILE = 'history.jsonl';
62
+ const LAST_CONVERSATIONS_FILE = 'cache/last_conversations.json';
63
+ const DISCOVERY_WINDOW_MS = 120_000;
64
+ let AntigravitySessionReaderAdapter = AntigravitySessionReaderAdapter_1 = class AntigravitySessionReaderAdapter {
65
+ constructor(pricingService) {
66
+ this.pricingService = pricingService;
67
+ this.providerName = 'agy';
68
+ this.incrementalMode = 'snapshot';
69
+ this.sourceKind = 'db';
70
+ this.logger = new common_1.Logger(AntigravitySessionReaderAdapter_1.name);
71
+ this.root = path.join(os.homedir(), AGY_ROOT);
72
+ this.allowedRoots = [this.root];
73
+ this.reader = new antigravity_transcript_reader_1.AntigravityTranscriptReader(this.pricingService);
74
+ this.metricsReader = new antigravity_metrics_reader_1.AntigravityMetricsReader();
75
+ }
76
+ async discoverSessionFile(context) {
77
+ const directory = path.resolve(context.projectRoot);
78
+ const startedAtMs = context.sessionStartedAt?.getTime();
79
+ const candidates = await this.collectCandidateConversationIds(directory);
80
+ if (candidates.size === 0)
81
+ return [];
82
+ const ranked = [];
83
+ for (const [convId, historyTs] of candidates) {
84
+ const dbPath = this.dbPathFor(convId);
85
+ const stat = await this.statFile(dbPath);
86
+ if (!stat)
87
+ continue;
88
+ const refTs = historyTs ?? stat.mtimeMs;
89
+ if (startedAtMs !== undefined && Math.abs(refTs - startedAtMs) > DISCOVERY_WINDOW_MS) {
90
+ continue;
91
+ }
92
+ ranked.push({
93
+ info: {
94
+ filePath: dbPath,
95
+ providerName: this.providerName,
96
+ providerSessionId: convId,
97
+ sizeBytes: 0,
98
+ lastModified: new Date(stat.mtimeMs).toISOString(),
99
+ },
100
+ sortTs: refTs,
101
+ });
102
+ }
103
+ ranked.sort((a, b) => startedAtMs !== undefined
104
+ ? Math.abs(a.sortTs - startedAtMs) - Math.abs(b.sortTs - startedAtMs)
105
+ : b.sortTs - a.sortTs);
106
+ return ranked.map((r) => r.info);
107
+ }
108
+ async getFreshnessToken(sourceRef) {
109
+ const convId = this.requireConversationId(sourceRef.providerSessionId);
110
+ return this.reader.getFreshness(this.resolveDbPath(sourceRef), convId);
111
+ }
112
+ async parseFullSession(filePath, sourceRef) {
113
+ const convId = this.requireConversationId(sourceRef?.providerSessionId);
114
+ const dbPath = this.resolveDbPath(sourceRef, filePath);
115
+ const { session } = await this.reader.readSession(dbPath, convId);
116
+ this.applyTokenMetrics(session, dbPath, convId);
117
+ return session;
118
+ }
119
+ async parseIncremental(filePath, _options, sourceRef) {
120
+ const convId = this.requireConversationId(sourceRef?.providerSessionId);
121
+ const dbPath = this.resolveDbPath(sourceRef, filePath);
122
+ const { session, sizeBytes } = await this.reader.readSession(dbPath, convId);
123
+ this.applyTokenMetrics(session, dbPath, convId);
124
+ return {
125
+ hasMore: false,
126
+ nextByteOffset: sizeBytes,
127
+ messageCount: session.messages.length,
128
+ entries: session.messages,
129
+ metrics: session.metrics,
130
+ warnings: session.warnings,
131
+ };
132
+ }
133
+ async parseSessionFile(_filePath, _options) {
134
+ throw new error_types_1.ValidationError('agy is a DB-backed source: parseSessionFile requires a SessionSourceRef with providerSessionId — use parseFullSession instead', { providerName: this.providerName });
135
+ }
136
+ getWatchPaths(_projectRoot) {
137
+ return [path.join(this.root, CONVERSATIONS_DIR)];
138
+ }
139
+ calculateCost(entries, model) {
140
+ let total = 0;
141
+ for (const entry of entries) {
142
+ const usage = entry.usage;
143
+ if (usage) {
144
+ total += this.pricingService.calculateMessageCost(model, usage.input, usage.output, usage.cacheRead, usage.cacheCreation);
145
+ }
146
+ }
147
+ return total;
148
+ }
149
+ applyTokenMetrics(session, dbPath, convId) {
150
+ const decoded = this.metricsReader.decode(dbPath, convId);
151
+ const warnings = [...(session.warnings ?? []), ...decoded.warnings];
152
+ const metrics = session.metrics;
153
+ metrics.inputTokens = decoded.inputTokens;
154
+ metrics.outputTokens = decoded.outputTokens;
155
+ metrics.cacheReadTokens = decoded.cacheReadTokens;
156
+ metrics.cacheCreationTokens = decoded.cacheCreationTokens;
157
+ metrics.totalTokens =
158
+ decoded.inputTokens +
159
+ decoded.outputTokens +
160
+ decoded.cacheReadTokens +
161
+ decoded.cacheCreationTokens;
162
+ metrics.totalContextTokens = decoded.lastContextTokens;
163
+ const model = decoded.modelId ?? decoded.displayName;
164
+ if (model)
165
+ metrics.primaryModel = model;
166
+ const mapping = (0, antigravity_model_pricing_1.mapAgyModelToPricing)(decoded.displayName, decoded.modelId);
167
+ if (mapping?.isFree) {
168
+ metrics.costUsd = 0;
169
+ if (mapping.freeContextWindow)
170
+ metrics.contextWindowTokens = mapping.freeContextWindow;
171
+ }
172
+ else if (mapping?.pricingKey) {
173
+ metrics.costUsd = this.pricingService.calculateMessageCost(mapping.pricingKey, decoded.inputTokens, decoded.outputTokens, decoded.cacheReadTokens, decoded.cacheCreationTokens);
174
+ metrics.contextWindowTokens = this.pricingService.getContextWindowSize(mapping.pricingKey);
175
+ }
176
+ else if (model) {
177
+ warnings.push(`agy metrics: no pricing mapping for model "${model}" — cost reported as $0`);
178
+ metrics.costUsd = 0;
179
+ }
180
+ if (warnings.length > 0)
181
+ session.warnings = warnings;
182
+ }
183
+ dbPathFor(convId) {
184
+ return path.join(this.root, CONVERSATIONS_DIR, `${convId}.db`);
185
+ }
186
+ resolveDbPath(sourceRef, filePath) {
187
+ return sourceRef?.filePath ?? filePath ?? '';
188
+ }
189
+ requireConversationId(providerSessionId) {
190
+ if (!providerSessionId) {
191
+ throw new error_types_1.ValidationError('agy session read requires providerSessionId (conversation id) on the SessionSourceRef', { providerName: this.providerName });
192
+ }
193
+ return providerSessionId;
194
+ }
195
+ async collectCandidateConversationIds(directory) {
196
+ const candidates = new Map();
197
+ for (const entry of await this.readHistory()) {
198
+ if (entry.workspace !== directory)
199
+ continue;
200
+ if (typeof entry.conversationId !== 'string' || entry.conversationId.length === 0)
201
+ continue;
202
+ const ts = typeof entry.timestamp === 'number' ? entry.timestamp : undefined;
203
+ const existing = candidates.get(entry.conversationId);
204
+ if (existing === undefined || (ts !== undefined && ts > existing)) {
205
+ candidates.set(entry.conversationId, ts);
206
+ }
207
+ }
208
+ const fallback = await this.readLastConversation(directory);
209
+ if (fallback && !candidates.has(fallback)) {
210
+ candidates.set(fallback, undefined);
211
+ }
212
+ return candidates;
213
+ }
214
+ async readHistory() {
215
+ try {
216
+ const content = await fs.readFile(path.join(this.root, HISTORY_FILE), 'utf8');
217
+ const entries = [];
218
+ for (const line of content.split('\n')) {
219
+ if (!line.trim())
220
+ continue;
221
+ try {
222
+ entries.push(JSON.parse(line));
223
+ }
224
+ catch {
225
+ }
226
+ }
227
+ return entries;
228
+ }
229
+ catch (error) {
230
+ if (error.code !== 'ENOENT') {
231
+ this.logger.debug({ error }, 'Failed to read agy history.jsonl — falling back');
232
+ }
233
+ return [];
234
+ }
235
+ }
236
+ async readLastConversation(directory) {
237
+ try {
238
+ const content = await fs.readFile(path.join(this.root, LAST_CONVERSATIONS_FILE), 'utf8');
239
+ const map = JSON.parse(content);
240
+ const value = map[directory];
241
+ return typeof value === 'string' && value.length > 0 ? value : null;
242
+ }
243
+ catch (error) {
244
+ if (error.code !== 'ENOENT') {
245
+ this.logger.debug({ error }, 'Failed to read agy last_conversations.json');
246
+ }
247
+ return null;
248
+ }
249
+ }
250
+ async statFile(filePath) {
251
+ try {
252
+ const stat = await fs.stat(filePath);
253
+ if (!stat.isFile())
254
+ return null;
255
+ return { mtimeMs: stat.mtime.getTime() };
256
+ }
257
+ catch {
258
+ return null;
259
+ }
260
+ }
261
+ };
262
+ exports.AntigravitySessionReaderAdapter = AntigravitySessionReaderAdapter;
263
+ exports.AntigravitySessionReaderAdapter = AntigravitySessionReaderAdapter = AntigravitySessionReaderAdapter_1 = __decorate([
264
+ (0, common_1.Injectable)(),
265
+ __param(0, (0, common_1.Inject)(pricing_interface_1.PRICING_SERVICE)),
266
+ __metadata("design:paramtypes", [Object])
267
+ ], AntigravitySessionReaderAdapter);
268
+ //# sourceMappingURL=antigravity-session-reader.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-session-reader.adapter.js","sourceRoot":"","sources":["../../../../src/modules/session-reader/adapters/antigravity-session-reader.adapter.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import type { SessionReaderAdapter, SessionDiscoveryContext, SessionFileInfo, ParseOptions, IncrementalResult } from './session-reader-adapter.interface';
2
2
  import type { UnifiedSession } from '../dtos/unified-session.types';
3
3
  import { type PricingServiceInterface } from '../services/pricing.interface';
4
- export declare class GeminiSessionReaderAdapter implements SessionReaderAdapter {
4
+ export declare class CopilotSessionReaderAdapter implements SessionReaderAdapter {
5
5
  private readonly pricingService;
6
- readonly providerName = "gemini";
6
+ readonly providerName = "copilot";
7
7
  readonly incrementalMode: "snapshot";
8
+ readonly sourceKind: "file";
8
9
  readonly allowedRoots: string[];
9
10
  private readonly logger;
10
11
  private readonly homeDir;
@@ -15,9 +16,7 @@ export declare class GeminiSessionReaderAdapter implements SessionReaderAdapter
15
16
  getWatchPaths(_projectRoot: string): string[];
16
17
  calculateCost(entries: unknown[], model: string): number;
17
18
  parseFullSession(filePath: string): Promise<UnifiedSession>;
18
- private extractSessionId;
19
- private scanProjectDirectories;
20
- private scanChatsDirectory;
19
+ private deriveEventsPath;
21
20
  private statFile;
22
21
  private getFileSize;
23
22
  }
@@ -44,43 +44,51 @@ var __metadata = (this && this.__metadata) || function (k, v) {
44
44
  var __param = (this && this.__param) || function (paramIndex, decorator) {
45
45
  return function (target, key) { decorator(target, key, paramIndex); }
46
46
  };
47
- var GeminiSessionReaderAdapter_1;
47
+ var CopilotSessionReaderAdapter_1;
48
48
  Object.defineProperty(exports, "__esModule", { value: true });
49
- exports.GeminiSessionReaderAdapter = void 0;
49
+ exports.CopilotSessionReaderAdapter = void 0;
50
50
  const common_1 = require("@nestjs/common");
51
51
  const fs = __importStar(require("node:fs/promises"));
52
52
  const path = __importStar(require("node:path"));
53
53
  const os = __importStar(require("node:os"));
54
- const gemini_json_parser_1 = require("../parsers/gemini-json.parser");
54
+ const copilot_jsonl_parser_1 = require("../parsers/copilot-jsonl.parser");
55
55
  const pricing_interface_1 = require("../services/pricing.interface");
56
- const GEMINI_ROOT = '.gemini/tmp/';
57
- let GeminiSessionReaderAdapter = GeminiSessionReaderAdapter_1 = class GeminiSessionReaderAdapter {
56
+ const COPILOT_ROOT = '.copilot/session-state/';
57
+ const EVENTS_FILENAME = 'events.jsonl';
58
+ let CopilotSessionReaderAdapter = CopilotSessionReaderAdapter_1 = class CopilotSessionReaderAdapter {
58
59
  constructor(pricingService) {
59
60
  this.pricingService = pricingService;
60
- this.providerName = 'gemini';
61
+ this.providerName = 'copilot';
61
62
  this.incrementalMode = 'snapshot';
62
- this.logger = new common_1.Logger(GeminiSessionReaderAdapter_1.name);
63
+ this.sourceKind = 'file';
64
+ this.logger = new common_1.Logger(CopilotSessionReaderAdapter_1.name);
63
65
  this.homeDir = os.homedir();
64
- this.allowedRoots = [path.join(this.homeDir, GEMINI_ROOT)];
66
+ this.allowedRoots = [path.join(this.homeDir, COPILOT_ROOT)];
65
67
  }
66
68
  async discoverSessionFile(context) {
67
- const results = [];
68
69
  if (context.transcriptPath) {
69
70
  const info = await this.statFile(context.transcriptPath);
70
71
  if (info) {
71
- results.push(info);
72
- return results;
72
+ info.providerSessionId = context.sessionId ?? path.basename(path.dirname(info.filePath));
73
+ return [info];
73
74
  }
74
- this.logger.warn({ transcriptPath: context.transcriptPath }, 'Persisted transcriptPath not found on disk — falling back to directory scan');
75
+ this.logger.warn({ transcriptPath: context.transcriptPath }, 'Persisted transcriptPath not found on disk — falling back to sessionId derivation');
75
76
  }
76
- const geminiRoot = path.join(this.homeDir, GEMINI_ROOT);
77
- await this.scanProjectDirectories(geminiRoot, results);
78
- results.sort((a, b) => new Date(b.lastModified).getTime() - new Date(a.lastModified).getTime());
79
- return results;
77
+ if (!context.sessionId) {
78
+ this.logger.debug({ projectRoot: context.projectRoot }, 'No sessionId to derive a Copilot transcript path from');
79
+ return [];
80
+ }
81
+ const filePath = this.deriveEventsPath(context.sessionId);
82
+ const info = await this.statFile(filePath);
83
+ if (!info)
84
+ return [];
85
+ info.providerSessionId = context.sessionId;
86
+ return [info];
80
87
  }
81
88
  async parseSessionFile(filePath, options) {
82
- const result = await (0, gemini_json_parser_1.parseGeminiJson)(filePath, {
89
+ const result = await (0, copilot_jsonl_parser_1.parseCopilotJsonl)(filePath, {
83
90
  maxMessages: options?.maxMessages,
91
+ byteOffset: options?.byteOffset,
84
92
  includeToolCalls: options?.includeToolCalls ?? true,
85
93
  pricingService: this.pricingService,
86
94
  });
@@ -104,8 +112,7 @@ let GeminiSessionReaderAdapter = GeminiSessionReaderAdapter_1 = class GeminiSess
104
112
  entries: [],
105
113
  };
106
114
  }
107
- const result = await (0, gemini_json_parser_1.parseGeminiJson)(filePath, {
108
- maxMessages: options.maxMessages,
115
+ const result = await (0, copilot_jsonl_parser_1.parseCopilotJsonl)(filePath, {
109
116
  includeToolCalls: options.includeToolCalls ?? true,
110
117
  pricingService: this.pricingService,
111
118
  });
@@ -119,7 +126,7 @@ let GeminiSessionReaderAdapter = GeminiSessionReaderAdapter_1 = class GeminiSess
119
126
  };
120
127
  }
121
128
  getWatchPaths(_projectRoot) {
122
- return [path.join(this.homeDir, GEMINI_ROOT)];
129
+ return [path.join(this.homeDir, COPILOT_ROOT)];
123
130
  }
124
131
  calculateCost(entries, model) {
125
132
  let totalCost = 0;
@@ -132,10 +139,10 @@ let GeminiSessionReaderAdapter = GeminiSessionReaderAdapter_1 = class GeminiSess
132
139
  return totalCost;
133
140
  }
134
141
  async parseFullSession(filePath) {
135
- const result = await (0, gemini_json_parser_1.parseGeminiJson)(filePath, {
142
+ const result = await (0, copilot_jsonl_parser_1.parseCopilotJsonl)(filePath, {
136
143
  pricingService: this.pricingService,
137
144
  });
138
- const id = result.sessionId ?? this.extractSessionId(filePath);
145
+ const id = result.sessionId ?? path.basename(path.dirname(filePath));
139
146
  return {
140
147
  id,
141
148
  providerName: this.providerName,
@@ -146,48 +153,8 @@ let GeminiSessionReaderAdapter = GeminiSessionReaderAdapter_1 = class GeminiSess
146
153
  warnings: result.warnings,
147
154
  };
148
155
  }
149
- extractSessionId(filePath) {
150
- const baseName = path.basename(filePath, '.json');
151
- const match = baseName.match(/^session-\d{4}-\d{2}-\d{2}T[\d-]+-(.+)$/);
152
- return match?.[1] ?? baseName;
153
- }
154
- async scanProjectDirectories(geminiRoot, results) {
155
- try {
156
- const entries = await fs.readdir(geminiRoot, { withFileTypes: true });
157
- for (const entry of entries) {
158
- if (!entry.isDirectory())
159
- continue;
160
- const chatsDir = path.join(geminiRoot, entry.name, 'chats');
161
- await this.scanChatsDirectory(chatsDir, results);
162
- }
163
- }
164
- catch (error) {
165
- if (error.code !== 'ENOENT') {
166
- this.logger.warn({ error, geminiRoot }, 'Failed to scan Gemini project directories');
167
- }
168
- }
169
- }
170
- async scanChatsDirectory(chatsDir, results) {
171
- try {
172
- const entries = await fs.readdir(chatsDir, { withFileTypes: true });
173
- for (const entry of entries) {
174
- if (!entry.isFile())
175
- continue;
176
- if (!entry.name.endsWith('.json'))
177
- continue;
178
- const fullPath = path.join(chatsDir, entry.name);
179
- const info = await this.statFile(fullPath);
180
- if (info) {
181
- info.providerSessionId = this.extractSessionId(fullPath);
182
- results.push(info);
183
- }
184
- }
185
- }
186
- catch (error) {
187
- if (error.code !== 'ENOENT') {
188
- this.logger.warn({ error, chatsDir }, 'Failed to scan Gemini chats directory');
189
- }
190
- }
156
+ deriveEventsPath(sessionId) {
157
+ return path.join(this.homeDir, COPILOT_ROOT, sessionId, EVENTS_FILENAME);
191
158
  }
192
159
  async statFile(filePath) {
193
160
  try {
@@ -215,10 +182,10 @@ let GeminiSessionReaderAdapter = GeminiSessionReaderAdapter_1 = class GeminiSess
215
182
  }
216
183
  }
217
184
  };
218
- exports.GeminiSessionReaderAdapter = GeminiSessionReaderAdapter;
219
- exports.GeminiSessionReaderAdapter = GeminiSessionReaderAdapter = GeminiSessionReaderAdapter_1 = __decorate([
185
+ exports.CopilotSessionReaderAdapter = CopilotSessionReaderAdapter;
186
+ exports.CopilotSessionReaderAdapter = CopilotSessionReaderAdapter = CopilotSessionReaderAdapter_1 = __decorate([
220
187
  (0, common_1.Injectable)(),
221
188
  __param(0, (0, common_1.Inject)(pricing_interface_1.PRICING_SERVICE)),
222
189
  __metadata("design:paramtypes", [Object])
223
- ], GeminiSessionReaderAdapter);
224
- //# sourceMappingURL=gemini-session-reader.adapter.js.map
190
+ ], CopilotSessionReaderAdapter);
191
+ //# sourceMappingURL=copilot-session-reader.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot-session-reader.adapter.js","sourceRoot":"","sources":["../../../../src/modules/session-reader/adapters/copilot-session-reader.adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-reader-adapter.factory.js","sourceRoot":"","sources":["../../../../src/modules/session-reader/adapters/session-reader-adapter.factory.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AA+BrC,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAAjC;QACY,aAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IAwDtE,CAAC;IAnDC,eAAe,CAAC,OAA6B;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAQD,UAAU,CAAC,YAAoB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;IAYD,iBAAiB,CAAC,QAAgB;QAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACnE,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAQD,WAAW,CAAC,YAAoB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;IAOD,qBAAqB;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AAzDY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;GACA,2BAA2B,CAyDvC"}
1
+ {"version":3,"file":"session-reader-adapter.factory.js","sourceRoot":"","sources":["../../../../src/modules/session-reader/adapters/session-reader-adapter.factory.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAoCrC,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAAjC;QACY,aAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IAwDtE,CAAC;IAnDC,eAAe,CAAC,OAA6B;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAQD,UAAU,CAAC,YAAoB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;IAYD,iBAAiB,CAAC,QAAgB;QAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACnE,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAQD,WAAW,CAAC,YAAoB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;IAOD,qBAAqB;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AAzDY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;GACA,2BAA2B,CAyDvC"}