@amodalai/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/LICENSE +21 -0
- package/dist/.last_build +0 -0
- package/dist/src/amodal-config.d.ts +194 -0
- package/dist/src/amodal-config.js +326 -0
- package/dist/src/amodal-config.js.map +1 -0
- package/dist/src/audit/audit-logger.d.ts +52 -0
- package/dist/src/audit/audit-logger.js +137 -0
- package/dist/src/audit/audit-logger.js.map +1 -0
- package/dist/src/audit/audit-outputs.d.ts +34 -0
- package/dist/src/audit/audit-outputs.js +73 -0
- package/dist/src/audit/audit-outputs.js.map +1 -0
- package/dist/src/audit/audit-redact.d.ts +14 -0
- package/dist/src/audit/audit-redact.js +55 -0
- package/dist/src/audit/audit-redact.js.map +1 -0
- package/dist/src/audit/audit-types.d.ts +122 -0
- package/dist/src/audit/audit-types.js +64 -0
- package/dist/src/audit/audit-types.js.map +1 -0
- package/dist/src/audit/index.d.ts +10 -0
- package/dist/src/audit/index.js +10 -0
- package/dist/src/audit/index.js.map +1 -0
- package/dist/src/eval/eval-cost.d.ts +33 -0
- package/dist/src/eval/eval-cost.js +73 -0
- package/dist/src/eval/eval-cost.js.map +1 -0
- package/dist/src/eval/eval-diff.d.ts +11 -0
- package/dist/src/eval/eval-diff.js +97 -0
- package/dist/src/eval/eval-diff.js.map +1 -0
- package/dist/src/eval/eval-formatter.d.ts +23 -0
- package/dist/src/eval/eval-formatter.js +221 -0
- package/dist/src/eval/eval-formatter.js.map +1 -0
- package/dist/src/eval/eval-judge.d.ts +26 -0
- package/dist/src/eval/eval-judge.js +76 -0
- package/dist/src/eval/eval-judge.js.map +1 -0
- package/dist/src/eval/eval-run-builder.d.ts +25 -0
- package/dist/src/eval/eval-run-builder.js +78 -0
- package/dist/src/eval/eval-run-builder.js.map +1 -0
- package/dist/src/eval/eval-runner.d.ts +36 -0
- package/dist/src/eval/eval-runner.js +92 -0
- package/dist/src/eval/eval-runner.js.map +1 -0
- package/dist/src/eval/eval-session-provider.d.ts +40 -0
- package/dist/src/eval/eval-session-provider.js +46 -0
- package/dist/src/eval/eval-session-provider.js.map +1 -0
- package/dist/src/eval/eval-types.d.ts +146 -0
- package/dist/src/eval/eval-types.js +7 -0
- package/dist/src/eval/eval-types.js.map +1 -0
- package/dist/src/eval/experiment-runner.d.ts +16 -0
- package/dist/src/eval/experiment-runner.js +73 -0
- package/dist/src/eval/experiment-runner.js.map +1 -0
- package/dist/src/eval/experiment-types.d.ts +56 -0
- package/dist/src/eval/experiment-types.js +7 -0
- package/dist/src/eval/experiment-types.js.map +1 -0
- package/dist/src/eval/index.d.ts +22 -0
- package/dist/src/eval/index.js +18 -0
- package/dist/src/eval/index.js.map +1 -0
- package/dist/src/eval/multi-model-runner.d.ts +42 -0
- package/dist/src/eval/multi-model-runner.js +70 -0
- package/dist/src/eval/multi-model-runner.js.map +1 -0
- package/dist/src/eval/platform-eval-client.d.ts +105 -0
- package/dist/src/eval/platform-eval-client.js +155 -0
- package/dist/src/eval/platform-eval-client.js.map +1 -0
- package/dist/src/index.d.ts +41 -0
- package/dist/src/index.js +68 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/knowledge/index.d.ts +11 -0
- package/dist/src/knowledge/index.js +12 -0
- package/dist/src/knowledge/index.js.map +1 -0
- package/dist/src/knowledge/kb-formatter.d.ts +15 -0
- package/dist/src/knowledge/kb-formatter.js +78 -0
- package/dist/src/knowledge/kb-formatter.js.map +1 -0
- package/dist/src/knowledge/kb-index.d.ts +27 -0
- package/dist/src/knowledge/kb-index.js +66 -0
- package/dist/src/knowledge/kb-index.js.map +1 -0
- package/dist/src/knowledge/kb-types.d.ts +54 -0
- package/dist/src/knowledge/kb-types.js +7 -0
- package/dist/src/knowledge/kb-types.js.map +1 -0
- package/dist/src/knowledge/knowledge-store.d.ts +56 -0
- package/dist/src/knowledge/knowledge-store.js +141 -0
- package/dist/src/knowledge/knowledge-store.js.map +1 -0
- package/dist/src/knowledge/load-knowledge.d.ts +30 -0
- package/dist/src/knowledge/load-knowledge.js +161 -0
- package/dist/src/knowledge/load-knowledge.js.map +1 -0
- package/dist/src/knowledge/propose-kb-update.d.ts +32 -0
- package/dist/src/knowledge/propose-kb-update.js +148 -0
- package/dist/src/knowledge/propose-kb-update.js.map +1 -0
- package/dist/src/knowledge/propose-knowledge.d.ts +34 -0
- package/dist/src/knowledge/propose-knowledge.js +163 -0
- package/dist/src/knowledge/propose-knowledge.js.map +1 -0
- package/dist/src/mcp/index.d.ts +7 -0
- package/dist/src/mcp/index.js +7 -0
- package/dist/src/mcp/index.js.map +1 -0
- package/dist/src/mcp/mcp-manager.d.ts +96 -0
- package/dist/src/mcp/mcp-manager.js +192 -0
- package/dist/src/mcp/mcp-manager.js.map +1 -0
- package/dist/src/packages/config-deps.d.ts +20 -0
- package/dist/src/packages/config-deps.js +77 -0
- package/dist/src/packages/config-deps.js.map +1 -0
- package/dist/src/packages/env-file.d.ts +28 -0
- package/dist/src/packages/env-file.js +143 -0
- package/dist/src/packages/env-file.js.map +1 -0
- package/dist/src/packages/frontmatter.d.ts +28 -0
- package/dist/src/packages/frontmatter.js +77 -0
- package/dist/src/packages/frontmatter.js.map +1 -0
- package/dist/src/packages/index.d.ts +16 -0
- package/dist/src/packages/index.js +17 -0
- package/dist/src/packages/index.js.map +1 -0
- package/dist/src/packages/lock-file.d.ts +35 -0
- package/dist/src/packages/lock-file.js +117 -0
- package/dist/src/packages/lock-file.js.map +1 -0
- package/dist/src/packages/manifest-reader.d.ts +19 -0
- package/dist/src/packages/manifest-reader.js +91 -0
- package/dist/src/packages/manifest-reader.js.map +1 -0
- package/dist/src/packages/merge-engine.d.ts +63 -0
- package/dist/src/packages/merge-engine.js +357 -0
- package/dist/src/packages/merge-engine.js.map +1 -0
- package/dist/src/packages/npm-context.d.ts +56 -0
- package/dist/src/packages/npm-context.js +235 -0
- package/dist/src/packages/npm-context.js.map +1 -0
- package/dist/src/packages/npm-registry.d.ts +35 -0
- package/dist/src/packages/npm-registry.js +107 -0
- package/dist/src/packages/npm-registry.js.map +1 -0
- package/dist/src/packages/package-error.d.ts +16 -0
- package/dist/src/packages/package-error.js +17 -0
- package/dist/src/packages/package-error.js.map +1 -0
- package/dist/src/packages/package-types.d.ts +477 -0
- package/dist/src/packages/package-types.js +156 -0
- package/dist/src/packages/package-types.js.map +1 -0
- package/dist/src/packages/resolver.d.ts +41 -0
- package/dist/src/packages/resolver.js +353 -0
- package/dist/src/packages/resolver.js.map +1 -0
- package/dist/src/platform/config-builder.d.ts +24 -0
- package/dist/src/platform/config-builder.js +70 -0
- package/dist/src/platform/config-builder.js.map +1 -0
- package/dist/src/platform/index.d.ts +8 -0
- package/dist/src/platform/index.js +9 -0
- package/dist/src/platform/index.js.map +1 -0
- package/dist/src/platform/platform-client.d.ts +160 -0
- package/dist/src/platform/platform-client.js +486 -0
- package/dist/src/platform/platform-client.js.map +1 -0
- package/dist/src/platform/platform-types.d.ts +81 -0
- package/dist/src/platform/platform-types.js +18 -0
- package/dist/src/platform/platform-types.js.map +1 -0
- package/dist/src/providers/content-generator/google-to-llm.d.ts +87 -0
- package/dist/src/providers/content-generator/google-to-llm.js +226 -0
- package/dist/src/providers/content-generator/google-to-llm.js.map +1 -0
- package/dist/src/providers/content-generator/index.d.ts +10 -0
- package/dist/src/providers/content-generator/index.js +9 -0
- package/dist/src/providers/content-generator/index.js.map +1 -0
- package/dist/src/providers/content-generator/llm-to-google.d.ts +59 -0
- package/dist/src/providers/content-generator/llm-to-google.js +178 -0
- package/dist/src/providers/content-generator/llm-to-google.js.map +1 -0
- package/dist/src/providers/content-generator/multi-provider-content-generator.d.ts +61 -0
- package/dist/src/providers/content-generator/multi-provider-content-generator.js +144 -0
- package/dist/src/providers/content-generator/multi-provider-content-generator.js.map +1 -0
- package/dist/src/providers/runtime/anthropic-provider.d.ts +18 -0
- package/dist/src/providers/runtime/anthropic-provider.js +253 -0
- package/dist/src/providers/runtime/anthropic-provider.js.map +1 -0
- package/dist/src/providers/runtime/azure-provider.d.ts +25 -0
- package/dist/src/providers/runtime/azure-provider.js +206 -0
- package/dist/src/providers/runtime/azure-provider.js.map +1 -0
- package/dist/src/providers/runtime/bedrock-provider.d.ts +22 -0
- package/dist/src/providers/runtime/bedrock-provider.js +276 -0
- package/dist/src/providers/runtime/bedrock-provider.js.map +1 -0
- package/dist/src/providers/runtime/failover-provider.d.ts +30 -0
- package/dist/src/providers/runtime/failover-provider.js +124 -0
- package/dist/src/providers/runtime/failover-provider.js.map +1 -0
- package/dist/src/providers/runtime/google-provider.d.ts +17 -0
- package/dist/src/providers/runtime/google-provider.js +239 -0
- package/dist/src/providers/runtime/google-provider.js.map +1 -0
- package/dist/src/providers/runtime/index.d.ts +16 -0
- package/dist/src/providers/runtime/index.js +16 -0
- package/dist/src/providers/runtime/index.js.map +1 -0
- package/dist/src/providers/runtime/openai-provider.d.ts +21 -0
- package/dist/src/providers/runtime/openai-provider.js +266 -0
- package/dist/src/providers/runtime/openai-provider.js.map +1 -0
- package/dist/src/providers/runtime/provider-errors.d.ts +39 -0
- package/dist/src/providers/runtime/provider-errors.js +50 -0
- package/dist/src/providers/runtime/provider-errors.js.map +1 -0
- package/dist/src/providers/runtime/provider-factory.d.ts +19 -0
- package/dist/src/providers/runtime/provider-factory.js +45 -0
- package/dist/src/providers/runtime/provider-factory.js.map +1 -0
- package/dist/src/providers/runtime/runtime-provider-types.d.ts +63 -0
- package/dist/src/providers/runtime/runtime-provider-types.js +7 -0
- package/dist/src/providers/runtime/runtime-provider-types.js.map +1 -0
- package/dist/src/providers/runtime/streaming-types.d.ts +40 -0
- package/dist/src/providers/runtime/streaming-types.js +7 -0
- package/dist/src/providers/runtime/streaming-types.js.map +1 -0
- package/dist/src/repo/config-schema.d.ts +238 -0
- package/dist/src/repo/config-schema.js +155 -0
- package/dist/src/repo/config-schema.js.map +1 -0
- package/dist/src/repo/connection-schemas.d.ts +449 -0
- package/dist/src/repo/connection-schemas.js +109 -0
- package/dist/src/repo/connection-schemas.js.map +1 -0
- package/dist/src/repo/connection-types.d.ts +29 -0
- package/dist/src/repo/connection-types.js +7 -0
- package/dist/src/repo/connection-types.js.map +1 -0
- package/dist/src/repo/drift-detector.d.ts +26 -0
- package/dist/src/repo/drift-detector.js +66 -0
- package/dist/src/repo/drift-detector.js.map +1 -0
- package/dist/src/repo/graphql-drift-detector.d.ts +27 -0
- package/dist/src/repo/graphql-drift-detector.js +66 -0
- package/dist/src/repo/graphql-drift-detector.js.map +1 -0
- package/dist/src/repo/graphql-parser.d.ts +30 -0
- package/dist/src/repo/graphql-parser.js +125 -0
- package/dist/src/repo/graphql-parser.js.map +1 -0
- package/dist/src/repo/graphql-surface-parser.d.ts +20 -0
- package/dist/src/repo/graphql-surface-parser.js +74 -0
- package/dist/src/repo/graphql-surface-parser.js.map +1 -0
- package/dist/src/repo/index.d.ts +30 -0
- package/dist/src/repo/index.js +29 -0
- package/dist/src/repo/index.js.map +1 -0
- package/dist/src/repo/local-reader.d.ts +10 -0
- package/dist/src/repo/local-reader.js +299 -0
- package/dist/src/repo/local-reader.js.map +1 -0
- package/dist/src/repo/openapi-parser.d.ts +35 -0
- package/dist/src/repo/openapi-parser.js +93 -0
- package/dist/src/repo/openapi-parser.js.map +1 -0
- package/dist/src/repo/parsers.d.ts +91 -0
- package/dist/src/repo/parsers.js +454 -0
- package/dist/src/repo/parsers.js.map +1 -0
- package/dist/src/repo/platform-reader.d.ts +10 -0
- package/dist/src/repo/platform-reader.js +206 -0
- package/dist/src/repo/platform-reader.js.map +1 -0
- package/dist/src/repo/repo-loader.d.ts +14 -0
- package/dist/src/repo/repo-loader.js +25 -0
- package/dist/src/repo/repo-loader.js.map +1 -0
- package/dist/src/repo/repo-types.d.ts +159 -0
- package/dist/src/repo/repo-types.js +17 -0
- package/dist/src/repo/repo-types.js.map +1 -0
- package/dist/src/repo/spec-syncer.d.ts +30 -0
- package/dist/src/repo/spec-syncer.js +85 -0
- package/dist/src/repo/spec-syncer.js.map +1 -0
- package/dist/src/repo/store-loader.d.ts +19 -0
- package/dist/src/repo/store-loader.js +94 -0
- package/dist/src/repo/store-loader.js.map +1 -0
- package/dist/src/repo/store-schemas.d.ts +313 -0
- package/dist/src/repo/store-schemas.js +103 -0
- package/dist/src/repo/store-schemas.js.map +1 -0
- package/dist/src/repo/store-tool-schema.d.ts +29 -0
- package/dist/src/repo/store-tool-schema.js +103 -0
- package/dist/src/repo/store-tool-schema.js.map +1 -0
- package/dist/src/repo/store-types.d.ts +91 -0
- package/dist/src/repo/store-types.js +7 -0
- package/dist/src/repo/store-types.js.map +1 -0
- package/dist/src/repo/surface-parser.d.ts +17 -0
- package/dist/src/repo/surface-parser.js +75 -0
- package/dist/src/repo/surface-parser.js.map +1 -0
- package/dist/src/repo/tool-loader.d.ts +33 -0
- package/dist/src/repo/tool-loader.js +240 -0
- package/dist/src/repo/tool-loader.js.map +1 -0
- package/dist/src/repo/tool-types.d.ts +205 -0
- package/dist/src/repo/tool-types.js +61 -0
- package/dist/src/repo/tool-types.js.map +1 -0
- package/dist/src/roles/index.d.ts +7 -0
- package/dist/src/roles/index.js +8 -0
- package/dist/src/roles/index.js.map +1 -0
- package/dist/src/roles/role-filter.d.ts +33 -0
- package/dist/src/roles/role-filter.js +55 -0
- package/dist/src/roles/role-filter.js.map +1 -0
- package/dist/src/roles/role-types.d.ts +76 -0
- package/dist/src/roles/role-types.js +38 -0
- package/dist/src/roles/role-types.js.map +1 -0
- package/dist/src/runtime/connection-bridge.d.ts +19 -0
- package/dist/src/runtime/connection-bridge.js +103 -0
- package/dist/src/runtime/connection-bridge.js.map +1 -0
- package/dist/src/runtime/context-compiler.d.ts +35 -0
- package/dist/src/runtime/context-compiler.js +183 -0
- package/dist/src/runtime/context-compiler.js.map +1 -0
- package/dist/src/runtime/default-prompt.d.ts +28 -0
- package/dist/src/runtime/default-prompt.js +71 -0
- package/dist/src/runtime/default-prompt.js.map +1 -0
- package/dist/src/runtime/explore-tool.d.ts +96 -0
- package/dist/src/runtime/explore-tool.js +111 -0
- package/dist/src/runtime/explore-tool.js.map +1 -0
- package/dist/src/runtime/index.d.ts +26 -0
- package/dist/src/runtime/index.js +19 -0
- package/dist/src/runtime/index.js.map +1 -0
- package/dist/src/runtime/output-pipeline.d.ts +62 -0
- package/dist/src/runtime/output-pipeline.js +69 -0
- package/dist/src/runtime/output-pipeline.js.map +1 -0
- package/dist/src/runtime/plan-mode.d.ts +39 -0
- package/dist/src/runtime/plan-mode.js +81 -0
- package/dist/src/runtime/plan-mode.js.map +1 -0
- package/dist/src/runtime/preference-client.d.ts +39 -0
- package/dist/src/runtime/preference-client.js +70 -0
- package/dist/src/runtime/preference-client.js.map +1 -0
- package/dist/src/runtime/preference-detector.d.ts +22 -0
- package/dist/src/runtime/preference-detector.js +95 -0
- package/dist/src/runtime/preference-detector.js.map +1 -0
- package/dist/src/runtime/request-integration.d.ts +18 -0
- package/dist/src/runtime/request-integration.js +36 -0
- package/dist/src/runtime/request-integration.js.map +1 -0
- package/dist/src/runtime/runtime-types.d.ts +48 -0
- package/dist/src/runtime/runtime-types.js +7 -0
- package/dist/src/runtime/runtime-types.js.map +1 -0
- package/dist/src/runtime/session-setup.d.ts +53 -0
- package/dist/src/runtime/session-setup.js +90 -0
- package/dist/src/runtime/session-setup.js.map +1 -0
- package/dist/src/runtime/telemetry-client.d.ts +39 -0
- package/dist/src/runtime/telemetry-client.js +87 -0
- package/dist/src/runtime/telemetry-client.js.map +1 -0
- package/dist/src/runtime/telemetry-hooks.d.ts +47 -0
- package/dist/src/runtime/telemetry-hooks.js +115 -0
- package/dist/src/runtime/telemetry-hooks.js.map +1 -0
- package/dist/src/runtime/token-allocator.d.ts +34 -0
- package/dist/src/runtime/token-allocator.js +86 -0
- package/dist/src/runtime/token-allocator.js.map +1 -0
- package/dist/src/runtime/user-context.d.ts +49 -0
- package/dist/src/runtime/user-context.js +135 -0
- package/dist/src/runtime/user-context.js.map +1 -0
- package/dist/src/sdk.d.ts +57 -0
- package/dist/src/sdk.js +377 -0
- package/dist/src/sdk.js.map +1 -0
- package/dist/src/security/action-gate.d.ts +23 -0
- package/dist/src/security/action-gate.js +78 -0
- package/dist/src/security/action-gate.js.map +1 -0
- package/dist/src/security/field-scrubber.d.ts +27 -0
- package/dist/src/security/field-scrubber.js +152 -0
- package/dist/src/security/field-scrubber.js.map +1 -0
- package/dist/src/security/index.d.ts +14 -0
- package/dist/src/security/index.js +15 -0
- package/dist/src/security/index.js.map +1 -0
- package/dist/src/security/leak-detector.d.ts +23 -0
- package/dist/src/security/leak-detector.js +51 -0
- package/dist/src/security/leak-detector.js.map +1 -0
- package/dist/src/security/output-guard.d.ts +33 -0
- package/dist/src/security/output-guard.js +118 -0
- package/dist/src/security/output-guard.js.map +1 -0
- package/dist/src/security/pattern-scanner.d.ts +19 -0
- package/dist/src/security/pattern-scanner.js +66 -0
- package/dist/src/security/pattern-scanner.js.map +1 -0
- package/dist/src/security/scope-checker.d.ts +27 -0
- package/dist/src/security/scope-checker.js +52 -0
- package/dist/src/security/scope-checker.js.map +1 -0
- package/dist/src/security/scrub-tracker.d.ts +21 -0
- package/dist/src/security/scrub-tracker.js +39 -0
- package/dist/src/security/scrub-tracker.js.map +1 -0
- package/dist/src/security/security-types.d.ts +69 -0
- package/dist/src/security/security-types.js +17 -0
- package/dist/src/security/security-types.js.map +1 -0
- package/dist/src/security/threshold-evaluator.d.ts +13 -0
- package/dist/src/security/threshold-evaluator.js +44 -0
- package/dist/src/security/threshold-evaluator.js.map +1 -0
- package/dist/src/snapshot/index.d.ts +8 -0
- package/dist/src/snapshot/index.js +9 -0
- package/dist/src/snapshot/index.js.map +1 -0
- package/dist/src/snapshot/snapshot-builder.d.ts +37 -0
- package/dist/src/snapshot/snapshot-builder.js +152 -0
- package/dist/src/snapshot/snapshot-builder.js.map +1 -0
- package/dist/src/snapshot/snapshot-loader.d.ts +29 -0
- package/dist/src/snapshot/snapshot-loader.js +188 -0
- package/dist/src/snapshot/snapshot-loader.js.map +1 -0
- package/dist/src/snapshot/snapshot-types.d.ts +1940 -0
- package/dist/src/snapshot/snapshot-types.js +145 -0
- package/dist/src/snapshot/snapshot-types.js.map +1 -0
- package/dist/src/stores/index.d.ts +6 -0
- package/dist/src/stores/index.js +7 -0
- package/dist/src/stores/index.js.map +1 -0
- package/dist/src/stores/store-backend.d.ts +135 -0
- package/dist/src/stores/store-backend.js +7 -0
- package/dist/src/stores/store-backend.js.map +1 -0
- package/dist/src/templates/connections.d.ts +14 -0
- package/dist/src/templates/connections.js +7 -0
- package/dist/src/templates/connections.js.map +1 -0
- package/dist/src/templates/index.d.ts +7 -0
- package/dist/src/templates/index.js +8 -0
- package/dist/src/templates/index.js.map +1 -0
- package/dist/src/templates/template-resolver.d.ts +45 -0
- package/dist/src/templates/template-resolver.js +121 -0
- package/dist/src/templates/template-resolver.js.map +1 -0
- package/dist/src/tool-context.d.ts +33 -0
- package/dist/src/tool-context.js +7 -0
- package/dist/src/tool-context.js.map +1 -0
- package/dist/src/tool-registration.d.ts +14 -0
- package/dist/src/tool-registration.js +51 -0
- package/dist/src/tool-registration.js.map +1 -0
- package/dist/src/tools/amodal-tool-errors.d.ts +24 -0
- package/dist/src/tools/amodal-tool-errors.js +28 -0
- package/dist/src/tools/amodal-tool-errors.js.map +1 -0
- package/dist/src/tools/amodal-tool-names.d.ts +14 -0
- package/dist/src/tools/amodal-tool-names.js +15 -0
- package/dist/src/tools/amodal-tool-names.js.map +1 -0
- package/dist/src/tools/chain-tool-registry.d.ts +20 -0
- package/dist/src/tools/chain-tool-registry.js +49 -0
- package/dist/src/tools/chain-tool-registry.js.map +1 -0
- package/dist/src/tools/chain-tool-types.d.ts +190 -0
- package/dist/src/tools/chain-tool-types.js +50 -0
- package/dist/src/tools/chain-tool-types.js.map +1 -0
- package/dist/src/tools/chain-tool.d.ts +34 -0
- package/dist/src/tools/chain-tool.js +294 -0
- package/dist/src/tools/chain-tool.js.map +1 -0
- package/dist/src/tools/custom-tool-registrar.d.ts +8 -0
- package/dist/src/tools/custom-tool-registrar.js +10 -0
- package/dist/src/tools/custom-tool-registrar.js.map +1 -0
- package/dist/src/tools/definitions/amodal-tools.d.ts +9 -0
- package/dist/src/tools/definitions/amodal-tools.js +192 -0
- package/dist/src/tools/definitions/amodal-tools.js.map +1 -0
- package/dist/src/tools/function-tool-registry.d.ts +22 -0
- package/dist/src/tools/function-tool-registry.js +45 -0
- package/dist/src/tools/function-tool-registry.js.map +1 -0
- package/dist/src/tools/function-tool-types.d.ts +76 -0
- package/dist/src/tools/function-tool-types.js +27 -0
- package/dist/src/tools/function-tool-types.js.map +1 -0
- package/dist/src/tools/function-tool.d.ts +34 -0
- package/dist/src/tools/function-tool.js +97 -0
- package/dist/src/tools/function-tool.js.map +1 -0
- package/dist/src/tools/http-tool-registry.d.ts +20 -0
- package/dist/src/tools/http-tool-registry.js +34 -0
- package/dist/src/tools/http-tool-registry.js.map +1 -0
- package/dist/src/tools/http-tool-types.d.ts +92 -0
- package/dist/src/tools/http-tool-types.js +44 -0
- package/dist/src/tools/http-tool-types.js.map +1 -0
- package/dist/src/tools/http-tool.d.ts +32 -0
- package/dist/src/tools/http-tool.js +176 -0
- package/dist/src/tools/http-tool.js.map +1 -0
- package/dist/src/tools/merge-template.d.ts +33 -0
- package/dist/src/tools/merge-template.js +65 -0
- package/dist/src/tools/merge-template.js.map +1 -0
- package/dist/src/tools/request-tool-types.d.ts +46 -0
- package/dist/src/tools/request-tool-types.js +20 -0
- package/dist/src/tools/request-tool-types.js.map +1 -0
- package/dist/src/tools/request-tool.d.ts +29 -0
- package/dist/src/tools/request-tool.js +268 -0
- package/dist/src/tools/request-tool.js.map +1 -0
- package/dist/src/tools/store-query-tool.d.ts +29 -0
- package/dist/src/tools/store-query-tool.js +82 -0
- package/dist/src/tools/store-query-tool.js.map +1 -0
- package/dist/src/tools/store-write-tool.d.ts +26 -0
- package/dist/src/tools/store-write-tool.js +84 -0
- package/dist/src/tools/store-write-tool.js.map +1 -0
- package/dist/src/tools/tool-definition-types.d.ts +21 -0
- package/dist/src/tools/tool-definition-types.js +7 -0
- package/dist/src/tools/tool-definition-types.js.map +1 -0
- package/dist/src/tools/tool-utils.d.ts +29 -0
- package/dist/src/tools/tool-utils.js +66 -0
- package/dist/src/tools/tool-utils.js.map +1 -0
- package/dist/src/versions/bundle-loader.d.ts +37 -0
- package/dist/src/versions/bundle-loader.js +99 -0
- package/dist/src/versions/bundle-loader.js.map +1 -0
- package/dist/src/versions/dependency-manager.d.ts +54 -0
- package/dist/src/versions/dependency-manager.js +132 -0
- package/dist/src/versions/dependency-manager.js.map +1 -0
- package/dist/src/versions/handler-loader.d.ts +27 -0
- package/dist/src/versions/handler-loader.js +62 -0
- package/dist/src/versions/handler-loader.js.map +1 -0
- package/dist/src/versions/index.d.ts +10 -0
- package/dist/src/versions/index.js +11 -0
- package/dist/src/versions/index.js.map +1 -0
- package/dist/src/versions/version-bundle-types.d.ts +1278 -0
- package/dist/src/versions/version-bundle-types.js +207 -0
- package/dist/src/versions/version-bundle-types.js.map +1 -0
- package/dist/src/versions/version-manager.d.ts +89 -0
- package/dist/src/versions/version-manager.js +124 -0
- package/dist/src/versions/version-manager.js.map +1 -0
- package/dist/src/widgets/index.d.ts +8 -0
- package/dist/src/widgets/index.js +8 -0
- package/dist/src/widgets/index.js.map +1 -0
- package/dist/src/widgets/present-tool.d.ts +21 -0
- package/dist/src/widgets/present-tool.js +107 -0
- package/dist/src/widgets/present-tool.js.map +1 -0
- package/dist/src/widgets/widget-types.d.ts +78 -0
- package/dist/src/widgets/widget-types.js +28 -0
- package/dist/src/widgets/widget-types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { AmodalConfigSchema } from '../repo/config-schema.js';
|
|
8
|
+
import { ConnectionSpecSchema, AccessConfigSchema } from '../repo/connection-schemas.js';
|
|
9
|
+
/**
|
|
10
|
+
* A serialized connection in a deploy snapshot.
|
|
11
|
+
* Surface is stored as the original markdown string.
|
|
12
|
+
*/
|
|
13
|
+
export const SnapshotConnectionSchema = z.object({
|
|
14
|
+
spec: ConnectionSpecSchema,
|
|
15
|
+
surface: z.string(),
|
|
16
|
+
access: AccessConfigSchema,
|
|
17
|
+
entities: z.string().optional(),
|
|
18
|
+
rules: z.string().optional(),
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* A serialized skill in a deploy snapshot.
|
|
22
|
+
*/
|
|
23
|
+
export const SnapshotSkillSchema = z.object({
|
|
24
|
+
name: z.string().min(1),
|
|
25
|
+
description: z.string(),
|
|
26
|
+
trigger: z.string().optional(),
|
|
27
|
+
body: z.string(),
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* A serialized automation in a deploy snapshot.
|
|
31
|
+
*/
|
|
32
|
+
export const SnapshotAutomationSchema = z.object({
|
|
33
|
+
name: z.string().min(1),
|
|
34
|
+
title: z.string(),
|
|
35
|
+
schedule: z.string().optional(),
|
|
36
|
+
trigger: z.enum(['cron', 'webhook', 'manual']).default('manual'),
|
|
37
|
+
prompt: z.string(),
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* A serialized knowledge document in a deploy snapshot.
|
|
41
|
+
*/
|
|
42
|
+
export const SnapshotKnowledgeSchema = z.object({
|
|
43
|
+
name: z.string().min(1),
|
|
44
|
+
title: z.string(),
|
|
45
|
+
body: z.string(),
|
|
46
|
+
});
|
|
47
|
+
/**
|
|
48
|
+
* A serialized custom tool in a deploy snapshot.
|
|
49
|
+
* Contains metadata only — handler code lives in Daytona snapshots.
|
|
50
|
+
*/
|
|
51
|
+
export const SnapshotToolSchema = z.object({
|
|
52
|
+
name: z.string().min(1),
|
|
53
|
+
description: z.string(),
|
|
54
|
+
parameters: z.record(z.unknown()).default({}),
|
|
55
|
+
confirm: z.union([z.literal(false), z.literal(true), z.literal('review'), z.literal('never')]).default(false),
|
|
56
|
+
timeout: z.number().int().positive().default(30000),
|
|
57
|
+
env: z.array(z.string()).default([]),
|
|
58
|
+
});
|
|
59
|
+
/**
|
|
60
|
+
* A serialized subagent definition in a deploy snapshot.
|
|
61
|
+
*/
|
|
62
|
+
export const SnapshotSubagentSchema = z.object({
|
|
63
|
+
name: z.string().min(1),
|
|
64
|
+
displayName: z.string().min(1),
|
|
65
|
+
description: z.string(),
|
|
66
|
+
prompt: z.string(),
|
|
67
|
+
tools: z.array(z.string()).default([]),
|
|
68
|
+
maxDepth: z.number().int().default(1),
|
|
69
|
+
maxToolCalls: z.number().int().default(10),
|
|
70
|
+
timeout: z.number().int().default(20),
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* Build manifest entry mapping a tool to its Daytona sandbox snapshot.
|
|
74
|
+
*/
|
|
75
|
+
export const SnapshotToolManifestEntrySchema = z.object({
|
|
76
|
+
snapshotId: z.string().min(1),
|
|
77
|
+
imageHash: z.string().min(1),
|
|
78
|
+
sandboxLanguage: z.string().default('typescript'),
|
|
79
|
+
hasDockerfile: z.boolean().default(false),
|
|
80
|
+
hasSetupScript: z.boolean().default(false),
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* Build manifest: maps tool names to Daytona snapshot IDs.
|
|
84
|
+
* Created by `amodal build --tools`, stored in the deploy snapshot.
|
|
85
|
+
*/
|
|
86
|
+
export const SnapshotBuildManifestSchema = z.object({
|
|
87
|
+
version: z.literal(1),
|
|
88
|
+
builtAt: z.string(),
|
|
89
|
+
tools: z.record(z.string(), SnapshotToolManifestEntrySchema),
|
|
90
|
+
});
|
|
91
|
+
/**
|
|
92
|
+
* A serialized eval case in a deploy snapshot.
|
|
93
|
+
*/
|
|
94
|
+
export const SnapshotEvalAssertionSchema = z.object({
|
|
95
|
+
text: z.string(),
|
|
96
|
+
negated: z.boolean().default(false),
|
|
97
|
+
});
|
|
98
|
+
export const SnapshotEvalSchema = z.object({
|
|
99
|
+
name: z.string().min(1),
|
|
100
|
+
title: z.string(),
|
|
101
|
+
description: z.string().default(''),
|
|
102
|
+
query: z.string(),
|
|
103
|
+
assertions: z.array(SnapshotEvalAssertionSchema),
|
|
104
|
+
});
|
|
105
|
+
/**
|
|
106
|
+
* The complete deploy snapshot — an immutable, fully-resolved JSON blob
|
|
107
|
+
* that captures the entire agent configuration at a point in time.
|
|
108
|
+
*/
|
|
109
|
+
export const DeploySnapshotSchema = z.object({
|
|
110
|
+
deployId: z.string().regex(/^deploy-[0-9a-f]{7}$/),
|
|
111
|
+
createdAt: z.string().datetime(),
|
|
112
|
+
createdBy: z.string(),
|
|
113
|
+
source: z.enum(['cli', 'github', 'admin-ui']),
|
|
114
|
+
commitSha: z.string().optional(),
|
|
115
|
+
branch: z.string().optional(),
|
|
116
|
+
message: z.string().optional(),
|
|
117
|
+
config: AmodalConfigSchema,
|
|
118
|
+
connections: z.record(z.string(), SnapshotConnectionSchema),
|
|
119
|
+
skills: z.array(SnapshotSkillSchema),
|
|
120
|
+
automations: z.array(SnapshotAutomationSchema),
|
|
121
|
+
knowledge: z.array(SnapshotKnowledgeSchema),
|
|
122
|
+
agents: z.object({
|
|
123
|
+
main: z.string().optional(),
|
|
124
|
+
simple: z.string().optional(),
|
|
125
|
+
subagents: z.array(SnapshotSubagentSchema).optional(),
|
|
126
|
+
}).optional(),
|
|
127
|
+
/** Custom tool metadata (handler code lives in Daytona snapshots) */
|
|
128
|
+
tools: z.array(SnapshotToolSchema).optional(),
|
|
129
|
+
/** Store definitions */
|
|
130
|
+
stores: z.array(z.record(z.unknown())).optional(),
|
|
131
|
+
/** Build manifest mapping tool names to Daytona snapshot IDs */
|
|
132
|
+
buildManifest: SnapshotBuildManifestSchema.optional(),
|
|
133
|
+
/** Eval definitions for model evaluation */
|
|
134
|
+
evals: z.array(SnapshotEvalSchema).optional(),
|
|
135
|
+
/** MCP servers to connect to */
|
|
136
|
+
mcpServers: z.record(z.string(), z.object({
|
|
137
|
+
transport: z.enum(['stdio', 'sse', 'http']),
|
|
138
|
+
command: z.string().optional(),
|
|
139
|
+
args: z.array(z.string()).optional(),
|
|
140
|
+
env: z.record(z.string()).optional(),
|
|
141
|
+
url: z.string().optional(),
|
|
142
|
+
trust: z.boolean().optional(),
|
|
143
|
+
})).optional(),
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=snapshot-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-types.js","sourceRoot":"","sources":["../../../src/snapshot/snapshot-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,oBAAoB,EAAE,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AAEvF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,kBAAkB;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAChE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACrC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IACjD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC3C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC;CAC7D,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;CACjD,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,kBAAkB;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC;IAC3D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;KACtD,CAAC,CAAC,QAAQ,EAAE;IACb,qEAAqE;IACrE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IAC7C,wBAAwB;IACxB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,gEAAgE;IAChE,aAAa,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IACrD,4CAA4C;IAC5C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IAC7C,gCAAgC;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACxC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACpC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACpC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC,CAAC,CAAC,QAAQ,EAAE;CACf,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stores/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import type { LoadedStore } from '../repo/store-types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Metadata stored alongside each document in a store.
|
|
9
|
+
*/
|
|
10
|
+
export interface StoreDocumentMeta {
|
|
11
|
+
/** When the document was computed/written */
|
|
12
|
+
computedAt: string;
|
|
13
|
+
/** TTL in seconds (resolved at write time) */
|
|
14
|
+
ttl?: number;
|
|
15
|
+
/** Whether the document is past its TTL */
|
|
16
|
+
stale: boolean;
|
|
17
|
+
/** ID of the automation that produced this document */
|
|
18
|
+
automationId?: string;
|
|
19
|
+
/** ID of the skill that produced this document */
|
|
20
|
+
skillId?: string;
|
|
21
|
+
/** Model used for computation */
|
|
22
|
+
modelUsed?: string;
|
|
23
|
+
/** Token cost of computation */
|
|
24
|
+
tokenCost?: number;
|
|
25
|
+
/** Estimated cost in USD */
|
|
26
|
+
estimatedCostUsd?: number;
|
|
27
|
+
/** Duration of computation in ms */
|
|
28
|
+
durationMs?: number;
|
|
29
|
+
/** Reasoning trace (if store has trace: true) */
|
|
30
|
+
trace?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A document stored in a store collection.
|
|
34
|
+
*/
|
|
35
|
+
export interface StoreDocument {
|
|
36
|
+
/** Document key (resolved from key template) */
|
|
37
|
+
key: string;
|
|
38
|
+
/** Tenant that owns this document */
|
|
39
|
+
tenantId: string;
|
|
40
|
+
/** Store name this document belongs to */
|
|
41
|
+
store: string;
|
|
42
|
+
/** Version number (increments on each update) */
|
|
43
|
+
version: number;
|
|
44
|
+
/** The entity payload (validated against store schema) */
|
|
45
|
+
payload: Record<string, unknown>;
|
|
46
|
+
/** Document metadata */
|
|
47
|
+
meta: StoreDocumentMeta;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Result of a store put (upsert) operation.
|
|
51
|
+
*/
|
|
52
|
+
export interface StorePutResult {
|
|
53
|
+
/** Whether the document was stored successfully */
|
|
54
|
+
stored: boolean;
|
|
55
|
+
/** The document key */
|
|
56
|
+
key: string;
|
|
57
|
+
/** The new version number */
|
|
58
|
+
version: number;
|
|
59
|
+
/** The previous version number (if updating) */
|
|
60
|
+
previousVersion?: number;
|
|
61
|
+
/** Error message if stored is false */
|
|
62
|
+
error?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Options for listing documents from a store.
|
|
66
|
+
*/
|
|
67
|
+
export interface StoreListOptions {
|
|
68
|
+
/** Filter by field values (equality match on payload fields) */
|
|
69
|
+
filter?: Record<string, unknown>;
|
|
70
|
+
/** Sort field. Prefix with "-" for descending (e.g., "-severity") */
|
|
71
|
+
sort?: string;
|
|
72
|
+
/** Maximum number of documents to return */
|
|
73
|
+
limit?: number;
|
|
74
|
+
/** Number of documents to skip */
|
|
75
|
+
offset?: number;
|
|
76
|
+
/** Whether to include stale (expired) documents */
|
|
77
|
+
includeStale?: boolean;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Result of a store list operation.
|
|
81
|
+
*/
|
|
82
|
+
export interface StoreListResult {
|
|
83
|
+
/** The matching documents */
|
|
84
|
+
documents: StoreDocument[];
|
|
85
|
+
/** Total count of matching documents (before limit/offset) */
|
|
86
|
+
total: number;
|
|
87
|
+
/** Whether there are more documents beyond the current page */
|
|
88
|
+
hasMore: boolean;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Interface for store persistence backends.
|
|
92
|
+
*
|
|
93
|
+
* Implementations: PGLite (default), remote Postgres, MongoDB, etc.
|
|
94
|
+
* The interface lives in core so BYODB backends only need to depend on core.
|
|
95
|
+
*/
|
|
96
|
+
export interface StoreBackend {
|
|
97
|
+
/**
|
|
98
|
+
* Initialize the backend — create tables, indexes, etc.
|
|
99
|
+
* Called once at startup with the full list of store definitions.
|
|
100
|
+
*/
|
|
101
|
+
initialize(stores: LoadedStore[]): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Get a single document by key.
|
|
104
|
+
* Returns null if the document doesn't exist.
|
|
105
|
+
*/
|
|
106
|
+
get(tenantId: string, store: string, key: string): Promise<StoreDocument | null>;
|
|
107
|
+
/**
|
|
108
|
+
* Upsert a document. If it exists, increments version and optionally
|
|
109
|
+
* saves the previous version to history.
|
|
110
|
+
*/
|
|
111
|
+
put(tenantId: string, store: string, key: string, payload: Record<string, unknown>, meta: Partial<StoreDocumentMeta>): Promise<StorePutResult>;
|
|
112
|
+
/**
|
|
113
|
+
* List documents from a store with optional filtering, sorting, and pagination.
|
|
114
|
+
*/
|
|
115
|
+
list(tenantId: string, store: string, options?: StoreListOptions): Promise<StoreListResult>;
|
|
116
|
+
/**
|
|
117
|
+
* Delete a document by key.
|
|
118
|
+
* Returns true if the document existed and was deleted.
|
|
119
|
+
*/
|
|
120
|
+
delete(tenantId: string, store: string, key: string): Promise<boolean>;
|
|
121
|
+
/**
|
|
122
|
+
* Get version history for a document (most recent first).
|
|
123
|
+
* Returns empty array if no history exists.
|
|
124
|
+
*/
|
|
125
|
+
history(tenantId: string, store: string, key: string): Promise<StoreDocument[]>;
|
|
126
|
+
/**
|
|
127
|
+
* Delete all documents past their TTL.
|
|
128
|
+
* Returns the number of documents purged.
|
|
129
|
+
*/
|
|
130
|
+
purgeExpired(tenantId: string, store?: string): Promise<number>;
|
|
131
|
+
/**
|
|
132
|
+
* Shut down the backend (close connections, release resources).
|
|
133
|
+
*/
|
|
134
|
+
close(): Promise<void>;
|
|
135
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-backend.js","sourceRoot":"","sources":["../../../src/stores/store-backend.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* A single connection's configuration (e.g., base_url, api_key).
|
|
8
|
+
*/
|
|
9
|
+
export type ConnectionConfig = Record<string, unknown>;
|
|
10
|
+
/**
|
|
11
|
+
* Map of connection names to their configurations.
|
|
12
|
+
* Example: { device_api: { base_url: "https://...", api_key: "sk-..." } }
|
|
13
|
+
*/
|
|
14
|
+
export type ConnectionsMap = Record<string, ConnectionConfig>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/templates/connections.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
export { resolveTemplate, resolveTemplateObject, type TemplateContext, type TemplateError, type TemplateResult, } from './template-resolver.js';
|
|
7
|
+
export { type ConnectionConfig, type ConnectionsMap } from './connections.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,qBAAqB,GAItB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAA8C,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Context for template resolution. Contains namespaced data sources.
|
|
8
|
+
*/
|
|
9
|
+
export interface TemplateContext {
|
|
10
|
+
connections: Record<string, Record<string, unknown>>;
|
|
11
|
+
params: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* An error encountered during template resolution.
|
|
15
|
+
*/
|
|
16
|
+
export interface TemplateError {
|
|
17
|
+
expression: string;
|
|
18
|
+
message: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Result of resolving a single template string.
|
|
22
|
+
*/
|
|
23
|
+
export interface TemplateResult {
|
|
24
|
+
value: string;
|
|
25
|
+
errors: TemplateError[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Resolve all `{{namespace.path}}` expressions in a template string.
|
|
29
|
+
*
|
|
30
|
+
* - `{{connections.x.y}}` resolves from context.connections
|
|
31
|
+
* - `{{params.x}}` resolves from context.params
|
|
32
|
+
* - Missing variables produce errors (never silently empty)
|
|
33
|
+
* - Escaped `\{{literal}}` is converted to `{{literal}}` without resolution
|
|
34
|
+
* - Invalid namespaces produce errors
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveTemplate(template: string, context: TemplateContext): TemplateResult;
|
|
37
|
+
/**
|
|
38
|
+
* Recursively resolve all string values in an object.
|
|
39
|
+
* Non-string values are passed through unchanged.
|
|
40
|
+
* Collects all errors from all resolved strings.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveTemplateObject<T>(obj: T, context: TemplateContext): {
|
|
43
|
+
value: T;
|
|
44
|
+
errors: TemplateError[];
|
|
45
|
+
};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
const VALID_NAMESPACES = new Set(['connections', 'params']);
|
|
7
|
+
// Matches {{expression}} but not \{{expression}}
|
|
8
|
+
const TEMPLATE_REGEX = /(?<!\\)\{\{([^}]+)\}\}/g;
|
|
9
|
+
// Matches escaped \{{ to un-escape
|
|
10
|
+
const ESCAPED_TEMPLATE_REGEX = /\\\{\{([^}]*)\}\}/g;
|
|
11
|
+
/**
|
|
12
|
+
* Resolve a dot-separated path on a nested object.
|
|
13
|
+
* Returns undefined if any segment is missing.
|
|
14
|
+
*/
|
|
15
|
+
function resolvePath(obj, dotPath) {
|
|
16
|
+
const segments = dotPath.split('.');
|
|
17
|
+
let current = obj;
|
|
18
|
+
for (const segment of segments) {
|
|
19
|
+
if (current === null || current === undefined || typeof current !== 'object') {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
current = current[segment]; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
|
|
23
|
+
}
|
|
24
|
+
return current;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Convert a resolved value to a string suitable for template substitution.
|
|
28
|
+
*/
|
|
29
|
+
function valueToString(value) {
|
|
30
|
+
if (value === null || value === undefined) {
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
if (typeof value === 'object') {
|
|
34
|
+
return JSON.stringify(value);
|
|
35
|
+
}
|
|
36
|
+
return String(value);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolve all `{{namespace.path}}` expressions in a template string.
|
|
40
|
+
*
|
|
41
|
+
* - `{{connections.x.y}}` resolves from context.connections
|
|
42
|
+
* - `{{params.x}}` resolves from context.params
|
|
43
|
+
* - Missing variables produce errors (never silently empty)
|
|
44
|
+
* - Escaped `\{{literal}}` is converted to `{{literal}}` without resolution
|
|
45
|
+
* - Invalid namespaces produce errors
|
|
46
|
+
*/
|
|
47
|
+
export function resolveTemplate(template, context) {
|
|
48
|
+
const errors = [];
|
|
49
|
+
// Replace unescaped {{expressions}}
|
|
50
|
+
let value = template.replace(TEMPLATE_REGEX, (_match, expression) => {
|
|
51
|
+
const trimmed = expression.trim();
|
|
52
|
+
const dotIndex = trimmed.indexOf('.');
|
|
53
|
+
if (dotIndex === -1) {
|
|
54
|
+
errors.push({
|
|
55
|
+
expression: trimmed,
|
|
56
|
+
message: `Invalid template expression "${trimmed}": must be in format "namespace.path"`,
|
|
57
|
+
});
|
|
58
|
+
return `{{${trimmed}}}`;
|
|
59
|
+
}
|
|
60
|
+
const namespace = trimmed.slice(0, dotIndex);
|
|
61
|
+
const path = trimmed.slice(dotIndex + 1);
|
|
62
|
+
if (!VALID_NAMESPACES.has(namespace)) {
|
|
63
|
+
errors.push({
|
|
64
|
+
expression: trimmed,
|
|
65
|
+
message: `Unknown namespace "${namespace}". Valid namespaces: ${[...VALID_NAMESPACES].join(', ')}`,
|
|
66
|
+
});
|
|
67
|
+
return `{{${trimmed}}}`;
|
|
68
|
+
}
|
|
69
|
+
const source = namespace === 'connections' ? context.connections :
|
|
70
|
+
namespace === 'params' ? context.params :
|
|
71
|
+
undefined;
|
|
72
|
+
if (!source || typeof source !== 'object') {
|
|
73
|
+
errors.push({
|
|
74
|
+
expression: trimmed,
|
|
75
|
+
message: `Namespace "${namespace}" is empty or not configured`,
|
|
76
|
+
});
|
|
77
|
+
return `{{${trimmed}}}`;
|
|
78
|
+
}
|
|
79
|
+
const resolved = resolvePath(source, path);
|
|
80
|
+
if (resolved === undefined) {
|
|
81
|
+
errors.push({
|
|
82
|
+
expression: trimmed,
|
|
83
|
+
message: `Variable "${trimmed}" not found`,
|
|
84
|
+
});
|
|
85
|
+
return `{{${trimmed}}}`;
|
|
86
|
+
}
|
|
87
|
+
return valueToString(resolved);
|
|
88
|
+
});
|
|
89
|
+
// Un-escape \{{ → {{
|
|
90
|
+
value = value.replace(ESCAPED_TEMPLATE_REGEX, '{{$1}}');
|
|
91
|
+
return { value, errors };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Recursively resolve all string values in an object.
|
|
95
|
+
* Non-string values are passed through unchanged.
|
|
96
|
+
* Collects all errors from all resolved strings.
|
|
97
|
+
*/
|
|
98
|
+
export function resolveTemplateObject(obj, context) {
|
|
99
|
+
const errors = [];
|
|
100
|
+
function resolve(val) {
|
|
101
|
+
if (typeof val === 'string') {
|
|
102
|
+
const result = resolveTemplate(val, context);
|
|
103
|
+
errors.push(...result.errors);
|
|
104
|
+
return result.value;
|
|
105
|
+
}
|
|
106
|
+
if (Array.isArray(val)) {
|
|
107
|
+
return val.map(resolve);
|
|
108
|
+
}
|
|
109
|
+
if (val !== null && typeof val === 'object') {
|
|
110
|
+
const resolved = {};
|
|
111
|
+
for (const key of Object.keys(val)) {
|
|
112
|
+
resolved[key] = resolve(val[key]); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
|
|
113
|
+
}
|
|
114
|
+
return resolved;
|
|
115
|
+
}
|
|
116
|
+
return val;
|
|
117
|
+
}
|
|
118
|
+
const value = resolve(obj); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
|
|
119
|
+
return { value, errors };
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=template-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-resolver.js","sourceRoot":"","sources":["../../../src/templates/template-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import type { AuditLogger } from './audit/index.js';
|
|
7
|
+
import type { ConnectionsMap } from './templates/index.js';
|
|
8
|
+
import type { KnowledgeStore } from './knowledge/knowledge-store.js';
|
|
9
|
+
import type { ConnectionInfo } from './platform/platform-types.js';
|
|
10
|
+
import type { LoadedStore } from './repo/store-types.js';
|
|
11
|
+
import type { StoreBackend } from './stores/store-backend.js';
|
|
12
|
+
/**
|
|
13
|
+
* Narrow interface exposing only the config surface that amodal tools need.
|
|
14
|
+
* AmodalConfig implements this. Tool classes depend on ToolContext rather than
|
|
15
|
+
* the full Config or AmodalConfig, keeping them decoupled from the composition
|
|
16
|
+
* wrapper.
|
|
17
|
+
*/
|
|
18
|
+
export interface ToolContext {
|
|
19
|
+
getSessionId(): string;
|
|
20
|
+
getPlatformApiUrl(): string | undefined;
|
|
21
|
+
getPlatformApiKey(): string | undefined;
|
|
22
|
+
getApplicationId(): string | undefined;
|
|
23
|
+
getTenantId(): string | undefined;
|
|
24
|
+
getAuditLogger(): AuditLogger | undefined;
|
|
25
|
+
getConnections(): ConnectionsMap;
|
|
26
|
+
getKnowledgeStore(): KnowledgeStore;
|
|
27
|
+
getConnectionInfos(): ConnectionInfo[];
|
|
28
|
+
getAgentContext(): string | undefined;
|
|
29
|
+
getStores(): LoadedStore[];
|
|
30
|
+
getStoreBackend(): StoreBackend | undefined;
|
|
31
|
+
/** Session-scoped environment variables (tenant secrets). */
|
|
32
|
+
getSessionEnv(): Record<string, string>;
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/tool-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import type { Config } from '@google/gemini-cli-core';
|
|
7
|
+
import type { ToolContext } from './tool-context.js';
|
|
8
|
+
import { registerHttpTools, registerChainTools, registerFunctionTools } from './tools/custom-tool-registrar.js';
|
|
9
|
+
/**
|
|
10
|
+
* Register all amodal-specific tools on the upstream Config's ToolRegistry.
|
|
11
|
+
* Called after Config.initialize() so the registry already exists.
|
|
12
|
+
*/
|
|
13
|
+
export declare function registerAmodalTools(ctx: ToolContext, config: Config): Promise<void>;
|
|
14
|
+
export { registerHttpTools, registerChainTools, registerFunctionTools };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { ProposeKnowledgeTool } from './knowledge/propose-knowledge.js';
|
|
7
|
+
import { LoadKnowledgeTool } from './knowledge/load-knowledge.js';
|
|
8
|
+
import { PresentTool } from './widgets/present-tool.js';
|
|
9
|
+
import { RequestTool } from './tools/request-tool.js';
|
|
10
|
+
import { StoreWriteTool } from './tools/store-write-tool.js';
|
|
11
|
+
import { StoreQueryTool } from './tools/store-query-tool.js';
|
|
12
|
+
import { registerHttpTools, registerChainTools, registerFunctionTools, } from './tools/custom-tool-registrar.js';
|
|
13
|
+
/**
|
|
14
|
+
* Register all amodal-specific tools on the upstream Config's ToolRegistry.
|
|
15
|
+
* Called after Config.initialize() so the registry already exists.
|
|
16
|
+
*/
|
|
17
|
+
export async function registerAmodalTools(ctx, config) {
|
|
18
|
+
const registry = config.getToolRegistry();
|
|
19
|
+
const messageBus = config.getMessageBus();
|
|
20
|
+
// Register propose_knowledge (when platform API is configured)
|
|
21
|
+
const platformApiUrl = ctx.getPlatformApiUrl();
|
|
22
|
+
const platformApiKey = ctx.getPlatformApiKey();
|
|
23
|
+
if (platformApiUrl && platformApiKey) {
|
|
24
|
+
registry.registerTool(new ProposeKnowledgeTool(ctx, messageBus));
|
|
25
|
+
}
|
|
26
|
+
// Register load_knowledge (when KB docs exist)
|
|
27
|
+
const store = ctx.getKnowledgeStore();
|
|
28
|
+
const allDocs = store.getAllDocuments();
|
|
29
|
+
if (allDocs.length > 0) {
|
|
30
|
+
registry.registerTool(new LoadKnowledgeTool(store, messageBus));
|
|
31
|
+
}
|
|
32
|
+
// Register present tool (always available)
|
|
33
|
+
registry.registerTool(new PresentTool(ctx, messageBus));
|
|
34
|
+
// Register request tool (when connections exist)
|
|
35
|
+
const connections = ctx.getConnections();
|
|
36
|
+
if (Object.keys(connections).length > 0) {
|
|
37
|
+
registry.registerTool(new RequestTool(connections, messageBus, false, ctx.getSessionEnv()));
|
|
38
|
+
}
|
|
39
|
+
// Register store tools (when stores + backend exist)
|
|
40
|
+
const stores = ctx.getStores();
|
|
41
|
+
const storeBackend = ctx.getStoreBackend();
|
|
42
|
+
if (stores.length > 0 && storeBackend) {
|
|
43
|
+
const tenantId = ctx.getTenantId() ?? 'default';
|
|
44
|
+
for (const store of stores) {
|
|
45
|
+
registry.registerTool(new StoreWriteTool(store, storeBackend, tenantId, messageBus));
|
|
46
|
+
}
|
|
47
|
+
registry.registerTool(new StoreQueryTool(stores, storeBackend, tenantId, messageBus));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export { registerHttpTools, registerChainTools, registerFunctionTools };
|
|
51
|
+
//# sourceMappingURL=tool-registration.js.map
|