Module: Ace::Compressor

Defined in:
lib/ace/compressor.rb,
lib/ace/compressor/cli.rb,
lib/ace/compressor/version.rb,
lib/ace/compressor/models/context_pack.rb,
lib/ace/compressor/atoms/markdown_parser.rb,
lib/ace/compressor/cli/commands/compress.rb,
lib/ace/compressor/molecules/cache_store.rb,
lib/ace/compressor/cli/commands/benchmark.rb,
lib/ace/compressor/atoms/retention_reporter.rb,
lib/ace/compressor/molecules/input_resolver.rb,
lib/ace/compressor/organisms/agent_compressor.rb,
lib/ace/compressor/organisms/benchmark_runner.rb,
lib/ace/compressor/organisms/exact_compressor.rb,
lib/ace/compressor/organisms/compact_compressor.rb,
lib/ace/compressor/organisms/compression_runner.rb,
lib/ace/compressor/atoms/compact_policy_classifier.rb,
lib/ace/compressor/atoms/canonical_block_transformer.rb

Defined Under Namespace

Modules: Atoms, CLI, Models, Molecules, Organisms Classes: Error

Constant Summary collapse

VERSION =
'0.25.1'

Class Method Summary collapse

Class Method Details

.compress_text(text, label:, mode: "exact") ⇒ String

Compress a content string directly (Ruby API for other gems).

Parameters:

  • text (String)

    markdown/text content

  • label (String)

    display label (original file path)

  • mode (String) (defaults to: "exact")

    compression mode (“exact” or “agent”)

Returns:

  • (String)

    compressed ContextPack records



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/ace/compressor.rb', line 32

def self.compress_text(text, label:, mode: "exact")
  case mode
  when "exact"
    compressor = Organisms::ExactCompressor.new([], mode_label: mode)
    compressor.compress_text(text, label: label)
  when "agent"
    compress_text_via_file(text, label: label, mode: mode)
  else
    raise Error, "compress_text only supports exact and agent modes, got: #{mode}"
  end
end

.configObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/ace/compressor.rb', line 44

def self.config
  @config ||= begin
    gem_root = Gem.loaded_specs["ace-compressor"]&.gem_dir ||
      File.expand_path("../..", __dir__)

    resolver = Ace::Support::Config.create(
      config_dir: ".ace",
      defaults_dir: ".ace-defaults",
      gem_path: gem_root
    )

    config = resolver.resolve_namespace("compressor").to_h
    config.empty? ? load_gem_defaults_fallback(gem_root) : config
  end
end

.reset_config!Object



60
61
62
# File 'lib/ace/compressor.rb', line 60

def self.reset_config!
  @config = nil
end