@theowlops/boombot 0.0.0-stage → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -3
- package/dist/LICENSE +21 -0
- package/dist/bin/boombot.js +16 -0
- package/dist/cli/api-key.js +123 -0
- package/dist/cli/bin-bun.js +17 -0
- package/dist/cli/bin.js +34 -0
- package/dist/cli/cli/cli-error.js +61 -0
- package/dist/cli/cli/dispatch.js +138 -0
- package/dist/cli/cli/help.js +83 -0
- package/dist/cli/cli/parser.js +89 -0
- package/dist/cli/cli/registry.js +185 -0
- package/dist/cli/cli/spec.js +41 -0
- package/dist/cli/cli/suggest.js +125 -0
- package/dist/cli/cli/version.js +30 -0
- package/dist/cli/cli/vocabulary.js +87 -0
- package/dist/cli/commands/doctor.js +365 -0
- package/dist/cli/commands/gateway.js +290 -0
- package/dist/cli/commands/migrate.js +270 -0
- package/dist/cli/commands/plugin.js +97 -0
- package/dist/cli/commands/setup.js +244 -0
- package/dist/cli/config-file.js +133 -0
- package/dist/cli/master-key.js +78 -0
- package/dist/cli/open-browser.js +59 -0
- package/dist/cli/web-assets.js +58 -0
- package/dist/gateway/auth.js +46 -0
- package/dist/gateway/config-format.js +202 -0
- package/dist/gateway/config.js +427 -0
- package/dist/gateway/context.js +1 -0
- package/dist/gateway/env-file.js +129 -0
- package/dist/gateway/events.js +172 -0
- package/dist/gateway/guard/tagging.js +505 -0
- package/dist/gateway/handlers/index.js +66 -0
- package/dist/gateway/handlers/memory.js +54 -0
- package/dist/gateway/handlers/providers.js +73 -0
- package/dist/gateway/handlers/registry.js +39 -0
- package/dist/gateway/handlers/sessions.js +188 -0
- package/dist/gateway/handlers/system.js +12 -0
- package/dist/gateway/handlers/tasks.js +191 -0
- package/dist/gateway/handlers/turn.js +100 -0
- package/dist/gateway/index.js +126 -0
- package/dist/gateway/main.js +23 -0
- package/dist/gateway/server.js +354 -0
- package/dist/gateway/services/context-limits.js +75 -0
- package/dist/gateway/services/history-normalizer.js +42 -0
- package/dist/gateway/services/image-pipeline.js +56 -0
- package/dist/gateway/services/key-roulette-client.js +43 -0
- package/dist/gateway/services/llm-client.js +593 -0
- package/dist/gateway/services/llm-decoder.js +200 -0
- package/dist/gateway/services/local-fallback.js +135 -0
- package/dist/gateway/services/memory.js +511 -0
- package/dist/gateway/services/persistent-memory.js +196 -0
- package/dist/gateway/services/providers.js +44 -0
- package/dist/gateway/services/tasks.js +237 -0
- package/dist/gateway/services/verification.js +124 -0
- package/dist/gateway/services/vision-payload.js +48 -0
- package/dist/gateway/services.js +257 -0
- package/dist/gateway/session-snapshot.js +19 -0
- package/dist/gateway/sessions.js +701 -0
- package/dist/gateway/static.js +239 -0
- package/dist/gateway/turns/clarify-tool.js +57 -0
- package/dist/gateway/turns/cronjob-tool.js +96 -0
- package/dist/gateway/turns/deferred-tools.js +154 -0
- package/dist/gateway/turns/execute-code-tool.js +84 -0
- package/dist/gateway/turns/file-tool-defs.js +178 -0
- package/dist/gateway/turns/file-tool-ops.js +178 -0
- package/dist/gateway/turns/file-tool-scan.js +182 -0
- package/dist/gateway/turns/file-tool.js +302 -0
- package/dist/gateway/turns/index.js +416 -0
- package/dist/gateway/turns/jev-middleware.js +91 -0
- package/dist/gateway/turns/local-reply.js +156 -0
- package/dist/gateway/turns/mcp-client.js +643 -0
- package/dist/gateway/turns/memory-tool.js +171 -0
- package/dist/gateway/turns/middleware.js +96 -0
- package/dist/gateway/turns/python-core.js +397 -0
- package/dist/gateway/turns/routing/index.js +3 -0
- package/dist/gateway/turns/routing/intent-classifier.js +60 -0
- package/dist/gateway/turns/routing/planner-adapter.js +91 -0
- package/dist/gateway/turns/routing/types.js +1 -0
- package/dist/gateway/turns/runtime-deps.js +228 -0
- package/dist/gateway/turns/self-config-tool.js +277 -0
- package/dist/gateway/turns/service-types.js +11 -0
- package/dist/gateway/turns/service.js +820 -0
- package/dist/gateway/turns/session-adapter.js +158 -0
- package/dist/gateway/turns/session-tool.js +49 -0
- package/dist/gateway/turns/shell-tool.js +190 -0
- package/dist/gateway/turns/skill-tool.js +239 -0
- package/dist/gateway/turns/spillover.js +201 -0
- package/dist/gateway/turns/subagent-tool.js +140 -0
- package/dist/gateway/turns/system-prompt.js +121 -0
- package/dist/gateway/turns/tool-schema.js +90 -0
- package/dist/gateway/turns/turn-utils.js +58 -0
- package/dist/gateway/turns/vision-tool.js +120 -0
- package/dist/gateway/types.js +1 -0
- package/dist/native/win32-x64/boombot-native-host.exe +0 -0
- package/dist/node_modules/@boombot/channels/handlers.d.ts +9 -0
- package/dist/node_modules/@boombot/channels/handlers.js +109 -0
- package/dist/node_modules/@boombot/channels/index.d.ts +12 -0
- package/dist/node_modules/@boombot/channels/index.js +12 -0
- package/dist/node_modules/@boombot/channels/package.json +9 -0
- package/dist/node_modules/@boombot/channels/service.d.ts +62 -0
- package/dist/node_modules/@boombot/channels/service.js +608 -0
- package/dist/node_modules/@boombot/channels/tool.d.ts +10 -0
- package/dist/node_modules/@boombot/channels/tool.js +46 -0
- package/dist/node_modules/@boombot/channels/transports/common/dedup.d.ts +17 -0
- package/dist/node_modules/@boombot/channels/transports/common/dedup.js +42 -0
- package/dist/node_modules/@boombot/channels/transports/common/handoff.d.ts +19 -0
- package/dist/node_modules/@boombot/channels/transports/common/handoff.js +32 -0
- package/dist/node_modules/@boombot/channels/transports/common/index.d.ts +3 -0
- package/dist/node_modules/@boombot/channels/transports/common/index.js +3 -0
- package/dist/node_modules/@boombot/channels/transports/common/types.d.ts +99 -0
- package/dist/node_modules/@boombot/channels/transports/common/types.js +54 -0
- package/dist/node_modules/@boombot/channels/transports/common.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/common.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/dedup/index.d.ts +1 -0
- package/dist/node_modules/@boombot/channels/transports/dedup/index.js +1 -0
- package/dist/node_modules/@boombot/channels/transports/dedup.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/dedup.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/discord/index.d.ts +1 -0
- package/dist/node_modules/@boombot/channels/transports/discord/index.js +1 -0
- package/dist/node_modules/@boombot/channels/transports/discord/transport.d.ts +36 -0
- package/dist/node_modules/@boombot/channels/transports/discord/transport.js +199 -0
- package/dist/node_modules/@boombot/channels/transports/discord.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/discord.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/handoff.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/handoff.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/messenger/index.d.ts +1 -0
- package/dist/node_modules/@boombot/channels/transports/messenger/index.js +1 -0
- package/dist/node_modules/@boombot/channels/transports/messenger/transport.d.ts +34 -0
- package/dist/node_modules/@boombot/channels/transports/messenger/transport.js +180 -0
- package/dist/node_modules/@boombot/channels/transports/messenger.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/messenger.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/slack/index.d.ts +1 -0
- package/dist/node_modules/@boombot/channels/transports/slack/index.js +1 -0
- package/dist/node_modules/@boombot/channels/transports/slack/transport.d.ts +35 -0
- package/dist/node_modules/@boombot/channels/transports/slack/transport.js +183 -0
- package/dist/node_modules/@boombot/channels/transports/slack.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/slack.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/streamer/index.d.ts +1 -0
- package/dist/node_modules/@boombot/channels/transports/streamer/index.js +1 -0
- package/dist/node_modules/@boombot/channels/transports/streamer/streamer.d.ts +31 -0
- package/dist/node_modules/@boombot/channels/transports/streamer/streamer.js +141 -0
- package/dist/node_modules/@boombot/channels/transports/streamer.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/streamer.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/telegram/index.d.ts +1 -0
- package/dist/node_modules/@boombot/channels/transports/telegram/index.js +1 -0
- package/dist/node_modules/@boombot/channels/transports/telegram/transport.d.ts +75 -0
- package/dist/node_modules/@boombot/channels/transports/telegram/transport.js +395 -0
- package/dist/node_modules/@boombot/channels/transports/telegram.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/telegram.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/tiktok/index.d.ts +1 -0
- package/dist/node_modules/@boombot/channels/transports/tiktok/index.js +1 -0
- package/dist/node_modules/@boombot/channels/transports/tiktok/transport.d.ts +27 -0
- package/dist/node_modules/@boombot/channels/transports/tiktok/transport.js +97 -0
- package/dist/node_modules/@boombot/channels/transports/tiktok.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/tiktok.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/whatsapp/index.d.ts +1 -0
- package/dist/node_modules/@boombot/channels/transports/whatsapp/index.js +1 -0
- package/dist/node_modules/@boombot/channels/transports/whatsapp/transport.d.ts +38 -0
- package/dist/node_modules/@boombot/channels/transports/whatsapp/transport.js +189 -0
- package/dist/node_modules/@boombot/channels/transports/whatsapp.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/whatsapp.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/zalo/index.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/zalo/index.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/zalo/oa.d.ts +28 -0
- package/dist/node_modules/@boombot/channels/transports/zalo/oa.js +94 -0
- package/dist/node_modules/@boombot/channels/transports/zalo/personal.d.ts +106 -0
- package/dist/node_modules/@boombot/channels/transports/zalo/personal.js +171 -0
- package/dist/node_modules/@boombot/channels/transports/zalo-personal.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/zalo-personal.js +2 -0
- package/dist/node_modules/@boombot/channels/transports/zalo.d.ts +2 -0
- package/dist/node_modules/@boombot/channels/transports/zalo.js +2 -0
- package/dist/node_modules/@boombot/core/agent-core/index.d.ts +12 -0
- package/dist/node_modules/@boombot/core/agent-core/index.js +12 -0
- package/dist/node_modules/@boombot/core/agent-core/middleware.d.ts +60 -0
- package/dist/node_modules/@boombot/core/agent-core/middleware.js +152 -0
- package/dist/node_modules/@boombot/core/agent-core/routing.d.ts +128 -0
- package/dist/node_modules/@boombot/core/agent-core/routing.js +437 -0
- package/dist/node_modules/@boombot/core/agent-core/runtime-deps.d.ts +88 -0
- package/dist/node_modules/@boombot/core/agent-core/runtime-deps.js +8 -0
- package/dist/node_modules/@boombot/core/agent-core/tool-errors.d.ts +44 -0
- package/dist/node_modules/@boombot/core/agent-core/tool-errors.js +60 -0
- package/dist/node_modules/@boombot/core/agent-core/turn-loop.d.ts +21 -0
- package/dist/node_modules/@boombot/core/agent-core/turn-loop.js +561 -0
- package/dist/node_modules/@boombot/core/agent-core/types.d.ts +189 -0
- package/dist/node_modules/@boombot/core/agent-core/types.js +7 -0
- package/dist/node_modules/@boombot/core/compaction/compactor.d.ts +19 -0
- package/dist/node_modules/@boombot/core/compaction/compactor.js +127 -0
- package/dist/node_modules/@boombot/core/compaction/estimator.d.ts +10 -0
- package/dist/node_modules/@boombot/core/compaction/estimator.js +48 -0
- package/dist/node_modules/@boombot/core/compaction/index.d.ts +3 -0
- package/dist/node_modules/@boombot/core/compaction/index.js +3 -0
- package/dist/node_modules/@boombot/core/compaction/types.d.ts +31 -0
- package/dist/node_modules/@boombot/core/compaction/types.js +7 -0
- package/dist/node_modules/@boombot/core/index.d.ts +9 -0
- package/dist/node_modules/@boombot/core/index.js +9 -0
- package/dist/node_modules/@boombot/core/jev/index.d.ts +2 -0
- package/dist/node_modules/@boombot/core/jev/index.js +2 -0
- package/dist/node_modules/@boombot/core/jev/jev.d.ts +30 -0
- package/dist/node_modules/@boombot/core/jev/jev.js +164 -0
- package/dist/node_modules/@boombot/core/jev/types.d.ts +22 -0
- package/dist/node_modules/@boombot/core/jev/types.js +1 -0
- package/dist/node_modules/@boombot/core/memory/consolidation/budget.d.ts +63 -0
- package/dist/node_modules/@boombot/core/memory/consolidation/budget.js +94 -0
- package/dist/node_modules/@boombot/core/memory/consolidation/consolidator.d.ts +152 -0
- package/dist/node_modules/@boombot/core/memory/consolidation/consolidator.js +318 -0
- package/dist/node_modules/@boombot/core/memory/consolidation/index.d.ts +12 -0
- package/dist/node_modules/@boombot/core/memory/consolidation/index.js +12 -0
- package/dist/node_modules/@boombot/core/memory/curation.d.ts +86 -0
- package/dist/node_modules/@boombot/core/memory/curation.js +120 -0
- package/dist/node_modules/@boombot/core/memory/errors.d.ts +12 -0
- package/dist/node_modules/@boombot/core/memory/errors.js +20 -0
- package/dist/node_modules/@boombot/core/memory/hybrid-search.d.ts +29 -0
- package/dist/node_modules/@boombot/core/memory/hybrid-search.js +52 -0
- package/dist/node_modules/@boombot/core/memory/index.d.ts +23 -0
- package/dist/node_modules/@boombot/core/memory/index.js +23 -0
- package/dist/node_modules/@boombot/core/memory/indexer.d.ts +47 -0
- package/dist/node_modules/@boombot/core/memory/indexer.js +138 -0
- package/dist/node_modules/@boombot/core/memory/lifecycle.d.ts +12 -0
- package/dist/node_modules/@boombot/core/memory/lifecycle.js +66 -0
- package/dist/node_modules/@boombot/core/memory/provider.d.ts +84 -0
- package/dist/node_modules/@boombot/core/memory/provider.js +117 -0
- package/dist/node_modules/@boombot/core/memory/recall.d.ts +7 -0
- package/dist/node_modules/@boombot/core/memory/recall.js +111 -0
- package/dist/node_modules/@boombot/core/memory/scope-resolver.d.ts +27 -0
- package/dist/node_modules/@boombot/core/memory/scope-resolver.js +60 -0
- package/dist/node_modules/@boombot/core/memory/search.d.ts +37 -0
- package/dist/node_modules/@boombot/core/memory/search.js +158 -0
- package/dist/node_modules/@boombot/core/memory/store.d.ts +60 -0
- package/dist/node_modules/@boombot/core/memory/store.js +289 -0
- package/dist/node_modules/@boombot/core/memory/types.d.ts +121 -0
- package/dist/node_modules/@boombot/core/memory/types.js +21 -0
- package/dist/node_modules/@boombot/core/memory/vector-index.d.ts +34 -0
- package/dist/node_modules/@boombot/core/memory/vector-index.js +65 -0
- package/dist/node_modules/@boombot/core/package.json +9 -0
- package/dist/node_modules/@boombot/core/reflection/classifier.d.ts +13 -0
- package/dist/node_modules/@boombot/core/reflection/classifier.js +77 -0
- package/dist/node_modules/@boombot/core/reflection/index.d.ts +2 -0
- package/dist/node_modules/@boombot/core/reflection/index.js +2 -0
- package/dist/node_modules/@boombot/core/reflection/types.d.ts +13 -0
- package/dist/node_modules/@boombot/core/reflection/types.js +4 -0
- package/dist/node_modules/@boombot/core/research/config.d.ts +89 -0
- package/dist/node_modules/@boombot/core/research/config.js +206 -0
- package/dist/node_modules/@boombot/core/research/crawl.d.ts +36 -0
- package/dist/node_modules/@boombot/core/research/crawl.js +179 -0
- package/dist/node_modules/@boombot/core/research/factory.d.ts +26 -0
- package/dist/node_modules/@boombot/core/research/factory.js +46 -0
- package/dist/node_modules/@boombot/core/research/http.d.ts +87 -0
- package/dist/node_modules/@boombot/core/research/http.js +250 -0
- package/dist/node_modules/@boombot/core/research/index.d.ts +17 -0
- package/dist/node_modules/@boombot/core/research/index.js +10 -0
- package/dist/node_modules/@boombot/core/research/orchestrator.d.ts +113 -0
- package/dist/node_modules/@boombot/core/research/orchestrator.js +252 -0
- package/dist/node_modules/@boombot/core/research/parse/docx.d.ts +24 -0
- package/dist/node_modules/@boombot/core/research/parse/docx.js +183 -0
- package/dist/node_modules/@boombot/core/research/parse/guards.d.ts +89 -0
- package/dist/node_modules/@boombot/core/research/parse/guards.js +171 -0
- package/dist/node_modules/@boombot/core/research/parse/index.d.ts +68 -0
- package/dist/node_modules/@boombot/core/research/parse/index.js +219 -0
- package/dist/node_modules/@boombot/core/research/parse/pdf.d.ts +38 -0
- package/dist/node_modules/@boombot/core/research/parse/pdf.js +567 -0
- package/dist/node_modules/@boombot/core/research/providers/arxiv.d.ts +9 -0
- package/dist/node_modules/@boombot/core/research/providers/arxiv.js +72 -0
- package/dist/node_modules/@boombot/core/research/providers/brave.d.ts +11 -0
- package/dist/node_modules/@boombot/core/research/providers/brave.js +36 -0
- package/dist/node_modules/@boombot/core/research/providers/duckduckgo.d.ts +9 -0
- package/dist/node_modules/@boombot/core/research/providers/duckduckgo.js +78 -0
- package/dist/node_modules/@boombot/core/research/providers/exa.d.ts +11 -0
- package/dist/node_modules/@boombot/core/research/providers/exa.js +34 -0
- package/dist/node_modules/@boombot/core/research/providers/firecrawl.d.ts +16 -0
- package/dist/node_modules/@boombot/core/research/providers/firecrawl.js +47 -0
- package/dist/node_modules/@boombot/core/research/providers/index.d.ts +17 -0
- package/dist/node_modules/@boombot/core/research/providers/index.js +11 -0
- package/dist/node_modules/@boombot/core/research/providers/jina.d.ts +13 -0
- package/dist/node_modules/@boombot/core/research/providers/jina.js +114 -0
- package/dist/node_modules/@boombot/core/research/providers/openalex.d.ts +14 -0
- package/dist/node_modules/@boombot/core/research/providers/openalex.js +66 -0
- package/dist/node_modules/@boombot/core/research/providers/semantic-scholar.d.ts +9 -0
- package/dist/node_modules/@boombot/core/research/providers/semantic-scholar.js +56 -0
- package/dist/node_modules/@boombot/core/research/providers/tavily.d.ts +11 -0
- package/dist/node_modules/@boombot/core/research/providers/tavily.js +35 -0
- package/dist/node_modules/@boombot/core/research/providers/wikipedia.d.ts +12 -0
- package/dist/node_modules/@boombot/core/research/providers/wikipedia.js +47 -0
- package/dist/node_modules/@boombot/core/research/tools.d.ts +27 -0
- package/dist/node_modules/@boombot/core/research/tools.js +251 -0
- package/dist/node_modules/@boombot/core/research/types.d.ts +133 -0
- package/dist/node_modules/@boombot/core/research/types.js +8 -0
- package/dist/node_modules/@boombot/core/research/wiring.d.ts +25 -0
- package/dist/node_modules/@boombot/core/research/wiring.js +51 -0
- package/dist/node_modules/@boombot/core/scheduler/cron.d.ts +34 -0
- package/dist/node_modules/@boombot/core/scheduler/cron.js +147 -0
- package/dist/node_modules/@boombot/core/scheduler/evaluator.d.ts +42 -0
- package/dist/node_modules/@boombot/core/scheduler/evaluator.js +148 -0
- package/dist/node_modules/@boombot/core/scheduler/index.d.ts +15 -0
- package/dist/node_modules/@boombot/core/scheduler/index.js +15 -0
- package/dist/node_modules/@boombot/core/scheduler/registry.d.ts +81 -0
- package/dist/node_modules/@boombot/core/scheduler/registry.js +263 -0
- package/dist/node_modules/@boombot/core/scheduler/runner.d.ts +59 -0
- package/dist/node_modules/@boombot/core/scheduler/runner.js +257 -0
- package/dist/node_modules/@boombot/core/scheduler/store.d.ts +150 -0
- package/dist/node_modules/@boombot/core/scheduler/store.js +526 -0
- package/dist/node_modules/@boombot/core/scheduler/timezone.d.ts +35 -0
- package/dist/node_modules/@boombot/core/scheduler/timezone.js +96 -0
- package/dist/node_modules/@boombot/core/scheduler/types.d.ts +157 -0
- package/dist/node_modules/@boombot/core/scheduler/types.js +89 -0
- package/dist/node_modules/@boombot/core/task-runner/index.d.ts +7 -0
- package/dist/node_modules/@boombot/core/task-runner/index.js +5 -0
- package/dist/node_modules/@boombot/core/task-runner/planner.d.ts +37 -0
- package/dist/node_modules/@boombot/core/task-runner/planner.js +154 -0
- package/dist/node_modules/@boombot/core/task-runner/runner.d.ts +8 -0
- package/dist/node_modules/@boombot/core/task-runner/runner.js +564 -0
- package/dist/node_modules/@boombot/core/task-runner/store.d.ts +28 -0
- package/dist/node_modules/@boombot/core/task-runner/store.js +126 -0
- package/dist/node_modules/@boombot/core/task-runner/types.d.ts +138 -0
- package/dist/node_modules/@boombot/core/task-runner/types.js +11 -0
- package/dist/node_modules/@boombot/core/workflow/dag.d.ts +16 -0
- package/dist/node_modules/@boombot/core/workflow/dag.js +109 -0
- package/dist/node_modules/@boombot/core/workflow/engine.d.ts +34 -0
- package/dist/node_modules/@boombot/core/workflow/engine.js +304 -0
- package/dist/node_modules/@boombot/core/workflow/index.d.ts +3 -0
- package/dist/node_modules/@boombot/core/workflow/index.js +3 -0
- package/dist/node_modules/@boombot/core/workflow/types.d.ts +98 -0
- package/dist/node_modules/@boombot/core/workflow/types.js +21 -0
- package/dist/node_modules/@boombot/cronjobs/handlers.d.ts +11 -0
- package/dist/node_modules/@boombot/cronjobs/handlers.js +174 -0
- package/dist/node_modules/@boombot/cronjobs/index.d.ts +2 -0
- package/dist/node_modules/@boombot/cronjobs/index.js +2 -0
- package/dist/node_modules/@boombot/cronjobs/package.json +9 -0
- package/dist/node_modules/@boombot/cronjobs/service.d.ts +53 -0
- package/dist/node_modules/@boombot/cronjobs/service.js +200 -0
- package/dist/node_modules/@boombot/plugins/index.d.ts +2 -0
- package/dist/node_modules/@boombot/plugins/index.js +2 -0
- package/dist/node_modules/@boombot/plugins/installer.d.ts +45 -0
- package/dist/node_modules/@boombot/plugins/installer.js +487 -0
- package/dist/node_modules/@boombot/plugins/manager.d.ts +23 -0
- package/dist/node_modules/@boombot/plugins/manager.js +243 -0
- package/dist/node_modules/@boombot/plugins/package.json +9 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/commands-channels.d.ts +125 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/commands-channels.js +76 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/commands-plugins.d.ts +220 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/commands-plugins.js +60 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/commands-scheduler.d.ts +33 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/commands-scheduler.js +25 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/commands.d.ts +4349 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/commands.js +563 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/envelope.d.ts +32 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/envelope.js +61 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/errors.d.ts +13 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/errors.js +16 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/events.d.ts +567 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/events.js +395 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/index.d.ts +20 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/index.js +13 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/types.d.ts +91 -0
- package/dist/node_modules/@boombot/protocol/gateway-protocol/types.js +7 -0
- package/dist/node_modules/@boombot/protocol/index.d.ts +4 -0
- package/dist/node_modules/@boombot/protocol/index.js +3 -0
- package/dist/node_modules/@boombot/protocol/package.json +9 -0
- package/dist/node_modules/@boombot/protocol/plugin-sdk/channel.d.ts +41 -0
- package/dist/node_modules/@boombot/protocol/plugin-sdk/channel.js +17 -0
- package/dist/node_modules/@boombot/protocol/plugin-sdk/index.d.ts +10 -0
- package/dist/node_modules/@boombot/protocol/plugin-sdk/index.js +10 -0
- package/dist/node_modules/@boombot/protocol/plugin-sdk/manifest.d.ts +58 -0
- package/dist/node_modules/@boombot/protocol/plugin-sdk/manifest.js +116 -0
- package/dist/node_modules/@boombot/protocol/plugin-sdk/plugin.d.ts +25 -0
- package/dist/node_modules/@boombot/protocol/plugin-sdk/plugin.js +1 -0
- package/dist/node_modules/@boombot/protocol/providers/cipher.d.ts +7 -0
- package/dist/node_modules/@boombot/protocol/providers/cipher.js +52 -0
- package/dist/node_modules/@boombot/protocol/providers/index.d.ts +19 -0
- package/dist/node_modules/@boombot/protocol/providers/index.js +19 -0
- package/dist/node_modules/@boombot/protocol/providers/key-roulette.d.ts +79 -0
- package/dist/node_modules/@boombot/protocol/providers/key-roulette.js +81 -0
- package/dist/node_modules/@boombot/protocol/providers/probe.d.ts +29 -0
- package/dist/node_modules/@boombot/protocol/providers/probe.js +96 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/anthropic.d.ts +11 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/anthropic.js +11 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/custom.d.ts +22 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/custom.js +222 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/deepseek.d.ts +7 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/deepseek.js +9 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/google.d.ts +10 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/google.js +10 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/index.d.ts +31 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/index.js +56 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/local.d.ts +10 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/local.js +11 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/mistral.d.ts +7 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/mistral.js +9 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/openai-compatible.d.ts +10 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/openai-compatible.js +10 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/openai.d.ts +7 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/openai.js +11 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/types.d.ts +58 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/types.js +1 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/xai.d.ts +7 -0
- package/dist/node_modules/@boombot/protocol/providers/profiles/xai.js +10 -0
- package/dist/node_modules/@boombot/protocol/providers/request-profile.d.ts +102 -0
- package/dist/node_modules/@boombot/protocol/providers/request-profile.js +118 -0
- package/dist/node_modules/@boombot/protocol/providers/service.d.ts +2 -0
- package/dist/node_modules/@boombot/protocol/providers/service.js +418 -0
- package/dist/node_modules/@boombot/protocol/providers/types.d.ts +141 -0
- package/dist/node_modules/@boombot/protocol/providers/types.js +16 -0
- package/dist/node_modules/@boombot/sandbox/fs-path.d.ts +13 -0
- package/dist/node_modules/@boombot/sandbox/fs-path.js +79 -0
- package/dist/node_modules/@boombot/sandbox/index.d.ts +13 -0
- package/dist/node_modules/@boombot/sandbox/index.js +13 -0
- package/dist/node_modules/@boombot/sandbox/native.d.ts +39 -0
- package/dist/node_modules/@boombot/sandbox/native.js +224 -0
- package/dist/node_modules/@boombot/sandbox/package.json +9 -0
- package/dist/node_modules/@boombot/sandbox/sandbox.d.ts +92 -0
- package/dist/node_modules/@boombot/sandbox/sandbox.js +229 -0
- package/dist/node_modules/@boombot/security/harness-guard/boundary.d.ts +22 -0
- package/dist/node_modules/@boombot/security/harness-guard/boundary.js +105 -0
- package/dist/node_modules/@boombot/security/harness-guard/gates.d.ts +90 -0
- package/dist/node_modules/@boombot/security/harness-guard/gates.js +791 -0
- package/dist/node_modules/@boombot/security/harness-guard/index.d.ts +23 -0
- package/dist/node_modules/@boombot/security/harness-guard/index.js +23 -0
- package/dist/node_modules/@boombot/security/harness-guard/policy.d.ts +20 -0
- package/dist/node_modules/@boombot/security/harness-guard/policy.js +70 -0
- package/dist/node_modules/@boombot/security/harness-guard/sanitizer.d.ts +53 -0
- package/dist/node_modules/@boombot/security/harness-guard/sanitizer.js +145 -0
- package/dist/node_modules/@boombot/security/harness-guard/types.d.ts +71 -0
- package/dist/node_modules/@boombot/security/harness-guard/types.js +10 -0
- package/dist/node_modules/@boombot/security/harness-guard/verifier.d.ts +59 -0
- package/dist/node_modules/@boombot/security/harness-guard/verifier.js +169 -0
- package/dist/node_modules/@boombot/security/index.d.ts +5 -0
- package/dist/node_modules/@boombot/security/index.js +9 -0
- package/dist/node_modules/@boombot/security/package.json +9 -0
- package/dist/node_modules/@boombot/security/policy/approval.d.ts +117 -0
- package/dist/node_modules/@boombot/security/policy/approval.js +223 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/claim-extractor.d.ts +10 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/claim-extractor.js +124 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/evidence-ledger.d.ts +25 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/evidence-ledger.js +70 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/gate.d.ts +38 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/gate.js +61 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/grounding-check.d.ts +12 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/grounding-check.js +234 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/index.d.ts +17 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/index.js +13 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/policy.d.ts +15 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/policy.js +39 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/types.d.ts +46 -0
- package/dist/node_modules/@boombot/security/reasoning-guard/types.js +7 -0
- package/dist/node_modules/@boombot/security/security/approval.d.ts +63 -0
- package/dist/node_modules/@boombot/security/security/approval.js +140 -0
- package/dist/node_modules/@boombot/security/security/audit.d.ts +39 -0
- package/dist/node_modules/@boombot/security/security/audit.js +70 -0
- package/dist/node_modules/@boombot/security/security/index.d.ts +12 -0
- package/dist/node_modules/@boombot/security/security/index.js +12 -0
- package/dist/node_modules/@boombot/security/security/trust.d.ts +79 -0
- package/dist/node_modules/@boombot/security/security/trust.js +87 -0
- package/dist/package.json +5 -0
- package/dist/proto/agent_core.proto +56 -0
- package/dist/python/agent-core-python/pyproject.toml +40 -0
- package/dist/python/agent-core-python/src/boombot_agent/__init__.py +5 -0
- package/dist/python/agent-core-python/src/boombot_agent/generated/__init__.py +0 -0
- package/dist/python/agent-core-python/src/boombot_agent/generated/agent_core_pb2.py +54 -0
- package/dist/python/agent-core-python/src/boombot_agent/generated/agent_core_pb2_grpc.py +140 -0
- package/dist/python/agent-core-python/src/boombot_agent/rpc.py +265 -0
- package/dist/python/agent-core-python/src/boombot_agent/turn.py +577 -0
- package/dist/python/agent-core-python/src/boombot_ml/__init__.py +12 -0
- package/dist/python/agent-core-python/src/boombot_ml/embeddings.py +58 -0
- package/dist/python/agent-core-python/src/boombot_ml/training.py +156 -0
- package/dist/python/agent-core-python/uv.lock +2856 -0
- package/dist/web/assets/ChatView-BZrSD-64.js +262 -0
- package/dist/web/assets/ChatView-Cahbjez6.css +1 -0
- package/dist/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/web/assets/MemoryView-BJbXqqs7.css +1 -0
- package/dist/web/assets/MemoryView-BfMq_6CD.js +1 -0
- package/dist/web/assets/SchedulesView-B22QmPR-.js +1 -0
- package/dist/web/assets/SchedulesView-C6XK7A8a.css +1 -0
- package/dist/web/assets/SessionsView-C1dqdhxI.css +1 -0
- package/dist/web/assets/SessionsView-DS0-aH2a.js +1 -0
- package/dist/web/assets/TasksView-Dtasg4hd.css +1 -0
- package/dist/web/assets/TasksView-ey0FLsW8.js +2 -0
- package/dist/web/assets/Textarea-DN3Zybl1.js +1 -0
- package/dist/web/assets/Tooltip-Bn2cqFPz.css +1 -0
- package/dist/web/assets/Tooltip-MzV2Gqnc.js +1 -0
- package/dist/web/assets/browser-Bnt73-Ub.js +8 -0
- package/dist/web/assets/index-BL8bi7Yt.css +1 -0
- package/dist/web/assets/index-CuPR73Tn.js +73 -0
- package/dist/web/favicon.svg +4 -0
- package/dist/web/index.html +26 -0
- package/dist/web/logo.jpg +0 -0
- package/dist/web/logo.png +0 -0
- package/package.json +51 -4
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @boombot/security — audit log.
|
|
3
|
+
*
|
|
4
|
+
* Append-only audit trail for security-sensitive operations (secret
|
|
5
|
+
* lifecycle, approval decisions, sandbox escalations, memory revoke/
|
|
6
|
+
* forget). Sinks are append-only by contract; this package ships an
|
|
7
|
+
* in-memory sink for tests and single-process hosts. Production hosts
|
|
8
|
+
* should wire a durable sink (SQLite table, signed log file).
|
|
9
|
+
*/
|
|
10
|
+
import { randomUUID } from 'node:crypto';
|
|
11
|
+
/** Keys whose values are treated as secrets and redacted. */
|
|
12
|
+
const SECRET_KEY_PATTERN = /(token|secret|password|passwd|api[_-]?key|private[_-]?key|bearer|credential)/i;
|
|
13
|
+
const REDACTED = '[REDACTED]';
|
|
14
|
+
function redactValue(key, value) {
|
|
15
|
+
if (SECRET_KEY_PATTERN.test(key))
|
|
16
|
+
return REDACTED;
|
|
17
|
+
if (typeof value === 'string' && /^(sk-|xox[bap]-|gh[op]_|ya29\.)/.test(value))
|
|
18
|
+
return REDACTED;
|
|
19
|
+
if (Array.isArray(value))
|
|
20
|
+
return value.map((v) => redactValue(key, v));
|
|
21
|
+
if (typeof value === 'object' && value !== null) {
|
|
22
|
+
const out = {};
|
|
23
|
+
for (const [k, v] of Object.entries(value))
|
|
24
|
+
out[k] = redactValue(k, v);
|
|
25
|
+
return out;
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
/** Redact secret-looking entries from audit metadata (defense in depth). */
|
|
30
|
+
export function redactAuditMeta(meta) {
|
|
31
|
+
if (meta === undefined)
|
|
32
|
+
return undefined;
|
|
33
|
+
const out = {};
|
|
34
|
+
for (const [k, v] of Object.entries(meta))
|
|
35
|
+
out[k] = redactValue(k, v);
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
/** In-memory audit sink. Bounded (default 10k events, oldest dropped first). */
|
|
39
|
+
export class InMemoryAuditSink {
|
|
40
|
+
maxEvents;
|
|
41
|
+
events = [];
|
|
42
|
+
constructor(maxEvents = 10_000) {
|
|
43
|
+
this.maxEvents = maxEvents;
|
|
44
|
+
}
|
|
45
|
+
append(event) {
|
|
46
|
+
const stored = Object.freeze({
|
|
47
|
+
id: randomUUID(),
|
|
48
|
+
ts: new Date().toISOString(),
|
|
49
|
+
actor: event.actor,
|
|
50
|
+
action: event.action,
|
|
51
|
+
...(event.target !== undefined ? { target: event.target } : {}),
|
|
52
|
+
...(event.meta !== undefined ? { meta: Object.freeze(redactAuditMeta(event.meta)) ?? {} } : {}),
|
|
53
|
+
});
|
|
54
|
+
this.events.push(stored);
|
|
55
|
+
while (this.events.length > this.maxEvents)
|
|
56
|
+
this.events.shift();
|
|
57
|
+
return stored;
|
|
58
|
+
}
|
|
59
|
+
/** Newest last. Returns a copy — the log itself is immutable. */
|
|
60
|
+
list() {
|
|
61
|
+
return [...this.events];
|
|
62
|
+
}
|
|
63
|
+
/** Filter by action prefix, e.g. 'approval.'. */
|
|
64
|
+
query(actionPrefix) {
|
|
65
|
+
return this.events.filter((e) => e.action.startsWith(actionPrefix));
|
|
66
|
+
}
|
|
67
|
+
get size() {
|
|
68
|
+
return this.events.length;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @boombot/security — trust boundary, audit, approval.
|
|
3
|
+
*
|
|
4
|
+
* Public surface:
|
|
5
|
+
* - trust: `TrustZone`, provenance labels, deterministic zone-crossing policy
|
|
6
|
+
* - audit: `AuditEvent`, `AuditSink`, `InMemoryAuditSink` (secret-redacting)
|
|
7
|
+
* - approval: `ApprovalPolicy`, `DefaultApprovalPolicy` (risk floors),
|
|
8
|
+
* `deriveSubagentPolicy` (child never looser than parent)
|
|
9
|
+
*/
|
|
10
|
+
export { isTrustedZone, createAuthenticatedPrincipal, labelData, isTrustedData, evaluateCrossing, assertTrusted, type TrustZone, type Principal, type DataSource, type LabeledData, type BoundaryCrossing, type CrossingVerdict, type CrossingDecision, } from './trust.js';
|
|
11
|
+
export { InMemoryAuditSink, redactAuditMeta, type AuditEvent, type NewAuditEvent, type AuditSink, } from './audit.js';
|
|
12
|
+
export { DefaultApprovalPolicy, deriveSubagentPolicy, type ApprovalPolicy, type ApprovalPolicyOptions, type ApprovalDecision, type PolicyEvaluation, type ToolCall, } from './approval.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @boombot/security — trust boundary, audit, approval.
|
|
3
|
+
*
|
|
4
|
+
* Public surface:
|
|
5
|
+
* - trust: `TrustZone`, provenance labels, deterministic zone-crossing policy
|
|
6
|
+
* - audit: `AuditEvent`, `AuditSink`, `InMemoryAuditSink` (secret-redacting)
|
|
7
|
+
* - approval: `ApprovalPolicy`, `DefaultApprovalPolicy` (risk floors),
|
|
8
|
+
* `deriveSubagentPolicy` (child never looser than parent)
|
|
9
|
+
*/
|
|
10
|
+
export { isTrustedZone, createAuthenticatedPrincipal, labelData, isTrustedData, evaluateCrossing, assertTrusted, } from './trust.js';
|
|
11
|
+
export { InMemoryAuditSink, redactAuditMeta, } from './audit.js';
|
|
12
|
+
export { DefaultApprovalPolicy, deriveSubagentPolicy, } from './approval.js';
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @boombot/security — trust boundary model.
|
|
3
|
+
*
|
|
4
|
+
* Consistent with the root SECURITY.md trust model:
|
|
5
|
+
* "trusted gateway, untrusted execution, deterministic policy".
|
|
6
|
+
*
|
|
7
|
+
* Zones:
|
|
8
|
+
* - `gateway` — trusted. Authenticated principals, validated commands,
|
|
9
|
+
* policy decisions. Code here decides; it never executes
|
|
10
|
+
* untrusted content.
|
|
11
|
+
* - `execution` — UNTRUSTED. Sandboxed subprocesses, tool side effects,
|
|
12
|
+
* LLM-generated content. Anything coming out of this zone
|
|
13
|
+
* is treated as hostile input until re-validated.
|
|
14
|
+
* - `external` — UNTRUSTED. Network, chat channels, user keystrokes.
|
|
15
|
+
*
|
|
16
|
+
* The single hard rule: trust never flows from `execution`/`external`
|
|
17
|
+
* into `gateway` implicitly — every crossing must be an explicit,
|
|
18
|
+
* validated, audited decision.
|
|
19
|
+
*/
|
|
20
|
+
/** The three trust zones of an BoomBot deployment. */
|
|
21
|
+
export type TrustZone = 'gateway' | 'execution' | 'external';
|
|
22
|
+
/** Whether a zone is trusted to make security decisions. */
|
|
23
|
+
export declare function isTrustedZone(zone: TrustZone): boolean;
|
|
24
|
+
/** Who is acting. The id must come from authentication, never user input. */
|
|
25
|
+
export interface Principal {
|
|
26
|
+
/** Stable id resolved by the gateway's authN layer. */
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly kind: 'user' | 'service' | 'agent';
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create an authenticated principal. Call ONLY with an id the gateway has
|
|
32
|
+
* already authenticated (session token, mTLS identity, …). Passing a raw
|
|
33
|
+
* user-supplied string here is a principal-impersonation vulnerability.
|
|
34
|
+
*/
|
|
35
|
+
export declare function createAuthenticatedPrincipal(id: string, kind?: Principal['kind']): Principal;
|
|
36
|
+
/** Where a piece of data came from. */
|
|
37
|
+
export type DataSource = 'config' | 'user-input' | 'tool-output' | 'llm-output' | 'external';
|
|
38
|
+
/** A data value carrying its provenance label. */
|
|
39
|
+
export interface LabeledData<T> {
|
|
40
|
+
readonly value: T;
|
|
41
|
+
readonly source: DataSource;
|
|
42
|
+
readonly zone: TrustZone;
|
|
43
|
+
}
|
|
44
|
+
/** Attach a provenance label. Labels are the only trust signal — never inferred. */
|
|
45
|
+
export declare function labelData<T>(value: T, source: DataSource, zone: TrustZone): LabeledData<T>;
|
|
46
|
+
/** True only for operator config inside the gateway zone. */
|
|
47
|
+
export declare function isTrustedData<T>(data: LabeledData<T>): boolean;
|
|
48
|
+
export type CrossingVerdict = 'allow' | 'deny';
|
|
49
|
+
/** A request to move data or control across a zone boundary. */
|
|
50
|
+
export interface BoundaryCrossing {
|
|
51
|
+
readonly from: TrustZone;
|
|
52
|
+
readonly to: TrustZone;
|
|
53
|
+
/** What is crossing: data payload, or a control decision. */
|
|
54
|
+
readonly kind: 'data' | 'control';
|
|
55
|
+
/** Provenance label of the payload (for kind='data'). */
|
|
56
|
+
readonly source?: DataSource;
|
|
57
|
+
}
|
|
58
|
+
export interface CrossingDecision {
|
|
59
|
+
readonly verdict: CrossingVerdict;
|
|
60
|
+
readonly reason: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Deterministic policy for zone crossings.
|
|
64
|
+
*
|
|
65
|
+
* - gateway → anywhere: allow (trusted decisions flow outward).
|
|
66
|
+
* - external/execution → gateway, kind='control': DENY. Untrusted zones
|
|
67
|
+
* never issue control decisions; they only submit data for validation.
|
|
68
|
+
* - external/execution → gateway, kind='data': allow ONLY when the data
|
|
69
|
+
* carries an explicit untrusted label — the gateway must validate it
|
|
70
|
+
* (schema, bounds, sanitization) before use. The label is preserved.
|
|
71
|
+
* - execution → external: allow (egress), but the host should apply
|
|
72
|
+
* egress filtering (secret redaction) — see audit.ts.
|
|
73
|
+
*/
|
|
74
|
+
export declare function evaluateCrossing(crossing: BoundaryCrossing): CrossingDecision;
|
|
75
|
+
/**
|
|
76
|
+
* Assert that a value is trusted before using it in a security decision
|
|
77
|
+
* (policy evaluation, authZ, command routing). Throws otherwise.
|
|
78
|
+
*/
|
|
79
|
+
export declare function assertTrusted<T>(data: LabeledData<T>, context: string): T;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @boombot/security — trust boundary model.
|
|
3
|
+
*
|
|
4
|
+
* Consistent with the root SECURITY.md trust model:
|
|
5
|
+
* "trusted gateway, untrusted execution, deterministic policy".
|
|
6
|
+
*
|
|
7
|
+
* Zones:
|
|
8
|
+
* - `gateway` — trusted. Authenticated principals, validated commands,
|
|
9
|
+
* policy decisions. Code here decides; it never executes
|
|
10
|
+
* untrusted content.
|
|
11
|
+
* - `execution` — UNTRUSTED. Sandboxed subprocesses, tool side effects,
|
|
12
|
+
* LLM-generated content. Anything coming out of this zone
|
|
13
|
+
* is treated as hostile input until re-validated.
|
|
14
|
+
* - `external` — UNTRUSTED. Network, chat channels, user keystrokes.
|
|
15
|
+
*
|
|
16
|
+
* The single hard rule: trust never flows from `execution`/`external`
|
|
17
|
+
* into `gateway` implicitly — every crossing must be an explicit,
|
|
18
|
+
* validated, audited decision.
|
|
19
|
+
*/
|
|
20
|
+
/** Whether a zone is trusted to make security decisions. */
|
|
21
|
+
export function isTrustedZone(zone) {
|
|
22
|
+
return zone === 'gateway';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create an authenticated principal. Call ONLY with an id the gateway has
|
|
26
|
+
* already authenticated (session token, mTLS identity, …). Passing a raw
|
|
27
|
+
* user-supplied string here is a principal-impersonation vulnerability.
|
|
28
|
+
*/
|
|
29
|
+
export function createAuthenticatedPrincipal(id, kind = 'user') {
|
|
30
|
+
if (typeof id !== 'string' || id.length === 0 || id.length > 256) {
|
|
31
|
+
throw new Error('createAuthenticatedPrincipal: invalid principal id');
|
|
32
|
+
}
|
|
33
|
+
return Object.freeze({ id, kind });
|
|
34
|
+
}
|
|
35
|
+
/** Attach a provenance label. Labels are the only trust signal — never inferred. */
|
|
36
|
+
export function labelData(value, source, zone) {
|
|
37
|
+
return Object.freeze({ value, source, zone });
|
|
38
|
+
}
|
|
39
|
+
/** True only for operator config inside the gateway zone. */
|
|
40
|
+
export function isTrustedData(data) {
|
|
41
|
+
return data.source === 'config' && data.zone === 'gateway';
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Deterministic policy for zone crossings.
|
|
45
|
+
*
|
|
46
|
+
* - gateway → anywhere: allow (trusted decisions flow outward).
|
|
47
|
+
* - external/execution → gateway, kind='control': DENY. Untrusted zones
|
|
48
|
+
* never issue control decisions; they only submit data for validation.
|
|
49
|
+
* - external/execution → gateway, kind='data': allow ONLY when the data
|
|
50
|
+
* carries an explicit untrusted label — the gateway must validate it
|
|
51
|
+
* (schema, bounds, sanitization) before use. The label is preserved.
|
|
52
|
+
* - execution → external: allow (egress), but the host should apply
|
|
53
|
+
* egress filtering (secret redaction) — see audit.ts.
|
|
54
|
+
*/
|
|
55
|
+
export function evaluateCrossing(crossing) {
|
|
56
|
+
if (crossing.from === 'gateway') {
|
|
57
|
+
return { verdict: 'allow', reason: 'trusted zone decisions flow outward' };
|
|
58
|
+
}
|
|
59
|
+
if (crossing.to === 'gateway' && crossing.kind === 'control') {
|
|
60
|
+
return {
|
|
61
|
+
verdict: 'deny',
|
|
62
|
+
reason: `untrusted zone '${crossing.from}' cannot issue control decisions to the gateway`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (crossing.to === 'gateway' && crossing.kind === 'data') {
|
|
66
|
+
if (crossing.source === undefined) {
|
|
67
|
+
return { verdict: 'deny', reason: 'unlabeled data cannot enter the gateway' };
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
verdict: 'allow',
|
|
71
|
+
reason: `untrusted data (${crossing.source}) admitted for validation; label preserved`,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// execution ↔ external traffic (egress / tool I/O): allowed, filtered elsewhere.
|
|
75
|
+
return { verdict: 'allow', reason: 'non-gateway traffic; egress filtering applies' };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Assert that a value is trusted before using it in a security decision
|
|
79
|
+
* (policy evaluation, authZ, command routing). Throws otherwise.
|
|
80
|
+
*/
|
|
81
|
+
export function assertTrusted(data, context) {
|
|
82
|
+
if (!isTrustedData(data)) {
|
|
83
|
+
throw new Error(`trust boundary violation [${context}]: ` +
|
|
84
|
+
`untrusted data (source=${data.source}, zone=${data.zone}) used in a security decision`);
|
|
85
|
+
}
|
|
86
|
+
return data.value;
|
|
87
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package boombot.agent.v1;
|
|
4
|
+
|
|
5
|
+
service AgentCore {
|
|
6
|
+
rpc Health(HealthRequest) returns (HealthResponse);
|
|
7
|
+
rpc RunTurn(stream TurnFrame) returns (stream TurnFrame);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
message HealthRequest {}
|
|
11
|
+
|
|
12
|
+
message HealthResponse {
|
|
13
|
+
string status = 1;
|
|
14
|
+
string runtime = 2;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
message TurnFrame {
|
|
18
|
+
string turn_id = 1;
|
|
19
|
+
string request_id = 2;
|
|
20
|
+
oneof body {
|
|
21
|
+
StartTurn start = 10;
|
|
22
|
+
CallbackRequest callback_request = 11;
|
|
23
|
+
CallbackResponse callback_response = 12;
|
|
24
|
+
AgentEvent event = 13;
|
|
25
|
+
TurnResult result = 14;
|
|
26
|
+
CancelTurn cancel = 15;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
message StartTurn {
|
|
31
|
+
bytes context_json = 1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
message CallbackRequest {
|
|
35
|
+
string method = 1;
|
|
36
|
+
bytes payload_json = 2;
|
|
37
|
+
bool streaming = 3;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
message CallbackResponse {
|
|
41
|
+
bytes payload_json = 1;
|
|
42
|
+
bool end = 2;
|
|
43
|
+
string error = 3;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
message AgentEvent {
|
|
47
|
+
bytes event_json = 1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
message TurnResult {
|
|
51
|
+
bytes result_json = 1;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
message CancelTurn {
|
|
55
|
+
string reason = 1;
|
|
56
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "boombot-agent-core"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "BoomBot ML, Embedding & SFT Training Engine"
|
|
5
|
+
requires-python = ">=3.11"
|
|
6
|
+
dependencies = [
|
|
7
|
+
"grpcio>=1.81,<2",
|
|
8
|
+
"protobuf>=6.33,<7",
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
[project.scripts]
|
|
12
|
+
boombot-train = "boombot_ml.training:main"
|
|
13
|
+
boombot-embed = "boombot_ml.embeddings:main"
|
|
14
|
+
|
|
15
|
+
[dependency-groups]
|
|
16
|
+
ml = [
|
|
17
|
+
"torch>=2.0.0",
|
|
18
|
+
"transformers>=4.40.0",
|
|
19
|
+
"datasets>=2.18.0",
|
|
20
|
+
"peft>=0.10.0",
|
|
21
|
+
"sentence-transformers>=3.0.0",
|
|
22
|
+
]
|
|
23
|
+
dev = [
|
|
24
|
+
"grpcio-tools>=1.81,<2",
|
|
25
|
+
"pytest>=9,<10",
|
|
26
|
+
"ruff>=0.14,<0.15",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
[build-system]
|
|
30
|
+
requires = ["hatchling"]
|
|
31
|
+
build-backend = "hatchling.build"
|
|
32
|
+
|
|
33
|
+
[tool.hatch.build.targets.wheel]
|
|
34
|
+
packages = ["src/boombot_agent", "src/boombot_ml"]
|
|
35
|
+
|
|
36
|
+
[tool.pytest.ini_options]
|
|
37
|
+
testpaths = ["tests"]
|
|
38
|
+
|
|
39
|
+
[tool.ruff]
|
|
40
|
+
exclude = ["src/boombot_agent/generated"]
|
|
File without changes
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: agent_core.proto
|
|
5
|
+
# Protobuf Python Version: 6.33.5
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
33,
|
|
16
|
+
5,
|
|
17
|
+
'',
|
|
18
|
+
'agent_core.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x61gent_core.proto\x12\x10\x62oombot.agent.v1\"\x0f\n\rHealthRequest\"1\n\x0eHealthResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x0f\n\x07runtime\x18\x02 \x01(\t\"\xf5\x02\n\tTurnFrame\x12\x0f\n\x07turn_id\x18\x01 \x01(\t\x12\x12\n\nrequest_id\x18\x02 \x01(\t\x12,\n\x05start\x18\n \x01(\x0b\x32\x1b.boombot.agent.v1.StartTurnH\x00\x12=\n\x10\x63\x61llback_request\x18\x0b \x01(\x0b\x32!.boombot.agent.v1.CallbackRequestH\x00\x12?\n\x11\x63\x61llback_response\x18\x0c \x01(\x0b\x32\".boombot.agent.v1.CallbackResponseH\x00\x12-\n\x05\x65vent\x18\r \x01(\x0b\x32\x1c.boombot.agent.v1.AgentEventH\x00\x12.\n\x06result\x18\x0e \x01(\x0b\x32\x1c.boombot.agent.v1.TurnResultH\x00\x12.\n\x06\x63\x61ncel\x18\x0f \x01(\x0b\x32\x1c.boombot.agent.v1.CancelTurnH\x00\x42\x06\n\x04\x62ody\"!\n\tStartTurn\x12\x14\n\x0c\x63ontext_json\x18\x01 \x01(\x0c\"J\n\x0f\x43\x61llbackRequest\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\x14\n\x0cpayload_json\x18\x02 \x01(\x0c\x12\x11\n\tstreaming\x18\x03 \x01(\x08\"D\n\x10\x43\x61llbackResponse\x12\x14\n\x0cpayload_json\x18\x01 \x01(\x0c\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x08\x12\r\n\x05\x65rror\x18\x03 \x01(\t\" \n\nAgentEvent\x12\x12\n\nevent_json\x18\x01 \x01(\x0c\"!\n\nTurnResult\x12\x13\n\x0bresult_json\x18\x01 \x01(\x0c\"\x1c\n\nCancelTurn\x12\x0e\n\x06reason\x18\x01 \x01(\t2\xa1\x01\n\tAgentCore\x12K\n\x06Health\x12\x1f.boombot.agent.v1.HealthRequest\x1a .boombot.agent.v1.HealthResponse\x12G\n\x07RunTurn\x12\x1b.boombot.agent.v1.TurnFrame\x1a\x1b.boombot.agent.v1.TurnFrame(\x01\x30\x01\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'agent_core_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_HEALTHREQUEST']._serialized_start=38
|
|
35
|
+
_globals['_HEALTHREQUEST']._serialized_end=53
|
|
36
|
+
_globals['_HEALTHRESPONSE']._serialized_start=55
|
|
37
|
+
_globals['_HEALTHRESPONSE']._serialized_end=104
|
|
38
|
+
_globals['_TURNFRAME']._serialized_start=107
|
|
39
|
+
_globals['_TURNFRAME']._serialized_end=480
|
|
40
|
+
_globals['_STARTTURN']._serialized_start=482
|
|
41
|
+
_globals['_STARTTURN']._serialized_end=515
|
|
42
|
+
_globals['_CALLBACKREQUEST']._serialized_start=517
|
|
43
|
+
_globals['_CALLBACKREQUEST']._serialized_end=591
|
|
44
|
+
_globals['_CALLBACKRESPONSE']._serialized_start=593
|
|
45
|
+
_globals['_CALLBACKRESPONSE']._serialized_end=661
|
|
46
|
+
_globals['_AGENTEVENT']._serialized_start=663
|
|
47
|
+
_globals['_AGENTEVENT']._serialized_end=695
|
|
48
|
+
_globals['_TURNRESULT']._serialized_start=697
|
|
49
|
+
_globals['_TURNRESULT']._serialized_end=730
|
|
50
|
+
_globals['_CANCELTURN']._serialized_start=732
|
|
51
|
+
_globals['_CANCELTURN']._serialized_end=760
|
|
52
|
+
_globals['_AGENTCORE']._serialized_start=763
|
|
53
|
+
_globals['_AGENTCORE']._serialized_end=924
|
|
54
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
|
+
import grpc
|
|
4
|
+
import warnings
|
|
5
|
+
|
|
6
|
+
from . import agent_core_pb2 as agent__core__pb2
|
|
7
|
+
|
|
8
|
+
GRPC_GENERATED_VERSION = '1.81.1'
|
|
9
|
+
GRPC_VERSION = grpc.__version__
|
|
10
|
+
_version_not_supported = False
|
|
11
|
+
|
|
12
|
+
try:
|
|
13
|
+
from grpc._utilities import first_version_is_lower
|
|
14
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
|
15
|
+
except ImportError:
|
|
16
|
+
_version_not_supported = True
|
|
17
|
+
|
|
18
|
+
if _version_not_supported:
|
|
19
|
+
raise RuntimeError(
|
|
20
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
|
21
|
+
+ ' but the generated code in agent_core_pb2_grpc.py depends on'
|
|
22
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
|
23
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
|
24
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class AgentCoreStub:
|
|
29
|
+
"""Missing associated documentation comment in .proto file."""
|
|
30
|
+
|
|
31
|
+
def __init__(self, channel):
|
|
32
|
+
"""Constructor.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
channel: A grpc.Channel.
|
|
36
|
+
"""
|
|
37
|
+
self.Health = channel.unary_unary(
|
|
38
|
+
'/boombot.agent.v1.AgentCore/Health',
|
|
39
|
+
request_serializer=agent__core__pb2.HealthRequest.SerializeToString,
|
|
40
|
+
response_deserializer=agent__core__pb2.HealthResponse.FromString,
|
|
41
|
+
_registered_method=True)
|
|
42
|
+
self.RunTurn = channel.stream_stream(
|
|
43
|
+
'/boombot.agent.v1.AgentCore/RunTurn',
|
|
44
|
+
request_serializer=agent__core__pb2.TurnFrame.SerializeToString,
|
|
45
|
+
response_deserializer=agent__core__pb2.TurnFrame.FromString,
|
|
46
|
+
_registered_method=True)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class AgentCoreServicer:
|
|
50
|
+
"""Missing associated documentation comment in .proto file."""
|
|
51
|
+
|
|
52
|
+
def Health(self, request, context):
|
|
53
|
+
"""Missing associated documentation comment in .proto file."""
|
|
54
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
55
|
+
context.set_details('Method not implemented!')
|
|
56
|
+
raise NotImplementedError('Method not implemented!')
|
|
57
|
+
|
|
58
|
+
def RunTurn(self, request_iterator, context):
|
|
59
|
+
"""Missing associated documentation comment in .proto file."""
|
|
60
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
61
|
+
context.set_details('Method not implemented!')
|
|
62
|
+
raise NotImplementedError('Method not implemented!')
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def add_AgentCoreServicer_to_server(servicer, server):
|
|
66
|
+
rpc_method_handlers = {
|
|
67
|
+
'Health': grpc.unary_unary_rpc_method_handler(
|
|
68
|
+
servicer.Health,
|
|
69
|
+
request_deserializer=agent__core__pb2.HealthRequest.FromString,
|
|
70
|
+
response_serializer=agent__core__pb2.HealthResponse.SerializeToString,
|
|
71
|
+
),
|
|
72
|
+
'RunTurn': grpc.stream_stream_rpc_method_handler(
|
|
73
|
+
servicer.RunTurn,
|
|
74
|
+
request_deserializer=agent__core__pb2.TurnFrame.FromString,
|
|
75
|
+
response_serializer=agent__core__pb2.TurnFrame.SerializeToString,
|
|
76
|
+
),
|
|
77
|
+
}
|
|
78
|
+
generic_handler = grpc.method_handlers_generic_handler(
|
|
79
|
+
'boombot.agent.v1.AgentCore', rpc_method_handlers)
|
|
80
|
+
server.add_generic_rpc_handlers((generic_handler,))
|
|
81
|
+
server.add_registered_method_handlers('boombot.agent.v1.AgentCore', rpc_method_handlers)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
# This class is part of an EXPERIMENTAL API.
|
|
85
|
+
class AgentCore:
|
|
86
|
+
"""Missing associated documentation comment in .proto file."""
|
|
87
|
+
|
|
88
|
+
@staticmethod
|
|
89
|
+
def Health(request,
|
|
90
|
+
target,
|
|
91
|
+
options=(),
|
|
92
|
+
channel_credentials=None,
|
|
93
|
+
call_credentials=None,
|
|
94
|
+
insecure=False,
|
|
95
|
+
compression=None,
|
|
96
|
+
wait_for_ready=None,
|
|
97
|
+
timeout=None,
|
|
98
|
+
metadata=None):
|
|
99
|
+
return grpc.experimental.unary_unary(
|
|
100
|
+
request,
|
|
101
|
+
target,
|
|
102
|
+
'/boombot.agent.v1.AgentCore/Health',
|
|
103
|
+
agent__core__pb2.HealthRequest.SerializeToString,
|
|
104
|
+
agent__core__pb2.HealthResponse.FromString,
|
|
105
|
+
options,
|
|
106
|
+
channel_credentials,
|
|
107
|
+
insecure,
|
|
108
|
+
call_credentials,
|
|
109
|
+
compression,
|
|
110
|
+
wait_for_ready,
|
|
111
|
+
timeout,
|
|
112
|
+
metadata,
|
|
113
|
+
_registered_method=True)
|
|
114
|
+
|
|
115
|
+
@staticmethod
|
|
116
|
+
def RunTurn(request_iterator,
|
|
117
|
+
target,
|
|
118
|
+
options=(),
|
|
119
|
+
channel_credentials=None,
|
|
120
|
+
call_credentials=None,
|
|
121
|
+
insecure=False,
|
|
122
|
+
compression=None,
|
|
123
|
+
wait_for_ready=None,
|
|
124
|
+
timeout=None,
|
|
125
|
+
metadata=None):
|
|
126
|
+
return grpc.experimental.stream_stream(
|
|
127
|
+
request_iterator,
|
|
128
|
+
target,
|
|
129
|
+
'/boombot.agent.v1.AgentCore/RunTurn',
|
|
130
|
+
agent__core__pb2.TurnFrame.SerializeToString,
|
|
131
|
+
agent__core__pb2.TurnFrame.FromString,
|
|
132
|
+
options,
|
|
133
|
+
channel_credentials,
|
|
134
|
+
insecure,
|
|
135
|
+
call_credentials,
|
|
136
|
+
compression,
|
|
137
|
+
wait_for_ready,
|
|
138
|
+
timeout,
|
|
139
|
+
metadata,
|
|
140
|
+
_registered_method=True)
|