@gnsx/genesys.agent.eval 1.0.0 → 1.0.2

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 (42) hide show
  1. package/dist/bundle/cli.js +1149 -0
  2. package/dist/bundle/cli.js.map +1 -0
  3. package/dist/src/args.d.ts +2 -16
  4. package/dist/src/args.d.ts.map +1 -1
  5. package/dist/src/args.js +57 -207
  6. package/dist/src/args.js.map +1 -1
  7. package/dist/src/{launcher.d.ts → cli.d.ts} +1 -1
  8. package/dist/src/cli.d.ts.map +1 -0
  9. package/dist/src/{launcher.js → cli.js} +5 -11
  10. package/dist/src/cli.js.map +1 -0
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/dist/tsup.config.d.ts +3 -0
  13. package/dist/tsup.config.d.ts.map +1 -0
  14. package/dist/tsup.config.js +13 -0
  15. package/dist/tsup.config.js.map +1 -0
  16. package/package.json +20 -16
  17. package/dist/src/adapters/anthropic-adapter.d.ts +0 -24
  18. package/dist/src/adapters/anthropic-adapter.d.ts.map +0 -1
  19. package/dist/src/adapters/anthropic-adapter.js +0 -80
  20. package/dist/src/adapters/anthropic-adapter.js.map +0 -1
  21. package/dist/src/adapters/gemini-adapter.d.ts +0 -23
  22. package/dist/src/adapters/gemini-adapter.d.ts.map +0 -1
  23. package/dist/src/adapters/gemini-adapter.js +0 -79
  24. package/dist/src/adapters/gemini-adapter.js.map +0 -1
  25. package/dist/src/adapters/ollama-adapter.d.ts +0 -28
  26. package/dist/src/adapters/ollama-adapter.d.ts.map +0 -1
  27. package/dist/src/adapters/ollama-adapter.js +0 -54
  28. package/dist/src/adapters/ollama-adapter.js.map +0 -1
  29. package/dist/src/adapters/openai-adapter.d.ts +0 -24
  30. package/dist/src/adapters/openai-adapter.d.ts.map +0 -1
  31. package/dist/src/adapters/openai-adapter.js +0 -80
  32. package/dist/src/adapters/openai-adapter.js.map +0 -1
  33. package/dist/src/adapters/pi-adapter.d.ts +0 -27
  34. package/dist/src/adapters/pi-adapter.d.ts.map +0 -1
  35. package/dist/src/adapters/pi-adapter.js +0 -136
  36. package/dist/src/adapters/pi-adapter.js.map +0 -1
  37. package/dist/src/agent-adapter.d.ts +0 -130
  38. package/dist/src/agent-adapter.d.ts.map +0 -1
  39. package/dist/src/agent-adapter.js +0 -134
  40. package/dist/src/agent-adapter.js.map +0 -1
  41. package/dist/src/launcher.d.ts.map +0 -1
  42. package/dist/src/launcher.js.map +0 -1
@@ -1,136 +0,0 @@
1
- /**
2
- * Pi framework agent adapter.
3
- *
4
- * Uses the @mariozechner/pi-coding-agent package for running tests.
5
- *
6
- * @module adapters/pi-adapter
7
- */
8
- import { getModel, setBedrockProviderModule } from '@mariozechner/pi-ai';
9
- import { bedrockProviderModule } from '@mariozechner/pi-ai/bedrock-provider';
10
- import { createAgentSession, DefaultResourceLoader, getAgentDir, SessionManager, SettingsManager, } from '@mariozechner/pi-coding-agent';
11
- import { AdapterError, BaseAgentAdapter, registerAdapter, } from '../agent-adapter.js';
12
- /**
13
- * Agent adapter that uses the pi framework.
14
- *
15
- * This adapter creates a headless agent session and runs tests by sending
16
- * prompts and collecting responses through the event stream.
17
- */
18
- export class PiAgentAdapter extends BaseAgentAdapter {
19
- name = 'pi';
20
- _model;
21
- _session;
22
- _resourceLoader;
23
- constructor() {
24
- super();
25
- this._model = 'default';
26
- // Register Bedrock provider so AWS users can use it without extra setup
27
- setBedrockProviderModule(bedrockProviderModule);
28
- }
29
- get model() {
30
- return this._model;
31
- }
32
- async initialize(config) {
33
- await super.initialize(config);
34
- try {
35
- const agentDir = getAgentDir();
36
- const settingsManager = SettingsManager.create(config.cwd, agentDir);
37
- // Create resource loader with minimal configuration
38
- this._resourceLoader = new DefaultResourceLoader({
39
- cwd: config.cwd,
40
- agentDir,
41
- settingsManager,
42
- });
43
- await this._resourceLoader.reload();
44
- // Resolve model if specified
45
- let model;
46
- if (config.model) {
47
- const provider = (config.provider ?? 'anthropic');
48
- try {
49
- model = getModel(provider, config.model);
50
- this._model = `${provider}/${config.model}`;
51
- }
52
- catch {
53
- console.warn(`Warning: unknown model "${provider}/${config.model}", falling back to default.`);
54
- }
55
- }
56
- // Create in-memory session for evaluation (no persistence)
57
- const sessionManager = SessionManager.inMemory();
58
- const { session, modelFallbackMessage } = await createAgentSession({
59
- cwd: config.cwd,
60
- ...(model ? { model } : {}),
61
- sessionManager,
62
- settingsManager,
63
- resourceLoader: this._resourceLoader,
64
- });
65
- if (modelFallbackMessage) {
66
- console.warn(`Warning: ${modelFallbackMessage}`);
67
- }
68
- this._session = session;
69
- }
70
- catch (error) {
71
- throw new AdapterError(`Failed to initialize pi agent: ${error instanceof Error ? error.message : String(error)}`, this.name, error);
72
- }
73
- }
74
- async run(test, suiteContext) {
75
- this.assertInitialized();
76
- if (!this._session) {
77
- throw new AdapterError('Session not initialized', this.name);
78
- }
79
- const prompt = this.buildPrompt(test, suiteContext);
80
- const startTime = Date.now();
81
- // Collect response text from events
82
- let responseText = '';
83
- let isComplete = false;
84
- // Subscribe to events before sending the prompt
85
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
- const unsubscribe = this._session.subscribe((event) => {
87
- // Handle different event types - collect text content
88
- if (event.type === 'message_update' && event.message?.content) {
89
- const content = event.message.content;
90
- if (typeof content === 'string') {
91
- responseText = content;
92
- }
93
- }
94
- // Check for completion
95
- if (event.type === 'turn_end' || event.type === 'message_end') {
96
- isComplete = true;
97
- }
98
- });
99
- try {
100
- // Send the prompt
101
- await this._session.prompt(prompt, { source: 'rpc' });
102
- // Wait for completion with timeout
103
- const timeout = 120000; // 2 minutes
104
- const pollInterval = 100; // 100ms
105
- const startWait = Date.now();
106
- while (!isComplete && Date.now() - startWait < timeout) {
107
- await new Promise(resolve => setTimeout(resolve, pollInterval));
108
- }
109
- const durationMs = Date.now() - startTime;
110
- return {
111
- output: responseText,
112
- metadata: {
113
- model: this._model,
114
- durationMs,
115
- },
116
- };
117
- }
118
- catch (error) {
119
- throw new AdapterError(`Test execution failed: ${error instanceof Error ? error.message : String(error)}`, this.name, error);
120
- }
121
- finally {
122
- unsubscribe();
123
- }
124
- }
125
- async dispose() {
126
- if (this._session) {
127
- // Clean up session if needed
128
- this._session = undefined;
129
- }
130
- this._resourceLoader = undefined;
131
- await super.dispose();
132
- }
133
- }
134
- // Register the adapter
135
- registerAdapter('pi', () => new PiAgentAdapter());
136
- //# sourceMappingURL=pi-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pi-adapter.js","sourceRoot":"","sources":["../../../src/adapters/pi-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,130 +0,0 @@
1
- /**
2
- * Agent adapter interface and factory for creating adapters.
3
- *
4
- * The adapter pattern allows the eval harness to work with different
5
- * agent backends (pi framework, direct Anthropic, OpenAI, etc.) through
6
- * a common interface.
7
- *
8
- * @module agent-adapter
9
- */
10
- import type { AgentConfig, AgentResponse, TestCase } from './types.js';
11
- /**
12
- * Interface that all agent adapters must implement.
13
- *
14
- * Adapters are responsible for:
15
- * - Initializing the agent with configuration
16
- * - Running test cases and returning responses
17
- * - Cleaning up resources when done
18
- */
19
- export interface AgentAdapter {
20
- /** Human-readable name of this adapter */
21
- readonly name: string;
22
- /** Model identifier being used */
23
- readonly model: string;
24
- /**
25
- * Initialize the adapter with the given configuration.
26
- *
27
- * @param config - Agent configuration
28
- * @throws Error if initialization fails
29
- */
30
- initialize(config: AgentConfig): Promise<void>;
31
- /**
32
- * Run a test case through the agent.
33
- *
34
- * @param test - The test case to run
35
- * @param suiteContext - Optional global context from the test suite
36
- * @returns The agent's response
37
- * @throws Error if execution fails
38
- */
39
- run(test: TestCase, suiteContext?: string): Promise<AgentResponse>;
40
- /**
41
- * Clean up any resources used by the adapter.
42
- */
43
- dispose(): Promise<void>;
44
- }
45
- /**
46
- * Factory function type for creating agent adapters.
47
- */
48
- export type AdapterFactory = () => AgentAdapter;
49
- /**
50
- * Register an adapter factory for a given agent name.
51
- *
52
- * @param name - The agent name/identifier
53
- * @param factory - Factory function that creates the adapter
54
- *
55
- * @example
56
- * ```typescript
57
- * registerAdapter('anthropic', () => new AnthropicAdapter());
58
- * ```
59
- */
60
- export declare function registerAdapter(name: string, factory: AdapterFactory): void;
61
- /**
62
- * Create an agent adapter by name.
63
- *
64
- * @param name - The agent name (e.g., 'pi', 'anthropic', 'openai')
65
- * @returns A new adapter instance
66
- * @throws Error if the adapter name is not registered
67
- *
68
- * @example
69
- * ```typescript
70
- * const adapter = createAdapter('anthropic');
71
- * await adapter.initialize({ cwd: process.cwd(), model: 'claude-3-5-sonnet' });
72
- * ```
73
- */
74
- export declare function createAdapter(name: string): AgentAdapter;
75
- /**
76
- * Get a list of available adapter names.
77
- *
78
- * @returns Array of registered adapter names
79
- */
80
- export declare function getAvailableAdapters(): string[];
81
- /**
82
- * Check if an adapter is registered for the given name.
83
- *
84
- * @param name - The adapter name to check
85
- * @returns True if the adapter is available
86
- */
87
- export declare function isAdapterAvailable(name: string): boolean;
88
- /**
89
- * Error thrown when an adapter operation fails.
90
- */
91
- export declare class AdapterError extends Error {
92
- readonly adapterName: string;
93
- readonly cause?: unknown | undefined;
94
- constructor(message: string, adapterName: string, cause?: unknown | undefined);
95
- }
96
- /**
97
- * Error thrown when an adapter is not properly initialized.
98
- */
99
- export declare class AdapterNotInitializedError extends AdapterError {
100
- constructor(adapterName: string);
101
- }
102
- /**
103
- * Base class for agent adapters with common functionality.
104
- *
105
- * Extend this class when implementing new adapters.
106
- */
107
- export declare abstract class BaseAgentAdapter implements AgentAdapter {
108
- protected _config?: AgentConfig;
109
- protected _initialized: boolean;
110
- abstract readonly name: string;
111
- abstract readonly model: string;
112
- /**
113
- * Build the full prompt from test case and suite context.
114
- *
115
- * @param test - The test case
116
- * @param suiteContext - Optional global context
117
- * @returns The combined prompt string
118
- */
119
- protected buildPrompt(test: TestCase, suiteContext?: string): string;
120
- initialize(config: AgentConfig): Promise<void>;
121
- abstract run(test: TestCase, suiteContext?: string): Promise<AgentResponse>;
122
- dispose(): Promise<void>;
123
- /**
124
- * Assert that the adapter is initialized.
125
- *
126
- * @throws AdapterNotInitializedError if not initialized
127
- */
128
- protected assertInitialized(): void;
129
- }
130
- //# sourceMappingURL=agent-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-adapter.d.ts","sourceRoot":"","sources":["../../src/agent-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;;;;;;OAOG;IACH,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEnE;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC;AAOhD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE3E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAUxD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAGnB,WAAW,EAAE,MAAM;aACnB,KAAK,CAAC,EAAE,OAAO;gBAF/B,OAAO,EAAE,MAAM,EACC,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;gBAC9C,WAAW,EAAE,MAAM;CAOhC;AAED;;;;GAIG;AACH,8BAAsB,gBAAiB,YAAW,YAAY;IAC5D,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAChC,SAAS,CAAC,YAAY,UAAS;IAE/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEhC;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAgB9D,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAErE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;CAKpC"}
@@ -1,134 +0,0 @@
1
- /**
2
- * Agent adapter interface and factory for creating adapters.
3
- *
4
- * The adapter pattern allows the eval harness to work with different
5
- * agent backends (pi framework, direct Anthropic, OpenAI, etc.) through
6
- * a common interface.
7
- *
8
- * @module agent-adapter
9
- */
10
- /**
11
- * Registry of available agent adapters.
12
- */
13
- const adapterRegistry = new Map();
14
- /**
15
- * Register an adapter factory for a given agent name.
16
- *
17
- * @param name - The agent name/identifier
18
- * @param factory - Factory function that creates the adapter
19
- *
20
- * @example
21
- * ```typescript
22
- * registerAdapter('anthropic', () => new AnthropicAdapter());
23
- * ```
24
- */
25
- export function registerAdapter(name, factory) {
26
- adapterRegistry.set(name, factory);
27
- }
28
- /**
29
- * Create an agent adapter by name.
30
- *
31
- * @param name - The agent name (e.g., 'pi', 'anthropic', 'openai')
32
- * @returns A new adapter instance
33
- * @throws Error if the adapter name is not registered
34
- *
35
- * @example
36
- * ```typescript
37
- * const adapter = createAdapter('anthropic');
38
- * await adapter.initialize({ cwd: process.cwd(), model: 'claude-3-5-sonnet' });
39
- * ```
40
- */
41
- export function createAdapter(name) {
42
- const factory = adapterRegistry.get(name);
43
- if (!factory) {
44
- const available = Array.from(adapterRegistry.keys()).join(', ');
45
- throw new Error(`Unknown agent adapter: "${name}". ` +
46
- `Available adapters: ${available || 'none registered'}`);
47
- }
48
- return factory();
49
- }
50
- /**
51
- * Get a list of available adapter names.
52
- *
53
- * @returns Array of registered adapter names
54
- */
55
- export function getAvailableAdapters() {
56
- return Array.from(adapterRegistry.keys());
57
- }
58
- /**
59
- * Check if an adapter is registered for the given name.
60
- *
61
- * @param name - The adapter name to check
62
- * @returns True if the adapter is available
63
- */
64
- export function isAdapterAvailable(name) {
65
- return adapterRegistry.has(name);
66
- }
67
- /**
68
- * Error thrown when an adapter operation fails.
69
- */
70
- export class AdapterError extends Error {
71
- adapterName;
72
- cause;
73
- constructor(message, adapterName, cause) {
74
- super(message);
75
- this.adapterName = adapterName;
76
- this.cause = cause;
77
- this.name = 'AdapterError';
78
- }
79
- }
80
- /**
81
- * Error thrown when an adapter is not properly initialized.
82
- */
83
- export class AdapterNotInitializedError extends AdapterError {
84
- constructor(adapterName) {
85
- super(`Adapter "${adapterName}" is not initialized. Call initialize() before using.`, adapterName);
86
- this.name = 'AdapterNotInitializedError';
87
- }
88
- }
89
- /**
90
- * Base class for agent adapters with common functionality.
91
- *
92
- * Extend this class when implementing new adapters.
93
- */
94
- export class BaseAgentAdapter {
95
- _config;
96
- _initialized = false;
97
- /**
98
- * Build the full prompt from test case and suite context.
99
- *
100
- * @param test - The test case
101
- * @param suiteContext - Optional global context
102
- * @returns The combined prompt string
103
- */
104
- buildPrompt(test, suiteContext) {
105
- const parts = [];
106
- if (suiteContext) {
107
- parts.push('Context:', suiteContext, '');
108
- }
109
- if (test.context) {
110
- parts.push('Specific Context:', test.context, '');
111
- }
112
- parts.push('Task:', test.input);
113
- return parts.join('\n');
114
- }
115
- async initialize(config) {
116
- this._config = config;
117
- this._initialized = true;
118
- }
119
- async dispose() {
120
- this._initialized = false;
121
- this._config = undefined;
122
- }
123
- /**
124
- * Assert that the adapter is initialized.
125
- *
126
- * @throws AdapterNotInitializedError if not initialized
127
- */
128
- assertInitialized() {
129
- if (!this._initialized) {
130
- throw new AdapterNotInitializedError(this.name);
131
- }
132
- }
133
- }
134
- //# sourceMappingURL=agent-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../../src/agent-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgDH;;GAEG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,OAAuB;IACnE,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,KAAK;YACpC,uBAAuB,SAAS,IAAI,iBAAiB,EAAE,CACxD,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,EAAE,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGnB;IACA;IAHlB,YACE,OAAe,EACC,WAAmB,EACnB,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,gBAAW,GAAX,WAAW,CAAQ;QACnB,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,YAAY;IAC1D,YAAY,WAAmB;QAC7B,KAAK,CACH,YAAY,WAAW,uDAAuD,EAC9E,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,gBAAgB;IAC1B,OAAO,CAAe;IACtB,YAAY,GAAG,KAAK,CAAC;IAK/B;;;;;;OAMG;IACO,WAAW,CAAC,IAAc,EAAE,YAAqB;QACzD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAmB;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAID,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACO,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/launcher.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/launcher.ts"],"names":[],"mappings":"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"}