indusagi 0.13.5 → 0.13.7
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 +661 -0
- package/README.md +7 -1
- package/dist/cli.js +114 -23
- package/package.json +56 -45
- package/dist/agent.js +0 -28713
- package/dist/ai.js +0 -19964
- package/dist/capabilities.js +0 -2730
- package/dist/connectors-saas.js +0 -3355
- package/dist/index.js +0 -16644
- package/dist/interop.js +0 -3247
- package/dist/knowledge/guides/authoring-an-agent.md +0 -53
- package/dist/knowledge/guides/choosing-tools.md +0 -49
- package/dist/knowledge/guides/model-selection.md +0 -51
- package/dist/knowledge/guides/writing-system-prompts.md +0 -53
- package/dist/knowledge/index.ts +0 -19
- package/dist/knowledge/loader.ts +0 -200
- package/dist/knowledge/manifest.json +0 -29
- package/dist/llmgateway.js +0 -3243
- package/dist/mcp.js +0 -1639
- package/dist/memory.js +0 -0
- package/dist/react-host/index.js +0 -101
- package/dist/react-host/ink.js +0 -97
- package/dist/react-host/jsx-runtime.js +0 -95
- package/dist/react-ink.js +0 -3834
- package/dist/runtime.js +0 -4421
- package/dist/shell-app.js +0 -12333
- package/dist/smithy.js +0 -8033
- package/dist/swarm.js +0 -8818
- package/dist/tracing.js +0 -724
- package/dist/tui.js +0 -2213
- package/dist/types/capabilities/backends/index.d.ts +0 -10
- package/dist/types/capabilities/backends/node-backends.d.ts +0 -30
- package/dist/types/capabilities/capabilities.test.d.ts +0 -14
- package/dist/types/capabilities/files/diff.d.ts +0 -49
- package/dist/types/capabilities/files/edit.d.ts +0 -21
- package/dist/types/capabilities/files/ls.d.ts +0 -16
- package/dist/types/capabilities/files/read-state-gate.d.ts +0 -69
- package/dist/types/capabilities/files/read-state-gate.test.d.ts +0 -14
- package/dist/types/capabilities/files/read.d.ts +0 -15
- package/dist/types/capabilities/files/write.d.ts +0 -16
- package/dist/types/capabilities/index.d.ts +0 -29
- package/dist/types/capabilities/kernel/backends.d.ts +0 -119
- package/dist/types/capabilities/kernel/context.d.ts +0 -52
- package/dist/types/capabilities/kernel/index.d.ts +0 -24
- package/dist/types/capabilities/kernel/output.d.ts +0 -40
- package/dist/types/capabilities/kernel/registry.d.ts +0 -61
- package/dist/types/capabilities/kernel/spec.d.ts +0 -168
- package/dist/types/capabilities/planning/todo.d.ts +0 -62
- package/dist/types/capabilities/registry.d.ts +0 -44
- package/dist/types/capabilities/search/find.d.ts +0 -33
- package/dist/types/capabilities/search/grep.d.ts +0 -30
- package/dist/types/capabilities/shell/bash.d.ts +0 -18
- package/dist/types/capabilities/shell/process.d.ts +0 -33
- package/dist/types/capabilities/web/webfetch.d.ts +0 -25
- package/dist/types/capabilities/web/websearch.d.ts +0 -23
- package/dist/types/connectors-saas/connectors-saas.test.d.ts +0 -12
- package/dist/types/connectors-saas/index.d.ts +0 -16
- package/dist/types/connectors-saas/saas/adapter/composio-backend.d.ts +0 -60
- package/dist/types/connectors-saas/saas/control/connect.d.ts +0 -114
- package/dist/types/connectors-saas/saas/control/tools.d.ts +0 -67
- package/dist/types/connectors-saas/saas/core/builder.d.ts +0 -86
- package/dist/types/connectors-saas/saas/core/cache.d.ts +0 -53
- package/dist/types/connectors-saas/saas/core/index.d.ts +0 -14
- package/dist/types/connectors-saas/saas/core/port.d.ts +0 -157
- package/dist/types/connectors-saas/saas/core/scope-planner.d.ts +0 -74
- package/dist/types/connectors-saas/saas/gateway.d.ts +0 -133
- package/dist/types/connectors-saas/saas/render/format.d.ts +0 -54
- package/dist/types/connectors-saas/saas/render/index.d.ts +0 -19
- package/dist/types/connectors-saas/saas/render/summarizers.d.ts +0 -58
- package/dist/types/facade/agent.d.ts +0 -1
- package/dist/types/facade/ai.d.ts +0 -1
- package/dist/types/facade/bot/actions/bash.d.ts +0 -71
- package/dist/types/facade/bot/actions/bash.test.d.ts +0 -1
- package/dist/types/facade/bot/actions/checkpoint.d.ts +0 -49
- package/dist/types/facade/bot/actions/checkpoint.test.d.ts +0 -1
- package/dist/types/facade/bot/actions/composio/accounts.d.ts +0 -22
- package/dist/types/facade/bot/actions/composio/client.d.ts +0 -39
- package/dist/types/facade/bot/actions/composio/connect.d.ts +0 -19
- package/dist/types/facade/bot/actions/composio/enable.d.ts +0 -25
- package/dist/types/facade/bot/actions/composio/execute.d.ts +0 -26
- package/dist/types/facade/bot/actions/composio/helpers.d.ts +0 -16
- package/dist/types/facade/bot/actions/composio/index.d.ts +0 -9
- package/dist/types/facade/bot/actions/composio/provider.d.ts +0 -8
- package/dist/types/facade/bot/actions/composio/toolkits.d.ts +0 -22
- package/dist/types/facade/bot/actions/composio/tools.d.ts +0 -28
- package/dist/types/facade/bot/actions/composio/types.d.ts +0 -137
- package/dist/types/facade/bot/actions/crew/activity-tracker.d.ts +0 -65
- package/dist/types/facade/bot/actions/crew/cleanup.d.ts +0 -50
- package/dist/types/facade/bot/actions/crew/fs-lock.d.ts +0 -11
- package/dist/types/facade/bot/actions/crew/index.d.ts +0 -11
- package/dist/types/facade/bot/actions/crew/mailbox.d.ts +0 -20
- package/dist/types/facade/bot/actions/crew/model-policy.d.ts +0 -22
- package/dist/types/facade/bot/actions/crew/names.d.ts +0 -27
- package/dist/types/facade/bot/actions/crew/protocol.d.ts +0 -74
- package/dist/types/facade/bot/actions/crew/task-store.d.ts +0 -88
- package/dist/types/facade/bot/actions/crew/team-attach-claim.d.ts +0 -35
- package/dist/types/facade/bot/actions/crew/team-config.d.ts +0 -54
- package/dist/types/facade/bot/actions/crew/worktree.d.ts +0 -39
- package/dist/types/facade/bot/actions/edit-diff.d.ts +0 -66
- package/dist/types/facade/bot/actions/edit-utils.d.ts +0 -86
- package/dist/types/facade/bot/actions/edit.d.ts +0 -59
- package/dist/types/facade/bot/actions/edit.test.d.ts +0 -1
- package/dist/types/facade/bot/actions/find.d.ts +0 -27
- package/dist/types/facade/bot/actions/find.test.d.ts +0 -1
- package/dist/types/facade/bot/actions/grep.d.ts +0 -53
- package/dist/types/facade/bot/actions/grep.test.d.ts +0 -1
- package/dist/types/facade/bot/actions/index.d.ts +0 -316
- package/dist/types/facade/bot/actions/kit/hook-runner.d.ts +0 -12
- package/dist/types/facade/bot/actions/kit/image-resize.d.ts +0 -19
- package/dist/types/facade/bot/actions/kit/mime.d.ts +0 -1
- package/dist/types/facade/bot/actions/kit/shell.d.ts +0 -12
- package/dist/types/facade/bot/actions/ls.d.ts +0 -41
- package/dist/types/facade/bot/actions/path-utils.d.ts +0 -8
- package/dist/types/facade/bot/actions/process-controller.d.ts +0 -14
- package/dist/types/facade/bot/actions/process-manager.d.ts +0 -59
- package/dist/types/facade/bot/actions/process-types.d.ts +0 -73
- package/dist/types/facade/bot/actions/process.d.ts +0 -37
- package/dist/types/facade/bot/actions/read-state.d.ts +0 -83
- package/dist/types/facade/bot/actions/read-state.test.d.ts +0 -1
- package/dist/types/facade/bot/actions/read.d.ts +0 -43
- package/dist/types/facade/bot/actions/read.test.d.ts +0 -1
- package/dist/types/facade/bot/actions/registry.d.ts +0 -20
- package/dist/types/facade/bot/actions/sandbox-backend.d.ts +0 -99
- package/dist/types/facade/bot/actions/sandbox-backend.test.d.ts +0 -1
- package/dist/types/facade/bot/actions/todo-store.d.ts +0 -76
- package/dist/types/facade/bot/actions/todo-types.d.ts +0 -72
- package/dist/types/facade/bot/actions/todo.d.ts +0 -76
- package/dist/types/facade/bot/actions/truncate.d.ts +0 -78
- package/dist/types/facade/bot/actions/webfetch.d.ts +0 -35
- package/dist/types/facade/bot/actions/websearch.d.ts +0 -37
- package/dist/types/facade/bot/actions/websearch.test.d.ts +0 -1
- package/dist/types/facade/bot/actions/write.d.ts +0 -45
- package/dist/types/facade/bot/agent-loop.d.ts +0 -30
- package/dist/types/facade/bot/agent-loop.test.d.ts +0 -1
- package/dist/types/facade/bot/agent.d.ts +0 -140
- package/dist/types/facade/bot/error-handler.d.ts +0 -7
- package/dist/types/facade/bot/event-bus.d.ts +0 -8
- package/dist/types/facade/bot/index.d.ts +0 -7
- package/dist/types/facade/bot/messages.d.ts +0 -83
- package/dist/types/facade/bot/permission-gate.test.d.ts +0 -1
- package/dist/types/facade/bot/proxy.d.ts +0 -70
- package/dist/types/facade/bot/session-manager.d.ts +0 -409
- package/dist/types/facade/bot/state-manager.d.ts +0 -21
- package/dist/types/facade/bot/telemetry.d.ts +0 -6
- package/dist/types/facade/bot/types.d.ts +0 -267
- package/dist/types/facade/mcp-core/client-pool.d.ts +0 -105
- package/dist/types/facade/mcp-core/client.d.ts +0 -213
- package/dist/types/facade/mcp-core/client.test.d.ts +0 -18
- package/dist/types/facade/mcp-core/config.d.ts +0 -60
- package/dist/types/facade/mcp-core/errors.d.ts +0 -103
- package/dist/types/facade/mcp-core/index.d.ts +0 -55
- package/dist/types/facade/mcp-core/schema-converter.d.ts +0 -67
- package/dist/types/facade/mcp-core/server.d.ts +0 -110
- package/dist/types/facade/mcp-core/tool-factory.d.ts +0 -62
- package/dist/types/facade/mcp-core/types.d.ts +0 -298
- package/dist/types/facade/mcp.d.ts +0 -1
- package/dist/types/facade/memory.d.ts +0 -1
- package/dist/types/facade/ml/adapters/amazon-bedrock.d.ts +0 -32
- package/dist/types/facade/ml/adapters/anthropic-retry.test.d.ts +0 -1
- package/dist/types/facade/ml/adapters/anthropic.d.ts +0 -78
- package/dist/types/facade/ml/adapters/azure-openai-responses.d.ts +0 -14
- package/dist/types/facade/ml/adapters/google-shared.d.ts +0 -99
- package/dist/types/facade/ml/adapters/google-vertex.d.ts +0 -14
- package/dist/types/facade/ml/adapters/google.d.ts +0 -15
- package/dist/types/facade/ml/adapters/kimi.d.ts +0 -21
- package/dist/types/facade/ml/adapters/mock.d.ts +0 -9
- package/dist/types/facade/ml/adapters/nvidia.d.ts +0 -12
- package/dist/types/facade/ml/adapters/openai-codex-responses.d.ts +0 -8
- package/dist/types/facade/ml/adapters/openai-completions.d.ts +0 -24
- package/dist/types/facade/ml/adapters/openai-responses-shared.d.ts +0 -25
- package/dist/types/facade/ml/adapters/openai-responses.d.ts +0 -12
- package/dist/types/facade/ml/adapters/openai-scaffold.d.ts +0 -3
- package/dist/types/facade/ml/adapters/register-builtins.d.ts +0 -2
- package/dist/types/facade/ml/adapters/simple-options.d.ts +0 -39
- package/dist/types/facade/ml/adapters/simple-options.test.d.ts +0 -1
- package/dist/types/facade/ml/adapters/transform-messages.d.ts +0 -23
- package/dist/types/facade/ml/api-registry.d.ts +0 -49
- package/dist/types/facade/ml/cli.d.ts +0 -2
- package/dist/types/facade/ml/env-api-keys.d.ts +0 -19
- package/dist/types/facade/ml/index.d.ts +0 -27
- package/dist/types/facade/ml/kit/auth/anthropic.d.ts +0 -17
- package/dist/types/facade/ml/kit/auth/github-copilot.d.ts +0 -22
- package/dist/types/facade/ml/kit/auth/index.d.ts +0 -50
- package/dist/types/facade/ml/kit/auth/kimi.d.ts +0 -23
- package/dist/types/facade/ml/kit/auth/oauth-page.d.ts +0 -2
- package/dist/types/facade/ml/kit/auth/openai-codex.d.ts +0 -36
- package/dist/types/facade/ml/kit/auth/pkce.d.ts +0 -12
- package/dist/types/facade/ml/kit/auth/types.d.ts +0 -67
- package/dist/types/facade/ml/kit/base-stream-handler.d.ts +0 -30
- package/dist/types/facade/ml/kit/event-stream.d.ts +0 -63
- package/dist/types/facade/ml/kit/index.d.ts +0 -14
- package/dist/types/facade/ml/kit/json-parse.d.ts +0 -23
- package/dist/types/facade/ml/kit/message-transform.d.ts +0 -32
- package/dist/types/facade/ml/kit/output-factory.d.ts +0 -8
- package/dist/types/facade/ml/kit/overflow.d.ts +0 -9
- package/dist/types/facade/ml/kit/provider-adapter.d.ts +0 -56
- package/dist/types/facade/ml/kit/provider-client-builder.d.ts +0 -36
- package/dist/types/facade/ml/kit/provider-consolidation.d.ts +0 -3
- package/dist/types/facade/ml/kit/provider-constants.d.ts +0 -34
- package/dist/types/facade/ml/kit/provider-errors.d.ts +0 -52
- package/dist/types/facade/ml/kit/sanitize-unicode.d.ts +0 -2
- package/dist/types/facade/ml/kit/stream-event-helper.d.ts +0 -38
- package/dist/types/facade/ml/kit/stream-handler-types.d.ts +0 -46
- package/dist/types/facade/ml/kit/streaming-state-manager.d.ts +0 -42
- package/dist/types/facade/ml/kit/tool-converter.d.ts +0 -49
- package/dist/types/facade/ml/kit/typebox-helpers.d.ts +0 -24
- package/dist/types/facade/ml/kit/validation.d.ts +0 -26
- package/dist/types/facade/ml/models.d.ts +0 -41
- package/dist/types/facade/ml/models.generated.d.ts +0 -12405
- package/dist/types/facade/ml/stream.d.ts +0 -27
- package/dist/types/facade/ml/types.d.ts +0 -269
- package/dist/types/index.d.ts +0 -16
- package/dist/types/interop/index.d.ts +0 -12
- package/dist/types/interop/interop.test.d.ts +0 -19
- package/dist/types/interop/protocol-bridge/bridge.d.ts +0 -52
- package/dist/types/interop/protocol-bridge/contract.d.ts +0 -249
- package/dist/types/interop/protocol-bridge/endpoint.d.ts +0 -124
- package/dist/types/interop/protocol-bridge/fleet.d.ts +0 -92
- package/dist/types/interop/protocol-bridge/host.d.ts +0 -61
- package/dist/types/interop/protocol-bridge/index.d.ts +0 -16
- package/dist/types/interop/protocol-bridge/schema.d.ts +0 -29
- package/dist/types/llmgateway/catalog/cards.d.ts +0 -18
- package/dist/types/llmgateway/catalog/cost.d.ts +0 -15
- package/dist/types/llmgateway/catalog/index.d.ts +0 -7
- package/dist/types/llmgateway/catalog/query.d.ts +0 -40
- package/dist/types/llmgateway/connectors/anthropic.d.ts +0 -35
- package/dist/types/llmgateway/connectors/azure-openai.d.ts +0 -33
- package/dist/types/llmgateway/connectors/bedrock.d.ts +0 -113
- package/dist/types/llmgateway/connectors/google-vertex.d.ts +0 -38
- package/dist/types/llmgateway/connectors/google.d.ts +0 -40
- package/dist/types/llmgateway/connectors/index.d.ts +0 -26
- package/dist/types/llmgateway/connectors/kimi.d.ts +0 -28
- package/dist/types/llmgateway/connectors/mock.d.ts +0 -37
- package/dist/types/llmgateway/connectors/nvidia.d.ts +0 -27
- package/dist/types/llmgateway/connectors/ollama.d.ts +0 -45
- package/dist/types/llmgateway/connectors/openai-chat.d.ts +0 -25
- package/dist/types/llmgateway/connectors/openai-responses.d.ts +0 -49
- package/dist/types/llmgateway/contract/connector.d.ts +0 -32
- package/dist/types/llmgateway/contract/conversation.d.ts +0 -86
- package/dist/types/llmgateway/contract/emission.d.ts +0 -55
- package/dist/types/llmgateway/contract/errors.d.ts +0 -27
- package/dist/types/llmgateway/contract/index.d.ts +0 -13
- package/dist/types/llmgateway/contract/model-card.d.ts +0 -42
- package/dist/types/llmgateway/contract/options.d.ts +0 -31
- package/dist/types/llmgateway/contract/reply.d.ts +0 -33
- package/dist/types/llmgateway/conversion/index.d.ts +0 -10
- package/dist/types/llmgateway/conversion/mappers.d.ts +0 -65
- package/dist/types/llmgateway/conversion/openai-compatible.d.ts +0 -46
- package/dist/types/llmgateway/conversion/reduce.d.ts +0 -20
- package/dist/types/llmgateway/credentials/oauth.d.ts +0 -73
- package/dist/types/llmgateway/credentials/pkce.d.ts +0 -52
- package/dist/types/llmgateway/credentials/secrets.d.ts +0 -74
- package/dist/types/llmgateway/gateway.d.ts +0 -34
- package/dist/types/llmgateway/gateway.test.d.ts +0 -14
- package/dist/types/llmgateway/index.d.ts +0 -11
- package/dist/types/llmgateway/streaming/channel.d.ts +0 -24
- package/dist/types/llmgateway/streaming/index.d.ts +0 -10
- package/dist/types/llmgateway/streaming/ndjson.d.ts +0 -17
- package/dist/types/llmgateway/streaming/sse.d.ts +0 -31
- package/dist/types/react-host/index.d.ts +0 -9
- package/dist/types/react-host/ink.d.ts +0 -5
- package/dist/types/react-host/jsx-runtime.d.ts +0 -4
- package/dist/types/react-host/loader.d.ts +0 -3
- package/dist/types/react-ink/components/ChangelogBlock.d.ts +0 -8
- package/dist/types/react-ink/components/DisplayBlockView.d.ts +0 -8
- package/dist/types/react-ink/components/Footer.d.ts +0 -11
- package/dist/types/react-ink/components/MessageList.d.ts +0 -14
- package/dist/types/react-ink/components/MessageRow.d.ts +0 -13
- package/dist/types/react-ink/components/StatusLine.d.ts +0 -18
- package/dist/types/react-ink/components/TaskPanel.d.ts +0 -11
- package/dist/types/react-ink/components/ToolEventBlock.d.ts +0 -48
- package/dist/types/react-ink/components/ToolEventBlock.test.d.ts +0 -1
- package/dist/types/react-ink/components/dialogs/DialogFrame.d.ts +0 -8
- package/dist/types/react-ink/components/dialogs/LoginDialog.d.ts +0 -14
- package/dist/types/react-ink/components/dialogs/ModelDialog.d.ts +0 -9
- package/dist/types/react-ink/components/dialogs/OAuthDialog.d.ts +0 -9
- package/dist/types/react-ink/components/dialogs/ScopedModelsDialog.d.ts +0 -9
- package/dist/types/react-ink/components/dialogs/SelectableDialog.d.ts +0 -22
- package/dist/types/react-ink/components/dialogs/SessionDialog.d.ts +0 -13
- package/dist/types/react-ink/components/dialogs/SettingsDialog.d.ts +0 -14
- package/dist/types/react-ink/components/dialogs/StartupSessionPicker.d.ts +0 -9
- package/dist/types/react-ink/components/dialogs/ThemeDialog.d.ts +0 -26
- package/dist/types/react-ink/components/dialogs/TreeDialog.d.ts +0 -8
- package/dist/types/react-ink/components/dialogs/UserMessageDialog.d.ts +0 -8
- package/dist/types/react-ink/components/messages/AssistantMessage.d.ts +0 -12
- package/dist/types/react-ink/components/messages/BashMessage.d.ts +0 -8
- package/dist/types/react-ink/components/messages/BranchSummaryMessage.d.ts +0 -8
- package/dist/types/react-ink/components/messages/CompactionMessage.d.ts +0 -8
- package/dist/types/react-ink/components/messages/CustomMessage.d.ts +0 -9
- package/dist/types/react-ink/components/messages/SkillInvocationMessage.d.ts +0 -7
- package/dist/types/react-ink/components/messages/ToolCallMessage.d.ts +0 -8
- package/dist/types/react-ink/components/messages/ToolResultBlock.d.ts +0 -12
- package/dist/types/react-ink/components/messages/UserMessage.d.ts +0 -9
- package/dist/types/react-ink/diff/Diff.d.ts +0 -22
- package/dist/types/react-ink/diff/diff.test.d.ts +0 -1
- package/dist/types/react-ink/diff/structured.d.ts +0 -41
- package/dist/types/react-ink/diff/word-diff.d.ts +0 -27
- package/dist/types/react-ink/index.d.ts +0 -42
- package/dist/types/react-ink/markdown/Markdown.d.ts +0 -23
- package/dist/types/react-ink/markdown/MarkdownTable.d.ts +0 -19
- package/dist/types/react-ink/markdown/StreamingMarkdown.d.ts +0 -34
- package/dist/types/react-ink/markdown/format-token.d.ts +0 -39
- package/dist/types/react-ink/markdown/highlight.d.ts +0 -31
- package/dist/types/react-ink/theme-adapter.d.ts +0 -66
- package/dist/types/react-ink/types.d.ts +0 -133
- package/dist/types/react-ink/utils/message-groups.d.ts +0 -25
- package/dist/types/react-ink/utils/selection-dialog.d.ts +0 -2
- package/dist/types/react-ink/utils/session-browser.d.ts +0 -27
- package/dist/types/react-ink/utils/tool-display.d.ts +0 -37
- package/dist/types/runtime/cadence/cadence.test.d.ts +0 -6
- package/dist/types/runtime/cadence/fold.d.ts +0 -48
- package/dist/types/runtime/cadence/index.d.ts +0 -12
- package/dist/types/runtime/cadence/reducer.d.ts +0 -44
- package/dist/types/runtime/conductor/agent.d.ts +0 -71
- package/dist/types/runtime/conductor/index.d.ts +0 -11
- package/dist/types/runtime/contract/config.d.ts +0 -44
- package/dist/types/runtime/contract/effect.d.ts +0 -41
- package/dist/types/runtime/contract/errors.d.ts +0 -22
- package/dist/types/runtime/contract/events.d.ts +0 -63
- package/dist/types/runtime/contract/index.d.ts +0 -18
- package/dist/types/runtime/contract/run-state.d.ts +0 -57
- package/dist/types/runtime/contract/session.d.ts +0 -42
- package/dist/types/runtime/contract/signal.d.ts +0 -49
- package/dist/types/runtime/contract/tools.d.ts +0 -45
- package/dist/types/runtime/dispatch/index.d.ts +0 -9
- package/dist/types/runtime/dispatch/scheduler.d.ts +0 -53
- package/dist/types/runtime/index.d.ts +0 -22
- package/dist/types/runtime/ledger/accumulator.d.ts +0 -44
- package/dist/types/runtime/ledger/bus.d.ts +0 -50
- package/dist/types/runtime/ledger/index.d.ts +0 -11
- package/dist/types/runtime/memory/compactor.d.ts +0 -56
- package/dist/types/runtime/memory/estimate.d.ts +0 -21
- package/dist/types/runtime/memory/index.d.ts +0 -8
- package/dist/types/runtime/runtime.test.d.ts +0 -15
- package/dist/types/runtime/store/dag.d.ts +0 -72
- package/dist/types/runtime/store/hash.d.ts +0 -18
- package/dist/types/runtime/store/index.d.ts +0 -12
- package/dist/types/runtime/store/persist.d.ts +0 -49
- package/dist/types/runtime/turn/driver.d.ts +0 -32
- package/dist/types/runtime/turn/index.d.ts +0 -8
- package/dist/types/runtime/wire/index.d.ts +0 -10
- package/dist/types/runtime/wire/projectors.d.ts +0 -53
- package/dist/types/shell-app/auth-cli/index.d.ts +0 -9
- package/dist/types/shell-app/auth-cli/oauth-cli.d.ts +0 -73
- package/dist/types/shell-app/boot/context.d.ts +0 -108
- package/dist/types/shell-app/boot/index.d.ts +0 -13
- package/dist/types/shell-app/boot/pipeline.d.ts +0 -66
- package/dist/types/shell-app/boot/stages.d.ts +0 -77
- package/dist/types/shell-app/cli.d.ts +0 -75
- package/dist/types/shell-app/config/index.d.ts +0 -11
- package/dist/types/shell-app/config/locator.d.ts +0 -85
- package/dist/types/shell-app/config/settings.d.ts +0 -91
- package/dist/types/shell-app/index.d.ts +0 -26
- package/dist/types/shell-app/invocation/flags.d.ts +0 -89
- package/dist/types/shell-app/invocation/parse.d.ts +0 -89
- package/dist/types/shell-app/locate/brand.d.ts +0 -71
- package/dist/types/shell-app/locate/index.d.ts +0 -12
- package/dist/types/shell-app/locate/locator.d.ts +0 -122
- package/dist/types/shell-app/runners/contract.d.ts +0 -116
- package/dist/types/shell-app/runners/index.d.ts +0 -15
- package/dist/types/shell-app/runners/one-shot.d.ts +0 -21
- package/dist/types/shell-app/runners/registry.d.ts +0 -34
- package/dist/types/shell-app/runners/repl.d.ts +0 -51
- package/dist/types/shell-app/runners/wire.d.ts +0 -34
- package/dist/types/shell-app/shell-app.test.d.ts +0 -14
- package/dist/types/shell-app/upgrade/index.d.ts +0 -9
- package/dist/types/shell-app/upgrade/upgrades.d.ts +0 -62
- package/dist/types/smithy/config/flag-reader.d.ts +0 -128
- package/dist/types/smithy/config/index.d.ts +0 -9
- package/dist/types/smithy/forge.d.ts +0 -135
- package/dist/types/smithy/index.d.ts +0 -36
- package/dist/types/smithy/knowledge/index.d.ts +0 -10
- package/dist/types/smithy/knowledge/loader.d.ts +0 -64
- package/dist/types/smithy/persona/blueprint.d.ts +0 -75
- package/dist/types/smithy/persona/define-agent.d.ts +0 -51
- package/dist/types/smithy/persona/index.d.ts +0 -14
- package/dist/types/smithy/persona/profiles.d.ts +0 -44
- package/dist/types/smithy/runtime/index.d.ts +0 -9
- package/dist/types/smithy/runtime/tool-ledger.d.ts +0 -130
- package/dist/types/smithy/smithy.test.d.ts +0 -20
- package/dist/types/smithy/ui/index.d.ts +0 -11
- package/dist/types/smithy/ui/transcript.d.ts +0 -183
- package/dist/types/swarm/coordinator.d.ts +0 -192
- package/dist/types/swarm/index.d.ts +0 -33
- package/dist/types/swarm/isolation/index.d.ts +0 -14
- package/dist/types/swarm/isolation/runner.d.ts +0 -61
- package/dist/types/swarm/isolation/worktree.d.ts +0 -142
- package/dist/types/swarm/kernel/faults.d.ts +0 -52
- package/dist/types/swarm/kernel/ids.d.ts +0 -25
- package/dist/types/swarm/kernel/index.d.ts +0 -26
- package/dist/types/swarm/kernel/json-cell.d.ts +0 -113
- package/dist/types/swarm/kernel/jsonl-log.d.ts +0 -81
- package/dist/types/swarm/postbox/channel.d.ts +0 -88
- package/dist/types/swarm/postbox/codecs.d.ts +0 -253
- package/dist/types/swarm/postbox/index.d.ts +0 -16
- package/dist/types/swarm/roster/index.d.ts +0 -16
- package/dist/types/swarm/roster/manifest.d.ts +0 -185
- package/dist/types/swarm/swarm.test.d.ts +0 -24
- package/dist/types/swarm/telemetry/activity.d.ts +0 -143
- package/dist/types/swarm/workboard/board.d.ts +0 -174
- package/dist/types/swarm/workboard/dep-graph.d.ts +0 -77
- package/dist/types/swarm/workboard/index.d.ts +0 -12
- package/dist/types/tracing/adapter/index.d.ts +0 -12
- package/dist/types/tracing/adapter/runtime-trace.d.ts +0 -54
- package/dist/types/tracing/channel/index.d.ts +0 -9
- package/dist/types/tracing/channel/signal.d.ts +0 -93
- package/dist/types/tracing/index.d.ts +0 -25
- package/dist/types/tracing/recorder/index.d.ts +0 -12
- package/dist/types/tracing/recorder/recorder.d.ts +0 -75
- package/dist/types/tracing/recorder/sampling.d.ts +0 -55
- package/dist/types/tracing/redaction/index.d.ts +0 -8
- package/dist/types/tracing/redaction/secret-scrubber.d.ts +0 -95
- package/dist/types/tracing/registry/hub.d.ts +0 -57
- package/dist/types/tracing/registry/index.d.ts +0 -7
- package/dist/types/tracing/signal/handle.d.ts +0 -73
- package/dist/types/tracing/signal/index.d.ts +0 -12
- package/dist/types/tracing/signal/segment.d.ts +0 -124
- package/dist/types/tracing/sinks/base.d.ts +0 -51
- package/dist/types/tracing/sinks/console.d.ts +0 -44
- package/dist/types/tracing/sinks/file.d.ts +0 -47
- package/dist/types/tracing/sinks/index.d.ts +0 -16
- package/dist/types/tracing/sinks/stream.d.ts +0 -46
- package/dist/types/tracing/tracing.test.d.ts +0 -7
- package/dist/types/ui/autocomplete.d.ts +0 -59
- package/dist/types/ui/contracts.d.ts +0 -38
- package/dist/types/ui/editor-component.d.ts +0 -100
- package/dist/types/ui/fuzzy.d.ts +0 -29
- package/dist/types/ui/index.d.ts +0 -8
- package/dist/types/ui/keybindings.d.ts +0 -62
- package/dist/types/ui/keys.d.ts +0 -171
- package/dist/types/ui/theme-types.d.ts +0 -36
- package/dist/types/ui/utils.d.ts +0 -101
- package/dist/types/ui-bridge/InteractiveApp.d.ts +0 -38
- package/dist/types/ui-bridge/adapter.d.ts +0 -90
- package/dist/types/ui-bridge/index.d.ts +0 -37
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The four CONTROL tools — built from ONE declarative table and a single factory.
|
|
3
|
-
*
|
|
4
|
-
* Where {@link CONNECTOR_TOOLS} (in core) describes the low-level passthrough tools
|
|
5
|
-
* that talk straight to the {@link SaasBackend} port, this module defines the
|
|
6
|
-
* higher-level *control surface* an agent uses to manage SaaS connectors as a
|
|
7
|
-
* whole: discovering and hydrating toolkits into the live tool set, executing any
|
|
8
|
-
* remote operation directly, opening an authorization flow, and reporting status.
|
|
9
|
-
*
|
|
10
|
-
* Two ideas, shared with the core builder, are reused verbatim here:
|
|
11
|
-
*
|
|
12
|
-
* 1. **One table, one factory.** The four control tools are rows in
|
|
13
|
-
* {@link CONTROL_SPECS}, each an `id` + `description` + JSON-Schema `parameters`
|
|
14
|
-
* + a `run(gateway, input)` thunk. {@link buildControlTools} maps the table to
|
|
15
|
-
* {@link DefinedTool}s with a single `defineTool` call per row — there is no
|
|
16
|
-
* `createEnableTool` / `createExecuteTool` family.
|
|
17
|
-
* 2. **Delegate, don't reimplement.** Every `run` defers to the passed-in
|
|
18
|
-
* {@link SaasGateway}, which is the one object that owns the live registry, the
|
|
19
|
-
* discovery cache, the scope planner, and the connection state machine. The
|
|
20
|
-
* tools are thin command surfaces; the gateway holds the logic.
|
|
21
|
-
*
|
|
22
|
-
* The gateway is what distinguishes these from the core passthrough tools: a
|
|
23
|
-
* control tool can mutate the live ToolBox (hydrating a toolkit's operations into
|
|
24
|
-
* it) precisely because the gateway, not a bare backend, sits behind it.
|
|
25
|
-
*/
|
|
26
|
-
import type { DefinedTool, ToolResult } from "../../../capabilities";
|
|
27
|
-
import type { JsonSchema } from "../../../llmgateway/contract";
|
|
28
|
-
import type { SaasGateway } from "../gateway";
|
|
29
|
-
/** Read a string-array field from a loose argument bag, dropping non-strings/blanks. */
|
|
30
|
-
declare function readStringList(input: Record<string, unknown>, key: string): string[];
|
|
31
|
-
/**
|
|
32
|
-
* One row of the control-tool table: a control tool described purely as data.
|
|
33
|
-
*
|
|
34
|
-
* Unlike the core `ControlToolSpec`, a control row's `run` is handed the
|
|
35
|
-
* {@link SaasGateway} (the stateful façade), not a bare backend — that is what
|
|
36
|
-
* lets `saas_enable` hydrate the live tool set.
|
|
37
|
-
*/
|
|
38
|
-
export interface ControlSpec {
|
|
39
|
-
/** The model-facing tool name (e.g. `"saas_enable"`). */
|
|
40
|
-
readonly id: string;
|
|
41
|
-
/** Model-facing description of the control tool. */
|
|
42
|
-
readonly description: string;
|
|
43
|
-
/** JSON-Schema object for the control tool's parameters. */
|
|
44
|
-
readonly parameters: JsonSchema;
|
|
45
|
-
/** The control tool's behavior, expressed against the gateway façade. */
|
|
46
|
-
run(gateway: SaasGateway, input: Record<string, unknown>): Promise<ToolResult>;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* The four control tools, as one declarative table.
|
|
50
|
-
*
|
|
51
|
-
* - `saas_enable` — hydrate a toolkit's operations into the live ToolBox so the
|
|
52
|
-
* agent can call them natively on subsequent turns.
|
|
53
|
-
* - `saas_execute` — direct fallback execution of any remote operation by slug,
|
|
54
|
-
* without first hydrating it.
|
|
55
|
-
* - `saas_connect` — start (and drive) an authorization flow for a toolkit.
|
|
56
|
-
* - `saas_status` — list connected accounts and the operations currently in scope.
|
|
57
|
-
*/
|
|
58
|
-
export declare const CONTROL_SPECS: readonly ControlSpec[];
|
|
59
|
-
/**
|
|
60
|
-
* Instantiate every row of {@link CONTROL_SPECS} into a {@link DefinedTool}, each
|
|
61
|
-
* bound to the supplied {@link SaasGateway}.
|
|
62
|
-
*
|
|
63
|
-
* This is the single factory the spec calls for: one map over the data table, one
|
|
64
|
-
* `defineTool` per row, no per-control-tool boilerplate.
|
|
65
|
-
*/
|
|
66
|
-
export declare function buildControlTools(gateway: SaasGateway): DefinedTool[];
|
|
67
|
-
export { readStringList };
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The single remote-tool builder and the declarative control-tool table.
|
|
3
|
-
*
|
|
4
|
-
* Two ideas live here, and the point of putting them together is that they share
|
|
5
|
-
* one philosophy: **one builder, never a family of near-identical factories.**
|
|
6
|
-
*
|
|
7
|
-
* 1. {@link buildRemoteTool} is the *only* place a catalog operation becomes a
|
|
8
|
-
* native {@link DefinedTool}. Given a {@link RemoteTool} reference and a backend
|
|
9
|
-
* port, it mints a tool whose `run` forwards the model's arguments to
|
|
10
|
-
* `backend.execute(ref.name, …)` and folds the {@link RemoteResult} back into the
|
|
11
|
-
* kernel's {@link ToolResult} shape. This is the `CONNECTOR_TOOLS` concept: a
|
|
12
|
-
* remote tool is data (`ref`) plus this single rendering function — not a
|
|
13
|
-
* bespoke class per operation.
|
|
14
|
-
*
|
|
15
|
-
* 2. The four **control** tools (attach / run / link / status) are described as
|
|
16
|
-
* DATA in {@link CONNECTOR_TOOLS}: each entry is an `id`, a JSON-Schema
|
|
17
|
-
* `parameters`, a `description`, and a `run(backend, input)` thunk. A single
|
|
18
|
-
* {@link buildControlTools} maps over the table and calls {@link defineTool}
|
|
19
|
-
* once per row. There is no `createXTool` per control tool and no trailing
|
|
20
|
-
* singleton — the repetition a clone detector loves is gone.
|
|
21
|
-
*
|
|
22
|
-
* The vendor SDK is nowhere in sight: everything routes through the
|
|
23
|
-
* {@link SaasBackend} port, so this whole module is testable with a plain object.
|
|
24
|
-
*/
|
|
25
|
-
import type { DefinedTool, ToolResult } from "../../../capabilities";
|
|
26
|
-
import type { JsonSchema } from "../../../llmgateway/contract";
|
|
27
|
-
import type { RemoteTool, SaasBackend } from "./port";
|
|
28
|
-
/** What every tool built here is handed: the backend port it routes through. */
|
|
29
|
-
export interface ToolDeps {
|
|
30
|
-
/** The inverted backend the tool's `run` calls into. */
|
|
31
|
-
readonly backend: SaasBackend;
|
|
32
|
-
/**
|
|
33
|
-
* Optional pinned account to execute remote operations under. Omit to let the
|
|
34
|
-
* backend choose the appropriate connected account.
|
|
35
|
-
*/
|
|
36
|
-
readonly accountId?: string;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Mint a native {@link DefinedTool} from one catalog operation.
|
|
40
|
-
*
|
|
41
|
-
* The returned tool advertises the operation's own `inputSchema` to the model and,
|
|
42
|
-
* on invocation, forwards the parsed arguments straight to
|
|
43
|
-
* `deps.backend.execute(ref.name, input, { accountId })`, mapping the
|
|
44
|
-
* {@link RemoteResult} onto a {@link ToolResult}. This is the single bridge from
|
|
45
|
-
* "a remote tool reference" to "a tool the agent can call" — there is no per-
|
|
46
|
-
* operation subclass or factory.
|
|
47
|
-
*/
|
|
48
|
-
export declare function buildRemoteTool(ref: RemoteTool, deps: ToolDeps): DefinedTool;
|
|
49
|
-
/**
|
|
50
|
-
* One row of the control-tool table: a control tool described purely as data.
|
|
51
|
-
*
|
|
52
|
-
* `id` is the model-facing tool name, `parameters` its JSON Schema, `description`
|
|
53
|
-
* its prose, and `run` a backend-driven thunk. Instantiation into a
|
|
54
|
-
* {@link DefinedTool} is done once, generically, by {@link buildControlTools}.
|
|
55
|
-
*/
|
|
56
|
-
export interface ControlToolSpec {
|
|
57
|
-
/** The model-facing tool name (e.g. `"saas.run"`). */
|
|
58
|
-
readonly id: string;
|
|
59
|
-
/** Model-facing description of the control tool. */
|
|
60
|
-
readonly description: string;
|
|
61
|
-
/** JSON-Schema object for the control tool's parameters. */
|
|
62
|
-
readonly parameters: JsonSchema;
|
|
63
|
-
/** The control tool's behavior, expressed against the backend port. */
|
|
64
|
-
run(backend: SaasBackend, input: Record<string, unknown>): Promise<ToolResult>;
|
|
65
|
-
}
|
|
66
|
-
/** Read a string-array field from a loose argument bag, dropping non-strings/blanks. */
|
|
67
|
-
declare function strList(input: Record<string, unknown>, key: string): string[];
|
|
68
|
-
/**
|
|
69
|
-
* The control tools, as one declarative table.
|
|
70
|
-
*
|
|
71
|
-
* `saas.attach` hydrates a toolkit's operations (discovery of what can be made
|
|
72
|
-
* native), `saas.run` executes a single operation directly, `saas.link` opens an
|
|
73
|
-
* authorization flow, and `saas.status` inspects connection state. Each is a row;
|
|
74
|
-
* none is a hand-written factory.
|
|
75
|
-
*/
|
|
76
|
-
export declare const CONNECTOR_TOOLS: readonly ControlToolSpec[];
|
|
77
|
-
/**
|
|
78
|
-
* Instantiate every row of {@link CONNECTOR_TOOLS} into a {@link DefinedTool},
|
|
79
|
-
* binding each to the supplied backend.
|
|
80
|
-
*
|
|
81
|
-
* This is the single factory the spec calls for: one map over the data table, one
|
|
82
|
-
* `defineTool` per row, no per-control-tool boilerplate. The `strList` helper is
|
|
83
|
-
* exported-adjacent here so future control rows can read array fields uniformly.
|
|
84
|
-
*/
|
|
85
|
-
export declare function buildControlTools(backend: SaasBackend): DefinedTool[];
|
|
86
|
-
export { strList as readStringList };
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Content-hash cache keys for the SaaS bridge.
|
|
3
|
-
*
|
|
4
|
-
* The bridge dedupes work by *request shape*: two discovery or session requests
|
|
5
|
-
* that describe the same thing should hit the same cache slot regardless of how
|
|
6
|
-
* their fields happened to be ordered in memory. Rather than carry a recursive
|
|
7
|
-
* canonical-string serializer around as the key, we fold any value into a short,
|
|
8
|
-
* fixed-width SHA-256 digest of its canonical JSON. The digest *is* the key — a
|
|
9
|
-
* compact, collision-resistant string that captures the whole request shape.
|
|
10
|
-
*
|
|
11
|
-
* Canonicalization is the only subtlety: JSON key order is incidental, so before
|
|
12
|
-
* hashing we rewrite every object with its keys sorted. Arrays keep their order
|
|
13
|
-
* (it is meaningful); scalars pass through; `undefined` is dropped the way
|
|
14
|
-
* `JSON.stringify` already drops it. The result feeds `crypto`'s SHA-256 and we
|
|
15
|
-
* keep the hex digest.
|
|
16
|
-
*
|
|
17
|
-
* {@link HashCache} is the tiny Map-backed store that uses these keys. It memoizes
|
|
18
|
-
* *promises*, not resolved values, so concurrent callers asking for the same key
|
|
19
|
-
* share one in-flight computation instead of racing to produce duplicates.
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* Derive a stable content-hash key from an arbitrary value.
|
|
23
|
-
*
|
|
24
|
-
* The value is canonicalized (so key order does not matter), JSON-encoded, and
|
|
25
|
-
* reduced to a hex SHA-256 digest. Equal request shapes always yield the same
|
|
26
|
-
* key; differing shapes practically never collide.
|
|
27
|
-
*/
|
|
28
|
-
export declare function hashKey(value: unknown): string;
|
|
29
|
-
/**
|
|
30
|
-
* A minimal promise-memoizing cache keyed by content hash.
|
|
31
|
-
*
|
|
32
|
-
* Lookups go through {@link HashCache.take}, which either returns the
|
|
33
|
-
* already-stored promise for a request shape or runs the supplied factory once
|
|
34
|
-
* and stores its promise. Storing the promise (rather than awaiting first) is what
|
|
35
|
-
* collapses concurrent identical requests into a single backing computation.
|
|
36
|
-
*/
|
|
37
|
-
export declare class HashCache<V> {
|
|
38
|
-
private readonly slots;
|
|
39
|
-
/**
|
|
40
|
-
* Return the cached promise for `shape`, creating it via `factory` on first
|
|
41
|
-
* request. If the factory's promise rejects, the slot is evicted so a later
|
|
42
|
-
* call can retry rather than re-serving the failure forever.
|
|
43
|
-
*/
|
|
44
|
-
take(shape: unknown, factory: () => Promise<V>): Promise<V>;
|
|
45
|
-
/** Whether a slot for this request shape currently exists. */
|
|
46
|
-
has(shape: unknown): boolean;
|
|
47
|
-
/** Drop the slot for this request shape, if any; returns whether one existed. */
|
|
48
|
-
drop(shape: unknown): boolean;
|
|
49
|
-
/** Evict every entry. */
|
|
50
|
-
clear(): void;
|
|
51
|
-
/** How many slots are currently populated. */
|
|
52
|
-
get size(): number;
|
|
53
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The dependency-inverted CORE of the SaaS connector bridge — public surface.
|
|
3
|
-
*
|
|
4
|
-
* Everything exported here depends only on the {@link SaasBackend} PORT and our
|
|
5
|
-
* own contracts (the kernel's `defineTool`/`DefinedTool`, the gateway's
|
|
6
|
-
* `JsonSchema`). No `@composio/core` symbol crosses this barrel; the single vendor
|
|
7
|
-
* adapter that satisfies the port lives outside this `core/` folder.
|
|
8
|
-
*/
|
|
9
|
-
export type { SaasBackend, ToolkitInfo, RemoteTool, RemoteResult, ConnectedAccount, ConnectionStatus, ConnectionRequest, ConnectionState, ExecuteOptions, InitiateOptions, } from "./port";
|
|
10
|
-
export { ScopePlanner } from "./scope-planner";
|
|
11
|
-
export type { ResolvedScope, ScopeKind } from "./scope-planner";
|
|
12
|
-
export { hashKey, HashCache } from "./cache";
|
|
13
|
-
export { buildRemoteTool, buildControlTools, CONNECTOR_TOOLS, readStringList, } from "./builder";
|
|
14
|
-
export type { ToolDeps, ControlToolSpec } from "./builder";
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `SaasBackend` PORT — the dependency-inversion seam of the SaaS connector
|
|
3
|
-
* bridge.
|
|
4
|
-
*
|
|
5
|
-
* The whole point of this file is to name, in *our* vocabulary, the minimal
|
|
6
|
-
* surface the rest of the bridge (the gateway, the scope planner, the remote-tool
|
|
7
|
-
* builder) is allowed to lean on. It deliberately knows nothing about
|
|
8
|
-
* `@composio/core`: every shape below is ours, hand-shaped to be exactly what the
|
|
9
|
-
* core logic consumes and no more. A single adapter elsewhere will satisfy this
|
|
10
|
-
* port by translating to and from the vendor SDK — that adapter is the *only*
|
|
11
|
-
* place the third-party catalog leaks in. Everything that imports this file talks
|
|
12
|
-
* to an interface, never to a vendor.
|
|
13
|
-
*
|
|
14
|
-
* The six methods cover the three jobs the bridge does: **discovery**
|
|
15
|
-
* ({@link SaasBackend.listToolkits}, {@link SaasBackend.listTools}), **execution**
|
|
16
|
-
* ({@link SaasBackend.execute}), and **linking / auth**
|
|
17
|
-
* ({@link SaasBackend.listConnectedAccounts}, {@link SaasBackend.initiateConnection},
|
|
18
|
-
* {@link SaasBackend.checkConnection}). Each returns one of the plain record types
|
|
19
|
-
* defined here, so a fake backend for tests is a few object literals away.
|
|
20
|
-
*/
|
|
21
|
-
import type { JsonSchema } from "../../../llmgateway/contract";
|
|
22
|
-
/**
|
|
23
|
-
* A connectable third-party product (GitHub, Gmail, Slack, …) as the catalog
|
|
24
|
-
* advertises it. `slug` is the stable machine identifier the rest of the bridge
|
|
25
|
-
* keys on; `name` and `description` are for the model and humans. `connected`,
|
|
26
|
-
* when the backend can cheaply tell, summarizes whether any account is linked.
|
|
27
|
-
*/
|
|
28
|
-
export interface ToolkitInfo {
|
|
29
|
-
/** Stable machine identifier for the toolkit (e.g. `"github"`). */
|
|
30
|
-
readonly slug: string;
|
|
31
|
-
/** Human-facing toolkit name. */
|
|
32
|
-
readonly name: string;
|
|
33
|
-
/** One-line summary of what the toolkit covers. */
|
|
34
|
-
readonly description: string;
|
|
35
|
-
/** Whether the backend believes at least one account is currently linked. */
|
|
36
|
-
readonly connected?: boolean;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* One callable operation exposed by a toolkit, in the shape the bridge needs to
|
|
40
|
-
* mint a native agent tool from it. `inputSchema` is a JSON Schema object —
|
|
41
|
-
* structurally the same `JsonSchema` the gateway hands the model for every other
|
|
42
|
-
* tool — so a remote tool advertises its parameters identically to a built-in.
|
|
43
|
-
*/
|
|
44
|
-
export interface RemoteTool {
|
|
45
|
-
/** The fully-qualified operation slug used to invoke it (e.g. `"GITHUB_CREATE_ISSUE"`). */
|
|
46
|
-
readonly name: string;
|
|
47
|
-
/** The toolkit this operation belongs to (its {@link ToolkitInfo.slug}). */
|
|
48
|
-
readonly toolkit: string;
|
|
49
|
-
/** Model-facing description of the operation. */
|
|
50
|
-
readonly description: string;
|
|
51
|
-
/** JSON-Schema object describing the operation's parameters. */
|
|
52
|
-
readonly inputSchema: JsonSchema;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* The outcome of running a {@link RemoteTool}.
|
|
56
|
-
*
|
|
57
|
-
* `ok` is the success/failure discriminant the bridge maps onto a tool result's
|
|
58
|
-
* `isError`. `data` is the raw structured payload the operation returned (shown to
|
|
59
|
-
* the model as JSON); `error`, when present, is a single human-readable line. A
|
|
60
|
-
* backend that has a correlation/log handle may surface it as `logId` for tracing.
|
|
61
|
-
*/
|
|
62
|
-
export interface RemoteResult {
|
|
63
|
-
/** True when the operation completed without an error. */
|
|
64
|
-
readonly ok: boolean;
|
|
65
|
-
/** The structured payload the operation produced, if any. */
|
|
66
|
-
readonly data?: unknown;
|
|
67
|
-
/** A single-line failure description when `ok` is false. */
|
|
68
|
-
readonly error?: string;
|
|
69
|
-
/** Optional backend-side correlation handle for tracing. */
|
|
70
|
-
readonly logId?: string;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* A credential link the user has established with a toolkit. The bridge inspects
|
|
74
|
-
* these to decide whether a connect flow is needed and which account to execute
|
|
75
|
-
* under. `status` is normalized to our small {@link ConnectionState.status}
|
|
76
|
-
* vocabulary by the adapter, not the vendor's enum.
|
|
77
|
-
*/
|
|
78
|
-
export interface ConnectedAccount {
|
|
79
|
-
/** The account's stable identifier, used as the `accountId` on execute. */
|
|
80
|
-
readonly id: string;
|
|
81
|
-
/** The toolkit slug this account links. */
|
|
82
|
-
readonly toolkit: string;
|
|
83
|
-
/** Normalized lifecycle status of the link. */
|
|
84
|
-
readonly status: ConnectionStatus;
|
|
85
|
-
/** ISO-8601 timestamp of the most recent update, when the backend reports it. */
|
|
86
|
-
readonly updatedAt?: string;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* The normalized lifecycle of a connection, ours rather than the vendor's. The
|
|
90
|
-
* adapter folds the catalog's richer enum down to these four buckets so the core
|
|
91
|
-
* logic only ever branches on a closed set it owns.
|
|
92
|
-
*/
|
|
93
|
-
export type ConnectionStatus = "active" | "pending" | "expired" | "failed";
|
|
94
|
-
/**
|
|
95
|
-
* What {@link SaasBackend.initiateConnection} hands back: a freshly opened (or
|
|
96
|
-
* re-opened) connection attempt. `authUrl` is the actionable redirect the model
|
|
97
|
-
* should surface to the user when present; `id` is the request handle to poll via
|
|
98
|
-
* {@link SaasBackend.checkConnection}.
|
|
99
|
-
*/
|
|
100
|
-
export interface ConnectionRequest {
|
|
101
|
-
/** Identifier of the connection request, pollable for state. */
|
|
102
|
-
readonly id: string;
|
|
103
|
-
/** The toolkit the request targets. */
|
|
104
|
-
readonly toolkit: string;
|
|
105
|
-
/** Current normalized status at the moment the request was created. */
|
|
106
|
-
readonly status: ConnectionStatus;
|
|
107
|
-
/** OAuth/redirect URL the user must visit to authorize, when one applies. */
|
|
108
|
-
readonly authUrl?: string;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* A point-in-time snapshot of a connection request's progress, returned by
|
|
112
|
-
* {@link SaasBackend.checkConnection}. Once `status` reaches `"active"` the
|
|
113
|
-
* resulting `accountId` is the linked account to execute under.
|
|
114
|
-
*/
|
|
115
|
-
export interface ConnectionState {
|
|
116
|
-
/** The request identifier this snapshot describes. */
|
|
117
|
-
readonly id: string;
|
|
118
|
-
/** Normalized status at the time of the check. */
|
|
119
|
-
readonly status: ConnectionStatus;
|
|
120
|
-
/** The connected-account id, present once the link has gone active. */
|
|
121
|
-
readonly accountId?: string;
|
|
122
|
-
/** A still-pending authorization URL, if the user has yet to act. */
|
|
123
|
-
readonly authUrl?: string;
|
|
124
|
-
}
|
|
125
|
-
/** Per-call execution knobs the gateway threads down to the backend. */
|
|
126
|
-
export interface ExecuteOptions {
|
|
127
|
-
/** Pin execution to a specific connected account; omit to let the backend pick. */
|
|
128
|
-
readonly accountId?: string;
|
|
129
|
-
}
|
|
130
|
-
/** Optional inputs for opening a connection request. */
|
|
131
|
-
export interface InitiateOptions {
|
|
132
|
-
/** Reuse a known auth-config rather than the toolkit's default, when supported. */
|
|
133
|
-
readonly authConfigId?: string;
|
|
134
|
-
/** Caller-supplied redirect to return the user to after authorizing. */
|
|
135
|
-
readonly callbackUrl?: string;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* The minimal backend surface the SaaS bridge depends on.
|
|
139
|
-
*
|
|
140
|
-
* This is the inverted dependency: core modules accept a `SaasBackend` and never
|
|
141
|
-
* reach for the vendor SDK. One adapter implements it; tests implement it with
|
|
142
|
-
* plain objects.
|
|
143
|
-
*/
|
|
144
|
-
export interface SaasBackend {
|
|
145
|
-
/** Enumerate the connectable toolkits the catalog offers. */
|
|
146
|
-
listToolkits(): Promise<ToolkitInfo[]>;
|
|
147
|
-
/** Enumerate the callable operations exposed by one toolkit. */
|
|
148
|
-
listTools(toolkit: string): Promise<RemoteTool[]>;
|
|
149
|
-
/** Run a single operation by its slug, with already-parsed arguments. */
|
|
150
|
-
execute(toolName: string, args: unknown, opts: ExecuteOptions): Promise<RemoteResult>;
|
|
151
|
-
/** List the user's existing credential links across toolkits. */
|
|
152
|
-
listConnectedAccounts(): Promise<ConnectedAccount[]>;
|
|
153
|
-
/** Begin (or re-open) a connection/authorization flow for a toolkit. */
|
|
154
|
-
initiateConnection(toolkit: string, opts?: InitiateOptions): Promise<ConnectionRequest>;
|
|
155
|
-
/** Poll a previously initiated connection request for its current state. */
|
|
156
|
-
checkConnection(id: string): Promise<ConnectionState>;
|
|
157
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The {@link ScopePlanner} — a fluent, immutable builder that decides which
|
|
3
|
-
* toolkits and tools are in scope for a hydration or discovery request.
|
|
4
|
-
*
|
|
5
|
-
* The thing this replaces was a priority cascade: a method that looked at an
|
|
6
|
-
* options bag and, through a chain of `if` branches, picked "explicit tool slugs,
|
|
7
|
-
* else the toolkit union, else the auth-config set, else throw." That structure is
|
|
8
|
-
* both hard to read and easy to fingerprint. Here the decision is expressed as
|
|
9
|
-
* *accumulated intent* instead: the caller declares what they want
|
|
10
|
-
* (`.include(toolkit)`, `.only(toolNames)`), and a single {@link ScopePlanner.plan}
|
|
11
|
-
* step resolves that intent into one of three explicit {@link ScopeKind} shapes —
|
|
12
|
-
* `byTools`, `byToolkits`, or `empty` — with no nested branching.
|
|
13
|
-
*
|
|
14
|
-
* Every mutator returns a *new* planner; the receiver is never changed. That makes
|
|
15
|
-
* a planner safe to share, fork, and reuse as a base for several requests. The
|
|
16
|
-
* builder holds only normalized data (deduped, trimmed); resolution into a
|
|
17
|
-
* {@link ResolvedScope} happens once, at `plan()`.
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* The three resolved shapes a scope can take, discriminated by `kind`.
|
|
21
|
-
*
|
|
22
|
-
* - `byTools` — an explicit set of fully-qualified tool slugs (the most specific
|
|
23
|
-
* intent; toolkits are implied by the slugs and carried alongside for context).
|
|
24
|
-
* - `byToolkits` — one or more whole toolkits, every tool in scope.
|
|
25
|
-
* - `empty` — nothing was declared; the caller must treat this as "no scope".
|
|
26
|
-
*/
|
|
27
|
-
export type ResolvedScope = {
|
|
28
|
-
readonly kind: "byTools";
|
|
29
|
-
readonly tools: readonly string[];
|
|
30
|
-
readonly toolkits: readonly string[];
|
|
31
|
-
} | {
|
|
32
|
-
readonly kind: "byToolkits";
|
|
33
|
-
readonly toolkits: readonly string[];
|
|
34
|
-
} | {
|
|
35
|
-
readonly kind: "empty";
|
|
36
|
-
};
|
|
37
|
-
/** The discriminant tag of a {@link ResolvedScope}. */
|
|
38
|
-
export type ScopeKind = ResolvedScope["kind"];
|
|
39
|
-
/**
|
|
40
|
-
* An immutable builder of connector scope.
|
|
41
|
-
*
|
|
42
|
-
* Construct one with {@link ScopePlanner.create}, narrow it with the fluent
|
|
43
|
-
* mutators, and resolve it with {@link ScopePlanner.plan}. No mutator alters the
|
|
44
|
-
* instance it is called on.
|
|
45
|
-
*/
|
|
46
|
-
export declare class ScopePlanner {
|
|
47
|
-
private readonly toolkits;
|
|
48
|
-
private readonly tools;
|
|
49
|
-
private constructor();
|
|
50
|
-
/** Start from an empty scope — nothing included, nothing pinned. */
|
|
51
|
-
static create(): ScopePlanner;
|
|
52
|
-
/**
|
|
53
|
-
* Add one or more toolkits to the scope. Returns a new planner with those
|
|
54
|
-
* toolkits unioned into the existing set; duplicates and blanks are dropped.
|
|
55
|
-
*/
|
|
56
|
-
include(...toolkits: string[]): ScopePlanner;
|
|
57
|
-
/**
|
|
58
|
-
* Pin the scope to specific tool slugs. Returns a new planner whose tool set is
|
|
59
|
-
* the union of the prior pinned tools and these. Pinned tools take precedence
|
|
60
|
-
* over a bare toolkit list when the scope is resolved.
|
|
61
|
-
*/
|
|
62
|
-
only(...toolNames: string[]): ScopePlanner;
|
|
63
|
-
/** Whether anything at all has been declared. */
|
|
64
|
-
isEmpty(): boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Resolve the accumulated intent into one explicit {@link ResolvedScope}.
|
|
67
|
-
*
|
|
68
|
-
* Pinned tools win: if any were declared, the scope is `byTools` (carrying the
|
|
69
|
-
* included toolkits as context). Otherwise, if toolkits were included, it is
|
|
70
|
-
* `byToolkits`. With nothing declared the scope is `empty` — callers decide
|
|
71
|
-
* whether that is an error in their context.
|
|
72
|
-
*/
|
|
73
|
-
plan(): ResolvedScope;
|
|
74
|
-
}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The {@link SaasGateway} — the stateful façade that assembles the SaaS connector
|
|
3
|
-
* bridge into one runnable object.
|
|
4
|
-
*
|
|
5
|
-
* The `core/` layer is deliberately stateless: a port, a scope planner, a content
|
|
6
|
-
* hash cache, a single remote-tool builder, a declarative control-tool table. The
|
|
7
|
-
* `render/` layer is pure. What was missing was the thing that *owns state* and
|
|
8
|
-
* wires those pieces together: a live {@link ToolRegistry} that hydrated remote
|
|
9
|
-
* tools are registered into, a {@link ScopePlanner} that records what is in scope,
|
|
10
|
-
* a {@link HashCache} that dedupes repeated `enableToolkit` work by content hash,
|
|
11
|
-
* and the {@link CONNECT_RULES}-driven connection driver. That is this gateway.
|
|
12
|
-
*
|
|
13
|
-
* It exposes three tool surfaces and the verbs the control tools delegate to:
|
|
14
|
-
*
|
|
15
|
-
* - {@link SaasGateway.controlToolBox} — just the four control tools
|
|
16
|
-
* (`saas_enable` / `saas_execute` / `saas_connect` / `saas_status`), the surface
|
|
17
|
-
* an agent starts with before any toolkit is hydrated.
|
|
18
|
-
* - {@link SaasGateway.enableToolkit} — list a toolkit's remote operations, wrap
|
|
19
|
-
* each into a native {@link DefinedTool} via the core builder, register them into
|
|
20
|
-
* the live registry, and content-hash-cache the resulting defs so a second enable
|
|
21
|
-
* of the same shape is a no-op that returns the very same tools.
|
|
22
|
-
* - {@link SaasGateway.toolBox} — the control tools plus every remote tool hydrated
|
|
23
|
-
* so far, the surface to hand the model once toolkits are live.
|
|
24
|
-
*
|
|
25
|
-
* Nothing here imports the vendor SDK: the gateway depends only on the
|
|
26
|
-
* {@link SaasBackend} port. {@link createComposioGateway} is the one convenience
|
|
27
|
-
* that pairs this gateway with the real Composio adapter.
|
|
28
|
-
*/
|
|
29
|
-
import type { DefinedTool, ToolResult } from "../../capabilities";
|
|
30
|
-
import type { ToolBox } from "../../runtime/contract";
|
|
31
|
-
import { type SaasBackend, type ConnectedAccount } from "./core/index";
|
|
32
|
-
import { type AwaitOptions } from "./control/connect";
|
|
33
|
-
/**
|
|
34
|
-
* The outcome of hydrating a toolkit, returned by {@link SaasGateway.enable} and
|
|
35
|
-
* rendered by the `saas_enable` control tool. `hydrated` is the model-facing names
|
|
36
|
-
* of the tools now callable; `tools` are the {@link DefinedTool}s themselves.
|
|
37
|
-
*/
|
|
38
|
-
export interface EnableReport {
|
|
39
|
-
/** The toolkit that was hydrated. */
|
|
40
|
-
readonly toolkit: string;
|
|
41
|
-
/** The model-facing names of the now-callable remote tools. */
|
|
42
|
-
readonly hydrated: readonly string[];
|
|
43
|
-
/** The hydrated tool objects (same identities a second cached enable returns). */
|
|
44
|
-
readonly tools: readonly DefinedTool[];
|
|
45
|
-
/** True when this enable was served entirely from the content-hash cache. */
|
|
46
|
-
readonly cached: boolean;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* The outcome of driving a connection flow, returned by {@link SaasGateway.connect}
|
|
50
|
-
* and rendered by the `saas_connect` control tool. `action` mirrors the terminal
|
|
51
|
-
* {@link ConnectOutcome} the rule-table driver settled on.
|
|
52
|
-
*/
|
|
53
|
-
export interface ConnectReport {
|
|
54
|
-
/** The toolkit the connection targeted. */
|
|
55
|
-
readonly toolkit: string;
|
|
56
|
-
/** The terminal disposition of the attempt. */
|
|
57
|
-
readonly action: "done" | "await-auth" | "expired" | "failed";
|
|
58
|
-
/** The connection request id that was driven. */
|
|
59
|
-
readonly requestId: string;
|
|
60
|
-
/** The authorization URL to surface, when the user still has to act. */
|
|
61
|
-
readonly authUrl?: string;
|
|
62
|
-
/** The connected-account id, once the link went active. */
|
|
63
|
-
readonly accountId?: string;
|
|
64
|
-
/** A human-readable failure reason when `action` is `"failed"`. */
|
|
65
|
-
readonly reason?: string;
|
|
66
|
-
}
|
|
67
|
-
/** A point-in-time snapshot of the bridge's connection + scope state. */
|
|
68
|
-
export interface StatusReport {
|
|
69
|
-
/** The user's connected accounts, as the backend reports them. */
|
|
70
|
-
readonly accounts: readonly ConnectedAccount[];
|
|
71
|
-
/** The model-facing names of every remote tool currently in scope. */
|
|
72
|
-
readonly enabledTools: readonly string[];
|
|
73
|
-
}
|
|
74
|
-
/** Tuning knobs for {@link createSaasGateway}. */
|
|
75
|
-
export interface SaasGatewayOptions {
|
|
76
|
-
/** Pin all remote execution to one connected account; omit to let the backend pick. */
|
|
77
|
-
readonly accountId?: string;
|
|
78
|
-
/** Connection-driver pacing/bounding, forwarded to {@link initiateAndAwait}. */
|
|
79
|
-
readonly connect?: Pick<AwaitOptions, "pollIntervalMs" | "maxPolls" | "sleep">;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* The stateful façade over the SaaS connector bridge.
|
|
83
|
-
*
|
|
84
|
-
* The verbs ({@link SaasGateway.enable}, {@link SaasGateway.execute},
|
|
85
|
-
* {@link SaasGateway.connect}, {@link SaasGateway.status}) are what the control
|
|
86
|
-
* tools delegate to; the three `*ToolBox` / `enableToolkit` methods are the
|
|
87
|
-
* assembly surface a host wires into an agent session.
|
|
88
|
-
*/
|
|
89
|
-
export interface SaasGateway {
|
|
90
|
-
/** The backend port this gateway drives. */
|
|
91
|
-
readonly backend: SaasBackend;
|
|
92
|
-
/** A {@link ToolBox} of just the four control tools. */
|
|
93
|
-
controlToolBox(): ToolBox;
|
|
94
|
-
/** A {@link ToolBox} of the control tools plus every hydrated remote tool. */
|
|
95
|
-
toolBox(): ToolBox;
|
|
96
|
-
/**
|
|
97
|
-
* Hydrate a toolkit's remote operations into the live registry and return the
|
|
98
|
-
* minted tools. Content-hash-cached: a second call with the same shape returns
|
|
99
|
-
* the identical tool defs without re-listing or re-registering.
|
|
100
|
-
*/
|
|
101
|
-
enableToolkit(name: string, only?: readonly string[]): Promise<DefinedTool[]>;
|
|
102
|
-
/** The verb behind `saas_enable`: hydrate a toolkit and report on it. */
|
|
103
|
-
enable(toolkit: string, only?: readonly string[]): Promise<EnableReport>;
|
|
104
|
-
/** The verb behind `saas_execute`: run one remote operation directly by slug. */
|
|
105
|
-
execute(tool: string, args: unknown, accountId?: string): Promise<ToolResult>;
|
|
106
|
-
/** The verb behind `saas_connect`: drive an authorization flow to a terminal state. */
|
|
107
|
-
connect(toolkit: string, opts?: {
|
|
108
|
-
callbackUrl?: string;
|
|
109
|
-
authConfigId?: string;
|
|
110
|
-
}): Promise<ConnectReport>;
|
|
111
|
-
/** The verb behind `saas_status`: the current connection + scope picture. */
|
|
112
|
-
status(): Promise<StatusReport>;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Assemble a {@link SaasGateway} over a {@link SaasBackend}.
|
|
116
|
-
*
|
|
117
|
-
* The gateway owns a fresh {@link ScopePlanner}-driven scope, a live
|
|
118
|
-
* {@link ToolRegistry}, and the content-hash enable cache from the moment it is
|
|
119
|
-
* built; the four control tools are registered immediately so
|
|
120
|
-
* {@link SaasGateway.controlToolBox} is usable before any toolkit is hydrated.
|
|
121
|
-
*/
|
|
122
|
-
export declare function createSaasGateway(backend: SaasBackend, opts?: SaasGatewayOptions): SaasGateway;
|
|
123
|
-
/**
|
|
124
|
-
* Convenience: assemble a {@link SaasGateway} wired to the real Composio adapter.
|
|
125
|
-
*
|
|
126
|
-
* This is the one place the gateway touches the vendor seam, and it does so only
|
|
127
|
-
* transitively — {@link createComposioBackend} is the lone `@composio/core`
|
|
128
|
-
* importer. Hand it an API key and the returned gateway is ready to enable
|
|
129
|
-
* toolkits against the live catalog.
|
|
130
|
-
*/
|
|
131
|
-
export declare function createComposioGateway(opts: {
|
|
132
|
-
apiKey: string;
|
|
133
|
-
}): SaasGateway;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Human-readable text rendering for the SaaS bridge's discovery and linking views.
|
|
3
|
-
*
|
|
4
|
-
* Where {@link "./summarizers"} answers "what did *one* result say in a line", this
|
|
5
|
-
* module answers "how do I show a *list* of remote tools, or the current connection
|
|
6
|
-
* picture, as a readable block". These are the formatters the control tools and the
|
|
7
|
-
* gateway reach for when they want prose rather than raw JSON — a toolkit roster, an
|
|
8
|
-
* operation catalog, a connected-account summary, a freshly opened link request.
|
|
9
|
-
*
|
|
10
|
-
* Everything here is pure: data in, string out, no I/O and no backend. Each function
|
|
11
|
-
* returns a single text block (lines joined by `\n`) so callers can drop it straight
|
|
12
|
-
* into a `{ kind: "text", text }` content block. The formatting is deliberately
|
|
13
|
-
* plain — aligned-ish lists and short headers — so it reads well both in a terminal
|
|
14
|
-
* and when handed back to the model.
|
|
15
|
-
*/
|
|
16
|
-
import type { ToolkitInfo, RemoteTool, ConnectedAccount, ConnectionRequest, ConnectionState } from "../core/port";
|
|
17
|
-
/**
|
|
18
|
-
* Render the connectable-toolkit roster.
|
|
19
|
-
*
|
|
20
|
-
* One line per toolkit: a connection mark when the backend reported `connected`,
|
|
21
|
-
* the slug, the human name, and a clipped description. An empty catalog renders a
|
|
22
|
-
* single explanatory line rather than a bare header.
|
|
23
|
-
*/
|
|
24
|
-
export declare function formatToolkitList(toolkits: readonly ToolkitInfo[]): string;
|
|
25
|
-
/**
|
|
26
|
-
* Render the operations one toolkit exposes.
|
|
27
|
-
*
|
|
28
|
-
* One line per operation: its invocation slug and a clipped description. The header
|
|
29
|
-
* names the toolkit (taken from the first entry) so the block is self-describing.
|
|
30
|
-
*/
|
|
31
|
-
export declare function formatToolList(tools: readonly RemoteTool[]): string;
|
|
32
|
-
/**
|
|
33
|
-
* Render the user's connected accounts.
|
|
34
|
-
*
|
|
35
|
-
* One line per account: its normalized status, the toolkit it links, its id, and the
|
|
36
|
-
* last-updated timestamp when the backend supplied one. An empty list renders a
|
|
37
|
-
* single line inviting a connect flow.
|
|
38
|
-
*/
|
|
39
|
-
export declare function formatConnectedAccounts(accounts: readonly ConnectedAccount[]): string;
|
|
40
|
-
/**
|
|
41
|
-
* Render a freshly opened connection request.
|
|
42
|
-
*
|
|
43
|
-
* Surfaces the actionable bit first: an `authUrl` to visit when one is present, an
|
|
44
|
-
* "already active" note when it is, or the raw status otherwise. The request id is
|
|
45
|
-
* always shown so the user can poll it via saas.status.
|
|
46
|
-
*/
|
|
47
|
-
export declare function formatConnectionRequest(request: ConnectionRequest): string;
|
|
48
|
-
/**
|
|
49
|
-
* Render a polled connection-request snapshot.
|
|
50
|
-
*
|
|
51
|
-
* Shows the request's current status and, depending on where it is, either the
|
|
52
|
-
* linked account id (once active) or a still-pending authorization URL.
|
|
53
|
-
*/
|
|
54
|
-
export declare function formatConnectionState(state: ConnectionState): string;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The render layer of the SaaS connector bridge — public surface.
|
|
3
|
-
*
|
|
4
|
-
* This barrel gathers the two presentation concerns of the bridge so callers can
|
|
5
|
-
* pull either from one place:
|
|
6
|
-
*
|
|
7
|
-
* - **Summarization** ({@link "./summarizers"}) — the pluggable {@link SUMMARIZERS}
|
|
8
|
-
* registry and {@link summarizeResult}, which fold one operation's
|
|
9
|
-
* {@link RemoteResult} into a single dedupe-aware line.
|
|
10
|
-
* - **Formatting** ({@link "./format"}) — the pure functions that render a toolkit
|
|
11
|
-
* roster, an operation catalog, or the connection picture into readable text
|
|
12
|
-
* blocks.
|
|
13
|
-
*
|
|
14
|
-
* Nothing here touches the vendor SDK; everything reads the bridge's own `core/`
|
|
15
|
-
* vocabulary and returns plain strings.
|
|
16
|
-
*/
|
|
17
|
-
export { SUMMARIZERS, summarizeResult, defaultSummarizer, toolkitOf, } from "./summarizers";
|
|
18
|
-
export type { Summarizer } from "./summarizers";
|
|
19
|
-
export { formatToolkitList, formatToolList, formatConnectedAccounts, formatConnectionRequest, formatConnectionState, } from "./format";
|