distill-mcp 0.6.0-beta
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.
- package/bin/cli.js +133 -0
- package/dist/analytics/session-tracker.d.ts +74 -0
- package/dist/analytics/session-tracker.d.ts.map +1 -0
- package/dist/analytics/session-tracker.js +123 -0
- package/dist/ast/benchmark.test.d.ts +7 -0
- package/dist/ast/benchmark.test.d.ts.map +1 -0
- package/dist/ast/benchmark.test.js +175 -0
- package/dist/ast/go/index.d.ts +9 -0
- package/dist/ast/go/index.d.ts.map +1 -0
- package/dist/ast/go/index.js +8 -0
- package/dist/ast/go/parser.d.ts +31 -0
- package/dist/ast/go/parser.d.ts.map +1 -0
- package/dist/ast/go/parser.js +428 -0
- package/dist/ast/go/parser.test.d.ts +5 -0
- package/dist/ast/go/parser.test.d.ts.map +1 -0
- package/dist/ast/go/parser.test.js +241 -0
- package/dist/ast/go/queries.d.ts +51 -0
- package/dist/ast/go/queries.d.ts.map +1 -0
- package/dist/ast/go/queries.js +114 -0
- package/dist/ast/go/utils.d.ts +66 -0
- package/dist/ast/go/utils.d.ts.map +1 -0
- package/dist/ast/go/utils.js +140 -0
- package/dist/ast/index.d.ts +39 -0
- package/dist/ast/index.d.ts.map +1 -0
- package/dist/ast/index.js +245 -0
- package/dist/ast/php/index.d.ts +9 -0
- package/dist/ast/php/index.d.ts.map +1 -0
- package/dist/ast/php/index.js +8 -0
- package/dist/ast/php/parser.d.ts +31 -0
- package/dist/ast/php/parser.d.ts.map +1 -0
- package/dist/ast/php/parser.js +388 -0
- package/dist/ast/php/parser.test.d.ts +5 -0
- package/dist/ast/php/parser.test.d.ts.map +1 -0
- package/dist/ast/php/parser.test.js +328 -0
- package/dist/ast/php/queries.d.ts +61 -0
- package/dist/ast/php/queries.d.ts.map +1 -0
- package/dist/ast/php/queries.js +117 -0
- package/dist/ast/php/utils.d.ts +83 -0
- package/dist/ast/php/utils.d.ts.map +1 -0
- package/dist/ast/php/utils.js +246 -0
- package/dist/ast/python/index.d.ts +9 -0
- package/dist/ast/python/index.d.ts.map +1 -0
- package/dist/ast/python/index.js +8 -0
- package/dist/ast/python/parser.d.ts +32 -0
- package/dist/ast/python/parser.d.ts.map +1 -0
- package/dist/ast/python/parser.js +422 -0
- package/dist/ast/python/parser.test.d.ts +5 -0
- package/dist/ast/python/parser.test.d.ts.map +1 -0
- package/dist/ast/python/parser.test.js +186 -0
- package/dist/ast/python/queries.d.ts +73 -0
- package/dist/ast/python/queries.d.ts.map +1 -0
- package/dist/ast/python/queries.js +137 -0
- package/dist/ast/python/utils.d.ts +63 -0
- package/dist/ast/python/utils.d.ts.map +1 -0
- package/dist/ast/python/utils.js +159 -0
- package/dist/ast/quick-scan.d.ts +40 -0
- package/dist/ast/quick-scan.d.ts.map +1 -0
- package/dist/ast/quick-scan.js +287 -0
- package/dist/ast/rust/index.d.ts +9 -0
- package/dist/ast/rust/index.d.ts.map +1 -0
- package/dist/ast/rust/index.js +8 -0
- package/dist/ast/rust/parser.d.ts +31 -0
- package/dist/ast/rust/parser.d.ts.map +1 -0
- package/dist/ast/rust/parser.js +416 -0
- package/dist/ast/rust/parser.test.d.ts +5 -0
- package/dist/ast/rust/parser.test.d.ts.map +1 -0
- package/dist/ast/rust/parser.test.js +329 -0
- package/dist/ast/rust/queries.d.ts +66 -0
- package/dist/ast/rust/queries.d.ts.map +1 -0
- package/dist/ast/rust/queries.js +132 -0
- package/dist/ast/rust/utils.d.ts +91 -0
- package/dist/ast/rust/utils.d.ts.map +1 -0
- package/dist/ast/rust/utils.js +254 -0
- package/dist/ast/swift/index.d.ts +10 -0
- package/dist/ast/swift/index.d.ts.map +1 -0
- package/dist/ast/swift/index.js +8 -0
- package/dist/ast/swift/parser.d.ts +31 -0
- package/dist/ast/swift/parser.d.ts.map +1 -0
- package/dist/ast/swift/parser.js +554 -0
- package/dist/ast/swift/parser.test.d.ts +5 -0
- package/dist/ast/swift/parser.test.d.ts.map +1 -0
- package/dist/ast/swift/parser.test.js +398 -0
- package/dist/ast/swift/queries.d.ts +71 -0
- package/dist/ast/swift/queries.d.ts.map +1 -0
- package/dist/ast/swift/queries.js +137 -0
- package/dist/ast/swift/utils.d.ts +94 -0
- package/dist/ast/swift/utils.d.ts.map +1 -0
- package/dist/ast/swift/utils.js +411 -0
- package/dist/ast/types.d.ts +96 -0
- package/dist/ast/types.d.ts.map +1 -0
- package/dist/ast/types.js +21 -0
- package/dist/ast/typescript.d.ts +24 -0
- package/dist/ast/typescript.d.ts.map +1 -0
- package/dist/ast/typescript.js +357 -0
- package/dist/cache/file-hash.d.ts +33 -0
- package/dist/cache/file-hash.d.ts.map +1 -0
- package/dist/cache/file-hash.js +59 -0
- package/dist/cache/index.d.ts +9 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +8 -0
- package/dist/cache/smart-cache.d.ts +68 -0
- package/dist/cache/smart-cache.d.ts.map +1 -0
- package/dist/cache/smart-cache.js +266 -0
- package/dist/cache/types.d.ts +102 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +6 -0
- package/dist/cli/analyze.d.ts +43 -0
- package/dist/cli/analyze.d.ts.map +1 -0
- package/dist/cli/analyze.js +250 -0
- package/dist/cli/doctor.d.ts +2 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +127 -0
- package/dist/cli/hooks.d.ts +14 -0
- package/dist/cli/hooks.d.ts.map +1 -0
- package/dist/cli/hooks.js +229 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/setup.d.ts +10 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +117 -0
- package/dist/cli/utils.d.ts +30 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +116 -0
- package/dist/compressors/config.d.ts +9 -0
- package/dist/compressors/config.d.ts.map +1 -0
- package/dist/compressors/config.js +183 -0
- package/dist/compressors/conversation.d.ts +109 -0
- package/dist/compressors/conversation.d.ts.map +1 -0
- package/dist/compressors/conversation.js +404 -0
- package/dist/compressors/diff.d.ts +35 -0
- package/dist/compressors/diff.d.ts.map +1 -0
- package/dist/compressors/diff.js +389 -0
- package/dist/compressors/generic.d.ts +9 -0
- package/dist/compressors/generic.d.ts.map +1 -0
- package/dist/compressors/generic.js +188 -0
- package/dist/compressors/index.d.ts +31 -0
- package/dist/compressors/index.d.ts.map +1 -0
- package/dist/compressors/index.js +82 -0
- package/dist/compressors/logs.d.ts +9 -0
- package/dist/compressors/logs.d.ts.map +1 -0
- package/dist/compressors/logs.js +245 -0
- package/dist/compressors/multifile.d.ts +106 -0
- package/dist/compressors/multifile.d.ts.map +1 -0
- package/dist/compressors/multifile.js +498 -0
- package/dist/compressors/semantic.d.ts +33 -0
- package/dist/compressors/semantic.d.ts.map +1 -0
- package/dist/compressors/semantic.js +233 -0
- package/dist/compressors/stacktrace.d.ts +9 -0
- package/dist/compressors/stacktrace.d.ts.map +1 -0
- package/dist/compressors/stacktrace.js +259 -0
- package/dist/compressors/types.d.ts +146 -0
- package/dist/compressors/types.d.ts.map +1 -0
- package/dist/compressors/types.js +6 -0
- package/dist/config/output-config.d.ts +56 -0
- package/dist/config/output-config.d.ts.map +1 -0
- package/dist/config/output-config.js +78 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/middleware/chain.d.ts +49 -0
- package/dist/middleware/chain.d.ts.map +1 -0
- package/dist/middleware/chain.js +126 -0
- package/dist/middleware/index.d.ts +4 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +3 -0
- package/dist/middleware/logging.d.ts +8 -0
- package/dist/middleware/logging.d.ts.map +1 -0
- package/dist/middleware/logging.js +71 -0
- package/dist/middleware/types.d.ts +58 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +7 -0
- package/dist/parsers/eslint.d.ts +8 -0
- package/dist/parsers/eslint.d.ts.map +1 -0
- package/dist/parsers/eslint.js +132 -0
- package/dist/parsers/generic.d.ts +8 -0
- package/dist/parsers/generic.d.ts.map +1 -0
- package/dist/parsers/generic.js +234 -0
- package/dist/parsers/index.d.ts +34 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +216 -0
- package/dist/parsers/types.d.ts +84 -0
- package/dist/parsers/types.d.ts.map +1 -0
- package/dist/parsers/types.js +6 -0
- package/dist/parsers/typescript.d.ts +8 -0
- package/dist/parsers/typescript.d.ts.map +1 -0
- package/dist/parsers/typescript.js +107 -0
- package/dist/pipelines/definitions.d.ts +50 -0
- package/dist/pipelines/definitions.d.ts.map +1 -0
- package/dist/pipelines/definitions.js +206 -0
- package/dist/sandbox/executor.d.ts +12 -0
- package/dist/sandbox/executor.d.ts.map +1 -0
- package/dist/sandbox/executor.js +191 -0
- package/dist/sandbox/index.d.ts +11 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +9 -0
- package/dist/sandbox/sandbox.test.d.ts +7 -0
- package/dist/sandbox/sandbox.test.d.ts.map +1 -0
- package/dist/sandbox/sandbox.test.js +202 -0
- package/dist/sandbox/sdk/analyze.d.ts +36 -0
- package/dist/sandbox/sdk/analyze.d.ts.map +1 -0
- package/dist/sandbox/sdk/analyze.js +413 -0
- package/dist/sandbox/sdk/analyze.test.d.ts +7 -0
- package/dist/sandbox/sdk/analyze.test.d.ts.map +1 -0
- package/dist/sandbox/sdk/analyze.test.js +191 -0
- package/dist/sandbox/sdk/code.d.ts +20 -0
- package/dist/sandbox/sdk/code.d.ts.map +1 -0
- package/dist/sandbox/sdk/code.js +104 -0
- package/dist/sandbox/sdk/compress.d.ts +23 -0
- package/dist/sandbox/sdk/compress.d.ts.map +1 -0
- package/dist/sandbox/sdk/compress.js +107 -0
- package/dist/sandbox/sdk/conversation.d.ts +148 -0
- package/dist/sandbox/sdk/conversation.d.ts.map +1 -0
- package/dist/sandbox/sdk/conversation.js +177 -0
- package/dist/sandbox/sdk/files.d.ts +29 -0
- package/dist/sandbox/sdk/files.d.ts.map +1 -0
- package/dist/sandbox/sdk/files.js +41 -0
- package/dist/sandbox/sdk/git.d.ts +37 -0
- package/dist/sandbox/sdk/git.d.ts.map +1 -0
- package/dist/sandbox/sdk/git.js +313 -0
- package/dist/sandbox/sdk/git.test.d.ts +8 -0
- package/dist/sandbox/sdk/git.test.d.ts.map +1 -0
- package/dist/sandbox/sdk/git.test.js +160 -0
- package/dist/sandbox/sdk/index.d.ts +16 -0
- package/dist/sandbox/sdk/index.d.ts.map +1 -0
- package/dist/sandbox/sdk/index.js +15 -0
- package/dist/sandbox/sdk/multifile.d.ts +63 -0
- package/dist/sandbox/sdk/multifile.d.ts.map +1 -0
- package/dist/sandbox/sdk/multifile.js +130 -0
- package/dist/sandbox/sdk/pipeline.d.ts +16 -0
- package/dist/sandbox/sdk/pipeline.d.ts.map +1 -0
- package/dist/sandbox/sdk/pipeline.js +454 -0
- package/dist/sandbox/sdk/pipeline.test.d.ts +7 -0
- package/dist/sandbox/sdk/pipeline.test.d.ts.map +1 -0
- package/dist/sandbox/sdk/pipeline.test.js +197 -0
- package/dist/sandbox/sdk/search.d.ts +36 -0
- package/dist/sandbox/sdk/search.d.ts.map +1 -0
- package/dist/sandbox/sdk/search.js +338 -0
- package/dist/sandbox/sdk/search.test.d.ts +7 -0
- package/dist/sandbox/sdk/search.test.d.ts.map +1 -0
- package/dist/sandbox/sdk/search.test.js +183 -0
- package/dist/sandbox/sdk/utils.d.ts +18 -0
- package/dist/sandbox/sdk/utils.d.ts.map +1 -0
- package/dist/sandbox/sdk/utils.js +24 -0
- package/dist/sandbox/security/code-analyzer.d.ts +15 -0
- package/dist/sandbox/security/code-analyzer.d.ts.map +1 -0
- package/dist/sandbox/security/code-analyzer.js +87 -0
- package/dist/sandbox/security/index.d.ts +6 -0
- package/dist/sandbox/security/index.d.ts.map +1 -0
- package/dist/sandbox/security/index.js +5 -0
- package/dist/sandbox/security/path-validator.d.ts +23 -0
- package/dist/sandbox/security/path-validator.d.ts.map +1 -0
- package/dist/sandbox/security/path-validator.js +113 -0
- package/dist/sandbox/types.d.ts +577 -0
- package/dist/sandbox/types.d.ts.map +1 -0
- package/dist/sandbox/types.js +14 -0
- package/dist/server.d.ts +36 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +133 -0
- package/dist/summarizers/build-logs.d.ts +11 -0
- package/dist/summarizers/build-logs.d.ts.map +1 -0
- package/dist/summarizers/build-logs.js +234 -0
- package/dist/summarizers/generic.d.ts +11 -0
- package/dist/summarizers/generic.d.ts.map +1 -0
- package/dist/summarizers/generic.js +93 -0
- package/dist/summarizers/index.d.ts +20 -0
- package/dist/summarizers/index.d.ts.map +1 -0
- package/dist/summarizers/index.js +43 -0
- package/dist/summarizers/server-logs.d.ts +11 -0
- package/dist/summarizers/server-logs.d.ts.map +1 -0
- package/dist/summarizers/server-logs.js +215 -0
- package/dist/summarizers/test-logs.d.ts +11 -0
- package/dist/summarizers/test-logs.d.ts.map +1 -0
- package/dist/summarizers/test-logs.js +258 -0
- package/dist/summarizers/types.d.ts +146 -0
- package/dist/summarizers/types.d.ts.map +1 -0
- package/dist/summarizers/types.js +21 -0
- package/dist/tools/analyze-build-output.d.ts +30 -0
- package/dist/tools/analyze-build-output.d.ts.map +1 -0
- package/dist/tools/analyze-build-output.js +45 -0
- package/dist/tools/analyze-context.d.ts +23 -0
- package/dist/tools/analyze-context.d.ts.map +1 -0
- package/dist/tools/analyze-context.js +78 -0
- package/dist/tools/auto-optimize.d.ts +9 -0
- package/dist/tools/auto-optimize.d.ts.map +1 -0
- package/dist/tools/auto-optimize.js +191 -0
- package/dist/tools/code-execute.d.ts +9 -0
- package/dist/tools/code-execute.d.ts.map +1 -0
- package/dist/tools/code-execute.js +84 -0
- package/dist/tools/code-skeleton.d.ts +33 -0
- package/dist/tools/code-skeleton.d.ts.map +1 -0
- package/dist/tools/code-skeleton.js +206 -0
- package/dist/tools/compress-context.d.ts +33 -0
- package/dist/tools/compress-context.d.ts.map +1 -0
- package/dist/tools/compress-context.js +64 -0
- package/dist/tools/context-budget.d.ts +43 -0
- package/dist/tools/context-budget.d.ts.map +1 -0
- package/dist/tools/context-budget.js +260 -0
- package/dist/tools/context-budget.test.d.ts +5 -0
- package/dist/tools/context-budget.test.d.ts.map +1 -0
- package/dist/tools/context-budget.test.js +219 -0
- package/dist/tools/conversation-compress.d.ts +46 -0
- package/dist/tools/conversation-compress.d.ts.map +1 -0
- package/dist/tools/conversation-compress.js +78 -0
- package/dist/tools/conversation-memory.d.ts +75 -0
- package/dist/tools/conversation-memory.d.ts.map +1 -0
- package/dist/tools/conversation-memory.js +289 -0
- package/dist/tools/deduplicate-errors.d.ts +30 -0
- package/dist/tools/deduplicate-errors.d.ts.map +1 -0
- package/dist/tools/deduplicate-errors.js +72 -0
- package/dist/tools/detect-retry-loop.d.ts +40 -0
- package/dist/tools/detect-retry-loop.d.ts.map +1 -0
- package/dist/tools/detect-retry-loop.js +212 -0
- package/dist/tools/diff-compress.d.ts +40 -0
- package/dist/tools/diff-compress.d.ts.map +1 -0
- package/dist/tools/diff-compress.js +94 -0
- package/dist/tools/discover-tools.d.ts +11 -0
- package/dist/tools/discover-tools.d.ts.map +1 -0
- package/dist/tools/discover-tools.js +163 -0
- package/dist/tools/dynamic-loader.d.ts +131 -0
- package/dist/tools/dynamic-loader.d.ts.map +1 -0
- package/dist/tools/dynamic-loader.js +378 -0
- package/dist/tools/dynamic-loader.test.d.ts +10 -0
- package/dist/tools/dynamic-loader.test.d.ts.map +1 -0
- package/dist/tools/dynamic-loader.test.js +164 -0
- package/dist/tools/lazy-mcp.d.ts +31 -0
- package/dist/tools/lazy-mcp.d.ts.map +1 -0
- package/dist/tools/lazy-mcp.js +151 -0
- package/dist/tools/lazy-mcp.test.d.ts +10 -0
- package/dist/tools/lazy-mcp.test.d.ts.map +1 -0
- package/dist/tools/lazy-mcp.test.js +172 -0
- package/dist/tools/multifile-compress.d.ts +36 -0
- package/dist/tools/multifile-compress.d.ts.map +1 -0
- package/dist/tools/multifile-compress.js +223 -0
- package/dist/tools/optimization-tips.d.ts +18 -0
- package/dist/tools/optimization-tips.d.ts.map +1 -0
- package/dist/tools/optimization-tips.js +133 -0
- package/dist/tools/registry.d.ts +70 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +169 -0
- package/dist/tools/semantic-compress.d.ts +39 -0
- package/dist/tools/semantic-compress.d.ts.map +1 -0
- package/dist/tools/semantic-compress.js +113 -0
- package/dist/tools/semantic-compress.test.d.ts +5 -0
- package/dist/tools/semantic-compress.test.d.ts.map +1 -0
- package/dist/tools/semantic-compress.test.js +182 -0
- package/dist/tools/session-stats.d.ts +34 -0
- package/dist/tools/session-stats.d.ts.map +1 -0
- package/dist/tools/session-stats.js +194 -0
- package/dist/tools/set-output-config.d.ts +38 -0
- package/dist/tools/set-output-config.d.ts.map +1 -0
- package/dist/tools/set-output-config.js +122 -0
- package/dist/tools/smart-cache-tool.d.ts +38 -0
- package/dist/tools/smart-cache-tool.d.ts.map +1 -0
- package/dist/tools/smart-cache-tool.js +224 -0
- package/dist/tools/smart-file-read.d.ts +52 -0
- package/dist/tools/smart-file-read.d.ts.map +1 -0
- package/dist/tools/smart-file-read.js +481 -0
- package/dist/tools/smart-pipeline.d.ts +40 -0
- package/dist/tools/smart-pipeline.d.ts.map +1 -0
- package/dist/tools/smart-pipeline.js +295 -0
- package/dist/tools/summarize-logs.d.ts +36 -0
- package/dist/tools/summarize-logs.d.ts.map +1 -0
- package/dist/tools/summarize-logs.js +184 -0
- package/dist/tools/token-budget.test.d.ts +11 -0
- package/dist/tools/token-budget.test.d.ts.map +1 -0
- package/dist/tools/token-budget.test.js +275 -0
- package/dist/utils/bm25.d.ts +86 -0
- package/dist/utils/bm25.d.ts.map +1 -0
- package/dist/utils/bm25.js +153 -0
- package/dist/utils/bm25.test.d.ts +5 -0
- package/dist/utils/bm25.test.d.ts.map +1 -0
- package/dist/utils/bm25.test.js +156 -0
- package/dist/utils/command-normalizer.d.ts +39 -0
- package/dist/utils/command-normalizer.d.ts.map +1 -0
- package/dist/utils/command-normalizer.js +90 -0
- package/dist/utils/content-detector.d.ts +27 -0
- package/dist/utils/content-detector.d.ts.map +1 -0
- package/dist/utils/content-detector.js +127 -0
- package/dist/utils/embeddings.d.ts +54 -0
- package/dist/utils/embeddings.d.ts.map +1 -0
- package/dist/utils/embeddings.js +97 -0
- package/dist/utils/embeddings.test.d.ts +8 -0
- package/dist/utils/embeddings.test.d.ts.map +1 -0
- package/dist/utils/embeddings.test.js +96 -0
- package/dist/utils/error-normalizer.d.ts +39 -0
- package/dist/utils/error-normalizer.d.ts.map +1 -0
- package/dist/utils/error-normalizer.js +233 -0
- package/dist/utils/hybrid-search.d.ts +79 -0
- package/dist/utils/hybrid-search.d.ts.map +1 -0
- package/dist/utils/hybrid-search.js +146 -0
- package/dist/utils/hybrid-search.test.d.ts +5 -0
- package/dist/utils/hybrid-search.test.d.ts.map +1 -0
- package/dist/utils/hybrid-search.test.js +172 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/language-detector.d.ts +27 -0
- package/dist/utils/language-detector.d.ts.map +1 -0
- package/dist/utils/language-detector.js +94 -0
- package/dist/utils/log-parser.d.ts +46 -0
- package/dist/utils/log-parser.d.ts.map +1 -0
- package/dist/utils/log-parser.js +287 -0
- package/dist/utils/output-estimator.d.ts +54 -0
- package/dist/utils/output-estimator.d.ts.map +1 -0
- package/dist/utils/output-estimator.js +119 -0
- package/dist/utils/output-estimator.test.d.ts +5 -0
- package/dist/utils/output-estimator.test.d.ts.map +1 -0
- package/dist/utils/output-estimator.test.js +115 -0
- package/dist/utils/output-similarity.d.ts +48 -0
- package/dist/utils/output-similarity.d.ts.map +1 -0
- package/dist/utils/output-similarity.js +140 -0
- package/dist/utils/project-detector.d.ts +16 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +119 -0
- package/dist/utils/segment-scorer.d.ts +99 -0
- package/dist/utils/segment-scorer.d.ts.map +1 -0
- package/dist/utils/segment-scorer.js +148 -0
- package/dist/utils/signature-grouper.d.ts +58 -0
- package/dist/utils/signature-grouper.d.ts.map +1 -0
- package/dist/utils/signature-grouper.js +185 -0
- package/dist/utils/tfidf.d.ts +45 -0
- package/dist/utils/tfidf.d.ts.map +1 -0
- package/dist/utils/tfidf.js +204 -0
- package/dist/utils/tfidf.test.d.ts +5 -0
- package/dist/utils/tfidf.test.d.ts.map +1 -0
- package/dist/utils/tfidf.test.js +115 -0
- package/dist/utils/token-counter.d.ts +35 -0
- package/dist/utils/token-counter.d.ts.map +1 -0
- package/dist/utils/token-counter.js +83 -0
- package/dist/utils/toon-serializer.d.ts +120 -0
- package/dist/utils/toon-serializer.d.ts.map +1 -0
- package/dist/utils/toon-serializer.js +472 -0
- package/dist/utils/toon-serializer.test.d.ts +7 -0
- package/dist/utils/toon-serializer.test.d.ts.map +1 -0
- package/dist/utils/toon-serializer.test.js +290 -0
- package/package.json +63 -0
- package/scripts/install.ps1 +133 -0
- package/scripts/install.sh +183 -0
- package/scripts/pre-commit-hook.sh +86 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Code/AST Functions
|
|
3
|
+
*
|
|
4
|
+
* Wraps AST parsing functionality for sandbox use.
|
|
5
|
+
*/
|
|
6
|
+
import { parseFile } from "../../ast/index.js";
|
|
7
|
+
/**
|
|
8
|
+
* Convert AST element to SDK element
|
|
9
|
+
*/
|
|
10
|
+
function toCodeElement(el) {
|
|
11
|
+
return {
|
|
12
|
+
type: el.type,
|
|
13
|
+
name: el.name,
|
|
14
|
+
startLine: el.startLine,
|
|
15
|
+
endLine: el.endLine,
|
|
16
|
+
signature: el.signature,
|
|
17
|
+
documentation: el.documentation,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse code content to structure
|
|
22
|
+
*/
|
|
23
|
+
export function codeParse(content, language) {
|
|
24
|
+
const parsed = parseFile(content, language);
|
|
25
|
+
return {
|
|
26
|
+
language,
|
|
27
|
+
functions: parsed.functions.map(toCodeElement),
|
|
28
|
+
classes: parsed.classes.map(toCodeElement),
|
|
29
|
+
interfaces: parsed.interfaces?.map(toCodeElement) || [],
|
|
30
|
+
types: parsed.types?.map(toCodeElement) || [],
|
|
31
|
+
variables: parsed.variables?.map(toCodeElement) || [],
|
|
32
|
+
imports: parsed.imports?.map(toCodeElement) || [],
|
|
33
|
+
exports: parsed.exports?.map(toCodeElement) || [],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Extract a specific element from code
|
|
38
|
+
*/
|
|
39
|
+
export function codeExtract(content, language, target) {
|
|
40
|
+
const lines = content.split("\n");
|
|
41
|
+
const parsed = parseFile(content, language);
|
|
42
|
+
// Find matching element
|
|
43
|
+
const allElements = [
|
|
44
|
+
...parsed.functions,
|
|
45
|
+
...parsed.classes,
|
|
46
|
+
...(parsed.interfaces || []),
|
|
47
|
+
...(parsed.types || []),
|
|
48
|
+
...(parsed.variables || []),
|
|
49
|
+
];
|
|
50
|
+
const element = allElements.find((el) => el.type === target.type && el.name === target.name);
|
|
51
|
+
if (!element) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
// Extract lines
|
|
55
|
+
const start = element.startLine - 1; // 0-indexed
|
|
56
|
+
const end = element.endLine || element.startLine;
|
|
57
|
+
return lines.slice(start, end).join("\n");
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get code skeleton (signatures only)
|
|
61
|
+
*/
|
|
62
|
+
export function codeSkeleton(content, language) {
|
|
63
|
+
const parsed = parseFile(content, language);
|
|
64
|
+
const lines = [];
|
|
65
|
+
// Imports (first 5)
|
|
66
|
+
if (parsed.imports && parsed.imports.length > 0) {
|
|
67
|
+
lines.push("// Imports:");
|
|
68
|
+
for (const imp of parsed.imports.slice(0, 5)) {
|
|
69
|
+
lines.push(`// ${imp.name}`);
|
|
70
|
+
}
|
|
71
|
+
if (parsed.imports.length > 5) {
|
|
72
|
+
lines.push(`// ... +${parsed.imports.length - 5} more`);
|
|
73
|
+
}
|
|
74
|
+
lines.push("");
|
|
75
|
+
}
|
|
76
|
+
// Classes
|
|
77
|
+
for (const cls of parsed.classes) {
|
|
78
|
+
const sig = cls.signature || `class ${cls.name}`;
|
|
79
|
+
lines.push(sig);
|
|
80
|
+
lines.push("");
|
|
81
|
+
}
|
|
82
|
+
// Interfaces
|
|
83
|
+
if (parsed.interfaces) {
|
|
84
|
+
for (const iface of parsed.interfaces) {
|
|
85
|
+
const sig = iface.signature || `interface ${iface.name}`;
|
|
86
|
+
lines.push(sig);
|
|
87
|
+
lines.push("");
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Types
|
|
91
|
+
if (parsed.types) {
|
|
92
|
+
for (const type of parsed.types) {
|
|
93
|
+
const sig = type.signature || `type ${type.name}`;
|
|
94
|
+
lines.push(sig);
|
|
95
|
+
lines.push("");
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Functions
|
|
99
|
+
for (const fn of parsed.functions) {
|
|
100
|
+
const sig = fn.signature || `function ${fn.name}()`;
|
|
101
|
+
lines.push(sig);
|
|
102
|
+
}
|
|
103
|
+
return lines.join("\n");
|
|
104
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Compress Functions
|
|
3
|
+
*
|
|
4
|
+
* Wraps compression functionality for sandbox use.
|
|
5
|
+
*/
|
|
6
|
+
import type { CompressResult, LogSummary } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Auto-detect content type and apply optimal compression
|
|
9
|
+
*/
|
|
10
|
+
export declare function compressAuto(content: string, hint?: string): CompressResult;
|
|
11
|
+
/**
|
|
12
|
+
* Summarize log output
|
|
13
|
+
*/
|
|
14
|
+
export declare function compressLogs(logs: string): LogSummary;
|
|
15
|
+
/**
|
|
16
|
+
* Compress git diff output
|
|
17
|
+
*/
|
|
18
|
+
export declare function compressDiff(diff: string): CompressResult;
|
|
19
|
+
/**
|
|
20
|
+
* TF-IDF based semantic compression
|
|
21
|
+
*/
|
|
22
|
+
export declare function compressSemantic(content: string, ratio?: number): CompressResult;
|
|
23
|
+
//# sourceMappingURL=compress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../../src/sandbox/sdk/compress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9D;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAmB3E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAYrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA2CzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,cAAc,CAiBrF"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Compress Functions
|
|
3
|
+
*
|
|
4
|
+
* Wraps compression functionality for sandbox use.
|
|
5
|
+
*/
|
|
6
|
+
import { compressContent, analyzeContent, semanticCompressor } from "../../compressors/index.js";
|
|
7
|
+
import { getSummarizer } from "../../summarizers/index.js";
|
|
8
|
+
import { countTokens } from "../../utils/token-counter.js";
|
|
9
|
+
/**
|
|
10
|
+
* Auto-detect content type and apply optimal compression
|
|
11
|
+
*/
|
|
12
|
+
export function compressAuto(content, hint) {
|
|
13
|
+
const analysis = analyzeContent(content);
|
|
14
|
+
const contentType = hint || analysis.detectedType;
|
|
15
|
+
const result = compressContent(content, {
|
|
16
|
+
contentType: contentType,
|
|
17
|
+
});
|
|
18
|
+
const originalTokens = countTokens(content);
|
|
19
|
+
const compressedTokens = countTokens(result.compressed);
|
|
20
|
+
return {
|
|
21
|
+
compressed: result.compressed,
|
|
22
|
+
stats: {
|
|
23
|
+
original: originalTokens,
|
|
24
|
+
compressed: compressedTokens,
|
|
25
|
+
reductionPercent: Math.round((1 - compressedTokens / originalTokens) * 100),
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Summarize log output
|
|
31
|
+
*/
|
|
32
|
+
export function compressLogs(logs) {
|
|
33
|
+
const summarizer = getSummarizer(logs);
|
|
34
|
+
const result = summarizer.summarize(logs, { detail: "normal" });
|
|
35
|
+
return {
|
|
36
|
+
summary: result.overview,
|
|
37
|
+
stats: {
|
|
38
|
+
totalLines: logs.split("\n").length,
|
|
39
|
+
errorCount: result.errors?.length || 0,
|
|
40
|
+
warningCount: result.warnings?.length || 0,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Compress git diff output
|
|
46
|
+
*/
|
|
47
|
+
export function compressDiff(diff) {
|
|
48
|
+
// Extract key changes from diff
|
|
49
|
+
const lines = diff.split("\n");
|
|
50
|
+
const importantLines = [];
|
|
51
|
+
let addedCount = 0;
|
|
52
|
+
let removedCount = 0;
|
|
53
|
+
for (const line of lines) {
|
|
54
|
+
if (line.startsWith("diff --git")) {
|
|
55
|
+
const match = line.match(/diff --git a\/(.*) b\/(.*)/);
|
|
56
|
+
if (match) {
|
|
57
|
+
importantLines.push(`\n## ${match[2]}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (line.startsWith("@@")) {
|
|
61
|
+
importantLines.push(line);
|
|
62
|
+
}
|
|
63
|
+
else if (line.startsWith("+") && !line.startsWith("+++")) {
|
|
64
|
+
addedCount++;
|
|
65
|
+
if (line.trim().length > 1) {
|
|
66
|
+
importantLines.push(line);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else if (line.startsWith("-") && !line.startsWith("---")) {
|
|
70
|
+
removedCount++;
|
|
71
|
+
if (line.trim().length > 1) {
|
|
72
|
+
importantLines.push(line);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const header = `[diff] +${addedCount}/-${removedCount} lines`;
|
|
77
|
+
const compressed = [header, ...importantLines].join("\n");
|
|
78
|
+
const originalTokens = countTokens(diff);
|
|
79
|
+
const compressedTokens = countTokens(compressed);
|
|
80
|
+
return {
|
|
81
|
+
compressed,
|
|
82
|
+
stats: {
|
|
83
|
+
original: originalTokens,
|
|
84
|
+
compressed: compressedTokens,
|
|
85
|
+
reductionPercent: Math.round((1 - compressedTokens / originalTokens) * 100),
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* TF-IDF based semantic compression
|
|
91
|
+
*/
|
|
92
|
+
export function compressSemantic(content, ratio = 0.5) {
|
|
93
|
+
const result = semanticCompressor.compress(content, {
|
|
94
|
+
targetRatio: ratio,
|
|
95
|
+
detail: "normal",
|
|
96
|
+
});
|
|
97
|
+
const originalTokens = countTokens(content);
|
|
98
|
+
const compressedTokens = countTokens(result.compressed);
|
|
99
|
+
return {
|
|
100
|
+
compressed: result.compressed,
|
|
101
|
+
stats: {
|
|
102
|
+
original: originalTokens,
|
|
103
|
+
compressed: compressedTokens,
|
|
104
|
+
reductionPercent: Math.round((1 - compressedTokens / originalTokens) * 100),
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Conversation Functions
|
|
3
|
+
*
|
|
4
|
+
* Conversation memory management for sandbox use.
|
|
5
|
+
* Provides compression, decision extraction, and context restoration.
|
|
6
|
+
*/
|
|
7
|
+
import type { HostCallbacks } from "../types.js";
|
|
8
|
+
import { type ConversationMessage, type ConversationCompressResult, type ConversationMemory, type ConversationMemoryResult, type MemoryRestoreOptions, type Decision, type CodeReference } from "../../compressors/conversation.js";
|
|
9
|
+
/**
|
|
10
|
+
* SDK conversation compress options (simplified)
|
|
11
|
+
*/
|
|
12
|
+
export interface SdkConversationOptions {
|
|
13
|
+
/** Compression strategy */
|
|
14
|
+
strategy?: "rolling-summary" | "key-extraction" | "hybrid";
|
|
15
|
+
/** Maximum tokens for output */
|
|
16
|
+
maxTokens?: number;
|
|
17
|
+
/** Preserve system messages */
|
|
18
|
+
preserveSystem?: boolean;
|
|
19
|
+
/** Number of recent messages to preserve */
|
|
20
|
+
preserveLastN?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create conversation API with memory state
|
|
24
|
+
*/
|
|
25
|
+
export declare function createConversationAPI(workingDir: string, callbacks: HostCallbacks): {
|
|
26
|
+
/**
|
|
27
|
+
* Compress conversation messages
|
|
28
|
+
*
|
|
29
|
+
* @param messages - Array of conversation messages
|
|
30
|
+
* @param options - Compression options
|
|
31
|
+
* @returns Compressed messages and statistics
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* ctx.conversation.compress(messages, { strategy: "hybrid" })
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
compress(messages: ConversationMessage[], options?: SdkConversationOptions): ConversationCompressResult;
|
|
39
|
+
/**
|
|
40
|
+
* Compress conversation and update memory state
|
|
41
|
+
*
|
|
42
|
+
* @param messages - Array of conversation messages
|
|
43
|
+
* @param options - Compression options
|
|
44
|
+
* @returns Memory result with context and statistics
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* ctx.conversation.createMemory(messages)
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
createMemory(messages: ConversationMessage[], options?: SdkConversationOptions): ConversationMemoryResult;
|
|
52
|
+
/**
|
|
53
|
+
* Extract key decisions from messages
|
|
54
|
+
*
|
|
55
|
+
* @param messages - Array of conversation messages
|
|
56
|
+
* @returns Array of extracted decisions
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* ctx.conversation.extractDecisions(messages)
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
extractDecisions(messages: ConversationMessage[]): Decision[];
|
|
64
|
+
/**
|
|
65
|
+
* Extract code references from messages
|
|
66
|
+
*
|
|
67
|
+
* @param messages - Array of conversation messages
|
|
68
|
+
* @returns Array of code references with actions
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* ctx.conversation.extractCodeRefs(messages)
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
extractCodeRefs(messages: ConversationMessage[]): CodeReference[];
|
|
76
|
+
/**
|
|
77
|
+
* Restore context from stored memory
|
|
78
|
+
*
|
|
79
|
+
* @param options - Restoration options
|
|
80
|
+
* @returns Restored context string
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* ctx.conversation.restore({ includeSummary: true, recentMessages: 3 })
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
restore(options?: MemoryRestoreOptions): string;
|
|
88
|
+
/**
|
|
89
|
+
* Get current memory state
|
|
90
|
+
*
|
|
91
|
+
* @returns Current memory or null if not set
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const memory = ctx.conversation.getMemory()
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
getMemory(): ConversationMemory | null;
|
|
99
|
+
/**
|
|
100
|
+
* Set memory state (for restoring from external source)
|
|
101
|
+
*
|
|
102
|
+
* @param memory - Memory state to set
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* ctx.conversation.setMemory(savedMemory)
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
setMemory(memory: ConversationMemory): void;
|
|
110
|
+
/**
|
|
111
|
+
* Clear stored memory
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* ctx.conversation.clearMemory()
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
clearMemory(): void;
|
|
119
|
+
/**
|
|
120
|
+
* Check if memory is stored
|
|
121
|
+
*
|
|
122
|
+
* @returns True if memory exists
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* if (ctx.conversation.hasMemory()) { ... }
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
hasMemory(): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Get summary of current memory state
|
|
132
|
+
*
|
|
133
|
+
* @returns Summary object or null
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* const summary = ctx.conversation.getSummary()
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
getSummary(): {
|
|
141
|
+
summary: string;
|
|
142
|
+
decisionsCount: number;
|
|
143
|
+
codeRefsCount: number;
|
|
144
|
+
messagesCount: number;
|
|
145
|
+
lastUpdated: number;
|
|
146
|
+
} | null;
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/sandbox/sdk/conversation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAML,KAAK,mBAAmB,EAExB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,aAAa,EACnB,MAAM,mCAAmC,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,QAAQ,CAAC;IAC3D,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,aAAa;IAMtB;;;;;;;;;;;OAWG;uBAES,mBAAmB,EAAE,YACrB,sBAAsB,GAC/B,0BAA0B;IAW7B;;;;;;;;;;;OAWG;2BAES,mBAAmB,EAAE,YACrB,sBAAsB,GAC/B,wBAAwB;IAgB3B;;;;;;;;;;OAUG;+BACwB,mBAAmB,EAAE,GAAG,QAAQ,EAAE;IAI7D;;;;;;;;;;OAUG;8BACuB,mBAAmB,EAAE,GAAG,aAAa,EAAE;IAIjE;;;;;;;;;;OAUG;sBACe,oBAAoB,GAAG,MAAM;IAQ/C;;;;;;;;;OASG;iBACU,kBAAkB,GAAG,IAAI;IAItC;;;;;;;;;OASG;sBACe,kBAAkB,GAAG,IAAI;IAI3C;;;;;;;OAOG;mBACY,IAAI;IAInB;;;;;;;;;OASG;iBACU,OAAO;IAIpB;;;;;;;;;OASG;kBACW;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI;EAYX"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Conversation Functions
|
|
3
|
+
*
|
|
4
|
+
* Conversation memory management for sandbox use.
|
|
5
|
+
* Provides compression, decision extraction, and context restoration.
|
|
6
|
+
*/
|
|
7
|
+
import { compressConversation, compressConversationWithMemory, extractDecisions, extractCodeReferences, restoreContext, } from "../../compressors/conversation.js";
|
|
8
|
+
/**
|
|
9
|
+
* Create conversation API with memory state
|
|
10
|
+
*/
|
|
11
|
+
export function createConversationAPI(workingDir, callbacks) {
|
|
12
|
+
// In-memory state for conversation tracking
|
|
13
|
+
let currentMemory = null;
|
|
14
|
+
return {
|
|
15
|
+
/**
|
|
16
|
+
* Compress conversation messages
|
|
17
|
+
*
|
|
18
|
+
* @param messages - Array of conversation messages
|
|
19
|
+
* @param options - Compression options
|
|
20
|
+
* @returns Compressed messages and statistics
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* ctx.conversation.compress(messages, { strategy: "hybrid" })
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
compress(messages, options) {
|
|
28
|
+
const opts = {
|
|
29
|
+
strategy: options?.strategy || "hybrid",
|
|
30
|
+
maxTokens: options?.maxTokens || 10000,
|
|
31
|
+
preserveSystem: options?.preserveSystem ?? true,
|
|
32
|
+
preserveLastN: options?.preserveLastN ?? 2,
|
|
33
|
+
};
|
|
34
|
+
return compressConversation(messages, opts);
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* Compress conversation and update memory state
|
|
38
|
+
*
|
|
39
|
+
* @param messages - Array of conversation messages
|
|
40
|
+
* @param options - Compression options
|
|
41
|
+
* @returns Memory result with context and statistics
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* ctx.conversation.createMemory(messages)
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
createMemory(messages, options) {
|
|
49
|
+
const opts = {
|
|
50
|
+
strategy: options?.strategy || "hybrid",
|
|
51
|
+
maxTokens: options?.maxTokens || 10000,
|
|
52
|
+
preserveSystem: options?.preserveSystem ?? true,
|
|
53
|
+
preserveLastN: options?.preserveLastN ?? 2,
|
|
54
|
+
};
|
|
55
|
+
const result = compressConversationWithMemory(messages, opts);
|
|
56
|
+
// Store memory for later restoration
|
|
57
|
+
currentMemory = result.memory;
|
|
58
|
+
return result;
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* Extract key decisions from messages
|
|
62
|
+
*
|
|
63
|
+
* @param messages - Array of conversation messages
|
|
64
|
+
* @returns Array of extracted decisions
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* ctx.conversation.extractDecisions(messages)
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
extractDecisions(messages) {
|
|
72
|
+
return extractDecisions(messages);
|
|
73
|
+
},
|
|
74
|
+
/**
|
|
75
|
+
* Extract code references from messages
|
|
76
|
+
*
|
|
77
|
+
* @param messages - Array of conversation messages
|
|
78
|
+
* @returns Array of code references with actions
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* ctx.conversation.extractCodeRefs(messages)
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
extractCodeRefs(messages) {
|
|
86
|
+
return extractCodeReferences(messages);
|
|
87
|
+
},
|
|
88
|
+
/**
|
|
89
|
+
* Restore context from stored memory
|
|
90
|
+
*
|
|
91
|
+
* @param options - Restoration options
|
|
92
|
+
* @returns Restored context string
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* ctx.conversation.restore({ includeSummary: true, recentMessages: 3 })
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
restore(options) {
|
|
100
|
+
if (!currentMemory) {
|
|
101
|
+
return "[No memory stored. Call createMemory() first.]";
|
|
102
|
+
}
|
|
103
|
+
return restoreContext(currentMemory, options);
|
|
104
|
+
},
|
|
105
|
+
/**
|
|
106
|
+
* Get current memory state
|
|
107
|
+
*
|
|
108
|
+
* @returns Current memory or null if not set
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* const memory = ctx.conversation.getMemory()
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
getMemory() {
|
|
116
|
+
return currentMemory;
|
|
117
|
+
},
|
|
118
|
+
/**
|
|
119
|
+
* Set memory state (for restoring from external source)
|
|
120
|
+
*
|
|
121
|
+
* @param memory - Memory state to set
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* ctx.conversation.setMemory(savedMemory)
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
setMemory(memory) {
|
|
129
|
+
currentMemory = memory;
|
|
130
|
+
},
|
|
131
|
+
/**
|
|
132
|
+
* Clear stored memory
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* ctx.conversation.clearMemory()
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
clearMemory() {
|
|
140
|
+
currentMemory = null;
|
|
141
|
+
},
|
|
142
|
+
/**
|
|
143
|
+
* Check if memory is stored
|
|
144
|
+
*
|
|
145
|
+
* @returns True if memory exists
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* if (ctx.conversation.hasMemory()) { ... }
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
hasMemory() {
|
|
153
|
+
return currentMemory !== null;
|
|
154
|
+
},
|
|
155
|
+
/**
|
|
156
|
+
* Get summary of current memory state
|
|
157
|
+
*
|
|
158
|
+
* @returns Summary object or null
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* const summary = ctx.conversation.getSummary()
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
getSummary() {
|
|
166
|
+
if (!currentMemory)
|
|
167
|
+
return null;
|
|
168
|
+
return {
|
|
169
|
+
summary: currentMemory.summary,
|
|
170
|
+
decisionsCount: currentMemory.decisions.length,
|
|
171
|
+
codeRefsCount: currentMemory.codeReferences.length,
|
|
172
|
+
messagesCount: currentMemory.compressedHistory.length,
|
|
173
|
+
lastUpdated: currentMemory.lastUpdated,
|
|
174
|
+
};
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Files Functions
|
|
3
|
+
*
|
|
4
|
+
* Safe file operations for sandbox use.
|
|
5
|
+
* Uses host callbacks for actual file I/O.
|
|
6
|
+
*/
|
|
7
|
+
import type { HostCallbacks, FileStructure } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Create files API with host callbacks
|
|
10
|
+
*/
|
|
11
|
+
export declare function createFilesAPI(callbacks: HostCallbacks): {
|
|
12
|
+
/**
|
|
13
|
+
* Read file content
|
|
14
|
+
*/
|
|
15
|
+
read(path: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Check if file exists
|
|
18
|
+
*/
|
|
19
|
+
exists(path: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Find files matching glob pattern
|
|
22
|
+
*/
|
|
23
|
+
glob(pattern: string): string[];
|
|
24
|
+
/**
|
|
25
|
+
* Read file and parse to structure
|
|
26
|
+
*/
|
|
27
|
+
readStructure(path: string): FileStructure;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/sandbox/sdk/files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIhE;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa;IAEnD;;OAEG;eACQ,MAAM,GAAG,MAAM;IAI1B;;OAEG;iBACU,MAAM,GAAG,OAAO;IAI7B;;OAEG;kBACW,MAAM,GAAG,MAAM,EAAE;IAI/B;;OAEG;wBACiB,MAAM,GAAG,aAAa;EAM7C"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Files Functions
|
|
3
|
+
*
|
|
4
|
+
* Safe file operations for sandbox use.
|
|
5
|
+
* Uses host callbacks for actual file I/O.
|
|
6
|
+
*/
|
|
7
|
+
import { codeParse } from "./code.js";
|
|
8
|
+
import { detectLanguageFromPath } from "../../utils/language-detector.js";
|
|
9
|
+
/**
|
|
10
|
+
* Create files API with host callbacks
|
|
11
|
+
*/
|
|
12
|
+
export function createFilesAPI(callbacks) {
|
|
13
|
+
return {
|
|
14
|
+
/**
|
|
15
|
+
* Read file content
|
|
16
|
+
*/
|
|
17
|
+
read(path) {
|
|
18
|
+
return callbacks.readFile(path);
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* Check if file exists
|
|
22
|
+
*/
|
|
23
|
+
exists(path) {
|
|
24
|
+
return callbacks.fileExists(path);
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Find files matching glob pattern
|
|
28
|
+
*/
|
|
29
|
+
glob(pattern) {
|
|
30
|
+
return callbacks.glob(pattern);
|
|
31
|
+
},
|
|
32
|
+
/**
|
|
33
|
+
* Read file and parse to structure
|
|
34
|
+
*/
|
|
35
|
+
readStructure(path) {
|
|
36
|
+
const content = callbacks.readFile(path);
|
|
37
|
+
const language = detectLanguageFromPath(path);
|
|
38
|
+
return codeParse(content, language);
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Git Functions
|
|
3
|
+
*
|
|
4
|
+
* Git operations for sandbox use.
|
|
5
|
+
* Uses child_process.execSync for git commands.
|
|
6
|
+
*/
|
|
7
|
+
import type { GitDiff, GitCommit, GitBlame, GitStatus, GitBranch } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Create Git API for sandbox
|
|
10
|
+
*/
|
|
11
|
+
export declare function createGitAPI(workingDir: string): {
|
|
12
|
+
/**
|
|
13
|
+
* Get git diff
|
|
14
|
+
* @param ref - Optional ref to diff against (default: HEAD)
|
|
15
|
+
*/
|
|
16
|
+
diff(ref?: string): GitDiff;
|
|
17
|
+
/**
|
|
18
|
+
* Get git log
|
|
19
|
+
* @param limit - Number of commits to return (default: 10)
|
|
20
|
+
*/
|
|
21
|
+
log(limit?: number): GitCommit[];
|
|
22
|
+
/**
|
|
23
|
+
* Get git blame for a file
|
|
24
|
+
* @param file - File path to blame
|
|
25
|
+
* @param line - Optional specific line number
|
|
26
|
+
*/
|
|
27
|
+
blame(file: string, line?: number): GitBlame;
|
|
28
|
+
/**
|
|
29
|
+
* Get git status
|
|
30
|
+
*/
|
|
31
|
+
status(): GitStatus;
|
|
32
|
+
/**
|
|
33
|
+
* Get git branch info
|
|
34
|
+
*/
|
|
35
|
+
branch(): GitBranch;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/sandbox/sdk/git.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,OAAO,EAEP,SAAS,EACT,QAAQ,EAER,SAAS,EACT,SAAS,EACV,MAAM,aAAa,CAAC;AAmQrB;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM;IAE3C;;;OAGG;eACQ,MAAM,GAAG,OAAO;IAqB3B;;;OAGG;gBACS,MAAM,GAAG,SAAS,EAAE;IAYhC;;;;OAIG;gBACS,MAAM,SAAS,MAAM,GAAG,QAAQ;IAmB5C;;OAEG;cACO,SAAS;IAUnB;;OAEG;cACO,SAAS;EAmBtB"}
|