@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,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Compiles system prompts from repo configuration and session state.
|
|
8
|
+
*
|
|
9
|
+
* Builds ordered, prioritized context sections and delegates to TokenAllocator
|
|
10
|
+
* for budget trimming.
|
|
11
|
+
*/
|
|
12
|
+
export class ContextCompiler {
|
|
13
|
+
repo;
|
|
14
|
+
allocator;
|
|
15
|
+
constructor(config) {
|
|
16
|
+
this.repo = config.repo;
|
|
17
|
+
this.allocator = config.allocator;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Compile the full primary-agent system prompt.
|
|
21
|
+
*/
|
|
22
|
+
compile(session) {
|
|
23
|
+
const sections = [];
|
|
24
|
+
// 1. base_prompt (priority 10)
|
|
25
|
+
const description = this.repo.config.description ?? '';
|
|
26
|
+
const descLine = description ? `\n${description}\n` : '\n';
|
|
27
|
+
sections.push(this.section('base_prompt', `You are an AI assistant for ${this.repo.config.name}.${descLine}\nYou help users by querying connected systems, analyzing data, and taking actions when authorized.\nAlways use the request tool to interact with external systems. Never fabricate data.`, 10));
|
|
28
|
+
// 2. agent_override (priority 9)
|
|
29
|
+
if (this.repo.agents.main) {
|
|
30
|
+
sections.push(this.section('agent_override', this.repo.agents.main, 9));
|
|
31
|
+
}
|
|
32
|
+
// 3. connections (priority 8)
|
|
33
|
+
const connectionsContent = this.buildConnectionsContent();
|
|
34
|
+
if (connectionsContent) {
|
|
35
|
+
sections.push(this.section('connections', connectionsContent, 8));
|
|
36
|
+
}
|
|
37
|
+
// 4. skills (priority 7)
|
|
38
|
+
const skillsContent = this.buildSkillsContent();
|
|
39
|
+
if (skillsContent) {
|
|
40
|
+
sections.push(this.section('skills', skillsContent, 7));
|
|
41
|
+
}
|
|
42
|
+
// 5. knowledge (priority 6)
|
|
43
|
+
const knowledgeContent = this.buildKnowledgeContent();
|
|
44
|
+
if (knowledgeContent) {
|
|
45
|
+
sections.push(this.section('knowledge', knowledgeContent, 6));
|
|
46
|
+
}
|
|
47
|
+
// 6. field_guidance (priority 5)
|
|
48
|
+
if (session.fieldGuidance) {
|
|
49
|
+
sections.push(this.section('field_guidance', `## Field Access Restrictions\n${session.fieldGuidance}`, 5));
|
|
50
|
+
}
|
|
51
|
+
// 7. scope_descriptions (priority 4)
|
|
52
|
+
const scopeEntries = Object.entries(session.scopeLabels);
|
|
53
|
+
if (scopeEntries.length > 0) {
|
|
54
|
+
const lines = scopeEntries.map(([entity, label]) => `- ${entity}: ${label}`);
|
|
55
|
+
sections.push(this.section('scope_descriptions', `## Data Scope\n${lines.join('\n')}`, 4));
|
|
56
|
+
}
|
|
57
|
+
// 8. alternative_lookups (priority 3)
|
|
58
|
+
if (session.alternativeLookupGuidance) {
|
|
59
|
+
sections.push(this.section('alternative_lookups', session.alternativeLookupGuidance, 3));
|
|
60
|
+
}
|
|
61
|
+
// 9. plan_mode (priority 10, never trimmed)
|
|
62
|
+
if (session.planMode) {
|
|
63
|
+
let planContent = '## Planning Mode Active\nYou are currently in planning mode. Present your plan to the user before executing write operations.\nRead operations and explore are allowed freely.';
|
|
64
|
+
if (session.approvedPlan) {
|
|
65
|
+
planContent += `\n\n## Approved Plan\nExecute the following approved plan:\n${session.approvedPlan}`;
|
|
66
|
+
}
|
|
67
|
+
sections.push(this.section('plan_mode', planContent, 10));
|
|
68
|
+
}
|
|
69
|
+
return this.buildResult(sections);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Compile the explore sub-agent system prompt (subset of main).
|
|
73
|
+
*/
|
|
74
|
+
compileExplore(session) {
|
|
75
|
+
const sections = [];
|
|
76
|
+
// 1. base_prompt (priority 10) — explore-specific
|
|
77
|
+
sections.push(this.section('base_prompt', 'You are a data-gathering sub-agent. Your job is to query connected systems and return a concise summary of findings.\nFocus on the specific query. Do not take actions or propose changes. Return a structured summary of 200-500 tokens.', 10));
|
|
78
|
+
// 2. agent_override (priority 9) — simple agent override
|
|
79
|
+
if (this.repo.agents.simple) {
|
|
80
|
+
sections.push(this.section('agent_override', this.repo.agents.simple, 9));
|
|
81
|
+
}
|
|
82
|
+
// 3. connections (priority 8)
|
|
83
|
+
const connectionsContent = this.buildConnectionsContent();
|
|
84
|
+
if (connectionsContent) {
|
|
85
|
+
sections.push(this.section('connections', connectionsContent, 8));
|
|
86
|
+
}
|
|
87
|
+
// 4. knowledge (priority 6)
|
|
88
|
+
const knowledgeContent = this.buildKnowledgeContent();
|
|
89
|
+
if (knowledgeContent) {
|
|
90
|
+
sections.push(this.section('knowledge', knowledgeContent, 6));
|
|
91
|
+
}
|
|
92
|
+
// 5. field_guidance (priority 5)
|
|
93
|
+
if (session.fieldGuidance) {
|
|
94
|
+
sections.push(this.section('field_guidance', `## Field Access Restrictions\n${session.fieldGuidance}`, 5));
|
|
95
|
+
}
|
|
96
|
+
// 6. scope_descriptions (priority 4)
|
|
97
|
+
const scopeEntries = Object.entries(session.scopeLabels);
|
|
98
|
+
if (scopeEntries.length > 0) {
|
|
99
|
+
const lines = scopeEntries.map(([entity, label]) => `- ${entity}: ${label}`);
|
|
100
|
+
sections.push(this.section('scope_descriptions', `## Data Scope\n${lines.join('\n')}`, 4));
|
|
101
|
+
}
|
|
102
|
+
return this.buildResult(sections);
|
|
103
|
+
}
|
|
104
|
+
section(name, content, priority) {
|
|
105
|
+
return {
|
|
106
|
+
name,
|
|
107
|
+
content,
|
|
108
|
+
tokens: 0, // TokenAllocator will compute
|
|
109
|
+
priority,
|
|
110
|
+
trimmed: false,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
buildConnectionsContent() {
|
|
114
|
+
if (this.repo.connections.size === 0) {
|
|
115
|
+
return '';
|
|
116
|
+
}
|
|
117
|
+
const parts = [];
|
|
118
|
+
for (const [, conn] of this.repo.connections) {
|
|
119
|
+
const lines = [`## Connection: ${conn.name}`];
|
|
120
|
+
// Surface endpoints
|
|
121
|
+
const includedEndpoints = conn.surface.filter((ep) => ep.included);
|
|
122
|
+
if (includedEndpoints.length > 0) {
|
|
123
|
+
lines.push('', '### Available Endpoints');
|
|
124
|
+
for (const ep of includedEndpoints) {
|
|
125
|
+
lines.push(`${ep.method} ${ep.path} — ${ep.description}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Entities
|
|
129
|
+
if (conn.entities) {
|
|
130
|
+
lines.push('', '### Entities', conn.entities);
|
|
131
|
+
}
|
|
132
|
+
// Rules
|
|
133
|
+
if (conn.rules) {
|
|
134
|
+
lines.push('', '### Rules', conn.rules);
|
|
135
|
+
}
|
|
136
|
+
parts.push(lines.join('\n'));
|
|
137
|
+
}
|
|
138
|
+
return parts.join('\n\n');
|
|
139
|
+
}
|
|
140
|
+
buildSkillsContent() {
|
|
141
|
+
if (this.repo.skills.length === 0) {
|
|
142
|
+
return '';
|
|
143
|
+
}
|
|
144
|
+
const lines = ['## Available Skills', ''];
|
|
145
|
+
for (const skill of this.repo.skills) {
|
|
146
|
+
const trigger = skill.trigger ?? 'Manual activation';
|
|
147
|
+
lines.push(`- **${skill.name}**: ${skill.description}`);
|
|
148
|
+
lines.push(` Trigger: ${trigger}`);
|
|
149
|
+
}
|
|
150
|
+
return lines.join('\n');
|
|
151
|
+
}
|
|
152
|
+
buildKnowledgeContent() {
|
|
153
|
+
if (this.repo.knowledge.length === 0) {
|
|
154
|
+
return '';
|
|
155
|
+
}
|
|
156
|
+
const lines = ['## Knowledge Base'];
|
|
157
|
+
for (const doc of this.repo.knowledge) {
|
|
158
|
+
lines.push('', `### ${doc.title}`, doc.body);
|
|
159
|
+
}
|
|
160
|
+
return lines.join('\n');
|
|
161
|
+
}
|
|
162
|
+
buildResult(sections) {
|
|
163
|
+
const { included, trimmed, totalTokens } = this.allocator.allocate(sections);
|
|
164
|
+
const allSections = [...included, ...trimmed];
|
|
165
|
+
const sectionBreakdown = {};
|
|
166
|
+
for (const s of allSections) {
|
|
167
|
+
sectionBreakdown[s.name] = s.tokens;
|
|
168
|
+
}
|
|
169
|
+
const total = this.allocator.budget;
|
|
170
|
+
const systemPrompt = included.map((s) => s.content).join('\n\n');
|
|
171
|
+
return {
|
|
172
|
+
systemPrompt,
|
|
173
|
+
tokenUsage: {
|
|
174
|
+
total,
|
|
175
|
+
used: totalTokens,
|
|
176
|
+
remaining: total - totalTokens,
|
|
177
|
+
sectionBreakdown,
|
|
178
|
+
},
|
|
179
|
+
sections: allSections,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=context-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-compiler.js","sourceRoot":"","sources":["../../../src/runtime/context-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Build the default Amodal system prompt.
|
|
8
|
+
*
|
|
9
|
+
* Used when the user has not set a custom `basePrompt` in amodal.json
|
|
10
|
+
* or on the application record. This replaces the upstream Gemini CLI
|
|
11
|
+
* system prompt with one tailored for the Amodal agent runtime.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildDefaultPrompt(opts: {
|
|
14
|
+
name: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
agentContext?: string;
|
|
17
|
+
connectionNames?: string[];
|
|
18
|
+
skills?: Array<{
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
trigger?: string;
|
|
22
|
+
body?: string;
|
|
23
|
+
}>;
|
|
24
|
+
knowledge?: Array<{
|
|
25
|
+
name: string;
|
|
26
|
+
title?: string;
|
|
27
|
+
}>;
|
|
28
|
+
}): string;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Build the default Amodal system prompt.
|
|
8
|
+
*
|
|
9
|
+
* Used when the user has not set a custom `basePrompt` in amodal.json
|
|
10
|
+
* or on the application record. This replaces the upstream Gemini CLI
|
|
11
|
+
* system prompt with one tailored for the Amodal agent runtime.
|
|
12
|
+
*/
|
|
13
|
+
export function buildDefaultPrompt(opts) {
|
|
14
|
+
const parts = [];
|
|
15
|
+
// Identity
|
|
16
|
+
parts.push(`You are ${opts.name}${opts.description ? ` — ${opts.description}` : ''}.`);
|
|
17
|
+
parts.push('');
|
|
18
|
+
// Agent context (if set by the deployment)
|
|
19
|
+
if (opts.agentContext) {
|
|
20
|
+
parts.push(opts.agentContext);
|
|
21
|
+
parts.push('');
|
|
22
|
+
}
|
|
23
|
+
// Core behavior
|
|
24
|
+
parts.push(`## How you work
|
|
25
|
+
|
|
26
|
+
- Use the **request** tool to query connected systems. Always specify the connection name, HTTP method, endpoint, and intent (read or write).
|
|
27
|
+
- Write operations require user confirmation unless the user has explicitly approved the action.
|
|
28
|
+
- Never fabricate data. If a query returns no results, say so. If you're uncertain, ask.
|
|
29
|
+
- When the user's question requires data from external systems, always query first — do not guess.
|
|
30
|
+
- Keep responses concise and grounded in the data you retrieve.`);
|
|
31
|
+
parts.push('');
|
|
32
|
+
// Connections
|
|
33
|
+
if (opts.connectionNames && opts.connectionNames.length > 0) {
|
|
34
|
+
parts.push('## Connected systems');
|
|
35
|
+
parts.push('');
|
|
36
|
+
for (const name of opts.connectionNames) {
|
|
37
|
+
parts.push(`- **${name}**`);
|
|
38
|
+
}
|
|
39
|
+
parts.push('');
|
|
40
|
+
parts.push('Use `request` with the connection name to interact with these systems. Check the connection documentation for available endpoints.');
|
|
41
|
+
parts.push('');
|
|
42
|
+
}
|
|
43
|
+
// Skills
|
|
44
|
+
if (opts.skills && opts.skills.length > 0) {
|
|
45
|
+
parts.push('## Skills');
|
|
46
|
+
parts.push('');
|
|
47
|
+
for (const skill of opts.skills) {
|
|
48
|
+
parts.push(`### ${skill.name}`);
|
|
49
|
+
if (skill.trigger) {
|
|
50
|
+
parts.push(`**When to activate:** ${skill.trigger}`);
|
|
51
|
+
}
|
|
52
|
+
parts.push(skill.description);
|
|
53
|
+
if (skill.body) {
|
|
54
|
+
parts.push('');
|
|
55
|
+
parts.push(skill.body);
|
|
56
|
+
}
|
|
57
|
+
parts.push('');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Knowledge
|
|
61
|
+
if (opts.knowledge && opts.knowledge.length > 0) {
|
|
62
|
+
parts.push('## Available knowledge');
|
|
63
|
+
parts.push('');
|
|
64
|
+
for (const doc of opts.knowledge) {
|
|
65
|
+
parts.push(`- ${doc.title ?? doc.name}`);
|
|
66
|
+
}
|
|
67
|
+
parts.push('');
|
|
68
|
+
}
|
|
69
|
+
return parts.join('\n').trim();
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=default-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-prompt.js","sourceRoot":"","sources":["../../../src/runtime/default-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for an explore sub-agent invocation.
|
|
8
|
+
* The actual agent execution is handled by the runtime server (Phase 4).
|
|
9
|
+
* This module prepares the context, model selection, and constraints.
|
|
10
|
+
*/
|
|
11
|
+
import type { ModelConfig } from '../repo/config-schema.js';
|
|
12
|
+
import type { ConnectionsMap } from '../templates/connections.js';
|
|
13
|
+
import type { SessionRuntime } from './session-setup.js';
|
|
14
|
+
export interface ExploreConfig {
|
|
15
|
+
systemPrompt: string;
|
|
16
|
+
model: ModelConfig;
|
|
17
|
+
/** All available model configs for override selection */
|
|
18
|
+
availableModels: {
|
|
19
|
+
main: ModelConfig;
|
|
20
|
+
simple?: ModelConfig;
|
|
21
|
+
advanced?: ModelConfig;
|
|
22
|
+
};
|
|
23
|
+
connectionsMap: ConnectionsMap;
|
|
24
|
+
readOnly: true;
|
|
25
|
+
maxTurns: number;
|
|
26
|
+
maxDepth: number;
|
|
27
|
+
}
|
|
28
|
+
export interface ExploreRequest {
|
|
29
|
+
query: string;
|
|
30
|
+
endpointHints?: string[];
|
|
31
|
+
parentDepth: number;
|
|
32
|
+
}
|
|
33
|
+
export interface ExploreResult {
|
|
34
|
+
summary: string;
|
|
35
|
+
tokensUsed: number;
|
|
36
|
+
endpointsQueried: string[];
|
|
37
|
+
truncated: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Prepares the configuration for an explore sub-agent.
|
|
41
|
+
*/
|
|
42
|
+
export declare function prepareExploreConfig(runtime: SessionRuntime, options?: {
|
|
43
|
+
maxTurns?: number;
|
|
44
|
+
maxDepth?: number;
|
|
45
|
+
}): ExploreConfig;
|
|
46
|
+
/**
|
|
47
|
+
* Resolves the effective model for an explore sub-agent call.
|
|
48
|
+
*
|
|
49
|
+
* If the LLM passes a `model` parameter, this resolves it against the
|
|
50
|
+
* available models:
|
|
51
|
+
* - "simple" → the explore/lightweight model
|
|
52
|
+
* - "default" → the default explore model (same as no override)
|
|
53
|
+
* - "advanced" → the main/primary model
|
|
54
|
+
* - "provider:model" → literal override (e.g., "openai:gpt-4o-mini")
|
|
55
|
+
*
|
|
56
|
+
* Otherwise returns the default explore model.
|
|
57
|
+
*/
|
|
58
|
+
export declare function resolveExploreModel(config: ExploreConfig, modelParam?: string): ModelConfig;
|
|
59
|
+
/**
|
|
60
|
+
* Validates an explore request against the config constraints.
|
|
61
|
+
* Returns an error message if invalid, null if valid.
|
|
62
|
+
*/
|
|
63
|
+
export declare function validateExploreRequest(request: ExploreRequest, config: ExploreConfig): string | null;
|
|
64
|
+
/**
|
|
65
|
+
* The explore tool name constant.
|
|
66
|
+
*/
|
|
67
|
+
export declare const EXPLORE_TOOL_NAME = "explore";
|
|
68
|
+
/**
|
|
69
|
+
* The explore tool definition for LLM tool calling.
|
|
70
|
+
* This is the schema the LLM sees.
|
|
71
|
+
*/
|
|
72
|
+
export declare const EXPLORE_TOOL_SCHEMA: {
|
|
73
|
+
readonly name: "explore";
|
|
74
|
+
readonly description: "Delegate data gathering to a focused sub-agent that queries connected systems and returns a concise summary. Use this for broad investigation, parallel data collection, or when you need to gather information from multiple endpoints.";
|
|
75
|
+
readonly parameters: {
|
|
76
|
+
readonly type: "object";
|
|
77
|
+
readonly properties: {
|
|
78
|
+
readonly query: {
|
|
79
|
+
readonly type: "string";
|
|
80
|
+
readonly description: "What to investigate. Be specific about what data you need.";
|
|
81
|
+
};
|
|
82
|
+
readonly endpoint_hints: {
|
|
83
|
+
readonly type: "array";
|
|
84
|
+
readonly items: {
|
|
85
|
+
readonly type: "string";
|
|
86
|
+
};
|
|
87
|
+
readonly description: "Optional: specific endpoint paths to prioritize (e.g., \"/api/contacts\", \"/api/deals\").";
|
|
88
|
+
};
|
|
89
|
+
readonly model: {
|
|
90
|
+
readonly type: "string";
|
|
91
|
+
readonly description: "Optional: model to use for this sub-agent. Use \"simple\" for the lightweight model, \"default\" for the standard explore model, \"advanced\" for the primary model, or \"provider:model\" for a specific model (e.g., \"openai:gpt-4o-mini\").";
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
readonly required: readonly ["query"];
|
|
95
|
+
};
|
|
96
|
+
};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
const DEFAULT_MAX_TURNS = 10;
|
|
7
|
+
const DEFAULT_MAX_DEPTH = 2;
|
|
8
|
+
/**
|
|
9
|
+
* Prepares the configuration for an explore sub-agent.
|
|
10
|
+
*/
|
|
11
|
+
export function prepareExploreConfig(runtime, options) {
|
|
12
|
+
const models = runtime.repo.config.models;
|
|
13
|
+
const model = models['simple'] ?? models['main'];
|
|
14
|
+
return {
|
|
15
|
+
systemPrompt: runtime.exploreContext.systemPrompt,
|
|
16
|
+
model,
|
|
17
|
+
availableModels: models,
|
|
18
|
+
connectionsMap: runtime.connectionsMap,
|
|
19
|
+
readOnly: true,
|
|
20
|
+
maxTurns: options?.maxTurns ?? DEFAULT_MAX_TURNS,
|
|
21
|
+
maxDepth: options?.maxDepth ?? DEFAULT_MAX_DEPTH,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolves the effective model for an explore sub-agent call.
|
|
26
|
+
*
|
|
27
|
+
* If the LLM passes a `model` parameter, this resolves it against the
|
|
28
|
+
* available models:
|
|
29
|
+
* - "simple" → the explore/lightweight model
|
|
30
|
+
* - "default" → the default explore model (same as no override)
|
|
31
|
+
* - "advanced" → the main/primary model
|
|
32
|
+
* - "provider:model" → literal override (e.g., "openai:gpt-4o-mini")
|
|
33
|
+
*
|
|
34
|
+
* Otherwise returns the default explore model.
|
|
35
|
+
*/
|
|
36
|
+
export function resolveExploreModel(config, modelParam) {
|
|
37
|
+
if (!modelParam) {
|
|
38
|
+
return config.model;
|
|
39
|
+
}
|
|
40
|
+
const normalized = modelParam.trim().toLowerCase();
|
|
41
|
+
// Named aliases
|
|
42
|
+
if (normalized === 'simple') {
|
|
43
|
+
return config.availableModels.simple ?? config.model;
|
|
44
|
+
}
|
|
45
|
+
if (normalized === 'default') {
|
|
46
|
+
return config.model;
|
|
47
|
+
}
|
|
48
|
+
if (normalized === 'advanced') {
|
|
49
|
+
return config.availableModels.advanced ?? config.availableModels.main;
|
|
50
|
+
}
|
|
51
|
+
// Literal "provider:model" override (e.g., "openai:gpt-4o-mini")
|
|
52
|
+
if (modelParam.includes(':')) {
|
|
53
|
+
const colonIdx = modelParam.indexOf(':');
|
|
54
|
+
const provider = modelParam.slice(0, colonIdx).trim();
|
|
55
|
+
const model = modelParam.slice(colonIdx + 1).trim();
|
|
56
|
+
if (provider && model) {
|
|
57
|
+
return {
|
|
58
|
+
provider,
|
|
59
|
+
model,
|
|
60
|
+
// Inherit credentials from the default explore model so tenant creds flow through
|
|
61
|
+
credentials: config.model.credentials,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return config.model;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Validates an explore request against the config constraints.
|
|
69
|
+
* Returns an error message if invalid, null if valid.
|
|
70
|
+
*/
|
|
71
|
+
export function validateExploreRequest(request, config) {
|
|
72
|
+
if (!request.query || request.query.trim().length === 0) {
|
|
73
|
+
return 'Explore query must not be empty';
|
|
74
|
+
}
|
|
75
|
+
if (request.parentDepth >= config.maxDepth) {
|
|
76
|
+
return `Explore request exceeds max depth: parentDepth=${request.parentDepth}, maxDepth=${config.maxDepth}`;
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The explore tool name constant.
|
|
82
|
+
*/
|
|
83
|
+
export const EXPLORE_TOOL_NAME = 'explore';
|
|
84
|
+
/**
|
|
85
|
+
* The explore tool definition for LLM tool calling.
|
|
86
|
+
* This is the schema the LLM sees.
|
|
87
|
+
*/
|
|
88
|
+
export const EXPLORE_TOOL_SCHEMA = {
|
|
89
|
+
name: 'explore',
|
|
90
|
+
description: 'Delegate data gathering to a focused sub-agent that queries connected systems and returns a concise summary. Use this for broad investigation, parallel data collection, or when you need to gather information from multiple endpoints.',
|
|
91
|
+
parameters: {
|
|
92
|
+
type: 'object',
|
|
93
|
+
properties: {
|
|
94
|
+
query: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
description: 'What to investigate. Be specific about what data you need.',
|
|
97
|
+
},
|
|
98
|
+
endpoint_hints: {
|
|
99
|
+
type: 'array',
|
|
100
|
+
items: { type: 'string' },
|
|
101
|
+
description: 'Optional: specific endpoint paths to prioritize (e.g., "/api/contacts", "/api/deals").',
|
|
102
|
+
},
|
|
103
|
+
model: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
description: 'Optional: model to use for this sub-agent. Use "simple" for the lightweight model, "default" for the standard explore model, "advanced" for the primary model, or "provider:model" for a specific model (e.g., "openai:gpt-4o-mini").',
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
required: ['query'],
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=explore-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explore-tool.js","sourceRoot":"","sources":["../../../src/runtime/explore-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
export { buildAccessConfigs, buildConnectionsMap } from './connection-bridge.js';
|
|
7
|
+
export { ContextCompiler } from './context-compiler.js';
|
|
8
|
+
export type { CompiledContext, ContextSection, SessionConfig, TokenBudget, } from './runtime-types.js';
|
|
9
|
+
export { setupSession } from './session-setup.js';
|
|
10
|
+
export type { SessionRuntime, SessionSetupOptions } from './session-setup.js';
|
|
11
|
+
export { getModelContextWindow, TokenAllocator } from './token-allocator.js';
|
|
12
|
+
export { defaultUserContext, extractRoles, generateAlternativeLookupGuidance, generateFieldGuidance, resolveScopeLabels, } from './user-context.js';
|
|
13
|
+
export type { UserContextResult } from './user-context.js';
|
|
14
|
+
export { EXPLORE_TOOL_NAME, EXPLORE_TOOL_SCHEMA, prepareExploreConfig, resolveExploreModel, validateExploreRequest, } from './explore-tool.js';
|
|
15
|
+
export type { ExploreConfig, ExploreRequest, ExploreResult, } from './explore-tool.js';
|
|
16
|
+
export { createSecuredReadOnlyRequestTool, createSecuredRequestTool, } from './request-integration.js';
|
|
17
|
+
export { PlanModeManager } from './plan-mode.js';
|
|
18
|
+
export { OutputPipeline, StreamGuardProcessor } from './output-pipeline.js';
|
|
19
|
+
export type { OutputPipelineConfig, PipelineResult } from './output-pipeline.js';
|
|
20
|
+
export { RuntimeTelemetry } from './telemetry-hooks.js';
|
|
21
|
+
export type { RuntimeTelemetryEvent, TelemetrySink, TelemetryEventType } from './telemetry-hooks.js';
|
|
22
|
+
export { PlatformTelemetrySink } from './telemetry-client.js';
|
|
23
|
+
export { PreferenceClient, formatPreferencesPrompt } from './preference-client.js';
|
|
24
|
+
export type { UserPreference } from './preference-client.js';
|
|
25
|
+
export { detectPreferences } from './preference-detector.js';
|
|
26
|
+
export type { DetectedPreference } from './preference-detector.js';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
export { buildAccessConfigs, buildConnectionsMap } from './connection-bridge.js';
|
|
7
|
+
export { ContextCompiler } from './context-compiler.js';
|
|
8
|
+
export { setupSession } from './session-setup.js';
|
|
9
|
+
export { getModelContextWindow, TokenAllocator } from './token-allocator.js';
|
|
10
|
+
export { defaultUserContext, extractRoles, generateAlternativeLookupGuidance, generateFieldGuidance, resolveScopeLabels, } from './user-context.js';
|
|
11
|
+
export { EXPLORE_TOOL_NAME, EXPLORE_TOOL_SCHEMA, prepareExploreConfig, resolveExploreModel, validateExploreRequest, } from './explore-tool.js';
|
|
12
|
+
export { createSecuredReadOnlyRequestTool, createSecuredRequestTool, } from './request-integration.js';
|
|
13
|
+
export { PlanModeManager } from './plan-mode.js';
|
|
14
|
+
export { OutputPipeline, StreamGuardProcessor } from './output-pipeline.js';
|
|
15
|
+
export { RuntimeTelemetry } from './telemetry-hooks.js';
|
|
16
|
+
export { PlatformTelemetrySink } from './telemetry-client.js';
|
|
17
|
+
export { PreferenceClient, formatPreferencesPrompt } from './preference-client.js';
|
|
18
|
+
export { detectPreferences } from './preference-detector.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,kBAAkB,EAAE,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAOtD,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,qBAAqB,EAAE,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,iCAAiC,EACjC,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAC,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAEjF,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import type { OutputGuard } from '../security/output-guard.js';
|
|
7
|
+
import type { GuardFinding, GuardResult } from '../security/security-types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for the output pipeline.
|
|
10
|
+
*/
|
|
11
|
+
export interface OutputPipelineConfig {
|
|
12
|
+
outputGuard: OutputGuard;
|
|
13
|
+
onGuardDecision?: (result: GuardResult) => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Result from processing agent output through the pipeline.
|
|
17
|
+
*/
|
|
18
|
+
export interface PipelineResult {
|
|
19
|
+
output: string;
|
|
20
|
+
modified: boolean;
|
|
21
|
+
blocked: boolean;
|
|
22
|
+
findings: GuardFinding[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Wraps OutputGuard in a pipeline suitable for both synchronous
|
|
26
|
+
* and streaming use. Provides telemetry hooks and buffered stream
|
|
27
|
+
* processing.
|
|
28
|
+
*/
|
|
29
|
+
export declare class OutputPipeline {
|
|
30
|
+
private readonly outputGuard;
|
|
31
|
+
private readonly onGuardDecision?;
|
|
32
|
+
constructor(config: OutputPipelineConfig);
|
|
33
|
+
/**
|
|
34
|
+
* Process a complete agent response text through the guard.
|
|
35
|
+
*/
|
|
36
|
+
process(text: string): PipelineResult;
|
|
37
|
+
/**
|
|
38
|
+
* Create a streaming processor that buffers tokens and guards on finalize.
|
|
39
|
+
*/
|
|
40
|
+
createStreamProcessor(): StreamGuardProcessor;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Buffers streaming tokens and runs the output guard on finalize.
|
|
44
|
+
*/
|
|
45
|
+
export declare class StreamGuardProcessor {
|
|
46
|
+
private readonly pipeline;
|
|
47
|
+
private buffer;
|
|
48
|
+
constructor(pipeline: OutputPipeline);
|
|
49
|
+
/**
|
|
50
|
+
* Feed a token into the buffer. Tokens are accumulated
|
|
51
|
+
* for guard processing on finalize.
|
|
52
|
+
*/
|
|
53
|
+
feed(token: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* Get the current buffered text for intermediate streaming display.
|
|
56
|
+
*/
|
|
57
|
+
getBuffer(): string;
|
|
58
|
+
/**
|
|
59
|
+
* Run the output guard on the full buffered text and return the result.
|
|
60
|
+
*/
|
|
61
|
+
finalize(): PipelineResult;
|
|
62
|
+
}
|