/**
 * Copyright 2026 Reto Meier
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import { randomUUID } from 'crypto';
import { InfrastructureContext } from '../momoa_core/types.js';

export class ConcreteInfrastructureContext implements InfrastructureContext {
  getToolNames(): string[] {
    // For now, returning an empty array as we don't have tool discovery implemented here.
    return [];
  }

  async getToolResultPrefix(): Promise<string> {
    return '---TOOL RESULT START---';
  }

  async getToolResultSuffix(): Promise<string> {
    return '---TOOL RESULT END---';
  }

  async getAssetString(name: string): Promise<string> {
    // Placeholder implementation. In a real scenario, this would fetch assets.
    console.warn(`Asset '${name}' not found. Returning empty string.`);
    return '';
  }

  getSessionId(): string {
    return randomUUID().toString();
  }
}
