@agntk/core 0.3.5 → 1.0.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/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 +101 -101
- 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 +1 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -29
- 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 +41 -39
- 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 +3 -22
- 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 +2 -18
- 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 +44 -51
- package/dist/tools/spawn-agent/index.d.ts.map +1 -1
- package/dist/tools/spawn-agent/index.js +196 -84
- 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 +1 -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
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agntk/core - Transient Streaming Infrastructure
|
|
3
|
+
*
|
|
4
|
+
* Enables tools to stream data to the UI without persisting to conversation context.
|
|
5
|
+
* This keeps the context window lean while providing rich UI feedback.
|
|
6
|
+
*/
|
|
7
|
+
import { createLogger } from '@agntk/logger';
|
|
8
|
+
const log = createLogger('@agntk/core:streaming');
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Main API: withTransientStreaming
|
|
11
|
+
// ============================================================================
|
|
12
|
+
/**
|
|
13
|
+
* Wrap tools to enable transient streaming.
|
|
14
|
+
*
|
|
15
|
+
* Tools wrapped with this function will have access to a `stream()` helper
|
|
16
|
+
* in their context that allows streaming data to the UI without adding
|
|
17
|
+
* it to the conversation context.
|
|
18
|
+
*
|
|
19
|
+
* @param tools - Record of tools to wrap
|
|
20
|
+
* @param writer - Stream writer for sending data to the client
|
|
21
|
+
* @returns Wrapped tools with transient streaming enabled
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const wrappedTools = withTransientStreaming(myTools, dataStream);
|
|
26
|
+
*
|
|
27
|
+
* // Inside a tool's execute function:
|
|
28
|
+
* execute: async (input, ctx) => {
|
|
29
|
+
* ctx.stream('file-content', {
|
|
30
|
+
* path: input.path,
|
|
31
|
+
* content: fileContent,
|
|
32
|
+
* truncated: false,
|
|
33
|
+
* });
|
|
34
|
+
* return `Read ${input.path}`;
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export function withTransientStreaming(tools, writer) {
|
|
39
|
+
const wrappedTools = {};
|
|
40
|
+
for (const [name, tool] of Object.entries(tools)) {
|
|
41
|
+
wrappedTools[name] = wrapToolWithTransient(tool, writer, name);
|
|
42
|
+
}
|
|
43
|
+
return wrappedTools;
|
|
44
|
+
}
|
|
45
|
+
// ============================================================================
|
|
46
|
+
// Tool Wrapping
|
|
47
|
+
// ============================================================================
|
|
48
|
+
/**
|
|
49
|
+
* Wrap a single tool with transient streaming capabilities.
|
|
50
|
+
*/
|
|
51
|
+
function wrapToolWithTransient(tool, writer, toolName) {
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
|
+
const originalExecute = tool.execute;
|
|
54
|
+
if (!originalExecute) {
|
|
55
|
+
return tool;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
...tool,
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
|
+
execute: async (input, options) => {
|
|
61
|
+
// Create enhanced context with streaming helper
|
|
62
|
+
const enhancedContext = {
|
|
63
|
+
...(options || {}),
|
|
64
|
+
agentId: options?.agentId || 'unknown',
|
|
65
|
+
stepNumber: options?.stepNumber || 0,
|
|
66
|
+
writer,
|
|
67
|
+
stream: (type, data) => {
|
|
68
|
+
writeTransient(writer, type, data);
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
return originalExecute(input, enhancedContext);
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// ============================================================================
|
|
76
|
+
// Transient Data Writers
|
|
77
|
+
// ============================================================================
|
|
78
|
+
/**
|
|
79
|
+
* Stream typed transient data to the UI.
|
|
80
|
+
*
|
|
81
|
+
* @param writer - Stream writer instance
|
|
82
|
+
* @param type - Data part type
|
|
83
|
+
* @param data - Data to stream
|
|
84
|
+
*/
|
|
85
|
+
export function writeTransient(writer, type, data) {
|
|
86
|
+
const dataPart = {
|
|
87
|
+
type,
|
|
88
|
+
data,
|
|
89
|
+
};
|
|
90
|
+
writer.writeData({
|
|
91
|
+
...dataPart,
|
|
92
|
+
transient: true,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Helper for tools to stream transient data from within their execute function.
|
|
97
|
+
*
|
|
98
|
+
* @param ctx - Tool context (must have writer)
|
|
99
|
+
* @param type - Data part type
|
|
100
|
+
* @param data - Data to stream
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* // Inside a tool's execute function:
|
|
105
|
+
* streamTransient(ctx, 'shell-output', {
|
|
106
|
+
* command: 'npm test',
|
|
107
|
+
* output: result.stdout,
|
|
108
|
+
* exitCode: result.code,
|
|
109
|
+
* });
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export function streamTransient(ctx, type, data) {
|
|
113
|
+
// Cast to TransientStreamWriter - they have compatible interfaces
|
|
114
|
+
const writer = ctx.writer;
|
|
115
|
+
if (writer) {
|
|
116
|
+
writeTransient(writer, type, data);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// ============================================================================
|
|
120
|
+
// Specialized Streamers
|
|
121
|
+
// ============================================================================
|
|
122
|
+
/**
|
|
123
|
+
* Stream file content transiently.
|
|
124
|
+
*/
|
|
125
|
+
export function streamFileContent(ctx, path, content, options = {}) {
|
|
126
|
+
streamTransient(ctx, 'file-content', {
|
|
127
|
+
path,
|
|
128
|
+
content,
|
|
129
|
+
truncated: options.truncated ?? false,
|
|
130
|
+
totalBytes: options.totalBytes,
|
|
131
|
+
language: options.language,
|
|
132
|
+
lineRange: options.lineRange,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Stream shell output transiently.
|
|
137
|
+
*/
|
|
138
|
+
export function streamShellOutput(ctx, command, output, exitCode, options = {}) {
|
|
139
|
+
streamTransient(ctx, 'shell-output', {
|
|
140
|
+
command,
|
|
141
|
+
output,
|
|
142
|
+
exitCode,
|
|
143
|
+
cwd: options.cwd,
|
|
144
|
+
truncated: options.truncated,
|
|
145
|
+
durationMs: options.durationMs,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Stream search results transiently.
|
|
150
|
+
*/
|
|
151
|
+
export function streamSearchResult(ctx, path, content, matches, options = {}) {
|
|
152
|
+
streamTransient(ctx, 'search-result', {
|
|
153
|
+
path,
|
|
154
|
+
content,
|
|
155
|
+
matches,
|
|
156
|
+
line: options.line,
|
|
157
|
+
pattern: options.pattern,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Stream tool progress update transiently.
|
|
162
|
+
*/
|
|
163
|
+
export function streamProgress(ctx, toolName, progress, message, options = {}) {
|
|
164
|
+
streamTransient(ctx, 'tool-progress', {
|
|
165
|
+
toolName,
|
|
166
|
+
progress,
|
|
167
|
+
message,
|
|
168
|
+
estimatedRemaining: options.estimatedRemaining,
|
|
169
|
+
step: options.step,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Stream reasoning step transiently.
|
|
174
|
+
*
|
|
175
|
+
* @internal Forward-designed for CLI streaming feature. No production callers yet.
|
|
176
|
+
*/
|
|
177
|
+
export function streamReasoningStep(ctx, stepNumber, totalSteps, thought, options = {}) {
|
|
178
|
+
streamTransient(ctx, 'reasoning-step', {
|
|
179
|
+
stepNumber,
|
|
180
|
+
totalSteps,
|
|
181
|
+
thought,
|
|
182
|
+
isRevision: options.isRevision,
|
|
183
|
+
revisesThought: options.revisesThought,
|
|
184
|
+
branchId: options.branchId,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Stream sub-agent output transiently.
|
|
189
|
+
*
|
|
190
|
+
* @internal Forward-designed for CLI streaming feature. No production callers yet.
|
|
191
|
+
*/
|
|
192
|
+
export function streamSubAgent(ctx, agentId, role, text, status, error) {
|
|
193
|
+
streamTransient(ctx, 'sub-agent-stream', {
|
|
194
|
+
agentId,
|
|
195
|
+
role,
|
|
196
|
+
text,
|
|
197
|
+
status,
|
|
198
|
+
error,
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=transient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transient.js","sourceRoot":"","sources":["../../src/streaming/transient.ts"],"names":[],"mappings":"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"}
|
package/dist/system-detect.d.ts
CHANGED
|
@@ -1,81 +1,24 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview System hardware detection for automatic Ollama model selection.
|
|
3
|
-
*
|
|
4
|
-
* Detects available RAM/VRAM and selects the best model the system can
|
|
5
|
-
* comfortably run. Falls back conservatively — better to run a smaller
|
|
6
|
-
* model fast than a larger model that swaps to disk.
|
|
7
|
-
*
|
|
8
|
-
* Supports both local models and Ollama cloud models (-cloud suffix).
|
|
9
|
-
* Cloud models are always preferred when available since they run on
|
|
10
|
-
* remote infrastructure regardless of local hardware.
|
|
11
|
-
*
|
|
12
|
-
* Memory thresholds (Q4_K_M quantization, local models):
|
|
13
|
-
* qwen3:8b ~5-6 GB → needs ≥8 GB total RAM
|
|
14
|
-
* qwen3-coder:30b ~17 GB → needs ≥24 GB total RAM (MoE, fast inference)
|
|
15
|
-
* qwen3.5:35b ~20 GB → needs ≥32 GB total RAM
|
|
16
|
-
*/
|
|
17
1
|
export interface SystemProfile {
|
|
18
|
-
/** Total system RAM in GB */
|
|
19
2
|
totalRAMGb: number;
|
|
20
|
-
/** Usable memory for models in GB (accounts for OS overhead + GPU sharing) */
|
|
21
3
|
usableForModelsGb: number;
|
|
22
|
-
/** Platform: darwin, linux, win32 */
|
|
23
4
|
platform: string;
|
|
24
|
-
/** Whether this is Apple Silicon (unified memory architecture) */
|
|
25
5
|
isAppleSilicon: boolean;
|
|
26
|
-
/** NVIDIA VRAM in GB, if detected */
|
|
27
6
|
nvidiaVRAMGb: number | null;
|
|
28
7
|
}
|
|
29
8
|
export type OllamaModelTier = 'small' | 'medium' | 'large';
|
|
30
9
|
export interface OllamaModelRecommendation {
|
|
31
|
-
/** Recommended tier */
|
|
32
10
|
tier: OllamaModelTier;
|
|
33
|
-
/** Model tag to pull/use for each agent tier */
|
|
34
11
|
fast: string;
|
|
35
12
|
standard: string;
|
|
36
13
|
reasoning: string;
|
|
37
14
|
powerful: string;
|
|
38
|
-
/** Human-readable reason */
|
|
39
15
|
reason: string;
|
|
40
|
-
/** True when installed models exist but none are usable (all < 8b, no cloud) */
|
|
41
16
|
noUsableModels?: boolean;
|
|
42
17
|
}
|
|
43
|
-
/** Cloud models run on remote infrastructure — always usable regardless of local hardware. */
|
|
44
18
|
export declare function isCloudModel(tag: string): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Check if a model is large enough for reliable agent tool-calling.
|
|
47
|
-
* Models need >= 8b parameters. Cloud models are always usable.
|
|
48
|
-
* Unknown sizes (e.g. "deepseek-coder:latest") are assumed usable.
|
|
49
|
-
*/
|
|
50
19
|
export declare function isUsableSize(tag: string): boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Detect system hardware profile.
|
|
53
|
-
*/
|
|
54
20
|
export declare function detectSystem(): SystemProfile;
|
|
55
|
-
/**
|
|
56
|
-
* Select the best Ollama model tier based on system capabilities
|
|
57
|
-
* and (optionally) which models are actually installed.
|
|
58
|
-
*
|
|
59
|
-
* When installedModels is provided, the recommendation is constrained
|
|
60
|
-
* to models the user already has pulled — the best available model is
|
|
61
|
-
* used for every tier rather than recommending something that would 404.
|
|
62
|
-
*
|
|
63
|
-
* If only sub-8b models are installed (and no cloud models), sets
|
|
64
|
-
* `noUsableModels: true` so the caller can skip Ollama entirely.
|
|
65
|
-
*
|
|
66
|
-
* Hardware thresholds (usable memory for model weights):
|
|
67
|
-
* < 6 GB → too small, warn user
|
|
68
|
-
* 6-10 GB → small (qwen3:8b everywhere)
|
|
69
|
-
* 10-20 GB → medium (qwen3-coder:30b for standard+)
|
|
70
|
-
* 20+ GB → large (qwen3.5:35b for reasoning/powerful)
|
|
71
|
-
*/
|
|
72
21
|
export declare function recommendOllamaModels(profile?: SystemProfile, installedModels?: string[]): OllamaModelRecommendation;
|
|
73
|
-
/**
|
|
74
|
-
* Check which models Ollama already has pulled.
|
|
75
|
-
*/
|
|
76
22
|
export declare function getOllamaModels(baseUrl?: string): Promise<string[]>;
|
|
77
|
-
/**
|
|
78
|
-
* Check if a specific model is available in Ollama.
|
|
79
|
-
*/
|
|
80
23
|
export declare function hasOllamaModel(model: string, baseUrl?: string): Promise<boolean>;
|
|
81
24
|
//# sourceMappingURL=system-detect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-detect.d.ts","sourceRoot":"","sources":["../src/system-detect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-detect.d.ts","sourceRoot":"","sources":["../src/system-detect.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc,EAAE,OAAO,CAAC;IAExB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,eAAe,CAAC;IAEtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IAEf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMjD;AAuED,wBAAgB,YAAY,IAAI,aAAa,CA6B5C;AAED,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,aAAa,EACvB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,yBAAyB,CAoE3B;AAkBD,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBzE;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKtF"}
|
package/dist/system-detect.js
CHANGED
|
@@ -1,48 +1,19 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview System hardware detection for automatic Ollama model selection.
|
|
3
|
-
*
|
|
4
|
-
* Detects available RAM/VRAM and selects the best model the system can
|
|
5
|
-
* comfortably run. Falls back conservatively — better to run a smaller
|
|
6
|
-
* model fast than a larger model that swaps to disk.
|
|
7
|
-
*
|
|
8
|
-
* Supports both local models and Ollama cloud models (-cloud suffix).
|
|
9
|
-
* Cloud models are always preferred when available since they run on
|
|
10
|
-
* remote infrastructure regardless of local hardware.
|
|
11
|
-
*
|
|
12
|
-
* Memory thresholds (Q4_K_M quantization, local models):
|
|
13
|
-
* qwen3:8b ~5-6 GB → needs ≥8 GB total RAM
|
|
14
|
-
* qwen3-coder:30b ~17 GB → needs ≥24 GB total RAM (MoE, fast inference)
|
|
15
|
-
* qwen3.5:35b ~20 GB → needs ≥32 GB total RAM
|
|
16
|
-
*/
|
|
17
1
|
import { createLogger } from '@agntk/logger';
|
|
18
2
|
import os from 'node:os';
|
|
19
3
|
import { execSync } from 'node:child_process';
|
|
20
4
|
const log = createLogger('@agntk/core:system-detect');
|
|
21
|
-
// ============================================================================
|
|
22
|
-
// Model Classification
|
|
23
|
-
// ============================================================================
|
|
24
|
-
/** Cloud models run on remote infrastructure — always usable regardless of local hardware. */
|
|
25
5
|
export function isCloudModel(tag) {
|
|
26
6
|
const lower = tag.toLowerCase();
|
|
27
7
|
return lower.includes('-cloud') || lower.endsWith(':cloud');
|
|
28
8
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Check if a model is large enough for reliable agent tool-calling.
|
|
31
|
-
* Models need >= 8b parameters. Cloud models are always usable.
|
|
32
|
-
* Unknown sizes (e.g. "deepseek-coder:latest") are assumed usable.
|
|
33
|
-
*/
|
|
34
9
|
export function isUsableSize(tag) {
|
|
35
10
|
if (isCloudModel(tag))
|
|
36
11
|
return true;
|
|
37
|
-
// Parse size from tags like "qwen3:14b", "llama3.1:70b", "qwen3-coder:30b"
|
|
38
12
|
const match = tag.match(/(\d+(?:\.\d+)?)b/i);
|
|
39
13
|
if (!match)
|
|
40
|
-
return true;
|
|
14
|
+
return true;
|
|
41
15
|
return parseFloat(match[1]) >= 8;
|
|
42
16
|
}
|
|
43
|
-
// ============================================================================
|
|
44
|
-
// Model Tier Definitions
|
|
45
|
-
// ============================================================================
|
|
46
17
|
const MODEL_TIERS = {
|
|
47
18
|
small: {
|
|
48
19
|
tier: 'small',
|
|
@@ -66,17 +37,11 @@ const MODEL_TIERS = {
|
|
|
66
37
|
powerful: 'qwen3.5:35b',
|
|
67
38
|
},
|
|
68
39
|
};
|
|
69
|
-
/**
|
|
70
|
-
* Preferred models ordered from best to least preferred.
|
|
71
|
-
* Cloud models first (run on remote infra), then best local models.
|
|
72
|
-
*/
|
|
73
40
|
const MODEL_PREFERENCE = [
|
|
74
|
-
// Cloud (always top priority)
|
|
75
41
|
'qwen3-coder:480b-cloud',
|
|
76
42
|
'qwen3.5:cloud',
|
|
77
43
|
'qwen3.5:397b-cloud',
|
|
78
44
|
'gpt-oss:120b-cloud',
|
|
79
|
-
// Local (newest/best first)
|
|
80
45
|
'qwen3-coder:30b',
|
|
81
46
|
'qwen3.5:35b',
|
|
82
47
|
'qwen3.5:27b',
|
|
@@ -84,12 +49,6 @@ const MODEL_PREFERENCE = [
|
|
|
84
49
|
'qwen3:14b',
|
|
85
50
|
'qwen3:8b',
|
|
86
51
|
];
|
|
87
|
-
// ============================================================================
|
|
88
|
-
// System Detection
|
|
89
|
-
// ============================================================================
|
|
90
|
-
/**
|
|
91
|
-
* Detect whether this is an Apple Silicon Mac.
|
|
92
|
-
*/
|
|
93
52
|
function detectAppleSilicon() {
|
|
94
53
|
if (os.platform() !== 'darwin')
|
|
95
54
|
return false;
|
|
@@ -101,21 +60,19 @@ function detectAppleSilicon() {
|
|
|
101
60
|
return brand.includes('Apple');
|
|
102
61
|
}
|
|
103
62
|
catch {
|
|
104
|
-
// Fallback: check arch
|
|
105
63
|
return os.arch() === 'arm64';
|
|
106
64
|
}
|
|
107
65
|
}
|
|
108
|
-
/**
|
|
109
|
-
* Try to detect NVIDIA GPU VRAM via nvidia-smi.
|
|
110
|
-
* Returns VRAM in GB or null if no NVIDIA GPU / nvidia-smi not found.
|
|
111
|
-
*/
|
|
112
66
|
function detectNvidiaVRAM() {
|
|
113
67
|
try {
|
|
114
|
-
const output = execSync('nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits', {
|
|
115
|
-
|
|
68
|
+
const output = execSync('nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits', {
|
|
69
|
+
encoding: 'utf-8',
|
|
70
|
+
timeout: 3000,
|
|
71
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
72
|
+
}).trim();
|
|
116
73
|
const mb = parseInt(output.split('\n')[0], 10);
|
|
117
74
|
if (!isNaN(mb) && mb > 0) {
|
|
118
|
-
return Math.round(mb / 1024 * 10) / 10;
|
|
75
|
+
return Math.round((mb / 1024) * 10) / 10;
|
|
119
76
|
}
|
|
120
77
|
return null;
|
|
121
78
|
}
|
|
@@ -123,33 +80,20 @@ function detectNvidiaVRAM() {
|
|
|
123
80
|
return null;
|
|
124
81
|
}
|
|
125
82
|
}
|
|
126
|
-
/**
|
|
127
|
-
* Detect system hardware profile.
|
|
128
|
-
*/
|
|
129
83
|
export function detectSystem() {
|
|
130
84
|
const totalBytes = os.totalmem();
|
|
131
|
-
const totalRAMGb = Math.round(totalBytes /
|
|
85
|
+
const totalRAMGb = Math.round((totalBytes / 1024 ** 3) * 10) / 10;
|
|
132
86
|
const platform = os.platform();
|
|
133
87
|
const isAppleSilicon = detectAppleSilicon();
|
|
134
88
|
const nvidiaVRAMGb = detectNvidiaVRAM();
|
|
135
|
-
// Calculate usable memory for models:
|
|
136
|
-
// - Reserve ~3 GB for OS + Ollama server overhead
|
|
137
|
-
// - On Apple Silicon: GPU gets ~75% of unified memory, but we're more conservative
|
|
138
|
-
// - On NVIDIA: model loads into VRAM, which is separate from system RAM
|
|
139
89
|
let usableForModelsGb;
|
|
140
90
|
if (nvidiaVRAMGb !== null) {
|
|
141
|
-
|
|
142
|
-
usableForModelsGb = nvidiaVRAMGb - 1; // reserve 1 GB for GPU driver/overhead
|
|
91
|
+
usableForModelsGb = nvidiaVRAMGb - 1;
|
|
143
92
|
}
|
|
144
93
|
else if (isAppleSilicon) {
|
|
145
|
-
// Apple Silicon: unified memory shared between CPU and GPU.
|
|
146
|
-
// Ollama uses Metal — model sits in unified memory.
|
|
147
|
-
// Reserve ~25% for OS + apps + KV cache growth.
|
|
148
94
|
usableForModelsGb = totalRAMGb * 0.65;
|
|
149
95
|
}
|
|
150
96
|
else {
|
|
151
|
-
// CPU-only inference: slower but uses system RAM.
|
|
152
|
-
// Reserve 3 GB for OS overhead.
|
|
153
97
|
usableForModelsGb = totalRAMGb - 3;
|
|
154
98
|
}
|
|
155
99
|
usableForModelsGb = Math.max(0, usableForModelsGb);
|
|
@@ -163,30 +107,9 @@ export function detectSystem() {
|
|
|
163
107
|
log.debug('System profile', { ...profile });
|
|
164
108
|
return profile;
|
|
165
109
|
}
|
|
166
|
-
// ============================================================================
|
|
167
|
-
// Model Recommendation
|
|
168
|
-
// ============================================================================
|
|
169
|
-
/**
|
|
170
|
-
* Select the best Ollama model tier based on system capabilities
|
|
171
|
-
* and (optionally) which models are actually installed.
|
|
172
|
-
*
|
|
173
|
-
* When installedModels is provided, the recommendation is constrained
|
|
174
|
-
* to models the user already has pulled — the best available model is
|
|
175
|
-
* used for every tier rather than recommending something that would 404.
|
|
176
|
-
*
|
|
177
|
-
* If only sub-8b models are installed (and no cloud models), sets
|
|
178
|
-
* `noUsableModels: true` so the caller can skip Ollama entirely.
|
|
179
|
-
*
|
|
180
|
-
* Hardware thresholds (usable memory for model weights):
|
|
181
|
-
* < 6 GB → too small, warn user
|
|
182
|
-
* 6-10 GB → small (qwen3:8b everywhere)
|
|
183
|
-
* 10-20 GB → medium (qwen3-coder:30b for standard+)
|
|
184
|
-
* 20+ GB → large (qwen3.5:35b for reasoning/powerful)
|
|
185
|
-
*/
|
|
186
110
|
export function recommendOllamaModels(profile, installedModels) {
|
|
187
111
|
const sys = profile || detectSystem();
|
|
188
112
|
const mem = sys.usableForModelsGb;
|
|
189
|
-
// Determine the hardware-ideal tier
|
|
190
113
|
let ideal;
|
|
191
114
|
if (mem < 4) {
|
|
192
115
|
log.warn('Very limited memory for local models', { usableGb: mem });
|
|
@@ -213,15 +136,12 @@ export function recommendOllamaModels(profile, installedModels) {
|
|
|
213
136
|
reason: `${sys.totalRAMGb} GB RAM → qwen3.5:35b for reasoning/powerful, qwen3-coder:30b for standard`,
|
|
214
137
|
};
|
|
215
138
|
}
|
|
216
|
-
// If we don't know what's installed, return the hardware-ideal recommendation
|
|
217
139
|
if (!installedModels || installedModels.length === 0) {
|
|
218
140
|
return ideal;
|
|
219
141
|
}
|
|
220
|
-
// Constrain to what's actually pulled — pick the best available model
|
|
221
142
|
const installed = new Set(installedModels.map((m) => m.toLowerCase()));
|
|
222
143
|
const bestAvailable = pickBestAvailable(installed);
|
|
223
144
|
if (!bestAvailable) {
|
|
224
|
-
// No usable models installed (all sub-8b, no cloud)
|
|
225
145
|
log.info('No usable models installed', { installed: [...installed] });
|
|
226
146
|
return {
|
|
227
147
|
...ideal,
|
|
@@ -229,9 +149,6 @@ export function recommendOllamaModels(profile, installedModels) {
|
|
|
229
149
|
reason: 'No usable models found (need 8b+ local or cloud model)',
|
|
230
150
|
};
|
|
231
151
|
}
|
|
232
|
-
// Clamp each tier to what's installed.
|
|
233
|
-
// Cloud models always win over local — they run on remote infrastructure
|
|
234
|
-
// so they're faster and more capable regardless of local hardware.
|
|
235
152
|
const bestIsCloud = isCloudModel(bestAvailable);
|
|
236
153
|
const clamp = (model) => {
|
|
237
154
|
if (bestIsCloud)
|
|
@@ -250,41 +167,23 @@ export function recommendOllamaModels(profile, installedModels) {
|
|
|
250
167
|
powerful: clamp(ideal.powerful),
|
|
251
168
|
reason: '',
|
|
252
169
|
};
|
|
253
|
-
// Build reason showing what standard tier will actually use
|
|
254
170
|
const unique = [...new Set([result.fast, result.standard, result.reasoning, result.powerful])];
|
|
255
171
|
result.reason = `${sys.totalRAMGb} GB RAM → ${unique.join(', ')}`;
|
|
256
172
|
return result;
|
|
257
173
|
}
|
|
258
|
-
/**
|
|
259
|
-
* Pick the best usable model from what's installed.
|
|
260
|
-
*
|
|
261
|
-
* Priority:
|
|
262
|
-
* 1. Preferred models in order (cloud first, then best local)
|
|
263
|
-
* 2. Any other installed model that passes isUsableSize()
|
|
264
|
-
* 3. null if nothing qualifies
|
|
265
|
-
*/
|
|
266
174
|
function pickBestAvailable(installed) {
|
|
267
|
-
// Check preferred models in order
|
|
268
175
|
for (const model of MODEL_PREFERENCE) {
|
|
269
176
|
if (installed.has(model) || [...installed].some((m) => m.startsWith(model))) {
|
|
270
177
|
return model;
|
|
271
178
|
}
|
|
272
179
|
}
|
|
273
|
-
// Check for any other usable model (non-qwen, non-preferred but >= 8b or cloud)
|
|
274
180
|
for (const model of installed) {
|
|
275
181
|
if (isUsableSize(model)) {
|
|
276
182
|
return model;
|
|
277
183
|
}
|
|
278
184
|
}
|
|
279
|
-
// Nothing qualifies
|
|
280
185
|
return null;
|
|
281
186
|
}
|
|
282
|
-
// ============================================================================
|
|
283
|
-
// Ollama Model Availability
|
|
284
|
-
// ============================================================================
|
|
285
|
-
/**
|
|
286
|
-
* Check which models Ollama already has pulled.
|
|
287
|
-
*/
|
|
288
187
|
export async function getOllamaModels(baseUrl) {
|
|
289
188
|
const rawUrl = baseUrl || process.env['OLLAMA_BASE_URL'] || 'http://localhost:11434';
|
|
290
189
|
const url = rawUrl.replace(/\/(api|v1)\/?$/, '');
|
|
@@ -306,12 +205,8 @@ export async function getOllamaModels(baseUrl) {
|
|
|
306
205
|
return [];
|
|
307
206
|
}
|
|
308
207
|
}
|
|
309
|
-
/**
|
|
310
|
-
* Check if a specific model is available in Ollama.
|
|
311
|
-
*/
|
|
312
208
|
export async function hasOllamaModel(model, baseUrl) {
|
|
313
209
|
const models = await getOllamaModels(baseUrl);
|
|
314
|
-
// Normalize: "qwen3:8b" should match "qwen3:8b" and "qwen3:8b-q4_K_M"
|
|
315
210
|
const normalized = model.toLowerCase();
|
|
316
211
|
return models.some((m) => m.toLowerCase().startsWith(normalized));
|
|
317
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-detect.js","sourceRoot":"","sources":["../src/system-detect.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"system-detect.js","sourceRoot":"","sources":["../src/system-detect.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/approval.d.ts
CHANGED
|
@@ -1,67 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @agntk/core - Tool Approval System
|
|
3
|
-
*
|
|
4
|
-
* Wraps tools with AI SDK's native `needsApproval` flag for human-in-the-loop
|
|
5
|
-
* safety. When `approval: true` is set on the agent, dangerous tools
|
|
6
|
-
* (shell, browser, file_write, file_edit) automatically require approval.
|
|
7
|
-
*
|
|
8
|
-
* Supports:
|
|
9
|
-
* - Auto-flagging dangerous tools
|
|
10
|
-
* - Typed approval payloads via Zod schemas
|
|
11
|
-
* - Timeout with default values (approve/deny after N ms)
|
|
12
|
-
* - Custom approval handlers
|
|
13
|
-
*/
|
|
14
1
|
import type { Tool, ToolSet } from 'ai';
|
|
15
|
-
/** Configuration for the approval system. */
|
|
16
2
|
export interface ApprovalConfig {
|
|
17
|
-
/** Enable approval for dangerous tools. Default: false */
|
|
18
3
|
enabled: boolean;
|
|
19
|
-
/** Tool names that require approval. If not set, uses DANGEROUS_TOOLS. */
|
|
20
4
|
tools?: string[];
|
|
21
|
-
/** Default timeout in ms before auto-resolution. Default: none (wait forever) */
|
|
22
5
|
timeout?: number;
|
|
23
|
-
/** Default action when timeout expires. Default: 'deny' */
|
|
24
6
|
timeoutAction?: 'approve' | 'deny';
|
|
25
|
-
/** Custom handler called when a tool needs approval.
|
|
26
|
-
* Return true to approve, false to deny.
|
|
27
|
-
* If not provided, uses the AI SDK's built-in approval mechanism. */
|
|
28
7
|
handler?: ApprovalHandler;
|
|
29
8
|
}
|
|
30
|
-
/** Custom approval handler function. */
|
|
31
9
|
export type ApprovalHandler = (request: ApprovalRequest) => Promise<boolean> | boolean;
|
|
32
|
-
/** Details about a tool call requiring approval. */
|
|
33
10
|
export interface ApprovalRequest {
|
|
34
11
|
toolName: string;
|
|
35
12
|
input: unknown;
|
|
36
13
|
toolCallId: string;
|
|
37
14
|
}
|
|
38
|
-
/** Default set of tool names considered dangerous and requiring approval. */
|
|
39
15
|
export declare const DANGEROUS_TOOLS: Set<string>;
|
|
40
|
-
/**
|
|
41
|
-
* Check if a tool name is considered dangerous.
|
|
42
|
-
*/
|
|
43
16
|
export declare function isDangerousTool(toolName: string, customList?: string[]): boolean;
|
|
44
|
-
/**
|
|
45
|
-
* Wrap a single tool with `needsApproval`, applying timeout + default action
|
|
46
|
-
* if configured.
|
|
47
|
-
*/
|
|
48
17
|
export declare function wrapToolWithApproval<T extends Tool>(toolName: string, tool: T, config: ApprovalConfig): T;
|
|
49
|
-
/**
|
|
50
|
-
* Apply approval to all dangerous tools in a toolset.
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* ```typescript
|
|
54
|
-
* const tools = createToolPreset('standard', { workspaceRoot });
|
|
55
|
-
* const approvedTools = applyApproval(tools, { enabled: true });
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
18
|
export declare function applyApproval(tools: ToolSet, config: ApprovalConfig): ToolSet;
|
|
59
|
-
/**
|
|
60
|
-
* Create an approval config from agent options shorthand.
|
|
61
|
-
*
|
|
62
|
-
* Supports:
|
|
63
|
-
* - `approval: true` → enable with defaults
|
|
64
|
-
* - `approval: { tools: [...], timeout: 30000 }` → custom config
|
|
65
|
-
*/
|
|
66
19
|
export declare function resolveApprovalConfig(input: boolean | ApprovalConfig | undefined): ApprovalConfig | undefined;
|
|
67
20
|
//# sourceMappingURL=approval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/tools/approval.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/tools/approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAKxC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnC,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,aAM1B,CAAC;AAEH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAKhF;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,IAAI,EACjD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,cAAc,GACrB,CAAC,CAiCH;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAgB7E;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,GAC1C,cAAc,GAAG,SAAS,CAI5B"}
|