@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,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { HttpToolConfigSchema } from '../tools/http-tool-types.js';
|
|
8
|
+
import { ChainToolConfigSchema } from '../tools/chain-tool-types.js';
|
|
9
|
+
import { FunctionToolConfigSchema } from '../tools/function-tool-types.js';
|
|
10
|
+
import { RoleDefinitionSchema } from '../roles/role-types.js';
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Automation schemas
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Automation trigger — cron schedule or webhook event.
|
|
16
|
+
*/
|
|
17
|
+
export const AutomationTriggerSchema = z.discriminatedUnion('type', [
|
|
18
|
+
z.object({
|
|
19
|
+
type: z.literal('cron'),
|
|
20
|
+
// Cron expression (e.g., "*/5 * * * *")
|
|
21
|
+
schedule: z.string().min(1),
|
|
22
|
+
}),
|
|
23
|
+
z.object({
|
|
24
|
+
type: z.literal('webhook'),
|
|
25
|
+
/** Event source identifier */
|
|
26
|
+
source: z.string().min(1),
|
|
27
|
+
/** Optional filter expression for the webhook payload */
|
|
28
|
+
filter: z.string().optional(),
|
|
29
|
+
}),
|
|
30
|
+
]);
|
|
31
|
+
/**
|
|
32
|
+
* Automation output channel configuration.
|
|
33
|
+
*/
|
|
34
|
+
export const AutomationOutputSchema = z.object({
|
|
35
|
+
/** Output channel type */
|
|
36
|
+
channel: z.enum(['slack', 'webhook', 'email']),
|
|
37
|
+
/** Channel-specific target (URL, email address, etc.) */
|
|
38
|
+
target: z.string().min(1),
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Constraints applied to automation sessions.
|
|
42
|
+
*/
|
|
43
|
+
export const AutomationConstraintsSchema = z.object({
|
|
44
|
+
/** Maximum number of tool calls per automation run */
|
|
45
|
+
max_tool_calls: z.number().int().positive().optional(),
|
|
46
|
+
/** Timeout in seconds for the entire automation run */
|
|
47
|
+
timeout_seconds: z.number().int().positive().optional(),
|
|
48
|
+
/** Maximum tokens for the LLM response */
|
|
49
|
+
max_tokens: z.number().int().positive().optional(),
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* An automation definition — scheduled or event-triggered agent prompt.
|
|
53
|
+
*/
|
|
54
|
+
export const AutomationDefinitionSchema = z.object({
|
|
55
|
+
/** Unique automation name */
|
|
56
|
+
name: z.string().min(1),
|
|
57
|
+
/** How this automation is triggered */
|
|
58
|
+
trigger: AutomationTriggerSchema,
|
|
59
|
+
/** The prompt sent to the agent when triggered */
|
|
60
|
+
prompt: z.string().min(1),
|
|
61
|
+
/** Tools available during this automation's session */
|
|
62
|
+
tools: z.array(z.string().min(1)).min(1),
|
|
63
|
+
/** Skills available during this automation's session */
|
|
64
|
+
skills: z.array(z.string().min(1)).default(['*']),
|
|
65
|
+
/** Where to send the automation's output */
|
|
66
|
+
output: AutomationOutputSchema,
|
|
67
|
+
/** Session constraints */
|
|
68
|
+
constraints: AutomationConstraintsSchema.optional(),
|
|
69
|
+
/** Whether write operations are allowed (default false — safety guardrail) */
|
|
70
|
+
allow_writes: z.boolean().default(false),
|
|
71
|
+
/** Session types where this automation is available. Empty/undefined = all. */
|
|
72
|
+
session_types: z.array(z.string().min(1)).optional(),
|
|
73
|
+
});
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
// Bundle tool config — discriminated union of all tool types
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
const BundleHttpToolSchema = HttpToolConfigSchema.extend({
|
|
78
|
+
type: z.literal('http'),
|
|
79
|
+
disabled: z.boolean().optional(),
|
|
80
|
+
session_types: z.array(z.string().min(1)).optional(),
|
|
81
|
+
});
|
|
82
|
+
const BundleChainToolSchema = ChainToolConfigSchema.extend({
|
|
83
|
+
type: z.literal('chain'),
|
|
84
|
+
disabled: z.boolean().optional(),
|
|
85
|
+
session_types: z.array(z.string().min(1)).optional(),
|
|
86
|
+
});
|
|
87
|
+
const BundleFunctionToolSchema = FunctionToolConfigSchema.extend({
|
|
88
|
+
type: z.literal('function'),
|
|
89
|
+
disabled: z.boolean().optional(),
|
|
90
|
+
session_types: z.array(z.string().min(1)).optional(),
|
|
91
|
+
});
|
|
92
|
+
/**
|
|
93
|
+
* A tool config in a version bundle — discriminated by `type`.
|
|
94
|
+
*/
|
|
95
|
+
export const BundleToolConfigSchema = z.discriminatedUnion('type', [
|
|
96
|
+
BundleHttpToolSchema,
|
|
97
|
+
BundleChainToolSchema,
|
|
98
|
+
BundleFunctionToolSchema,
|
|
99
|
+
]);
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
// Handler and dependency schemas
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
/**
|
|
104
|
+
* A handler definition — entry file plus all source files.
|
|
105
|
+
*/
|
|
106
|
+
export const BundleHandlerSchema = z.object({
|
|
107
|
+
/** Entry point filename (e.g., "compute-risk.ts") */
|
|
108
|
+
entry: z.string().min(1),
|
|
109
|
+
/** Map of filename → source code */
|
|
110
|
+
files: z.record(z.string().min(1)),
|
|
111
|
+
});
|
|
112
|
+
/**
|
|
113
|
+
* Dependencies required by the version bundle.
|
|
114
|
+
*/
|
|
115
|
+
export const BundleDependenciesSchema = z.object({
|
|
116
|
+
/** npm packages: { name: version } */
|
|
117
|
+
npm: z.record(z.string()).optional(),
|
|
118
|
+
/** pip packages: { name: version } */
|
|
119
|
+
pip: z.record(z.string()).optional(),
|
|
120
|
+
/** System binaries that must be available (checked via `which`) */
|
|
121
|
+
system: z.array(z.string().min(1)).optional(),
|
|
122
|
+
});
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
// Skill schema
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
/**
|
|
127
|
+
* Knowledge base dependencies for a skill — tags and scope to auto-load.
|
|
128
|
+
*/
|
|
129
|
+
export const SkillKnowledgeDepsSchema = z.object({
|
|
130
|
+
/** Docs matching any of these tags are auto-loaded on skill activation. */
|
|
131
|
+
tags: z.array(z.string().min(1)).optional(),
|
|
132
|
+
/** Restrict to a specific scope, or 'all' for both application and tenant. Default: 'all'. */
|
|
133
|
+
scope: z.enum(['application', 'tenant', 'all']).optional(),
|
|
134
|
+
});
|
|
135
|
+
/**
|
|
136
|
+
* A skill definition in a version bundle.
|
|
137
|
+
*/
|
|
138
|
+
export const BundleSkillSchema = z.object({
|
|
139
|
+
/** Skill name (used for activation) */
|
|
140
|
+
name: z.string().min(1),
|
|
141
|
+
/** Short description (shown to LLM in system prompt) */
|
|
142
|
+
description: z.string().min(1),
|
|
143
|
+
/** Full skill body (SKILL.md content, loaded on activation) */
|
|
144
|
+
body: z.string().min(1),
|
|
145
|
+
/** Knowledge base documents to auto-load when this skill activates. */
|
|
146
|
+
knowledge: SkillKnowledgeDepsSchema.optional(),
|
|
147
|
+
/** Session types where this skill is available. Empty/undefined = all. */
|
|
148
|
+
session_types: z.array(z.string().min(1)).optional(),
|
|
149
|
+
});
|
|
150
|
+
// ---------------------------------------------------------------------------
|
|
151
|
+
// Subagent schema
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
/**
|
|
154
|
+
* A subagent (task agent) configuration in a version bundle.
|
|
155
|
+
*/
|
|
156
|
+
export const SubagentConfigSchema = z.object({
|
|
157
|
+
/** Subagent name (used for dispatch) */
|
|
158
|
+
name: z.string().min(1),
|
|
159
|
+
/** Display name shown in the admin UI */
|
|
160
|
+
displayName: z.string().min(1),
|
|
161
|
+
/** Short description (visible to admins and injected into primary agent context) */
|
|
162
|
+
description: z.string().min(1),
|
|
163
|
+
/** Prompt template with {{variable}} placeholders */
|
|
164
|
+
prompt: z.string().min(1),
|
|
165
|
+
/** Tools this subagent can use */
|
|
166
|
+
tools: z.array(z.string().min(1)).default(['shell_exec', 'load_knowledge']),
|
|
167
|
+
/** Max dispatch depth (1 = no sub-agents, 2 = can dispatch sub-task agents) */
|
|
168
|
+
maxDepth: z.number().int().min(1).max(4).default(1),
|
|
169
|
+
/** Max tool calls per execution */
|
|
170
|
+
maxToolCalls: z.number().int().min(1).max(100).default(10),
|
|
171
|
+
/** Timeout in seconds */
|
|
172
|
+
timeout: z.number().int().min(5).max(600).default(20),
|
|
173
|
+
/** Target output token range */
|
|
174
|
+
targetOutputMin: z.number().int().min(50).max(2000).default(200),
|
|
175
|
+
targetOutputMax: z.number().int().min(50).max(2000).default(400),
|
|
176
|
+
/** Model tier: 'simple' for data gathering, 'advanced' for complex reasoning, 'default' for standard */
|
|
177
|
+
modelTier: z.enum(['default', 'simple', 'advanced']).optional(),
|
|
178
|
+
/** Session types where this subagent is available. Empty/undefined = all. */
|
|
179
|
+
session_types: z.array(z.string().min(1)).optional(),
|
|
180
|
+
});
|
|
181
|
+
// ---------------------------------------------------------------------------
|
|
182
|
+
// Full version bundle
|
|
183
|
+
// ---------------------------------------------------------------------------
|
|
184
|
+
/**
|
|
185
|
+
* A complete version bundle — the atomic unit of deployment.
|
|
186
|
+
*/
|
|
187
|
+
export const VersionBundleSchema = z.object({
|
|
188
|
+
/** Semantic version string (e.g., "1.2.3") */
|
|
189
|
+
version: z.string().min(1),
|
|
190
|
+
/** ISO 8601 timestamp when published */
|
|
191
|
+
published_at: z.string().optional(),
|
|
192
|
+
/** Who published this version */
|
|
193
|
+
published_by: z.string().optional(),
|
|
194
|
+
/** Tool configurations */
|
|
195
|
+
tools: z.array(BundleToolConfigSchema).default([]),
|
|
196
|
+
/** Skill definitions */
|
|
197
|
+
skills: z.array(BundleSkillSchema).default([]),
|
|
198
|
+
/** Handler definitions keyed by handler name */
|
|
199
|
+
handlers: z.record(BundleHandlerSchema).default({}),
|
|
200
|
+
/** External dependencies */
|
|
201
|
+
dependencies: BundleDependenciesSchema.default({}),
|
|
202
|
+
/** Role definitions */
|
|
203
|
+
roles: z.array(RoleDefinitionSchema).default([]),
|
|
204
|
+
/** Automation definitions */
|
|
205
|
+
automations: z.array(AutomationDefinitionSchema).default([]),
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=version-bundle-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-bundle-types.js","sourceRoot":"","sources":["../../../src/versions/version-bundle-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import type { AuditLogger } from '../audit/audit-logger.js';
|
|
7
|
+
import type { FunctionHandlerMap } from '../tools/function-tool-types.js';
|
|
8
|
+
import type { HttpToolConfig } from '../tools/http-tool-types.js';
|
|
9
|
+
import type { ChainToolConfig } from '../tools/chain-tool-types.js';
|
|
10
|
+
import type { FunctionToolConfig } from '../tools/function-tool-types.js';
|
|
11
|
+
import type { RoleDefinition } from '../roles/role-types.js';
|
|
12
|
+
import type { VersionBundle, BundleSkill, AutomationDefinition } from './version-bundle-types.js';
|
|
13
|
+
import { type BundleSource } from './bundle-loader.js';
|
|
14
|
+
/**
|
|
15
|
+
* A fully loaded and ready-to-use version.
|
|
16
|
+
*/
|
|
17
|
+
export interface LoadedVersion {
|
|
18
|
+
/** The raw bundle */
|
|
19
|
+
bundle: VersionBundle;
|
|
20
|
+
/** Directory where this version's files live */
|
|
21
|
+
versionDir: string;
|
|
22
|
+
/** Imported function handlers */
|
|
23
|
+
handlerMap: FunctionHandlerMap;
|
|
24
|
+
/** HTTP tool configs extracted from the bundle */
|
|
25
|
+
httpToolConfigs: HttpToolConfig[];
|
|
26
|
+
/** Chain tool configs extracted from the bundle */
|
|
27
|
+
chainToolConfigs: ChainToolConfig[];
|
|
28
|
+
/** Function tool configs extracted from the bundle */
|
|
29
|
+
functionToolConfigs: FunctionToolConfig[];
|
|
30
|
+
/** Skill definitions */
|
|
31
|
+
skills: BundleSkill[];
|
|
32
|
+
/** Role definitions */
|
|
33
|
+
roles: RoleDefinition[];
|
|
34
|
+
/** Automation definitions */
|
|
35
|
+
automations: AutomationDefinition[];
|
|
36
|
+
/** When this version was loaded */
|
|
37
|
+
loadedAt: Date;
|
|
38
|
+
}
|
|
39
|
+
export interface VersionManagerOptions {
|
|
40
|
+
/** Base directory for version storage */
|
|
41
|
+
baseDir: string;
|
|
42
|
+
/** Optional audit logger for version_load events */
|
|
43
|
+
auditLogger?: AuditLogger;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Manages the version bundle lifecycle: load, install deps, import handlers,
|
|
47
|
+
* and atomically swap to the new version.
|
|
48
|
+
*/
|
|
49
|
+
export declare class VersionManager {
|
|
50
|
+
private readonly baseDir;
|
|
51
|
+
private readonly auditLogger?;
|
|
52
|
+
private _currentVersion;
|
|
53
|
+
constructor(options: VersionManagerOptions);
|
|
54
|
+
/**
|
|
55
|
+
* The currently active version, or null if none loaded.
|
|
56
|
+
*/
|
|
57
|
+
get currentVersion(): LoadedVersion | null;
|
|
58
|
+
/**
|
|
59
|
+
* Load a version bundle through the full lifecycle:
|
|
60
|
+
* 1. Fetch/read + validate
|
|
61
|
+
* 2. Create version directory
|
|
62
|
+
* 3. Diff dependencies against current version
|
|
63
|
+
* 4. Install dependencies + verify system binaries
|
|
64
|
+
* 5. Write + import handlers
|
|
65
|
+
* 6. Separate tool configs by type
|
|
66
|
+
* 7. Atomic swap
|
|
67
|
+
* 8. Audit log
|
|
68
|
+
*/
|
|
69
|
+
loadVersion(source: BundleSource): Promise<LoadedVersion>;
|
|
70
|
+
/**
|
|
71
|
+
* Get config-compatible fields from the current version.
|
|
72
|
+
* Returns null if no version is loaded.
|
|
73
|
+
*/
|
|
74
|
+
getVersionConfig(): {
|
|
75
|
+
httpToolConfigs: HttpToolConfig[];
|
|
76
|
+
chainToolConfigs: ChainToolConfig[];
|
|
77
|
+
functionToolConfigs: FunctionToolConfig[];
|
|
78
|
+
functionToolHandlers: FunctionHandlerMap;
|
|
79
|
+
roleDefinitions: RoleDefinition[];
|
|
80
|
+
skills: BundleSkill[];
|
|
81
|
+
automations: AutomationDefinition[];
|
|
82
|
+
version: string;
|
|
83
|
+
} | null;
|
|
84
|
+
/**
|
|
85
|
+
* Remove a version's directory from disk.
|
|
86
|
+
* Should only be called after all sessions using this version have finished.
|
|
87
|
+
*/
|
|
88
|
+
cleanup(version: string): Promise<void>;
|
|
89
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { mkdir, rm } from 'node:fs/promises';
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import { loadBundle } from './bundle-loader.js';
|
|
9
|
+
import { diffDependencies, installDependencies } from './dependency-manager.js';
|
|
10
|
+
import { loadHandlers } from './handler-loader.js';
|
|
11
|
+
/**
|
|
12
|
+
* Manages the version bundle lifecycle: load, install deps, import handlers,
|
|
13
|
+
* and atomically swap to the new version.
|
|
14
|
+
*/
|
|
15
|
+
export class VersionManager {
|
|
16
|
+
baseDir;
|
|
17
|
+
auditLogger;
|
|
18
|
+
_currentVersion = null;
|
|
19
|
+
constructor(options) {
|
|
20
|
+
this.baseDir = options.baseDir;
|
|
21
|
+
this.auditLogger = options.auditLogger;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The currently active version, or null if none loaded.
|
|
25
|
+
*/
|
|
26
|
+
get currentVersion() {
|
|
27
|
+
return this._currentVersion;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Load a version bundle through the full lifecycle:
|
|
31
|
+
* 1. Fetch/read + validate
|
|
32
|
+
* 2. Create version directory
|
|
33
|
+
* 3. Diff dependencies against current version
|
|
34
|
+
* 4. Install dependencies + verify system binaries
|
|
35
|
+
* 5. Write + import handlers
|
|
36
|
+
* 6. Separate tool configs by type
|
|
37
|
+
* 7. Atomic swap
|
|
38
|
+
* 8. Audit log
|
|
39
|
+
*/
|
|
40
|
+
async loadVersion(source) {
|
|
41
|
+
// 1. Load and validate
|
|
42
|
+
const bundle = await loadBundle(source);
|
|
43
|
+
// 2. Create version directory
|
|
44
|
+
const versionDir = path.join(this.baseDir, 'versions', bundle.version);
|
|
45
|
+
await mkdir(versionDir, { recursive: true });
|
|
46
|
+
// 3. Diff dependencies
|
|
47
|
+
const oldDeps = this._currentVersion
|
|
48
|
+
? this._currentVersion.bundle.dependencies
|
|
49
|
+
: {};
|
|
50
|
+
const diff = diffDependencies(oldDeps, bundle.dependencies);
|
|
51
|
+
// 4. Install dependencies and verify system binaries
|
|
52
|
+
const installResult = await installDependencies(diff, versionDir);
|
|
53
|
+
if (installResult.missingBinaries.length > 0) {
|
|
54
|
+
throw new Error(`Missing system binaries: ${installResult.missingBinaries.join(', ')}`);
|
|
55
|
+
}
|
|
56
|
+
// 5. Write and import handlers
|
|
57
|
+
const handlerMap = await loadHandlers(bundle.handlers, versionDir);
|
|
58
|
+
// 6. Separate tool configs by type (skip disabled tools as belt-and-suspenders)
|
|
59
|
+
const httpToolConfigs = [];
|
|
60
|
+
const chainToolConfigs = [];
|
|
61
|
+
const functionToolConfigs = [];
|
|
62
|
+
for (const tool of bundle.tools.filter((t) => !t.disabled)) {
|
|
63
|
+
if (tool.type === 'http') {
|
|
64
|
+
const { type: _, ...config } = tool;
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stripping discriminator from validated Zod output
|
|
66
|
+
httpToolConfigs.push(config);
|
|
67
|
+
}
|
|
68
|
+
else if (tool.type === 'chain') {
|
|
69
|
+
const { type: _, ...config } = tool;
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stripping discriminator from validated Zod output
|
|
71
|
+
chainToolConfigs.push(config);
|
|
72
|
+
}
|
|
73
|
+
else if (tool.type === 'function') {
|
|
74
|
+
const { type: _, ...config } = tool;
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stripping discriminator from validated Zod output
|
|
76
|
+
functionToolConfigs.push(config);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// 7. Build loaded version and atomic swap
|
|
80
|
+
const loadedVersion = {
|
|
81
|
+
bundle,
|
|
82
|
+
versionDir,
|
|
83
|
+
handlerMap,
|
|
84
|
+
httpToolConfigs,
|
|
85
|
+
chainToolConfigs,
|
|
86
|
+
functionToolConfigs,
|
|
87
|
+
skills: bundle.skills,
|
|
88
|
+
roles: bundle.roles,
|
|
89
|
+
automations: bundle.automations,
|
|
90
|
+
loadedAt: new Date(),
|
|
91
|
+
};
|
|
92
|
+
this._currentVersion = loadedVersion;
|
|
93
|
+
// 8. Audit
|
|
94
|
+
this.auditLogger?.logVersionLoad(bundle.version);
|
|
95
|
+
return loadedVersion;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get config-compatible fields from the current version.
|
|
99
|
+
* Returns null if no version is loaded.
|
|
100
|
+
*/
|
|
101
|
+
getVersionConfig() {
|
|
102
|
+
if (!this._currentVersion)
|
|
103
|
+
return null;
|
|
104
|
+
return {
|
|
105
|
+
httpToolConfigs: this._currentVersion.httpToolConfigs,
|
|
106
|
+
chainToolConfigs: this._currentVersion.chainToolConfigs,
|
|
107
|
+
functionToolConfigs: this._currentVersion.functionToolConfigs,
|
|
108
|
+
functionToolHandlers: this._currentVersion.handlerMap,
|
|
109
|
+
roleDefinitions: this._currentVersion.roles,
|
|
110
|
+
skills: this._currentVersion.skills,
|
|
111
|
+
automations: this._currentVersion.automations,
|
|
112
|
+
version: this._currentVersion.bundle.version,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Remove a version's directory from disk.
|
|
117
|
+
* Should only be called after all sessions using this version have finished.
|
|
118
|
+
*/
|
|
119
|
+
async cleanup(version) {
|
|
120
|
+
const versionDir = path.join(this.baseDir, 'versions', version);
|
|
121
|
+
await rm(versionDir, { recursive: true, force: true });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=version-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-manager.js","sourceRoot":"","sources":["../../../src/versions/version-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
export { WIDGET_TYPES } from './widget-types.js';
|
|
7
|
+
export type { WidgetType, PresentParams, InfoCardData, MetricData } from './widget-types.js';
|
|
8
|
+
export { PresentTool } from './present-tool.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import type { MessageBus } from '@google/gemini-cli-core';
|
|
7
|
+
import type { ToolResult, ToolInvocation } from '@google/gemini-cli-core';
|
|
8
|
+
import { BaseDeclarativeTool } from '@google/gemini-cli-core';
|
|
9
|
+
import type { ToolContext } from '../tool-context.js';
|
|
10
|
+
import type { PresentParams } from './widget-types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Built-in tool for presenting visual widgets inline in the conversation.
|
|
13
|
+
* Always available regardless of role. The server transforms the tool result
|
|
14
|
+
* into a widget SSE event for the client to render.
|
|
15
|
+
*/
|
|
16
|
+
export declare class PresentTool extends BaseDeclarativeTool<PresentParams, ToolResult> {
|
|
17
|
+
private config;
|
|
18
|
+
static readonly Name = "present";
|
|
19
|
+
constructor(config: ToolContext, messageBus: MessageBus);
|
|
20
|
+
protected createInvocation(params: PresentParams, messageBus: MessageBus, _toolName?: string, _toolDisplayName?: string): ToolInvocation<PresentParams, ToolResult>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { BaseDeclarativeTool, BaseToolInvocation, Kind } from '@google/gemini-cli-core';
|
|
7
|
+
import { PRESENT_TOOL_NAME, WIDGET_TYPES } from './widget-types.js';
|
|
8
|
+
import { ToolErrorType } from '@google/gemini-cli-core';
|
|
9
|
+
import { getPresentToolDefinition } from '../tools/definitions/amodal-tools.js';
|
|
10
|
+
class PresentInvocation extends BaseToolInvocation {
|
|
11
|
+
config;
|
|
12
|
+
constructor(config, params, messageBus, _toolName, _toolDisplayName) {
|
|
13
|
+
super(params, messageBus, _toolName, _toolDisplayName);
|
|
14
|
+
this.config = config;
|
|
15
|
+
}
|
|
16
|
+
getDescription() {
|
|
17
|
+
return `present [${this.params.widget}]`;
|
|
18
|
+
}
|
|
19
|
+
async getConfirmationDetails(_abortSignal) {
|
|
20
|
+
// No confirmation needed for rendering widgets
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
async execute(_signal) {
|
|
24
|
+
// Validate widget type
|
|
25
|
+
const validTypes = WIDGET_TYPES;
|
|
26
|
+
if (!validTypes.includes(this.params.widget)) {
|
|
27
|
+
const errorMessage = `Invalid widget type "${this.params.widget}". Must be one of: ${WIDGET_TYPES.join(', ')}`;
|
|
28
|
+
return {
|
|
29
|
+
llmContent: `Error: ${errorMessage}`,
|
|
30
|
+
returnDisplay: `Error: ${errorMessage}`,
|
|
31
|
+
error: {
|
|
32
|
+
message: errorMessage,
|
|
33
|
+
type: ToolErrorType.INVALID_TOOL_PARAMS,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
// Validate data is an object
|
|
38
|
+
if (!this.params.data || typeof this.params.data !== 'object') {
|
|
39
|
+
const errorMessage = 'Widget data must be a non-null object.';
|
|
40
|
+
return {
|
|
41
|
+
llmContent: `Error: ${errorMessage}`,
|
|
42
|
+
returnDisplay: `Error: ${errorMessage}`,
|
|
43
|
+
error: {
|
|
44
|
+
message: errorMessage,
|
|
45
|
+
type: ToolErrorType.INVALID_TOOL_PARAMS,
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// Validate required fields for input widget types
|
|
50
|
+
if (this.params.widget === 'credential-input') {
|
|
51
|
+
const data = this.params.data;
|
|
52
|
+
if (!data['connection_name'] || !data['tenant_id'] || !Array.isArray(data['fields'])) {
|
|
53
|
+
const errorMessage = 'credential-input requires connection_name, tenant_id, and fields array.';
|
|
54
|
+
return {
|
|
55
|
+
llmContent: `Error: ${errorMessage}`,
|
|
56
|
+
returnDisplay: `Error: ${errorMessage}`,
|
|
57
|
+
error: {
|
|
58
|
+
message: errorMessage,
|
|
59
|
+
type: ToolErrorType.INVALID_TOOL_PARAMS,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (this.params.widget === 'document-preview') {
|
|
65
|
+
const data = this.params.data;
|
|
66
|
+
if (!data['preview_id'] || !data['resource_type'] || !data['title'] || !data['body'] || !data['action']) {
|
|
67
|
+
const errorMessage = 'document-preview requires preview_id, resource_type, title, body, and action.';
|
|
68
|
+
return {
|
|
69
|
+
llmContent: `Error: ${errorMessage}`,
|
|
70
|
+
returnDisplay: `Error: ${errorMessage}`,
|
|
71
|
+
error: {
|
|
72
|
+
message: errorMessage,
|
|
73
|
+
type: ToolErrorType.INVALID_TOOL_PARAMS,
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Log audit event
|
|
79
|
+
const auditLogger = this.config.getAuditLogger();
|
|
80
|
+
if (auditLogger) {
|
|
81
|
+
auditLogger.logToolCall(PRESENT_TOOL_NAME, { widget: this.params.widget }, 0);
|
|
82
|
+
}
|
|
83
|
+
const successMessage = `Widget "${this.params.widget}" presented successfully.`;
|
|
84
|
+
return {
|
|
85
|
+
llmContent: successMessage,
|
|
86
|
+
returnDisplay: successMessage,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Built-in tool for presenting visual widgets inline in the conversation.
|
|
92
|
+
* Always available regardless of role. The server transforms the tool result
|
|
93
|
+
* into a widget SSE event for the client to render.
|
|
94
|
+
*/
|
|
95
|
+
export class PresentTool extends BaseDeclarativeTool {
|
|
96
|
+
config;
|
|
97
|
+
static Name = PRESENT_TOOL_NAME;
|
|
98
|
+
constructor(config, messageBus) {
|
|
99
|
+
const definition = getPresentToolDefinition();
|
|
100
|
+
super(PresentTool.Name, 'Present Widget', definition.base.description, Kind.Other, definition.base.parametersJsonSchema, messageBus, true, false);
|
|
101
|
+
this.config = config;
|
|
102
|
+
}
|
|
103
|
+
createInvocation(params, messageBus, _toolName, _toolDisplayName) {
|
|
104
|
+
return new PresentInvocation(this.config, params, messageBus, _toolName, _toolDisplayName ?? 'Present Widget');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=present-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present-tool.js","sourceRoot":"","sources":["../../../src/widgets/present-tool.ts"],"names":[],"mappings":"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"}
|