@agntk/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +227 -0
- package/dist/advanced/index.d.ts +35 -0
- package/dist/advanced/index.d.ts.map +1 -0
- package/dist/advanced/index.js +52 -0
- package/dist/advanced/index.js.map +1 -0
- package/dist/agent.d.ts +46 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +381 -0
- package/dist/agent.js.map +1 -0
- package/dist/config/defaults.d.ts +10 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +34 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +11 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +54 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +222 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +912 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +119 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/constants.d.ts +17 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/evals/assertions.d.ts +54 -0
- package/dist/evals/assertions.d.ts.map +1 -0
- package/dist/evals/assertions.js +200 -0
- package/dist/evals/assertions.js.map +1 -0
- package/dist/evals/index.d.ts +9 -0
- package/dist/evals/index.d.ts.map +1 -0
- package/dist/evals/index.js +8 -0
- package/dist/evals/index.js.map +1 -0
- package/dist/evals/runner.d.ts +34 -0
- package/dist/evals/runner.d.ts.map +1 -0
- package/dist/evals/runner.js +186 -0
- package/dist/evals/runner.js.map +1 -0
- package/dist/evals/types.d.ts +68 -0
- package/dist/evals/types.d.ts.map +1 -0
- package/dist/evals/types.js +5 -0
- package/dist/evals/types.js.map +1 -0
- package/dist/guardrails/built-ins.d.ts +48 -0
- package/dist/guardrails/built-ins.d.ts.map +1 -0
- package/dist/guardrails/built-ins.js +149 -0
- package/dist/guardrails/built-ins.js.map +1 -0
- package/dist/guardrails/index.d.ts +8 -0
- package/dist/guardrails/index.d.ts.map +1 -0
- package/dist/guardrails/index.js +7 -0
- package/dist/guardrails/index.js.map +1 -0
- package/dist/guardrails/runner.d.ts +49 -0
- package/dist/guardrails/runner.d.ts.map +1 -0
- package/dist/guardrails/runner.js +148 -0
- package/dist/guardrails/runner.js.map +1 -0
- package/dist/guardrails/types.d.ts +63 -0
- package/dist/guardrails/types.d.ts.map +1 -0
- package/dist/guardrails/types.js +22 -0
- package/dist/guardrails/types.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- 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/extraction.d.ts +24 -0
- package/dist/memory/extraction.d.ts.map +1 -0
- package/dist/memory/extraction.js +130 -0
- package/dist/memory/extraction.js.map +1 -0
- package/dist/memory/loader.d.ts +20 -0
- package/dist/memory/loader.d.ts.map +1 -0
- package/dist/memory/loader.js +73 -0
- package/dist/memory/loader.js.map +1 -0
- package/dist/memory/store.d.ts +42 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +120 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/memory/tools.d.ts +39 -0
- package/dist/memory/tools.d.ts.map +1 -0
- package/dist/memory/tools.js +225 -0
- package/dist/memory/tools.js.map +1 -0
- package/dist/memory/types.d.ts +46 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +8 -0
- package/dist/memory/types.js.map +1 -0
- 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 +37 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +131 -0
- package/dist/models.js.map +1 -0
- package/dist/observability/index.d.ts +6 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/langfuse.d.ts +47 -0
- package/dist/observability/langfuse.d.ts.map +1 -0
- package/dist/observability/langfuse.js +112 -0
- package/dist/observability/langfuse.js.map +1 -0
- package/dist/observability/types.d.ts +37 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +5 -0
- package/dist/observability/types.js.map +1 -0
- 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/sub-agent-configs.d.ts +19 -0
- package/dist/presets/sub-agent-configs.d.ts.map +1 -0
- package/dist/presets/sub-agent-configs.js +71 -0
- package/dist/presets/sub-agent-configs.js.map +1 -0
- package/dist/presets/tool-preset-registry.d.ts +34 -0
- package/dist/presets/tool-preset-registry.d.ts.map +1 -0
- package/dist/presets/tool-preset-registry.js +107 -0
- package/dist/presets/tool-preset-registry.js.map +1 -0
- package/dist/presets/tools.d.ts +278 -0
- package/dist/presets/tools.d.ts.map +1 -0
- package/dist/presets/tools.js +108 -0
- package/dist/presets/tools.js.map +1 -0
- package/dist/prompts/context.d.ts +47 -0
- package/dist/prompts/context.d.ts.map +1 -0
- package/dist/prompts/context.js +187 -0
- package/dist/prompts/context.js.map +1 -0
- package/dist/prompts/template.d.ts +17 -0
- package/dist/prompts/template.d.ts.map +1 -0
- package/dist/prompts/template.js +32 -0
- package/dist/prompts/template.js.map +1 -0
- 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/reflection.d.ts +48 -0
- package/dist/reflection.d.ts.map +1 -0
- package/dist/reflection.js +91 -0
- package/dist/reflection.js.map +1 -0
- package/dist/skills/index.d.ts +6 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +5 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/loader.d.ts +84 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +400 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/types.d.ts +66 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +6 -0
- package/dist/skills/types.js.map +1 -0
- 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/tools/approval.d.ts +67 -0
- package/dist/tools/approval.d.ts.map +1 -0
- package/dist/tools/approval.js +113 -0
- package/dist/tools/approval.js.map +1 -0
- package/dist/tools/ast-grep/cli.d.ts +16 -0
- package/dist/tools/ast-grep/cli.d.ts.map +1 -0
- package/dist/tools/ast-grep/cli.js +198 -0
- package/dist/tools/ast-grep/cli.js.map +1 -0
- package/dist/tools/ast-grep/constants.d.ts +24 -0
- package/dist/tools/ast-grep/constants.d.ts.map +1 -0
- package/dist/tools/ast-grep/constants.js +247 -0
- package/dist/tools/ast-grep/constants.js.map +1 -0
- package/dist/tools/ast-grep/downloader.d.ts +6 -0
- package/dist/tools/ast-grep/downloader.d.ts.map +1 -0
- package/dist/tools/ast-grep/downloader.js +137 -0
- package/dist/tools/ast-grep/downloader.js.map +1 -0
- package/dist/tools/ast-grep/index.d.ts +7 -0
- package/dist/tools/ast-grep/index.d.ts.map +1 -0
- package/dist/tools/ast-grep/index.js +6 -0
- package/dist/tools/ast-grep/index.js.map +1 -0
- package/dist/tools/ast-grep/tools.d.ts +33 -0
- package/dist/tools/ast-grep/tools.d.ts.map +1 -0
- package/dist/tools/ast-grep/tools.js +140 -0
- package/dist/tools/ast-grep/tools.js.map +1 -0
- package/dist/tools/ast-grep/types.d.ts +68 -0
- package/dist/tools/ast-grep/types.d.ts.map +1 -0
- package/dist/tools/ast-grep/types.js +2 -0
- package/dist/tools/ast-grep/types.js.map +1 -0
- package/dist/tools/ast-grep/utils.d.ts +4 -0
- package/dist/tools/ast-grep/utils.d.ts.map +1 -0
- package/dist/tools/ast-grep/utils.js +55 -0
- package/dist/tools/ast-grep/utils.js.map +1 -0
- package/dist/tools/browser/index.d.ts +6 -0
- package/dist/tools/browser/index.d.ts.map +1 -0
- package/dist/tools/browser/index.js +5 -0
- package/dist/tools/browser/index.js.map +1 -0
- package/dist/tools/browser/stream.d.ts +112 -0
- package/dist/tools/browser/stream.d.ts.map +1 -0
- package/dist/tools/browser/stream.js +228 -0
- package/dist/tools/browser/stream.js.map +1 -0
- package/dist/tools/browser/tool.d.ts +144 -0
- package/dist/tools/browser/tool.d.ts.map +1 -0
- package/dist/tools/browser/tool.js +214 -0
- package/dist/tools/browser/tool.js.map +1 -0
- package/dist/tools/browser/types.d.ts +216 -0
- package/dist/tools/browser/types.d.ts.map +1 -0
- package/dist/tools/browser/types.js +146 -0
- package/dist/tools/browser/types.js.map +1 -0
- package/dist/tools/deep-reasoning/constants.d.ts +11 -0
- package/dist/tools/deep-reasoning/constants.d.ts.map +1 -0
- package/dist/tools/deep-reasoning/constants.js +35 -0
- package/dist/tools/deep-reasoning/constants.js.map +1 -0
- package/dist/tools/deep-reasoning/engine.d.ts +20 -0
- package/dist/tools/deep-reasoning/engine.d.ts.map +1 -0
- package/dist/tools/deep-reasoning/engine.js +77 -0
- package/dist/tools/deep-reasoning/engine.js.map +1 -0
- package/dist/tools/deep-reasoning/index.d.ts +5 -0
- package/dist/tools/deep-reasoning/index.d.ts.map +1 -0
- package/dist/tools/deep-reasoning/index.js +7 -0
- package/dist/tools/deep-reasoning/index.js.map +1 -0
- package/dist/tools/deep-reasoning/tools.d.ts +12 -0
- package/dist/tools/deep-reasoning/tools.d.ts.map +1 -0
- package/dist/tools/deep-reasoning/tools.js +23 -0
- package/dist/tools/deep-reasoning/tools.js.map +1 -0
- package/dist/tools/deep-reasoning/types.d.ts +66 -0
- package/dist/tools/deep-reasoning/types.d.ts.map +1 -0
- package/dist/tools/deep-reasoning/types.js +13 -0
- package/dist/tools/deep-reasoning/types.js.map +1 -0
- 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 +8 -0
- package/dist/tools/file/index.d.ts.map +1 -0
- package/dist/tools/file/index.js +8 -0
- package/dist/tools/file/index.js.map +1 -0
- package/dist/tools/file/tools.d.ts +45 -0
- package/dist/tools/file/tools.d.ts.map +1 -0
- package/dist/tools/file/tools.js +206 -0
- package/dist/tools/file/tools.js.map +1 -0
- package/dist/tools/glob/cli.d.ts +8 -0
- package/dist/tools/glob/cli.d.ts.map +1 -0
- package/dist/tools/glob/cli.js +168 -0
- package/dist/tools/glob/cli.js.map +1 -0
- package/dist/tools/glob/constants.d.ts +7 -0
- package/dist/tools/glob/constants.d.ts.map +1 -0
- package/dist/tools/glob/constants.js +17 -0
- package/dist/tools/glob/constants.js.map +1 -0
- package/dist/tools/glob/index.d.ts +6 -0
- package/dist/tools/glob/index.d.ts.map +1 -0
- package/dist/tools/glob/index.js +5 -0
- package/dist/tools/glob/index.js.map +1 -0
- package/dist/tools/glob/tools.d.ts +15 -0
- package/dist/tools/glob/tools.d.ts.map +1 -0
- package/dist/tools/glob/tools.js +74 -0
- package/dist/tools/glob/tools.js.map +1 -0
- package/dist/tools/glob/types.d.ts +20 -0
- package/dist/tools/glob/types.d.ts.map +1 -0
- package/dist/tools/glob/types.js +2 -0
- package/dist/tools/glob/types.js.map +1 -0
- package/dist/tools/glob/utils.d.ts +3 -0
- package/dist/tools/glob/utils.d.ts.map +1 -0
- package/dist/tools/glob/utils.js +20 -0
- package/dist/tools/glob/utils.js.map +1 -0
- package/dist/tools/grep/cli.d.ts +4 -0
- package/dist/tools/grep/cli.d.ts.map +1 -0
- package/dist/tools/grep/cli.js +224 -0
- package/dist/tools/grep/cli.js.map +1 -0
- package/dist/tools/grep/constants.d.ts +19 -0
- package/dist/tools/grep/constants.d.ts.map +1 -0
- package/dist/tools/grep/constants.js +115 -0
- package/dist/tools/grep/constants.js.map +1 -0
- package/dist/tools/grep/downloader.d.ts +3 -0
- package/dist/tools/grep/downloader.d.ts.map +1 -0
- package/dist/tools/grep/downloader.js +164 -0
- package/dist/tools/grep/downloader.js.map +1 -0
- package/dist/tools/grep/index.d.ts +7 -0
- package/dist/tools/grep/index.d.ts.map +1 -0
- package/dist/tools/grep/index.js +6 -0
- package/dist/tools/grep/index.js.map +1 -0
- package/dist/tools/grep/tools.d.ts +19 -0
- package/dist/tools/grep/tools.d.ts.map +1 -0
- package/dist/tools/grep/tools.js +82 -0
- package/dist/tools/grep/tools.js.map +1 -0
- package/dist/tools/grep/types.d.ts +37 -0
- package/dist/tools/grep/types.d.ts.map +1 -0
- package/dist/tools/grep/types.js +2 -0
- package/dist/tools/grep/types.js.map +1 -0
- package/dist/tools/grep/utils.d.ts +4 -0
- package/dist/tools/grep/utils.d.ts.map +1 -0
- package/dist/tools/grep/utils.js +41 -0
- package/dist/tools/grep/utils.js.map +1 -0
- package/dist/tools/index.d.ts +21 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +33 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/model-retry.d.ts +54 -0
- package/dist/tools/model-retry.d.ts.map +1 -0
- package/dist/tools/model-retry.js +110 -0
- package/dist/tools/model-retry.js.map +1 -0
- package/dist/tools/plan/constants.d.ts +18 -0
- package/dist/tools/plan/constants.d.ts.map +1 -0
- package/dist/tools/plan/constants.js +13 -0
- package/dist/tools/plan/constants.js.map +1 -0
- package/dist/tools/plan/index.d.ts +5 -0
- package/dist/tools/plan/index.d.ts.map +1 -0
- package/dist/tools/plan/index.js +7 -0
- package/dist/tools/plan/index.js.map +1 -0
- package/dist/tools/plan/tools.d.ts +16 -0
- package/dist/tools/plan/tools.d.ts.map +1 -0
- package/dist/tools/plan/tools.js +217 -0
- package/dist/tools/plan/tools.js.map +1 -0
- package/dist/tools/plan/types.d.ts +75 -0
- package/dist/tools/plan/types.d.ts.map +1 -0
- package/dist/tools/plan/types.js +16 -0
- package/dist/tools/plan/types.js.map +1 -0
- package/dist/tools/plan/utils.d.ts +9 -0
- package/dist/tools/plan/utils.d.ts.map +1 -0
- package/dist/tools/plan/utils.js +27 -0
- package/dist/tools/plan/utils.js.map +1 -0
- package/dist/tools/progress/index.d.ts +53 -0
- package/dist/tools/progress/index.d.ts.map +1 -0
- package/dist/tools/progress/index.js +144 -0
- package/dist/tools/progress/index.js.map +1 -0
- 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 +44 -0
- package/dist/tools/search-skills.d.ts.map +1 -0
- package/dist/tools/search-skills.js +134 -0
- package/dist/tools/search-skills.js.map +1 -0
- package/dist/tools/shell/background.d.ts +38 -0
- package/dist/tools/shell/background.d.ts.map +1 -0
- package/dist/tools/shell/background.js +229 -0
- package/dist/tools/shell/background.js.map +1 -0
- package/dist/tools/shell/constants.d.ts +10 -0
- package/dist/tools/shell/constants.d.ts.map +1 -0
- package/dist/tools/shell/constants.js +55 -0
- package/dist/tools/shell/constants.js.map +1 -0
- package/dist/tools/shell/index.d.ts +7 -0
- package/dist/tools/shell/index.d.ts.map +1 -0
- package/dist/tools/shell/index.js +5 -0
- package/dist/tools/shell/index.js.map +1 -0
- package/dist/tools/shell/tools.d.ts +22 -0
- package/dist/tools/shell/tools.d.ts.map +1 -0
- package/dist/tools/shell/tools.js +70 -0
- package/dist/tools/shell/tools.js.map +1 -0
- package/dist/tools/shell/types.d.ts +30 -0
- package/dist/tools/shell/types.d.ts.map +1 -0
- package/dist/tools/shell/types.js +10 -0
- package/dist/tools/shell/types.js.map +1 -0
- package/dist/tools/shell/utils.d.ts +7 -0
- package/dist/tools/shell/utils.d.ts.map +1 -0
- package/dist/tools/shell/utils.js +26 -0
- package/dist/tools/shell/utils.js.map +1 -0
- package/dist/tools/spawn-agent/index.d.ts +96 -0
- package/dist/tools/spawn-agent/index.d.ts.map +1 -0
- package/dist/tools/spawn-agent/index.js +168 -0
- package/dist/tools/spawn-agent/index.js.map +1 -0
- package/dist/tools/utils/errors.d.ts +21 -0
- package/dist/tools/utils/errors.d.ts.map +1 -0
- package/dist/tools/utils/errors.js +29 -0
- package/dist/tools/utils/errors.js.map +1 -0
- package/dist/tools/utils/shell.d.ts +23 -0
- package/dist/tools/utils/shell.d.ts.map +1 -0
- package/dist/tools/utils/shell.js +99 -0
- package/dist/tools/utils/shell.js.map +1 -0
- package/dist/tools/utils/tool-result.d.ts +6 -0
- package/dist/tools/utils/tool-result.d.ts.map +1 -0
- package/dist/tools/utils/tool-result.js +22 -0
- package/dist/tools/utils/tool-result.js.map +1 -0
- package/dist/types/agent.d.ts +218 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +6 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lifecycle.d.ts +218 -0
- package/dist/types/lifecycle.d.ts.map +1 -0
- package/dist/types/lifecycle.js +99 -0
- package/dist/types/lifecycle.js.map +1 -0
- package/dist/types/streaming.d.ts +120 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/streaming.js +6 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/usage-limits.d.ts +63 -0
- package/dist/usage-limits.d.ts.map +1 -0
- package/dist/usage-limits.js +88 -0
- package/dist/usage-limits.js.map +1 -0
- 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 +103 -0
- package/dist/workflow/durable-tool.d.ts.map +1 -0
- package/dist/workflow/durable-tool.js +173 -0
- package/dist/workflow/durable-tool.js.map +1 -0
- package/dist/workflow/hooks.d.ts +318 -0
- package/dist/workflow/hooks.d.ts.map +1 -0
- package/dist/workflow/hooks.js +629 -0
- package/dist/workflow/hooks.js.map +1 -0
- package/dist/workflow/index.d.ts +17 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +24 -0
- package/dist/workflow/index.js.map +1 -0
- 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 +29 -0
- package/dist/workflow/utils.d.ts.map +1 -0
- package/dist/workflow/utils.js +84 -0
- package/dist/workflow/utils.js.map +1 -0
- package/dist/wrappers/best-of-n.d.ts +69 -0
- package/dist/wrappers/best-of-n.d.ts.map +1 -0
- package/dist/wrappers/best-of-n.js +242 -0
- package/dist/wrappers/best-of-n.js.map +1 -0
- package/package.json +101 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agntk/core - Unified Memory Engine
|
|
3
|
+
*
|
|
4
|
+
* Single write path: remember() → LLM extraction → parallel writes to Vectra + Graph.
|
|
5
|
+
* Implements Mem0 ADD/UPDATE/DELETE/NOOP pattern with Hindsight 4-network taxonomy.
|
|
6
|
+
*
|
|
7
|
+
* Architecture:
|
|
8
|
+
* - VectorStore: Semantic similarity search (Vectra)
|
|
9
|
+
* - GraphStore: Structural relationships (Graphology via QueryPort)
|
|
10
|
+
* - ExtractionModel: LLM-powered fact extraction
|
|
11
|
+
* - ContradictionDetector: Write-time conflict detection
|
|
12
|
+
*/
|
|
13
|
+
import { createLogger } from '@agntk/logger';
|
|
14
|
+
import { extractFacts, } from './extraction.js';
|
|
15
|
+
const log = createLogger('@agntk/core:memory-engine');
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Implementation
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Create a unified memory engine.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const engine = createMemoryEngine({
|
|
25
|
+
* vectorStore: await createMemoryStore({ path: './.memory' }),
|
|
26
|
+
* graphStore: new GraphologyAdapter(),
|
|
27
|
+
* extractionModel: openai('gpt-4o-mini'),
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Single remember() does extraction + parallel writes
|
|
31
|
+
* const result = await engine.remember('TypeScript 5.3 supports import attributes');
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export function createMemoryEngine(config) {
|
|
35
|
+
const { vectorStore, graphStore, extractionModel, contradictionDetector, defaultTopK = 5, defaultThreshold = 0.7, } = config;
|
|
36
|
+
return {
|
|
37
|
+
async remember(text, metadata) {
|
|
38
|
+
const writeId = generateWriteId();
|
|
39
|
+
const timestamp = new Date().toISOString();
|
|
40
|
+
log.debug('remember() — unified write path', { writeId, textLength: text.length });
|
|
41
|
+
// Step 1: Extract facts via LLM (if model provided)
|
|
42
|
+
let facts = [];
|
|
43
|
+
if (extractionModel) {
|
|
44
|
+
try {
|
|
45
|
+
const done = log.time('extraction');
|
|
46
|
+
const result = await extractFacts(text, { model: extractionModel });
|
|
47
|
+
facts = result.facts;
|
|
48
|
+
done();
|
|
49
|
+
log.info('Extraction complete', { factCount: facts.length });
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
log.warn('Extraction failed, continuing with raw text', { error: String(error) });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Step 2: Check for contradictions against existing memories
|
|
56
|
+
let contradictionResult;
|
|
57
|
+
if (contradictionDetector && facts.length > 0) {
|
|
58
|
+
try {
|
|
59
|
+
contradictionResult = await detectContradictions(facts, vectorStore, contradictionDetector, graphStore, defaultTopK, defaultThreshold);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
log.warn('Contradiction detection failed, continuing', { error: String(error) });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Step 3: Determine operation type
|
|
66
|
+
const operation = contradictionResult ? 'UPDATE' : 'ADD';
|
|
67
|
+
// Step 4: Parallel writes to vector store + graph store
|
|
68
|
+
const writePromises = [];
|
|
69
|
+
let vectorStoreId;
|
|
70
|
+
let graphStoreId;
|
|
71
|
+
// Vector store: store the raw text + extracted facts as metadata
|
|
72
|
+
writePromises.push(vectorStore.remember(text, {
|
|
73
|
+
...metadata,
|
|
74
|
+
writeId,
|
|
75
|
+
timestamp,
|
|
76
|
+
operation,
|
|
77
|
+
networks: facts.map((f) => f.network),
|
|
78
|
+
factCount: facts.length,
|
|
79
|
+
facts: facts.map((f) => f.fact),
|
|
80
|
+
}).then((id) => { vectorStoreId = id; }));
|
|
81
|
+
// Graph store: create episode + link entities
|
|
82
|
+
if (graphStore && facts.length > 0) {
|
|
83
|
+
const episodeType = classifyEpisodeType(facts);
|
|
84
|
+
const entityNames = [...new Set(facts.flatMap((f) => f.entities.map((e) => e.name)))];
|
|
85
|
+
const relationshipStrings = facts.flatMap((f) => f.relationships.map((r) => `${r.from}-[${r.type}]->${r.to}`));
|
|
86
|
+
writePromises.push((async () => {
|
|
87
|
+
await graphStore.upsertEpisode({
|
|
88
|
+
id: writeId,
|
|
89
|
+
timestamp,
|
|
90
|
+
type: episodeType,
|
|
91
|
+
summary: facts.map((f) => f.fact).join('; '),
|
|
92
|
+
content: text,
|
|
93
|
+
entities: entityNames,
|
|
94
|
+
relationships: relationshipStrings,
|
|
95
|
+
});
|
|
96
|
+
graphStoreId = writeId;
|
|
97
|
+
// Link entities to the episode
|
|
98
|
+
for (const entityName of entityNames) {
|
|
99
|
+
await graphStore.linkEpisodeEntity(writeId, entityName);
|
|
100
|
+
}
|
|
101
|
+
})());
|
|
102
|
+
}
|
|
103
|
+
await Promise.all(writePromises);
|
|
104
|
+
log.info('Unified write complete', {
|
|
105
|
+
writeId,
|
|
106
|
+
operation,
|
|
107
|
+
factCount: facts.length,
|
|
108
|
+
vectorStoreId,
|
|
109
|
+
graphStoreId,
|
|
110
|
+
hasContradiction: !!contradictionResult,
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
id: writeId,
|
|
114
|
+
operation,
|
|
115
|
+
facts,
|
|
116
|
+
vectorStoreId,
|
|
117
|
+
graphStoreId,
|
|
118
|
+
contradiction: contradictionResult,
|
|
119
|
+
};
|
|
120
|
+
},
|
|
121
|
+
async recall(query, options) {
|
|
122
|
+
return vectorStore.recall(query, {
|
|
123
|
+
topK: options?.topK ?? defaultTopK,
|
|
124
|
+
threshold: options?.threshold ?? defaultThreshold,
|
|
125
|
+
});
|
|
126
|
+
},
|
|
127
|
+
async queryKnowledge(query, limit = 10) {
|
|
128
|
+
if (!graphStore) {
|
|
129
|
+
log.debug('queryKnowledge called without graph store — returning empty');
|
|
130
|
+
return [];
|
|
131
|
+
}
|
|
132
|
+
const episodes = await graphStore.getEpisodesByQuery(query, limit);
|
|
133
|
+
return episodes.map((ep) => ({
|
|
134
|
+
id: ep.id ?? ep.properties?.id,
|
|
135
|
+
summary: ep.summary ?? ep.properties?.summary,
|
|
136
|
+
content: ep.content ?? ep.properties?.content,
|
|
137
|
+
timestamp: ep.timestamp ?? ep.properties?.timestamp,
|
|
138
|
+
type: ep.type ?? ep.properties?.type,
|
|
139
|
+
}));
|
|
140
|
+
},
|
|
141
|
+
async forget(id) {
|
|
142
|
+
return vectorStore.forget(id);
|
|
143
|
+
},
|
|
144
|
+
async count() {
|
|
145
|
+
return vectorStore.count();
|
|
146
|
+
},
|
|
147
|
+
async close() {
|
|
148
|
+
await vectorStore.close();
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
// ============================================================================
|
|
153
|
+
// Helpers
|
|
154
|
+
// ============================================================================
|
|
155
|
+
function generateWriteId() {
|
|
156
|
+
return `mem_${Date.now()}_${Math.random().toString(36).slice(2, 11)}`;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Classify the episode type based on the dominant memory network.
|
|
160
|
+
*/
|
|
161
|
+
function classifyEpisodeType(facts) {
|
|
162
|
+
const counts = {
|
|
163
|
+
world_fact: 0,
|
|
164
|
+
experience: 0,
|
|
165
|
+
entity_summary: 0,
|
|
166
|
+
belief: 0,
|
|
167
|
+
};
|
|
168
|
+
for (const fact of facts) {
|
|
169
|
+
counts[fact.network]++;
|
|
170
|
+
}
|
|
171
|
+
// Map network types to episode types
|
|
172
|
+
if (counts.experience > 0)
|
|
173
|
+
return 'action';
|
|
174
|
+
if (counts.belief > 0)
|
|
175
|
+
return 'decision';
|
|
176
|
+
if (counts.entity_summary > counts.world_fact)
|
|
177
|
+
return 'observation';
|
|
178
|
+
return 'learning';
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Check new facts against existing memories for contradictions.
|
|
182
|
+
*/
|
|
183
|
+
async function detectContradictions(newFacts, vectorStore, detector, graphStore, topK, threshold) {
|
|
184
|
+
// For each new world_fact or belief, check against similar existing memories
|
|
185
|
+
const checkableFacts = newFacts.filter((f) => f.network === 'world_fact' || f.network === 'belief');
|
|
186
|
+
for (const newFact of checkableFacts) {
|
|
187
|
+
const existing = await vectorStore.recall(newFact.fact, { topK, threshold });
|
|
188
|
+
for (const match of existing) {
|
|
189
|
+
const contradiction = detector.detect(match.item.text, newFact.fact, { id: match.item.id, source: 'memory', timestamp: match.item.timestamp.toISOString() }, { id: 'new', source: 'input', timestamp: new Date().toISOString() });
|
|
190
|
+
if (contradiction) {
|
|
191
|
+
log.info('Contradiction detected', {
|
|
192
|
+
existing: match.item.text.slice(0, 80),
|
|
193
|
+
new: newFact.fact.slice(0, 80),
|
|
194
|
+
});
|
|
195
|
+
// Store the contradiction in graph store if available
|
|
196
|
+
if (graphStore) {
|
|
197
|
+
try {
|
|
198
|
+
await graphStore.upsertContradiction({
|
|
199
|
+
id: contradiction.id,
|
|
200
|
+
detectedAt: contradiction.detectedAt,
|
|
201
|
+
resolution_winner: null,
|
|
202
|
+
resolution_reasoning: null,
|
|
203
|
+
factA_id: match.item.id,
|
|
204
|
+
factA_statement: match.item.text,
|
|
205
|
+
factA_source: 'memory',
|
|
206
|
+
factA_timestamp: match.item.timestamp.toISOString(),
|
|
207
|
+
factB_id: 'new',
|
|
208
|
+
factB_statement: newFact.fact,
|
|
209
|
+
factB_source: 'input',
|
|
210
|
+
factB_timestamp: new Date().toISOString(),
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
log.warn('Failed to store contradiction in graph', { error: String(error) });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
id: contradiction.id,
|
|
219
|
+
existingFact: match.item.text,
|
|
220
|
+
newFact: newFact.fact,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/memory/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agntk/core - Memory Extraction Pipeline
|
|
3
|
+
*
|
|
4
|
+
* LLM-powered extraction for the markdown-based memory system.
|
|
5
|
+
* The LLM receives current memory.md + new input and returns updated memory.md.
|
|
6
|
+
* No vector store, no embeddings — the LLM handles curation, dedup, and contradiction detection.
|
|
7
|
+
*/
|
|
8
|
+
import { type LanguageModel } from 'ai';
|
|
9
|
+
/** Hindsight 4-network memory taxonomy (used as section headers in memory.md) */
|
|
10
|
+
export type MemoryNetworkType = 'world_fact' | 'experience' | 'entity_summary' | 'belief';
|
|
11
|
+
export declare const EMPTY_MEMORY_MD = "# Memory\n\n## World Facts\n\n## Decisions\n\n## Entity Knowledge\n\n## Preferences & Patterns\n";
|
|
12
|
+
/**
|
|
13
|
+
* Send current memory + new input to LLM, get back updated memory.md content.
|
|
14
|
+
*/
|
|
15
|
+
export declare function extractAndUpdateMemory(currentMemory: string | null, input: string, model: LanguageModel): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Send current memory + fact to forget to LLM, get back updated memory.md content.
|
|
18
|
+
*/
|
|
19
|
+
export declare function forgetFromMemory(currentMemory: string | null, factToForget: string, model: LanguageModel): Promise<string>;
|
|
20
|
+
/**
|
|
21
|
+
* Generate a formatted decision log entry from a decision description.
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateDecisionEntry(input: string, model: LanguageModel): Promise<string>;
|
|
24
|
+
//# sourceMappingURL=extraction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/memory/extraction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAStD,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAsD1F,eAAO,MAAM,eAAe,qGAS3B,CAAC;AAMF;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,MAAM,CAAC,CAcjB"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agntk/core - Memory Extraction Pipeline
|
|
3
|
+
*
|
|
4
|
+
* LLM-powered extraction for the markdown-based memory system.
|
|
5
|
+
* The LLM receives current memory.md + new input and returns updated memory.md.
|
|
6
|
+
* No vector store, no embeddings — the LLM handles curation, dedup, and contradiction detection.
|
|
7
|
+
*/
|
|
8
|
+
import { generateText } from 'ai';
|
|
9
|
+
import { createLogger } from '@agntk/logger';
|
|
10
|
+
const log = createLogger('@agntk/core:extraction');
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Prompts
|
|
13
|
+
// ============================================================================
|
|
14
|
+
const MEMORY_UPDATE_PROMPT = `You are a memory manager. Given the input and the current contents of memory.md, determine what to update.
|
|
15
|
+
|
|
16
|
+
CURRENT MEMORY.MD:
|
|
17
|
+
{CURRENT_MEMORY}
|
|
18
|
+
|
|
19
|
+
INPUT TO PROCESS:
|
|
20
|
+
"{INPUT}"
|
|
21
|
+
|
|
22
|
+
Respond with the updated memory.md contents. Rules:
|
|
23
|
+
- Add new facts under the appropriate section (World Facts, Decisions, Entity Knowledge, Preferences & Patterns)
|
|
24
|
+
- If a new fact contradicts an existing one, REPLACE the old fact
|
|
25
|
+
- If the fact is already captured, skip it
|
|
26
|
+
- Keep each section concise — facts as bullet points, one line each
|
|
27
|
+
- Remove facts that are no longer true
|
|
28
|
+
- Maximum ~200 lines total
|
|
29
|
+
- Always include all 4 section headers, even if a section is empty
|
|
30
|
+
|
|
31
|
+
Respond ONLY with the updated memory.md content. No explanations.`;
|
|
32
|
+
const MEMORY_FORGET_PROMPT = `You are a memory manager. Remove the specified fact from the current memory.md contents.
|
|
33
|
+
|
|
34
|
+
CURRENT MEMORY.MD:
|
|
35
|
+
{CURRENT_MEMORY}
|
|
36
|
+
|
|
37
|
+
FACT TO REMOVE:
|
|
38
|
+
"{INPUT}"
|
|
39
|
+
|
|
40
|
+
Remove the fact (or the closest matching fact) from memory.md. If the fact is not found, return the contents unchanged.
|
|
41
|
+
|
|
42
|
+
Respond ONLY with the updated memory.md content. No explanations.`;
|
|
43
|
+
const DECISION_ENTRY_PROMPT = `You are a decision logger. A decision was just made. Write a concise log entry in this exact format:
|
|
44
|
+
|
|
45
|
+
## {DATE} — [Decision Title]
|
|
46
|
+
**Context:** [Why this came up]
|
|
47
|
+
**Decision:** [What was decided]
|
|
48
|
+
**Rationale:** [Why this choice]
|
|
49
|
+
**Alternatives considered:** [What else was considered, if any]
|
|
50
|
+
|
|
51
|
+
The decision:
|
|
52
|
+
"{INPUT}"
|
|
53
|
+
|
|
54
|
+
Respond ONLY with the formatted decision entry. No explanations.`;
|
|
55
|
+
// ============================================================================
|
|
56
|
+
// Empty memory template
|
|
57
|
+
// ============================================================================
|
|
58
|
+
export const EMPTY_MEMORY_MD = `# Memory
|
|
59
|
+
|
|
60
|
+
## World Facts
|
|
61
|
+
|
|
62
|
+
## Decisions
|
|
63
|
+
|
|
64
|
+
## Entity Knowledge
|
|
65
|
+
|
|
66
|
+
## Preferences & Patterns
|
|
67
|
+
`;
|
|
68
|
+
// ============================================================================
|
|
69
|
+
// Extraction Functions
|
|
70
|
+
// ============================================================================
|
|
71
|
+
/**
|
|
72
|
+
* Send current memory + new input to LLM, get back updated memory.md content.
|
|
73
|
+
*/
|
|
74
|
+
export async function extractAndUpdateMemory(currentMemory, input, model) {
|
|
75
|
+
const memory = currentMemory?.trim() || EMPTY_MEMORY_MD;
|
|
76
|
+
const prompt = MEMORY_UPDATE_PROMPT
|
|
77
|
+
.replace('{CURRENT_MEMORY}', memory)
|
|
78
|
+
.replace('{INPUT}', input.replace(/"/g, '\\"'));
|
|
79
|
+
log.debug('Extracting memory update', { inputLength: input.length, memoryLength: memory.length });
|
|
80
|
+
try {
|
|
81
|
+
const { text } = await generateText({ model, prompt, temperature: 0.1 });
|
|
82
|
+
const result = text.trim();
|
|
83
|
+
if (!result) {
|
|
84
|
+
log.warn('Empty extraction result, returning current memory');
|
|
85
|
+
return memory;
|
|
86
|
+
}
|
|
87
|
+
log.debug('Memory updated', { oldLength: memory.length, newLength: result.length });
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
log.error('Memory extraction failed', { error: error instanceof Error ? error.message : String(error) });
|
|
92
|
+
return memory;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Send current memory + fact to forget to LLM, get back updated memory.md content.
|
|
97
|
+
*/
|
|
98
|
+
export async function forgetFromMemory(currentMemory, factToForget, model) {
|
|
99
|
+
const memory = currentMemory?.trim() || EMPTY_MEMORY_MD;
|
|
100
|
+
const prompt = MEMORY_FORGET_PROMPT
|
|
101
|
+
.replace('{CURRENT_MEMORY}', memory)
|
|
102
|
+
.replace('{INPUT}', factToForget.replace(/"/g, '\\"'));
|
|
103
|
+
try {
|
|
104
|
+
const { text } = await generateText({ model, prompt, temperature: 0.1 });
|
|
105
|
+
return text.trim() || memory;
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
log.error('Memory forget failed', { error: error instanceof Error ? error.message : String(error) });
|
|
109
|
+
return memory;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Generate a formatted decision log entry from a decision description.
|
|
114
|
+
*/
|
|
115
|
+
export async function generateDecisionEntry(input, model) {
|
|
116
|
+
const date = new Date().toISOString().split('T')[0];
|
|
117
|
+
const prompt = DECISION_ENTRY_PROMPT
|
|
118
|
+
.replace('{DATE}', date)
|
|
119
|
+
.replace('{INPUT}', input.replace(/"/g, '\\"'));
|
|
120
|
+
try {
|
|
121
|
+
const { text } = await generateText({ model, prompt, temperature: 0.2 });
|
|
122
|
+
return text.trim();
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
log.error('Decision entry generation failed', { error: error instanceof Error ? error.message : String(error) });
|
|
126
|
+
// Fallback: simple entry
|
|
127
|
+
return `## ${date} — Decision\n**Decision:** ${input}`;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=extraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction.js","sourceRoot":"","sources":["../../src/memory/extraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agntk/core - Memory Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads memory files from a MemoryStore and formats them as a string
|
|
5
|
+
* for injection into the agent's system prompt.
|
|
6
|
+
*
|
|
7
|
+
* Load order (from PLAN.md):
|
|
8
|
+
* 1. ~/.agntk/identity.md
|
|
9
|
+
* 2. ~/.agntk/preferences.md
|
|
10
|
+
* 3. .agntk/project.md (or CLAUDE.md / AGENTS.md)
|
|
11
|
+
* 4. .agntk/memory.md
|
|
12
|
+
* 5. .agntk/context.md
|
|
13
|
+
*/
|
|
14
|
+
import type { MemoryStore } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Load all always-on memory files and format as a system prompt section.
|
|
17
|
+
* Missing files are silently skipped.
|
|
18
|
+
*/
|
|
19
|
+
export declare function loadMemoryContext(store: MemoryStore): Promise<string>;
|
|
20
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/memory/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQ3C;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAwD3E"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agntk/core - Memory Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads memory files from a MemoryStore and formats them as a string
|
|
5
|
+
* for injection into the agent's system prompt.
|
|
6
|
+
*
|
|
7
|
+
* Load order (from PLAN.md):
|
|
8
|
+
* 1. ~/.agntk/identity.md
|
|
9
|
+
* 2. ~/.agntk/preferences.md
|
|
10
|
+
* 3. .agntk/project.md (or CLAUDE.md / AGENTS.md)
|
|
11
|
+
* 4. .agntk/memory.md
|
|
12
|
+
* 5. .agntk/context.md
|
|
13
|
+
*/
|
|
14
|
+
import { createLogger } from '@agntk/logger';
|
|
15
|
+
const log = createLogger('@agntk/core:memory-loader');
|
|
16
|
+
/** Rough token estimate: ~4 chars per token */
|
|
17
|
+
const CHARS_PER_TOKEN = 4;
|
|
18
|
+
const TOKEN_WARNING_THRESHOLD = 2000;
|
|
19
|
+
/**
|
|
20
|
+
* Load all always-on memory files and format as a system prompt section.
|
|
21
|
+
* Missing files are silently skipped.
|
|
22
|
+
*/
|
|
23
|
+
export async function loadMemoryContext(store) {
|
|
24
|
+
const sections = [];
|
|
25
|
+
// 1. Identity (global, human-authored)
|
|
26
|
+
const identity = await store.loadIdentity();
|
|
27
|
+
if (identity) {
|
|
28
|
+
sections.push(formatSection('Identity', identity));
|
|
29
|
+
}
|
|
30
|
+
// 2. Preferences (global, agent-curated)
|
|
31
|
+
const preferences = await store.loadPreferences();
|
|
32
|
+
if (preferences) {
|
|
33
|
+
sections.push(formatSection('Preferences', preferences));
|
|
34
|
+
}
|
|
35
|
+
// 3. Project (local, human-authored — falls back to CLAUDE.md / AGENTS.md)
|
|
36
|
+
const project = await store.loadProject();
|
|
37
|
+
if (project) {
|
|
38
|
+
sections.push(formatSection('Project', project));
|
|
39
|
+
}
|
|
40
|
+
// 4. Memory (local, agent-curated facts)
|
|
41
|
+
const memory = await store.loadMemory();
|
|
42
|
+
if (memory) {
|
|
43
|
+
sections.push(formatSection('Memory', memory));
|
|
44
|
+
}
|
|
45
|
+
// 5. Context (local, agent-rewritten each session)
|
|
46
|
+
const context = await store.loadContext();
|
|
47
|
+
if (context) {
|
|
48
|
+
sections.push(formatSection('Current Context', context));
|
|
49
|
+
}
|
|
50
|
+
if (sections.length === 0) {
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
53
|
+
const result = '# Persistent Memory\n\n' + sections.join('\n\n');
|
|
54
|
+
// Warn if memory context is large
|
|
55
|
+
const estimatedTokens = Math.ceil(result.length / CHARS_PER_TOKEN);
|
|
56
|
+
if (estimatedTokens > TOKEN_WARNING_THRESHOLD) {
|
|
57
|
+
log.warn('Memory context is large', {
|
|
58
|
+
estimatedTokens,
|
|
59
|
+
threshold: TOKEN_WARNING_THRESHOLD,
|
|
60
|
+
chars: result.length,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
log.debug('Memory context loaded', {
|
|
64
|
+
sections: sections.length,
|
|
65
|
+
chars: result.length,
|
|
66
|
+
estimatedTokens,
|
|
67
|
+
});
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
function formatSection(title, content) {
|
|
71
|
+
return `## ${title}\n\n${content}`;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/memory/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,GAAG,GAAG,YAAY,CAAC,2BAA2B,CAAC,CAAC;AAEtD,+CAA+C;AAC/C,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAkB;IACxD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,uCAAuC;IACvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,yCAAyC;IACzC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;IAClD,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,2EAA2E;IAC3E,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,yCAAyC;IACzC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IACxC,IAAI,MAAM,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,mDAAmD;IACnD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,yBAAyB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjE,kCAAkC;IAClC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;IACnE,IAAI,eAAe,GAAG,uBAAuB,EAAE,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAClC,eAAe;YACf,SAAS,EAAE,uBAAuB;YAClC,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE;QACjC,QAAQ,EAAE,QAAQ,CAAC,MAAM;QACzB,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,OAAe;IACnD,OAAO,MAAM,KAAK,OAAO,OAAO,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agntk/core - MarkdownMemoryStore
|
|
3
|
+
*
|
|
4
|
+
* File-based MemoryStore implementation that reads/writes .agntk/ markdown files.
|
|
5
|
+
* Zero dependencies beyond Node.js built-ins.
|
|
6
|
+
*/
|
|
7
|
+
import type { MemoryStore } from './types.js';
|
|
8
|
+
export interface MarkdownMemoryStoreOptions {
|
|
9
|
+
/** Project-local memory directory. Default: '.agntk' (relative to workspaceRoot) */
|
|
10
|
+
projectDir?: string;
|
|
11
|
+
/** Global memory directory. Default: '~/.agntk' */
|
|
12
|
+
globalDir?: string;
|
|
13
|
+
/** Workspace root for resolving project directory. Default: process.cwd() */
|
|
14
|
+
workspaceRoot?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Reads/writes markdown memory files from .agntk/ and ~/.agntk/ directories.
|
|
18
|
+
*/
|
|
19
|
+
export declare class MarkdownMemoryStore implements MemoryStore {
|
|
20
|
+
private readonly projectPath;
|
|
21
|
+
private readonly globalPath;
|
|
22
|
+
private readonly workspaceRoot;
|
|
23
|
+
constructor(options?: MarkdownMemoryStoreOptions);
|
|
24
|
+
loadIdentity(): Promise<string | null>;
|
|
25
|
+
loadPreferences(): Promise<string | null>;
|
|
26
|
+
loadProject(): Promise<string | null>;
|
|
27
|
+
loadMemory(): Promise<string | null>;
|
|
28
|
+
loadContext(): Promise<string | null>;
|
|
29
|
+
loadDecisions(): Promise<string | null>;
|
|
30
|
+
saveContext(content: string): Promise<void>;
|
|
31
|
+
saveMemory(content: string): Promise<void>;
|
|
32
|
+
savePreferences(content: string): Promise<void>;
|
|
33
|
+
appendDecision(entry: string): Promise<void>;
|
|
34
|
+
/** Get the resolved project directory path */
|
|
35
|
+
getProjectPath(): string;
|
|
36
|
+
/** Get the resolved global directory path */
|
|
37
|
+
getGlobalPath(): string;
|
|
38
|
+
private readFileOrNull;
|
|
39
|
+
private writeFileSafe;
|
|
40
|
+
private ensureDir;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/memory/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA2B3C,MAAM,WAAW,0BAA0B;IACzC,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,OAAO,GAAE,0BAA+B;IAQ9C,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAItC,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzC,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBrC,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIpC,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIrC,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMvC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlD,8CAA8C;IAC9C,cAAc,IAAI,MAAM;IAIxB,6CAA6C;IAC7C,aAAa,IAAI,MAAM;YAMT,cAAc;YASd,aAAa;YAOb,SAAS;CAMxB"}
|