@agntk/core 0.3.5 → 1.1.0
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/README.md +39 -38
- package/dist/advanced/index.d.ts +13 -22
- package/dist/advanced/index.d.ts.map +1 -1
- package/dist/advanced/index.js +10 -55
- package/dist/advanced/index.js.map +1 -1
- package/dist/agent-v2.d.ts +48 -0
- package/dist/agent-v2.d.ts.map +1 -0
- package/dist/agent-v2.js +365 -0
- package/dist/agent-v2.js.map +1 -0
- package/dist/agent.d.ts +0 -40
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +103 -99
- package/dist/agent.js.map +1 -1
- package/dist/config/defaults.d.ts +1 -5
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -11
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/index.d.ts +5 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +7 -7
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader.d.ts +0 -40
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +3 -80
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +117 -788
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +52 -63
- package/dist/config/schema.js.map +1 -1
- package/dist/constants.d.ts +0 -11
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +0 -17
- package/dist/constants.js.map +1 -1
- package/dist/evals/assertions.d.ts +0 -35
- package/dist/evals/assertions.d.ts.map +1 -1
- package/dist/evals/assertions.js +0 -51
- package/dist/evals/assertions.js.map +1 -1
- package/dist/evals/index.d.ts +0 -5
- package/dist/evals/index.d.ts.map +1 -1
- package/dist/evals/index.js +0 -5
- package/dist/evals/index.js.map +1 -1
- package/dist/evals/runner.d.ts +0 -27
- package/dist/evals/runner.d.ts.map +1 -1
- package/dist/evals/runner.js +3 -45
- package/dist/evals/runner.js.map +1 -1
- package/dist/evals/types.d.ts +0 -14
- package/dist/evals/types.d.ts.map +1 -1
- package/dist/evals/types.js +0 -3
- package/dist/evals/types.js.map +1 -1
- package/dist/guardrails/built-ins.d.ts +0 -28
- package/dist/guardrails/built-ins.d.ts.map +1 -1
- package/dist/guardrails/built-ins.js +21 -47
- package/dist/guardrails/built-ins.js.map +1 -1
- package/dist/guardrails/index.d.ts +1 -4
- package/dist/guardrails/index.d.ts.map +1 -1
- package/dist/guardrails/index.js +1 -4
- package/dist/guardrails/index.js.map +1 -1
- package/dist/guardrails/runner.d.ts +0 -30
- package/dist/guardrails/runner.d.ts.map +1 -1
- package/dist/guardrails/runner.js +1 -46
- package/dist/guardrails/runner.js.map +1 -1
- package/dist/guardrails/types.d.ts +0 -35
- package/dist/guardrails/types.d.ts.map +1 -1
- package/dist/guardrails/types.js +4 -7
- package/dist/guardrails/types.js.map +1 -1
- package/dist/index.d.ts +3 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -27
- package/dist/index.js.map +1 -1
- package/dist/memory/engine.d.ts +130 -0
- package/dist/memory/engine.d.ts.map +1 -0
- package/dist/memory/engine.js +227 -0
- package/dist/memory/engine.js.map +1 -0
- package/dist/memory/loader.d.ts +0 -17
- package/dist/memory/loader.d.ts.map +1 -1
- package/dist/memory/loader.js +5 -27
- package/dist/memory/loader.js.map +1 -1
- package/dist/memory/store.d.ts +8 -16
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +101 -32
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.d.ts +10 -30
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +0 -6
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/vectra-store.d.ts +31 -0
- package/dist/memory/vectra-store.d.ts.map +1 -0
- package/dist/memory/vectra-store.js +122 -0
- package/dist/memory/vectra-store.js.map +1 -0
- package/dist/models.d.ts +9 -32
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +25 -68
- package/dist/models.js.map +1 -1
- package/dist/observability/index.d.ts +0 -3
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +0 -3
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/langfuse.d.ts +0 -38
- package/dist/observability/langfuse.d.ts.map +1 -1
- package/dist/observability/langfuse.js +6 -55
- package/dist/observability/langfuse.js.map +1 -1
- package/dist/observability/types.d.ts +0 -21
- package/dist/observability/types.d.ts.map +1 -1
- package/dist/observability/types.js +0 -3
- package/dist/observability/types.js.map +1 -1
- package/dist/pool/index.d.ts +7 -0
- package/dist/pool/index.d.ts.map +1 -0
- package/dist/pool/index.js +6 -0
- package/dist/pool/index.js.map +1 -0
- package/dist/pool/specialist-pool.d.ts +59 -0
- package/dist/pool/specialist-pool.d.ts.map +1 -0
- package/dist/pool/specialist-pool.js +224 -0
- package/dist/pool/specialist-pool.js.map +1 -0
- package/dist/pool/tools.d.ts +63 -0
- package/dist/pool/tools.d.ts.map +1 -0
- package/dist/pool/tools.js +83 -0
- package/dist/pool/tools.js.map +1 -0
- package/dist/pool/types.d.ts +79 -0
- package/dist/pool/types.d.ts.map +1 -0
- package/dist/pool/types.js +5 -0
- package/dist/pool/types.js.map +1 -0
- package/dist/presets/index.d.ts +5 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +5 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/role-registry.d.ts +41 -0
- package/dist/presets/role-registry.d.ts.map +1 -0
- package/dist/presets/role-registry.js +213 -0
- package/dist/presets/role-registry.js.map +1 -0
- package/dist/presets/roles.d.ts +105 -0
- package/dist/presets/roles.d.ts.map +1 -0
- package/dist/presets/roles.js +207 -0
- package/dist/presets/roles.js.map +1 -0
- package/dist/presets/tool-preset-registry.d.ts +0 -21
- package/dist/presets/tool-preset-registry.d.ts.map +1 -1
- package/dist/presets/tool-preset-registry.js +15 -34
- package/dist/presets/tool-preset-registry.js.map +1 -1
- package/dist/presets/tools.d.ts +44 -42
- package/dist/presets/tools.d.ts.map +1 -1
- package/dist/presets/tools.js +46 -40
- package/dist/presets/tools.js.map +1 -1
- package/dist/prompts/context.d.ts +0 -4
- package/dist/prompts/context.d.ts.map +1 -1
- package/dist/prompts/context.js +21 -33
- package/dist/prompts/context.js.map +1 -1
- package/dist/prompts/template.d.ts +0 -11
- package/dist/prompts/template.d.ts.map +1 -1
- package/dist/prompts/template.js +4 -14
- package/dist/prompts/template.js.map +1 -1
- package/dist/prompts/templates.d.ts +11 -0
- package/dist/prompts/templates.d.ts.map +1 -0
- package/dist/prompts/templates.js +115 -0
- package/dist/prompts/templates.js.map +1 -0
- package/dist/provider-resolver.d.ts +0 -29
- package/dist/provider-resolver.d.ts.map +1 -1
- package/dist/provider-resolver.js +17 -61
- package/dist/provider-resolver.js.map +1 -1
- package/dist/reflection.d.ts +0 -34
- package/dist/reflection.d.ts.map +1 -1
- package/dist/reflection.js +0 -40
- package/dist/reflection.js.map +1 -1
- package/dist/skills/index.d.ts +0 -3
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +0 -3
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/loader.d.ts +0 -69
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +38 -130
- package/dist/skills/loader.js.map +1 -1
- package/dist/skills/types.d.ts +0 -36
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/skills/types.js +0 -4
- package/dist/skills/types.js.map +1 -1
- package/dist/streaming/data-parts.d.ts +163 -0
- package/dist/streaming/data-parts.d.ts.map +1 -0
- package/dist/streaming/data-parts.js +14 -0
- package/dist/streaming/data-parts.js.map +1 -0
- package/dist/streaming/index.d.ts +8 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/streaming/index.js +10 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/streaming/transient.d.ts +136 -0
- package/dist/streaming/transient.d.ts.map +1 -0
- package/dist/streaming/transient.js +201 -0
- package/dist/streaming/transient.js.map +1 -0
- package/dist/system-detect.d.ts +0 -57
- package/dist/system-detect.d.ts.map +1 -1
- package/dist/system-detect.js +9 -114
- package/dist/system-detect.js.map +1 -1
- package/dist/tools/approval.d.ts +0 -47
- package/dist/tools/approval.d.ts.map +1 -1
- package/dist/tools/approval.js +0 -46
- package/dist/tools/approval.js.map +1 -1
- package/dist/tools/ast-grep/cli.d.ts.map +1 -1
- package/dist/tools/ast-grep/cli.js +10 -4
- package/dist/tools/ast-grep/cli.js.map +1 -1
- package/dist/tools/ast-grep/constants.d.ts.map +1 -1
- package/dist/tools/ast-grep/constants.js +7 -14
- package/dist/tools/ast-grep/constants.js.map +1 -1
- package/dist/tools/ast-grep/downloader.d.ts.map +1 -1
- package/dist/tools/ast-grep/downloader.js +1 -4
- package/dist/tools/ast-grep/downloader.js.map +1 -1
- package/dist/tools/ast-grep/index.d.ts +2 -2
- package/dist/tools/ast-grep/index.d.ts.map +1 -1
- package/dist/tools/ast-grep/index.js +1 -1
- package/dist/tools/ast-grep/index.js.map +1 -1
- package/dist/tools/ast-grep/tools.d.ts +4 -4
- package/dist/tools/ast-grep/tools.d.ts.map +1 -1
- package/dist/tools/ast-grep/tools.js +2 -8
- package/dist/tools/ast-grep/tools.js.map +1 -1
- package/dist/tools/browser/index.d.ts +4 -4
- package/dist/tools/browser/index.d.ts.map +1 -1
- package/dist/tools/browser/index.js +2 -3
- package/dist/tools/browser/index.js.map +1 -1
- package/dist/tools/browser/stream.d.ts +0 -32
- package/dist/tools/browser/stream.d.ts.map +1 -1
- package/dist/tools/browser/stream.js +0 -53
- package/dist/tools/browser/stream.js.map +1 -1
- package/dist/tools/browser/tool.d.ts +10 -15
- package/dist/tools/browser/tool.d.ts.map +1 -1
- package/dist/tools/browser/tool.js +2 -26
- package/dist/tools/browser/tool.js.map +1 -1
- package/dist/tools/browser/types.d.ts +31 -156
- package/dist/tools/browser/types.d.ts.map +1 -1
- package/dist/tools/browser/types.js +22 -17
- package/dist/tools/browser/types.js.map +1 -1
- package/dist/tools/deep-reasoning/constants.d.ts +0 -6
- package/dist/tools/deep-reasoning/constants.d.ts.map +1 -1
- package/dist/tools/deep-reasoning/constants.js +0 -6
- package/dist/tools/deep-reasoning/constants.js.map +1 -1
- package/dist/tools/deep-reasoning/engine.d.ts.map +1 -1
- package/dist/tools/deep-reasoning/engine.js +0 -1
- package/dist/tools/deep-reasoning/engine.js.map +1 -1
- package/dist/tools/deep-reasoning/index.d.ts +4 -0
- package/dist/tools/deep-reasoning/index.d.ts.map +1 -1
- package/dist/tools/deep-reasoning/index.js +4 -3
- package/dist/tools/deep-reasoning/index.js.map +1 -1
- package/dist/tools/deep-reasoning/tools.d.ts.map +1 -1
- package/dist/tools/deep-reasoning/tools.js +8 -1
- package/dist/tools/deep-reasoning/tools.js.map +1 -1
- package/dist/tools/deep-reasoning/types.d.ts +5 -30
- package/dist/tools/deep-reasoning/types.d.ts.map +1 -1
- package/dist/tools/deep-reasoning/types.js +10 -1
- package/dist/tools/deep-reasoning/types.js.map +1 -1
- package/dist/tools/factory.d.ts +109 -0
- package/dist/tools/factory.d.ts.map +1 -0
- package/dist/tools/factory.js +166 -0
- package/dist/tools/factory.js.map +1 -0
- package/dist/tools/file/index.d.ts +3 -5
- package/dist/tools/file/index.d.ts.map +1 -1
- package/dist/tools/file/index.js +2 -4
- package/dist/tools/file/index.js.map +1 -1
- package/dist/tools/file/tools.d.ts +8 -11
- package/dist/tools/file/tools.d.ts.map +1 -1
- package/dist/tools/file/tools.js +45 -59
- package/dist/tools/file/tools.js.map +1 -1
- package/dist/tools/glob/cli.d.ts.map +1 -1
- package/dist/tools/glob/cli.js +8 -6
- package/dist/tools/glob/cli.js.map +1 -1
- package/dist/tools/glob/tools.d.ts.map +1 -1
- package/dist/tools/glob/tools.js +7 -10
- package/dist/tools/glob/tools.js.map +1 -1
- package/dist/tools/grep/cli.d.ts.map +1 -1
- package/dist/tools/grep/cli.js +0 -2
- package/dist/tools/grep/cli.js.map +1 -1
- package/dist/tools/grep/constants.d.ts.map +1 -1
- package/dist/tools/grep/constants.js +3 -5
- package/dist/tools/grep/constants.js.map +1 -1
- package/dist/tools/grep/downloader.d.ts.map +1 -1
- package/dist/tools/grep/downloader.js +3 -3
- package/dist/tools/grep/downloader.js.map +1 -1
- package/dist/tools/grep/tools.d.ts +2 -2
- package/dist/tools/grep/tools.d.ts.map +1 -1
- package/dist/tools/grep/tools.js +8 -14
- package/dist/tools/grep/tools.js.map +1 -1
- package/dist/tools/index.d.ts +10 -11
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +9 -22
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/model-retry.d.ts +0 -40
- package/dist/tools/model-retry.d.ts.map +1 -1
- package/dist/tools/model-retry.js +1 -49
- package/dist/tools/model-retry.js.map +1 -1
- package/dist/tools/plan/constants.d.ts +0 -6
- package/dist/tools/plan/constants.d.ts.map +1 -1
- package/dist/tools/plan/constants.js +9 -6
- package/dist/tools/plan/constants.js.map +1 -1
- package/dist/tools/plan/index.d.ts +1 -1
- package/dist/tools/plan/index.d.ts.map +1 -1
- package/dist/tools/plan/index.js +1 -4
- package/dist/tools/plan/index.js.map +1 -1
- package/dist/tools/plan/tools.d.ts +2 -2
- package/dist/tools/plan/tools.d.ts.map +1 -1
- package/dist/tools/plan/tools.js +10 -11
- package/dist/tools/plan/tools.js.map +1 -1
- package/dist/tools/plan/types.d.ts +22 -32
- package/dist/tools/plan/types.d.ts.map +1 -1
- package/dist/tools/plan/types.js +11 -3
- package/dist/tools/plan/types.js.map +1 -1
- package/dist/tools/progress/index.d.ts +4 -23
- package/dist/tools/progress/index.d.ts.map +1 -1
- package/dist/tools/progress/index.js +19 -34
- package/dist/tools/progress/index.js.map +1 -1
- package/dist/tools/provider.d.ts +97 -0
- package/dist/tools/provider.d.ts.map +1 -0
- package/dist/tools/provider.js +178 -0
- package/dist/tools/provider.js.map +1 -0
- package/dist/tools/search-skills.d.ts +0 -23
- package/dist/tools/search-skills.d.ts.map +1 -1
- package/dist/tools/search-skills.js +3 -32
- package/dist/tools/search-skills.js.map +1 -1
- package/dist/tools/shell/background.d.ts +3 -19
- package/dist/tools/shell/background.d.ts.map +1 -1
- package/dist/tools/shell/background.js +45 -48
- package/dist/tools/shell/background.js.map +1 -1
- package/dist/tools/shell/constants.d.ts +0 -3
- package/dist/tools/shell/constants.d.ts.map +1 -1
- package/dist/tools/shell/constants.js +16 -6
- package/dist/tools/shell/constants.js.map +1 -1
- package/dist/tools/shell/index.d.ts +1 -1
- package/dist/tools/shell/index.d.ts.map +1 -1
- package/dist/tools/shell/index.js +1 -1
- package/dist/tools/shell/index.js.map +1 -1
- package/dist/tools/shell/tools.d.ts +3 -3
- package/dist/tools/shell/tools.d.ts.map +1 -1
- package/dist/tools/shell/tools.js +0 -2
- package/dist/tools/shell/tools.js.map +1 -1
- package/dist/tools/shell/types.d.ts +5 -13
- package/dist/tools/shell/types.d.ts.map +1 -1
- package/dist/tools/shell/types.js +10 -1
- package/dist/tools/shell/types.js.map +1 -1
- package/dist/tools/spawn-agent/check-agent.d.ts +45 -0
- package/dist/tools/spawn-agent/check-agent.d.ts.map +1 -0
- package/dist/tools/spawn-agent/check-agent.js +84 -0
- package/dist/tools/spawn-agent/check-agent.js.map +1 -0
- package/dist/tools/spawn-agent/index.d.ts +52 -53
- package/dist/tools/spawn-agent/index.d.ts.map +1 -1
- package/dist/tools/spawn-agent/index.js +199 -86
- package/dist/tools/spawn-agent/index.js.map +1 -1
- package/dist/tools/spawn-agent/registry.d.ts +36 -0
- package/dist/tools/spawn-agent/registry.d.ts.map +1 -0
- package/dist/tools/spawn-agent/registry.js +88 -0
- package/dist/tools/spawn-agent/registry.js.map +1 -0
- package/dist/tools/utils/errors.d.ts +2 -1
- package/dist/tools/utils/errors.d.ts.map +1 -1
- package/dist/tools/utils/errors.js +2 -1
- package/dist/tools/utils/errors.js.map +1 -1
- package/dist/tools/utils/shell.d.ts +0 -11
- package/dist/tools/utils/shell.d.ts.map +1 -1
- package/dist/tools/utils/shell.js +10 -78
- package/dist/tools/utils/shell.js.map +1 -1
- package/dist/tools/utils/tool-result.d.ts +0 -3
- package/dist/tools/utils/tool-result.d.ts.map +1 -1
- package/dist/tools/utils/tool-result.js +4 -4
- package/dist/tools/utils/tool-result.js.map +1 -1
- package/dist/tools/web-search/index.d.ts +4 -0
- package/dist/tools/web-search/index.d.ts.map +1 -0
- package/dist/tools/web-search/index.js +3 -0
- package/dist/tools/web-search/index.js.map +1 -0
- package/dist/tools/web-search/tools.d.ts +17 -0
- package/dist/tools/web-search/tools.d.ts.map +1 -0
- package/dist/tools/web-search/tools.js +81 -0
- package/dist/tools/web-search/tools.js.map +1 -0
- package/dist/tools/web-search/types.d.ts +16 -0
- package/dist/tools/web-search/types.d.ts.map +1 -0
- package/dist/tools/web-search/types.js +29 -0
- package/dist/tools/web-search/types.js.map +1 -0
- package/dist/tools/workspace-middleware.d.ts +14 -0
- package/dist/tools/workspace-middleware.d.ts.map +1 -0
- package/dist/tools/workspace-middleware.js +97 -0
- package/dist/tools/workspace-middleware.js.map +1 -0
- package/dist/types/agent-v2.d.ts +83 -0
- package/dist/types/agent-v2.d.ts.map +1 -0
- package/dist/types/agent-v2.js +8 -0
- package/dist/types/agent-v2.js.map +1 -0
- package/dist/types/agent.d.ts +3 -66
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js +0 -6
- package/dist/types/agent.js.map +1 -1
- package/dist/types/index.d.ts +4 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/lifecycle.d.ts +0 -141
- package/dist/types/lifecycle.d.ts.map +1 -1
- package/dist/types/lifecycle.js +4 -54
- package/dist/types/lifecycle.js.map +1 -1
- package/dist/types/streaming.d.ts +0 -4
- package/dist/types/streaming.d.ts.map +1 -1
- package/dist/types/streaming.js +0 -4
- package/dist/types/streaming.js.map +1 -1
- package/dist/usage-limits.d.ts +0 -37
- package/dist/usage-limits.d.ts.map +1 -1
- package/dist/usage-limits.js +1 -40
- package/dist/usage-limits.js.map +1 -1
- package/dist/utils/logger.d.ts +35 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +149 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/workflow/builders/adapt.d.ts +20 -0
- package/dist/workflow/builders/adapt.d.ts.map +1 -0
- package/dist/workflow/builders/adapt.js +33 -0
- package/dist/workflow/builders/adapt.js.map +1 -0
- package/dist/workflow/builders/index.d.ts +8 -0
- package/dist/workflow/builders/index.d.ts.map +1 -0
- package/dist/workflow/builders/index.js +7 -0
- package/dist/workflow/builders/index.js.map +1 -0
- package/dist/workflow/builders/parallel.d.ts +25 -0
- package/dist/workflow/builders/parallel.d.ts.map +1 -0
- package/dist/workflow/builders/parallel.js +60 -0
- package/dist/workflow/builders/parallel.js.map +1 -0
- package/dist/workflow/builders/pipeline.d.ts +22 -0
- package/dist/workflow/builders/pipeline.d.ts.map +1 -0
- package/dist/workflow/builders/pipeline.js +48 -0
- package/dist/workflow/builders/pipeline.js.map +1 -0
- package/dist/workflow/builders/types.d.ts +54 -0
- package/dist/workflow/builders/types.d.ts.map +1 -0
- package/dist/workflow/builders/types.js +5 -0
- package/dist/workflow/builders/types.js.map +1 -0
- package/dist/workflow/durable-agent.d.ts +128 -0
- package/dist/workflow/durable-agent.d.ts.map +1 -0
- package/dist/workflow/durable-agent.js +323 -0
- package/dist/workflow/durable-agent.js.map +1 -0
- package/dist/workflow/durable-tool.d.ts +0 -84
- package/dist/workflow/durable-tool.d.ts.map +1 -1
- package/dist/workflow/durable-tool.js +2 -104
- package/dist/workflow/durable-tool.js.map +1 -1
- package/dist/workflow/hooks.d.ts +0 -215
- package/dist/workflow/hooks.d.ts.map +1 -1
- package/dist/workflow/hooks.js +15 -221
- package/dist/workflow/hooks.js.map +1 -1
- package/dist/workflow/index.d.ts +0 -9
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +0 -12
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/schedulers.d.ts +231 -0
- package/dist/workflow/schedulers.d.ts.map +1 -0
- package/dist/workflow/schedulers.js +250 -0
- package/dist/workflow/schedulers.js.map +1 -0
- package/dist/workflow/team/create-team.d.ts +34 -0
- package/dist/workflow/team/create-team.d.ts.map +1 -0
- package/dist/workflow/team/create-team.js +242 -0
- package/dist/workflow/team/create-team.js.map +1 -0
- package/dist/workflow/team/index.d.ts +9 -0
- package/dist/workflow/team/index.d.ts.map +1 -0
- package/dist/workflow/team/index.js +8 -0
- package/dist/workflow/team/index.js.map +1 -0
- package/dist/workflow/team/machines.d.ts +152 -0
- package/dist/workflow/team/machines.d.ts.map +1 -0
- package/dist/workflow/team/machines.js +197 -0
- package/dist/workflow/team/machines.js.map +1 -0
- package/dist/workflow/team/task-board.d.ts +47 -0
- package/dist/workflow/team/task-board.d.ts.map +1 -0
- package/dist/workflow/team/task-board.js +111 -0
- package/dist/workflow/team/task-board.js.map +1 -0
- package/dist/workflow/team/tools.d.ts +66 -0
- package/dist/workflow/team/tools.d.ts.map +1 -0
- package/dist/workflow/team/tools.js +100 -0
- package/dist/workflow/team/tools.js.map +1 -0
- package/dist/workflow/team/types.d.ts +109 -0
- package/dist/workflow/team/types.d.ts.map +1 -0
- package/dist/workflow/team/types.js +5 -0
- package/dist/workflow/team/types.js.map +1 -0
- package/dist/workflow/templates.d.ts +71 -0
- package/dist/workflow/templates.d.ts.map +1 -0
- package/dist/workflow/templates.js +132 -0
- package/dist/workflow/templates.js.map +1 -0
- package/dist/workflow/utils.d.ts +0 -24
- package/dist/workflow/utils.d.ts.map +1 -1
- package/dist/workflow/utils.js +1 -32
- package/dist/workflow/utils.js.map +1 -1
- package/dist/wrappers/best-of-n.d.ts +0 -35
- package/dist/wrappers/best-of-n.d.ts.map +1 -1
- package/dist/wrappers/best-of-n.js +4 -53
- package/dist/wrappers/best-of-n.js.map +1 -1
- package/dist/wrappers/refine-loop.d.ts +36 -0
- package/dist/wrappers/refine-loop.d.ts.map +1 -0
- package/dist/wrappers/refine-loop.js +135 -0
- package/dist/wrappers/refine-loop.js.map +1 -0
- package/package.json +13 -7
|
@@ -1,93 +1,43 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import * as fs from 'node:fs';
|
|
4
|
-
// ============================================================================
|
|
5
|
-
// Dangerous Command Detection (S-1, S-2, S-3, S-4, S-5, S-6)
|
|
6
|
-
// ============================================================================
|
|
7
|
-
/**
|
|
8
|
-
* Patterns that are unconditionally blocked.
|
|
9
|
-
*
|
|
10
|
-
* Covers:
|
|
11
|
-
* S-1: rm with any target (not just absolute paths)
|
|
12
|
-
* S-2: Nested interpreter invocation (bash -c, python -c, node -e, etc.)
|
|
13
|
-
* S-3: Destructive git operations
|
|
14
|
-
* S-4: Fork bomb (multiple forms)
|
|
15
|
-
* S-5: chmod with dangerous modes (666, setuid, world-writable)
|
|
16
|
-
* S-6: Pipe-to-shell / download-and-execute bypass
|
|
17
|
-
*/
|
|
18
4
|
const DANGEROUS_PATTERNS = [
|
|
19
|
-
// S-1: rm -r/-rf targeting dangerous targets.
|
|
20
|
-
//
|
|
21
|
-
// Dangerous targets: bare `.` (current dir), `..` (parent), `*` (glob all),
|
|
22
|
-
// `/` (root), `~` (home), `$(...)` or `${...}` or `` ` `` (command sub)
|
|
23
|
-
// Safe targets: `./dist`, `./node_modules`, `./build`, etc. (explicit relative path)
|
|
24
|
-
//
|
|
25
|
-
// Strategy: after flags, match a target that is NOT `.` followed by `/`.
|
|
26
|
-
// `(?!\.[/\w])` means: NOT `.` followed by slash or word char — i.e. not `./dist`.
|
|
27
|
-
// We then explicitly enumerate dangerous patterns.
|
|
28
5
|
/\brm\s+(-[^\s]*r[^\s]*\s+|--recursive\s+)((?<!\.)\.\.(?![^\s])|(?<=\s)\.(?=[\s$])|(?<=\s)\.(?=\s|$)|\*|\/|~|\$[({`])/i,
|
|
29
|
-
// Simpler, more readable alternative that splits into two patterns:
|
|
30
|
-
// Pattern A: rm -r targeting .. or * or / or ~ or command sub
|
|
31
6
|
/\brm\s+-[^\s]*r[^\s]*\s+(\*|\/|~|\$[({]|`|\.\.(\s|$|\/))/i,
|
|
32
|
-
|
|
33
|
-
/\brm\s+-[^\s]*r[^\s]*\s+\.(?![\w\/])/i,
|
|
34
|
-
// Pattern C: rm without -r but with -f targeting absolute or dangerous paths
|
|
7
|
+
/\brm\s+-[^\s]*r[^\s]*\s+\.(?![\w/])/i,
|
|
35
8
|
/\brm\s+-[^\s]*f[^\s]*\s+(\*|~|\$[({]|`|\.\.(\s|$|\/)|\/(?!tmp|var\/tmp))/i,
|
|
36
|
-
// S-2: Nested interpreter invocation
|
|
37
9
|
/\b(bash|sh|zsh|dash|ksh|fish|tcsh)\s+(-[ce]|--[a-z]+\s)/i,
|
|
38
10
|
/\b(python3?|python3\.[0-9]+|pypy3?)\s+-[cC]/i,
|
|
39
11
|
/\b(node|nodejs|deno|bun)\s+-[eE]/i,
|
|
40
12
|
/\b(perl|ruby|php|lua|Rscript|groovy)\s+-[e]/i,
|
|
41
|
-
// S-3: Destructive git operations
|
|
42
13
|
/\bgit\s+(push\s+[^\n]*--?force|push\s+-f\b)/i,
|
|
43
14
|
/\bgit\s+reset\s+--hard/i,
|
|
44
15
|
/\bgit\s+clean\s+-[fdxXqn]*[fF][fdxXqn]*/i,
|
|
45
16
|
/\bgit\s+rebase\s+(-i|--interactive)/i,
|
|
46
|
-
// S-4: Fork bomb — colon function form and nohup infinite loop, but NOT normal while loops
|
|
47
17
|
/:\(\s*\)\s*\{/,
|
|
48
18
|
/:\s*\(\s*\)\s*\{.*:\s*\|\s*:/,
|
|
49
|
-
// S-5: chmod dangerous modes (setuid, setgid, world-write, 666, 777)
|
|
50
|
-
// Allows: 644, 755, 600, 700, u+x, go-w etc.
|
|
51
|
-
// Blocks: 666, 777, 4xxx (setuid), 2xxx (setgid), +s, o+w, a+w, u+s, g+s
|
|
52
19
|
/\bchmod\s+(-R\s+)?(666|777|4[0-9]{3}|2[0-9]{3}|\+s|o\+w|a\+w|u\+s|g\+s)/i,
|
|
53
|
-
// S-6: Pipe-to-shell and download-execute bypasses
|
|
54
20
|
/\b(curl|wget)\b.*\|\s*(bash|sh|zsh|dash|python3?|node)/i,
|
|
55
21
|
/\b(curl|wget)\b.*>\s*\S+.*&&\s*(bash|sh|chmod)/i,
|
|
56
|
-
// Disk/device destruction
|
|
57
22
|
/>\s*\/dev\/(sd[a-z]|nvme[0-9]|hd[a-z]|vd[a-z])/i,
|
|
58
23
|
/\bmkfs\./i,
|
|
59
24
|
/\bdd\s+if=/i,
|
|
60
|
-
// Privilege escalation
|
|
61
25
|
/\b(sudo|su)\s/i,
|
|
62
26
|
/\b(shutdown|reboot|halt|poweroff)\b/i,
|
|
63
|
-
// Shell eval builtin — `eval <string>` or `eval "..."`, not English words like 'evaluate'
|
|
64
27
|
/\beval\s*["'`(]/i,
|
|
65
28
|
/^eval\s/,
|
|
66
29
|
/;\s*eval\s/,
|
|
67
30
|
/&&\s*eval\s/,
|
|
68
31
|
/\|\s*eval\s/,
|
|
69
|
-
// MITRE T1027.010: Decode-then-execute bypass patterns
|
|
70
|
-
// base64 -d / --decode / openssl base64 decode → piped to shell
|
|
71
32
|
/\b(base64\s+-d|base64\s+--decode|openssl\s+enc\s+-d)\b.*\|\s*(bash|sh|zsh|dash|node|python3?)/i,
|
|
72
|
-
// xxd hex-decode → piped to shell
|
|
73
33
|
/\b(xxd\s+-r|xxd\s+--reverse)\b.*\|\s*(bash|sh|zsh|dash|node|python3?)/i,
|
|
74
|
-
// gzip decompress → piped to shell
|
|
75
34
|
/\bgzip\s+(-d|--decompress)\b.*\|\s*(bash|sh|zsh|dash)/i,
|
|
76
|
-
// printf with hex escapes → piped to shell
|
|
77
35
|
/\bprintf\b.*\\x[0-9a-fA-F]{2}.*\|\s*(bash|sh|zsh|dash)/i,
|
|
78
|
-
// ANSI-C quoting with octal escapes: $'\173\40...' | sh
|
|
79
36
|
/\$'\\[0-7]{3,}'.*\|\s*(bash|sh|zsh|dash)/i,
|
|
80
37
|
];
|
|
81
38
|
export function isDangerousCommand(command) {
|
|
82
39
|
return DANGEROUS_PATTERNS.some((pattern) => pattern.test(command));
|
|
83
40
|
}
|
|
84
|
-
// ============================================================================
|
|
85
|
-
// CWD Validation (S-13)
|
|
86
|
-
// ============================================================================
|
|
87
|
-
/**
|
|
88
|
-
* Ensure the requested cwd is within workspaceRoot (or is workspaceRoot itself).
|
|
89
|
-
* Returns the resolved cwd, or throws if the path escapes the workspace.
|
|
90
|
-
*/
|
|
91
41
|
export function validateCwd(cwd, workspaceRoot) {
|
|
92
42
|
const resolvedCwd = path.resolve(cwd);
|
|
93
43
|
let realWorkspace;
|
|
@@ -102,10 +52,6 @@ export function validateCwd(cwd, workspaceRoot) {
|
|
|
102
52
|
}
|
|
103
53
|
return resolvedCwd;
|
|
104
54
|
}
|
|
105
|
-
// ============================================================================
|
|
106
|
-
// Env Var Filtering (A-3)
|
|
107
|
-
// ============================================================================
|
|
108
|
-
/** Key patterns that indicate credentials — stripped from child process env. */
|
|
109
55
|
const SENSITIVE_ENV_PATTERNS = [
|
|
110
56
|
/API[_-]?KEY/i,
|
|
111
57
|
/SECRET/i,
|
|
@@ -127,10 +73,6 @@ const SENSITIVE_ENV_PATTERNS = [
|
|
|
127
73
|
/MONGO(DB)?_URI/i,
|
|
128
74
|
/REDIS_URL/i,
|
|
129
75
|
];
|
|
130
|
-
/**
|
|
131
|
-
* Build a sanitized copy of process.env suitable for child processes.
|
|
132
|
-
* Strips all credential-like keys; always preserves PATH, HOME, USER, TERM, LANG, etc.
|
|
133
|
-
*/
|
|
134
76
|
export function buildSanitizedEnv(extra = {}) {
|
|
135
77
|
const safe = {};
|
|
136
78
|
for (const [key, value] of Object.entries(process.env)) {
|
|
@@ -140,32 +82,23 @@ export function buildSanitizedEnv(extra = {}) {
|
|
|
140
82
|
continue;
|
|
141
83
|
safe[key] = value;
|
|
142
84
|
}
|
|
143
|
-
// Merge caller-supplied extras, but also filter those
|
|
144
85
|
for (const [key, value] of Object.entries(extra)) {
|
|
145
86
|
if (SENSITIVE_ENV_PATTERNS.some((p) => p.test(key)))
|
|
146
87
|
continue;
|
|
147
88
|
safe[key] = value;
|
|
148
89
|
}
|
|
149
|
-
// Always ensure PATH is present
|
|
150
90
|
if (process.env.PATH)
|
|
151
91
|
safe.PATH = process.env.PATH;
|
|
152
92
|
return safe;
|
|
153
93
|
}
|
|
154
|
-
// ============================================================================
|
|
155
|
-
// Output Sanitization (A-1)
|
|
156
|
-
// ============================================================================
|
|
157
94
|
const SENSITIVE_OUTPUT_PATTERNS = [
|
|
158
95
|
[/\bsk-[a-zA-Z0-9]{16,}\b/g, '[OPENAI_KEY REDACTED]'],
|
|
159
|
-
[/\bsk-ant-[a-zA-Z0-9
|
|
96
|
+
[/\bsk-ant-[a-zA-Z0-9-]{20,}\b/g, '[ANTHROPIC_KEY REDACTED]'],
|
|
160
97
|
[/\bghp_[a-zA-Z0-9]{36}\b/g, '[GITHUB_TOKEN REDACTED]'],
|
|
161
|
-
[/\bxoxb-[a-zA-Z0-9
|
|
162
|
-
[/Bearer\s+[a-zA-Z0-9._
|
|
163
|
-
|
|
164
|
-
[/(?:api[_\-]?key|secret|token|password|api_secret)\s*[=:]\s*[^\s'"]{8,}/gi, '[SECRET REDACTED]'],
|
|
98
|
+
[/\bxoxb-[a-zA-Z0-9-]+\b/g, '[SLACK_TOKEN REDACTED]'],
|
|
99
|
+
[/Bearer\s+[a-zA-Z0-9._-]{20,}/g, '[BEARER_TOKEN REDACTED]'],
|
|
100
|
+
[/(?:api[_-]?key|secret|token|password|api_secret)\s*[=:]\s*[^\s'"]{8,}/gi, '[SECRET REDACTED]'],
|
|
165
101
|
];
|
|
166
|
-
/**
|
|
167
|
-
* Redact API keys and secrets from command output before returning to the LLM.
|
|
168
|
-
*/
|
|
169
102
|
export function sanitizeOutput(output) {
|
|
170
103
|
let sanitized = output;
|
|
171
104
|
for (const [pattern, replacement] of SENSITIVE_OUTPUT_PATTERNS) {
|
|
@@ -174,7 +107,7 @@ export function sanitizeOutput(output) {
|
|
|
174
107
|
return sanitized;
|
|
175
108
|
}
|
|
176
109
|
export async function executeCommand(command, options = {}) {
|
|
177
|
-
const { cwd = process.cwd(), timeout = 30000, maxBuffer = 1024 * 1024, env
|
|
110
|
+
const { cwd = process.cwd(), timeout = 30000, maxBuffer = 1024 * 1024, env } = options;
|
|
178
111
|
const startTime = performance.now();
|
|
179
112
|
return new Promise((resolve) => {
|
|
180
113
|
let stdout = '';
|
|
@@ -191,7 +124,8 @@ export async function executeCommand(command, options = {}) {
|
|
|
191
124
|
try {
|
|
192
125
|
proc.kill('SIGKILL');
|
|
193
126
|
}
|
|
194
|
-
catch
|
|
127
|
+
catch {
|
|
128
|
+
void 0;
|
|
195
129
|
}
|
|
196
130
|
}, 5000);
|
|
197
131
|
}, timeout);
|
|
@@ -207,10 +141,8 @@ export async function executeCommand(command, options = {}) {
|
|
|
207
141
|
stderr += chunk;
|
|
208
142
|
}
|
|
209
143
|
});
|
|
210
|
-
proc.stdout.on('error', () => {
|
|
211
|
-
});
|
|
212
|
-
proc.stderr.on('error', () => {
|
|
213
|
-
});
|
|
144
|
+
proc.stdout.on('error', () => { });
|
|
145
|
+
proc.stderr.on('error', () => { });
|
|
214
146
|
proc.on('close', (code) => {
|
|
215
147
|
clearTimeout(timer);
|
|
216
148
|
resolve({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/utils/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/utils/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Standard tool result formatters.
|
|
3
|
-
*/
|
|
4
1
|
export declare function success<T extends Record<string, unknown>>(data?: T, message?: string): string;
|
|
5
2
|
export declare function error(err: Error | string, context?: Record<string, unknown>): string;
|
|
6
3
|
//# sourceMappingURL=tool-result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-result.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/tool-result.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tool-result.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/tool-result.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAS7F;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAUpF"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Standard tool result formatters.
|
|
3
|
-
*/
|
|
4
1
|
export function success(data, message) {
|
|
5
2
|
const result = { success: true };
|
|
6
3
|
if (data) {
|
|
@@ -13,7 +10,10 @@ export function success(data, message) {
|
|
|
13
10
|
}
|
|
14
11
|
export function error(err, context) {
|
|
15
12
|
const message = err instanceof Error ? err.message : err;
|
|
16
|
-
const result = {
|
|
13
|
+
const result = {
|
|
14
|
+
success: false,
|
|
15
|
+
error: message,
|
|
16
|
+
};
|
|
17
17
|
if (context) {
|
|
18
18
|
Object.assign(result, context);
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-result.js","sourceRoot":"","sources":["../../../src/tools/utils/tool-result.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tool-result.js","sourceRoot":"","sources":["../../../src/tools/utils/tool-result.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO,CAAoC,IAAQ,EAAE,OAAgB;IACnF,MAAM,MAAM,GAAkD,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChF,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAmB,EAAE,OAAiC;IAC1E,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,MAAM,MAAM,GAAyE;QACnF,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;KACf,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/web-search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/web-search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const webSearchTool: import("ai").Tool<{
|
|
2
|
+
query: string;
|
|
3
|
+
maxResults?: number | undefined;
|
|
4
|
+
timeRange?: "day" | "week" | "month" | "year" | undefined;
|
|
5
|
+
extractContent?: boolean | undefined;
|
|
6
|
+
extractTop?: number | undefined;
|
|
7
|
+
}, string>;
|
|
8
|
+
export declare function createWebSearchTool(): {
|
|
9
|
+
web_search: import("ai").Tool<{
|
|
10
|
+
query: string;
|
|
11
|
+
maxResults?: number | undefined;
|
|
12
|
+
timeRange?: "day" | "week" | "month" | "year" | undefined;
|
|
13
|
+
extractContent?: boolean | undefined;
|
|
14
|
+
extractTop?: number | undefined;
|
|
15
|
+
}, string>;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/tools/web-search/tools.ts"],"names":[],"mappings":"AAgDA,eAAO,MAAM,aAAa;;;;;;UAsDxB,CAAC;AAEH,wBAAgB,mBAAmB;;;;;;;;EAElC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { tool } from 'ai';
|
|
2
|
+
import { createLogger } from '@agntk/logger';
|
|
3
|
+
import { search, extractContent, } from '@agntk/search';
|
|
4
|
+
import { success, error } from '../utils/tool-result.js';
|
|
5
|
+
import { webSearchInputSchema, WEB_SEARCH_DESCRIPTION } from './types.js';
|
|
6
|
+
const log = createLogger('@agntk/core:web-search');
|
|
7
|
+
function formatSearchOutput(response, extracted) {
|
|
8
|
+
const lines = [];
|
|
9
|
+
lines.push(`Search: "${response.query}" (${response.provider}, ${response.durationMs}ms)`);
|
|
10
|
+
lines.push('');
|
|
11
|
+
for (let i = 0; i < response.results.length; i++) {
|
|
12
|
+
const r = response.results[i];
|
|
13
|
+
lines.push(`${i + 1}. ${r.title}`);
|
|
14
|
+
lines.push(` ${r.url}`);
|
|
15
|
+
if (r.snippet) {
|
|
16
|
+
lines.push(` ${r.snippet}`);
|
|
17
|
+
}
|
|
18
|
+
lines.push('');
|
|
19
|
+
}
|
|
20
|
+
if (extracted.length > 0) {
|
|
21
|
+
lines.push('--- Extracted Content ---');
|
|
22
|
+
lines.push('');
|
|
23
|
+
for (const e of extracted) {
|
|
24
|
+
lines.push(`### ${e.title}`);
|
|
25
|
+
lines.push(`Source: ${e.url}`);
|
|
26
|
+
lines.push('');
|
|
27
|
+
lines.push(e.content);
|
|
28
|
+
lines.push('');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return lines.join('\n');
|
|
32
|
+
}
|
|
33
|
+
export const webSearchTool = tool({
|
|
34
|
+
description: WEB_SEARCH_DESCRIPTION,
|
|
35
|
+
inputSchema: webSearchInputSchema,
|
|
36
|
+
execute: async (args) => {
|
|
37
|
+
log.debug('web_search execute', { query: args.query, maxResults: args.maxResults });
|
|
38
|
+
try {
|
|
39
|
+
const searchOptions = {
|
|
40
|
+
maxResults: args.maxResults,
|
|
41
|
+
timeRange: args.timeRange,
|
|
42
|
+
};
|
|
43
|
+
const response = await search(args.query, searchOptions);
|
|
44
|
+
let extracted = [];
|
|
45
|
+
if (args.extractContent) {
|
|
46
|
+
const top = args.extractTop ?? 3;
|
|
47
|
+
const urls = response.results.slice(0, top);
|
|
48
|
+
const extractions = await Promise.allSettled(urls.map((r) => extractContent(r.url, { maxLength: 10_000 })));
|
|
49
|
+
extracted = extractions
|
|
50
|
+
.filter((e) => e.status === 'fulfilled')
|
|
51
|
+
.map((e) => ({
|
|
52
|
+
url: e.value.url,
|
|
53
|
+
title: e.value.title,
|
|
54
|
+
content: e.value.content,
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
const output = formatSearchOutput(response, extracted);
|
|
58
|
+
log.info('web_search complete', {
|
|
59
|
+
query: args.query,
|
|
60
|
+
results: response.results.length,
|
|
61
|
+
provider: response.provider,
|
|
62
|
+
extracted: extracted.length,
|
|
63
|
+
});
|
|
64
|
+
return success({
|
|
65
|
+
output,
|
|
66
|
+
results: response.results,
|
|
67
|
+
provider: response.provider,
|
|
68
|
+
durationMs: response.durationMs,
|
|
69
|
+
...(extracted.length > 0 ? { extracted } : {}),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
log.error('web_search failed', { query: args.query, error: err });
|
|
74
|
+
return error(err instanceof Error ? err.message : String(err));
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
export function createWebSearchTool() {
|
|
79
|
+
return { web_search: webSearchTool };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/web-search/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,MAAM,EACN,cAAc,GAIf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,GAAG,GAAG,YAAY,CAAC,wBAAwB,CAAC,CAAC;AAEnD,SAAS,kBAAkB,CACzB,QAAwB,EACxB,SAAiE;IAEjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,KAAK,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,sBAAsB;IACnC,WAAW,EAAE,oBAAoB;IACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAEpF,IAAI,CAAC;YACH,MAAM,aAAa,GAAkB;gBACnC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAEzD,IAAI,SAAS,GAA2D,EAAE,CAAC;YAE3E,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAE5C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,UAAU,CAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAC9D,CAAC;gBAEF,SAAS,GAAG,WAAW;qBACpB,MAAM,CAAC,CAAC,CAAC,EAAiD,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;qBACtF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACX,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG;oBAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK;oBACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;iBACzB,CAAC,CAAC,CAAC;YACR,CAAC;YAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEvD,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;gBAChC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,SAAS,EAAE,SAAS,CAAC,MAAM;aAC5B,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;gBACb,MAAM;gBACN,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAClE,OAAO,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB;IACjC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const webSearchInputSchema: z.ZodObject<{
|
|
3
|
+
query: z.ZodString;
|
|
4
|
+
maxResults: z.ZodOptional<z.ZodNumber>;
|
|
5
|
+
timeRange: z.ZodOptional<z.ZodEnum<{
|
|
6
|
+
day: "day";
|
|
7
|
+
week: "week";
|
|
8
|
+
month: "month";
|
|
9
|
+
year: "year";
|
|
10
|
+
}>>;
|
|
11
|
+
extractContent: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
+
extractTop: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export type WebSearchInput = z.infer<typeof webSearchInputSchema>;
|
|
15
|
+
export declare const WEB_SEARCH_DESCRIPTION: string;
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/web-search/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAwB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB,QAI6B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const webSearchInputSchema = z.object({
|
|
3
|
+
query: z.string().describe('Search query string'),
|
|
4
|
+
maxResults: z
|
|
5
|
+
.number()
|
|
6
|
+
.min(1)
|
|
7
|
+
.max(20)
|
|
8
|
+
.optional()
|
|
9
|
+
.describe('Maximum number of results to return (default: 10)'),
|
|
10
|
+
timeRange: z
|
|
11
|
+
.enum(['day', 'week', 'month', 'year'])
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Filter results by recency'),
|
|
14
|
+
extractContent: z
|
|
15
|
+
.boolean()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe('If true, fetch and extract text content from top results'),
|
|
18
|
+
extractTop: z
|
|
19
|
+
.number()
|
|
20
|
+
.min(1)
|
|
21
|
+
.max(5)
|
|
22
|
+
.optional()
|
|
23
|
+
.describe('Number of top results to extract content from (default: 3, requires extractContent)'),
|
|
24
|
+
});
|
|
25
|
+
export const WEB_SEARCH_DESCRIPTION = 'Search the web for current information. ' +
|
|
26
|
+
'Returns titles, URLs, and snippets from web search results. ' +
|
|
27
|
+
'Optionally extracts full page content from top results for deeper analysis. ' +
|
|
28
|
+
'Use for up-to-date information, research, and fact-checking.';
|
|
29
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/web-search/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACjD,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SACtC,QAAQ,EAAE;SACV,QAAQ,CAAC,2BAA2B,CAAC;IACxC,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;CACJ,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,sBAAsB,GACjC,0CAA0C;IAC1C,8DAA8D;IAC9D,8EAA8E;IAC9E,8DAA8D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface ToolLike {
|
|
2
|
+
description?: string;
|
|
3
|
+
execute?: Function;
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
}
|
|
6
|
+
export interface WorkspaceMiddlewareOptions {
|
|
7
|
+
getWorkspacePath: () => string | null;
|
|
8
|
+
tokenThreshold?: number;
|
|
9
|
+
summaryMaxChars?: number;
|
|
10
|
+
excludeTools?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function wrapAllToolsWithWorkspace<T extends Record<string, ToolLike>>(tools: T, options: WorkspaceMiddlewareOptions): T;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=workspace-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-middleware.d.ts","sourceRoot":"","sources":["../../src/tools/workspace-middleware.ts"],"names":[],"mappings":"AAOA,UAAU,QAAQ;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAEtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAsFD,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC1E,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,0BAA0B,GAClC,CAAC,CAaH"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { writeFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { join, dirname } from 'node:path';
|
|
4
|
+
import { createLogger } from '@agntk/logger';
|
|
5
|
+
const log = createLogger('@agntk/core:workspace-middleware');
|
|
6
|
+
const CHARS_PER_TOKEN = 4;
|
|
7
|
+
const DEFAULT_TOKEN_THRESHOLD = 2000;
|
|
8
|
+
const DEFAULT_SUMMARY_MAX_CHARS = 500;
|
|
9
|
+
const DEFAULT_EXCLUDE_TOOLS = [
|
|
10
|
+
'plan',
|
|
11
|
+
'deep_reasoning',
|
|
12
|
+
'check_agent',
|
|
13
|
+
'spawn_agent',
|
|
14
|
+
'remember',
|
|
15
|
+
'recall',
|
|
16
|
+
'update_context',
|
|
17
|
+
'forget',
|
|
18
|
+
];
|
|
19
|
+
function wrapToolWithWorkspace(toolName, toolDef, options) {
|
|
20
|
+
const originalExecute = toolDef.execute;
|
|
21
|
+
if (!originalExecute)
|
|
22
|
+
return toolDef;
|
|
23
|
+
const tokenThreshold = options.tokenThreshold ?? DEFAULT_TOKEN_THRESHOLD;
|
|
24
|
+
const summaryMaxChars = options.summaryMaxChars ?? DEFAULT_SUMMARY_MAX_CHARS;
|
|
25
|
+
const charThreshold = tokenThreshold * CHARS_PER_TOKEN;
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
const wrappedExecute = async (...args) => {
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
29
|
+
const result = await originalExecute(...args);
|
|
30
|
+
if (typeof result !== 'string')
|
|
31
|
+
return result;
|
|
32
|
+
if (result.length <= charThreshold)
|
|
33
|
+
return result;
|
|
34
|
+
const workspacePath = options.getWorkspacePath();
|
|
35
|
+
if (!workspacePath)
|
|
36
|
+
return result;
|
|
37
|
+
try {
|
|
38
|
+
const hash = simpleHash(result).slice(0, 6);
|
|
39
|
+
const fileName = `${toolName}-${hash}.md`;
|
|
40
|
+
const filePath = join(workspacePath, fileName);
|
|
41
|
+
const dir = dirname(filePath);
|
|
42
|
+
if (!existsSync(dir)) {
|
|
43
|
+
await mkdir(dir, { recursive: true });
|
|
44
|
+
}
|
|
45
|
+
await writeFile(filePath, result, 'utf-8');
|
|
46
|
+
const estimatedTokens = Math.ceil(result.length / CHARS_PER_TOKEN);
|
|
47
|
+
const truncated = result.slice(0, summaryMaxChars);
|
|
48
|
+
const lastNewline = truncated.lastIndexOf('\n');
|
|
49
|
+
const cleanTruncation = lastNewline > summaryMaxChars * 0.5 ? truncated.slice(0, lastNewline) : truncated;
|
|
50
|
+
log.info('Tool result offloaded to workspace', {
|
|
51
|
+
tool: toolName,
|
|
52
|
+
tokens: estimatedTokens,
|
|
53
|
+
file: fileName,
|
|
54
|
+
});
|
|
55
|
+
return JSON.stringify({
|
|
56
|
+
_workspaceOffloaded: true,
|
|
57
|
+
savedTo: filePath,
|
|
58
|
+
estimatedTokens,
|
|
59
|
+
summary: cleanTruncation + '\n\n... (truncated)',
|
|
60
|
+
hint: `Full result (${estimatedTokens} tokens) saved to ${filePath}. Read the file for complete output.`,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
log.warn('Workspace offload failed, returning full result', {
|
|
65
|
+
tool: toolName,
|
|
66
|
+
error: err instanceof Error ? err.message : String(err),
|
|
67
|
+
});
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return {
|
|
72
|
+
...toolDef,
|
|
73
|
+
execute: wrappedExecute,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export function wrapAllToolsWithWorkspace(tools, options) {
|
|
77
|
+
const exclude = new Set(options.excludeTools ?? DEFAULT_EXCLUDE_TOOLS);
|
|
78
|
+
const wrapped = {};
|
|
79
|
+
for (const [name, toolDef] of Object.entries(tools)) {
|
|
80
|
+
if (exclude.has(name)) {
|
|
81
|
+
wrapped[name] = toolDef;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
wrapped[name] = wrapToolWithWorkspace(name, toolDef, options);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return wrapped;
|
|
88
|
+
}
|
|
89
|
+
function simpleHash(str) {
|
|
90
|
+
let hash = 0;
|
|
91
|
+
for (let i = 0; i < Math.min(str.length, 1000); i++) {
|
|
92
|
+
const char = str.charCodeAt(i);
|
|
93
|
+
hash = ((hash << 5) - hash + char) | 0;
|
|
94
|
+
}
|
|
95
|
+
return Math.abs(hash).toString(36);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=workspace-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-middleware.js","sourceRoot":"","sources":["../../src/tools/workspace-middleware.ts"],"names":[],"mappings":"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"}
|