@agntk/core 0.3.3 → 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.d.ts +2 -35
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +113 -111
- 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 +4 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -31
- package/dist/index.js.map +1 -1
- 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/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/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/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/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/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/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.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/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/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 +14 -8
|
@@ -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"}
|
package/dist/tools/approval.js
CHANGED
|
@@ -1,22 +1,5 @@
|
|
|
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 { createLogger } from '@agntk/logger';
|
|
15
2
|
const log = createLogger('@agntk/core:approval');
|
|
16
|
-
// ============================================================================
|
|
17
|
-
// Constants
|
|
18
|
-
// ============================================================================
|
|
19
|
-
/** Default set of tool names considered dangerous and requiring approval. */
|
|
20
3
|
export const DANGEROUS_TOOLS = new Set([
|
|
21
4
|
'shell',
|
|
22
5
|
'browser',
|
|
@@ -24,26 +7,15 @@ export const DANGEROUS_TOOLS = new Set([
|
|
|
24
7
|
'file_edit',
|
|
25
8
|
'file_create',
|
|
26
9
|
]);
|
|
27
|
-
// ============================================================================
|
|
28
|
-
// Core Functions
|
|
29
|
-
// ============================================================================
|
|
30
|
-
/**
|
|
31
|
-
* Check if a tool name is considered dangerous.
|
|
32
|
-
*/
|
|
33
10
|
export function isDangerousTool(toolName, customList) {
|
|
34
11
|
if (customList) {
|
|
35
12
|
return customList.includes(toolName);
|
|
36
13
|
}
|
|
37
14
|
return DANGEROUS_TOOLS.has(toolName);
|
|
38
15
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Wrap a single tool with `needsApproval`, applying timeout + default action
|
|
41
|
-
* if configured.
|
|
42
|
-
*/
|
|
43
16
|
export function wrapToolWithApproval(toolName, tool, config) {
|
|
44
17
|
const { handler, timeout, timeoutAction = 'deny' } = config;
|
|
45
18
|
if (handler) {
|
|
46
|
-
// Use a custom handler via needsApproval function
|
|
47
19
|
const wrappedTool = {
|
|
48
20
|
...tool,
|
|
49
21
|
needsApproval: async (input) => {
|
|
@@ -53,7 +25,6 @@ export function wrapToolWithApproval(toolName, tool, config) {
|
|
|
53
25
|
toolCallId: `approval-${Date.now()}`,
|
|
54
26
|
};
|
|
55
27
|
if (timeout) {
|
|
56
|
-
// Race handler against timeout
|
|
57
28
|
const result = await Promise.race([
|
|
58
29
|
handler(request),
|
|
59
30
|
new Promise((resolve) => setTimeout(() => {
|
|
@@ -68,18 +39,8 @@ export function wrapToolWithApproval(toolName, tool, config) {
|
|
|
68
39
|
};
|
|
69
40
|
return wrappedTool;
|
|
70
41
|
}
|
|
71
|
-
// Use simple boolean flag — the AI SDK will handle the approval UI
|
|
72
42
|
return { ...tool, needsApproval: true };
|
|
73
43
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Apply approval to all dangerous tools in a toolset.
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* ```typescript
|
|
79
|
-
* const tools = createToolPreset('standard', { workspaceRoot });
|
|
80
|
-
* const approvedTools = applyApproval(tools, { enabled: true });
|
|
81
|
-
* ```
|
|
82
|
-
*/
|
|
83
44
|
export function applyApproval(tools, config) {
|
|
84
45
|
if (!config.enabled)
|
|
85
46
|
return tools;
|
|
@@ -96,13 +57,6 @@ export function applyApproval(tools, config) {
|
|
|
96
57
|
}
|
|
97
58
|
return result;
|
|
98
59
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Create an approval config from agent options shorthand.
|
|
101
|
-
*
|
|
102
|
-
* Supports:
|
|
103
|
-
* - `approval: true` → enable with defaults
|
|
104
|
-
* - `approval: { tools: [...], timeout: 30000 }` → custom config
|
|
105
|
-
*/
|
|
106
60
|
export function resolveApprovalConfig(input) {
|
|
107
61
|
if (!input)
|
|
108
62
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/tools/approval.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/tools/approval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,GAAG,GAAG,YAAY,CAAC,sBAAsB,CAAC,CAAC;AAsBjD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,OAAO;IACP,SAAS;IACT,YAAY;IACZ,WAAW;IACX,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,UAAqB;IACrE,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,IAAO,EACP,MAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;IAE5D,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG;YAClB,GAAG,IAAI;YACP,aAAa,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBACtC,MAAM,OAAO,GAAoB;oBAC/B,QAAQ;oBACR,KAAK;oBACL,UAAU,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE;iBACrC,CAAC;gBAEF,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;wBAChC,OAAO,CAAC,OAAO,CAAC;wBAChB,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAC/B,UAAU,CAAC,GAAG,EAAE;4BACd,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;4BAC7E,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC;wBACvC,CAAC,EAAE,OAAO,CAAC,CACZ;qBACF,CAAC,CAAC;oBACH,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;SACF,CAAC;QACF,OAAO,WAAgB,CAAC;IAC1B,CAAC;IAED,OAAO,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,IAAI,EAAO,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,MAAsB;IAClE,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAElC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IAEnC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAA2C;IAE3C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/tools/ast-grep/cli.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAY,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAKD,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4B7D;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C;AAED,wBAAsB,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/tools/ast-grep/cli.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAY,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAKD,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4B7D;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C;AAED,wBAAsB,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAoLlE;AAED,wBAAgB,cAAc,IAAI,OAAO,CAGxC;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG3D"}
|
|
@@ -108,12 +108,14 @@ export async function runSg(options) {
|
|
|
108
108
|
return;
|
|
109
109
|
}
|
|
110
110
|
const outputTruncated = stdout.length >= DEFAULT_MAX_OUTPUT_BYTES;
|
|
111
|
-
const outputToProcess = outputTruncated
|
|
111
|
+
const outputToProcess = outputTruncated
|
|
112
|
+
? stdout.substring(0, DEFAULT_MAX_OUTPUT_BYTES)
|
|
113
|
+
: stdout;
|
|
112
114
|
let matches = [];
|
|
113
115
|
try {
|
|
114
116
|
matches = JSON.parse(outputToProcess);
|
|
115
117
|
}
|
|
116
|
-
catch
|
|
118
|
+
catch {
|
|
117
119
|
if (outputTruncated) {
|
|
118
120
|
try {
|
|
119
121
|
const lastValidIndex = outputToProcess.lastIndexOf('}');
|
|
@@ -125,7 +127,7 @@ export async function runSg(options) {
|
|
|
125
127
|
}
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
|
-
catch
|
|
130
|
+
catch {
|
|
129
131
|
resolve({
|
|
130
132
|
matches: [],
|
|
131
133
|
totalMatches: 0,
|
|
@@ -148,7 +150,11 @@ export async function runSg(options) {
|
|
|
148
150
|
matches: finalMatches,
|
|
149
151
|
totalMatches,
|
|
150
152
|
truncated: outputTruncated || matchesTruncated,
|
|
151
|
-
truncatedReason: outputTruncated
|
|
153
|
+
truncatedReason: outputTruncated
|
|
154
|
+
? 'max_output_bytes'
|
|
155
|
+
: matchesTruncated
|
|
156
|
+
? 'max_matches'
|
|
157
|
+
: undefined,
|
|
152
158
|
});
|
|
153
159
|
});
|
|
154
160
|
proc.on('error', async (err) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/tools/ast-grep/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/tools/ast-grep/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/ast-grep/constants.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,qOA0BhB,CAAC;AAEX,eAAO,MAAM,cAAc,6DAA8D,CAAC;AAE1F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CA0BpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAC1C,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AACxD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAsCvC,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/ast-grep/constants.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,qOA0BhB,CAAC;AAEX,eAAO,MAAM,cAAc,6DAA8D,CAAC;AAE1F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CA0BpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAC1C,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AACxD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAsCvC,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CA6E7C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE;QACH,SAAS,EAAE,OAAO,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,IAAI,EAAE;QACJ,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,wBAAgB,gBAAgB,IAAI,sBAAsB,CAmCzD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CA4B7E"}
|
|
@@ -66,7 +66,7 @@ function isValidBinary(filePath) {
|
|
|
66
66
|
try {
|
|
67
67
|
return statSync(filePath).size > 10000;
|
|
68
68
|
}
|
|
69
|
-
catch
|
|
69
|
+
catch {
|
|
70
70
|
return false;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -98,19 +98,16 @@ export function findSgCliPath() {
|
|
|
98
98
|
return cachedCliPath;
|
|
99
99
|
}
|
|
100
100
|
const binaryName = process.platform === 'win32' ? 'sg.exe' : 'sg';
|
|
101
|
-
// Check cached binary first (from downloader)
|
|
102
101
|
const cachedPath = getCachedBinaryPath();
|
|
103
102
|
if (cachedPath && isValidBinary(cachedPath)) {
|
|
104
103
|
cachedCliPath = cachedPath;
|
|
105
104
|
return cachedPath;
|
|
106
105
|
}
|
|
107
|
-
// Check agent data directory
|
|
108
106
|
const agentBinPath = join(getDataDir(), 'agent', 'bin', binaryName);
|
|
109
107
|
if (existsSync(agentBinPath) && isValidBinary(agentBinPath)) {
|
|
110
108
|
cachedCliPath = agentBinPath;
|
|
111
109
|
return agentBinPath;
|
|
112
110
|
}
|
|
113
|
-
// Check @ast-grep/cli npm package
|
|
114
111
|
try {
|
|
115
112
|
const require = createRequire(import.meta.url);
|
|
116
113
|
const cliPkgPath = require.resolve('@ast-grep/cli/package.json');
|
|
@@ -121,10 +118,9 @@ export function findSgCliPath() {
|
|
|
121
118
|
return sgPath;
|
|
122
119
|
}
|
|
123
120
|
}
|
|
124
|
-
catch
|
|
125
|
-
|
|
121
|
+
catch {
|
|
122
|
+
void 0;
|
|
126
123
|
}
|
|
127
|
-
// Check platform-specific npm package
|
|
128
124
|
const platformPkg = getPlatformPackageName();
|
|
129
125
|
if (platformPkg) {
|
|
130
126
|
try {
|
|
@@ -138,11 +134,10 @@ export function findSgCliPath() {
|
|
|
138
134
|
return binaryPath;
|
|
139
135
|
}
|
|
140
136
|
}
|
|
141
|
-
catch
|
|
142
|
-
|
|
137
|
+
catch {
|
|
138
|
+
void 0;
|
|
143
139
|
}
|
|
144
140
|
}
|
|
145
|
-
// Check homebrew paths on macOS
|
|
146
141
|
if (process.platform === 'darwin') {
|
|
147
142
|
const homebrewPaths = ['/opt/homebrew/bin/sg', '/usr/local/bin/sg'];
|
|
148
143
|
for (const path of homebrewPaths) {
|
|
@@ -152,7 +147,6 @@ export function findSgCliPath() {
|
|
|
152
147
|
}
|
|
153
148
|
}
|
|
154
149
|
}
|
|
155
|
-
// Check system PATH
|
|
156
150
|
try {
|
|
157
151
|
const isWindows = process.platform === 'win32';
|
|
158
152
|
const cmd = isWindows ? 'where' : 'which';
|
|
@@ -165,8 +159,8 @@ export function findSgCliPath() {
|
|
|
165
159
|
}
|
|
166
160
|
}
|
|
167
161
|
}
|
|
168
|
-
catch
|
|
169
|
-
|
|
162
|
+
catch {
|
|
163
|
+
void 0;
|
|
170
164
|
}
|
|
171
165
|
return null;
|
|
172
166
|
}
|
|
@@ -206,7 +200,6 @@ export function checkEnvironment() {
|
|
|
206
200
|
else {
|
|
207
201
|
result.cli.error = `Binary not found: ${cliPath}`;
|
|
208
202
|
}
|
|
209
|
-
// Check NAPI availability
|
|
210
203
|
try {
|
|
211
204
|
createRequire(import.meta.url)('@ast-grep/napi');
|
|
212
205
|
result.napi.available = true;
|