Class: AgentCliRuntime::OpenCodePreparationRequest

Inherits:
Data
  • Object
show all
Defined in:
lib/agent_cli_runtime/values.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request:, working_directory:, invocation_root:, configuration_path: nil, configuration: nil, credential_environment_keys: [], credential_file: nil, permission_policy: nil, additional_read_roots: [], additional_write_roots: [], edit_patterns: [], plugins: [], pure: true) ⇒ OpenCodePreparationRequest

Returns a new instance of OpenCodePreparationRequest.

Raises:

  • (ArgumentError)


270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
# File 'lib/agent_cli_runtime/values.rb', line 270

def initialize(request:, working_directory:, invocation_root:,
               configuration_path: nil, configuration: nil,
               credential_environment_keys: [], credential_file: nil,
               permission_policy: nil, additional_read_roots: [],
               additional_write_roots: [], edit_patterns: [], plugins: [], pure: true)
  unless request.is_a?(Request)
    raise ArgumentError, "request must be an AgentCliRuntime::Request"
  end
  if configuration_path && configuration
    raise ArgumentError,
          "choose configuration_path or configuration, not both"
  end
  if permission_policy &&
     !permission_policy.is_a?(OpenCodePermissionPolicy)
    raise ArgumentError,
          "permission_policy must be an OpenCodePermissionPolicy"
  end

  keys = Immutable.strings(credential_environment_keys)
  invalid = keys.find { |key| !key.match?(/\A[A-Z][A-Z0-9_]*\z/) }
  raise ArgumentError, "invalid credential environment key" if invalid
  raise ArgumentError, "credential environment keys must be unique" if keys.uniq.length != keys.length
  reserved = keys & OPENCODE_OVERLAY_ENVIRONMENT_KEYS
  unless reserved.empty?
    raise ArgumentError,
          "credential environment keys cannot override the OpenCode overlay: #{reserved.join(', ')}"
  end

  super(
    request: request,
    working_directory: Immutable.string(working_directory),
    invocation_root: Immutable.string(invocation_root),
    configuration_path:
      configuration_path.nil? ? nil : Immutable.string(configuration_path),
    configuration:
      configuration.nil? ? nil : Immutable.hash(configuration),
    credential_environment_keys: keys,
    credential_file:
      credential_file.nil? ? nil : Immutable.string(credential_file),
    permission_policy: permission_policy,
    additional_read_roots: Immutable.strings(additional_read_roots),
    additional_write_roots: Immutable.strings(additional_write_roots),
    edit_patterns: Immutable.strings(edit_patterns),
    plugins: Immutable.strings(plugins),
    pure: pure != false
  )
end

Instance Attribute Details

#additional_read_rootsObject (readonly)

Returns the value of attribute additional_read_roots

Returns:

  • (Object)

    the current value of additional_read_roots



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def additional_read_roots
  @additional_read_roots
end

#additional_write_rootsObject (readonly)

Returns the value of attribute additional_write_roots

Returns:

  • (Object)

    the current value of additional_write_roots



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def additional_write_roots
  @additional_write_roots
end

#configurationObject (readonly)

Returns the value of attribute configuration

Returns:

  • (Object)

    the current value of configuration



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def configuration
  @configuration
end

#configuration_pathObject (readonly)

Returns the value of attribute configuration_path

Returns:

  • (Object)

    the current value of configuration_path



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def configuration_path
  @configuration_path
end

#credential_environment_keysObject (readonly)

Returns the value of attribute credential_environment_keys

Returns:

  • (Object)

    the current value of credential_environment_keys



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def credential_environment_keys
  @credential_environment_keys
end

#credential_fileObject (readonly)

Returns the value of attribute credential_file

Returns:

  • (Object)

    the current value of credential_file



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def credential_file
  @credential_file
end

#edit_patternsObject (readonly)

Returns the value of attribute edit_patterns

Returns:

  • (Object)

    the current value of edit_patterns



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def edit_patterns
  @edit_patterns
end

#invocation_rootObject (readonly)

Returns the value of attribute invocation_root

Returns:

  • (Object)

    the current value of invocation_root



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def invocation_root
  @invocation_root
end

#permission_policyObject (readonly)

Returns the value of attribute permission_policy

Returns:

  • (Object)

    the current value of permission_policy



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def permission_policy
  @permission_policy
end

#pluginsObject (readonly)

Returns the value of attribute plugins

Returns:

  • (Object)

    the current value of plugins



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def plugins
  @plugins
end

#pureObject (readonly)

Returns the value of attribute pure

Returns:

  • (Object)

    the current value of pure



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def pure
  @pure
end

#requestObject (readonly)

Returns the value of attribute request

Returns:

  • (Object)

    the current value of request



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def request
  @request
end

#working_directoryObject (readonly)

Returns the value of attribute working_directory

Returns:

  • (Object)

    the current value of working_directory



263
264
265
# File 'lib/agent_cli_runtime/values.rb', line 263

def working_directory
  @working_directory
end