@tencent-ai/agent-sdk 0.0.33 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -7
- package/cli/CHANGELOG.md +2418 -0
- package/cli/LICENSE.txt +19 -0
- package/cli/README.md +26 -0
- package/cli/bin/codebuddy +39 -0
- package/cli/dist/codebuddy.js +20 -0
- package/cli/package.json +44 -0
- package/cli/product.cloudhosted.json +242 -0
- package/cli/product.internal.json +244 -0
- package/cli/product.ioa.json +467 -0
- package/cli/product.json +948 -0
- package/cli/product.selfhosted.json +196 -0
- package/cli/vendor/ripgrep/COPYING +3 -0
- package/cli/vendor/ripgrep/arm64-darwin/rg +0 -0
- package/cli/vendor/ripgrep/arm64-darwin/ripgrep.node +0 -0
- package/cli/vendor/ripgrep/arm64-linux/rg +0 -0
- package/cli/vendor/ripgrep/arm64-linux/ripgrep.node +0 -0
- package/cli/vendor/ripgrep/x64-darwin/rg +0 -0
- package/cli/vendor/ripgrep/x64-darwin/ripgrep.node +0 -0
- package/cli/vendor/ripgrep/x64-linux/rg +0 -0
- package/cli/vendor/ripgrep/x64-linux/ripgrep.node +0 -0
- package/cli/vendor/ripgrep/x64-win32/rg.exe +0 -0
- package/cli/vendor/ripgrep/x64-win32/ripgrep.node +0 -0
- package/lib/errors.d.ts +10 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +17 -0
- package/lib/errors.js.map +1 -0
- package/lib/index.d.ts +36 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +40 -0
- package/lib/index.js.map +1 -0
- package/lib/package.spec.js +3 -2
- package/lib/package.spec.js.map +1 -1
- package/lib/query.d.ts +46 -0
- package/lib/query.d.ts.map +1 -0
- package/lib/query.js +270 -0
- package/lib/query.js.map +1 -0
- package/lib/session.d.ts +53 -0
- package/lib/session.d.ts.map +1 -0
- package/lib/session.js +163 -0
- package/lib/session.js.map +1 -0
- package/lib/transport/index.d.ts +104 -0
- package/lib/transport/index.d.ts.map +1 -0
- package/lib/transport/index.js +20 -0
- package/lib/transport/index.js.map +1 -0
- package/lib/transport/process-transport.d.ts +65 -0
- package/lib/transport/process-transport.d.ts.map +1 -0
- package/lib/transport/process-transport.js +380 -0
- package/lib/transport/process-transport.js.map +1 -0
- package/lib/types.d.ts +603 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +58 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/cli-resolver.d.ts +36 -0
- package/lib/utils/cli-resolver.d.ts.map +1 -0
- package/lib/utils/cli-resolver.js +123 -0
- package/lib/utils/cli-resolver.js.map +1 -0
- package/lib/utils/env-utils.d.ts +9 -0
- package/lib/utils/env-utils.d.ts.map +1 -0
- package/lib/utils/env-utils.js +19 -0
- package/lib/utils/env-utils.js.map +1 -0
- package/lib/utils/index.d.ts +8 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +17 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/process.d.ts +8 -0
- package/lib/utils/process.d.ts.map +1 -0
- package/lib/utils/process.js +16 -0
- package/lib/utils/process.js.map +1 -0
- package/lib/utils/stream.d.ts +24 -0
- package/lib/utils/stream.d.ts.map +1 -0
- package/lib/utils/stream.js +85 -0
- package/lib/utils/stream.js.map +1 -0
- package/package.json +21 -17
- package/dist/952.agent-sdk.js +0 -1
- package/dist/agent-sdk.js +0 -7
- package/lib/common/application-utils.d.ts +0 -5
- package/lib/common/application-utils.d.ts.map +0 -1
- package/lib/common/application-utils.js +0 -23
- package/lib/common/application-utils.js.map +0 -1
- package/lib/common/component-registry.d.ts +0 -10
- package/lib/common/component-registry.d.ts.map +0 -1
- package/lib/common/component-registry.js +0 -50
- package/lib/common/component-registry.js.map +0 -1
- package/lib/common/index.d.ts +0 -5
- package/lib/common/index.d.ts.map +0 -1
- package/lib/common/index.js +0 -21
- package/lib/common/index.js.map +0 -1
- package/lib/common/services/agent.d.ts +0 -12
- package/lib/common/services/agent.d.ts.map +0 -1
- package/lib/common/services/agent.js +0 -28
- package/lib/common/services/agent.js.map +0 -1
- package/lib/common/services/auth.d.ts +0 -59
- package/lib/common/services/auth.d.ts.map +0 -1
- package/lib/common/services/auth.js +0 -91
- package/lib/common/services/auth.js.map +0 -1
- package/lib/common/services/codebase.d.ts +0 -44
- package/lib/common/services/codebase.d.ts.map +0 -1
- package/lib/common/services/codebase.js +0 -87
- package/lib/common/services/codebase.js.map +0 -1
- package/lib/common/services/event.d.ts +0 -8
- package/lib/common/services/event.d.ts.map +0 -1
- package/lib/common/services/event.js +0 -18
- package/lib/common/services/event.js.map +0 -1
- package/lib/common/services/filepath.d.ts +0 -7
- package/lib/common/services/filepath.d.ts.map +0 -1
- package/lib/common/services/filepath.js +0 -16
- package/lib/common/services/filepath.js.map +0 -1
- package/lib/common/services/http.d.ts +0 -5
- package/lib/common/services/http.d.ts.map +0 -1
- package/lib/common/services/http.js +0 -12
- package/lib/common/services/http.js.map +0 -1
- package/lib/common/services/index.d.ts +0 -10
- package/lib/common/services/index.d.ts.map +0 -1
- package/lib/common/services/index.js +0 -26
- package/lib/common/services/index.js.map +0 -1
- package/lib/common/services/logger.d.ts +0 -7
- package/lib/common/services/logger.d.ts.map +0 -1
- package/lib/common/services/logger.js +0 -17
- package/lib/common/services/logger.js.map +0 -1
- package/lib/common/services/product.d.ts +0 -12
- package/lib/common/services/product.d.ts.map +0 -1
- package/lib/common/services/product.js +0 -29
- package/lib/common/services/product.js.map +0 -1
- package/lib/common/services/storage.d.ts +0 -7
- package/lib/common/services/storage.d.ts.map +0 -1
- package/lib/common/services/storage.js +0 -17
- package/lib/common/services/storage.js.map +0 -1
- package/lib/common/services/tracing.d.ts +0 -10
- package/lib/common/services/tracing.d.ts.map +0 -1
- package/lib/common/services/tracing.js +0 -29
- package/lib/common/services/tracing.js.map +0 -1
- package/lib/common/types/agents/agent.d.ts +0 -49
- package/lib/common/types/agents/agent.d.ts.map +0 -1
- package/lib/common/types/agents/agent.js +0 -9
- package/lib/common/types/agents/agent.js.map +0 -1
- package/lib/common/types/agents/ai.d.ts +0 -96
- package/lib/common/types/agents/ai.d.ts.map +0 -1
- package/lib/common/types/agents/ai.js +0 -3
- package/lib/common/types/agents/ai.js.map +0 -1
- package/lib/common/types/agents/completion.d.ts +0 -192
- package/lib/common/types/agents/completion.d.ts.map +0 -1
- package/lib/common/types/agents/completion.js +0 -4
- package/lib/common/types/agents/completion.js.map +0 -1
- package/lib/common/types/agents/conversation-manager.d.ts +0 -256
- package/lib/common/types/agents/conversation-manager.d.ts.map +0 -1
- package/lib/common/types/agents/conversation-manager.js +0 -3
- package/lib/common/types/agents/conversation-manager.js.map +0 -1
- package/lib/common/types/agents/craft-history.d.ts +0 -111
- package/lib/common/types/agents/craft-history.d.ts.map +0 -1
- package/lib/common/types/agents/craft-history.js +0 -3
- package/lib/common/types/agents/craft-history.js.map +0 -1
- package/lib/common/types/agents/craft.d.ts +0 -17
- package/lib/common/types/agents/craft.d.ts.map +0 -1
- package/lib/common/types/agents/craft.js +0 -3
- package/lib/common/types/agents/craft.js.map +0 -1
- package/lib/common/types/agents/file-tree.d.ts +0 -169
- package/lib/common/types/agents/file-tree.d.ts.map +0 -1
- package/lib/common/types/agents/file-tree.js +0 -17
- package/lib/common/types/agents/file-tree.js.map +0 -1
- package/lib/common/types/agents/index.d.ts +0 -10
- package/lib/common/types/agents/index.d.ts.map +0 -1
- package/lib/common/types/agents/index.js +0 -26
- package/lib/common/types/agents/index.js.map +0 -1
- package/lib/common/types/agents/run.d.ts +0 -133
- package/lib/common/types/agents/run.d.ts.map +0 -1
- package/lib/common/types/agents/run.js +0 -27
- package/lib/common/types/agents/run.js.map +0 -1
- package/lib/common/types/agents/tools.d.ts +0 -343
- package/lib/common/types/agents/tools.d.ts.map +0 -1
- package/lib/common/types/agents/tools.js +0 -67
- package/lib/common/types/agents/tools.js.map +0 -1
- package/lib/common/types/agents/user-reference.d.ts +0 -78
- package/lib/common/types/agents/user-reference.d.ts.map +0 -1
- package/lib/common/types/agents/user-reference.js +0 -3
- package/lib/common/types/agents/user-reference.js.map +0 -1
- package/lib/common/types/auth.d.ts +0 -73
- package/lib/common/types/auth.d.ts.map +0 -1
- package/lib/common/types/auth.js +0 -3
- package/lib/common/types/auth.js.map +0 -1
- package/lib/common/types/client-info.d.ts +0 -47
- package/lib/common/types/client-info.d.ts.map +0 -1
- package/lib/common/types/client-info.js +0 -3
- package/lib/common/types/client-info.js.map +0 -1
- package/lib/common/types/codebase.d.ts +0 -69
- package/lib/common/types/codebase.d.ts.map +0 -1
- package/lib/common/types/codebase.js +0 -3
- package/lib/common/types/codebase.js.map +0 -1
- package/lib/common/types/event/activity.d.ts +0 -5
- package/lib/common/types/event/activity.d.ts.map +0 -1
- package/lib/common/types/event/activity.js +0 -3
- package/lib/common/types/event/activity.js.map +0 -1
- package/lib/common/types/event/authentication.d.ts +0 -14
- package/lib/common/types/event/authentication.d.ts.map +0 -1
- package/lib/common/types/event/authentication.js +0 -9
- package/lib/common/types/event/authentication.js.map +0 -1
- package/lib/common/types/event/chat.d.ts +0 -48
- package/lib/common/types/event/chat.d.ts.map +0 -1
- package/lib/common/types/event/chat.js +0 -3
- package/lib/common/types/event/chat.js.map +0 -1
- package/lib/common/types/event/check-point.d.ts +0 -13
- package/lib/common/types/event/check-point.d.ts.map +0 -1
- package/lib/common/types/event/check-point.js +0 -3
- package/lib/common/types/event/check-point.js.map +0 -1
- package/lib/common/types/event/code.d.ts +0 -22
- package/lib/common/types/event/code.d.ts.map +0 -1
- package/lib/common/types/event/code.js +0 -14
- package/lib/common/types/event/code.js.map +0 -1
- package/lib/common/types/event/commit-message.d.ts +0 -25
- package/lib/common/types/event/commit-message.d.ts.map +0 -1
- package/lib/common/types/event/commit-message.js +0 -3
- package/lib/common/types/event/commit-message.js.map +0 -1
- package/lib/common/types/event/completion.d.ts +0 -313
- package/lib/common/types/event/completion.d.ts.map +0 -1
- package/lib/common/types/event/completion.js +0 -38
- package/lib/common/types/event/completion.js.map +0 -1
- package/lib/common/types/event/craft.d.ts +0 -256
- package/lib/common/types/event/craft.d.ts.map +0 -1
- package/lib/common/types/event/craft.js +0 -3
- package/lib/common/types/event/craft.js.map +0 -1
- package/lib/common/types/event/document.d.ts +0 -42
- package/lib/common/types/event/document.d.ts.map +0 -1
- package/lib/common/types/event/document.js +0 -3
- package/lib/common/types/event/document.js.map +0 -1
- package/lib/common/types/event/element.d.ts +0 -11
- package/lib/common/types/event/element.d.ts.map +0 -1
- package/lib/common/types/event/element.js +0 -3
- package/lib/common/types/event/element.js.map +0 -1
- package/lib/common/types/event/events.d.ts +0 -131
- package/lib/common/types/event/events.d.ts.map +0 -1
- package/lib/common/types/event/events.js +0 -88
- package/lib/common/types/event/events.js.map +0 -1
- package/lib/common/types/event/ide-event.d.ts +0 -44
- package/lib/common/types/event/ide-event.d.ts.map +0 -1
- package/lib/common/types/event/ide-event.js +0 -15
- package/lib/common/types/event/ide-event.js.map +0 -1
- package/lib/common/types/event/index.d.ts +0 -14
- package/lib/common/types/event/index.d.ts.map +0 -1
- package/lib/common/types/event/index.js +0 -30
- package/lib/common/types/event/index.js.map +0 -1
- package/lib/common/types/event/legacy-completion.d.ts +0 -196
- package/lib/common/types/event/legacy-completion.d.ts.map +0 -1
- package/lib/common/types/event/legacy-completion.js +0 -38
- package/lib/common/types/event/legacy-completion.js.map +0 -1
- package/lib/common/types/event/mcp.d.ts +0 -20
- package/lib/common/types/event/mcp.d.ts.map +0 -1
- package/lib/common/types/event/mcp.js +0 -3
- package/lib/common/types/event/mcp.js.map +0 -1
- package/lib/common/types/event/plugin-status.d.ts +0 -7
- package/lib/common/types/event/plugin-status.d.ts.map +0 -1
- package/lib/common/types/event/plugin-status.js +0 -3
- package/lib/common/types/event/plugin-status.js.map +0 -1
- package/lib/common/types/event/protocol.d.ts +0 -117
- package/lib/common/types/event/protocol.d.ts.map +0 -1
- package/lib/common/types/event/protocol.js +0 -5
- package/lib/common/types/event/protocol.js.map +0 -1
- package/lib/common/types/filepath.d.ts +0 -35
- package/lib/common/types/filepath.d.ts.map +0 -1
- package/lib/common/types/filepath.js +0 -3
- package/lib/common/types/filepath.js.map +0 -1
- package/lib/common/types/http.d.ts +0 -3
- package/lib/common/types/http.d.ts.map +0 -1
- package/lib/common/types/http.js +0 -3
- package/lib/common/types/http.js.map +0 -1
- package/lib/common/types/index.d.ts +0 -13
- package/lib/common/types/index.d.ts.map +0 -1
- package/lib/common/types/index.js +0 -29
- package/lib/common/types/index.js.map +0 -1
- package/lib/common/types/local-storage.d.ts +0 -26
- package/lib/common/types/local-storage.d.ts.map +0 -1
- package/lib/common/types/local-storage.js +0 -5
- package/lib/common/types/local-storage.js.map +0 -1
- package/lib/common/types/logger.d.ts +0 -10
- package/lib/common/types/logger.d.ts.map +0 -1
- package/lib/common/types/logger.js +0 -3
- package/lib/common/types/logger.js.map +0 -1
- package/lib/common/types/product/activities.d.ts +0 -5
- package/lib/common/types/product/activities.d.ts.map +0 -1
- package/lib/common/types/product/activities.js +0 -3
- package/lib/common/types/product/activities.js.map +0 -1
- package/lib/common/types/product/agent-tools.d.ts +0 -5
- package/lib/common/types/product/agent-tools.d.ts.map +0 -1
- package/lib/common/types/product/agent-tools.js +0 -3
- package/lib/common/types/product/agent-tools.js.map +0 -1
- package/lib/common/types/product/agent.d.ts +0 -45
- package/lib/common/types/product/agent.d.ts.map +0 -1
- package/lib/common/types/product/agent.js +0 -10
- package/lib/common/types/product/agent.js.map +0 -1
- package/lib/common/types/product/authentication.d.ts +0 -76
- package/lib/common/types/product/authentication.d.ts.map +0 -1
- package/lib/common/types/product/authentication.js +0 -28
- package/lib/common/types/product/authentication.js.map +0 -1
- package/lib/common/types/product/codebase.d.ts +0 -40
- package/lib/common/types/product/codebase.d.ts.map +0 -1
- package/lib/common/types/product/codebase.js +0 -3
- package/lib/common/types/product/codebase.js.map +0 -1
- package/lib/common/types/product/command.d.ts +0 -24
- package/lib/common/types/product/command.d.ts.map +0 -1
- package/lib/common/types/product/command.js +0 -3
- package/lib/common/types/product/command.js.map +0 -1
- package/lib/common/types/product/commit-message.d.ts +0 -7
- package/lib/common/types/product/commit-message.d.ts.map +0 -1
- package/lib/common/types/product/commit-message.js +0 -3
- package/lib/common/types/product/commit-message.js.map +0 -1
- package/lib/common/types/product/completion.d.ts +0 -35
- package/lib/common/types/product/completion.d.ts.map +0 -1
- package/lib/common/types/product/completion.js +0 -3
- package/lib/common/types/product/completion.js.map +0 -1
- package/lib/common/types/product/config.d.ts +0 -6
- package/lib/common/types/product/config.d.ts.map +0 -1
- package/lib/common/types/product/config.js +0 -3
- package/lib/common/types/product/config.js.map +0 -1
- package/lib/common/types/product/features.d.ts +0 -193
- package/lib/common/types/product/features.d.ts.map +0 -1
- package/lib/common/types/product/features.js +0 -198
- package/lib/common/types/product/features.js.map +0 -1
- package/lib/common/types/product/index.d.ts +0 -24
- package/lib/common/types/product/index.d.ts.map +0 -1
- package/lib/common/types/product/index.js +0 -40
- package/lib/common/types/product/index.js.map +0 -1
- package/lib/common/types/product/inline-chat.d.ts +0 -15
- package/lib/common/types/product/inline-chat.d.ts.map +0 -1
- package/lib/common/types/product/inline-chat.js +0 -3
- package/lib/common/types/product/inline-chat.js.map +0 -1
- package/lib/common/types/product/instruction.d.ts +0 -10
- package/lib/common/types/product/instruction.d.ts.map +0 -1
- package/lib/common/types/product/instruction.js +0 -8
- package/lib/common/types/product/instruction.js.map +0 -1
- package/lib/common/types/product/knowledge-base.d.ts +0 -16
- package/lib/common/types/product/knowledge-base.d.ts.map +0 -1
- package/lib/common/types/product/knowledge-base.js +0 -3
- package/lib/common/types/product/knowledge-base.js.map +0 -1
- package/lib/common/types/product/language-model.d.ts +0 -42
- package/lib/common/types/product/language-model.d.ts.map +0 -1
- package/lib/common/types/product/language-model.js +0 -3
- package/lib/common/types/product/language-model.js.map +0 -1
- package/lib/common/types/product/links.d.ts +0 -20
- package/lib/common/types/product/links.d.ts.map +0 -1
- package/lib/common/types/product/links.js +0 -3
- package/lib/common/types/product/links.js.map +0 -1
- package/lib/common/types/product/log.d.ts +0 -39
- package/lib/common/types/product/log.d.ts.map +0 -1
- package/lib/common/types/product/log.js +0 -12
- package/lib/common/types/product/log.js.map +0 -1
- package/lib/common/types/product/product-provider.d.ts +0 -12
- package/lib/common/types/product/product-provider.d.ts.map +0 -1
- package/lib/common/types/product/product-provider.js +0 -5
- package/lib/common/types/product/product-provider.js.map +0 -1
- package/lib/common/types/product/product.d.ts +0 -203
- package/lib/common/types/product/product.d.ts.map +0 -1
- package/lib/common/types/product/product.js +0 -19
- package/lib/common/types/product/product.js.map +0 -1
- package/lib/common/types/product/prompt-template.d.ts +0 -6
- package/lib/common/types/product/prompt-template.d.ts.map +0 -1
- package/lib/common/types/product/prompt-template.js +0 -3
- package/lib/common/types/product/prompt-template.js.map +0 -1
- package/lib/common/types/product/remote-agent.d.ts +0 -20
- package/lib/common/types/product/remote-agent.d.ts.map +0 -1
- package/lib/common/types/product/remote-agent.js +0 -3
- package/lib/common/types/product/remote-agent.js.map +0 -1
- package/lib/common/types/product/replacement.d.ts +0 -38
- package/lib/common/types/product/replacement.d.ts.map +0 -1
- package/lib/common/types/product/replacement.js +0 -18
- package/lib/common/types/product/replacement.js.map +0 -1
- package/lib/common/types/product/telemetry.d.ts +0 -22
- package/lib/common/types/product/telemetry.d.ts.map +0 -1
- package/lib/common/types/product/telemetry.js +0 -3
- package/lib/common/types/product/telemetry.js.map +0 -1
- package/lib/common/types/product/updates.d.ts +0 -17
- package/lib/common/types/product/updates.d.ts.map +0 -1
- package/lib/common/types/product/updates.js +0 -8
- package/lib/common/types/product/updates.js.map +0 -1
- package/lib/common/types/protocol.d.ts +0 -31
- package/lib/common/types/protocol.d.ts.map +0 -1
- package/lib/common/types/protocol.js +0 -10
- package/lib/common/types/protocol.js.map +0 -1
- package/lib/common/types/tracing.d.ts +0 -74
- package/lib/common/types/tracing.d.ts.map +0 -1
- package/lib/common/types/tracing.js +0 -3
- package/lib/common/types/tracing.js.map +0 -1
- package/lib/common/utils.d.ts +0 -3
- package/lib/common/utils.d.ts.map +0 -1
- package/lib/common/utils.js +0 -10
- package/lib/common/utils.js.map +0 -1
package/lib/query.js
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Query Implementation
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Query = void 0;
|
|
7
|
+
exports.query = query;
|
|
8
|
+
const transport_1 = require("./transport");
|
|
9
|
+
const types_1 = require("./types");
|
|
10
|
+
/**
|
|
11
|
+
* Create a query for interacting with the agent.
|
|
12
|
+
*/
|
|
13
|
+
function query(params) {
|
|
14
|
+
return new Query(params.prompt, params.options);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Query class - an AsyncGenerator that yields messages.
|
|
18
|
+
*/
|
|
19
|
+
class Query {
|
|
20
|
+
constructor(prompt, options) {
|
|
21
|
+
var _a;
|
|
22
|
+
this.prompt = prompt;
|
|
23
|
+
this.options = options;
|
|
24
|
+
this.initialized = false;
|
|
25
|
+
this.hookCallbacks = new Map();
|
|
26
|
+
this.iterator = null;
|
|
27
|
+
this.transport = (0, transport_1.createTransport)({
|
|
28
|
+
executablePath: options === null || options === void 0 ? void 0 : options.pathToClaudeCodeExecutable,
|
|
29
|
+
cwd: options === null || options === void 0 ? void 0 : options.cwd,
|
|
30
|
+
env: options === null || options === void 0 ? void 0 : options.env,
|
|
31
|
+
permissionMode: options === null || options === void 0 ? void 0 : options.permissionMode,
|
|
32
|
+
// Model options
|
|
33
|
+
model: options === null || options === void 0 ? void 0 : options.model,
|
|
34
|
+
fallbackModel: options === null || options === void 0 ? void 0 : options.fallbackModel,
|
|
35
|
+
maxTurns: options === null || options === void 0 ? void 0 : options.maxTurns,
|
|
36
|
+
// Tool options
|
|
37
|
+
allowedTools: options === null || options === void 0 ? void 0 : options.allowedTools,
|
|
38
|
+
disallowedTools: options === null || options === void 0 ? void 0 : options.disallowedTools,
|
|
39
|
+
// Session options
|
|
40
|
+
continue: options === null || options === void 0 ? void 0 : options.continue,
|
|
41
|
+
resume: options === null || options === void 0 ? void 0 : options.resume,
|
|
42
|
+
forkSession: options === null || options === void 0 ? void 0 : options.forkSession,
|
|
43
|
+
// MCP options
|
|
44
|
+
mcpServers: options === null || options === void 0 ? void 0 : options.mcpServers,
|
|
45
|
+
strictMcpConfig: options === null || options === void 0 ? void 0 : options.strictMcpConfig,
|
|
46
|
+
// Settings
|
|
47
|
+
settingSources: options === null || options === void 0 ? void 0 : options.settingSources,
|
|
48
|
+
additionalDirectories: options === null || options === void 0 ? void 0 : options.additionalDirectories,
|
|
49
|
+
// Output options
|
|
50
|
+
includePartialMessages: options === null || options === void 0 ? void 0 : options.includePartialMessages,
|
|
51
|
+
// Extra args
|
|
52
|
+
extraArgs: options === null || options === void 0 ? void 0 : options.extraArgs,
|
|
53
|
+
stderr: options === null || options === void 0 ? void 0 : options.stderr,
|
|
54
|
+
});
|
|
55
|
+
this.abortController = (_a = options === null || options === void 0 ? void 0 : options.abortController) !== null && _a !== void 0 ? _a : new AbortController();
|
|
56
|
+
this.registerHooks(options === null || options === void 0 ? void 0 : options.hooks);
|
|
57
|
+
}
|
|
58
|
+
// ============= AsyncGenerator Implementation =============
|
|
59
|
+
[Symbol.asyncIterator]() {
|
|
60
|
+
if (!this.iterator) {
|
|
61
|
+
this.iterator = this.createIterator();
|
|
62
|
+
}
|
|
63
|
+
return this.iterator;
|
|
64
|
+
}
|
|
65
|
+
async next() {
|
|
66
|
+
return this[Symbol.asyncIterator]().next();
|
|
67
|
+
}
|
|
68
|
+
async return() {
|
|
69
|
+
await this.interrupt();
|
|
70
|
+
return { done: true, value: undefined };
|
|
71
|
+
}
|
|
72
|
+
async throw(e) {
|
|
73
|
+
await this.interrupt();
|
|
74
|
+
throw e;
|
|
75
|
+
}
|
|
76
|
+
// ============= Control Methods =============
|
|
77
|
+
async interrupt() {
|
|
78
|
+
try {
|
|
79
|
+
await this.transport.sendControlRequest({
|
|
80
|
+
subtype: 'interrupt',
|
|
81
|
+
reason: 'User interrupt',
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (_a) {
|
|
85
|
+
// Ignore errors during interrupt
|
|
86
|
+
}
|
|
87
|
+
// Don't close transport - let the iterator continue to receive
|
|
88
|
+
// the result message and close naturally
|
|
89
|
+
}
|
|
90
|
+
async setPermissionMode(mode) {
|
|
91
|
+
await this.transport.sendControlRequest({
|
|
92
|
+
subtype: 'set_permission_mode',
|
|
93
|
+
mode,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async setModel(model) {
|
|
97
|
+
await this.transport.sendControlRequest({
|
|
98
|
+
subtype: 'set_model',
|
|
99
|
+
model,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
async setMaxThinkingTokens(maxThinkingTokens) {
|
|
103
|
+
await this.transport.sendControlRequest({
|
|
104
|
+
subtype: 'set_max_thinking_tokens',
|
|
105
|
+
max_thinking_tokens: maxThinkingTokens,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
// ============= Query Methods =============
|
|
109
|
+
async supportedCommands() {
|
|
110
|
+
var _a;
|
|
111
|
+
const response = await this.transport.sendControlRequest({
|
|
112
|
+
subtype: 'initialize',
|
|
113
|
+
});
|
|
114
|
+
return (_a = response.commands) !== null && _a !== void 0 ? _a : [];
|
|
115
|
+
}
|
|
116
|
+
async supportedModels() {
|
|
117
|
+
var _a;
|
|
118
|
+
const response = await this.transport.sendControlRequest({
|
|
119
|
+
subtype: 'initialize',
|
|
120
|
+
});
|
|
121
|
+
return (_a = response.models) !== null && _a !== void 0 ? _a : [];
|
|
122
|
+
}
|
|
123
|
+
async mcpServerStatus() {
|
|
124
|
+
var _a;
|
|
125
|
+
const response = await this.transport.sendControlRequest({
|
|
126
|
+
subtype: 'mcp_status',
|
|
127
|
+
});
|
|
128
|
+
return (_a = response.mcp_servers) !== null && _a !== void 0 ? _a : [];
|
|
129
|
+
}
|
|
130
|
+
async accountInfo() {
|
|
131
|
+
var _a;
|
|
132
|
+
const response = await this.transport.sendControlRequest({
|
|
133
|
+
subtype: 'initialize',
|
|
134
|
+
});
|
|
135
|
+
return (_a = response.account) !== null && _a !== void 0 ? _a : {};
|
|
136
|
+
}
|
|
137
|
+
async streamInput(stream) {
|
|
138
|
+
for await (const message of stream) {
|
|
139
|
+
this.transport.sendUserMessage(message);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// ============= Private Methods =============
|
|
143
|
+
async *createIterator() {
|
|
144
|
+
var _a;
|
|
145
|
+
try {
|
|
146
|
+
await this.initialize();
|
|
147
|
+
await this.sendPrompt();
|
|
148
|
+
for await (const message of this.transport.messages()) {
|
|
149
|
+
if (this.abortController.signal.aborted) {
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if ((0, types_1.isControlRequest)(message)) {
|
|
153
|
+
await this.handleControlRequest(message);
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
if ((0, types_1.isMessage)(message)) {
|
|
157
|
+
if (message.type === 'stream_event' &&
|
|
158
|
+
!((_a = this.options) === null || _a === void 0 ? void 0 : _a.includePartialMessages)) {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
yield message;
|
|
162
|
+
if (message.type === 'result') {
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
this.transport.close();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async initialize() {
|
|
173
|
+
var _a, _b, _c;
|
|
174
|
+
if (this.initialized) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const systemPrompt = typeof ((_a = this.options) === null || _a === void 0 ? void 0 : _a.systemPrompt) === 'string'
|
|
178
|
+
? this.options.systemPrompt
|
|
179
|
+
: undefined;
|
|
180
|
+
const appendSystemPrompt = typeof ((_b = this.options) === null || _b === void 0 ? void 0 : _b.systemPrompt) === 'object'
|
|
181
|
+
? this.options.systemPrompt.append
|
|
182
|
+
: undefined;
|
|
183
|
+
const initRequest = {
|
|
184
|
+
subtype: 'initialize',
|
|
185
|
+
hooks: this.buildHooksConfig(),
|
|
186
|
+
systemPrompt,
|
|
187
|
+
appendSystemPrompt,
|
|
188
|
+
agents: (_c = this.options) === null || _c === void 0 ? void 0 : _c.agents,
|
|
189
|
+
};
|
|
190
|
+
await this.transport.sendControlRequest(initRequest);
|
|
191
|
+
this.initialized = true;
|
|
192
|
+
}
|
|
193
|
+
async sendPrompt() {
|
|
194
|
+
if (typeof this.prompt === 'string') {
|
|
195
|
+
this.transport.sendUserMessage(this.prompt);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
for await (const message of this.prompt) {
|
|
199
|
+
this.transport.sendUserMessage(message);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
async handleControlRequest(request) {
|
|
204
|
+
const { subtype } = request.request;
|
|
205
|
+
if (subtype === 'hook_callback') {
|
|
206
|
+
await this.handleHookCallback(request);
|
|
207
|
+
}
|
|
208
|
+
else if (subtype === 'can_use_tool') {
|
|
209
|
+
this.transport.sendControlResponse(request.request_id, {
|
|
210
|
+
allowed: false,
|
|
211
|
+
reason: 'Permission denied by SDK',
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
async handleHookCallback(request) {
|
|
216
|
+
const { callback_id, input, tool_use_id } = request.request;
|
|
217
|
+
const callback = this.hookCallbacks.get(callback_id);
|
|
218
|
+
let response = { continue: true };
|
|
219
|
+
if (callback) {
|
|
220
|
+
try {
|
|
221
|
+
response = await callback(input, tool_use_id, { signal: this.abortController.signal });
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
response = {
|
|
225
|
+
continue: false,
|
|
226
|
+
stopReason: error instanceof Error ? error.message : String(error),
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
this.transport.sendControlResponse(request.request_id, response);
|
|
231
|
+
}
|
|
232
|
+
registerHooks(hooks) {
|
|
233
|
+
if (!hooks) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
this.registeredHooks = hooks;
|
|
237
|
+
// Build callback ID mapping for each hook - must match buildHooksConfig
|
|
238
|
+
for (const [event, matchers] of Object.entries(hooks)) {
|
|
239
|
+
if (!matchers) {
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
matchers.forEach((matcher, matcherIndex) => {
|
|
243
|
+
matcher.hooks.forEach((hook, hookIndex) => {
|
|
244
|
+
const callbackId = `hook_${event}_${matcherIndex}_${hookIndex}`;
|
|
245
|
+
this.hookCallbacks.set(callbackId, hook);
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
buildHooksConfig() {
|
|
251
|
+
if (!this.registeredHooks) {
|
|
252
|
+
return undefined;
|
|
253
|
+
}
|
|
254
|
+
const config = {};
|
|
255
|
+
for (const [event, matchers] of Object.entries(this.registeredHooks)) {
|
|
256
|
+
if (!matchers) {
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
const hookEvent = event;
|
|
260
|
+
config[hookEvent] = matchers.map((matcher, matcherIndex) => ({
|
|
261
|
+
matcher: matcher.matcher,
|
|
262
|
+
hookCallbackIds: matcher.hooks.map((_, hookIndex) => `hook_${event}_${matcherIndex}_${hookIndex}`),
|
|
263
|
+
timeout: matcher.timeout,
|
|
264
|
+
}));
|
|
265
|
+
}
|
|
266
|
+
return Object.keys(config).length > 0 ? config : undefined;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
exports.Query = Query;
|
|
270
|
+
//# sourceMappingURL=query.js.map
|
package/lib/query.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAyBH,sBAKC;AA5BD,2CAA8D;AAkB9D,mCAAsD;AAEtD;;GAEG;AACH,SAAgB,KAAK,CAAC,MAGrB;IACG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAa,KAAK;IAOd,YACY,MAA2C,EAC3C,OAAiB;;QADjB,WAAM,GAAN,MAAM,CAAqC;QAC3C,YAAO,GAAP,OAAO,CAAU;QAPrB,gBAAW,GAAG,KAAK,CAAC;QAEpB,kBAAa,GAAgI,IAAI,GAAG,EAAE,CAAC;QACvJ,aAAQ,GAAyC,IAAI,CAAC;QAM1D,IAAI,CAAC,SAAS,GAAG,IAAA,2BAAe,EAAC;YAC7B,cAAc,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,0BAA0B;YACnD,GAAG,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;YACjB,GAAG,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;YACjB,cAAc,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACvC,gBAAgB;YAChB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;YACrB,aAAa,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa;YACrC,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;YAC3B,eAAe;YACf,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;YACnC,eAAe,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe;YACzC,kBAAkB;YAClB,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;YAC3B,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;YACjC,cAAc;YACd,UAAU,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;YAC/B,eAAe,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe;YACzC,WAAW;YACX,cAAc,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACvC,qBAAqB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,qBAAqB;YACrD,iBAAiB;YACjB,sBAAsB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB;YACvD,aAAa;YACb,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;YAC7B,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,IAAI,eAAe,EAAE,CAAC;QACzE,IAAI,CAAC,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,4DAA4D;IAE5D,CAAC,MAAM,CAAC,aAAa,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,CAAQ;QAChB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,CAAC;IACZ,CAAC;IAED,8CAA8C;IAE9C,KAAK,CAAC,SAAS;QACX,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;gBACpC,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE,gBAAgB;aAC3B,CAAC,CAAC;QACP,CAAC;QAAC,WAAM,CAAC;YACL,iCAAiC;QACrC,CAAC;QACD,+DAA+D;QAC/D,yCAAyC;IAC7C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAoB;QACxC,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;YACpC,OAAO,EAAE,qBAAqB;YAC9B,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAc;QACzB,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;YACpC,OAAO,EAAE,WAAW;YACpB,KAAK;SACR,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,iBAAgC;QACvD,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;YACpC,OAAO,EAAE,yBAAyB;YAClC,mBAAmB,EAAE,iBAAiB;SACzC,CAAC,CAAC;IACP,CAAC;IAED,4CAA4C;IAE5C,KAAK,CAAC,iBAAiB;;QACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAgC;YACpF,OAAO,EAAE,YAAY;SACxB,CAAC,CAAC;QACH,OAAO,MAAA,QAAQ,CAAC,QAAQ,mCAAI,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,eAAe;;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAA2B;YAC/E,OAAO,EAAE,YAAY;SACxB,CAAC,CAAC;QACH,OAAO,MAAA,QAAQ,CAAC,MAAM,mCAAI,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,eAAe;;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAsC;YAC1F,OAAO,EAAE,YAAqB;SACjC,CAAC,CAAC;QACH,OAAO,MAAA,QAAQ,CAAC,WAAW,mCAAI,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAAW;;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAA4B;YAChF,OAAO,EAAE,YAAY;SACxB,CAAC,CAAC;QACH,OAAO,MAAA,QAAQ,CAAC,OAAO,mCAAI,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAkC;QAChD,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,8CAA8C;IAEtC,KAAK,CAAC,CAAC,cAAc;;QACzB,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAExB,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACpD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACtC,MAAM;gBACV,CAAC;gBAED,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAyB,CAAC,CAAC;oBAC3D,SAAS;gBACb,CAAC;gBAED,IAAI,IAAA,iBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;oBACrB,IACI,OAAO,CAAC,IAAI,KAAK,cAAc;wBAC/B,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,sBAAsB,CAAA,EACvC,CAAC;wBACC,SAAS;oBACb,CAAC;oBAED,MAAM,OAAO,CAAC;oBAEd,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC5B,MAAM;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU;;QACpB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,CAAA,KAAK,QAAQ;YAC/D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;YAC3B,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,kBAAkB,GAAG,OAAO,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,CAAA,KAAK,QAAQ;YACrE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM;YAClC,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,WAAW,GAA6B;YAC1C,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAC9B,YAAY;YACZ,kBAAkB;YAClB,MAAM,EAAE,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM;SAC/B,CAAC;QAEF,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,UAAU;QACpB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,OAAuB;QACtD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QAEpC,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE;gBACnD,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,0BAA0B;aACrC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAAuB;QACpD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAqC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAErD,IAAI,QAAQ,GAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAElD,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC;gBACD,QAAQ,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,QAAQ,GAAG;oBACP,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBACrE,CAAC;YACN,CAAC;QACL,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,QAAmC,CAAC,CAAC;IAChG,CAAC;IAIO,aAAa,CACjB,KAAyD;QAEzD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO;QACX,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,wEAAwE;QACxE,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,SAAS;YACb,CAAC;YAED,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;gBACvC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;oBACtC,MAAM,UAAU,GAAG,QAAQ,KAAK,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;oBAChE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAsC,EAAE,CAAC;QAErD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,SAAS;YACb,CAAC;YAED,MAAM,SAAS,GAAG,KAAkB,CAAC;YACrC,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;gBACzD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAChD,QAAQ,KAAK,IAAI,YAAY,IAAI,SAAS,EAAE,CAC/C;gBACD,OAAO,EAAE,OAAO,CAAC,OAAO;aAC3B,CAAC,CAAC,CAAC;QACR,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;CACJ;AArSD,sBAqSC"}
|
package/lib/session.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V2 Session API
|
|
3
|
+
*
|
|
4
|
+
* Multi-turn conversation support.
|
|
5
|
+
*/
|
|
6
|
+
import type { Message, UserMessage, ResultMessage, SessionOptions } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Create a new session for multi-turn conversations.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createSession(options: SessionOptions): SessionImpl;
|
|
11
|
+
/**
|
|
12
|
+
* Resume an existing session by ID.
|
|
13
|
+
*/
|
|
14
|
+
export declare function resumeSession(sessionId: string, options: SessionOptions): SessionImpl;
|
|
15
|
+
/**
|
|
16
|
+
* One-shot convenience function for single prompts.
|
|
17
|
+
*/
|
|
18
|
+
export declare function prompt(message: string, options: SessionOptions): Promise<ResultMessage>;
|
|
19
|
+
/**
|
|
20
|
+
* Session class for multi-turn conversations.
|
|
21
|
+
*/
|
|
22
|
+
export declare class SessionImpl {
|
|
23
|
+
private options;
|
|
24
|
+
private transport;
|
|
25
|
+
private _sessionId;
|
|
26
|
+
private initialized;
|
|
27
|
+
private closed;
|
|
28
|
+
private messageIterator;
|
|
29
|
+
constructor(options: SessionOptions, resumeSessionId?: string);
|
|
30
|
+
/**
|
|
31
|
+
* The session ID. Available after receiving the first message.
|
|
32
|
+
*/
|
|
33
|
+
get sessionId(): string;
|
|
34
|
+
/**
|
|
35
|
+
* Send a message to the agent.
|
|
36
|
+
*/
|
|
37
|
+
send(message: string | UserMessage): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Receive messages from the agent.
|
|
40
|
+
*/
|
|
41
|
+
receive(): AsyncGenerator<Message, void>;
|
|
42
|
+
/**
|
|
43
|
+
* Close the session.
|
|
44
|
+
*/
|
|
45
|
+
close(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Async disposal support.
|
|
48
|
+
*/
|
|
49
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
50
|
+
private initialize;
|
|
51
|
+
private handleControlRequest;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,cAAc,EAEjB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,WAAW,CAElE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,WAAW,CAErF;AAED;;GAEG;AACH,wBAAsB,MAAM,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED;;GAEG;AACH,qBAAa,WAAW;IAQhB,OAAO,CAAC,OAAO;IAPnB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAwE;gBAGnF,OAAO,EAAE,cAAc,EAC/B,eAAe,CAAC,EAAE,MAAM;IAU5B;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAKtB;IAED;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxD;;OAEG;IACI,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;IA4C/C;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;YAM9B,UAAU;YAcV,oBAAoB;CAcrC"}
|
package/lib/session.js
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* V2 Session API
|
|
4
|
+
*
|
|
5
|
+
* Multi-turn conversation support.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.SessionImpl = void 0;
|
|
9
|
+
exports.createSession = createSession;
|
|
10
|
+
exports.resumeSession = resumeSession;
|
|
11
|
+
exports.prompt = prompt;
|
|
12
|
+
const transport_1 = require("./transport");
|
|
13
|
+
const types_1 = require("./types");
|
|
14
|
+
/**
|
|
15
|
+
* Create a new session for multi-turn conversations.
|
|
16
|
+
*/
|
|
17
|
+
function createSession(options) {
|
|
18
|
+
return new SessionImpl(options);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resume an existing session by ID.
|
|
22
|
+
*/
|
|
23
|
+
function resumeSession(sessionId, options) {
|
|
24
|
+
return new SessionImpl(options, sessionId);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* One-shot convenience function for single prompts.
|
|
28
|
+
*/
|
|
29
|
+
async function prompt(message, options) {
|
|
30
|
+
const session = createSession(options);
|
|
31
|
+
try {
|
|
32
|
+
await session.send(message);
|
|
33
|
+
for await (const msg of session.receive()) {
|
|
34
|
+
if (msg.type === 'result') {
|
|
35
|
+
return msg;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
throw new Error('No result message received');
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
session.close();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Session class for multi-turn conversations.
|
|
46
|
+
*/
|
|
47
|
+
class SessionImpl {
|
|
48
|
+
constructor(options, resumeSessionId) {
|
|
49
|
+
this.options = options;
|
|
50
|
+
this.initialized = false;
|
|
51
|
+
this.closed = false;
|
|
52
|
+
this.messageIterator = null;
|
|
53
|
+
this.transport = (0, transport_1.createTransport)({
|
|
54
|
+
executablePath: options.pathToClaudeCodeExecutable,
|
|
55
|
+
env: options.env,
|
|
56
|
+
});
|
|
57
|
+
this._sessionId = resumeSessionId !== null && resumeSessionId !== void 0 ? resumeSessionId : '';
|
|
58
|
+
void this.options;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The session ID. Available after receiving the first message.
|
|
62
|
+
*/
|
|
63
|
+
get sessionId() {
|
|
64
|
+
if (!this._sessionId) {
|
|
65
|
+
throw new Error('Session not initialized. sessionId is available after receiving the first message.');
|
|
66
|
+
}
|
|
67
|
+
return this._sessionId;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Send a message to the agent.
|
|
71
|
+
*/
|
|
72
|
+
async send(message) {
|
|
73
|
+
if (this.closed) {
|
|
74
|
+
throw new Error('Session is closed');
|
|
75
|
+
}
|
|
76
|
+
if (!this.initialized) {
|
|
77
|
+
await this.initialize();
|
|
78
|
+
}
|
|
79
|
+
this.transport.sendUserMessage(message);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Receive messages from the agent.
|
|
83
|
+
*/
|
|
84
|
+
async *receive() {
|
|
85
|
+
if (this.closed) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (!this.initialized) {
|
|
89
|
+
await this.initialize();
|
|
90
|
+
}
|
|
91
|
+
// Reuse the same iterator across multiple receive() calls
|
|
92
|
+
if (!this.messageIterator) {
|
|
93
|
+
this.messageIterator = this.transport.messages();
|
|
94
|
+
}
|
|
95
|
+
while (true) {
|
|
96
|
+
const { value: message, done } = await this.messageIterator.next();
|
|
97
|
+
if (done || this.closed) {
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
// Handle control requests
|
|
101
|
+
if ((0, types_1.isControlRequest)(message)) {
|
|
102
|
+
await this.handleControlRequest(message);
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
// Yield messages
|
|
106
|
+
if ((0, types_1.isMessage)(message)) {
|
|
107
|
+
// Extract session ID from first message
|
|
108
|
+
if (!this._sessionId && 'session_id' in message) {
|
|
109
|
+
this._sessionId = message.session_id;
|
|
110
|
+
}
|
|
111
|
+
yield message;
|
|
112
|
+
// Stop on result message (end of turn)
|
|
113
|
+
if (message.type === 'result') {
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Close the session.
|
|
121
|
+
*/
|
|
122
|
+
close() {
|
|
123
|
+
if (this.closed) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
this.closed = true;
|
|
127
|
+
this.transport.close();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Async disposal support.
|
|
131
|
+
*/
|
|
132
|
+
async [Symbol.asyncDispose]() {
|
|
133
|
+
this.close();
|
|
134
|
+
}
|
|
135
|
+
// ============= Private Methods =============
|
|
136
|
+
async initialize() {
|
|
137
|
+
if (this.initialized) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
await this.transport.sendControlRequest({
|
|
141
|
+
subtype: 'initialize',
|
|
142
|
+
systemPrompt: undefined,
|
|
143
|
+
appendSystemPrompt: undefined,
|
|
144
|
+
});
|
|
145
|
+
this.initialized = true;
|
|
146
|
+
}
|
|
147
|
+
async handleControlRequest(request) {
|
|
148
|
+
const { subtype } = request.request;
|
|
149
|
+
if (subtype === 'hook_callback') {
|
|
150
|
+
// Default: continue
|
|
151
|
+
this.transport.sendControlResponse(request.request_id, { continue: true });
|
|
152
|
+
}
|
|
153
|
+
else if (subtype === 'can_use_tool') {
|
|
154
|
+
// Default: deny
|
|
155
|
+
this.transport.sendControlResponse(request.request_id, {
|
|
156
|
+
allowed: false,
|
|
157
|
+
reason: 'Permission denied by SDK',
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
exports.SessionImpl = SessionImpl;
|
|
163
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport Layer
|
|
3
|
+
*
|
|
4
|
+
* Abstract interface for communication with CLI.
|
|
5
|
+
*/
|
|
6
|
+
import type { Message, UserMessage, ControlRequest, ControlRequestPayload } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Transport interface - abstraction for CLI communication.
|
|
9
|
+
*/
|
|
10
|
+
export interface Transport {
|
|
11
|
+
/**
|
|
12
|
+
* Start the transport.
|
|
13
|
+
*/
|
|
14
|
+
start(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Async generator for incoming messages.
|
|
17
|
+
*/
|
|
18
|
+
messages(): AsyncGenerator<Message | ControlRequest, void, unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Send a user message to CLI.
|
|
21
|
+
*/
|
|
22
|
+
sendUserMessage(content: string | UserMessage): void;
|
|
23
|
+
/**
|
|
24
|
+
* Send a control request and wait for response.
|
|
25
|
+
*/
|
|
26
|
+
sendControlRequest<T = Record<string, unknown>>(payload: ControlRequestPayload, timeoutMs?: number): Promise<T>;
|
|
27
|
+
/**
|
|
28
|
+
* Send a control response.
|
|
29
|
+
*/
|
|
30
|
+
sendControlResponse(requestId: string, response: Record<string, unknown>): void;
|
|
31
|
+
/**
|
|
32
|
+
* Send a control error response.
|
|
33
|
+
*/
|
|
34
|
+
sendControlErrorResponse(requestId: string, error: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Check if transport is ready.
|
|
37
|
+
*/
|
|
38
|
+
isReady(): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Close the transport.
|
|
41
|
+
*/
|
|
42
|
+
close(): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Options for creating transports.
|
|
46
|
+
*/
|
|
47
|
+
export interface TransportOptions {
|
|
48
|
+
/** Request timeout in milliseconds */
|
|
49
|
+
requestTimeoutMs?: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Options for ProcessTransport.
|
|
53
|
+
* Only includes options that are supported by the CLI.
|
|
54
|
+
*/
|
|
55
|
+
export interface ProcessTransportOptions extends TransportOptions {
|
|
56
|
+
/** Path to CLI executable */
|
|
57
|
+
executablePath?: string;
|
|
58
|
+
/** Working directory */
|
|
59
|
+
cwd?: string;
|
|
60
|
+
/** Environment variables */
|
|
61
|
+
env?: Record<string, string | undefined>;
|
|
62
|
+
/** Additional CLI arguments */
|
|
63
|
+
args?: string[];
|
|
64
|
+
/** Permission mode */
|
|
65
|
+
permissionMode?: string;
|
|
66
|
+
/** Additional directories (--add-dir) */
|
|
67
|
+
additionalDirectories?: string[];
|
|
68
|
+
/** Allowed tools (--allowedTools) */
|
|
69
|
+
allowedTools?: string[];
|
|
70
|
+
/** Disallowed tools (--disallowedTools) */
|
|
71
|
+
disallowedTools?: string[];
|
|
72
|
+
/** Model (--model) */
|
|
73
|
+
model?: string;
|
|
74
|
+
/** Fallback model (--fallback-model) */
|
|
75
|
+
fallbackModel?: string;
|
|
76
|
+
/** Max turns (--max-turns) */
|
|
77
|
+
maxTurns?: number;
|
|
78
|
+
/** MCP servers config (--mcp-config) */
|
|
79
|
+
mcpServers?: Record<string, unknown>;
|
|
80
|
+
/** Strict MCP config (--strict-mcp-config) */
|
|
81
|
+
strictMcpConfig?: boolean;
|
|
82
|
+
/** Setting sources (--setting-sources) */
|
|
83
|
+
settingSources?: string[];
|
|
84
|
+
/** Continue conversation (--continue) */
|
|
85
|
+
continue?: boolean;
|
|
86
|
+
/** Resume session ID (--resume) */
|
|
87
|
+
resume?: string;
|
|
88
|
+
/** Fork session (--fork-session) */
|
|
89
|
+
forkSession?: boolean;
|
|
90
|
+
/** Dangerously skip permissions (-y) */
|
|
91
|
+
dangerouslySkipPermissions?: boolean;
|
|
92
|
+
/** Include partial messages (--include-partial-messages) */
|
|
93
|
+
includePartialMessages?: boolean;
|
|
94
|
+
/** Extra args (custom flags) */
|
|
95
|
+
extraArgs?: Record<string, string | null>;
|
|
96
|
+
/** Stderr callback */
|
|
97
|
+
stderr?: (data: string) => void;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create a transport that communicates with CLI via spawned process.
|
|
101
|
+
*/
|
|
102
|
+
export declare function createTransport(options?: ProcessTransportOptions): Transport;
|
|
103
|
+
export { ProcessTransport } from './process-transport';
|
|
104
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Transport Layer
|
|
4
|
+
*
|
|
5
|
+
* Abstract interface for communication with CLI.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ProcessTransport = void 0;
|
|
9
|
+
exports.createTransport = createTransport;
|
|
10
|
+
const process_transport_1 = require("./process-transport");
|
|
11
|
+
/**
|
|
12
|
+
* Create a transport that communicates with CLI via spawned process.
|
|
13
|
+
*/
|
|
14
|
+
function createTransport(options = {}) {
|
|
15
|
+
return new process_transport_1.ProcessTransport(options);
|
|
16
|
+
}
|
|
17
|
+
// Re-export ProcessTransport
|
|
18
|
+
var process_transport_2 = require("./process-transport");
|
|
19
|
+
Object.defineProperty(exports, "ProcessTransport", { enumerable: true, get: function () { return process_transport_2.ProcessTransport; } });
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAsHH,0CAEC;AAhHD,2DAAuD;AA2GvD;;GAEG;AACH,SAAgB,eAAe,CAAC,UAAmC,EAAE;IACjE,OAAO,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,6BAA6B;AAC7B,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA"}
|