@crewx/sdk 0.8.0-rc.79 → 0.8.0-rc.82
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/dist/__tests__/adapter/context-builder.test.d.ts +1 -0
- package/dist/__tests__/adapter/plugin-helper.test.d.ts +1 -0
- package/dist/__tests__/adapter/registration-integration.test.d.ts +1 -0
- package/dist/__tests__/adapter/scoped-store.test.d.ts +1 -0
- package/dist/__tests__/plugins/conversation.test.d.ts +1 -0
- package/dist/__tests__/testing/createMockContext.test.d.ts +1 -0
- package/dist/adapter/context-builder.d.ts +0 -9
- package/dist/adapter/index.d.ts +0 -1
- package/dist/adapter/plugin-helper.d.ts +0 -7
- package/dist/adapter/scoped-store.d.ts +0 -10
- package/dist/adapter/types.d.ts +0 -7
- package/dist/agent/resolver.d.ts +0 -13
- package/dist/boxing/box-storage.interface.d.ts +0 -4
- package/dist/boxing/box.service.d.ts +0 -4
- package/dist/boxing/box.types.d.ts +0 -4
- package/dist/boxing/context-builder.d.ts +0 -4
- package/dist/client/CrewxClient.d.ts +0 -32
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.js +1 -6
- package/dist/config/loader.browser.d.ts +0 -8
- package/dist/config/loader.d.ts +0 -12
- package/dist/conversation/__tests__/sqlite-provider.test.d.ts +1 -0
- package/dist/conversation/__tests__/to-task-reader.test.d.ts +1 -0
- package/dist/conversation/index.d.ts +0 -1
- package/dist/conversation/sqlite-provider.d.ts +0 -9
- package/dist/conversation/to-task-reader.d.ts +0 -11
- package/dist/conversation/to-template-messages.d.ts +0 -13
- package/dist/conversation/types.d.ts +0 -58
- package/dist/esm/client/index.js +1 -2
- package/dist/esm/hooks/index.js +7 -6
- package/dist/esm/index.js +79 -60
- package/dist/esm/plugins/index.js +52 -0
- package/dist/esm/testing/index.js +1 -0
- package/dist/esm/tools/node/index.js +36 -54
- package/dist/events/TypedEventEmitter.d.ts +0 -24
- package/dist/events/types.d.ts +0 -43
- package/dist/facade/Crewx.browser.d.ts +0 -40
- package/dist/facade/Crewx.d.ts +0 -163
- package/dist/hooks/define.d.ts +0 -1
- package/dist/hooks/dispatch.d.ts +0 -12
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.js +7 -24
- package/dist/hooks/observer.d.ts +0 -1
- package/dist/hooks/plugin.d.ts +0 -1
- package/dist/hooks/tool-normalize.d.ts +0 -26
- package/dist/hooks/types.d.ts +0 -1
- package/dist/hooks/yaml-plugin.d.ts +0 -1
- package/dist/index.browser.d.ts +0 -7
- package/dist/index.browser.js +2 -25
- package/dist/index.d.ts +0 -4
- package/dist/index.js +79 -151
- package/dist/layout/loader.d.ts +0 -20
- package/dist/layout/props-validator.d.ts +0 -6
- package/dist/layout/renderer.d.ts +0 -24
- package/dist/layout/types.d.ts +0 -42
- package/dist/parallel/agent-runtime.d.ts +0 -11
- package/dist/parallel/helpers.d.ts +0 -1
- package/dist/parallel/index.d.ts +0 -1
- package/dist/parallel/parallel-runner.d.ts +0 -8
- package/dist/parallel/types.d.ts +0 -24
- package/dist/parsers/agent-call.util.d.ts +0 -3
- package/dist/parsers/claude.parser.d.ts +0 -8
- package/dist/parsers/codex.parser.d.ts +0 -8
- package/dist/parsers/copilot.parser.d.ts +0 -9
- package/dist/parsers/gemini.parser.d.ts +0 -10
- package/dist/parsers/opencode.parser.d.ts +0 -10
- package/dist/parsers/router.d.ts +0 -5
- package/dist/paths.d.ts +1 -0
- package/dist/platform/BrowserFsAdapter.d.ts +0 -20
- package/dist/platform/IFsAdapter.d.ts +0 -23
- package/dist/platform/NodeFsAdapter.d.ts +0 -8
- package/dist/plugin/plugin-provider.d.ts +0 -22
- package/dist/plugin/types.d.ts +0 -31
- package/dist/plugin.d.ts +0 -27
- package/dist/plugins/conversation.d.ts +0 -2
- package/dist/plugins/file-logger.d.ts +0 -13
- package/dist/plugins/index.d.ts +0 -10
- package/dist/plugins/index.js +52 -19
- package/dist/plugins/sqlite-tracing.d.ts +0 -13
- package/dist/plugins/sqlite-tracing.spec.d.ts +1 -0
- package/dist/provider/bridge.browser.d.ts +0 -20
- package/dist/provider/bridge.d.ts +0 -47
- package/dist/provider/parse-usage.d.ts +0 -14
- package/dist/provider/register-api.d.ts +0 -7
- package/dist/provider/vercel-runtime.d.ts +0 -29
- package/dist/remote/index.d.ts +0 -6
- package/dist/remote/remote-agent-manager.d.ts +0 -31
- package/dist/remote/remote-provider.d.ts +0 -15
- package/dist/remote/remote-transport.d.ts +0 -17
- package/dist/remote/types.d.ts +0 -59
- package/dist/server/auth.d.ts +0 -16
- package/dist/server/handler.d.ts +0 -17
- package/dist/server/index.d.ts +0 -4
- package/dist/server/tool-adapter.d.ts +0 -16
- package/dist/template/engine.d.ts +0 -19
- package/dist/template/helpers/exec.browser.d.ts +0 -7
- package/dist/template/helpers/exec.d.ts +0 -45
- package/dist/template/helpers/fenced_code.d.ts +0 -16
- package/dist/template/helpers/format-conversation.d.ts +0 -22
- package/dist/template/helpers/include.d.ts +0 -15
- package/dist/template/helpers/p1p2.d.ts +0 -32
- package/dist/template/loader/DocumentLoader.d.ts +0 -30
- package/dist/template/types.d.ts +0 -30
- package/dist/testing/index.d.ts +0 -1
- package/dist/testing/index.js +1 -16
- package/dist/testing/mock-audit.d.ts +0 -1
- package/dist/testing/mock-context.d.ts +0 -1
- package/dist/testing/mock-logger.d.ts +0 -1
- package/dist/testing/mock-router.d.ts +0 -1
- package/dist/testing/mock-storage.d.ts +0 -1
- package/dist/testing/mock-store.d.ts +0 -1
- package/dist/tools/delegate.d.ts +0 -7
- package/dist/tools/index.d.ts +0 -4
- package/dist/tools/node/builtin.d.ts +0 -16
- package/dist/tools/node/index.d.ts +0 -20
- package/dist/tools/node/index.js +36 -59
- package/dist/types/index.d.ts +0 -20
- package/dist/types/task-log.types.d.ts +0 -4
- package/dist/utils/env-defaults.d.ts +0 -16
- package/dist/utils/glob-match.d.ts +0 -16
- package/dist/utils/id.d.ts +0 -15
- package/dist/utils/timestamp.d.ts +0 -1
- package/dist/utils/workspace.d.ts +0 -4
- package/package.json +24 -25
- package/dist/adapter/context-builder.js +0 -87
- package/dist/adapter/index.js +0 -21
- package/dist/adapter/plugin-helper.js +0 -45
- package/dist/adapter/scoped-store.js +0 -43
- package/dist/adapter/types.js +0 -23
- package/dist/agent/resolver.js +0 -46
- package/dist/boxing/box-storage.interface.js +0 -6
- package/dist/boxing/box.service.js +0 -73
- package/dist/boxing/box.types.js +0 -6
- package/dist/boxing/context-builder.js +0 -79
- package/dist/client/CrewxClient.js +0 -86
- package/dist/config/loader.browser.js +0 -59
- package/dist/config/loader.js +0 -95
- package/dist/conversation/index.js +0 -25
- package/dist/conversation/sqlite-provider.js +0 -178
- package/dist/conversation/to-task-reader.js +0 -28
- package/dist/conversation/to-template-messages.js +0 -34
- package/dist/conversation/types.js +0 -10
- package/dist/esm/agent/resolver.js +0 -41
- package/dist/esm/boxing/box-storage.interface.js +0 -5
- package/dist/esm/boxing/box.service.js +0 -69
- package/dist/esm/boxing/box.types.js +0 -5
- package/dist/esm/boxing/context-builder.js +0 -76
- package/dist/esm/client/CrewxClient.js +0 -82
- package/dist/esm/config/loader.browser.js +0 -54
- package/dist/esm/config/loader.js +0 -77
- package/dist/esm/events/TypedEventEmitter.js +0 -61
- package/dist/esm/events/types.js +0 -8
- package/dist/esm/facade/Crewx.browser.js +0 -310
- package/dist/esm/facade/Crewx.js +0 -941
- package/dist/esm/hooks/define.js +0 -10
- package/dist/esm/hooks/dispatch.js +0 -76
- package/dist/esm/hooks/observer.js +0 -56
- package/dist/esm/hooks/plugin.js +0 -12
- package/dist/esm/hooks/types.js +0 -9
- package/dist/esm/index.browser.js +0 -15
- package/dist/esm/layout/loader.js +0 -268
- package/dist/esm/layout/props-validator.js +0 -297
- package/dist/esm/layout/renderer.js +0 -180
- package/dist/esm/layout/types.js +0 -31
- package/dist/esm/parallel/agent-runtime.js +0 -21
- package/dist/esm/parallel/helpers.js +0 -214
- package/dist/esm/parallel/index.js +0 -5
- package/dist/esm/parallel/parallel-runner.js +0 -221
- package/dist/esm/parallel/types.js +0 -5
- package/dist/esm/parsers/agent-call.util.js +0 -15
- package/dist/esm/parsers/claude.parser.js +0 -64
- package/dist/esm/parsers/codex.parser.js +0 -97
- package/dist/esm/parsers/copilot.parser.js +0 -63
- package/dist/esm/parsers/gemini.parser.js +0 -43
- package/dist/esm/parsers/opencode.parser.js +0 -73
- package/dist/esm/parsers/router.js +0 -53
- package/dist/esm/platform/BrowserFsAdapter.js +0 -80
- package/dist/esm/platform/IFsAdapter.js +0 -2
- package/dist/esm/platform/NodeFsAdapter.js +0 -34
- package/dist/esm/plugin/plugin-provider.js +0 -202
- package/dist/esm/plugin/types.js +0 -8
- package/dist/esm/plugin.js +0 -25
- package/dist/esm/provider/bridge.browser.js +0 -43
- package/dist/esm/provider/bridge.js +0 -373
- package/dist/esm/provider/parse-usage.js +0 -80
- package/dist/esm/provider/register-api.js +0 -21
- package/dist/esm/provider/vercel-runtime.js +0 -310
- package/dist/esm/remote/index.js +0 -10
- package/dist/esm/remote/remote-agent-manager.js +0 -194
- package/dist/esm/remote/remote-provider.js +0 -98
- package/dist/esm/remote/remote-transport.js +0 -79
- package/dist/esm/remote/types.js +0 -8
- package/dist/esm/server/auth.js +0 -31
- package/dist/esm/server/handler.js +0 -72
- package/dist/esm/server/index.js +0 -5
- package/dist/esm/server/tool-adapter.js +0 -92
- package/dist/esm/template/engine.js +0 -100
- package/dist/esm/template/helpers/exec.browser.js +0 -31
- package/dist/esm/template/helpers/exec.js +0 -220
- package/dist/esm/template/helpers/fenced_code.js +0 -17
- package/dist/esm/template/helpers/include.js +0 -20
- package/dist/esm/template/helpers/p1p2.js +0 -83
- package/dist/esm/template/loader/DocumentLoader.js +0 -124
- package/dist/esm/template/types.js +0 -5
- package/dist/esm/tools/delegate.js +0 -57
- package/dist/esm/tools/index.js +0 -5
- package/dist/esm/tools/node/builtin.js +0 -541
- package/dist/esm/types/index.js +0 -27
- package/dist/esm/types/task-log.types.js +0 -5
- package/dist/esm/utils/env-defaults.js +0 -23
- package/dist/esm/utils/glob-match.js +0 -38
- package/dist/esm/utils/id.js +0 -46
- package/dist/esm/utils/workspace.js +0 -21
- package/dist/events/TypedEventEmitter.js +0 -65
- package/dist/events/types.js +0 -9
- package/dist/facade/Crewx.browser.js +0 -314
- package/dist/facade/Crewx.js +0 -1299
- package/dist/hooks/define.js +0 -13
- package/dist/hooks/dispatch.js +0 -147
- package/dist/hooks/observer.js +0 -60
- package/dist/hooks/plugin.js +0 -17
- package/dist/hooks/tool-normalize.js +0 -110
- package/dist/hooks/types.js +0 -12
- package/dist/hooks/yaml-plugin.js +0 -356
- package/dist/layout/loader.js +0 -305
- package/dist/layout/props-validator.js +0 -301
- package/dist/layout/renderer.js +0 -193
- package/dist/layout/types.js +0 -36
- package/dist/parallel/agent-runtime.js +0 -25
- package/dist/parallel/helpers.js +0 -219
- package/dist/parallel/index.js +0 -13
- package/dist/parallel/parallel-runner.js +0 -226
- package/dist/parallel/types.js +0 -6
- package/dist/parsers/agent-call.util.js +0 -19
- package/dist/parsers/api.parser.d.ts +0 -10
- package/dist/parsers/api.parser.js +0 -26
- package/dist/parsers/claude.parser.js +0 -67
- package/dist/parsers/codex.parser.js +0 -100
- package/dist/parsers/copilot.parser.js +0 -66
- package/dist/parsers/gemini.parser.js +0 -46
- package/dist/parsers/opencode.parser.js +0 -76
- package/dist/parsers/router.js +0 -56
- package/dist/platform/BrowserFsAdapter.js +0 -84
- package/dist/platform/IFsAdapter.js +0 -3
- package/dist/platform/NodeFsAdapter.js +0 -38
- package/dist/plugin/plugin-provider.js +0 -207
- package/dist/plugin/types.js +0 -9
- package/dist/plugin.js +0 -29
- package/dist/plugins/conversation.js +0 -59
- package/dist/plugins/file-logger.js +0 -87
- package/dist/plugins/sqlite-tracing.js +0 -112
- package/dist/provider/bridge.browser.js +0 -49
- package/dist/provider/bridge.js +0 -381
- package/dist/provider/mastra-runtime.d.ts +0 -45
- package/dist/provider/mastra-runtime.js +0 -208
- package/dist/provider/parse-usage.js +0 -83
- package/dist/provider/register-api.js +0 -24
- package/dist/provider/vercel-runtime.js +0 -347
- package/dist/remote/index.js +0 -32
- package/dist/remote/remote-agent-manager.js +0 -198
- package/dist/remote/remote-provider.js +0 -141
- package/dist/remote/remote-transport.js +0 -83
- package/dist/remote/types.js +0 -9
- package/dist/server/auth.js +0 -35
- package/dist/server/handler.js +0 -75
- package/dist/server/index.js +0 -9
- package/dist/server/tool-adapter.js +0 -95
- package/dist/template/engine.js +0 -137
- package/dist/template/helpers/exec.browser.js +0 -41
- package/dist/template/helpers/exec.js +0 -230
- package/dist/template/helpers/fenced_code.js +0 -20
- package/dist/template/helpers/format-conversation.js +0 -53
- package/dist/template/helpers/include.js +0 -23
- package/dist/template/helpers/p1p2.js +0 -90
- package/dist/template/loader/DocumentLoader.js +0 -128
- package/dist/template/types.js +0 -6
- package/dist/testing/mock-audit.js +0 -13
- package/dist/testing/mock-context.js +0 -68
- package/dist/testing/mock-logger.js +0 -27
- package/dist/testing/mock-router.js +0 -67
- package/dist/testing/mock-storage.js +0 -21
- package/dist/testing/mock-store.js +0 -8
- package/dist/tools/delegate.js +0 -60
- package/dist/tools/index.js +0 -9
- package/dist/tools/node/builtin.js +0 -547
- package/dist/types/index.js +0 -32
- package/dist/types/task-log.types.js +0 -6
- package/dist/utils/env-defaults.js +0 -27
- package/dist/utils/glob-match.js +0 -42
- package/dist/utils/id.js +0 -50
- package/dist/utils/timestamp.js +0 -13
- package/dist/utils/workspace.js +0 -58
package/dist/index.js
CHANGED
|
@@ -1,151 +1,79 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}));
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// Main facade
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
var loader_1 = require("./layout/loader");
|
|
33
|
-
Object.defineProperty(exports, "LayoutLoader", { enumerable: true, get: function () { return loader_1.LayoutLoader; } });
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
Object.defineProperty(exports, "NodeFsAdapter", { enumerable: true, get: function () { return NodeFsAdapter_1.NodeFsAdapter; } });
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
Object.defineProperty(exports, "createProvider", { enumerable: true, get: function () { return bridge_1.createProvider; } });
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
Object.defineProperty(exports, "registerApiProviders", { enumerable: true, get: function () { return register_api_1.registerApiProviders; } });
|
|
81
|
-
// Tools
|
|
82
|
-
var delegate_1 = require("./tools/delegate");
|
|
83
|
-
Object.defineProperty(exports, "createDelegateTool", { enumerable: true, get: function () { return delegate_1.createDelegateTool; } });
|
|
84
|
-
// Env utilities
|
|
85
|
-
var env_defaults_1 = require("./utils/env-defaults");
|
|
86
|
-
Object.defineProperty(exports, "resolveCrewxCli", { enumerable: true, get: function () { return env_defaults_1.resolveCrewxCli; } });
|
|
87
|
-
Object.defineProperty(exports, "resolveCrewxWorkspace", { enumerable: true, get: function () { return env_defaults_1.resolveCrewxWorkspace; } });
|
|
88
|
-
// ID utilities (backward-compat for @crewx/* built-in packages)
|
|
89
|
-
var id_1 = require("./utils/id");
|
|
90
|
-
Object.defineProperty(exports, "generateId", { enumerable: true, get: function () { return id_1.generateId; } });
|
|
91
|
-
Object.defineProperty(exports, "generateFingerprint", { enumerable: true, get: function () { return id_1.generateFingerprint; } });
|
|
92
|
-
// Workspace utilities
|
|
93
|
-
var workspace_1 = require("./utils/workspace");
|
|
94
|
-
Object.defineProperty(exports, "hashWorkspaceId", { enumerable: true, get: function () { return workspace_1.hashWorkspaceId; } });
|
|
95
|
-
Object.defineProperty(exports, "normalizeWorkspacePath", { enumerable: true, get: function () { return workspace_1.normalizeWorkspacePath; } });
|
|
96
|
-
// Timestamp utilities
|
|
97
|
-
var timestamp_1 = require("./utils/timestamp");
|
|
98
|
-
Object.defineProperty(exports, "formatTimestamp", { enumerable: true, get: function () { return timestamp_1.formatTimestamp; } });
|
|
99
|
-
// Boxing module
|
|
100
|
-
var box_service_1 = require("./boxing/box.service");
|
|
101
|
-
Object.defineProperty(exports, "SdkBoxService", { enumerable: true, get: function () { return box_service_1.SdkBoxService; } });
|
|
102
|
-
var context_builder_1 = require("./boxing/context-builder");
|
|
103
|
-
Object.defineProperty(exports, "buildContext", { enumerable: true, get: function () { return context_builder_1.buildContext; } });
|
|
104
|
-
// Parsers
|
|
105
|
-
var router_1 = require("./parsers/router");
|
|
106
|
-
Object.defineProperty(exports, "parseStdoutEvent", { enumerable: true, get: function () { return router_1.parseStdoutEvent; } });
|
|
107
|
-
// Provider utilities
|
|
108
|
-
var parse_usage_1 = require("./provider/parse-usage");
|
|
109
|
-
Object.defineProperty(exports, "parseUsage", { enumerable: true, get: function () { return parse_usage_1.parseUsage; } });
|
|
110
|
-
// Parallel execution
|
|
111
|
-
var parallel_runner_1 = require("./parallel/parallel-runner");
|
|
112
|
-
Object.defineProperty(exports, "ParallelRunner", { enumerable: true, get: function () { return parallel_runner_1.ParallelRunner; } });
|
|
113
|
-
Object.defineProperty(exports, "ParallelRunnerTimeoutError", { enumerable: true, get: function () { return parallel_runner_1.ParallelRunnerTimeoutError; } });
|
|
114
|
-
var helpers_1 = require("./parallel/helpers");
|
|
115
|
-
Object.defineProperty(exports, "runQueriesParallel", { enumerable: true, get: function () { return helpers_1.runQueriesParallel; } });
|
|
116
|
-
Object.defineProperty(exports, "runExecutesParallel", { enumerable: true, get: function () { return helpers_1.runExecutesParallel; } });
|
|
117
|
-
var agent_runtime_1 = require("./parallel/agent-runtime");
|
|
118
|
-
Object.defineProperty(exports, "AgentRuntime", { enumerable: true, get: function () { return agent_runtime_1.AgentRuntime; } });
|
|
119
|
-
// Plugin provider module
|
|
120
|
-
var plugin_provider_1 = require("./plugin/plugin-provider");
|
|
121
|
-
Object.defineProperty(exports, "PluginProviderRuntime", { enumerable: true, get: function () { return plugin_provider_1.PluginProviderRuntime; } });
|
|
122
|
-
Object.defineProperty(exports, "createPluginProviderFactory", { enumerable: true, get: function () { return plugin_provider_1.createPluginProviderFactory; } });
|
|
123
|
-
// Remote agent module
|
|
124
|
-
var remote_provider_1 = require("./remote/remote-provider");
|
|
125
|
-
Object.defineProperty(exports, "RemoteProviderRuntime", { enumerable: true, get: function () { return remote_provider_1.RemoteProviderRuntime; } });
|
|
126
|
-
Object.defineProperty(exports, "createRemoteProviderFactory", { enumerable: true, get: function () { return remote_provider_1.createRemoteProviderFactory; } });
|
|
127
|
-
var remote_agent_manager_1 = require("./remote/remote-agent-manager");
|
|
128
|
-
Object.defineProperty(exports, "RemoteAgentManager", { enumerable: true, get: function () { return remote_agent_manager_1.RemoteAgentManager; } });
|
|
129
|
-
var remote_transport_1 = require("./remote/remote-transport");
|
|
130
|
-
Object.defineProperty(exports, "McpHttpTransport", { enumerable: true, get: function () { return remote_transport_1.McpHttpTransport; } });
|
|
131
|
-
// Server module (MCP handler)
|
|
132
|
-
var handler_1 = require("./server/handler");
|
|
133
|
-
Object.defineProperty(exports, "createHandler", { enumerable: true, get: function () { return handler_1.createHandler; } });
|
|
134
|
-
// Hooks module (convenience re-exports)
|
|
135
|
-
var yaml_plugin_1 = require("./hooks/yaml-plugin");
|
|
136
|
-
Object.defineProperty(exports, "YamlHookPlugin", { enumerable: true, get: function () { return yaml_plugin_1.YamlHookPlugin; } });
|
|
137
|
-
Object.defineProperty(exports, "validateHooksSchema", { enumerable: true, get: function () { return yaml_plugin_1.validateHooksSchema; } });
|
|
138
|
-
// Conversation module
|
|
139
|
-
__exportStar(require("./conversation/index.js"), exports);
|
|
140
|
-
var types_2 = require("./adapter/types");
|
|
141
|
-
Object.defineProperty(exports, "AdapterError", { enumerable: true, get: function () { return types_2.AdapterError; } });
|
|
142
|
-
var plugin_helper_1 = require("./adapter/plugin-helper");
|
|
143
|
-
Object.defineProperty(exports, "defineChannelAdapter", { enumerable: true, get: function () { return plugin_helper_1.defineChannelAdapter; } });
|
|
144
|
-
Object.defineProperty(exports, "defineChannelAdapterPlugin", { enumerable: true, get: function () { return plugin_helper_1.defineChannelAdapterPlugin; } });
|
|
145
|
-
var scoped_store_1 = require("./adapter/scoped-store");
|
|
146
|
-
Object.defineProperty(exports, "createScopedAdapterStore", { enumerable: true, get: function () { return scoped_store_1.createScopedAdapterStore; } });
|
|
147
|
-
var context_builder_2 = require("./adapter/context-builder");
|
|
148
|
-
Object.defineProperty(exports, "createAdapterContext", { enumerable: true, get: function () { return context_builder_2.createAdapterContext; } });
|
|
149
|
-
Object.defineProperty(exports, "runInSyncWindow", { enumerable: true, get: function () { return context_builder_2.runInSyncWindow; } });
|
|
150
|
-
Object.defineProperty(exports, "getSyncWindowStore", { enumerable: true, get: function () { return context_builder_2.getSyncWindowStore; } });
|
|
151
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
'use strict';var child_process=require('child_process'),fs$1=require('fs'),Hr=require('path'),jsYaml=require('js-yaml'),zod=require('zod'),oe=require('handlebars'),promises=require('fs/promises'),module$1=require('module'),crypto$1=require('crypto'),events=require('events'),async_hooks=require('async_hooks'),mcp_js=require('@modelcontextprotocol/sdk/server/mcp.js'),webStandardStreamableHttp_js=require('@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js'),bi=require('better-sqlite3'),os$1=require('os'),perf_hooks=require('perf_hooks');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Hr__namespace=/*#__PURE__*/_interopNamespace(Hr);var oe__namespace=/*#__PURE__*/_interopNamespace(oe);var bi__default=/*#__PURE__*/_interopDefault(bi);var kt=Object.defineProperty;var fs=Object.getOwnPropertyDescriptor;var hs=Object.getOwnPropertyNames;var ys=Object.prototype.hasOwnProperty;var U=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var le=(r,e)=>()=>(r&&(e=r(r=0)),e);var be=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Rt=(r,e)=>{for(var t in e)kt(r,t,{get:e[t],enumerable:true});},vs=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of hs(e))!ys.call(r,o)&&o!==t&&kt(r,o,{get:()=>e[o],enumerable:!(n=fs(e,o))||n.enumerable});return r};var Er=r=>vs(kt({},"__esModule",{value:true}),r);var y=le(()=>{});function Ts(r){if(r.type!=="usage"||!("input_tokens"in r))return null;let e=Number(r.input_tokens??0),t=Number(r.output_tokens??0),o="cache_read_input_tokens"in r?Number(r.cache_read_input_tokens):void 0,s="cached_input_tokens"in r?Number(r.cached_input_tokens):void 0,i=o!==void 0?o:s??0;return {inputTokens:o!==void 0?e+o:e,outputTokens:t,cachedInputTokens:i}}function Ps(r){let e=r.usage;if(!e||typeof e!="object"||Array.isArray(e))return null;let t=e;if(!("input_tokens"in t))return null;let n=Number(t.input_tokens??0),o=Number(t.output_tokens??0),i="cache_read_input_tokens"in t?Number(t.cache_read_input_tokens):void 0,a="cached_input_tokens"in t?Number(t.cached_input_tokens):void 0,l=i!==void 0?i:a??0;return {inputTokens:i!==void 0?n+i:n,outputTokens:o,cachedInputTokens:l}}function Es(r){if(r.type!=="step_finish")return null;let t=r.part?.tokens;if(!t)return null;let n=Number(t.input??0),o=Number(t.output??0),s=t.cache,i=s?Number(s.read??0):0;return {inputTokens:n+i,outputTokens:o,cachedInputTokens:i}}function Tt(r){if(!r||!r.trim())return;let e=null;for(let t of r.split(`
|
|
2
|
+
`))if(t.trim())try{let n=JSON.parse(t),o=Ts(n)??Ps(n)??Es(n);o&&(e=o);}catch{}return e??void 0}var Pt=le(()=>{y();});function Ss(r){let e=r.split(`
|
|
3
|
+
`).filter(l=>l.trim()),t=[],n=[],o=[],s=[],i=[],a=null;for(let l of e)try{let u=JSON.parse(l);if(u.type==="assistant"&&Array.isArray(u.message?.content))for(let c of u.message.content)c.type==="text"&&typeof c.text=="string"&&c.text.trim()&&t.push(c.text.trim());if(u.type==="message"&&u.role==="assistant"&&u.delta===!0&&typeof u.content=="string"&&n.push(u.content),u.type==="assistant.message"&&typeof u.data?.content=="string"){let c=u.data.content;c.trim()&&o.push(c.trim());}if(u.type==="item.completed"&&(u.item?.type==="message"||u.item?.type==="agent_message")&&typeof u.item?.text=="string"){let c=u.item.text;c.trim()&&s.push(c.trim());}if(u.type==="text"&&typeof u.part?.text=="string"){let c=u.part.text;c.trim()&&i.push(c.trim());}u.type==="result"&&typeof u.result=="string"&&(a=u.result);}catch{}return t.length>0?t.join(`
|
|
4
|
+
|
|
5
|
+
`):n.length>0?n.join(""):o.length>0?o.join(`
|
|
6
|
+
|
|
7
|
+
`):s.length>0?s.join(`
|
|
8
|
+
|
|
9
|
+
`):i.length>0?i.join(""):a||r.trim()}function Is(r){let e=Tt(r);return e?{inputTokens:e.inputTokens,outputTokens:e.outputTokens,cachedInputTokens:e.cachedInputTokens,costUsd:0}:null}function Ae(r,e){Or.set(r,e);}function ce(r){let e=r.split("/");if(e.length!==2)throw new exports.ProviderError(`Invalid provider format: "${r}". Expected namespace/id (e.g., cli/claude)`,r);let[t,n]=e,o=Or.get(t);if(o)return o(n,r);if(t==="cli"){let s=Ir[n];if(!s)throw new exports.ProviderError(`Unknown CLI provider id: "${n}". Supported: ${Object.keys(Ir).join(", ")}`,r);return new Et(n,s,r)}throw new exports.ProviderError(`Unsupported provider namespace: "${t}". Register a factory with registerProviderFactory('${t}', factory).`,r)}exports.ProviderError=void 0;exports.ClientToolCallRequiredError=void 0;var Or,Ir,Et,xe=le(()=>{y();Pt();exports.ProviderError=class extends Error{constructor(t,n){super(t);this.providerStr=n;this.name="ProviderError";}providerStr},exports.ClientToolCallRequiredError=class extends Error{constructor(t,n){super(`Client tool call required: ${t.toolName}`);this.toolCall=t;this.continuationState=n;}toolCall;continuationState;name="ClientToolCallRequiredError"},Or=new Map;Ir={claude:"claude",gemini:"gemini",copilot:"copilot",codex:"codex",opencode:"opencode"};Et=class{constructor(e,t,n){this.providerId=e;this.cliCommand=t;this.providerStr=n;}providerId;cliCommand;providerStr;async execute(e,t){let{args:n,stdinMessage:o}=this.buildArgs(e,t,true);return t?.onCommand?.(`${this.cliCommand} ${n.join(" ")}`),this.runProcess(n,t,o)}async query(e,t){let{args:n,stdinMessage:o}=this.buildArgs(e,t);return t?.onCommand?.(`${this.cliCommand} ${n.join(" ")}`),this.runProcess(n,t,o)}runProcess(e,t,n){return new Promise((o,s)=>{let i=child_process.spawn(this.cliCommand,e,{env:{...process.env,...t?.env??{}},cwd:t?.cwd,stdio:["pipe","pipe","pipe"],shell:process.platform==="win32"});n!==void 0&&i.stdin.write(n),i.stdin.end(),i.pid!==void 0&&t?.onPid?.(i.pid);let a="",l="",u="",c="";i.stdout.on("data",d=>{let p=d.toString();a+=p,u+=p;let m=u.split(`
|
|
10
|
+
`);u=m.pop()??"";for(let h of m)h.trim()&&t?.onOutput?.(h,"stdout");}),i.stderr.on("data",d=>{let p=d.toString();l+=p,c+=p;let m=c.split(`
|
|
11
|
+
`);c=m.pop()??"";for(let h of m)h.trim()&&t?.onOutput?.(h,"stderr");}),i.on("error",d=>{d.code==="ENOENT"?s(new exports.ProviderError(`CLI command "${this.cliCommand}" not found. Is ${this.providerStr} installed?`,this.providerStr)):s(new exports.ProviderError(`Spawn error: ${d.message}`,this.providerStr));}),i.on("close",d=>{u.trim()&&t?.onOutput?.(u,"stdout"),c.trim()&&t?.onOutput?.(c,"stderr");let p=d??0;if(t?.onExitCode?.(p),d!==0){s(new exports.ProviderError(`Process exited with code ${d}: ${l.slice(0,500)}`,this.providerStr));return}let{usage:m,model:h}=this.parseResultEvent(a);m&&t?.onUsage&&t.onUsage(m);let f=h??(this.providerId==="opencode"?t?.model??null:null);f&&t?.onModel&&t.onModel(f);let g=this.parseOutput(a);o(g);});})}buildArgs(e,t,n=false){let o=t?.systemPrompt?`${t.systemPrompt}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
${e}`:e;if(this.providerId==="copilot"){let i=t?.additionalArgs?[...t.additionalArgs]:[];return t?.model&&i.push("--model",t.model),{args:i,stdinMessage:o}}if(this.providerId==="opencode"){let i=t?.additionalArgs,a=i!==void 0?[...i]:["run"];return a.includes("--format")||a.push("--format","json"),t?.model&&a.push("--model",t.model),a.push(o),{args:a}}if(t?.additionalArgs!==void 0){let i=[...t.additionalArgs],a=i.indexOf("-p");return a!==-1?(i.splice(a+1,0,o),t.model&&i.push("--model",t.model),{args:i}):(this.providerId==="codex"&&!i.includes("--json")&&!i.includes("--experimental-json")&&i.push("--json"),t.model&&i.push("--model",t.model),{args:i,stdinMessage:o})}let s=["-p",o,"--output-format","stream-json","--verbose"];return n&&s.push("--dangerously-skip-permissions"),t?.model&&s.push("--model",t.model),{args:s}}parseOutput(e){return Ss(e)}parseResultEvent(e){let t=Is(e),n=e.split(`
|
|
16
|
+
`);for(let o of n)if(o.trim())try{let s=JSON.parse(o);if(s.type==="result"){let i=s.usage,a=i?{inputTokens:Number(i.input_tokens??0),outputTokens:Number(i.output_tokens??0),cachedInputTokens:Number(i.cache_read_input_tokens??0),costUsd:Number(s.total_cost_usd??0)}:t,l=s.modelUsage,u=l?Object.keys(l)[0]??null:null;return {usage:a,model:u}}}catch{}return {usage:t,model:null}}};});var H=be((Jg,Fn)=>{y();var Vt=Object.defineProperty,Ei=Object.getOwnPropertyDescriptor,Ai=Object.getOwnPropertyNames,Si=Object.prototype.hasOwnProperty,Ii=(r,e)=>{for(var t in e)Vt(r,t,{get:e[t],enumerable:true});},Oi=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ai(e))!Si.call(r,o)&&o!==t&&Vt(r,o,{get:()=>e[o],enumerable:!(n=Ei(e,o))||n.enumerable});return r},zi=r=>Oi(Vt({},"__esModule",{value:true}),r),Qr={};Ii(Qr,{AISDKError:()=>D,APICallError:()=>$i,EmptyResponseBodyError:()=>Li,InvalidArgumentError:()=>qi,InvalidPromptError:()=>Ui,InvalidResponseDataError:()=>Ji,JSONParseError:()=>Vi,LoadAPIKeyError:()=>Gi,LoadSettingError:()=>Yi,NoContentGeneratedError:()=>Zi,NoSuchModelError:()=>ta,TooManyEmbeddingValuesForCallError:()=>na,TypeValidationError:()=>ia,UnsupportedFunctionalityError:()=>la,getErrorMessage:()=>Kt,isJSONArray:()=>ua,isJSONObject:()=>ca,isJSONValue:()=>qe});Fn.exports=zi(Qr);var Zr="vercel.ai.error",Mi=Symbol.for(Zr),en,ji=class tn extends Error{constructor({name:e,message:t,cause:n}){super(t),this[en]=true,this.name=e,this.cause=n;}static isInstance(e){return tn.hasMarker(e,Zr)}static hasMarker(e,t){let n=Symbol.for(t);return e!=null&&typeof e=="object"&&n in e&&typeof e[n]=="boolean"&&e[n]===true}};en=Mi;var D=ji,rn="AI_APICallError",nn=`vercel.ai.error.${rn}`,Ni=Symbol.for(nn),on,$i=class extends D{constructor({message:r,url:e,requestBodyValues:t,statusCode:n,responseHeaders:o,responseBody:s,cause:i,isRetryable:a=n!=null&&(n===408||n===409||n===429||n>=500),data:l}){super({name:rn,message:r,cause:i}),this[on]=true,this.url=e,this.requestBodyValues=t,this.statusCode=n,this.responseHeaders=o,this.responseBody=s,this.isRetryable=a,this.data=l;}static isInstance(r){return D.hasMarker(r,nn)}};on=Ni;var sn="AI_EmptyResponseBodyError",an=`vercel.ai.error.${sn}`,Di=Symbol.for(an),ln,Li=class extends D{constructor({message:r="Empty response body"}={}){super({name:sn,message:r}),this[ln]=true;}static isInstance(r){return D.hasMarker(r,an)}};ln=Di;function Kt(r){return r==null?"unknown error":typeof r=="string"?r:r instanceof Error?r.message:JSON.stringify(r)}var un="AI_InvalidArgumentError",cn=`vercel.ai.error.${un}`,Hi=Symbol.for(cn),dn,qi=class extends D{constructor({message:r,cause:e,argument:t}){super({name:un,message:r,cause:e}),this[dn]=true,this.argument=t;}static isInstance(r){return D.hasMarker(r,cn)}};dn=Hi;var pn="AI_InvalidPromptError",gn=`vercel.ai.error.${pn}`,Fi=Symbol.for(gn),mn,Ui=class extends D{constructor({prompt:r,message:e,cause:t}){super({name:pn,message:`Invalid prompt: ${e}`,cause:t}),this[mn]=true,this.prompt=r;}static isInstance(r){return D.hasMarker(r,gn)}};mn=Fi;var fn="AI_InvalidResponseDataError",hn=`vercel.ai.error.${fn}`,Bi=Symbol.for(hn),yn,Ji=class extends D{constructor({data:r,message:e=`Invalid response data: ${JSON.stringify(r)}.`}){super({name:fn,message:e}),this[yn]=true,this.data=r;}static isInstance(r){return D.hasMarker(r,hn)}};yn=Bi;var vn="AI_JSONParseError",wn=`vercel.ai.error.${vn}`,Wi=Symbol.for(wn),bn,Vi=class extends D{constructor({text:r,cause:e}){super({name:vn,message:`JSON parsing failed: Text: ${r}.
|
|
17
|
+
Error message: ${Kt(e)}`,cause:e}),this[bn]=true,this.text=r;}static isInstance(r){return D.hasMarker(r,wn)}};bn=Wi;var _n="AI_LoadAPIKeyError",xn=`vercel.ai.error.${_n}`,Ki=Symbol.for(xn),kn,Gi=class extends D{constructor({message:r}){super({name:_n,message:r}),this[kn]=true;}static isInstance(r){return D.hasMarker(r,xn)}};kn=Ki;var Rn="AI_LoadSettingError",Cn=`vercel.ai.error.${Rn}`,Xi=Symbol.for(Cn),Tn,Yi=class extends D{constructor({message:r}){super({name:Rn,message:r}),this[Tn]=true;}static isInstance(r){return D.hasMarker(r,Cn)}};Tn=Xi;var Pn="AI_NoContentGeneratedError",En=`vercel.ai.error.${Pn}`,Qi=Symbol.for(En),An,Zi=class extends D{constructor({message:r="No content generated."}={}){super({name:Pn,message:r}),this[An]=true;}static isInstance(r){return D.hasMarker(r,En)}};An=Qi;var Sn="AI_NoSuchModelError",In=`vercel.ai.error.${Sn}`,ea=Symbol.for(In),On,ta=class extends D{constructor({errorName:r=Sn,modelId:e,modelType:t,message:n=`No such ${t}: ${e}`}){super({name:r,message:n}),this[On]=true,this.modelId=e,this.modelType=t;}static isInstance(r){return D.hasMarker(r,In)}};On=ea;var zn="AI_TooManyEmbeddingValuesForCallError",Mn=`vercel.ai.error.${zn}`,ra=Symbol.for(Mn),jn,na=class extends D{constructor(r){super({name:zn,message:`Too many values for a single embedding call. The ${r.provider} model "${r.modelId}" can only embed up to ${r.maxEmbeddingsPerCall} values per call, but ${r.values.length} values were provided.`}),this[jn]=true,this.provider=r.provider,this.modelId=r.modelId,this.maxEmbeddingsPerCall=r.maxEmbeddingsPerCall,this.values=r.values;}static isInstance(r){return D.hasMarker(r,Mn)}};jn=ra;var Nn="AI_TypeValidationError",$n=`vercel.ai.error.${Nn}`,oa=Symbol.for($n),Dn,sa=class Wt extends D{constructor({value:e,cause:t}){super({name:Nn,message:`Type validation failed: Value: ${JSON.stringify(e)}.
|
|
18
|
+
Error message: ${Kt(t)}`,cause:t}),this[Dn]=true,this.value=e;}static isInstance(e){return D.hasMarker(e,$n)}static wrap({value:e,cause:t}){return Wt.isInstance(t)&&t.value===e?t:new Wt({value:e,cause:t})}};Dn=oa;var ia=sa,Ln="AI_UnsupportedFunctionalityError",Hn=`vercel.ai.error.${Ln}`,aa=Symbol.for(Hn),qn,la=class extends D{constructor({functionality:r,message:e=`'${r}' functionality not supported.`}){super({name:Ln,message:e}),this[qn]=true,this.functionality=r;}static isInstance(r){return D.hasMarker(r,Hn)}};qn=aa;function qe(r){return r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean"?true:Array.isArray(r)?r.every(qe):typeof r=="object"?Object.entries(r).every(([e,t])=>typeof e=="string"&&qe(t)):false}function ua(r){return Array.isArray(r)&&r.every(qe)}function ca(r){return r!=null&&typeof r=="object"&&Object.entries(r).every(([e,t])=>typeof e=="string"&&qe(t))}});var Bn=be((sm,Un)=>{y();var da="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",pa=(r,e=21)=>(t=e)=>{let n="",o=t|0;for(;o--;)n+=r[Math.random()*r.length|0];return n},ga=(r=21)=>{let e="",t=r|0;for(;t--;)e+=da[Math.random()*64|0];return e};Un.exports={nanoid:ga,customAlphabet:pa};});var Gn=be((am,Se)=>{y();var ma=typeof Buffer<"u",Jn=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Wn=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function Vn(r,e,t){t==null&&e!==null&&typeof e=="object"&&(t=e,e=void 0),ma&&Buffer.isBuffer(r)&&(r=r.toString()),r&&r.charCodeAt(0)===65279&&(r=r.slice(1));let n=JSON.parse(r,e);if(n===null||typeof n!="object")return n;let o=t&&t.protoAction||"error",s=t&&t.constructorAction||"error";if(o==="ignore"&&s==="ignore")return n;if(o!=="ignore"&&s!=="ignore"){if(Jn.test(r)===false&&Wn.test(r)===false)return n}else if(o!=="ignore"&&s==="ignore"){if(Jn.test(r)===false)return n}else if(Wn.test(r)===false)return n;return Kn(n,{protoAction:o,constructorAction:s,safe:t&&t.safe})}function Kn(r,{protoAction:e="error",constructorAction:t="error",safe:n}={}){let o=[r];for(;o.length;){let s=o;o=[];for(let i of s){if(e!=="ignore"&&Object.prototype.hasOwnProperty.call(i,"__proto__")){if(n===true)return null;if(e==="error")throw new SyntaxError("Object contains forbidden prototype property");delete i.__proto__;}if(t!=="ignore"&&Object.prototype.hasOwnProperty.call(i,"constructor")&&Object.prototype.hasOwnProperty.call(i.constructor,"prototype")){if(n===true)return null;if(t==="error")throw new SyntaxError("Object contains forbidden prototype property");delete i.constructor;}for(let a in i){let l=i[a];l&&typeof l=="object"&&o.push(l);}}}return r}function Gt(r,e,t){let n=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return Vn(r,e,t)}finally{Error.stackTraceLimit=n;}}function fa(r,e){let t=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return Vn(r,e,{safe:!0})}catch{return null}finally{Error.stackTraceLimit=t;}}Se.exports=Gt;Se.exports.default=Gt;Se.exports.parse=Gt;Se.exports.safeParse=fa;Se.exports.scan=Kn;});var V=be((um,io)=>{y();var ha=Object.create,dt=Object.defineProperty,ya=Object.getOwnPropertyDescriptor,va=Object.getOwnPropertyNames,wa=Object.getPrototypeOf,ba=Object.prototype.hasOwnProperty,_a=(r,e)=>{for(var t in e)dt(r,t,{get:e[t],enumerable:true});},Xn=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of va(e))!ba.call(r,o)&&o!==t&&dt(r,o,{get:()=>e[o],enumerable:!(n=ya(e,o))||n.enumerable});return r},xa=(r,e,t)=>(t=r!=null?ha(wa(r)):{},Xn(!r||!r.__esModule?dt(t,"default",{value:r,enumerable:true}):t,r)),ka=r=>Xn(dt({},"__esModule",{value:true}),r),Yn={};_a(Yn,{asValidator:()=>ro,combineHeaders:()=>Ra,convertAsyncIteratorToReadableStream:()=>Ca,convertBase64ToUint8Array:()=>Qa,convertUint8ArrayToBase64:()=>Za,createBinaryResponseHandler:()=>Ka,createEventSourceParserStream:()=>Qn,createEventSourceResponseHandler:()=>Ja,createIdGenerator:()=>Zn,createJsonErrorResponseHandler:()=>Ba,createJsonResponseHandler:()=>Va,createJsonStreamResponseHandler:()=>Wa,createStatusCodeErrorResponseHandler:()=>Ga,delay:()=>Ta,extractResponseHeaders:()=>ge,generateId:()=>Sa,getErrorMessage:()=>Ia,getFromApi:()=>za,isAbortError:()=>Te,isParsableJson:()=>$a,isValidator:()=>to,loadApiKey:()=>Ma,loadOptionalSetting:()=>ja,loadSetting:()=>Na,parseJSON:()=>so,parseProviderOptions:()=>La,postFormDataToApi:()=>Fa,postJsonToApi:()=>qa,postToApi:()=>Zt,removeUndefinedEntries:()=>Yt,resolve:()=>Ua,safeParseJSON:()=>gt,safeValidateTypes:()=>pt,validateTypes:()=>oo,validator:()=>eo,validatorSymbol:()=>ct,withoutTrailingSlash:()=>el,zodValidator:()=>no});io.exports=ka(Yn);function Ra(...r){return r.reduce((e,t)=>({...e,...t??{}}),{})}function Ca(r){return new ReadableStream({async pull(e){try{let{value:t,done:n}=await r.next();n?e.close():e.enqueue(t);}catch(t){e.error(t);}},cancel(){}})}async function Ta(r){return r==null?Promise.resolve():new Promise(e=>setTimeout(e,r))}function Qn(){let r="",e,t=[],n,o;function s(l,u){if(l===""){i(u);return}if(l.startsWith(":"))return;let c=l.indexOf(":");if(c===-1){a(l,"");return}let d=l.slice(0,c),p=c+1,m=p<l.length&&l[p]===" "?l.slice(p+1):l.slice(p);a(d,m);}function i(l){t.length>0&&(l.enqueue({event:e,data:t.join(`
|
|
19
|
+
`),id:n,retry:o}),t=[],e=void 0,o=void 0);}function a(l,u){switch(l){case "event":e=u;break;case "data":t.push(u);break;case "id":n=u;break;case "retry":let c=parseInt(u,10);isNaN(c)||(o=c);break}}return new TransformStream({transform(l,u){let{lines:c,incompleteLine:d}=Pa(r,l);r=d;for(let p=0;p<c.length;p++)s(c[p],u);},flush(l){s(r,l),i(l);}})}function Pa(r,e){let t=[],n=r;for(let o=0;o<e.length;){let s=e[o++];s===`
|
|
20
|
+
`?(t.push(n),n=""):s==="\r"?(t.push(n),n="",e[o]===`
|
|
21
|
+
`&&o++):n+=s;}return {lines:t,incompleteLine:n}}function ge(r){let e={};return r.headers.forEach((t,n)=>{e[n]=t;}),e}var Ea=H(),Aa=Bn(),Zn=({prefix:r,size:e=16,alphabet:t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:n="-"}={})=>{let o=(0, Aa.customAlphabet)(t,e);if(r==null)return o;if(t.includes(n))throw new Ea.InvalidArgumentError({argument:"separator",message:`The separator "${n}" must not be part of the alphabet "${t}".`});return s=>`${r}${n}${o(s)}`},Sa=Zn();function Ia(r){return r==null?"unknown error":typeof r=="string"?r:r instanceof Error?r.message:JSON.stringify(r)}var Fe=H();function Yt(r){return Object.fromEntries(Object.entries(r).filter(([e,t])=>t!=null))}function Te(r){return r instanceof Error&&(r.name==="AbortError"||r.name==="TimeoutError")}var Oa=()=>globalThis.fetch,za=async({url:r,headers:e={},successfulResponseHandler:t,failedResponseHandler:n,abortSignal:o,fetch:s=Oa()})=>{try{let i=await s(r,{method:"GET",headers:Yt(e),signal:o}),a=ge(i);if(!i.ok){let l;try{l=await n({response:i,url:r,requestBodyValues:{}});}catch(u){throw Te(u)||Fe.APICallError.isInstance(u)?u:new Fe.APICallError({message:"Failed to process error response",cause:u,statusCode:i.status,url:r,responseHeaders:a,requestBodyValues:{}})}throw l.value}try{return await t({response:i,url:r,requestBodyValues:{}})}catch(l){throw l instanceof Error&&(Te(l)||Fe.APICallError.isInstance(l))?l:new Fe.APICallError({message:"Failed to process successful response",cause:l,statusCode:i.status,url:r,responseHeaders:a,requestBodyValues:{}})}}catch(i){if(Te(i))throw i;if(i instanceof TypeError&&i.message==="fetch failed"){let a=i.cause;if(a!=null)throw new Fe.APICallError({message:`Cannot connect to API: ${a.message}`,cause:a,url:r,isRetryable:true,requestBodyValues:{}})}throw i}},lt=H();function Ma({apiKey:r,environmentVariableName:e,apiKeyParameterName:t="apiKey",description:n}){if(typeof r=="string")return r;if(r!=null)throw new lt.LoadAPIKeyError({message:`${n} API key must be a string.`});if(typeof process>"u")throw new lt.LoadAPIKeyError({message:`${n} API key is missing. Pass it using the '${t}' parameter. Environment variables is not supported in this environment.`});if(r=process.env[e],r==null)throw new lt.LoadAPIKeyError({message:`${n} API key is missing. Pass it using the '${t}' parameter or the ${e} environment variable.`});if(typeof r!="string")throw new lt.LoadAPIKeyError({message:`${n} API key must be a string. The value of the ${e} environment variable is not a string.`});return r}function ja({settingValue:r,environmentVariableName:e}){if(typeof r=="string")return r;if(!(r!=null||typeof process>"u")&&(r=process.env[e],!(r==null||typeof r!="string")))return r}var ut=H();function Na({settingValue:r,environmentVariableName:e,settingName:t,description:n}){if(typeof r=="string")return r;if(r!=null)throw new ut.LoadSettingError({message:`${n} setting must be a string.`});if(typeof process>"u")throw new ut.LoadSettingError({message:`${n} setting is missing. Pass it using the '${t}' parameter. Environment variables is not supported in this environment.`});if(r=process.env[e],r==null)throw new ut.LoadSettingError({message:`${n} setting is missing. Pass it using the '${t}' parameter or the ${e} environment variable.`});if(typeof r!="string")throw new ut.LoadSettingError({message:`${n} setting must be a string. The value of the ${e} environment variable is not a string.`});return r}var Be=H(),Qt=xa(Gn()),Xt=H(),ct=Symbol.for("vercel.ai.validator");function eo(r){return {[ct]:true,validate:r}}function to(r){return typeof r=="object"&&r!==null&&ct in r&&r[ct]===true&&"validate"in r}function ro(r){return to(r)?r:no(r)}function no(r){return eo(e=>{let t=r.safeParse(e);return t.success?{success:true,value:t.data}:{success:false,error:t.error}})}function oo({value:r,schema:e}){let t=pt({value:r,schema:e});if(!t.success)throw Xt.TypeValidationError.wrap({value:r,cause:t.error});return t.value}function pt({value:r,schema:e}){let t=ro(e);try{if(t.validate==null)return {success:!0,value:r};let n=t.validate(r);return n.success?n:{success:!1,error:Xt.TypeValidationError.wrap({value:r,cause:n.error})}}catch(n){return {success:false,error:Xt.TypeValidationError.wrap({value:r,cause:n})}}}function so({text:r,schema:e}){try{let t=Qt.default.parse(r);return e==null?t:oo({value:t,schema:e})}catch(t){throw Be.JSONParseError.isInstance(t)||Be.TypeValidationError.isInstance(t)?t:new Be.JSONParseError({text:r,cause:t})}}function gt({text:r,schema:e}){try{let t=Qt.default.parse(r);if(e==null)return {success:!0,value:t,rawValue:t};let n=pt({value:t,schema:e});return n.success?{...n,rawValue:t}:n}catch(t){return {success:false,error:Be.JSONParseError.isInstance(t)?t:new Be.JSONParseError({text:r,cause:t})}}}function $a(r){try{return Qt.default.parse(r),!0}catch{return false}}var Da=H();function La({provider:r,providerOptions:e,schema:t}){if(e?.[r]==null)return;let n=pt({value:e[r],schema:t});if(!n.success)throw new Da.InvalidArgumentError({argument:"providerOptions",message:`invalid ${r} provider options`,cause:n.error});return n.value}var Ue=H(),Ha=()=>globalThis.fetch,qa=async({url:r,headers:e,body:t,failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i})=>Zt({url:r,headers:{"Content-Type":"application/json",...e},body:{content:JSON.stringify(t),values:t},failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i}),Fa=async({url:r,headers:e,formData:t,failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i})=>Zt({url:r,headers:e,body:{content:t,values:Object.fromEntries(t.entries())},failedResponseHandler:n,successfulResponseHandler:o,abortSignal:s,fetch:i}),Zt=async({url:r,headers:e={},body:t,successfulResponseHandler:n,failedResponseHandler:o,abortSignal:s,fetch:i=Ha()})=>{try{let a=await i(r,{method:"POST",headers:Yt(e),body:t.content,signal:s}),l=ge(a);if(!a.ok){let u;try{u=await o({response:a,url:r,requestBodyValues:t.values});}catch(c){throw Te(c)||Ue.APICallError.isInstance(c)?c:new Ue.APICallError({message:"Failed to process error response",cause:c,statusCode:a.status,url:r,responseHeaders:l,requestBodyValues:t.values})}throw u.value}try{return await n({response:a,url:r,requestBodyValues:t.values})}catch(u){throw u instanceof Error&&(Te(u)||Ue.APICallError.isInstance(u))?u:new Ue.APICallError({message:"Failed to process successful response",cause:u,statusCode:a.status,url:r,responseHeaders:l,requestBodyValues:t.values})}}catch(a){if(Te(a))throw a;if(a instanceof TypeError&&a.message==="fetch failed"){let l=a.cause;if(l!=null)throw new Ue.APICallError({message:`Cannot connect to API: ${l.message}`,cause:l,url:r,requestBodyValues:t.values,isRetryable:true})}throw a}};async function Ua(r){return typeof r=="function"&&(r=r()),Promise.resolve(r)}var pe=H(),Ba=({errorSchema:r,errorToMessage:e,isRetryable:t})=>async({response:n,url:o,requestBodyValues:s})=>{let i=await n.text(),a=ge(n);if(i.trim()==="")return {responseHeaders:a,value:new pe.APICallError({message:n.statusText,url:o,requestBodyValues:s,statusCode:n.status,responseHeaders:a,responseBody:i,isRetryable:t?.(n)})};try{let l=so({text:i,schema:r});return {responseHeaders:a,value:new pe.APICallError({message:e(l),url:o,requestBodyValues:s,statusCode:n.status,responseHeaders:a,responseBody:i,data:l,isRetryable:t?.(n,l)})}}catch{return {responseHeaders:a,value:new pe.APICallError({message:n.statusText,url:o,requestBodyValues:s,statusCode:n.status,responseHeaders:a,responseBody:i,isRetryable:t?.(n)})}}},Ja=r=>async({response:e})=>{let t=ge(e);if(e.body==null)throw new pe.EmptyResponseBodyError({});return {responseHeaders:t,value:e.body.pipeThrough(new TextDecoderStream).pipeThrough(Qn()).pipeThrough(new TransformStream({transform({data:n},o){n!=="[DONE]"&&o.enqueue(gt({text:n,schema:r}));}}))}},Wa=r=>async({response:e})=>{let t=ge(e);if(e.body==null)throw new pe.EmptyResponseBodyError({});let n="";return {responseHeaders:t,value:e.body.pipeThrough(new TextDecoderStream).pipeThrough(new TransformStream({transform(o,s){o.endsWith(`
|
|
22
|
+
`)?(s.enqueue(gt({text:n+o,schema:r})),n=""):n+=o;}}))}},Va=r=>async({response:e,url:t,requestBodyValues:n})=>{let o=await e.text(),s=gt({text:o,schema:r}),i=ge(e);if(!s.success)throw new pe.APICallError({message:"Invalid JSON response",cause:s.error,statusCode:e.status,responseHeaders:i,responseBody:o,url:t,requestBodyValues:n});return {responseHeaders:i,value:s.value,rawValue:s.rawValue}},Ka=()=>async({response:r,url:e,requestBodyValues:t})=>{let n=ge(r);if(!r.body)throw new pe.APICallError({message:"Response body is empty",url:e,requestBodyValues:t,statusCode:r.status,responseHeaders:n,responseBody:void 0});try{let o=await r.arrayBuffer();return {responseHeaders:n,value:new Uint8Array(o)}}catch(o){throw new pe.APICallError({message:"Failed to read response as array buffer",url:e,requestBodyValues:t,statusCode:r.status,responseHeaders:n,responseBody:void 0,cause:o})}},Ga=()=>async({response:r,url:e,requestBodyValues:t})=>{let n=ge(r),o=await r.text();return {responseHeaders:n,value:new pe.APICallError({message:r.statusText,url:e,requestBodyValues:t,statusCode:r.status,responseHeaders:n,responseBody:o})}},{btoa:Xa,atob:Ya}=globalThis;function Qa(r){let e=r.replace(/-/g,"+").replace(/_/g,"/"),t=Ya(e);return Uint8Array.from(t,n=>n.codePointAt(0))}function Za(r){let e="";for(let t=0;t<r.length;t++)e+=String.fromCodePoint(r[t]);return Xa(e)}function el(r){return r?.replace(/\/$/,"")}});var ar=be((dm,wo)=>{y();var sr=Object.defineProperty,tl=Object.getOwnPropertyDescriptor,rl=Object.getOwnPropertyNames,nl=Object.prototype.hasOwnProperty,ol=(r,e)=>{for(var t in e)sr(r,t,{get:e[t],enumerable:true});},sl=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of rl(e))!nl.call(r,o)&&o!==t&&sr(r,o,{get:()=>e[o],enumerable:!(n=tl(e,o))||n.enumerable});return r},il=r=>sl(sr({},"__esModule",{value:true}),r),fo={};ol(fo,{createOpenAI:()=>vo,openai:()=>cu});wo.exports=il(fo);var ao=V(),Je=H(),Q=V(),A=U("zod"),er=H(),al=V();function ll({prompt:r,useLegacyFunctionCalling:e=false,systemMessageMode:t="system"}){let n=[],o=[];for(let{role:s,content:i}of r)switch(s){case "system":{switch(t){case "system":{n.push({role:"system",content:i});break}case "developer":{n.push({role:"developer",content:i});break}case "remove":{o.push({type:"other",message:"system messages are removed for this model"});break}default:{let a=t;throw new Error(`Unsupported system message mode: ${a}`)}}break}case "user":{if(i.length===1&&i[0].type==="text"){n.push({role:"user",content:i[0].text});break}n.push({role:"user",content:i.map((a,l)=>{var u,c,d,p;switch(a.type){case "text":return {type:"text",text:a.text};case "image":return {type:"image_url",image_url:{url:a.image instanceof URL?a.image.toString():`data:${(u=a.mimeType)!=null?u:"image/jpeg"};base64,${(0, al.convertUint8ArrayToBase64)(a.image)}`,detail:(d=(c=a.providerMetadata)==null?void 0:c.openai)==null?void 0:d.imageDetail}};case "file":{if(a.data instanceof URL)throw new er.UnsupportedFunctionalityError({functionality:"'File content parts with URL data' functionality not supported."});switch(a.mimeType){case "audio/wav":return {type:"input_audio",input_audio:{data:a.data,format:"wav"}};case "audio/mp3":case "audio/mpeg":return {type:"input_audio",input_audio:{data:a.data,format:"mp3"}};case "application/pdf":return {type:"file",file:{filename:(p=a.filename)!=null?p:`part-${l}.pdf`,file_data:`data:application/pdf;base64,${a.data}`}};default:throw new er.UnsupportedFunctionalityError({functionality:`File content part type ${a.mimeType} in user messages`})}}}})});break}case "assistant":{let a="",l=[];for(let u of i)switch(u.type){case "text":{a+=u.text;break}case "tool-call":{l.push({id:u.toolCallId,type:"function",function:{name:u.toolName,arguments:JSON.stringify(u.args)}});break}}if(e){if(l.length>1)throw new er.UnsupportedFunctionalityError({functionality:"useLegacyFunctionCalling with multiple tool calls in one message"});n.push({role:"assistant",content:a,function_call:l.length>0?l[0].function:void 0});}else n.push({role:"assistant",content:a,tool_calls:l.length>0?l:void 0});break}case "tool":{for(let a of i)e?n.push({role:"function",name:a.toolName,content:JSON.stringify(a.result)}):n.push({role:"tool",tool_call_id:a.toolCallId,content:JSON.stringify(a.result)});break}default:{let a=s;throw new Error(`Unsupported role: ${a}`)}}return {messages:n,warnings:o}}function lo(r){var e,t;return (t=(e=r?.content)==null?void 0:e.map(({token:n,logprob:o,top_logprobs:s})=>({token:n,logprob:o,topLogprobs:s?s.map(({token:i,logprob:a})=>({token:i,logprob:a})):[]})))!=null?t:void 0}function vt(r){switch(r){case "stop":return "stop";case "length":return "length";case "content_filter":return "content-filter";case "function_call":case "tool_calls":return "tool-calls";default:return "unknown"}}var ve=U("zod"),ul=V(),ir=ve.z.object({error:ve.z.object({message:ve.z.string(),type:ve.z.string().nullish(),param:ve.z.any().nullish(),code:ve.z.union([ve.z.string(),ve.z.number()]).nullish()})}),ae=(0, ul.createJsonErrorResponseHandler)({errorSchema:ir,errorToMessage:r=>r.error.message});function wt({id:r,model:e,created:t}){return {id:r??void 0,modelId:e??void 0,timestamp:t!=null?new Date(t*1e3):void 0}}var uo=H();function cl({mode:r,useLegacyFunctionCalling:e=false,structuredOutputs:t}){var n;let o=(n=r.tools)!=null&&n.length?r.tools:void 0,s=[];if(o==null)return {tools:void 0,tool_choice:void 0,toolWarnings:s};let i=r.toolChoice;if(e){let u=[];for(let d of o)d.type==="provider-defined"?s.push({type:"unsupported-tool",tool:d}):u.push({name:d.name,description:d.description,parameters:d.parameters});if(i==null)return {functions:u,function_call:void 0,toolWarnings:s};switch(i.type){case "auto":case "none":case void 0:return {functions:u,function_call:void 0,toolWarnings:s};case "required":throw new uo.UnsupportedFunctionalityError({functionality:"useLegacyFunctionCalling and toolChoice: required"});default:return {functions:u,function_call:{name:i.toolName},toolWarnings:s}}}let a=[];for(let u of o)u.type==="provider-defined"?s.push({type:"unsupported-tool",tool:u}):a.push({type:"function",function:{name:u.name,description:u.description,parameters:u.parameters,strict:t?true:void 0}});if(i==null)return {tools:a,tool_choice:void 0,toolWarnings:s};let l=i.type;switch(l){case "auto":case "none":case "required":return {tools:a,tool_choice:l,toolWarnings:s};case "tool":return {tools:a,tool_choice:{type:"function",function:{name:i.toolName}},toolWarnings:s};default:{let u=l;throw new uo.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${u}`})}}}var dl=class{constructor(r,e,t){this.specificationVersion="v1",this.modelId=r,this.settings=e,this.config=t;}get supportsStructuredOutputs(){var r;return (r=this.settings.structuredOutputs)!=null?r:or(this.modelId)}get defaultObjectGenerationMode(){return ml(this.modelId)?"tool":this.supportsStructuredOutputs?"json":"tool"}get provider(){return this.config.provider}get supportsImageUrls(){return !this.settings.downloadImages}getArgs({mode:r,prompt:e,maxTokens:t,temperature:n,topP:o,topK:s,frequencyPenalty:i,presencePenalty:a,stopSequences:l,responseFormat:u,seed:c,providerMetadata:d}){var p,m,h,f,g,v,_,T;let w=r.type,x=[];s!=null&&x.push({type:"unsupported-setting",setting:"topK"}),u?.type==="json"&&u.schema!=null&&!this.supportsStructuredOutputs&&x.push({type:"unsupported-setting",setting:"responseFormat",details:"JSON response format schema is only supported with structuredOutputs"});let S=this.settings.useLegacyFunctionCalling;if(S&&this.settings.parallelToolCalls===true)throw new Je.UnsupportedFunctionalityError({functionality:"useLegacyFunctionCalling with parallelToolCalls"});if(S&&this.supportsStructuredOutputs)throw new Je.UnsupportedFunctionalityError({functionality:"structuredOutputs with useLegacyFunctionCalling"});let{messages:z,warnings:C}=ll({prompt:e,useLegacyFunctionCalling:S,systemMessageMode:fl(this.modelId)});x.push(...C);let k={model:this.modelId,logit_bias:this.settings.logitBias,logprobs:this.settings.logprobs===true||typeof this.settings.logprobs=="number"?true:void 0,top_logprobs:typeof this.settings.logprobs=="number"?this.settings.logprobs:typeof this.settings.logprobs=="boolean"&&this.settings.logprobs?0:void 0,user:this.settings.user,parallel_tool_calls:this.settings.parallelToolCalls,max_tokens:t,temperature:n,top_p:o,frequency_penalty:i,presence_penalty:a,response_format:u?.type==="json"?this.supportsStructuredOutputs&&u.schema!=null?{type:"json_schema",json_schema:{schema:u.schema,strict:true,name:(p=u.name)!=null?p:"response",description:u.description}}:{type:"json_object"}:void 0,stop:l,seed:c,max_completion_tokens:(m=d?.openai)==null?void 0:m.maxCompletionTokens,store:(h=d?.openai)==null?void 0:h.store,metadata:(f=d?.openai)==null?void 0:f.metadata,prediction:(g=d?.openai)==null?void 0:g.prediction,reasoning_effort:(_=(v=d?.openai)==null?void 0:v.reasoningEffort)!=null?_:this.settings.reasoningEffort,messages:z};switch(or(this.modelId)?(k.temperature!=null&&(k.temperature=void 0,x.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported for reasoning models"})),k.top_p!=null&&(k.top_p=void 0,x.push({type:"unsupported-setting",setting:"topP",details:"topP is not supported for reasoning models"})),k.frequency_penalty!=null&&(k.frequency_penalty=void 0,x.push({type:"unsupported-setting",setting:"frequencyPenalty",details:"frequencyPenalty is not supported for reasoning models"})),k.presence_penalty!=null&&(k.presence_penalty=void 0,x.push({type:"unsupported-setting",setting:"presencePenalty",details:"presencePenalty is not supported for reasoning models"})),k.logit_bias!=null&&(k.logit_bias=void 0,x.push({type:"other",message:"logitBias is not supported for reasoning models"})),k.logprobs!=null&&(k.logprobs=void 0,x.push({type:"other",message:"logprobs is not supported for reasoning models"})),k.top_logprobs!=null&&(k.top_logprobs=void 0,x.push({type:"other",message:"topLogprobs is not supported for reasoning models"})),k.max_tokens!=null&&(k.max_completion_tokens==null&&(k.max_completion_tokens=k.max_tokens),k.max_tokens=void 0)):(this.modelId.startsWith("gpt-4o-search-preview")||this.modelId.startsWith("gpt-4o-mini-search-preview"))&&k.temperature!=null&&(k.temperature=void 0,x.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported for the search preview models and has been removed."})),w){case "regular":{let{tools:O,tool_choice:I,functions:J,function_call:G,toolWarnings:L}=cl({mode:r,useLegacyFunctionCalling:S,structuredOutputs:this.supportsStructuredOutputs});return {args:{...k,tools:O,tool_choice:I,functions:J,function_call:G},warnings:[...x,...L]}}case "object-json":return {args:{...k,response_format:this.supportsStructuredOutputs&&r.schema!=null?{type:"json_schema",json_schema:{schema:r.schema,strict:true,name:(T=r.name)!=null?T:"response",description:r.description}}:{type:"json_object"}},warnings:x};case "object-tool":return {args:S?{...k,function_call:{name:r.tool.name},functions:[{name:r.tool.name,description:r.tool.description,parameters:r.tool.parameters}]}:{...k,tool_choice:{type:"function",function:{name:r.tool.name}},tools:[{type:"function",function:{name:r.tool.name,description:r.tool.description,parameters:r.tool.parameters,strict:this.supportsStructuredOutputs?true:void 0}}]},warnings:x};default:{let O=w;throw new Error(`Unsupported type: ${O}`)}}}async doGenerate(r){var e,t,n,o,s,i,a,l;let{args:u,warnings:c}=this.getArgs(r),{responseHeaders:d,value:p,rawValue:m}=await(0, Q.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0, Q.combineHeaders)(this.config.headers(),r.headers),body:u,failedResponseHandler:ae,successfulResponseHandler:(0, Q.createJsonResponseHandler)(pl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:h,...f}=u,g=p.choices[0],v=(e=p.usage)==null?void 0:e.completion_tokens_details,_=(t=p.usage)==null?void 0:t.prompt_tokens_details,T={openai:{}};return v?.reasoning_tokens!=null&&(T.openai.reasoningTokens=v?.reasoning_tokens),v?.accepted_prediction_tokens!=null&&(T.openai.acceptedPredictionTokens=v?.accepted_prediction_tokens),v?.rejected_prediction_tokens!=null&&(T.openai.rejectedPredictionTokens=v?.rejected_prediction_tokens),_?.cached_tokens!=null&&(T.openai.cachedPromptTokens=_?.cached_tokens),{text:(n=g.message.content)!=null?n:void 0,toolCalls:this.settings.useLegacyFunctionCalling&&g.message.function_call?[{toolCallType:"function",toolCallId:(0, Q.generateId)(),toolName:g.message.function_call.name,args:g.message.function_call.arguments}]:(o=g.message.tool_calls)==null?void 0:o.map(w=>{var x;return {toolCallType:"function",toolCallId:(x=w.id)!=null?x:(0, Q.generateId)(),toolName:w.function.name,args:w.function.arguments}}),finishReason:vt(g.finish_reason),usage:{promptTokens:(i=(s=p.usage)==null?void 0:s.prompt_tokens)!=null?i:NaN,completionTokens:(l=(a=p.usage)==null?void 0:a.completion_tokens)!=null?l:NaN},rawCall:{rawPrompt:h,rawSettings:f},rawResponse:{headers:d,body:m},request:{body:JSON.stringify(u)},response:wt(p),warnings:c,logprobs:lo(g.logprobs),providerMetadata:T}}async doStream(r){if(this.settings.simulateStreaming){let f=await this.doGenerate(r);return {stream:new ReadableStream({start(v){if(v.enqueue({type:"response-metadata",...f.response}),f.text&&v.enqueue({type:"text-delta",textDelta:f.text}),f.toolCalls)for(let _ of f.toolCalls)v.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:_.toolCallId,toolName:_.toolName,argsTextDelta:_.args}),v.enqueue({type:"tool-call",..._});v.enqueue({type:"finish",finishReason:f.finishReason,usage:f.usage,logprobs:f.logprobs,providerMetadata:f.providerMetadata}),v.close();}}),rawCall:f.rawCall,rawResponse:f.rawResponse,warnings:f.warnings}}let{args:e,warnings:t}=this.getArgs(r),n={...e,stream:true,stream_options:this.config.compatibility==="strict"?{include_usage:true}:void 0},{responseHeaders:o,value:s}=await(0, Q.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0, Q.combineHeaders)(this.config.headers(),r.headers),body:n,failedResponseHandler:ae,successfulResponseHandler:(0, Q.createEventSourceResponseHandler)(gl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:i,...a}=e,l=[],u="unknown",c={promptTokens:void 0,completionTokens:void 0},d,p=true,{useLegacyFunctionCalling:m}=this.settings,h={openai:{}};return {stream:s.pipeThrough(new TransformStream({transform(f,g){var v,_,T,w,x,S,z,C,k,O,I,J;if(!f.success){u="error",g.enqueue({type:"error",error:f.error});return}let G=f.value;if("error"in G){u="error",g.enqueue({type:"error",error:G.error});return}if(p&&(p=false,g.enqueue({type:"response-metadata",...wt(G)})),G.usage!=null){let{prompt_tokens:q,completion_tokens:X,prompt_tokens_details:W,completion_tokens_details:F}=G.usage;c={promptTokens:q??void 0,completionTokens:X??void 0},F?.reasoning_tokens!=null&&(h.openai.reasoningTokens=F?.reasoning_tokens),F?.accepted_prediction_tokens!=null&&(h.openai.acceptedPredictionTokens=F?.accepted_prediction_tokens),F?.rejected_prediction_tokens!=null&&(h.openai.rejectedPredictionTokens=F?.rejected_prediction_tokens),W?.cached_tokens!=null&&(h.openai.cachedPromptTokens=W?.cached_tokens);}let L=G.choices[0];if(L?.finish_reason!=null&&(u=vt(L.finish_reason)),L?.delta==null)return;let we=L.delta;we.content!=null&&g.enqueue({type:"text-delta",textDelta:we.content});let ee=lo(L?.logprobs);ee?.length&&(d===void 0&&(d=[]),d.push(...ee));let re=m&&we.function_call!=null?[{type:"function",id:(0, Q.generateId)(),function:we.function_call,index:0}]:we.tool_calls;if(re!=null)for(let q of re){let X=q.index;if(l[X]==null){if(q.type!=="function")throw new Je.InvalidResponseDataError({data:q,message:"Expected 'function' type."});if(q.id==null)throw new Je.InvalidResponseDataError({data:q,message:"Expected 'id' to be a string."});if(((v=q.function)==null?void 0:v.name)==null)throw new Je.InvalidResponseDataError({data:q,message:"Expected 'function.name' to be a string."});l[X]={id:q.id,type:"function",function:{name:q.function.name,arguments:(_=q.function.arguments)!=null?_:""},hasFinished:false};let F=l[X];((T=F.function)==null?void 0:T.name)!=null&&((w=F.function)==null?void 0:w.arguments)!=null&&(F.function.arguments.length>0&&g.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:F.id,toolName:F.function.name,argsTextDelta:F.function.arguments}),(0, Q.isParsableJson)(F.function.arguments)&&(g.enqueue({type:"tool-call",toolCallType:"function",toolCallId:(x=F.id)!=null?x:(0, Q.generateId)(),toolName:F.function.name,args:F.function.arguments}),F.hasFinished=true));continue}let W=l[X];W.hasFinished||(((S=q.function)==null?void 0:S.arguments)!=null&&(W.function.arguments+=(C=(z=q.function)==null?void 0:z.arguments)!=null?C:""),g.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:W.id,toolName:W.function.name,argsTextDelta:(k=q.function.arguments)!=null?k:""}),((O=W.function)==null?void 0:O.name)!=null&&((I=W.function)==null?void 0:I.arguments)!=null&&(0, Q.isParsableJson)(W.function.arguments)&&(g.enqueue({type:"tool-call",toolCallType:"function",toolCallId:(J=W.id)!=null?J:(0, Q.generateId)(),toolName:W.function.name,args:W.function.arguments}),W.hasFinished=true));}},flush(f){var g,v;f.enqueue({type:"finish",finishReason:u,logprobs:d,usage:{promptTokens:(g=c.promptTokens)!=null?g:NaN,completionTokens:(v=c.completionTokens)!=null?v:NaN},...h!=null?{providerMetadata:h}:{}});}})),rawCall:{rawPrompt:i,rawSettings:a},rawResponse:{headers:o},request:{body:JSON.stringify(n)},warnings:t}}},ho=A.z.object({prompt_tokens:A.z.number().nullish(),completion_tokens:A.z.number().nullish(),prompt_tokens_details:A.z.object({cached_tokens:A.z.number().nullish()}).nullish(),completion_tokens_details:A.z.object({reasoning_tokens:A.z.number().nullish(),accepted_prediction_tokens:A.z.number().nullish(),rejected_prediction_tokens:A.z.number().nullish()}).nullish()}).nullish(),pl=A.z.object({id:A.z.string().nullish(),created:A.z.number().nullish(),model:A.z.string().nullish(),choices:A.z.array(A.z.object({message:A.z.object({role:A.z.literal("assistant").nullish(),content:A.z.string().nullish(),function_call:A.z.object({arguments:A.z.string(),name:A.z.string()}).nullish(),tool_calls:A.z.array(A.z.object({id:A.z.string().nullish(),type:A.z.literal("function"),function:A.z.object({name:A.z.string(),arguments:A.z.string()})})).nullish()}),index:A.z.number(),logprobs:A.z.object({content:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number(),top_logprobs:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number()}))})).nullable()}).nullish(),finish_reason:A.z.string().nullish()})),usage:ho}),gl=A.z.union([A.z.object({id:A.z.string().nullish(),created:A.z.number().nullish(),model:A.z.string().nullish(),choices:A.z.array(A.z.object({delta:A.z.object({role:A.z.enum(["assistant"]).nullish(),content:A.z.string().nullish(),function_call:A.z.object({name:A.z.string().optional(),arguments:A.z.string().optional()}).nullish(),tool_calls:A.z.array(A.z.object({index:A.z.number(),id:A.z.string().nullish(),type:A.z.literal("function").nullish(),function:A.z.object({name:A.z.string().nullish(),arguments:A.z.string().nullish()})})).nullish()}).nullish(),logprobs:A.z.object({content:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number(),top_logprobs:A.z.array(A.z.object({token:A.z.string(),logprob:A.z.number()}))})).nullable()}).nullish(),finish_reason:A.z.string().nullish(),index:A.z.number()})),usage:ho}),ir]);function or(r){return r.startsWith("o")||r.startsWith("gpt-5")}function ml(r){return r.startsWith("gpt-4o-audio-preview")}function fl(r){var e,t;return or(r)?(t=(e=hl[r])==null?void 0:e.systemMessageMode)!=null?t:"developer":"system"}var hl={"o1-mini":{systemMessageMode:"remove"},"o1-mini-2024-09-12":{systemMessageMode:"remove"},"o1-preview":{systemMessageMode:"remove"},"o1-preview-2024-09-12":{systemMessageMode:"remove"},o3:{systemMessageMode:"developer"},"o3-2025-04-16":{systemMessageMode:"developer"},"o3-mini":{systemMessageMode:"developer"},"o3-mini-2025-01-31":{systemMessageMode:"developer"},"o4-mini":{systemMessageMode:"developer"},"o4-mini-2025-04-16":{systemMessageMode:"developer"}},mt=H(),Ie=V(),M=U("zod"),ft=H();function yl({prompt:r,inputFormat:e,user:t="user",assistant:n="assistant"}){if(e==="prompt"&&r.length===1&&r[0].role==="user"&&r[0].content.length===1&&r[0].content[0].type==="text")return {prompt:r[0].content[0].text};let o="";r[0].role==="system"&&(o+=`${r[0].content}
|
|
23
|
+
|
|
24
|
+
`,r=r.slice(1));for(let{role:s,content:i}of r)switch(s){case "system":throw new ft.InvalidPromptError({message:"Unexpected system message in prompt: ${content}",prompt:r});case "user":{let a=i.map(l=>{switch(l.type){case "text":return l.text;case "image":throw new ft.UnsupportedFunctionalityError({functionality:"images"})}}).join("");o+=`${t}:
|
|
25
|
+
${a}
|
|
26
|
+
|
|
27
|
+
`;break}case "assistant":{let a=i.map(l=>{switch(l.type){case "text":return l.text;case "tool-call":throw new ft.UnsupportedFunctionalityError({functionality:"tool-call messages"})}}).join("");o+=`${n}:
|
|
28
|
+
${a}
|
|
29
|
+
|
|
30
|
+
`;break}case "tool":throw new ft.UnsupportedFunctionalityError({functionality:"tool messages"});default:{let a=s;throw new Error(`Unsupported role: ${a}`)}}return o+=`${n}:
|
|
31
|
+
`,{prompt:o,stopSequences:[`
|
|
32
|
+
${t}:`]}}function co(r){return r?.tokens.map((e,t)=>({token:e,logprob:r.token_logprobs[t],topLogprobs:r.top_logprobs?Object.entries(r.top_logprobs[t]).map(([n,o])=>({token:n,logprob:o})):[]}))}var vl=class{constructor(r,e,t){this.specificationVersion="v1",this.defaultObjectGenerationMode=void 0,this.modelId=r,this.settings=e,this.config=t;}get provider(){return this.config.provider}getArgs({mode:r,inputFormat:e,prompt:t,maxTokens:n,temperature:o,topP:s,topK:i,frequencyPenalty:a,presencePenalty:l,stopSequences:u,responseFormat:c,seed:d}){var p;let m=r.type,h=[];i!=null&&h.push({type:"unsupported-setting",setting:"topK"}),c!=null&&c.type!=="text"&&h.push({type:"unsupported-setting",setting:"responseFormat",details:"JSON response format is not supported."});let{prompt:f,stopSequences:g}=yl({prompt:t,inputFormat:e}),v=[...g??[],...u??[]],_={model:this.modelId,echo:this.settings.echo,logit_bias:this.settings.logitBias,logprobs:typeof this.settings.logprobs=="number"?this.settings.logprobs:typeof this.settings.logprobs=="boolean"&&this.settings.logprobs?0:void 0,suffix:this.settings.suffix,user:this.settings.user,max_tokens:n,temperature:o,top_p:s,frequency_penalty:a,presence_penalty:l,seed:d,prompt:f,stop:v.length>0?v:void 0};switch(m){case "regular":{if((p=r.tools)!=null&&p.length)throw new mt.UnsupportedFunctionalityError({functionality:"tools"});if(r.toolChoice)throw new mt.UnsupportedFunctionalityError({functionality:"toolChoice"});return {args:_,warnings:h}}case "object-json":throw new mt.UnsupportedFunctionalityError({functionality:"object-json mode"});case "object-tool":throw new mt.UnsupportedFunctionalityError({functionality:"object-tool mode"});default:{let T=m;throw new Error(`Unsupported type: ${T}`)}}}async doGenerate(r){let{args:e,warnings:t}=this.getArgs(r),{responseHeaders:n,value:o,rawValue:s}=await(0, Ie.postJsonToApi)({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:(0, Ie.combineHeaders)(this.config.headers(),r.headers),body:e,failedResponseHandler:ae,successfulResponseHandler:(0, Ie.createJsonResponseHandler)(wl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{prompt:i,...a}=e,l=o.choices[0];return {text:l.text,usage:{promptTokens:o.usage.prompt_tokens,completionTokens:o.usage.completion_tokens},finishReason:vt(l.finish_reason),logprobs:co(l.logprobs),rawCall:{rawPrompt:i,rawSettings:a},rawResponse:{headers:n,body:s},response:wt(o),warnings:t,request:{body:JSON.stringify(e)}}}async doStream(r){let{args:e,warnings:t}=this.getArgs(r),n={...e,stream:true,stream_options:this.config.compatibility==="strict"?{include_usage:true}:void 0},{responseHeaders:o,value:s}=await(0, Ie.postJsonToApi)({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:(0, Ie.combineHeaders)(this.config.headers(),r.headers),body:n,failedResponseHandler:ae,successfulResponseHandler:(0, Ie.createEventSourceResponseHandler)(bl),abortSignal:r.abortSignal,fetch:this.config.fetch}),{prompt:i,...a}=e,l="unknown",u={promptTokens:Number.NaN,completionTokens:Number.NaN},c,d=true;return {stream:s.pipeThrough(new TransformStream({transform(p,m){if(!p.success){l="error",m.enqueue({type:"error",error:p.error});return}let h=p.value;if("error"in h){l="error",m.enqueue({type:"error",error:h.error});return}d&&(d=false,m.enqueue({type:"response-metadata",...wt(h)})),h.usage!=null&&(u={promptTokens:h.usage.prompt_tokens,completionTokens:h.usage.completion_tokens});let f=h.choices[0];f?.finish_reason!=null&&(l=vt(f.finish_reason)),f?.text!=null&&m.enqueue({type:"text-delta",textDelta:f.text});let g=co(f?.logprobs);g?.length&&(c===void 0&&(c=[]),c.push(...g));},flush(p){p.enqueue({type:"finish",finishReason:l,logprobs:c,usage:u});}})),rawCall:{rawPrompt:i,rawSettings:a},rawResponse:{headers:o},warnings:t,request:{body:JSON.stringify(n)}}}},wl=M.z.object({id:M.z.string().nullish(),created:M.z.number().nullish(),model:M.z.string().nullish(),choices:M.z.array(M.z.object({text:M.z.string(),finish_reason:M.z.string(),logprobs:M.z.object({tokens:M.z.array(M.z.string()),token_logprobs:M.z.array(M.z.number()),top_logprobs:M.z.array(M.z.record(M.z.string(),M.z.number())).nullable()}).nullish()})),usage:M.z.object({prompt_tokens:M.z.number(),completion_tokens:M.z.number()})}),bl=M.z.union([M.z.object({id:M.z.string().nullish(),created:M.z.number().nullish(),model:M.z.string().nullish(),choices:M.z.array(M.z.object({text:M.z.string(),finish_reason:M.z.string().nullish(),index:M.z.number(),logprobs:M.z.object({tokens:M.z.array(M.z.string()),token_logprobs:M.z.array(M.z.number()),top_logprobs:M.z.array(M.z.record(M.z.string(),M.z.number())).nullable()}).nullish()})),usage:M.z.object({prompt_tokens:M.z.number(),completion_tokens:M.z.number()}).nullish()}),ir]),_l=H(),tr=V(),Pe=U("zod"),xl=class{constructor(r,e,t){this.specificationVersion="v1",this.modelId=r,this.settings=e,this.config=t;}get provider(){return this.config.provider}get maxEmbeddingsPerCall(){var r;return (r=this.settings.maxEmbeddingsPerCall)!=null?r:2048}get supportsParallelCalls(){var r;return (r=this.settings.supportsParallelCalls)!=null?r:true}async doEmbed({values:r,headers:e,abortSignal:t}){if(r.length>this.maxEmbeddingsPerCall)throw new _l.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:r});let{responseHeaders:n,value:o}=await(0, tr.postJsonToApi)({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:(0, tr.combineHeaders)(this.config.headers(),e),body:{model:this.modelId,input:r,encoding_format:"float",dimensions:this.settings.dimensions,user:this.settings.user},failedResponseHandler:ae,successfulResponseHandler:(0, tr.createJsonResponseHandler)(kl),abortSignal:t,fetch:this.config.fetch});return {embeddings:o.data.map(s=>s.embedding),usage:o.usage?{tokens:o.usage.prompt_tokens}:void 0,rawResponse:{headers:n}}}},kl=Pe.z.object({data:Pe.z.array(Pe.z.object({embedding:Pe.z.array(Pe.z.number())})),usage:Pe.z.object({prompt_tokens:Pe.z.number()}).nullish()}),rr=V(),ht=U("zod"),Rl={"dall-e-3":1,"dall-e-2":10,"gpt-image-1":10},Cl=new Set(["gpt-image-1"]),Tl=class{constructor(r,e,t){this.modelId=r,this.settings=e,this.config=t,this.specificationVersion="v1";}get maxImagesPerCall(){var r,e;return (e=(r=this.settings.maxImagesPerCall)!=null?r:Rl[this.modelId])!=null?e:1}get provider(){return this.config.provider}async doGenerate({prompt:r,n:e,size:t,aspectRatio:n,seed:o,providerOptions:s,headers:i,abortSignal:a}){var l,u,c,d;let p=[];n!=null&&p.push({type:"unsupported-setting",setting:"aspectRatio",details:"This model does not support aspect ratio. Use `size` instead."}),o!=null&&p.push({type:"unsupported-setting",setting:"seed"});let m=(c=(u=(l=this.config._internal)==null?void 0:l.currentDate)==null?void 0:u.call(l))!=null?c:new Date,{value:h,responseHeaders:f}=await(0, rr.postJsonToApi)({url:this.config.url({path:"/images/generations",modelId:this.modelId}),headers:(0, rr.combineHeaders)(this.config.headers(),i),body:{model:this.modelId,prompt:r,n:e,size:t,...(d=s.openai)!=null?d:{},...Cl.has(this.modelId)?{}:{response_format:"b64_json"}},failedResponseHandler:ae,successfulResponseHandler:(0, rr.createJsonResponseHandler)(Pl),abortSignal:a,fetch:this.config.fetch});return {images:h.data.map(g=>g.b64_json),warnings:p,response:{timestamp:m,modelId:this.modelId,headers:f}}}},Pl=ht.z.object({data:ht.z.array(ht.z.object({b64_json:ht.z.string()}))}),We=V(),K=U("zod"),El=K.z.object({include:K.z.array(K.z.string()).nullish(),language:K.z.string().nullish(),prompt:K.z.string().nullish(),temperature:K.z.number().min(0).max(1).nullish().default(0),timestampGranularities:K.z.array(K.z.enum(["word","segment"])).nullish().default(["segment"])}),po={afrikaans:"af",arabic:"ar",armenian:"hy",azerbaijani:"az",belarusian:"be",bosnian:"bs",bulgarian:"bg",catalan:"ca",chinese:"zh",croatian:"hr",czech:"cs",danish:"da",dutch:"nl",english:"en",estonian:"et",finnish:"fi",french:"fr",galician:"gl",german:"de",greek:"el",hebrew:"he",hindi:"hi",hungarian:"hu",icelandic:"is",indonesian:"id",italian:"it",japanese:"ja",kannada:"kn",kazakh:"kk",korean:"ko",latvian:"lv",lithuanian:"lt",macedonian:"mk",malay:"ms",marathi:"mr",maori:"mi",nepali:"ne",norwegian:"no",persian:"fa",polish:"pl",portuguese:"pt",romanian:"ro",russian:"ru",serbian:"sr",slovak:"sk",slovenian:"sl",spanish:"es",swahili:"sw",swedish:"sv",tagalog:"tl",tamil:"ta",thai:"th",turkish:"tr",ukrainian:"uk",urdu:"ur",vietnamese:"vi",welsh:"cy"},Al=class{constructor(r,e){this.modelId=r,this.config=e,this.specificationVersion="v1";}get provider(){return this.config.provider}getArgs({audio:r,mediaType:e,providerOptions:t}){var n,o,s,i,a;let l=[],u=(0, We.parseProviderOptions)({provider:"openai",providerOptions:t,schema:El}),c=new FormData,d=r instanceof Uint8Array?new Blob([r]):new Blob([(0, We.convertBase64ToUint8Array)(r)]);if(c.append("model",this.modelId),c.append("file",new File([d],"audio",{type:e})),u){let p={include:(n=u.include)!=null?n:void 0,language:(o=u.language)!=null?o:void 0,prompt:(s=u.prompt)!=null?s:void 0,temperature:(i=u.temperature)!=null?i:void 0,timestamp_granularities:(a=u.timestampGranularities)!=null?a:void 0};for(let m in p){let h=p[m];h!==void 0&&c.append(m,String(h));}}return {formData:c,warnings:l}}async doGenerate(r){var e,t,n,o,s,i;let a=(n=(t=(e=this.config._internal)==null?void 0:e.currentDate)==null?void 0:t.call(e))!=null?n:new Date,{formData:l,warnings:u}=this.getArgs(r),{value:c,responseHeaders:d,rawValue:p}=await(0, We.postFormDataToApi)({url:this.config.url({path:"/audio/transcriptions",modelId:this.modelId}),headers:(0, We.combineHeaders)(this.config.headers(),r.headers),formData:l,failedResponseHandler:ae,successfulResponseHandler:(0, We.createJsonResponseHandler)(Sl),abortSignal:r.abortSignal,fetch:this.config.fetch}),m=c.language!=null&&c.language in po?po[c.language]:void 0;return {text:c.text,segments:(s=(o=c.words)==null?void 0:o.map(h=>({text:h.word,startSecond:h.start,endSecond:h.end})))!=null?s:[],language:m,durationInSeconds:(i=c.duration)!=null?i:void 0,warnings:u,response:{timestamp:a,modelId:this.modelId,headers:d,body:p}}}},Sl=K.z.object({text:K.z.string(),language:K.z.string().nullish(),duration:K.z.number().nullish(),words:K.z.array(K.z.object({word:K.z.string(),start:K.z.number(),end:K.z.number()})).nullish()}),Il=H(),me=V(),b=U("zod"),go=H(),Ol=V();function zl({prompt:r,systemMessageMode:e}){let t=[],n=[];for(let{role:o,content:s}of r)switch(o){case "system":{switch(e){case "system":{t.push({role:"system",content:s});break}case "developer":{t.push({role:"developer",content:s});break}case "remove":{n.push({type:"other",message:"system messages are removed for this model"});break}default:{let i=e;throw new Error(`Unsupported system message mode: ${i}`)}}break}case "user":{t.push({role:"user",content:s.map((i,a)=>{var l,u,c,d;switch(i.type){case "text":return {type:"input_text",text:i.text};case "image":return {type:"input_image",image_url:i.image instanceof URL?i.image.toString():`data:${(l=i.mimeType)!=null?l:"image/jpeg"};base64,${(0, Ol.convertUint8ArrayToBase64)(i.image)}`,detail:(c=(u=i.providerMetadata)==null?void 0:u.openai)==null?void 0:c.imageDetail};case "file":{if(i.data instanceof URL)throw new go.UnsupportedFunctionalityError({functionality:"File URLs in user messages"});if(i.mimeType==="application/pdf")return {type:"input_file",filename:(d=i.filename)!=null?d:`part-${a}.pdf`,file_data:`data:application/pdf;base64,${i.data}`};throw new go.UnsupportedFunctionalityError({functionality:"Only PDF files are supported in user messages"})}}})});break}case "assistant":{for(let i of s)switch(i.type){case "text":{t.push({role:"assistant",content:[{type:"output_text",text:i.text}]});break}case "tool-call":{t.push({type:"function_call",call_id:i.toolCallId,name:i.toolName,arguments:JSON.stringify(i.args)});break}}break}case "tool":{for(let i of s)t.push({type:"function_call_output",call_id:i.toolCallId,output:JSON.stringify(i.result)});break}default:{let i=o;throw new Error(`Unsupported role: ${i}`)}}return {messages:t,warnings:n}}function mo({finishReason:r,hasToolCalls:e}){switch(r){case void 0:case null:return e?"tool-calls":"stop";case "max_output_tokens":return "length";case "content_filter":return "content-filter";default:return e?"tool-calls":"unknown"}}var Ml=H();function jl({mode:r,strict:e}){var t;let n=(t=r.tools)!=null&&t.length?r.tools:void 0,o=[];if(n==null)return {tools:void 0,tool_choice:void 0,toolWarnings:o};let s=r.toolChoice,i=[];for(let l of n)switch(l.type){case "function":i.push({type:"function",name:l.name,description:l.description,parameters:l.parameters,strict:e?true:void 0});break;case "provider-defined":l.id==="openai.web_search_preview"?i.push({type:"web_search_preview",search_context_size:l.args.searchContextSize,user_location:l.args.userLocation}):o.push({type:"unsupported-tool",tool:l});break;default:o.push({type:"unsupported-tool",tool:l});break}if(s==null)return {tools:i,tool_choice:void 0,toolWarnings:o};let a=s.type;switch(a){case "auto":case "none":case "required":return {tools:i,tool_choice:a,toolWarnings:o};case "tool":return s.toolName==="web_search_preview"?{tools:i,tool_choice:{type:"web_search_preview"},toolWarnings:o}:{tools:i,tool_choice:{type:"function",name:s.toolName},toolWarnings:o};default:{let l=a;throw new Ml.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${l}`})}}}var Nl=class{constructor(r,e){this.specificationVersion="v1",this.defaultObjectGenerationMode="json",this.supportsStructuredOutputs=true,this.modelId=r,this.config=e;}get provider(){return this.config.provider}getArgs({mode:r,maxTokens:e,temperature:t,stopSequences:n,topP:o,topK:s,presencePenalty:i,frequencyPenalty:a,seed:l,prompt:u,providerMetadata:c,responseFormat:d}){var p,m,h;let f=[],g=ru(this.modelId),v=r.type;s!=null&&f.push({type:"unsupported-setting",setting:"topK"}),l!=null&&f.push({type:"unsupported-setting",setting:"seed"}),i!=null&&f.push({type:"unsupported-setting",setting:"presencePenalty"}),a!=null&&f.push({type:"unsupported-setting",setting:"frequencyPenalty"}),n!=null&&f.push({type:"unsupported-setting",setting:"stopSequences"});let{messages:_,warnings:T}=zl({prompt:u,systemMessageMode:g.systemMessageMode});f.push(...T);let w=(0, me.parseProviderOptions)({provider:"openai",providerOptions:c,schema:nu}),x=(p=w?.strictSchemas)!=null?p:true,S={model:this.modelId,input:_,temperature:t,top_p:o,max_output_tokens:e,...d?.type==="json"&&{text:{format:d.schema!=null?{type:"json_schema",strict:x,name:(m=d.name)!=null?m:"response",description:d.description,schema:d.schema}:{type:"json_object"}}},metadata:w?.metadata,parallel_tool_calls:w?.parallelToolCalls,previous_response_id:w?.previousResponseId,store:w?.store,user:w?.user,instructions:w?.instructions,...g.isReasoningModel&&(w?.reasoningEffort!=null||w?.reasoningSummary!=null)&&{reasoning:{...w?.reasoningEffort!=null&&{effort:w.reasoningEffort},...w?.reasoningSummary!=null&&{summary:w.reasoningSummary}}},...g.requiredAutoTruncation};switch(g.isReasoningModel&&(S.temperature!=null&&(S.temperature=void 0,f.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported for reasoning models"})),S.top_p!=null&&(S.top_p=void 0,f.push({type:"unsupported-setting",setting:"topP",details:"topP is not supported for reasoning models"}))),v){case "regular":{let{tools:z,tool_choice:C,toolWarnings:k}=jl({mode:r,strict:x});return {args:{...S,tools:z,tool_choice:C},warnings:[...f,...k]}}case "object-json":return {args:{...S,text:{format:r.schema!=null?{type:"json_schema",strict:x,name:(h=r.name)!=null?h:"response",description:r.description,schema:r.schema}:{type:"json_object"}}},warnings:f};case "object-tool":return {args:{...S,tool_choice:{type:"function",name:r.tool.name},tools:[{type:"function",name:r.tool.name,description:r.tool.description,parameters:r.tool.parameters,strict:x}]},warnings:f};default:{let z=v;throw new Error(`Unsupported type: ${z}`)}}}async doGenerate(r){var e,t,n,o,s,i,a;let{args:l,warnings:u}=this.getArgs(r),c=this.config.url({path:"/responses",modelId:this.modelId}),{responseHeaders:d,value:p,rawValue:m}=await(0, me.postJsonToApi)({url:c,headers:(0, me.combineHeaders)(this.config.headers(),r.headers),body:l,failedResponseHandler:ae,successfulResponseHandler:(0, me.createJsonResponseHandler)(b.z.object({id:b.z.string(),created_at:b.z.number(),error:b.z.object({message:b.z.string(),code:b.z.string()}).nullish(),model:b.z.string(),output:b.z.array(b.z.discriminatedUnion("type",[b.z.object({type:b.z.literal("message"),role:b.z.literal("assistant"),content:b.z.array(b.z.object({type:b.z.literal("output_text"),text:b.z.string(),annotations:b.z.array(b.z.object({type:b.z.literal("url_citation"),start_index:b.z.number(),end_index:b.z.number(),url:b.z.string(),title:b.z.string()}))}))}),b.z.object({type:b.z.literal("function_call"),call_id:b.z.string(),name:b.z.string(),arguments:b.z.string()}),b.z.object({type:b.z.literal("web_search_call")}),b.z.object({type:b.z.literal("computer_call")}),b.z.object({type:b.z.literal("reasoning"),summary:b.z.array(b.z.object({type:b.z.literal("summary_text"),text:b.z.string()}))})])),incomplete_details:b.z.object({reason:b.z.string()}).nullable(),usage:yo})),abortSignal:r.abortSignal,fetch:this.config.fetch});if(p.error)throw new Il.APICallError({message:p.error.message,url:c,requestBodyValues:l,statusCode:400,responseHeaders:d,responseBody:m,isRetryable:false});let h=p.output.filter(v=>v.type==="message").flatMap(v=>v.content).filter(v=>v.type==="output_text"),f=p.output.filter(v=>v.type==="function_call").map(v=>({toolCallType:"function",toolCallId:v.call_id,toolName:v.name,args:v.arguments})),g=(t=(e=p.output.find(v=>v.type==="reasoning"))==null?void 0:e.summary)!=null?t:null;return {text:h.map(v=>v.text).join(`
|
|
33
|
+
`),sources:h.flatMap(v=>v.annotations.map(_=>{var T,w,x;return {sourceType:"url",id:(x=(w=(T=this.config).generateId)==null?void 0:w.call(T))!=null?x:(0, me.generateId)(),url:_.url,title:_.title}})),finishReason:mo({finishReason:(n=p.incomplete_details)==null?void 0:n.reason,hasToolCalls:f.length>0}),toolCalls:f.length>0?f:void 0,reasoning:g?g.map(v=>({type:"text",text:v.text})):void 0,usage:{promptTokens:p.usage.input_tokens,completionTokens:p.usage.output_tokens},rawCall:{rawPrompt:void 0,rawSettings:{}},rawResponse:{headers:d,body:m},request:{body:JSON.stringify(l)},response:{id:p.id,timestamp:new Date(p.created_at*1e3),modelId:p.model},providerMetadata:{openai:{responseId:p.id,cachedPromptTokens:(s=(o=p.usage.input_tokens_details)==null?void 0:o.cached_tokens)!=null?s:null,reasoningTokens:(a=(i=p.usage.output_tokens_details)==null?void 0:i.reasoning_tokens)!=null?a:null}},warnings:u}}async doStream(r){let{args:e,warnings:t}=this.getArgs(r),{responseHeaders:n,value:o}=await(0, me.postJsonToApi)({url:this.config.url({path:"/responses",modelId:this.modelId}),headers:(0, me.combineHeaders)(this.config.headers(),r.headers),body:{...e,stream:true},failedResponseHandler:ae,successfulResponseHandler:(0, me.createEventSourceResponseHandler)(Wl),abortSignal:r.abortSignal,fetch:this.config.fetch}),s=this,i="unknown",a=NaN,l=NaN,u=null,c=null,d=null,p={},m=false;return {stream:o.pipeThrough(new TransformStream({transform(h,f){var g,v,_,T,w,x,S,z;if(!h.success){i="error",f.enqueue({type:"error",error:h.error});return}let C=h.value;if(Ql(C))C.item.type==="function_call"&&(p[C.output_index]={toolName:C.item.name,toolCallId:C.item.call_id},f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:C.item.call_id,toolName:C.item.name,argsTextDelta:C.item.arguments}));else if(Yl(C)){let k=p[C.output_index];k!=null&&f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:k.toolCallId,toolName:k.toolName,argsTextDelta:C.delta});}else Xl(C)?(d=C.response.id,f.enqueue({type:"response-metadata",id:C.response.id,timestamp:new Date(C.response.created_at*1e3),modelId:C.response.model})):Vl(C)?f.enqueue({type:"text-delta",textDelta:C.delta}):eu(C)?f.enqueue({type:"reasoning",textDelta:C.delta}):Kl(C)&&C.item.type==="function_call"?(p[C.output_index]=void 0,m=true,f.enqueue({type:"tool-call",toolCallType:"function",toolCallId:C.item.call_id,toolName:C.item.name,args:C.item.arguments})):Gl(C)?(i=mo({finishReason:(g=C.response.incomplete_details)==null?void 0:g.reason,hasToolCalls:m}),a=C.response.usage.input_tokens,l=C.response.usage.output_tokens,u=(_=(v=C.response.usage.input_tokens_details)==null?void 0:v.cached_tokens)!=null?_:u,c=(w=(T=C.response.usage.output_tokens_details)==null?void 0:T.reasoning_tokens)!=null?w:c):Zl(C)?f.enqueue({type:"source",source:{sourceType:"url",id:(z=(S=(x=s.config).generateId)==null?void 0:S.call(x))!=null?z:(0, me.generateId)(),url:C.annotation.url,title:C.annotation.title}}):tu(C)&&f.enqueue({type:"error",error:C});},flush(h){h.enqueue({type:"finish",finishReason:i,usage:{promptTokens:a,completionTokens:l},...(u!=null||c!=null)&&{providerMetadata:{openai:{responseId:d,cachedPromptTokens:u,reasoningTokens:c}}}});}})),rawCall:{rawPrompt:void 0,rawSettings:{}},rawResponse:{headers:n},request:{body:JSON.stringify(e)},warnings:t}}},yo=b.z.object({input_tokens:b.z.number(),input_tokens_details:b.z.object({cached_tokens:b.z.number().nullish()}).nullish(),output_tokens:b.z.number(),output_tokens_details:b.z.object({reasoning_tokens:b.z.number().nullish()}).nullish()}),$l=b.z.object({type:b.z.literal("response.output_text.delta"),delta:b.z.string()}),Dl=b.z.object({type:b.z.enum(["response.completed","response.incomplete"]),response:b.z.object({incomplete_details:b.z.object({reason:b.z.string()}).nullish(),usage:yo})}),Ll=b.z.object({type:b.z.literal("response.created"),response:b.z.object({id:b.z.string(),created_at:b.z.number(),model:b.z.string()})}),Hl=b.z.object({type:b.z.literal("response.output_item.done"),output_index:b.z.number(),item:b.z.discriminatedUnion("type",[b.z.object({type:b.z.literal("message")}),b.z.object({type:b.z.literal("function_call"),id:b.z.string(),call_id:b.z.string(),name:b.z.string(),arguments:b.z.string(),status:b.z.literal("completed")})])}),ql=b.z.object({type:b.z.literal("response.function_call_arguments.delta"),item_id:b.z.string(),output_index:b.z.number(),delta:b.z.string()}),Fl=b.z.object({type:b.z.literal("response.output_item.added"),output_index:b.z.number(),item:b.z.discriminatedUnion("type",[b.z.object({type:b.z.literal("message")}),b.z.object({type:b.z.literal("function_call"),id:b.z.string(),call_id:b.z.string(),name:b.z.string(),arguments:b.z.string()})])}),Ul=b.z.object({type:b.z.literal("response.output_text.annotation.added"),annotation:b.z.object({type:b.z.literal("url_citation"),url:b.z.string(),title:b.z.string()})}),Bl=b.z.object({type:b.z.literal("response.reasoning_summary_text.delta"),item_id:b.z.string(),output_index:b.z.number(),summary_index:b.z.number(),delta:b.z.string()}),Jl=b.z.object({type:b.z.literal("error"),code:b.z.string(),message:b.z.string(),param:b.z.string().nullish(),sequence_number:b.z.number()}),Wl=b.z.union([$l,Dl,Ll,Hl,ql,Fl,Ul,Bl,Jl,b.z.object({type:b.z.string()}).passthrough()]);function Vl(r){return r.type==="response.output_text.delta"}function Kl(r){return r.type==="response.output_item.done"}function Gl(r){return r.type==="response.completed"||r.type==="response.incomplete"}function Xl(r){return r.type==="response.created"}function Yl(r){return r.type==="response.function_call_arguments.delta"}function Ql(r){return r.type==="response.output_item.added"}function Zl(r){return r.type==="response.output_text.annotation.added"}function eu(r){return r.type==="response.reasoning_summary_text.delta"}function tu(r){return r.type==="error"}function ru(r){return r.startsWith("o")||r.startsWith("gpt-5")?r.startsWith("o1-mini")||r.startsWith("o1-preview")?{isReasoningModel:true,systemMessageMode:"remove",requiredAutoTruncation:false}:{isReasoningModel:true,systemMessageMode:"developer",requiredAutoTruncation:false}:{isReasoningModel:false,systemMessageMode:"system",requiredAutoTruncation:false}}var nu=b.z.object({metadata:b.z.any().nullish(),parallelToolCalls:b.z.boolean().nullish(),previousResponseId:b.z.string().nullish(),store:b.z.boolean().nullish(),user:b.z.string().nullish(),reasoningEffort:b.z.string().nullish(),strictSchemas:b.z.boolean().nullish(),instructions:b.z.string().nullish(),reasoningSummary:b.z.string().nullish()}),ou=U("zod"),su=ou.z.object({});function iu({searchContextSize:r,userLocation:e}={}){return {type:"provider-defined",id:"openai.web_search_preview",args:{searchContextSize:r,userLocation:e},parameters:su}}var au={webSearchPreview:iu},yt=V(),nr=U("zod"),lu=nr.z.object({instructions:nr.z.string().nullish(),speed:nr.z.number().min(.25).max(4).default(1).nullish()}),uu=class{constructor(r,e){this.modelId=r,this.config=e,this.specificationVersion="v1";}get provider(){return this.config.provider}getArgs({text:r,voice:e="alloy",outputFormat:t="mp3",speed:n,instructions:o,providerOptions:s}){let i=[],a=(0, yt.parseProviderOptions)({provider:"openai",providerOptions:s,schema:lu}),l={model:this.modelId,input:r,voice:e,response_format:"mp3",speed:n,instructions:o};if(t&&(["mp3","opus","aac","flac","wav","pcm"].includes(t)?l.response_format=t:i.push({type:"unsupported-setting",setting:"outputFormat",details:`Unsupported output format: ${t}. Using mp3 instead.`})),a){let u={};for(let c in u){let d=u[c];d!==void 0&&(l[c]=d);}}return {requestBody:l,warnings:i}}async doGenerate(r){var e,t,n;let o=(n=(t=(e=this.config._internal)==null?void 0:e.currentDate)==null?void 0:t.call(e))!=null?n:new Date,{requestBody:s,warnings:i}=this.getArgs(r),{value:a,responseHeaders:l,rawValue:u}=await(0, yt.postJsonToApi)({url:this.config.url({path:"/audio/speech",modelId:this.modelId}),headers:(0, yt.combineHeaders)(this.config.headers(),r.headers),body:s,failedResponseHandler:ae,successfulResponseHandler:(0, yt.createBinaryResponseHandler)(),abortSignal:r.abortSignal,fetch:this.config.fetch});return {audio:a,warnings:i,request:{body:JSON.stringify(s)},response:{timestamp:o,modelId:this.modelId,headers:l,body:u}}}};function vo(r={}){var e,t,n;let o=(e=(0, ao.withoutTrailingSlash)(r.baseURL))!=null?e:"https://api.openai.com/v1",s=(t=r.compatibility)!=null?t:"compatible",i=(n=r.name)!=null?n:"openai",a=()=>({Authorization:`Bearer ${(0, ao.loadApiKey)({apiKey:r.apiKey,environmentVariableName:"OPENAI_API_KEY",description:"OpenAI"})}`,"OpenAI-Organization":r.organization,"OpenAI-Project":r.project,...r.headers}),l=(v,_={})=>new dl(v,_,{provider:`${i}.chat`,url:({path:T})=>`${o}${T}`,headers:a,compatibility:s,fetch:r.fetch}),u=(v,_={})=>new vl(v,_,{provider:`${i}.completion`,url:({path:T})=>`${o}${T}`,headers:a,compatibility:s,fetch:r.fetch}),c=(v,_={})=>new xl(v,_,{provider:`${i}.embedding`,url:({path:T})=>`${o}${T}`,headers:a,fetch:r.fetch}),d=(v,_={})=>new Tl(v,_,{provider:`${i}.image`,url:({path:T})=>`${o}${T}`,headers:a,fetch:r.fetch}),p=v=>new Al(v,{provider:`${i}.transcription`,url:({path:_})=>`${o}${_}`,headers:a,fetch:r.fetch}),m=v=>new uu(v,{provider:`${i}.speech`,url:({path:_})=>`${o}${_}`,headers:a,fetch:r.fetch}),h=(v,_)=>{if(new.target)throw new Error("The OpenAI model function cannot be called with the new keyword.");return v==="gpt-3.5-turbo-instruct"?u(v,_):l(v,_)},f=v=>new Nl(v,{provider:`${i}.responses`,url:({path:_})=>`${o}${_}`,headers:a,fetch:r.fetch}),g=function(v,_){return h(v,_)};return g.languageModel=h,g.chat=l,g.completion=u,g.responses=f,g.embedding=c,g.textEmbedding=c,g.textEmbeddingModel=c,g.image=d,g.imageModel=d,g.transcription=p,g.transcriptionModel=p,g.speech=m,g.speechModel=m,g.tools=au,g}var cu=vo({compatibility:"strict"});});var Eo=be((bm,Po)=>{y();var lr=Object.defineProperty,du=Object.getOwnPropertyDescriptor,pu=Object.getOwnPropertyNames,gu=Object.prototype.hasOwnProperty,mu=(r,e)=>{for(var t in e)lr(r,t,{get:e[t],enumerable:true});},fu=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pu(e))!gu.call(r,o)&&o!==t&&lr(r,o,{get:()=>e[o],enumerable:!(n=du(e,o))||n.enumerable});return r},hu=r=>fu(lr({},"__esModule",{value:true}),r),Co={};mu(Co,{anthropic:()=>Fu,createAnthropic:()=>To});Po.exports=hu(Co);var yu=H(),bo=V(),_o=H(),Ee=V(),R=U("zod"),vu=V(),Ve=U("zod"),wu=Ve.z.object({type:Ve.z.literal("error"),error:Ve.z.object({type:Ve.z.string(),message:Ve.z.string()})}),xo=(0, vu.createJsonErrorResponseHandler)({errorSchema:wu,errorToMessage:r=>r.error.message}),bu=H();function _u(r){var e;let t=(e=r.tools)!=null&&e.length?r.tools:void 0,n=[],o=new Set;if(t==null)return {tools:void 0,tool_choice:void 0,toolWarnings:n,betas:o};let s=[];for(let l of t)switch(l.type){case "function":s.push({name:l.name,description:l.description,input_schema:l.parameters});break;case "provider-defined":switch(l.id){case "anthropic.computer_20250124":o.add("computer-use-2025-01-24"),s.push({name:l.name,type:"computer_20250124",display_width_px:l.args.displayWidthPx,display_height_px:l.args.displayHeightPx,display_number:l.args.displayNumber});break;case "anthropic.computer_20241022":o.add("computer-use-2024-10-22"),s.push({name:l.name,type:"computer_20241022",display_width_px:l.args.displayWidthPx,display_height_px:l.args.displayHeightPx,display_number:l.args.displayNumber});break;case "anthropic.text_editor_20250124":o.add("computer-use-2025-01-24"),s.push({name:l.name,type:"text_editor_20250124"});break;case "anthropic.text_editor_20241022":o.add("computer-use-2024-10-22"),s.push({name:l.name,type:"text_editor_20241022"});break;case "anthropic.bash_20250124":o.add("computer-use-2025-01-24"),s.push({name:l.name,type:"bash_20250124"});break;case "anthropic.bash_20241022":o.add("computer-use-2024-10-22"),s.push({name:l.name,type:"bash_20241022"});break;default:n.push({type:"unsupported-tool",tool:l});break}break;default:n.push({type:"unsupported-tool",tool:l});break}let i=r.toolChoice;if(i==null)return {tools:s,tool_choice:void 0,toolWarnings:n,betas:o};let a=i.type;switch(a){case "auto":return {tools:s,tool_choice:{type:"auto"},toolWarnings:n,betas:o};case "required":return {tools:s,tool_choice:{type:"any"},toolWarnings:n,betas:o};case "none":return {tools:void 0,tool_choice:void 0,toolWarnings:n,betas:o};case "tool":return {tools:s,tool_choice:{type:"tool",name:i.toolName},toolWarnings:n,betas:o};default:{let l=a;throw new bu.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${l}`})}}}var ko=H(),xu=V();function ku({prompt:r,sendReasoning:e,warnings:t}){var n,o,s,i;let a=new Set,l=Ru(r),u,c=[];function d(p){var m;let h=p?.anthropic;return (m=h?.cacheControl)!=null?m:h?.cache_control}for(let p=0;p<l.length;p++){let m=l[p],h=p===l.length-1,f=m.type;switch(f){case "system":{if(u!=null)throw new ko.UnsupportedFunctionalityError({functionality:"Multiple system messages that are separated by user/assistant messages"});u=m.messages.map(({content:g,providerMetadata:v})=>({type:"text",text:g,cache_control:d(v)}));break}case "user":{let g=[];for(let v of m.messages){let{role:_,content:T}=v;switch(_){case "user":{for(let w=0;w<T.length;w++){let x=T[w],S=w===T.length-1,z=(n=d(x.providerMetadata))!=null?n:S?d(v.providerMetadata):void 0;switch(x.type){case "text":{g.push({type:"text",text:x.text,cache_control:z});break}case "image":{g.push({type:"image",source:x.image instanceof URL?{type:"url",url:x.image.toString()}:{type:"base64",media_type:(o=x.mimeType)!=null?o:"image/jpeg",data:(0, xu.convertUint8ArrayToBase64)(x.image)},cache_control:z});break}case "file":{if(x.mimeType!=="application/pdf")throw new ko.UnsupportedFunctionalityError({functionality:"Non-PDF files in user messages"});a.add("pdfs-2024-09-25"),g.push({type:"document",source:x.data instanceof URL?{type:"url",url:x.data.toString()}:{type:"base64",media_type:"application/pdf",data:x.data},cache_control:z});break}}}break}case "tool":{for(let w=0;w<T.length;w++){let x=T[w],S=w===T.length-1,z=(s=d(x.providerMetadata))!=null?s:S?d(v.providerMetadata):void 0,C=x.content!=null?x.content.map(k=>{var O;switch(k.type){case "text":return {type:"text",text:k.text,cache_control:void 0};case "image":return {type:"image",source:{type:"base64",media_type:(O=k.mimeType)!=null?O:"image/jpeg",data:k.data},cache_control:void 0}}}):JSON.stringify(x.result);g.push({type:"tool_result",tool_use_id:x.toolCallId,content:C,is_error:x.isError,cache_control:z});}break}default:{let w=_;throw new Error(`Unsupported role: ${w}`)}}}c.push({role:"user",content:g});break}case "assistant":{let g=[];for(let v=0;v<m.messages.length;v++){let _=m.messages[v],T=v===m.messages.length-1,{content:w}=_;for(let x=0;x<w.length;x++){let S=w[x],z=x===w.length-1,C=(i=d(S.providerMetadata))!=null?i:z?d(_.providerMetadata):void 0;switch(S.type){case "text":{g.push({type:"text",text:h&&T&&z?S.text.trim():S.text,cache_control:C});break}case "reasoning":{e?g.push({type:"thinking",thinking:S.text,signature:S.signature,cache_control:C}):t.push({type:"other",message:"sending reasoning content is disabled for this model"});break}case "redacted-reasoning":{g.push({type:"redacted_thinking",data:S.data,cache_control:C});break}case "tool-call":{g.push({type:"tool_use",id:S.toolCallId,name:S.toolName,input:S.args,cache_control:C});break}}}}c.push({role:"assistant",content:g});break}default:{let g=f;throw new Error(`Unsupported type: ${g}`)}}}return {prompt:{system:u,messages:c},betas:a}}function Ru(r){let e=[],t;for(let n of r){let{role:o}=n;switch(o){case "system":{t?.type!=="system"&&(t={type:"system",messages:[]},e.push(t)),t.messages.push(n);break}case "assistant":{t?.type!=="assistant"&&(t={type:"assistant",messages:[]},e.push(t)),t.messages.push(n);break}case "user":{t?.type!=="user"&&(t={type:"user",messages:[]},e.push(t)),t.messages.push(n);break}case "tool":{t?.type!=="user"&&(t={type:"user",messages:[]},e.push(t)),t.messages.push(n);break}default:{let s=o;throw new Error(`Unsupported role: ${s}`)}}}return e}function Ro(r){switch(r){case "end_turn":case "stop_sequence":return "stop";case "tool_use":return "tool-calls";case "max_tokens":return "length";default:return "unknown"}}var Cu=class{constructor(r,e,t){this.specificationVersion="v1",this.defaultObjectGenerationMode="tool",this.modelId=r,this.settings=e,this.config=t;}supportsUrl(r){return r.protocol==="https:"}get provider(){return this.config.provider}get supportsImageUrls(){return this.config.supportsImageUrls}async getArgs({mode:r,prompt:e,maxTokens:t=4096,temperature:n,topP:o,topK:s,frequencyPenalty:i,presencePenalty:a,stopSequences:l,responseFormat:u,seed:c,providerMetadata:d}){var p,m,h;let f=r.type,g=[];i!=null&&g.push({type:"unsupported-setting",setting:"frequencyPenalty"}),a!=null&&g.push({type:"unsupported-setting",setting:"presencePenalty"}),c!=null&&g.push({type:"unsupported-setting",setting:"seed"}),u!=null&&u.type!=="text"&&g.push({type:"unsupported-setting",setting:"responseFormat",details:"JSON response format is not supported."});let{prompt:v,betas:_}=ku({prompt:e,sendReasoning:(p=this.settings.sendReasoning)!=null?p:true,warnings:g}),T=(0, Ee.parseProviderOptions)({provider:"anthropic",providerOptions:d,schema:Eu}),w=((m=T?.thinking)==null?void 0:m.type)==="enabled",x=(h=T?.thinking)==null?void 0:h.budgetTokens,S={model:this.modelId,max_tokens:t,temperature:n,top_k:s,top_p:o,stop_sequences:l,...w&&{thinking:{type:"enabled",budget_tokens:x}},system:v.system,messages:v.messages};if(w){if(x==null)throw new _o.UnsupportedFunctionalityError({functionality:"thinking requires a budget"});S.temperature!=null&&(S.temperature=void 0,g.push({type:"unsupported-setting",setting:"temperature",details:"temperature is not supported when thinking is enabled"})),s!=null&&(S.top_k=void 0,g.push({type:"unsupported-setting",setting:"topK",details:"topK is not supported when thinking is enabled"})),o!=null&&(S.top_p=void 0,g.push({type:"unsupported-setting",setting:"topP",details:"topP is not supported when thinking is enabled"})),S.max_tokens=t+x;}switch(f){case "regular":{let{tools:z,tool_choice:C,toolWarnings:k,betas:O}=_u(r);return {args:{...S,tools:z,tool_choice:C},warnings:[...g,...k],betas:new Set([..._,...O])}}case "object-json":throw new _o.UnsupportedFunctionalityError({functionality:"json-mode object generation"});case "object-tool":{let{name:z,description:C,parameters:k}=r.tool;return {args:{...S,tools:[{name:z,description:C,input_schema:k}],tool_choice:{type:"tool",name:z}},warnings:g,betas:_}}default:{let z=f;throw new Error(`Unsupported type: ${z}`)}}}async getHeaders({betas:r,headers:e}){return (0, Ee.combineHeaders)(await(0, Ee.resolve)(this.config.headers),r.size>0?{"anthropic-beta":Array.from(r).join(",")}:{},e)}buildRequestUrl(r){var e,t,n;return (n=(t=(e=this.config).buildRequestUrl)==null?void 0:t.call(e,this.config.baseURL,r))!=null?n:`${this.config.baseURL}/messages`}transformRequestBody(r){var e,t,n;return (n=(t=(e=this.config).transformRequestBody)==null?void 0:t.call(e,r))!=null?n:r}async doGenerate(r){var e,t,n,o;let{args:s,warnings:i,betas:a}=await this.getArgs(r),{responseHeaders:l,value:u,rawValue:c}=await(0, Ee.postJsonToApi)({url:this.buildRequestUrl(false),headers:await this.getHeaders({betas:a,headers:r.headers}),body:this.transformRequestBody(s),failedResponseHandler:xo,successfulResponseHandler:(0, Ee.createJsonResponseHandler)(Tu),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:d,...p}=s,m="";for(let g of u.content)g.type==="text"&&(m+=g.text);let h;if(u.content.some(g=>g.type==="tool_use")){h=[];for(let g of u.content)g.type==="tool_use"&&h.push({toolCallType:"function",toolCallId:g.id,toolName:g.name,args:JSON.stringify(g.input)});}let f=u.content.filter(g=>g.type==="redacted_thinking"||g.type==="thinking").map(g=>g.type==="thinking"?{type:"text",text:g.thinking,signature:g.signature}:{type:"redacted",data:g.data});return {text:m,reasoning:f.length>0?f:void 0,toolCalls:h,finishReason:Ro(u.stop_reason),usage:{promptTokens:u.usage.input_tokens,completionTokens:u.usage.output_tokens},rawCall:{rawPrompt:d,rawSettings:p},rawResponse:{headers:l,body:c},response:{id:(e=u.id)!=null?e:void 0,modelId:(t=u.model)!=null?t:void 0},warnings:i,providerMetadata:{anthropic:{cacheCreationInputTokens:(n=u.usage.cache_creation_input_tokens)!=null?n:null,cacheReadInputTokens:(o=u.usage.cache_read_input_tokens)!=null?o:null}},request:{body:JSON.stringify(s)}}}async doStream(r){let{args:e,warnings:t,betas:n}=await this.getArgs(r),o={...e,stream:true},{responseHeaders:s,value:i}=await(0, Ee.postJsonToApi)({url:this.buildRequestUrl(true),headers:await this.getHeaders({betas:n,headers:r.headers}),body:this.transformRequestBody(o),failedResponseHandler:xo,successfulResponseHandler:(0, Ee.createEventSourceResponseHandler)(Pu),abortSignal:r.abortSignal,fetch:this.config.fetch}),{messages:a,...l}=e,u="unknown",c={promptTokens:Number.NaN,completionTokens:Number.NaN},d={},p,m;return {stream:i.pipeThrough(new TransformStream({transform(h,f){var g,v,_,T;if(!h.success){f.enqueue({type:"error",error:h.error});return}let w=h.value;switch(w.type){case "ping":return;case "content_block_start":{let x=w.content_block.type;switch(m=x,x){case "text":case "thinking":return;case "redacted_thinking":{f.enqueue({type:"redacted-reasoning",data:w.content_block.data});return}case "tool_use":{d[w.index]={toolCallId:w.content_block.id,toolName:w.content_block.name,jsonText:""};return}default:{let S=x;throw new Error(`Unsupported content block type: ${S}`)}}}case "content_block_stop":{if(d[w.index]!=null){let x=d[w.index];f.enqueue({type:"tool-call",toolCallType:"function",toolCallId:x.toolCallId,toolName:x.toolName,args:x.jsonText}),delete d[w.index];}m=void 0;return}case "content_block_delta":{let x=w.delta.type;switch(x){case "text_delta":{f.enqueue({type:"text-delta",textDelta:w.delta.text});return}case "thinking_delta":{f.enqueue({type:"reasoning",textDelta:w.delta.thinking});return}case "signature_delta":{m==="thinking"&&f.enqueue({type:"reasoning-signature",signature:w.delta.signature});return}case "input_json_delta":{let S=d[w.index];f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:S.toolCallId,toolName:S.toolName,argsTextDelta:w.delta.partial_json}),S.jsonText+=w.delta.partial_json;return}default:{let S=x;throw new Error(`Unsupported delta type: ${S}`)}}}case "message_start":{c.promptTokens=w.message.usage.input_tokens,c.completionTokens=w.message.usage.output_tokens,p={anthropic:{cacheCreationInputTokens:(g=w.message.usage.cache_creation_input_tokens)!=null?g:null,cacheReadInputTokens:(v=w.message.usage.cache_read_input_tokens)!=null?v:null}},f.enqueue({type:"response-metadata",id:(_=w.message.id)!=null?_:void 0,modelId:(T=w.message.model)!=null?T:void 0});return}case "message_delta":{c.completionTokens=w.usage.output_tokens,u=Ro(w.delta.stop_reason);return}case "message_stop":{f.enqueue({type:"finish",finishReason:u,usage:c,providerMetadata:p});return}case "error":{f.enqueue({type:"error",error:w.error});return}default:{let x=w;throw new Error(`Unsupported chunk type: ${x}`)}}}})),rawCall:{rawPrompt:a,rawSettings:l},rawResponse:{headers:s},warnings:t,request:{body:JSON.stringify(o)}}}},Tu=R.z.object({type:R.z.literal("message"),id:R.z.string().nullish(),model:R.z.string().nullish(),content:R.z.array(R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("text"),text:R.z.string()}),R.z.object({type:R.z.literal("thinking"),thinking:R.z.string(),signature:R.z.string()}),R.z.object({type:R.z.literal("redacted_thinking"),data:R.z.string()}),R.z.object({type:R.z.literal("tool_use"),id:R.z.string(),name:R.z.string(),input:R.z.unknown()})])),stop_reason:R.z.string().nullish(),usage:R.z.object({input_tokens:R.z.number(),output_tokens:R.z.number(),cache_creation_input_tokens:R.z.number().nullish(),cache_read_input_tokens:R.z.number().nullish()})}),Pu=R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("message_start"),message:R.z.object({id:R.z.string().nullish(),model:R.z.string().nullish(),usage:R.z.object({input_tokens:R.z.number(),output_tokens:R.z.number(),cache_creation_input_tokens:R.z.number().nullish(),cache_read_input_tokens:R.z.number().nullish()})})}),R.z.object({type:R.z.literal("content_block_start"),index:R.z.number(),content_block:R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("text"),text:R.z.string()}),R.z.object({type:R.z.literal("thinking"),thinking:R.z.string()}),R.z.object({type:R.z.literal("tool_use"),id:R.z.string(),name:R.z.string()}),R.z.object({type:R.z.literal("redacted_thinking"),data:R.z.string()})])}),R.z.object({type:R.z.literal("content_block_delta"),index:R.z.number(),delta:R.z.discriminatedUnion("type",[R.z.object({type:R.z.literal("input_json_delta"),partial_json:R.z.string()}),R.z.object({type:R.z.literal("text_delta"),text:R.z.string()}),R.z.object({type:R.z.literal("thinking_delta"),thinking:R.z.string()}),R.z.object({type:R.z.literal("signature_delta"),signature:R.z.string()})])}),R.z.object({type:R.z.literal("content_block_stop"),index:R.z.number()}),R.z.object({type:R.z.literal("error"),error:R.z.object({type:R.z.string(),message:R.z.string()})}),R.z.object({type:R.z.literal("message_delta"),delta:R.z.object({stop_reason:R.z.string().nullish()}),usage:R.z.object({output_tokens:R.z.number()})}),R.z.object({type:R.z.literal("message_stop")}),R.z.object({type:R.z.literal("ping")})]),Eu=R.z.object({thinking:R.z.object({type:R.z.union([R.z.literal("enabled"),R.z.literal("disabled")]),budgetTokens:R.z.number().optional()}).optional()}),j=U("zod"),Au=j.z.object({command:j.z.string(),restart:j.z.boolean().optional()});function Su(r={}){return {type:"provider-defined",id:"anthropic.bash_20241022",args:{},parameters:Au,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var Iu=j.z.object({command:j.z.string(),restart:j.z.boolean().optional()});function Ou(r={}){return {type:"provider-defined",id:"anthropic.bash_20250124",args:{},parameters:Iu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var zu=j.z.object({command:j.z.enum(["view","create","str_replace","insert","undo_edit"]),path:j.z.string(),file_text:j.z.string().optional(),insert_line:j.z.number().int().optional(),new_str:j.z.string().optional(),old_str:j.z.string().optional(),view_range:j.z.array(j.z.number().int()).optional()});function Mu(r={}){return {type:"provider-defined",id:"anthropic.text_editor_20241022",args:{},parameters:zu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var ju=j.z.object({command:j.z.enum(["view","create","str_replace","insert","undo_edit"]),path:j.z.string(),file_text:j.z.string().optional(),insert_line:j.z.number().int().optional(),new_str:j.z.string().optional(),old_str:j.z.string().optional(),view_range:j.z.array(j.z.number().int()).optional()});function Nu(r={}){return {type:"provider-defined",id:"anthropic.text_editor_20250124",args:{},parameters:ju,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var $u=j.z.object({action:j.z.enum(["key","type","mouse_move","left_click","left_click_drag","right_click","middle_click","double_click","screenshot","cursor_position"]),coordinate:j.z.array(j.z.number().int()).optional(),text:j.z.string().optional()});function Du(r){return {type:"provider-defined",id:"anthropic.computer_20241022",args:{displayWidthPx:r.displayWidthPx,displayHeightPx:r.displayHeightPx,displayNumber:r.displayNumber},parameters:$u,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var Lu=j.z.object({action:j.z.enum(["key","hold_key","type","cursor_position","mouse_move","left_mouse_down","left_mouse_up","left_click","left_click_drag","right_click","middle_click","double_click","triple_click","scroll","wait","screenshot"]),coordinate:j.z.tuple([j.z.number().int(),j.z.number().int()]).optional(),duration:j.z.number().optional(),scroll_amount:j.z.number().optional(),scroll_direction:j.z.enum(["up","down","left","right"]).optional(),start_coordinate:j.z.tuple([j.z.number().int(),j.z.number().int()]).optional(),text:j.z.string().optional()});function Hu(r){return {type:"provider-defined",id:"anthropic.computer_20250124",args:{displayWidthPx:r.displayWidthPx,displayHeightPx:r.displayHeightPx,displayNumber:r.displayNumber},parameters:Lu,execute:r.execute,experimental_toToolResultContent:r.experimental_toToolResultContent}}var qu={bash_20241022:Su,bash_20250124:Ou,textEditor_20241022:Mu,textEditor_20250124:Nu,computer_20241022:Du,computer_20250124:Hu};function To(r={}){var e;let t=(e=(0, bo.withoutTrailingSlash)(r.baseURL))!=null?e:"https://api.anthropic.com/v1",n=()=>({"anthropic-version":"2023-06-01","x-api-key":(0, bo.loadApiKey)({apiKey:r.apiKey,environmentVariableName:"ANTHROPIC_API_KEY",description:"Anthropic"}),...r.headers}),o=(i,a={})=>new Cu(i,a,{provider:"anthropic.messages",baseURL:t,headers:n,fetch:r.fetch,supportsImageUrls:true}),s=function(i,a){if(new.target)throw new Error("The Anthropic model function cannot be called with the new keyword.");return o(i,a)};return s.languageModel=o,s.chat=o,s.messages=o,s.textEmbeddingModel=i=>{throw new yu.NoSuchModelError({modelId:i,modelType:"textEmbeddingModel"})},s.tools=qu,s}var Fu=To();});var Fo=be((km,qo)=>{y();var pr=Object.defineProperty,Uu=Object.getOwnPropertyDescriptor,Bu=Object.getOwnPropertyNames,Ju=Object.prototype.hasOwnProperty,Wu=(r,e)=>{for(var t in e)pr(r,t,{get:e[t],enumerable:true});},Vu=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Bu(e))!Ju.call(r,o)&&o!==t&&pr(r,o,{get:()=>e[o],enumerable:!(n=Uu(e,o))||n.enumerable});return r},Ku=r=>Vu(pr({},"__esModule",{value:true}),r),No={};Wu(No,{createGoogleGenerativeAI:()=>Ho,google:()=>dc});qo.exports=Ku(No);var ur=V(),fe=V(),P=U("zod");function Z(r){if(Gu(r))return;if(typeof r=="boolean")return {type:"boolean",properties:{}};let{type:e,description:t,required:n,properties:o,items:s,allOf:i,anyOf:a,oneOf:l,format:u,const:c,minLength:d,enum:p}=r,m={};if(t&&(m.description=t),n&&(m.required=n),u&&(m.format=u),c!==void 0&&(m.enum=[c]),e&&(Array.isArray(e)?e.includes("null")?(m.type=e.filter(h=>h!=="null")[0],m.nullable=true):m.type=e:e==="null"?m.type="null":m.type=e),p!==void 0&&(m.enum=p),o!=null&&(m.properties=Object.entries(o).reduce((h,[f,g])=>(h[f]=Z(g),h),{})),s&&(m.items=Array.isArray(s)?s.map(Z):Z(s)),i&&(m.allOf=i.map(Z)),a)if(a.some(h=>typeof h=="object"&&h?.type==="null")){let h=a.filter(f=>!(typeof f=="object"&&f?.type==="null"));if(h.length===1){let f=Z(h[0]);typeof f=="object"&&(m.nullable=true,Object.assign(m,f));}else m.anyOf=h.map(Z),m.nullable=true;}else m.anyOf=a.map(Z);return l&&(m.oneOf=l.map(Z)),d!==void 0&&(m.minLength=d),m}function Gu(r){return r!=null&&typeof r=="object"&&r.type==="object"&&(r.properties==null||Object.keys(r.properties).length===0)&&!r.additionalProperties}var cr=H(),Xu=V();function Yu(r){var e,t;let n=[],o=[],s=true;for(let{role:i,content:a}of r)switch(i){case "system":{if(!s)throw new cr.UnsupportedFunctionalityError({functionality:"system messages are only supported at the beginning of the conversation"});n.push({text:a});break}case "user":{s=false;let l=[];for(let u of a)switch(u.type){case "text":{l.push({text:u.text});break}case "image":{l.push(u.image instanceof URL?{fileData:{mimeType:(e=u.mimeType)!=null?e:"image/jpeg",fileUri:u.image.toString()}}:{inlineData:{mimeType:(t=u.mimeType)!=null?t:"image/jpeg",data:(0, Xu.convertUint8ArrayToBase64)(u.image)}});break}case "file":{l.push(u.data instanceof URL?{fileData:{mimeType:u.mimeType,fileUri:u.data.toString()}}:{inlineData:{mimeType:u.mimeType,data:u.data}});break}}o.push({role:"user",parts:l});break}case "assistant":{s=false,o.push({role:"model",parts:a.map(l=>{switch(l.type){case "text":return l.text.length===0?void 0:{text:l.text};case "file":{if(l.mimeType!=="image/png")throw new cr.UnsupportedFunctionalityError({functionality:"Only PNG images are supported in assistant messages"});if(l.data instanceof URL)throw new cr.UnsupportedFunctionalityError({functionality:"File data URLs in assistant messages are not supported"});return {inlineData:{mimeType:l.mimeType,data:l.data}}}case "tool-call":return {functionCall:{name:l.toolName,args:l.args}}}}).filter(l=>l!==void 0)});break}case "tool":{s=false,o.push({role:"user",parts:a.map(l=>({functionResponse:{name:l.toolName,response:{name:l.toolName,content:l.result}}}))});break}}return {systemInstruction:n.length>0?{parts:n}:void 0,contents:o}}function Ao(r){return r.includes("/")?r:`models/${r}`}var Qu=V(),Ke=U("zod"),Zu=Ke.z.object({error:Ke.z.object({code:Ke.z.number().nullable(),message:Ke.z.string(),status:Ke.z.string()})}),dr=(0, Qu.createJsonErrorResponseHandler)({errorSchema:Zu,errorToMessage:r=>r.error.message}),ec=H();function tc(r,e,t,n){var o,s;let i=(o=r.tools)!=null&&o.length?r.tools:void 0,a=[],l=n.includes("gemini-2"),u=n.includes("gemini-1.5-flash")&&!n.includes("-8b");if(e)return {tools:l?{googleSearch:{}}:{googleSearchRetrieval:!u||!t?{}:{dynamicRetrievalConfig:t}},toolConfig:void 0,toolWarnings:a};if(i==null)return {tools:void 0,toolConfig:void 0,toolWarnings:a};let c=[];for(let m of i)m.type==="provider-defined"?a.push({type:"unsupported-tool",tool:m}):c.push({name:m.name,description:(s=m.description)!=null?s:"",parameters:Z(m.parameters)});let d=r.toolChoice;if(d==null)return {tools:{functionDeclarations:c},toolConfig:void 0,toolWarnings:a};let p=d.type;switch(p){case "auto":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"AUTO"}},toolWarnings:a};case "none":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"NONE"}},toolWarnings:a};case "required":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"ANY"}},toolWarnings:a};case "tool":return {tools:{functionDeclarations:c},toolConfig:{functionCallingConfig:{mode:"ANY",allowedFunctionNames:[d.toolName]}},toolWarnings:a};default:{let m=p;throw new ec.UnsupportedFunctionalityError({functionality:`Unsupported tool choice type: ${m}`})}}}function So({finishReason:r,hasToolCalls:e}){switch(r){case "STOP":return e?"tool-calls":"stop";case "MAX_TOKENS":return "length";case "IMAGE_SAFETY":case "RECITATION":case "SAFETY":case "BLOCKLIST":case "PROHIBITED_CONTENT":case "SPII":return "content-filter";case "FINISH_REASON_UNSPECIFIED":case "OTHER":return "other";case "MALFORMED_FUNCTION_CALL":return "error";default:return "unknown"}}var rc=class{constructor(r,e,t){this.specificationVersion="v1",this.defaultObjectGenerationMode="json",this.supportsImageUrls=false,this.modelId=r,this.settings=e,this.config=t;}get supportsStructuredOutputs(){var r;return (r=this.settings.structuredOutputs)!=null?r:true}get provider(){return this.config.provider}async getArgs({mode:r,prompt:e,maxTokens:t,temperature:n,topP:o,topK:s,frequencyPenalty:i,presencePenalty:a,stopSequences:l,responseFormat:u,seed:c,providerMetadata:d}){var p,m,h;let f=r.type,g=[],v=(0, fe.parseProviderOptions)({provider:"google",providerOptions:d,schema:ic});((p=v?.thinkingConfig)==null?void 0:p.includeThoughts)===true&&!this.config.provider.startsWith("google.vertex.")&&g.push({type:"other",message:`The 'includeThoughts' option is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${this.config.provider}).`});let _={maxOutputTokens:t,temperature:n,topK:s,topP:o,frequencyPenalty:i,presencePenalty:a,stopSequences:l,seed:c,responseMimeType:u?.type==="json"?"application/json":void 0,responseSchema:u?.type==="json"&&u.schema!=null&&this.supportsStructuredOutputs?Z(u.schema):void 0,...this.settings.audioTimestamp&&{audioTimestamp:this.settings.audioTimestamp},responseModalities:v?.responseModalities,thinkingConfig:v?.thinkingConfig},{contents:T,systemInstruction:w}=Yu(e);switch(f){case "regular":{let{tools:x,toolConfig:S,toolWarnings:z}=tc(r,(m=this.settings.useSearchGrounding)!=null?m:false,this.settings.dynamicRetrievalConfig,this.modelId);return {args:{generationConfig:_,contents:T,systemInstruction:w,safetySettings:this.settings.safetySettings,tools:x,toolConfig:S,cachedContent:this.settings.cachedContent},warnings:[...g,...z]}}case "object-json":return {args:{generationConfig:{..._,responseMimeType:"application/json",responseSchema:r.schema!=null&&this.supportsStructuredOutputs?Z(r.schema):void 0},contents:T,systemInstruction:w,safetySettings:this.settings.safetySettings,cachedContent:this.settings.cachedContent},warnings:g};case "object-tool":return {args:{generationConfig:_,contents:T,systemInstruction:w,tools:{functionDeclarations:[{name:r.tool.name,description:(h=r.tool.description)!=null?h:"",parameters:Z(r.tool.parameters)}]},toolConfig:{functionCallingConfig:{mode:"ANY"}},safetySettings:this.settings.safetySettings,cachedContent:this.settings.cachedContent},warnings:g};default:{let x=f;throw new Error(`Unsupported type: ${x}`)}}}supportsUrl(r){return this.config.isSupportedUrl(r)}async doGenerate(r){var e,t,n,o,s;let{args:i,warnings:a}=await this.getArgs(r),l=JSON.stringify(i),u=(0, fe.combineHeaders)(await(0, fe.resolve)(this.config.headers),r.headers),{responseHeaders:c,value:d,rawValue:p}=await(0, fe.postJsonToApi)({url:`${this.config.baseURL}/${Ao(this.modelId)}:generateContent`,headers:u,body:i,failedResponseHandler:dr,successfulResponseHandler:(0, fe.createJsonResponseHandler)(oc),abortSignal:r.abortSignal,fetch:this.config.fetch}),{contents:m,...h}=i,f=d.candidates[0],g=f.content==null||typeof f.content!="object"||!("parts"in f.content)?[]:f.content.parts,v=Io({parts:g,generateId:this.config.generateId}),_=d.usageMetadata;return {text:Oo(g),reasoning:zo(g),files:(e=Mo(g))==null?void 0:e.map(T=>({data:T.inlineData.data,mimeType:T.inlineData.mimeType})),toolCalls:v,finishReason:So({finishReason:f.finishReason,hasToolCalls:v!=null&&v.length>0}),usage:{promptTokens:(t=_?.promptTokenCount)!=null?t:NaN,completionTokens:(n=_?.candidatesTokenCount)!=null?n:NaN},rawCall:{rawPrompt:m,rawSettings:h},rawResponse:{headers:c,body:p},warnings:a,providerMetadata:{google:{groundingMetadata:(o=f.groundingMetadata)!=null?o:null,safetyRatings:(s=f.safetyRatings)!=null?s:null}},sources:jo({groundingMetadata:f.groundingMetadata,generateId:this.config.generateId}),request:{body:l}}}async doStream(r){let{args:e,warnings:t}=await this.getArgs(r),n=JSON.stringify(e),o=(0, fe.combineHeaders)(await(0, fe.resolve)(this.config.headers),r.headers),{responseHeaders:s,value:i}=await(0, fe.postJsonToApi)({url:`${this.config.baseURL}/${Ao(this.modelId)}:streamGenerateContent?alt=sse`,headers:o,body:e,failedResponseHandler:dr,successfulResponseHandler:(0, fe.createEventSourceResponseHandler)(sc),abortSignal:r.abortSignal,fetch:this.config.fetch}),{contents:a,...l}=e,u="unknown",c={promptTokens:Number.NaN,completionTokens:Number.NaN},d,p=this.config.generateId,m=false;return {stream:i.pipeThrough(new TransformStream({transform(h,f){var g,v,_,T,w,x;if(!h.success){f.enqueue({type:"error",error:h.error});return}let S=h.value,z=S.usageMetadata;z!=null&&(c={promptTokens:(g=z.promptTokenCount)!=null?g:NaN,completionTokens:(v=z.candidatesTokenCount)!=null?v:NaN});let C=(_=S.candidates)==null?void 0:_[0];if(C==null)return;let k=C.content;if(k!=null){let O=Oo(k.parts);O!=null&&f.enqueue({type:"text-delta",textDelta:O});let I=zo(k.parts);if(I!=null)for(let L of I)f.enqueue({type:"reasoning",textDelta:L.text});let J=Mo(k.parts);if(J!=null)for(let L of J)f.enqueue({type:"file",mimeType:L.inlineData.mimeType,data:L.inlineData.data});let G=Io({parts:k.parts,generateId:p});if(G!=null)for(let L of G)f.enqueue({type:"tool-call-delta",toolCallType:"function",toolCallId:L.toolCallId,toolName:L.toolName,argsTextDelta:L.args}),f.enqueue({type:"tool-call",toolCallType:"function",toolCallId:L.toolCallId,toolName:L.toolName,args:L.args}),m=true;}if(C.finishReason!=null){u=So({finishReason:C.finishReason,hasToolCalls:m});let O=(T=jo({groundingMetadata:C.groundingMetadata,generateId:p}))!=null?T:[];for(let I of O)f.enqueue({type:"source",source:I});d={google:{groundingMetadata:(w=C.groundingMetadata)!=null?w:null,safetyRatings:(x=C.safetyRatings)!=null?x:null}};}},flush(h){h.enqueue({type:"finish",finishReason:u,usage:c,providerMetadata:d});}})),rawCall:{rawPrompt:a,rawSettings:l},rawResponse:{headers:s},warnings:t,request:{body:n}}}};function Io({parts:r,generateId:e}){let t=r?.filter(n=>"functionCall"in n);return t==null||t.length===0?void 0:t.map(n=>({toolCallType:"function",toolCallId:e(),toolName:n.functionCall.name,args:JSON.stringify(n.functionCall.args)}))}function Oo(r){let e=r?.filter(t=>"text"in t&&t.thought!==true);return e==null||e.length===0?void 0:e.map(t=>t.text).join("")}function zo(r){let e=r?.filter(t=>"text"in t&&t.thought===true&&t.text!=null);return e==null||e.length===0?void 0:e.map(t=>({type:"text",text:t.text}))}function Mo(r){return r?.filter(e=>"inlineData"in e)}function jo({groundingMetadata:r,generateId:e}){var t;return (t=r?.groundingChunks)==null?void 0:t.filter(n=>n.web!=null).map(n=>({sourceType:"url",id:e(),url:n.web.uri,title:n.web.title}))}var $o=P.z.object({parts:P.z.array(P.z.union([P.z.object({functionCall:P.z.object({name:P.z.string(),args:P.z.unknown()})}),P.z.object({inlineData:P.z.object({mimeType:P.z.string(),data:P.z.string()})}),P.z.object({text:P.z.string().nullish(),thought:P.z.boolean().nullish()})])).nullish()}),nc=P.z.object({web:P.z.object({uri:P.z.string(),title:P.z.string()}).nullish(),retrievedContext:P.z.object({uri:P.z.string(),title:P.z.string()}).nullish()}),Do=P.z.object({webSearchQueries:P.z.array(P.z.string()).nullish(),retrievalQueries:P.z.array(P.z.string()).nullish(),searchEntryPoint:P.z.object({renderedContent:P.z.string()}).nullish(),groundingChunks:P.z.array(nc).nullish(),groundingSupports:P.z.array(P.z.object({segment:P.z.object({startIndex:P.z.number().nullish(),endIndex:P.z.number().nullish(),text:P.z.string().nullish()}),segment_text:P.z.string().nullish(),groundingChunkIndices:P.z.array(P.z.number()).nullish(),supportChunkIndices:P.z.array(P.z.number()).nullish(),confidenceScores:P.z.array(P.z.number()).nullish(),confidenceScore:P.z.array(P.z.number()).nullish()})).nullish(),retrievalMetadata:P.z.union([P.z.object({webDynamicRetrievalScore:P.z.number()}),P.z.object({})]).nullish()}),Lo=P.z.object({category:P.z.string().nullish(),probability:P.z.string().nullish(),probabilityScore:P.z.number().nullish(),severity:P.z.string().nullish(),severityScore:P.z.number().nullish(),blocked:P.z.boolean().nullish()}),oc=P.z.object({candidates:P.z.array(P.z.object({content:$o.nullish().or(P.z.object({}).strict()),finishReason:P.z.string().nullish(),safetyRatings:P.z.array(Lo).nullish(),groundingMetadata:Do.nullish()})),usageMetadata:P.z.object({promptTokenCount:P.z.number().nullish(),candidatesTokenCount:P.z.number().nullish(),totalTokenCount:P.z.number().nullish()}).nullish()}),sc=P.z.object({candidates:P.z.array(P.z.object({content:$o.nullish(),finishReason:P.z.string().nullish(),safetyRatings:P.z.array(Lo).nullish(),groundingMetadata:Do.nullish()})).nullish(),usageMetadata:P.z.object({promptTokenCount:P.z.number().nullish(),candidatesTokenCount:P.z.number().nullish(),totalTokenCount:P.z.number().nullish()}).nullish()}),ic=P.z.object({responseModalities:P.z.array(P.z.enum(["TEXT","IMAGE"])).nullish(),thinkingConfig:P.z.object({thinkingBudget:P.z.number().nullish(),includeThoughts:P.z.boolean().nullish()}).nullish()}),ac=H(),bt=V(),Ge=U("zod"),lc=class{constructor(r,e,t){this.specificationVersion="v1",this.modelId=r,this.settings=e,this.config=t;}get provider(){return this.config.provider}get maxEmbeddingsPerCall(){return 2048}get supportsParallelCalls(){return true}async doEmbed({values:r,headers:e,abortSignal:t}){if(r.length>this.maxEmbeddingsPerCall)throw new ac.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:r});let n=(0, bt.combineHeaders)(await(0, bt.resolve)(this.config.headers),e),{responseHeaders:o,value:s}=await(0, bt.postJsonToApi)({url:`${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,headers:n,body:{requests:r.map(i=>({model:`models/${this.modelId}`,content:{role:"user",parts:[{text:i}]},outputDimensionality:this.settings.outputDimensionality,taskType:this.settings.taskType}))},failedResponseHandler:dr,successfulResponseHandler:(0, bt.createJsonResponseHandler)(uc),abortSignal:t,fetch:this.config.fetch});return {embeddings:s.embeddings.map(i=>i.values),usage:void 0,rawResponse:{headers:o}}}},uc=Ge.z.object({embeddings:Ge.z.array(Ge.z.object({values:Ge.z.array(Ge.z.number())}))});function cc(r){return r.toString().startsWith("https://generativelanguage.googleapis.com/v1beta/files/")}function Ho(r={}){var e;let t=(e=(0, ur.withoutTrailingSlash)(r.baseURL))!=null?e:"https://generativelanguage.googleapis.com/v1beta",n=()=>({"x-goog-api-key":(0, ur.loadApiKey)({apiKey:r.apiKey,environmentVariableName:"GOOGLE_GENERATIVE_AI_API_KEY",description:"Google Generative AI"}),...r.headers}),o=(a,l={})=>{var u;return new rc(a,l,{provider:"google.generative-ai",baseURL:t,headers:n,generateId:(u=r.generateId)!=null?u:ur.generateId,isSupportedUrl:cc,fetch:r.fetch})},s=(a,l={})=>new lc(a,l,{provider:"google.generative-ai",baseURL:t,headers:n,fetch:r.fetch}),i=function(a,l){if(new.target)throw new Error("The Google Generative AI model function cannot be called with the new keyword.");return o(a,l)};return i.languageModel=o,i.chat=o,i.generativeAI=o,i.embedding=s,i.textEmbedding=s,i.textEmbeddingModel=s,i}var dc=Ho();});var Uo,Bo;exports.VercelProviderRuntime=void 0;var gr=le(()=>{y();xe();Uo=10,Bo=50,exports.VercelProviderRuntime=class{config;constructor(e){this.config=e;}async query(e,t){return this._run(e,"query",t)}async execute(e,t){return this._run(e,"execute",t)}async _run(e,t,n){let{generateText:o,tool:s}=await import('ai'),i=this.convertTools(n?.tools??[],s),a=this.createModel(n?.model),l=Math.min(n?.maxSteps??this.config.maxSteps??Uo,Bo);try{let u=0,c=await o({model:a,system:n?.systemPrompt??void 0,prompt:e,tools:i,maxSteps:l,...this.config.temperature!==void 0&&{temperature:this.config.temperature},...this.config.maxTokens!==void 0&&{maxTokens:this.config.maxTokens},onStepFinish:p=>{if(u++,!!n?.onOutput){if(p.toolCalls&&p.toolCalls.length>0)for(let m of p.toolCalls)n.onOutput(JSON.stringify({type:"assistant",message:{content:[{type:"tool_use",id:m.toolCallId,name:m.toolName,input:m.args}]}}),"stdout");if(p.toolResults&&p.toolResults.length>0)for(let m of p.toolResults){let h=typeof m.result=="string"?m.result:JSON.stringify(m.result);n.onOutput(JSON.stringify({type:"user",message:{content:[{type:"tool_result",tool_use_id:m.toolCallId,output:h,is_error:!1}]}}),"stdout");}}}}),d=new Set((n?.tools??[]).filter(p=>!p.execute).map(p=>p.name));if(c.finishReason==="tool-calls"&&Array.isArray(c.toolCalls)&&c.toolCalls.length>0){let p=c.toolCalls.filter(m=>d.has(m.toolName));if(p.length>0){let m=p[0];throw new exports.ClientToolCallRequiredError({toolCallId:m.toolCallId,toolName:m.toolName,args:m.args},{userMessage:e,responseMessages:c.response?.messages??[],toolDefinitions:n?.tools??[],maxSteps:l,systemPrompt:n?.systemPrompt,modelOverride:n?.model})}}if(n?.onUsage&&c.usage){let p={inputTokens:c.usage.promptTokens??0,outputTokens:c.usage.completionTokens??0,cachedInputTokens:0,costUsd:0};n.onUsage(p);}return n?.onModel&&n.onModel(n.model??this.config.model),c.text??""}catch(u){throw u instanceof exports.ClientToolCallRequiredError?u:u.status===401?new exports.ProviderError(`Authentication failed for ${this.config.provider}. Check your API key.`,this.config.provider):u.status===429?new exports.ProviderError(`Rate limit exceeded for ${this.config.provider}.`,this.config.provider):new exports.ProviderError(`Provider error: ${u.message}`,this.config.provider)}}async continueWithToolResults(e,t,n){let{generateText:o,tool:s}=await import('ai'),i=this.convertTools(e.toolDefinitions,s),a=this.createModel(e.modelOverride),l=Math.min(e.maxSteps??this.config.maxSteps??Uo,Bo),u=[{role:"user",content:e.userMessage},...e.responseMessages,{role:"tool",content:t.map(c=>({type:"tool-result",toolCallId:c.toolCallId,toolName:c.toolName,result:typeof c.result=="string"?c.result:JSON.stringify(c.result)}))}];try{let c=await o({model:a,system:e.systemPrompt??void 0,messages:u,tools:i,maxSteps:l,...this.config.temperature!==void 0&&{temperature:this.config.temperature},...this.config.maxTokens!==void 0&&{maxTokens:this.config.maxTokens}}),d=new Set(e.toolDefinitions.filter(p=>!p.execute).map(p=>p.name));if(c.finishReason==="tool-calls"&&Array.isArray(c.toolCalls)&&c.toolCalls.length>0){let p=c.toolCalls.filter(m=>d.has(m.toolName));if(p.length>0){let m=p[0];throw new exports.ClientToolCallRequiredError({toolCallId:m.toolCallId,toolName:m.toolName,args:m.args},{userMessage:e.userMessage,responseMessages:[...e.responseMessages,{role:"tool",content:t.map(h=>({type:"tool-result",toolCallId:h.toolCallId,toolName:h.toolName,result:typeof h.result=="string"?h.result:JSON.stringify(h.result)}))},...c.response?.messages??[]],toolDefinitions:e.toolDefinitions,maxSteps:e.maxSteps,systemPrompt:e.systemPrompt,modelOverride:e.modelOverride})}}return n?.onUsage&&c.usage&&n.onUsage({inputTokens:c.usage.promptTokens??0,outputTokens:c.usage.completionTokens??0,cachedInputTokens:0,costUsd:0}),n?.onModel&&n.onModel(e.modelOverride??this.config.model),c.text??""}catch(c){throw c instanceof exports.ClientToolCallRequiredError?c:new exports.ProviderError(`Provider error: ${c.message}`,this.config.provider)}}convertTools(e,t){let{z:n}=U("zod"),o={};for(let s of e){let i=this.jsonSchemaToZod(s.parameters??{},n);s.execute?o[s.name]=t({description:s.description,parameters:i,execute:async a=>s.execute(a)}):o[s.name]=t({description:s.description,parameters:i});}return o}jsonSchemaToZod(e,t){if(!e||!e.properties)return t.object({});let n={},o=e.properties,s=e.required??[];for(let[i,a]of Object.entries(o)){let l;switch(a.type){case "string":l=t.string();break;case "number":l=t.number();break;case "integer":l=t.number().int();break;case "boolean":l=t.boolean();break;case "array":l=t.array(t.any());break;default:l=t.any();}a.description&&(l=l.describe(a.description)),s.includes(i)||(l=l.optional()),n[i]=l;}return t.object(n)}createModel(e){let{provider:t,apiKey:n,baseURL:o}=this.config,s=e||this.config.model;switch(t){case "api/openrouter":{let{createOpenAI:i}=ar();return i({apiKey:n||process.env.OPENROUTER_API_KEY,baseURL:o||"https://openrouter.ai/api/v1"})(s)}case "api/openai":{let{createOpenAI:i}=ar();return i({apiKey:n||process.env.OPENAI_API_KEY,...o&&{baseURL:o}})(s)}case "api/anthropic":{let{createAnthropic:i}=Eo();return i({apiKey:n||process.env.ANTHROPIC_API_KEY,...o&&{baseURL:o}})(s)}case "api/google":{let{createGoogleGenerativeAI:i}=Fo();return i({apiKey:n||process.env.GOOGLE_API_KEY})(s)}default:throw new exports.ProviderError(`Unsupported API provider: ${t}`,t)}}};});var Wo={};Rt(Wo,{registerApiProviders:()=>Jo});function Jo(r){Ae("api",(e,t)=>{let n=r?.apiKeys?.[e];return new exports.VercelProviderRuntime({provider:t,model:"",apiKey:n,maxSteps:r?.defaults?.maxSteps,temperature:r?.defaults?.temperature})});}var mr=le(()=>{y();xe();gr();});function pc(r){if(!r)return r;let e=r.trim().replace(/\/+$/,"");return e.toLowerCase().endsWith("/mcp")?e.slice(0,-4):e}exports.McpHttpTransport=void 0;var fr=le(()=>{y();exports.McpHttpTransport=class{endpoint;headers;timeoutMs;constructor(e){let t=pc(e.url);this.endpoint=`${t}/mcp`,this.headers={"Content-Type":"application/json",...e.headers??{}},e.apiKey&&(this.headers.Authorization=`Bearer ${e.apiKey}`),this.timeoutMs=e.timeoutMs??3e4;}async send(e){let t=new AbortController,n=setTimeout(()=>t.abort(),this.timeoutMs);try{let o=await fetch(this.endpoint,{method:"POST",headers:this.headers,body:JSON.stringify(e),signal:t.signal});if(clearTimeout(n),!o.ok){let a=await o.text();throw new Error(`HTTP ${o.status}: ${o.statusText}${a?` - ${a}`:""}`)}let s=o.headers.get("content-type");if(s?.includes("application/json"))return await o.json();let i=await o.text();return {jsonrpc:"2.0",id:e.id,error:{code:-32600,message:`Unexpected response content-type: ${s}`,data:i}}}catch(o){throw clearTimeout(n),o instanceof Error&&o.name==="AbortError"?new Error(`MCP-HTTP request timeout after ${this.timeoutMs}ms to ${this.endpoint}`):o}}async close(){}};});exports.RemoteAgentManager=void 0;var hr=le(()=>{y();fr();exports.RemoteAgentManager=class{logger;configs=new Map;transports=new Map;constructor(e={}){this.logger=e.logger??(()=>{});}loadConfig(e,t){this.validateConfig(t),this.configs.set(e,t),this.transports.set(e,new exports.McpHttpTransport({url:t.url,apiKey:t.apiKey,headers:t.headers,timeoutMs:t.timeoutMs})),this.logger(`Loaded remote agent config for: ${e}`,"debug");}loadConfigWithTransport(e,t,n){this.validateConfig(t),this.configs.set(e,t),this.transports.set(e,n),this.logger(`Loaded remote agent config for: ${e} (custom transport)`,"debug");}getConfig(e){return this.configs.get(e)}isRemoteAgent(e){return this.configs.has(e)}getRemoteAgentIds(){return Array.from(this.configs.keys())}async query(e,t){let n=this.requireConfig(e),o=n.tools?.query??"crewx_queryAgent",i={agentId:n.agentId??e,query:t.query};t.context&&(i.context=t.context),t.model&&(i.model=t.model),t.platform&&(i.platform=t.platform),t.messages?.length&&(i.messages=t.messages);try{let a=await this.callRemoteTool(e,o,i);return this.normalizeResponse(a)}catch(a){let l=a instanceof Error?a.message:String(a);throw this.logger(`Remote query failed for agent ${e}: ${l}`,"error"),a}}async execute(e,t){let n=this.requireConfig(e),o=n.tools?.execute??"crewx_executeAgent",i={agentId:n.agentId??e,task:t.task};t.context&&(i.context=t.context),t.model&&(i.model=t.model),t.platform&&(i.platform=t.platform),t.messages?.length&&(i.messages=t.messages);try{let a=await this.callRemoteTool(e,o,i);return this.normalizeResponse(a)}catch(a){let l=a instanceof Error?a.message:String(a);throw this.logger(`Remote execute failed for agent ${e}: ${l}`,"error"),a}}mapToolNames(e,t){let n=this.requireConfig(e);n.tools={query:t.query??n.tools?.query??"crewx_queryAgent",execute:t.execute??n.tools?.execute??"crewx_executeAgent"},this.logger(`Updated tool name mapping for agent ${e}`,"debug");}async clearConfigs(){for(let e of this.transports.values())await e.close();this.configs.clear(),this.transports.clear(),this.logger("Cleared all remote agent configurations","debug");}requireConfig(e){let t=this.configs.get(e);if(!t)throw new Error(`Agent ${e} is not configured as a remote agent`);return t}async callRemoteTool(e,t,n){let o=this.transports.get(e);if(!o)throw new Error(`No transport available for agent ${e}`);let s={jsonrpc:"2.0",id:`${t}-${Date.now()}`,method:"tools/call",params:{name:t,arguments:n}};this.logger(`Calling remote MCP tool ${t} for agent ${e}`,"debug");let i=await o.send(s);if(i.error)throw new Error(i.error.message||"MCP server returned an error");return i.result}normalizeResponse(e){if(!e)return {success:false,content:[{type:"text",text:"Remote agent returned no response."}]};let t=e;if(Array.isArray(t.content)&&t.content.length>0)return t;let n=t.response??t.implementation??t.message??t.output,o=typeof n=="string"?n:JSON.stringify(n??e,null,2);return {...t,content:[{type:"text",text:o}]}}validateConfig(e){if(!e.url)throw new Error("Remote agent configuration requires a URL");if(!e.url.startsWith("http://")&&!e.url.startsWith("https://"))throw new Error("Remote agent URL must start with http:// or https://");if(e.type!=="mcp-http")throw new Error(`Unsupported remote agent type: ${e.type}`)}};});var Ko={};Rt(Ko,{RemoteProviderRuntime:()=>exports.RemoteProviderRuntime,createRemoteProviderFactory:()=>Vo,resolveFileRemoteAgent:()=>bc});function vc(r){let e=fs$1.readFileSync(r,"utf-8"),t=jsYaml.load(e);return {agents:Array.isArray(t?.agents)?t.agents:void 0}}function wc(r){let e=Array.isArray(r.provider)?r.provider[0]:r.provider;return e||(Array.isArray(r.inline?.provider)?r.inline.provider[0]:r.inline?.provider)}function bc(r,e=vc,t=fs$1.existsSync){let n=r.location.replace("file://","");if(!t(n))throw new Error(`Remote config file not found: ${n}`);if(!r.external_agent_id)throw new Error(`external_agent_id is required for file:// remote provider "${r.id}"`);let s=e(n).agents?.find(l=>l.id===r.external_agent_id);if(!s)throw new Error(`Agent "${r.external_agent_id}" not found in ${n}`);let i=wc(s);if(!i)throw new Error(`Agent "${r.external_agent_id}" in ${n} has no provider configured`);if(i.startsWith("remote/"))throw new Error(`Chained remotes not allowed: ${r.id} \u2192 ${i}`);let a=Hr.resolve(Hr.dirname(n),s.working_directory??".");return {agent:{...s,working_directory:a},provider:i}}function Vo(r,e=ce){return (t,n)=>{let o=r.get(t);if(!o)throw new Error(`Remote provider "${t}" not found. Available: ${Array.from(r.keys()).join(", ")||"(none)"}`);if(o.location.startsWith("file://"))throw new Error(`Remote provider "${t}" uses file:// location which is not supported at the SDK level. Use the CLI commands (crewx query / crewx execute) which handle file:// remotes automatically.`);return new exports.RemoteProviderRuntime(t,o,e)}}function _c(r,e){let t=e.location;if(!t)throw new Error("Remote provider config requires a location");if(!t.startsWith("http://")&&!t.startsWith("https://"))throw new Error(`Unsupported remote location protocol for MCP-HTTP: ${t}`);return {type:"mcp-http",url:t,apiKey:e.apiKey,headers:e.headers,timeoutMs:e.timeout?.query??3e4,agentId:e.external_agent_id??r}}exports.RemoteProviderRuntime=void 0;var yr=le(()=>{y();xe();hr();exports.RemoteProviderRuntime=class{manager;agentId;constructor(e,t,n=ce){this.agentId=t.external_agent_id??e,this.manager=new exports.RemoteAgentManager;let o=_c(e,t);this.manager.loadConfig(this.agentId,o);}async query(e,t){return (await this.manager.query(this.agentId,{agentId:this.agentId,query:e,model:t?.model,context:t?.context??t?.systemPrompt})).content.map(o=>o.text).join(`
|
|
34
|
+
`)}async execute(e,t){return (await this.manager.execute(this.agentId,{agentId:this.agentId,task:e,model:t?.model,context:t?.context??t?.systemPrompt})).content.map(o=>o.text).join(`
|
|
35
|
+
`)}};});var Qo={};Rt(Qo,{PluginProviderRuntime:()=>exports.PluginProviderRuntime,createPluginProviderFactory:()=>Yo});function Yo(r){return (e,t)=>{let n=r.get(e);if(!n)throw new exports.ProviderError(`Plugin provider "${e}" not found. Available: ${Array.from(r.keys()).join(", ")||"(none)"}`,`plugin/${e}`);return new exports.PluginProviderRuntime(e,n)}}function Go(r,e,t,n){let o=r.map(s=>s.replace(/\{model\}/g,e));return n&&o.push(t),o}function kc(r){if(!r||typeof r!="string")throw new Error("Plugin provider requires a cli_command")}function Xo(r){if(!Array.isArray(r))throw new Error("CLI arguments must be an array");for(let e of r)if(typeof e!="string")throw new Error("Each CLI argument must be a string")}function Rc(r){for(let{pattern:e}of r)if(typeof e!="string")throw new Error("Error pattern must be a string")}function Cc(r){for(let[e,t]of Object.entries(r))if(typeof e!="string"||typeof t!="string")throw new Error("env entries must be string key/value pairs")}exports.PluginProviderRuntime=void 0;var vr=le(()=>{y();xe();exports.PluginProviderRuntime=class{constructor(e,t){this.config=t;this.providerStr=`plugin/${e}`,kc(t.cli_command),Xo(t.query_args),Xo(t.execute_args),t.error_patterns&&Rc(t.error_patterns),t.env&&Cc(t.env);}config;providerStr;async query(e,t){let n=t?.model??this.config.default_model??"default",o=Go(this.config.query_args,n,e,this.config.prompt_in_args),s=this.config.prompt_in_args?void 0:e;t?.onCommand?.(`${this.config.cli_command} ${o.join(" ")}`);let i=this.config.timeout?.query??6e5;return this.runProcess(o,t,s,i)}async execute(e,t){let n=t?.model??this.config.default_model??"default",o=Go(this.config.execute_args,n,e,this.config.prompt_in_args),s=this.config.prompt_in_args?void 0:e;t?.onCommand?.(`${this.config.cli_command} ${o.join(" ")}`);let i=this.config.timeout?.execute??6e5;return this.runProcess(o,t,s,i)}runProcess(e,t,n,o){return new Promise((s,i)=>{let a={...process.env,...this.config.env??{}},l=child_process.spawn(this.config.cli_command,e,{env:a,shell:process.platform==="win32",stdio:["pipe","pipe","pipe"]});n!==void 0&&l.stdin.write(n),l.stdin.end(),l.pid!==void 0&&t?.onPid?.(l.pid);let u="",c="",d="",p="";l.stdout.on("data",h=>{let f=h.toString();u+=f,d+=f;let g=d.split(`
|
|
36
|
+
`);d=g.pop()??"";for(let v of g)v.trim()&&t?.onOutput?.(v,"stdout");}),l.stderr.on("data",h=>{let f=h.toString();c+=f,p+=f;let g=p.split(`
|
|
37
|
+
`);p=g.pop()??"";for(let v of g)v.trim()&&t?.onOutput?.(v,"stderr");});let m=setTimeout(()=>{l.kill("SIGTERM"),i(new exports.ProviderError(`Plugin provider "${this.providerStr}" timed out after ${o}ms`,this.providerStr));},o);l.on("error",h=>{if(clearTimeout(m),h.code==="ENOENT"){let f=this.config.not_installed_message??`CLI command "${this.config.cli_command}" not found. Is ${this.config.id} installed?`;i(new exports.ProviderError(f,this.providerStr));}else i(new exports.ProviderError(`Spawn error: ${h.message}`,this.providerStr));}),l.on("close",h=>{clearTimeout(m),d.trim()&&t?.onOutput?.(d,"stdout"),p.trim()&&t?.onOutput?.(p,"stderr");let f=h??0;if(t?.onExitCode?.(f),this.config.error_patterns){let g=c||u;for(let v of this.config.error_patterns)if(g.includes(v.pattern)){i(new exports.ProviderError(v.message,this.providerStr));return}}if(h!==0){i(new exports.ProviderError(`Process exited with code ${h}: ${c.slice(0,500)}`,this.providerStr));return}s(u.trim());});})}};});y();y();y();function ws(r){let e=o=>o.replace(/[.+^${}()|[\]\\]/g,"\\$&"),n=r.split("/").map(o=>o==="**"?".*":o.split("*").map(e).join("[^/]*"));return new RegExp(`^${n.join("\\/")}$`)}function ne(r,e){try{return ws(e).test(r)}catch{return false}}y();y();var bs=zod.z.object({model:zod.z.string().optional(),system_prompt:zod.z.string().optional(),prompt:zod.z.string().optional(),layout:zod.z.union([zod.z.string(),zod.z.object({id:zod.z.string(),props:zod.z.record(zod.z.unknown()).optional()})]).optional()}).catchall(zod.z.unknown()),_s=zod.z.object({id:zod.z.string(),name:zod.z.string().optional(),role:zod.z.string().optional(),team:zod.z.string().optional(),provider:zod.z.union([zod.z.string(),zod.z.array(zod.z.string())]),working_directory:zod.z.string().optional(),description:zod.z.string().optional(),tags:zod.z.array(zod.z.string()).optional(),inline:bs.optional()}).catchall(zod.z.unknown()),Ar=zod.z.object({agents:zod.z.array(_s).optional(),hooks:zod.z.array(zod.z.unknown()).optional(),settings:zod.z.record(zod.z.unknown()).optional(),skills:zod.z.unknown().optional(),layouts:zod.z.record(zod.z.unknown()).optional(),documents:zod.z.record(zod.z.unknown()).optional()}).catchall(zod.z.unknown());var _e=class extends Error{constructor(t,n){super(t);this.cause=n;this.name="ConfigLoadError";}cause};function Sr(r){if(!r||typeof r!="string"||!r.trim())throw new _e("YAML content must be a non-empty string");let e;try{e=jsYaml.load(r);}catch(o){throw new _e(`YAML parse error: ${o.message}`,o)}let t=Rs(e),n=Ar.safeParse(t);if(!n.success)throw new _e(`Config validation error: ${n.error.message}`);return n.data}function Ct(r){let e;try{e=fs$1.readFileSync(r,"utf-8");}catch(t){throw new _e(`Cannot read file: ${r}`,t)}return Sr(e)}function Rs(r){if(!r||typeof r!="object")return {agents:[]};let e=r,t;if(e.agents&&typeof e.agents=="object"&&!Array.isArray(e.agents)){let o=e.agents;t=Object.entries(o).map(([s,i])=>({id:s,...i&&typeof i=="object"?i:{}}));}else if(Array.isArray(e.agents))t=e.agents;else return {...e,agents:[]};let n=t.map(o=>{if(o.provider===void 0&&o.inline&&typeof o.inline=="object"){let s=o.inline;if(s.provider!==void 0)return {...o,provider:s.provider}}return o});return {...e,agents:n}}y();var ue=class extends Error{constructor(e,t){let n=t.length>0?` Available: ${t.join(", ")}`:"";super(`Agent not found: "${e}".${n}`),this.name="AgentNotFoundError";}},Cs={claude:{id:"claude",provider:"cli/claude"},gemini:{id:"gemini",provider:"cli/gemini"},copilot:{id:"copilot",provider:"cli/copilot"},codex:{id:"codex",provider:"cli/codex"}};function ot(r,e){let t=r.startsWith("@")?r.slice(1):r,n=e.find(s=>s.id===t);if(n)return n;let o=Cs[t];if(o)return o;throw new ue(r,e.map(s=>s.id))}xe();y();y();var zs=[/^ANTHROPIC_/i,/^OPENAI_/i,/^AWS_SECRET/i,/^SLACK_/i,/^GITHUB_TOKEN$/i,/^CREWX_MCP_KEY$/i,/^DATABASE_/i,/^AWS_ACCESS_KEY/i,/^AWS_SESSION_TOKEN$/i,/^GH_TOKEN$/i,/^GH_APP_/i,/^NPM_TOKEN$/i,/^NPM_AUTH/i,/^GOOGLE_APPLICATION/i,/^GCLOUD_/i,/^AZURE_/i,/^ARM_/i,/^DOCKER_PASSWORD$/i,/^DOCKER_AUTH/i,/^SSH_PRIVATE/i,/^SSH_AUTH_SOCK$/i,/^CI_JOB_TOKEN$/i,/^ACTIONS_RUNTIME_TOKEN$/i,/^VAULT_TOKEN$/i,/^SONAR_TOKEN$/i,/^CODECOV_TOKEN$/i,/TOKEN$/i,/SECRET$/i,/PASSWORD$/i,/API_KEY$/i],Ms=/[;|&`$(){}!><\n\r]/,js=2,Ns=["*","**","*:*","* *","**/*"];function $s(){let r={};for(let[e,t]of Object.entries(process.env))t!==void 0&&(zs.some(n=>n.test(e))||(r[e]=t));return r}function Ds(r){if(Ms.test(r))throw new Error(`exec blocked: shell metacharacter detected in "${r}"`)}function Ls(r){return /^npx\s+@crewx\/[\w-]+/.test(r)}function Hs(r){if(Ns.includes(r.trim()))throw new Error(`exec config error: overly broad pattern "${r}" is not allowed`);if(!/^[\w./@-]/.test(r))throw new Error("exec config error: pattern must start with a command name")}function qs(r,e){let t=e.allow??[],n=e.deny??[];for(let o of [...t,...n])Hs(o);return n.some(o=>ne(r,o))?false:Ls(r)?true:t.some(o=>ne(r,o))}var zr=false;function Fs(r){zr=r;}function Oe(r){if(!zr)return;let e=JSON.stringify({span:"template_exec",...r,timestamp:new Date().toISOString()});console.error(e);}function Us(r){let e=[],t="",n=false,o=false;for(let s=0;s<r.length;s++){let i=r[s];i==="'"&&!o?n=!n:i==='"'&&!n?o=!o:i===" "&&!n&&!o?t.length>0&&(e.push(t),t=""):t+=i;}return t.length>0&&e.push(t),e}function Mr(r,e){let t=Date.now(),n=parseInt(process.env.CREWX_EXEC_DEPTH??"0",10);if(isNaN(n)||n>=js)return Oe({command:r,status:"denied",reason:"invalid or max recursion depth"}),"(exec blocked: max recursion depth reached)";try{Ds(r);}catch{return Oe({command:r,status:"denied",reason:"shell metacharacter detected"}),`(exec blocked: shell metacharacter detected in "${r}")`}if(!qs(r,e))return Oe({command:r,status:"denied",reason:"not in allow list"}),`(exec blocked: ${r})`;try{let o=Us(r),[s,...i]=o;if(!s)return `(exec failed: ${r})`;let a=$s(),l=child_process.execFileSync(s,i,{timeout:e.timeout??5e3,maxBuffer:64*1024,encoding:"utf-8",env:{...a,CREWX_EXEC_DEPTH:String(n+1)},stdio:["pipe","pipe","pipe"]}),u=Date.now()-t;return Oe({command:r,status:"allowed",allowed_by:"policy",duration_ms:u}),`<exec-output cmd="${r}">
|
|
38
|
+
${l.trim()}
|
|
39
|
+
</exec-output>`}catch{return Oe({command:r,status:"error",reason:"execution failed"}),`(exec failed: ${r})`}}y();function jr(r){return r==null?"":String(r)}y();function Nr(r,e){return `\`\`\`${e?.hash?.lang??""}
|
|
40
|
+
${r??""}
|
|
41
|
+
\`\`\``}y();function At(r,e){if(!r)return "";if(r.length<=e)return r;let t=r.length-e;return `${r.substring(0,e)} (...+${t} chars)`}function St(r){return Array.isArray(r)||typeof r=="string"?r.length:0}function It(r){return typeof r!="string"?"":r.replace(/\{\{/g,"{{").replace(/\}\}/g,"}}")}var $r=["B","KB","MB","GB"];function Ot(r){if(r===0)return "0 B";let e=Math.min(Math.floor(Math.log(r)/Math.log(1024)),$r.length-1);return `${Math.round(r/Math.pow(1024,e)*100)/100} ${$r[e]}`}function zt(r){if(!r)return "";try{let e=r instanceof Date?r:new Date(r);return isNaN(e.getTime())?"":e.toLocaleString("ko-KR",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}catch{return ""}}var ze=class{hbs;execPolicy;execEnabled;constructor(e={}){this.hbs=oe__namespace.create(),this.execPolicy=e.execPolicy??{allow:[],deny:[]},this.execEnabled=e.execEnabled??true,this.registerHelpers();}registerHelpers(){let e=this.hbs,t=this.execPolicy,n=this.execEnabled;e.registerHelper("exec",function(o){return typeof o!="string"?"":n?new e.SafeString(Mr(o,t)):"(exec disabled)"}),e.registerHelper("include",function(o){return new e.SafeString(jr(o))}),e.registerHelper("fenced_code",function(o,s){return new e.SafeString(Nr(o,s))}),e.registerHelper("eq",function(o,s){return o===s}),e.registerHelper("ne",function(o,s){return o!==s}),e.registerHelper("and",function(o,s){return o&&s}),e.registerHelper("or",function(o,s){return o||s}),e.registerHelper("not",function(o){return !o}),e.registerHelper("contains",function(o,s){return Array.isArray(o)&&o.includes(s)}),e.registerHelper("json",function(o){return JSON.stringify(o,null,2)}),e.registerHelper("truncate",function(o,s){return At(o,s)}),e.registerHelper("length",function(o){return St(o)}),e.registerHelper("escapeHandlebars",function(o){return new e.SafeString(It(o))}),e.registerHelper("formatFileSize",function(o){return Ot(o)}),e.registerHelper("formatTimestamp",function(o){return zt(o)});}async render(e,t={}){return this.hbs.compile(e,{noEscape:true})(t)}};y();y();var st=class{async readFile(e){return promises.readFile(e,"utf-8")}async exists(e){try{return await promises.access(e),!0}catch{return false}}resolvePath(...e){return e.length===1?Hr.resolve(e[0]):Hr.resolve(Hr.join(...e))}isAbsolute(e){return Hr.isAbsolute(e)}},Mt=new st;var ke=class{docs=new Map;fs;constructor(e){this.fs=e??Mt;}async load(e,t){if(e)for(let[n,o]of Object.entries(e)){let s=o;if(typeof s=="string")this.docs.set(n,{content:s});else if(s&&typeof s=="object"){let i=s;"content"in i&&typeof i.content=="string"?this.docs.set(n,{content:i.content}):"path"in i&&typeof i.path=="string"?await this.loadFromFile(n,i.path,t):console.warn(`[DocumentLoader] Skipping '${n}': unsupported format`);}else console.warn(`[DocumentLoader] Skipping '${n}': unsupported format`);}}async getContent(e){return this.docs.get(e)?.content}async getToc(e){let t=this.docs.get(e);if(!t)return;let n=[];for(let o of t.content.split(`
|
|
42
|
+
`)){let s=/^(#{1,6})\s+(.+)$/.exec(o.trim());s&&n.push({depth:s[1].length,text:s[2].trim()});}if(n.length!==0)return n.map(({depth:o,text:s})=>`${" ".repeat(o-1)}- ${s}`).join(`
|
|
43
|
+
`)}getPath(e){return this.docs.get(e)?.path}getNames(){return Array.from(this.docs.keys())}async buildContext(){let e={};for(let t of this.docs.keys()){let n=await this.getContent(t)??"",o=await this.getToc(t),s=this.getPath(t);e[t]={content:n,toc:o,...s?{path:s}:{}};}return e}async loadFromFile(e,t,n){try{let o=this.resolve(t,n),s=await this.fs.readFile(o);this.docs.set(e,{content:s,path:o});}catch(o){let s=o instanceof Error?o.message:String(o);console.warn(`[DocumentLoader] Failed to load '${e}' from '${t}': ${s}`);}}resolve(e,t){return this.fs.isAbsolute(e)?e:t?this.fs.resolvePath(t,e):this.fs.resolvePath(e)}};y();y();var Re=Hr.join("templates","agents");function Xs(){try{let e=(typeof U=="function"?U:module$1.createRequire(typeof __filename<"u"?__filename:process.cwd()+"/")).resolve("@crewx/sdk/package.json");return Hr.dirname(e)}catch{return null}}function at(r){let e=process.env.CREWX_SDK_TEMPLATES_PATH;if(e&&fs$1.existsSync(e))return e;let t=Xs();if(t){let o=Hr.join(t,Re);if(fs$1.existsSync(o))return o}let n=[Hr.join(__dirname,"..",Re),Hr.join(__dirname,"..","..",Re),Hr.join(__dirname,"..","..","..",Re),Hr.join(process.cwd(),"packages","sdk",Re),Hr.join(process.cwd(),Re)];for(let o of n)if(fs$1.existsSync(o))return o;throw new Error(`[@crewx/sdk] Templates directory not found.
|
|
44
|
+
`+(t?` package anchor: ${Hr.join(t,Re)}
|
|
45
|
+
`:` package anchor: (unresolved)
|
|
46
|
+
`)+n.map(o=>` candidate: ${o}`).join(`
|
|
47
|
+
`)+`
|
|
48
|
+
Set CREWX_SDK_TEMPLATES_PATH or pass options.templatesPath.`)}y();var Y=class extends Error{constructor(t,n,o){super(t);this.layoutId=n;this.cause=o;this.name="LayoutLoadError";}layoutId;cause},de=class extends Error{constructor(t,n=[],o){super(t);this.errors=n;this.cause=o;this.name="PropsValidationError";}errors;cause};var ti={validationMode:"lenient",fallbackLayoutId:"crewx/default"},Me=class{layouts=new Map;options;constructor(e){this.options={...ti,...e,templatesPath:e?.templatesPath??at()},this.loadAllLayouts();}load(e,t){let n=this.layouts.get(e);if(!n){let o=this.normalizeLayoutId(e);n=this.layouts.get(o);}if(!n&&(console.warn(`Layout not found: ${e}, falling back to ${this.options.fallbackLayoutId}`),n=this.layouts.get(this.options.fallbackLayoutId),!n))throw new Y(`Fallback layout not found: ${this.options.fallbackLayoutId}`,this.options.fallbackLayoutId);return t&&Object.keys(t).length>0?{...n,defaultProps:{...n.defaultProps,...t}}:n}getLayoutIds(){return Array.from(this.layouts.keys())}hasLayout(e){if(this.layouts.has(e))return true;let t=this.normalizeLayoutId(e);return this.layouts.has(t)}reload(){this.layouts.clear(),this.loadAllLayouts();}registerLayout(e,t){if(!e||typeof e!="string")throw new Y("Layout ID must be a non-empty string",e);let n=typeof t=="string"?{template:t}:t,o=typeof n.template=="string"?n.template:"";if(!o||o.trim().length===0)throw new Y(`Custom layout template is empty for ${e}`,e);let s=n.propsSchema||{},i=this.extractDefaultProps(s),a=n.defaultProps||{},l={id:e,version:n.version||"1.0.0",description:n.description||`Custom layout ${e}`,template:o,propsSchema:this.parsePropsSchema(s),defaultProps:{...i,...a}},u=this.layouts.get(e),c=u?.template===o&&JSON.stringify(u?.defaultProps??{})===JSON.stringify(l.defaultProps??{})&&JSON.stringify(u?.propsSchema??{})===JSON.stringify(l.propsSchema??{});this.layouts.set(e,l),process.env.CREWX_VERBOSE==="1"&&(u?c||console.error(`Updated custom layout: ${e}`):console.error(`Registered custom layout: ${e}`));}registerLayouts(e){for(let[t,n]of Object.entries(e))try{this.registerLayout(t,n);}catch(o){console.warn(`Failed to register custom layout ${t}:`,o instanceof Error?o.message:o);}}loadAllLayouts(){let e=this.options.templatesPath;if(!fs$1.existsSync(e))throw new Y(`Templates directory not found: ${e}`,void 0,new Error(`Directory does not exist: ${e}`));try{let t=fs$1.readdirSync(e).filter(n=>n.endsWith(".yaml")||n.endsWith(".yml"));t.length===0&&console.warn(`No layout files found in ${e}`);for(let n of t){let o=n.replace(/\.(yaml|yml)$/,""),s=Hr__namespace.join(e,n);try{let i=this.loadLayoutFile(s,o),a=`crewx/${o}`;this.layouts.set(a,i),a!=="crewx/minimal"&&process.env.CREWX_VERBOSE==="1"&&console.error(`Loaded layout: ${a} from ${n}`);}catch(i){console.error(`Failed to load layout file ${n}:`,i);}}process.env.CREWX_VERBOSE==="1"&&console.error(`Loaded ${this.layouts.size} layouts from ${e}`);}catch(t){throw new Y(`Failed to read layouts directory: ${e}`,void 0,t instanceof Error?t:new Error(String(t)))}}loadLayoutFile(e,t){try{let n=fs$1.readFileSync(e,"utf-8");if(!n||n.trim().length===0)throw console.warn(`Empty YAML file: ${e}, will use fallback`),new Y(`Empty YAML file: ${e}`,t,new Error("File content is empty"));let o=jsYaml.load(n);if(!o||typeof o!="object")throw console.warn(`Invalid YAML content in ${e} (parsed as ${typeof o}), will use fallback`),new Y(`Invalid or empty YAML in ${e}`,t,new Error("YAML parsing returned null/undefined or non-object"));if(o.layouts&&typeof o.layouts=="object"){let s=this.resolveLayoutEntry(o.layouts,t);if(!s||s.template.trim().length===0)throw console.warn(`Empty or missing layout template in ${e} for ${t}`),new Y(`Layout template not found or empty in layouts map: ${t}`,t);let i=s.propsSchema||o.propsSchema||{};return {id:`crewx/${t}`,version:o.version||"1.0.0",description:o.description||`CrewX ${t} layout`,template:s.template,propsSchema:this.parsePropsSchema(i),defaultProps:this.extractDefaultProps(i)}}else {if(!o.template||typeof o.template=="string"&&o.template.trim().length===0)throw console.warn(`Empty or missing template field in ${e}`),new Y(`Layout template is missing or empty in ${e}`,t);return {id:o.id||`crewx/${t}`,version:o.version||"1.0.0",description:o.description||"",template:o.template,propsSchema:this.parsePropsSchema(o.propsSchema||{}),defaultProps:this.extractDefaultProps(o.propsSchema||{})}}}catch(n){throw new Y(`Failed to load layout file: ${e}`,t,n instanceof Error?n:new Error(String(n)))}}parsePropsSchema(e){let t={};for(let[n,o]of Object.entries(e))typeof o=="object"&&o!==null&&(t[n]=o);return t}extractDefaultProps(e){let t={};for(let[n,o]of Object.entries(e))o&&typeof o=="object"&&("defaultValue"in o?t[n]=o.defaultValue:"default"in o&&(t[n]=o.default));return t}normalizeLayoutId(e){return e?e.includes("/")?e:`crewx/${e}`:this.options.fallbackLayoutId}resolveLayoutEntry(e,t){let n=new Set;if(t)if(n.add(t),t.includes("/")){let o=t.split("/"),s=o[o.length-1];s&&n.add(s);}else n.add(`crewx/${t}`);n.add("default");for(let o of n){let s=e[o];if(typeof s=="string"&&s.trim().length>0)return {template:s};if(s&&typeof s=="object"&&typeof s.template=="string"&&s.template.trim().length>0)return {template:s.template,propsSchema:s.propsSchema}}for(let o of Object.values(e)){if(typeof o=="string"&&o.trim().length>0)return {template:o};let s=o;if(s&&typeof s=="object"&&typeof s.template=="string"&&s.template.trim().length>0)return {template:s.template,propsSchema:s.propsSchema}}}};y();y();function ri(r){return Array.from(new Set(r.filter(e=>e?.isAssistant&&e?.metadata?.agent_id).map(e=>String(e.metadata.agent_id))))}function qr(r,e,t){if(!Array.isArray(r)||r.length===0||!(t&&typeof t.fn=="function"))return "";let o=ri(r),s=o.length>0?o[0]:"",i={messages:r,platform:typeof e=="string"?e:"",messagesCount:r.length,agentIds:o,primaryAgentId:s};return t.fn(i)}y();var je=class{defaultMode;constructor(e={}){this.defaultMode=e.defaultMode??"lenient";}validate(e,t,n=this.defaultMode){let o=[],s=this.validateObject(e??{},t,n,["props"],o);if(o.length>0&&n==="strict")throw new de("Props validation failed in strict mode",o);return {valid:o.length===0,props:s,errors:o}}validateObject(e,t,n,o,s){let i={};if(n==="strict")for(let a of Object.keys(e))t[a]||s.push({path:this.buildPath([...o,a]),message:`Unknown prop '${a}'`,value:e[a]});for(let[a,l]of Object.entries(t)){let u=[...o,a],c=e[a],d=this.resolveProp(c,l,u,n,s);d.shouldAssign&&(i[a]=d.value);}return i}resolveProp(e,t,n,o,s){let i=this.buildPath(n);if(this.isNil(e)){if(t.isRequired&&s.push({path:i,message:`Required prop '${n[n.length-1]}' is missing`}),t.defaultValue!==void 0)return {shouldAssign:true,value:this.cloneValue(t.defaultValue)};if(t.type==="shape"&&t.shape){let l=this.applyDefaults(t.shape);if(Object.keys(l).length>0)return {shouldAssign:true,value:l}}return {shouldAssign:false}}let a=this.validateType(e,t,n,o,s);if(!a.valid){if(t.type==="shape"&&a.value&&this.isPlainObject(a.value))return {shouldAssign:true,value:a.value};if(s.push({path:i,message:a.error??"Invalid value",value:e}),t.defaultValue!==void 0)return {shouldAssign:true,value:this.cloneValue(t.defaultValue)};if(t.type==="shape"&&t.shape){let l=this.applyDefaults(t.shape);if(Object.keys(l).length>0)return {shouldAssign:true,value:l}}return {shouldAssign:false}}return {shouldAssign:true,value:a.value}}validateType(e,t,n,o,s){let{type:i}=t;switch(i){case "string":return this.validateString(e,t);case "number":return this.validateNumber(e,t);case "bool":return this.validateBoolean(e);case "array":return this.validateArray(e,t);case "arrayOf":return this.validateArrayOf(e,t,n,o,s);case "object":return this.validatePlainObject(e);case "shape":return this.validateShape(e,t,n,o,s);case "oneOfType":return this.validateOneOfType(e,t);case "func":return this.validateFunction(e);case "node":return {valid:true,value:e};default:return {valid:true,value:e}}}validateString(e,t){return typeof e!="string"?{valid:false,error:`Expected string, got ${this.describeType(e)}`}:t.oneOf&&!t.oneOf.includes(e)?{valid:false,error:`Expected one of: ${t.oneOf.join(", ")}`}:t.minLength!==void 0&&e.length<t.minLength?{valid:false,error:`String length must be >= ${t.minLength}`}:t.maxLength!==void 0&&e.length>t.maxLength?{valid:false,error:`String length must be <= ${t.maxLength}`}:t.pattern&&!new RegExp(t.pattern).test(e)?{valid:false,error:`String does not match pattern ${t.pattern}`}:{valid:true,value:e}}validateNumber(e,t){return typeof e!="number"||Number.isNaN(e)?{valid:false,error:`Expected number, got ${this.describeType(e)}`}:t.min!==void 0&&e<t.min?{valid:false,error:`Number must be >= ${t.min}`}:t.max!==void 0&&e>t.max?{valid:false,error:`Number must be <= ${t.max}`}:t.oneOf&&!t.oneOf.includes(e)?{valid:false,error:`Expected one of: ${t.oneOf.join(", ")}`}:{valid:true,value:e}}validateBoolean(e){return typeof e!="boolean"?{valid:false,error:`Expected boolean, got ${this.describeType(e)}`}:{valid:true,value:e}}validateArray(e,t){return Array.isArray(e)?t.minLength!==void 0&&e.length<t.minLength?{valid:false,error:`Array length must be >= ${t.minLength}`}:t.maxLength!==void 0&&e.length>t.maxLength?{valid:false,error:`Array length must be <= ${t.maxLength}`}:{valid:true,value:[...e]}:{valid:false,error:`Expected array, got ${this.describeType(e)}`}}validateArrayOf(e,t,n,o,s){let i=this.validateArray(e,t);if(!i.valid)return i;let a=[],l=t.itemType,u=t.itemOneOf,c=s.length;return i.value.forEach((d,p)=>{let m=[...n,String(p)];if(l){let h=this.validateType(d,{type:l},m,o,s);h.valid?a.push(h.value):s.push({path:this.buildPath(m),message:h.error??"Invalid array item",value:d});}else a.push(d);u&&!u.includes(d)&&s.push({path:this.buildPath(m),message:`Array item must be one of: ${u.join(", ")}`,value:d});}),{valid:s.length===c,value:a}}validatePlainObject(e){return this.isPlainObject(e)?{valid:true,value:{...e}}:{valid:false,error:`Expected object, got ${this.describeType(e)}`}}validateFunction(e){return typeof e!="function"?{valid:false,error:`Expected function, got ${this.describeType(e)}`}:{valid:true,value:e}}validateShape(e,t,n,o,s){if(!this.isPlainObject(e))return {valid:false,error:`Expected object, got ${this.describeType(e)}`};let i=s.length,a=this.validateObject(e,t.shape??{},o,n,s);return {valid:s.length===i,value:a}}validateOneOfType(e,t){let n=t.types??[];return n.some(s=>this.matchesType(e,s))?{valid:true,value:e}:{valid:false,error:`Value does not match any allowed type: ${n.join(", ")}`}}matchesType(e,t){switch(t){case "string":return typeof e=="string";case "number":return typeof e=="number"&&!Number.isNaN(e);case "bool":case "boolean":return typeof e=="boolean";case "array":return Array.isArray(e);case "object":return this.isPlainObject(e);case "func":case "function":return typeof e=="function";case "shape":return this.isPlainObject(e);case "node":return e==null||typeof e!="symbol";default:return true}}applyDefaults(e){let t={};for(let[n,o]of Object.entries(e)){if(o.defaultValue!==void 0){t[n]=this.cloneValue(o.defaultValue);continue}if(o.type==="shape"&&o.shape){let s=this.applyDefaults(o.shape);Object.keys(s).length>0&&(t[n]=s);}}return t}cloneValue(e){if(Array.isArray(e))return e.map(t=>this.cloneValue(t));if(this.isPlainObject(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=this.cloneValue(o);return t}return e}isPlainObject(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}isNil(e){return e==null}buildPath(e){return e.join(".")}describeType(e){return Array.isArray(e)?"array":e===null?"null":typeof e}};var Ne=class{handlebars;propsValidator;constructor(e){this.handlebars=oe__namespace.default.create(),this.propsValidator=e??new je,this.registerHelpers();}render(e,t,n={}){try{let o=this.prepareRenderContext(e,t,n);return this.handlebars.compile(e.template,{noEscape:!0})(o)}catch(o){throw o instanceof Error?new Error(`Template rendering failed for layout '${e.id}': ${o.message}`):new Error(`Unknown error rendering layout '${e.id}'`)}}validate(e,t,n="lenient"){return this.executeValidation(e,t,n)}resolveProps(e,t,n="lenient"){let o=this.mergeProps(e.defaultProps,t);return !e.propsSchema||Object.keys(e.propsSchema).length===0?{valid:true,props:o,errors:[]}:this.executeValidation(o,e.propsSchema,n)}prepareRenderContext(e,t,n){let{validationMode:o="lenient",skipValidation:s=false}=n,i=s?this.mergeProps(e.defaultProps,t.props):this.resolveProps(e,t.props,o).props;return {...t,vars:this.sanitizeVars(t.vars),props:i}}registerHelpers(){this.handlebars.registerHelper("formatConversation",qr),oe__namespace.default.helpers.each&&this.handlebars.registerHelper("each",oe__namespace.default.helpers.each),oe__namespace.default.helpers.if&&this.handlebars.registerHelper("if",oe__namespace.default.helpers.if),oe__namespace.default.helpers.unless&&this.handlebars.registerHelper("unless",oe__namespace.default.helpers.unless),oe__namespace.default.helpers.with&&this.handlebars.registerHelper("with",oe__namespace.default.helpers.with),this.handlebars.registerHelper("eq",function(e,t){return e===t}),this.handlebars.registerHelper("ne",function(e,t){return e!==t}),this.handlebars.registerHelper("gt",function(e,t){return e>t}),this.handlebars.registerHelper("lt",function(e,t){return e<t}),this.handlebars.registerHelper("json",function(e){return new oe__namespace.default.SafeString(JSON.stringify(e))}),this.handlebars.registerHelper("raw",function(e){return typeof e?.fn=="function"?e.fn(this):""}),this.handlebars.registerHelper("escapeHandlebars",function(e){return typeof e!="string"?"":e.replace(/\{\{/g,"{{").replace(/\}\}/g,"}}")}),this.handlebars.registerHelper("formatFileSize",function(e){if(e===0)return "0 B";let t=["B","KB","MB","GB"],n=Math.floor(Math.log(e)/Math.log(1024));return Math.round(e/Math.pow(1024,n)*100)/100+" "+t[n]});}executeValidation(e,t,n){try{return this.propsValidator.validate(e,t,n)}catch(o){if(o instanceof de&&o.errors&&o.errors.length>0){let s=o.errors[0];if(s)throw new de(s.message,o.errors)}throw o}}mergeProps(e,t){let n=this.cloneDeep(e??{});return t?this.deepMerge(n,t):n}deepMerge(e,t){for(let[n,o]of Object.entries(t)){if(this.isPlainObject(o)){let s=e[n];e[n]=this.deepMerge(this.isPlainObject(s)?s:{},o);continue}if(Array.isArray(o)){e[n]=this.cloneDeep(o);continue}e[n]=o;}return e}cloneDeep(e){if(Array.isArray(e))return e.map(t=>this.cloneDeep(t));if(this.isPlainObject(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=this.cloneDeep(o);return t}return e}isPlainObject(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}sanitizeVars(e){if(!e)return {};let t={...e};if(typeof e.user_input=="string"){t.user_input_raw=e.user_input;let n=e.user_input.replace(/\{\{\{/g,"{{{").replace(/\}\}\}/g,"}}}").replace(/\{\{/g,"{{").replace(/\}\}/g,"}}");t.user_input=this.handlebars.escapeExpression(n);}return t}};y();var jt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";function ni(r){let e=crypto$1.randomBytes(r*2),t="";for(let n=0;n<e.length&&t.length<r;n++){let o=e[n];o<248&&(t+=jt[o%62]);}for(;t.length<r;)t+=jt[crypto$1.randomBytes(1)[0]%62];return t}function Ce(r){return `${r}_${ni(8)}`}function oi(r,e){let{createHash:t}=U("crypto"),n=t("sha256").update(e).digest(),o=Buffer.alloc(8);for(let i=0;i<32;i++)o[i%8]^=n[i];let s="";for(let i of o)s+=jt[i%62];return `${r}_${s}`}y();function Nt(r){let e=t=>String(t).padStart(2,"0");return `${r.getFullYear()}${e(r.getMonth()+1)}${e(r.getDate())}T${e(r.getHours())}${e(r.getMinutes())}${e(r.getSeconds())}`}y();function Ur(r,e){return t=>{try{let n=e(t);n instanceof Promise&&n.catch(o=>{console.error(`[crewx] event listener error (${r}): ${o instanceof Error?o.message:String(o)}`);});}catch(n){console.error(`[crewx] event listener error (${r}): ${n instanceof Error?n.message:String(n)}`);}}}var $e=class{_emitter=new events.EventEmitter;on(e,t){let n=Ur(e,t);return this._emitter.on(e,n),()=>this._emitter.off(e,n)}once(e,t){let n=Ur(e,t);return this._emitter.once(e,n),()=>this._emitter.off(e,n)}emit(e,t){this._emitter.emit(e,t);}};y();function $t(r){let e=new Map,t=n=>n.startsWith(`${r}::`)?n:`${r}::${n}`;return {async get(n){let o=e.get(t(n));return o?o.value:void 0},async set(n,o){e.set(t(n),{value:o});},async delete(n){return e.delete(t(n))},async list(n){let o=n?t(n):`${r}::`,s=[];for(let i of e.keys())i.startsWith(o)&&s.push(i.slice(r.length+2));return s}}}y();var Dt=new async_hooks.AsyncLocalStorage;function ai(){return Dt}function li(r,e){return Dt.run(r,e)}function Lt(r){let e=r.log??r.logger??{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},t=r.agentRunner??{run:async()=>({output:""})},n=r.db??{get:async()=>{},set:async()=>{},delete:async()=>false,list:async()=>[]},o=r.storage??{put:async()=>"",get:async()=>{},delete:async()=>false},s=r.audit??{log:async()=>{}},i=r.onInbound??(async()=>({accepted:true})),a=r.onEmitEvent??(async()=>({accepted:true})),l=r.onUpdateMessage??(async()=>{}),u=r.onResolveUser??(async p=>({userId:p,displayName:p})),c=async p=>{let m=Dt.getStore();if(!m){e.warn("respondSync called outside sync window \u2014 graceful degradation (no-op)",{textPreview:typeof p=="object"&&"text"in p?p.text.slice(0,80):void 0});return}let h="text"in p?p.text:"";m.res.status(200).json({text:h});},d=r.httpRouter??{registerRoute:()=>{e.warn("httpRouter not configured \u2014 registerRoute is a no-op");}};return {instanceId:r.instanceId,config:r.config,capabilities:r.capabilities,log:e,agentRunner:t,db:n,storage:o,audit:s,abortSignal:r.abortSignal??new AbortController().signal,httpRouter:d,inbound:i,emitEvent:a,updateMessage:l,resolveUser:u,respondSync:c}}y();y();y();function se(r){return /crewx\s+(x|execute)\s/.test(r)}function ie(r,e){let t=e.match(/@(\S+)/);return {timestamp:r,type:"agent_call",targetAgent:t?.[1]?.replace(/["']/g,""),toolInput:e}}function Br(r,e){let n=e.message?.content;if(!Array.isArray(n))return [];let o=[];for(let s of n){let i=ui(r,s);i&&o.push(i);}return o}function ui(r,e){let t=e.type;if(t==="text"){let n=String(e.text||"");return n?{timestamp:r,type:"text",content:n}:null}if(t==="tool_use"){let n=String(e.name||""),o=e.id,s=e.input,i=s?.command?String(s.command):JSON.stringify(s||{});return n==="Bash"&&se(i)?ie(r,i):{timestamp:r,type:"tool_use",toolUseId:o,toolName:n,toolInput:i}}if(t==="tool_result"){let n=!!e.is_error,o=e.tool_use_id,s=e.output??e.content??"",i;return typeof s=="string"?i=s:Array.isArray(s)?i=s.filter(a=>a.type==="text"&&typeof a.text=="string").map(a=>a.text).join(`
|
|
49
|
+
`):i=JSON.stringify(s),{timestamp:r,type:"tool_result",toolUseId:o,resultPreview:i,isError:n}}return null}y();function Jr(r,e){let t=e.type,n=e.data;if(!n)return [];let o=n.toolCallId;if(t==="tool.execution_start"){let s=String(n.toolName||""),i=n.arguments,a=i?.command?String(i.command):JSON.stringify(i||{});return (s==="bash"||s==="Bash")&&se(a)?[ie(r,a)]:[{timestamp:r,type:"tool_use",toolName:s,toolInput:a,...o&&{toolUseId:o}}]}if(t==="tool.execution_complete"){let s=n.error;if(s)return [{timestamp:r,type:"tool_result",isError:true,resultPreview:String(s.message||""),...o&&{toolUseId:o}}];let i=n.result,a=String(i?.content||"");return [{timestamp:r,type:"tool_result",resultPreview:a,isError:false,...o&&{toolUseId:o}}]}if(t==="assistant.message"){let s=String(n.content||"");return s?[{timestamp:r,type:"text",content:s}]:[]}return []}y();function Wr(r,e){let t=e.type,n=e.item;if(!n)return [];if(t==="item.started")return ci(r,n);if(t==="item.completed"){let o=di(r,n);return o?[o]:[]}return []}function ci(r,e){if(e.type==="command_execution"){let n=String(e.command||"");return se(n)?[ie(r,n)]:[{timestamp:r,type:"tool_use",toolName:"Bash",toolInput:n}]}return []}function di(r,e){let t=e.type;if(t==="message"||t==="text"){let n=e.content;if(Array.isArray(n))for(let o of n){let s=pi(r,o);if(s)return s}if(typeof e.text=="string")return {timestamp:r,type:"text",content:e.text}}if(t==="reasoning")return {timestamp:r,type:"text",content:String(e.text||"")};if(t==="command_execution"){let n=String(e.aggregated_output||e.output||""),o=!!e.is_error;return {timestamp:r,type:"tool_result",resultPreview:n,isError:o}}if(t==="tool_use"){let n=String(e.name||e.tool_name||""),o=e.input,s=o?.command?String(o.command):JSON.stringify(o||{});return n==="Bash"&&se(s)?ie(r,s):{timestamp:r,type:"tool_use",toolName:n,toolInput:s}}if(t==="tool_result"){let n=!!e.is_error,o=String(e.output||e.content||"");return {timestamp:r,type:"tool_result",resultPreview:o,isError:n}}return null}function pi(r,e){let t=e.type;if(t==="text")return {timestamp:r,type:"text",content:String(e.text||"")};if(t==="tool_use"){let n=String(e.name||""),o=e.input,s=o?.command?String(o.command):JSON.stringify(o||{});return n==="Bash"&&se(s)?ie(r,s):{timestamp:r,type:"tool_use",toolName:n,toolInput:s}}return null}y();function Ht(r,e){let t=e.type;if(t==="message"){if(e.role!=="assistant")return [];let o=e.content;return o?[{timestamp:r,type:"text",content:o}]:[]}if(t==="tool_use"){let n=String(e.tool_name||""),o=e.tool_id,s=e.parameters,i=s?.command?String(s.command):JSON.stringify(s||{});return /^bash$/i.test(n)&&se(i)?[ie(r,i)]:[{timestamp:r,type:"tool_use",toolName:n,toolUseId:o,toolInput:i}]}if(t==="tool_result"){let n=e.tool_id,o=String(e.output||""),s=e.status!=="success";return [{timestamp:r,type:"tool_result",toolUseId:n,resultPreview:o,isError:s}]}return []}y();function qt(r,e){let t=e.type;if(t==="text"){let o=e.part?.text;return o?[{timestamp:r,type:"text",content:o}]:[]}if(t==="tool_use"){let n=e.part;if(!n)return [];let o=String(n.tool||""),s=String(n.callID||""),i=n.state,a=String(i?.status||""),l=i?.input,u=gi(l),c=[{timestamp:r,type:"tool_use",toolName:o,toolUseId:s,toolInput:u}];if(a==="completed"&&i?.output!==void 0){let d=i.output,p=typeof d=="string"?d:JSON.stringify(d);c.push({timestamp:r,type:"tool_result",toolUseId:s,resultPreview:p,isError:false});}else a==="error"&&c.push({timestamp:r,type:"tool_result",toolUseId:s,resultPreview:String(i?.error||"tool error"),isError:true});return c}return []}function gi(r){if(typeof r=="string")return r;if(!r||typeof r!="object")return JSON.stringify(r??{});let e=r;return e.command?String(e.command):e.filePath?String(e.filePath):e.pattern?String(e.pattern):JSON.stringify(e)}function Ft(r,e){let t;try{t=JSON.parse(e);}catch{return []}let n=t.type;return n?n==="assistant"||n==="user"?Br(r,t):n.startsWith("tool.execution")||n.startsWith("assistant.")||n==="user.message"?Jr(r,t):n.startsWith("item.")||n.startsWith("turn.")||n.startsWith("thread.")?Wr(r,t):n==="message"||n==="init"?Ht(r,t):n==="tool_use"||n==="tool_result"?t.part&&typeof t.part=="object"?qt(r,t):Ht(r,t):n==="text"||n==="step_start"||n==="step_finish"?qt(r,t):[]:[]}y();function mi(r){return typeof r!="string"?"":r.replace(/</g,"<").replace(/>/g,">")}function Ut(r){return r.messages.map(e=>({text:mi(e.text),isAssistant:e.isAssistant,metadata:e.metadata,files:void 0}))}y();y();var fi={agentId:zod.z.string().describe("The agent ID to query"),query:zod.z.string().describe("The query message to send"),context:zod.z.string().optional().describe("Additional context"),thread:zod.z.string().optional().describe("Thread ID for conversation continuity")},hi={agentId:zod.z.string().describe("The agent ID to execute"),task:zod.z.string().describe("The task description to execute"),context:zod.z.string().optional().describe("Additional context"),thread:zod.z.string().optional().describe("Thread ID for conversation continuity")};function Vr(r,e,t){r.tool("crewx_listAgents","List available CrewX agents exposed by this server",async()=>{let n=[];for(let o of t){let s=e.agents.get(o);s&&n.push({id:s.id,name:s.name??s.id,description:s.description??""});}return {content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),r.tool("crewx_queryAgent","Query a CrewX agent with a read-only question",fi,async({agentId:n,query:o,context:s,thread:i})=>{if(!t.has(n))return {content:[{type:"text",text:`Agent '${n}' is not exposed by this server`}],isError:true};let a=await e.query(n,o,{context:s,threadId:i});return a.ok?{content:[{type:"text",text:a.data}]}:{content:[{type:"text",text:a.error?.message??"Query failed"}],isError:true}}),r.tool("crewx_executeAgent","Execute a task on a CrewX agent (may modify state)",hi,async({agentId:n,task:o,context:s,thread:i})=>{if(!t.has(n))return {content:[{type:"text",text:`Agent '${n}' is not exposed by this server`}],isError:true};let a=await e.execute(n,o,{context:s,threadId:i});return a.ok?{content:[{type:"text",text:a.data}]}:{content:[{type:"text",text:a.error?.message??"Execute failed"}],isError:true}});}y();function Kr(r){return r.headers.get("Origin")?null:new Response(JSON.stringify({error:"Forbidden: Origin header required"}),{status:403,headers:{"Content-Type":"application/json"}})}async function Gr(r,e){return e?await e(r)?null:new Response(JSON.stringify({error:"Unauthorized"}),{status:401,headers:{"Content-Type":"application/json"}}):null}function wi(r,e){let t=new mcp_js.McpServer({name:"crewx-mcp-server",version:"1.0.0"},{capabilities:{tools:{}}});return Vr(t,r,e),t}function Bt(r,e){if(!e.agents||e.agents.length===0)throw new Error("crewx.handler() requires at least one agent in the agents option");let t=new Set(e.agents),n=new Map;return async o=>{let s=Kr(o);if(s)return s;let i=await Gr(o,e.auth);if(i)return i;let a=o.headers.get("mcp-session-id");if(a&&n.has(a))return n.get(a).transport.handleRequest(o);let l=wi(r,t),u=new webStandardStreamableHttp_js.WebStandardStreamableHTTPServerTransport({sessionIdGenerator:()=>crypto.randomUUID(),onsessioninitialized:c=>{n.set(c,{transport:u,server:l});},onsessionclosed:c=>{n.delete(c);},enableJsonResponse:true});return await l.connect(u),u.handleRequest(o)}}y();y();var De=class{detach(e){}};y();var ki=`
|
|
50
|
+
CREATE TABLE IF NOT EXISTS threads (
|
|
51
|
+
id TEXT PRIMARY KEY,
|
|
52
|
+
workspace_id TEXT,
|
|
53
|
+
platform TEXT NOT NULL DEFAULT 'cli',
|
|
54
|
+
title TEXT,
|
|
55
|
+
first_message TEXT,
|
|
56
|
+
last_message TEXT,
|
|
57
|
+
message_count INTEGER NOT NULL DEFAULT 0,
|
|
58
|
+
created_at TEXT NOT NULL,
|
|
59
|
+
updated_at TEXT NOT NULL,
|
|
60
|
+
metadata TEXT
|
|
61
|
+
)
|
|
62
|
+
`,Ri=["id","thread_id","prompt","result","started_at","trace_id","status","parent_task_id","agent_id"];function Ci(r){return r.replace(/<conversation_history[^>]*>[\s\S]*?<\/conversation_history>/g,"").split(`
|
|
63
|
+
`).filter(o=>!(o.startsWith("Loaded ")&&o.includes("layouts from")||o.includes("[dotenv@")||o.includes("[Nest]")&&o.includes("DEBUG")||o.startsWith("Registered custom layout:")||o.startsWith("Updated custom layout:"))).join(`
|
|
64
|
+
`).trim()}function Ti(r){if(!r)return "";let e=r;try{let t=JSON.parse(e);Array.isArray(t)?e=t.filter(n=>n?.type==="text"&&n?.text).map(n=>n.text).join(`
|
|
65
|
+
`):t&&typeof t=="object"&&t.result!==void 0&&(e=t.result||"");}catch{e=Ci(e);}return e}var Le=class{db;constructor(e){let t=e??Hr.join(os$1.homedir(),".crewx","crewx.db");this.db=new bi__default.default(t),this.init();}init(){this.db.pragma("journal_mode = WAL"),this.db.exec(ki);}async ensureThread(e,t,n){let o=this.db.prepare("SELECT platform FROM threads WHERE id = ?").get(e);if(o){if(o.platform!==t)throw new Error(`Thread '${e}' already exists with platform '${o.platform}' \u2014 cannot change to '${t}' (platform is immutable)`);n&&this.db.prepare("UPDATE threads SET workspace_id = COALESCE(workspace_id, ?) WHERE id = ?").run(n,e);return}let s=new Date().toISOString();this.db.prepare("INSERT INTO threads (id, platform, workspace_id, message_count, created_at, updated_at) VALUES (?, ?, ?, 0, ?, ?)").run(e,t,n??null,s,s);}async fetchHistory(e,t){let n=t?.limit??100,o=["thread_id = ?","(parent_task_id IS NULL OR parent_task_id = '')","(status IN ('done', 'completed', 'success') OR status IS NULL)"],s=[e];t?.currentTraceId&&(o.push("trace_id != ?"),s.push(t.currentTraceId));let i=o.join(" AND "),l=`SELECT ${Ri.join(", ")} FROM tasks WHERE ${i} ORDER BY started_at ASC LIMIT ?`;s.push(n);let u=this.db.prepare(l).all(...s),c=this.db.prepare("SELECT platform, title, first_message, last_message, message_count, updated_at FROM threads WHERE id = ?").get(e),d=c?.platform??"cli",p=this.rowsToMessages(u);return {threadId:e,platform:d,messages:p,metadata:{title:c?.title??void 0,firstMessage:c?.first_message??void 0,lastMessage:c?.last_message??void 0,messageCount:c?.message_count??0,updatedAt:c?.updated_at?new Date(c.updated_at).getTime():void 0}}}async saveUserMessage(e,t,n,o){let s=new Date().toISOString();this.db.prepare(`UPDATE threads
|
|
66
|
+
SET first_message = COALESCE(first_message, ?),
|
|
67
|
+
last_message = ?,
|
|
68
|
+
message_count = message_count + 1,
|
|
69
|
+
updated_at = ?
|
|
70
|
+
WHERE id = ?`).run(t,t,s,e);}async saveAssistantMessage(e,t,n,o){let s=new Date().toISOString();this.db.prepare(`UPDATE threads
|
|
71
|
+
SET last_message = ?,
|
|
72
|
+
updated_at = ?
|
|
73
|
+
WHERE id = ?`).run(t,s,e);}close(){this.db.close();}rowsToMessages(e){let t=[];for(let n of e){n.prompt&&t.push({id:`${n.id}-user`,text:n.prompt,isAssistant:false,timestamp:new Date(n.started_at).getTime()});let o=Ti(n.result);o&&t.push({id:`${n.id}-assistant`,text:o,isAssistant:true,timestamp:new Date(n.started_at).getTime()});}return t}};var He=class extends De{name="conversation";_provider;unsubStart=null;unsubEnd=null;constructor(e){super(),this._provider=new Le(e?.dbPath);}get conversationProvider(){return this._provider}attach(e){this.unsubStart=e.on("task:start",async t=>{if(!t.threadId)return;let n=t.platform??"cli";try{await this._provider.ensureThread(t.threadId,n,t.workspaceId),await this._provider.saveUserMessage(t.threadId,t.message??"");}catch{}}),this.unsubEnd=e.on("task:end",async t=>{if(!t.result)return;let n=t.metadata?.threadId;if(!n)return;let o=t.agentRef?.replace(/^@/,"")??"";try{await this._provider.saveAssistantMessage(n,t.result,o);}catch{}});}detach(e){this.unsubStart?.(),this.unsubStart=null,this.unsubEnd?.(),this.unsubEnd=null,this._provider.close?.();}};y();function Yr(r){let e=Hr__namespace.resolve(r);return process.platform==="win32"&&(e=e.replace(/\\/g,"/"),e=e.replace(/^([A-Z]):/,(t,n)=>`${n.toLowerCase()}:`)),e.length>1&&!/^[a-zA-Z]:\/$/.test(e)&&(e=e.replace(/\/+$/,"")),e}function Jt(r){let e=Yr(r);return crypto$1.createHash("sha256").update(e).digest("hex")}function Sc(r){return r?r.settings?.template?.exec:void 0}function Ic(){try{let r=new Uint8Array(8);return globalThis.crypto.getRandomValues(r),Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}catch{let{randomBytes:r}=U("crypto");return r(8).toString("hex")}}var wr=class r extends $e{_agents;_templateEngine;_documentLoader;_layoutLoader;_layoutRenderer;_config;_projectRoot;_workspaceId;_workspaceName;_plugins=[];_tools=new Map;_activeAdapters=new Map;_pendingThreads=new Map;_remoteFactory;_remoteTargets=new Map;constructor(e,t={},n,o,s){super(),this._agents=new Map(e.map(l=>[l.id,l])),this._config=n,this._projectRoot=s??(typeof process<"u"?process.cwd():"/");let i=s??(typeof process<"u"?process.env.CREWX_WORKSPACE??process.cwd():"/");this._workspaceId=Jt(i),this._workspaceName=Hr.basename(i);let a=Sc(n);this._templateEngine=new ze({execPolicy:t.execPolicy??a}),this._documentLoader=o??new ke,this._layoutLoader=new Me({templatesPath:at()}),this._layoutRenderer=new Ne,this._remoteFactory=t.remoteFactory;}async resolveFileRemoteTarget(e){let t=this.getAgent(e),n=Array.isArray(t?.provider)?t?.provider[0]:t?.provider;if(!n?.startsWith("remote/"))return null;let o=n.slice(7),s=this.getRemoteProviderConfig(o);if(!s?.location?.startsWith("file://"))return null;let i=Hr.resolve(s.location.replace("file://","")),a=s.external_agent_id??e.replace(/^@/,""),l=this._remoteTargets.get(i);l||(l=(this._remoteFactory??(m=>r.loadYaml(m)))(i),this._remoteTargets.set(i,l),l.catch(()=>this._remoteTargets.delete(i)));let u=await l,c=u.getAgent("@"+a),d=Array.isArray(c?.provider)?c?.provider[0]:c?.provider;if(d?.startsWith("remote/"))throw new Error(`Chained remotes not allowed: "${o}" \u2192 "${d}"`);return {target:u,agentRef:"@"+a}}static async loadYaml(e,t,n){let o=Ct(e),s=Hr.dirname(e),i=new ke(n);await i.load(o.documents,s);let a=o.agents??[];if(a.some(c=>(Array.isArray(c.provider)?c.provider:[c.provider]).some(p=>p.startsWith("api/")))){let{registerApiProviders:c}=await Promise.resolve().then(()=>(mr(),Wo));c(t?.api);}Zo(a,o),es(a,o);let u=new r(a,t??{},o,i,s);return await u.use(new He),u}static async fromConfig(e,t,n,o){let s=new ke(o);await s.load(e.documents,n??(typeof process<"u"?process.cwd():"/")),Zo(e.agents??[],e),es(e.agents??[],e);let i=new r(e.agents??[],t??{},e,s,n);return await i.use(new He),i}get agents(){return this._agents}get config(){return this._config}get plugins(){return this._plugins}get tools(){return this._tools}get workspaceId(){return this._workspaceId}get workspaceName(){return this._workspaceName}getAgent(e){let t=e.startsWith("@")?e.slice(1):e;return this._agents.get(t)}getRemoteProviderConfig(e){let t=this._config?.providers;return Array.isArray(t)?t.find(o=>o.type==="remote"&&o.id===e):void 0}computeTaskLogPath(e,t){let n=Nt(t);return Hr.join(this._projectRoot,".crewx","logs",`${n}_${e}.log`)}registerTool(e,t){this._tools.set(e,{name:e,...t});}async use(e){this._plugins.includes(e)||(await e.attach(this),this._plugins.push(e));}handler(e){return Bt(this,e)}async registerChannelAdapter(e){let{adapter:t,instanceId:n,config:o}=e;if(this._activeAdapters.has(n))throw new Error(`Adapter instance already registered: ${n}`);let s=new Set(t.manifest.capabilities),i=e.store??$t(n),a=e.defaultMode??"query",l=t.manifest.platform,u=e.agentRunner??{run:async(m,h,f)=>{let v=await(a==="execute"?this.execute.bind(this):this.query.bind(this))(`@${m}`,h,{threadId:f?.threadId,platform:l});return {output:v.ok?v.data:v.error?.message??""}}},c=e.onInbound??(async m=>{let h=m.routingHints?.agentId??e.defaultAgent;if(!h)return {accepted:false,reason:"no_agent"};let{output:f}=await u.run(h,m.text,{threadId:m.threadId});return {accepted:true,output:f}}),d=Lt({instanceId:n,config:o,capabilities:s,db:i,agentRunner:u,onInbound:c}),p={adapter:t,ctx:d,state:"starting"};this._activeAdapters.set(n,p),this.emit("adapter:lifecycle",{adapterId:t.manifest.id,instanceId:n,state:"starting",timestamp:new Date});try{await t.start(d),p.state="started",this.emit("adapter:lifecycle",{adapterId:t.manifest.id,instanceId:n,state:"started",timestamp:new Date});}catch(m){throw p.state="failed",this.emit("adapter:lifecycle",{adapterId:t.manifest.id,instanceId:n,state:"failed",error:m instanceof Error?m:new Error(String(m)),timestamp:new Date}),this._activeAdapters.delete(n),m}}async unregisterChannelAdapter(e){let t=this._activeAdapters.get(e);if(t){t.state="stopping",this.emit("adapter:lifecycle",{adapterId:t.adapter.manifest.id,instanceId:e,state:"stopping",timestamp:new Date});try{await t.adapter.stop(t.ctx),t.state="stopped",this.emit("adapter:lifecycle",{adapterId:t.adapter.manifest.id,instanceId:e,state:"stopped",timestamp:new Date});}catch(n){t.state="failed",this.emit("adapter:lifecycle",{adapterId:t.adapter.manifest.id,instanceId:e,state:"failed",error:n instanceof Error?n:new Error(String(n)),timestamp:new Date});}finally{this._activeAdapters.delete(e);}}}async stopAllAdapters(e={}){let t=e.timeoutMs??1e4,n=Array.from(this._activeAdapters.keys()),o=await Promise.allSettled(n.map(s=>Promise.race([this.unregisterChannelAdapter(s),new Promise((i,a)=>setTimeout(()=>a(new Error(`Adapter stop timeout: ${s}`)),t))])));for(let s=0;s<o.length;s++)o[s].status==="rejected"&&console.error(`[crewx] adapter stop error (${n[s]}): ${o[s].reason}`);}async close(){await this.stopAllAdapters({timeoutMs:1e4});let e=[...this._remoteTargets.values()];this._remoteTargets.clear(),await Promise.allSettled(e.map(async n=>{try{await(await n).close();}catch(o){console.error(`[crewx] remote target close error: ${o instanceof Error?o.message:String(o)}`);}}));let t=[...this._plugins].reverse();for(let n of t)try{await n.detach(this);}catch(o){console.error(`[crewx] plugin ${n.name} detach error: ${o instanceof Error?o.message:String(o)}`);}this._plugins.length=0;}filterAgents(e){let t=a=>a?a.split(",").map(l=>l.trim().toLowerCase()).filter(Boolean):void 0,n=t(e.role),o=t(e.team),s=t(e.provider),i=Array.from(this._agents.values());return n&&(i=i.filter(a=>a.role&&n.some(l=>ne(a.role.toLowerCase(),l)))),o&&(i=i.filter(a=>a.team&&o.some(l=>ne(a.team.toLowerCase(),l)))),s&&(i=i.filter(a=>(Array.isArray(a.provider)?a.provider:[a.provider]).some(u=>s.some(c=>ne(u.toLowerCase(),c))))),i}renderAgentPrompt(e){let t=e.startsWith("@")?e.slice(1):e,n=this._agents.get(t);if(!n)throw new ue(t,Array.from(this._agents.keys()));return n.inline?.prompt??n.inline?.system_prompt??n.description??`You are an expert ${t}.`}async renderPrompt(e,t){let o={...await this._documentLoader.buildContext(),...t?.documents??{}},s={...t,documents:o};return this._templateEngine.render(e,s)}registerLayout(e,t){this._layoutLoader.registerLayout(e,t);}async renderAgentPromptFull(e,t){let n=e.startsWith("@")?e.slice(1):e,o=this._agents.get(n);if(!o)throw new ue(n,Array.from(this._agents.keys()));let s=this._resolveLayoutSpec(o,t?.layout),i=this._extractLayoutId(s),a=this._extractLayoutProps(o,s,t?.layout),l=this._layoutLoader.load(i,a),u=o.inline?.prompt??o.inline?.system_prompt??o.description??`You are an expert ${n}.`,c=await this._documentLoader.buildContext(),d=t?.env??(typeof process<"u"?process.env:{}),p=t?.vars?.security_key??Ic(),m={...t?.vars??{},documents:c,env:d,agent:{id:o.id,name:o.name??o.id,role:o.role??"",team:o.team??"",description:o.description??""}},h=await this._templateEngine.render(u,m),f={mode:t?.session?.mode??"query",platform:t?.session?.platform??"cli",options:t?.session?.options??[]},g=o.provider,v=Array.isArray(g)?g:typeof g=="string"&&g.length>0?[g]:[],_=v.join(", ")||(typeof g=="string"?g:""),T=o.options,w=!Array.isArray(T)&&typeof T=="object"&&T!==null?T:void 0,x=Array.isArray(T)?T:void 0,S={};for(let[k,O]of Object.entries(c))S[k]={content:O.content??"",toc:O.toc,summary:O.summary,path:O.path};let C={user_input:t?.vars?.user_input??void 0,agent:{id:o.id,name:o.name??o.id,role:o.role??"",team:o.team??"",description:o.description??"",provider:_,providerList:v,model:o.inline?.model,workingDirectory:o.working_directory??o.workingDirectory??".",inline:{...o.inline??{},prompt:h},specialties:o.specialties??[],capabilities:o.capabilities??[],remote:o.remote??null,optionsByMode:w,optionsArray:x},agentMetadata:{specialties:o.specialties??[],capabilities:o.capabilities??[],description:o.description??""},documents:S,skills:t?.skills??[],session:f,env:d,vars:{security_key:p,...t?.vars??{}},props:{...a??{},...t?.messages&&t.messages.length>0?{showConversationHistory:true}:{}},platform:f.platform,mode:f.mode,messages:t?.messages??[],tools:this._tools.size>0?{list:Array.from(this._tools.values()).map(k=>({name:k.name,description:k.description,parameters:k.parameters})),json:JSON.stringify(Array.from(this._tools.values()).map(k=>({name:k.name,description:k.description,parameters:k.parameters})),null,2),count:this._tools.size}:null,metadata:{}};return this._layoutRenderer.render(l,C)}_filterToolsByMode(e){return e?e.map(t=>this._tools.get(t)).filter(t=>t!==void 0):Array.from(this._tools.values())}_resolveLayoutSpec(e,t){if(t!==void 0)return t;let n=e.inline?.layout;if(n!==void 0)return n;let o=this._config?.layouts?.default;return typeof o=="string"&&o?o:"crewx/default"}_extractLayoutId(e){if(typeof e=="string")return e;if("id"in e)return e.id;let t=`crewx/__inline_${Date.now()}`;return this._layoutLoader.registerLayout(t,e.template),t}_extractLayoutProps(e,t,n){let o=e.inline?.layout,s=o&&typeof o=="object"&&"props"in o?o.props:void 0,i=n&&typeof n=="object"&&"id"in n?n.props:void 0;if(s||i)return {...s??{},...i??{}}}_getConversationProvider(){return this._plugins.find(t=>t.name==="conversation")?.conversationProvider}async _fetchHistoryMessages(e,t,n){if(n&&n.length>0)return n;if(!e)return;let o=this._getConversationProvider();if(o)try{let s=await o.fetchHistory(e,{currentTraceId:t});return s.messages.length===0?void 0:Ut(s)}catch{return}}emitToolEvents(e,t,n,o,s,i,a){try{let l=Ft(new Date().toISOString(),o);for(let u of l)u.type==="tool_use"&&u.toolName&&this.emit("tool:observed:before",{traceId:e,timestamp:new Date,agentRef:t,agentId:s,threadId:i,sessionId:a,provider:n,tool:{name:u.toolName,rawName:u.toolName,input:u.toolInput?this.tryParseJson(u.toolInput):void 0,toolUseId:u.toolUseId}}),u.type==="tool_result"&&this.emit("tool:observed:after",{traceId:e,timestamp:new Date,agentRef:t,agentId:s,threadId:i,sessionId:a,provider:n,tool:{name:u.toolName??"unknown",rawName:u.toolName??"unknown",toolUseId:u.toolUseId,result:u.resultPreview,isError:u.isError}});}catch{}}tryParseJson(e){try{return JSON.parse(e)}catch{return e}}async query(e,t,n){let o=await this.resolveFileRemoteTarget(e);if(o)return o.target.query(o.agentRef,t,n);let s=Date.now(),i=Ce("tsk"),a=new Date,l;try{l=ot(e,Array.from(this._agents.values()));}catch(k){if(k instanceof ue){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"query",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"AGENT_NOT_FOUND",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:O}}}throw k}let u=Array.isArray(l.provider)?l.provider[0]??"cli/claude":l.provider,c=n?.provider??u,d=n?.model??l.inline?.model,p;try{p=ce(c);}catch(k){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"query",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"PROVIDER_ERROR",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}let m=await this._fetchHistoryMessages(n?.threadId,i,n?.messages),h;try{h=await this.renderAgentPromptFull(e,{session:{mode:"query",platform:n?.platform},vars:{user_input:t},messages:m});}catch{}let f,g,v,_=d,T=false,w=k=>{T||(T=true,this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"query",pid:k,model:_,provider:c,codingAgentCommand:f,renderedPrompt:h,metadata:{...n?.metadata??{},provider:c},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName}));},x=l.options,S=Array.isArray(x?.query?.tools)?x.query.tools:void 0,z=this._tools.size>0?this._filterToolsByMode(S):[],C=l.inline?.max_steps;c.startsWith("api/")&&w();try{let k=await p.query(t,{model:d,context:n?.context,systemPrompt:h??l.inline?.system_prompt??l.inline?.prompt,additionalArgs:Array.isArray(x?.query)?x.query:void 0,tools:z.length>0?z:void 0,maxSteps:C,env:{CREWX_AGENT_ID:l.id,CREWX_AGENT_ROLE:l.role??"",CREWX_AGENT_TEAM:l.team??"",CREWX_USER_ID:process.env.USER||process.env.USERNAME||"unknown",CREWX_TRACE_ID:i,CREWX_PARENT_TASK_ID:i,CREWX_TASK_ID:i,CREWX_CALLER_AGENT_ID:process.env.CREWX_AGENT_ID??"",CREWX_THREAD_ID:n?.threadId??"",CREWX_PROVIDER:c,CREWX_SESSION_ID:"",CREWX_TASK_LOG_PATH:this.computeTaskLogPath(i,a)},onPid:I=>w(I),onOutput:(I,J)=>{this.emit("task:output",{traceId:i,timestamp:new Date,agentRef:e,output:I,level:J}),J==="stdout"&&this.emitToolEvents(i,e,c,I,l.id,n?.threadId??"","");},onCommand:I=>{f=I;},onUsage:I=>{g=I;},onExitCode:I=>{v=I;},onModel:I=>{_||(_=I);}});w();let O=Date.now()-s;return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",result:k,durationMs:O,exitCode:v,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:{...n?.metadata??{},...n?.threadId?{threadId:n.threadId}:{}}}),{ok:!0,data:k,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}catch(k){if(k instanceof exports.ClientToolCallRequiredError){let J=Ce("thd");return this._pendingThreads.set(J,{agentRef:l.id,providerStr:c,continuationState:k.continuationState,toolCall:k.toolCall,traceId:i,startMs:s,model:d}),{ok:true,status:"requires_action",data:"",toolCall:k.toolCall,threadId:J,meta:{agentId:l.id,provider:c,model:d,durationMs:Date.now()-s}}}w();let O=Date.now()-s,I={code:"QUERY_FAILED",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"query",durationMs:O,error:I,exitCode:v,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}}async continueQuery(e,t){let n=this._pendingThreads.get(e);if(!n)return {ok:false,data:"",error:{code:"THREAD_NOT_FOUND",message:`No pending thread: ${e}`},meta:{agentId:"",provider:"",durationMs:0}};this._pendingThreads.delete(e);let o=ce(n.providerStr);if(!o.continueWithToolResults)return {ok:false,data:"",error:{code:"UNSUPPORTED",message:"Provider does not support client tool continuation"},meta:{agentId:n.agentRef,provider:n.providerStr,durationMs:0}};let s=t.map(i=>({...i,toolName:n.toolCall.toolCallId===i.toolCallId?n.toolCall.toolName:i.toolCallId}));try{let i=await o.continueWithToolResults(n.continuationState,s),a=Date.now()-n.startMs;return this.emit("task:end",{traceId:n.traceId,timestamp:new Date,agentRef:n.agentRef,mode:"query",result:i,durationMs:a}),{ok:!0,status:"complete",data:i,meta:{agentId:n.agentRef,provider:n.providerStr,model:n.model,durationMs:a}}}catch(i){if(i instanceof exports.ClientToolCallRequiredError)return this._pendingThreads.set(e,{...n,continuationState:i.continuationState,toolCall:i.toolCall}),{ok:true,status:"requires_action",data:"",toolCall:i.toolCall,threadId:e,meta:{agentId:n.agentRef,provider:n.providerStr,model:n.model,durationMs:Date.now()-n.startMs}};let a=Date.now()-n.startMs;return {ok:false,data:"",error:{code:"CONTINUE_FAILED",message:i.message},meta:{agentId:n.agentRef,provider:n.providerStr,model:n.model,durationMs:a}}}}async execute(e,t,n){let o=await this.resolveFileRemoteTarget(e);if(o)return o.target.execute(o.agentRef,t,n);let s=Date.now(),i=Ce("tsk"),a=new Date,l;try{l=ot(e,Array.from(this._agents.values()));}catch(k){if(k instanceof ue){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"execute",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"AGENT_NOT_FOUND",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:e.replace(/^@/,""),provider:"",durationMs:O}}}throw k}let u=Array.isArray(l.provider)?l.provider[0]??"cli/claude":l.provider,c=n?.provider??u,d=n?.model??l.inline?.model,p;try{p=ce(c);}catch(k){this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"execute",metadata:{...n?.metadata??{}},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName});let O=Date.now()-s,I={code:"PROVIDER_ERROR",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",durationMs:O,error:I,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}let m=await this._fetchHistoryMessages(n?.threadId,i,n?.messages),h;try{h=await this.renderAgentPromptFull(e,{session:{mode:"execute",platform:n?.platform},vars:{user_input:t},messages:m});}catch{}let f,g,v,_=d,T=false,w=k=>{T||(T=true,this.emit("task:start",{traceId:i,timestamp:a,agentRef:e,message:t,mode:"execute",pid:k,model:_,provider:c,codingAgentCommand:f,renderedPrompt:h,metadata:{...n?.metadata??{},provider:c},threadId:n?.threadId,platform:n?.platform??"cli",workspaceId:this._workspaceId,workspaceName:this._workspaceName}));},x=l.options,S=Array.isArray(x?.execute?.tools)?x.execute.tools:void 0,z=this._tools.size>0?this._filterToolsByMode(S):[],C=l.inline?.max_steps;c.startsWith("api/")&&w();try{let k=await p.execute(t,{model:d,context:n?.context,systemPrompt:h??l.inline?.system_prompt??l.inline?.prompt,additionalArgs:Array.isArray(x?.execute)?x.execute:void 0,tools:z.length>0?z:void 0,maxSteps:C,env:{CREWX_AGENT_ID:l.id,CREWX_AGENT_ROLE:l.role??"",CREWX_AGENT_TEAM:l.team??"",CREWX_USER_ID:process.env.USER||process.env.USERNAME||"unknown",CREWX_TRACE_ID:i,CREWX_PARENT_TASK_ID:i,CREWX_TASK_ID:i,CREWX_CALLER_AGENT_ID:process.env.CREWX_AGENT_ID??"",CREWX_THREAD_ID:n?.threadId??"",CREWX_PROVIDER:c,CREWX_SESSION_ID:"",CREWX_TASK_LOG_PATH:this.computeTaskLogPath(i,a)},onPid:I=>w(I),onOutput:(I,J)=>{this.emit("task:output",{traceId:i,timestamp:new Date,agentRef:e,output:I,level:J}),J==="stdout"&&this.emitToolEvents(i,e,c,I,l.id,n?.threadId??"","");},onCommand:I=>{f=I;},onUsage:I=>{g=I;},onExitCode:I=>{v=I;},onModel:I=>{_||(_=I);}});w();let O=Date.now()-s;return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",result:k,durationMs:O,exitCode:v,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:{...n?.metadata??{},...n?.threadId?{threadId:n.threadId}:{}}}),{ok:!0,data:k,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}catch(k){w();let O=Date.now()-s,I={code:"EXECUTE_FAILED",message:k.message};return this.emit("task:end",{traceId:i,timestamp:new Date,agentRef:e,mode:"execute",durationMs:O,error:I,exitCode:v,inputTokens:g?.inputTokens,outputTokens:g?.outputTokens,cachedInputTokens:g?.cachedInputTokens,costUsd:g?.costUsd,model:_,metadata:n?.metadata?{...n.metadata}:void 0}),{ok:false,data:"",error:I,meta:{agentId:l.id,provider:c,model:d,durationMs:O}}}}};function Zo(r,e){if(!r.some(i=>(Array.isArray(i.provider)?i.provider:[i.provider]).some(l=>l.startsWith("remote/"))))return;let n=e.providers;if(!Array.isArray(n))return;let{createRemoteProviderFactory:o}=(yr(),Er(Ko)),s=new Map;for(let i of n)i.type==="remote"&&typeof i.id=="string"&&s.set(i.id,i);s.size>0&&Ae("remote",o(s,ce));}function es(r,e){if(!r.some(i=>(Array.isArray(i.provider)?i.provider:[i.provider]).some(l=>l.startsWith("plugin/"))))return;let n=e.providers;if(!Array.isArray(n))return;let{createPluginProviderFactory:o}=(vr(),Er(Qo)),s=new Map;for(let i of n)i.type==="plugin"&&typeof i.id=="string"&&s.set(i.id,i);s.size>0&&Ae("plugin",o(s));}y();var Oc="crewx:fs:",br=class{prefix;store;constructor(e){this.prefix=e?.prefix??Oc,this.store=e?.storage??new Map;}async readFile(e){let t=this.toKey(e),n=this.store.get(t);if(n===void 0)throw new Error(`BrowserFsAdapter: file not found: ${e}`);return n}async exists(e){return this.store.has(this.toKey(e))}resolvePath(...e){let t=e.map(i=>i.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),n=t.split("/"),o=[];for(let i of n)i==="."||i===""||(i===".."?o.pop():o.push(i));let s=o.join("/");return t.startsWith("/")?`/${s}`:s}isAbsolute(e){return e.startsWith("/")}setItem(e,t){this.store.set(this.toKey(e),t);}removeItem(e){this.store.delete(this.toKey(e));}keys(){return Array.from(this.store.keys()).filter(e=>e.startsWith(this.prefix)).map(e=>e.slice(this.prefix.length))}toKey(e){return `${this.prefix}${e.replace(/\\/g,"/")}`}};xe();gr();mr();y();var _r=0;function zc(r){let e=Array.from(r.agents.keys());return {name:"delegate_to_agent",description:`Delegate a task to another agent. Available agents: ${e.join(", ")}`,parameters:{type:"object",properties:{agent:{type:"string",description:`Agent ID to delegate to. One of: ${e.join(", ")}`},message:{type:"string",description:"Task description for the target agent"},mode:{type:"string",description:'Execution mode: "query" for questions, "execute" for actions. Default: query'}},required:["agent","message"]},execute:async t=>{if(_r>=3)return "Error: Maximum delegation depth (3) reached. Cannot delegate further.";let n=t.agent,o=t.message,s=t.mode??"query";if(!e.includes(n))return `Error: Unknown agent "${n}". Available: ${e.join(", ")}`;_r++;try{if(s==="execute"){let a=await r.execute(n,o);return a.ok?a.data:`Error: ${a.error?.message??"Unknown error"}`}let i=await r.query(n,o);return i.ok?i.data:`Error: ${i.error?.message??"Unknown error"}`}finally{_r--;}}}}y();var ts=typeof process<"u"?process.env:{};function Mc(){return ts.CREWX_CLI||"npx crewx"}function jc(){return ts.CREWX_WORKSPACE||(typeof process<"u"?process.cwd():"/")}y();var Nc=/^[a-zA-Z0-9._-]+$/,xr=class{constructor(e){this.storage=e;}storage;listBoxes(e){this.validateId(e);let n=this.storage.listBoxes(e).map(o=>this.toBoxResponse(o));return {boxes:n,total:n.length}}getBox(e,t){this.validateId(e),this.validateId(t);let n=this.storage.findBox(e,t);return n?this.toBoxResponse(n):null}createBox(e,t){this.validateId(e);let n=this.generateBoxId(),o=new Date().toISOString(),s=this.storage.insertBox(e,{id:n,seq:t.seq,firstTaskId:t.firstTaskId,midTaskId:t.midTaskId,lastTaskId:t.lastTaskId,taskCount:t.taskCount,summary:t.summary??null,sourceTokens:t.sourceTokens,summaryTokens:t.summaryTokens??null,createdAt:o});return this.toBoxResponse(s)}toBoxResponse(e){return {id:e.id,threadId:e.thread_id,seq:e.seq,firstTaskId:e.first_task_id,lastTaskId:e.last_task_id,taskCount:e.task_count,sourceTokens:e.source_tokens,summaryTokens:e.summary_tokens,summary:e.summary,previewFirst:this.storage.getTaskPreview(e.first_task_id,200),previewMid:this.storage.getTaskPreview(e.mid_task_id,200),previewLast:this.storage.getTaskPreview(e.last_task_id,200),createdAt:e.created_at}}validateId(e){if(!Nc.test(e))throw new Error(`Invalid ID format: ${e}`)}generateBoxId(){return Ce("box")}};y();function $c(r,e,t,n,o){let{maxTokens:s,hotzoneRatio:i,warmzoneRatio:a}=n,l=s*i,u=s*a,c=l+u,d=e.getThreadMessages(r),p=[],m=0,h=false,f=[];for(let _=0;_<d.length;_+=2){let T=d[_],w=d[_+1],x=T?.content||"",S=w?.content||"",z=o.countTokens(x+S),C=[];T&&C.push(T),w&&C.push(w),f.push({messages:C,tokens:z});}for(let _=f.length-1;_>=0;_--){let T=f[_];if(m+T.tokens>l){h=true;break}m+=T.tokens,p.unshift(...T.messages);}let g=[],v=0;if(h&&u>0)try{let{boxes:_}=t.listBoxes(r);for(let T=_.length-1;T>=0;T--){let w=_[T],x=w.summaryTokens??w.sourceTokens;if(v+x>u)break;v+=x,g.unshift({boxId:w.id,seq:w.seq,taskCount:w.taskCount,sourceTokens:w.sourceTokens,summary:w.summary,previewFirst:w.previewFirst,previewMid:w.previewMid,previewLast:w.previewLast,createdAt:w.createdAt});}}catch(_){if(_ instanceof Error&&!/not found/i.test(_.message))throw _}return {hot:p,warm:g,hotTokens:m,warmTokens:v,hotOverflow:h,totalBudget:c,config:{maxTokens:s,hotzoneRatio:i,warmzoneRatio:a}}}Pt();y();var _t=class extends Error{constructor(t,n){super(`Task ${t} timed out after ${n}ms`);this.taskId=t;this.timeoutMs=n;this.name="ParallelRunnerTimeoutError";}taskId;timeoutMs},rt=class{constructor(e={}){this.defaults=e;}defaults;metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0};async run(e,t={}){if(!Array.isArray(e))throw new TypeError("ParallelRunner.run expects an array of tasks");if(e.length===0)return this.metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0},[];let n=this.mergeOptions(t),o=Math.max(1,n.maxConcurrency??5),s=n.timeoutMs,i=n.failFast??false,a=n.callbacks,l=n.evaluateTaskSuccess??(()=>true),u=[],c=0,d=0,p=0,m=false,h=0,f=perf_hooks.performance.now(),g=async C=>{a?.onTaskStart&&await a.onTaskStart(C),p+=1;let k=new AbortController,O={signal:k.signal},I,J;typeof s=="number"&&Number.isFinite(s)&&s>0&&(J=new Promise((ee,re)=>{I=setTimeout(()=>{let q=new _t(C.id,s);k.abort(q),re(q);},s);}));let G=perf_hooks.performance.now(),L=C.run(O),we=J?Promise.race([L,J]):L;try{let ee=await we,re=perf_hooks.performance.now(),q=re-G,X=l(ee,C),W={taskId:C.id,success:X,value:ee,durationMs:q,startedAt:G,finishedAt:re,metadata:C.metadata,aborted:!1};u.push(W),X?c+=1:d+=1,a?.onTaskComplete&&await a.onTaskComplete(W),i&&!X&&(m=!0);}catch(ee){let re=perf_hooks.performance.now(),q=re-G,X=ee instanceof Error?ee:new Error(String(ee)),W={taskId:C.id,success:false,error:X,durationMs:q,startedAt:G,finishedAt:re,metadata:C.metadata,aborted:k.signal.aborted};u.push(W),d+=1,a?.onError&&await a.onError(C,X,q),i&&(m=true);}finally{I&&clearTimeout(I),J&&L.catch(()=>{});}},v=async()=>{for(;!m;){let C=h;if(C>=e.length)break;h+=1;let k=e[C];if(!k||(await g(k),m))break}},_=Math.min(o,e.length),T=[];for(let C=0;C<_;C++)T.push(v());await Promise.all(T);let x=perf_hooks.performance.now()-f,S=u.length?u.reduce((C,k)=>C+k.durationMs,0)/u.length:0,z=x>0?u.length/(x/1e3):u.length;return this.metrics={totalTasks:e.length,startedTasks:p,completedTasks:u.length,successCount:c,failureCount:d,totalDurationMs:x,averageDurationMs:S,throughput:z},u}getMetrics(){return this.metrics}mergeOptions(e){return {maxConcurrency:e.maxConcurrency??this.defaults.maxConcurrency,timeoutMs:e.timeoutMs??this.defaults.timeoutMs,failFast:e.failFast??this.defaults.failFast,evaluateTaskSuccess:e.evaluateTaskSuccess??this.defaults.evaluateTaskSuccess,callbacks:this.mergeCallbacks(this.defaults.callbacks,e.callbacks)}}mergeCallbacks(e,t){if(!(!e&&!t))return {onTaskStart:async n=>{e?.onTaskStart&&await e.onTaskStart(n),t?.onTaskStart&&await t.onTaskStart(n);},onTaskComplete:async n=>{e?.onTaskComplete&&await e.onTaskComplete(n),t?.onTaskComplete&&await t.onTaskComplete(n);},onError:async(n,o,s)=>{e?.onError&&await e.onError(n,o,s),t?.onError&&await t.onError(n,o,s);}}}};y();y();var nt=class{async query(e){throw new Error("AgentRuntime.query is not implemented. Provide a subclass or mock AgentRuntime.prototype.query.")}async execute(e){throw new Error("AgentRuntime.execute is not implemented. Provide a subclass or mock AgentRuntime.prototype.execute.")}};var rs=3,ns=3e4,os=500,Dc=r=>{if(typeof r!="number"||Number.isNaN(r)||!Number.isFinite(r))return rs;let e=Math.floor(r);return e>0?e:rs},Lc=r=>r===void 0||typeof r!="number"||Number.isNaN(r)||r<=0?ns:r,Hc=r=>{if(!r)return {maxRetries:0,retryDelay:os};let e=Number.isInteger(r.maxRetries)&&r.maxRetries>=0?r.maxRetries:0,t=typeof r.retryDelay=="number"&&r.retryDelay>=0?r.retryDelay:os;return {maxRetries:e,retryDelay:t}},kr=r=>{let e=r.reason;return e instanceof Error?e:typeof e=="string"?new Error(e):new Error("Parallel operation aborted")},qc=(r,e)=>r<=0?Promise.resolve():new Promise((t,n)=>{let o=setTimeout(()=>{e.removeEventListener("abort",s),t();},r),s=()=>{clearTimeout(o),n(kr(e));};if(e.aborted){s();return}e.addEventListener("abort",s,{once:true});}),Fc=async(r,e,t)=>{let n,o;for(let s=0;s<=e.maxRetries;s++){if(t.aborted)throw kr(t);try{let i=await r();if(n=i,i.success||s===e.maxRetries)return i}catch(i){if(o=i,t.aborted)throw kr(t);if(s===e.maxRetries)throw i instanceof Error?i:new Error(String(i))}s<e.maxRetries&&await qc(e.retryDelay,t);}if(n)return n;throw o?o instanceof Error?o:new Error(String(o)):new Error("Parallel helper encountered an unexpected state")},ss=(r,e,t)=>{e.completed+=1,t?e.success+=1:e.failure+=1;try{r.onProgress?.(e.completed,e.total);}catch(n){process.env.NODE_ENV!=="production"&&console.warn("Parallel helper onProgress callback threw an error:",n);}},Uc=r=>r.map(t=>({metadata:t.metadata,taskResult:t})).slice().sort((t,n)=>t.metadata.index-n.metadata.index).map(({metadata:t,taskResult:n})=>{if(n.value){let s=n.value;return {...s,agentId:s.agentId??t.request.agentId,metadata:{...s.metadata,requestIndex:t.index,mode:t.mode}}}let o=n.error??new Error("Unknown error");return {agentId:t.request.agentId,content:o.message,success:false,metadata:{error:o.message,aborted:n.aborted??false,requestIndex:t.index,mode:t.mode}}}),Bc=r=>r.filter(e=>!e.success).map(e=>{let t=e.metadata;if(e.error instanceof Error)return {index:t.index,error:e.error};if(e.value&&!e.value.success){let n=String(e.value.metadata?.error??e.value.content??"Agent returned unsuccessful result");return {index:t.index,error:new Error(n)}}return {index:t.index,error:new Error("Unknown failure")}}),Jc=(r,e)=>({onTaskComplete:async t=>{ss(e,r,t.success);},onError:async()=>{ss(e,r,false);}}),is=async(r,e,t={})=>{if(!Array.isArray(r))throw new TypeError("Parallel helpers expect an array of requests");if(r.length===0){let g={total:0,completed:0,successCount:0,failureCount:0,results:[],errors:[],metrics:{totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0}};return t.onComplete?.(g),[]}let n=Dc(t.concurrency),o=Lc(t.timeout),s=Hc(t.retryPolicy),i=new rt,a=new nt,l=r.map((f,g)=>({id:`${e}:${f.agentId??"anonymous"}:${g}`,metadata:{index:g,mode:e,request:f},run:v=>Fc(()=>e==="query"?a.query(f):a.execute(f),s,v.signal)})),u={completed:0,success:0,failure:0,total:r.length},c=await i.run(l,{maxConcurrency:n,timeoutMs:o,evaluateTaskSuccess:f=>f.success,callbacks:Jc(u,t)}),d=Uc(c),p=Bc(c),m=i.getMetrics(),h={total:r.length,completed:r.length,successCount:d.filter(f=>f.success).length,failureCount:d.filter(f=>!f.success).length,results:d,errors:p,metrics:m};return t.onComplete?.(h),d},Wc=(r,e)=>is(r,"query",e),Vc=(r,e)=>is(r,"execute",e);vr();yr();hr();fr();y();y();var xt=class{capabilities={required:[]}};y();y();y();var as=2e3;function ls(r){let e=r.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f\u2028\u2029]/g,"");return e.length<=as?e:e.slice(0,as-11)+" [redacted]"}var td=10*1024*1024,rd={b:1,kb:1024,mb:1024*1024,gb:1024*1024*1024};function Rr(r,e){return r===void 0?true:Array.isArray(r)?r.includes(e):r===e}function nd(r,e){return r===void 0?true:Array.isArray(r)?r.some(t=>e.includes(t)):e.includes(r)}function cs(r){if(typeof r=="number")return r;let e=r.match(/^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb)?$/i);if(!e)return 0;let t=parseFloat(e[1]),n=(e[2]??"b").toLowerCase();return Math.floor(t*(rd[n]??1))}function ds(r){return typeof r=="string"}function ps(r){try{let e=fs$1.statSync(r);return e.size>td?(process.stderr.write(`[YamlHookPlugin] File too large for line count: ${r} (${e.size} bytes)
|
|
74
|
+
`),null):fs$1.readFileSync(r,"utf8").split(`
|
|
75
|
+
`).length}catch{return null}}function gs(r){try{return fs$1.statSync(r).size}catch{return null}}function od(r,e,t){if(!r)return true;let n=e,o=n?.path??n?.file_path??n?.filePath??n?.filename;if(typeof o!="string")return false;if(ne(o,r))return true;if(t&&o.startsWith("/")){let{relative:s,isAbsolute:i}=U("path");if(i(o)){let a=s(t,o);if(a&&!a.startsWith("..")&&ne(a,r))return true}}return false}function sd(r,e){return r?JSON.stringify(e).includes(r):true}function id(r,e){if(!r)return true;try{let t=new RegExp(r),n=JSON.stringify(e);return t.test(n)}catch{return false}}function ad(r,e){if(!r)return true;try{let t=new RegExp(r),n=JSON.stringify(e);return t.test(n)}catch{return false}}function ld(r,e){if(r.pathSizeMin===void 0&&r.pathSizeMax===void 0)return true;let t=e,n=t?.path??t?.file_path??t?.filePath??t?.filename;if(typeof n!="string")return false;if(r.pathSizeMin!==void 0)if(ds(r.pathSizeMin)){let o=gs(n);if(o===null||o<cs(r.pathSizeMin))return false}else {let o=ps(n);if(o===null||o<r.pathSizeMin)return false}if(r.pathSizeMax!==void 0)if(ds(r.pathSizeMax)){let o=gs(n);if(o===null||o>cs(r.pathSizeMax))return false}else {let o=ps(n);if(o===null||o>r.pathSizeMax)return false}return true}function ud(r){let e=[],t=[];for(let n=0;n<r.length;n++){let o=r[n];if(!o||typeof o!="object"){t.push(`Hook at index ${n}: not an object, skipping`);continue}let s=o;if(typeof s.name!="string"||!s.name){t.push(`Hook at index ${n}: missing or invalid "name", skipping`);continue}let i=s.guide&&typeof s.guide=="object",a=s.deny&&typeof s.deny=="object",l=typeof s.plugin=="string";if(!i&&!a&&!l){t.push(`Hook "${s.name}": missing guide/deny/plugin, skipping`);continue}if(i&&typeof s.guide.say!="string"){t.push(`Hook "${s.name}": guide.say is required and must be string, skipping`);continue}if(a&&typeof s.deny.reason!="string"){t.push(`Hook "${s.name}": deny.reason is required and must be string, skipping`);continue}e.push(s);}return {valid:e,warnings:t}}var Tr=class extends xt{name="@crewx/yaml-hook-plugin";version="0.1.0";capabilities={required:["inject"]};hooks;agentMap;constructor(e){super(),this.hooks=e.hooks,this.agentMap=new Map((e.agents??[]).map(t=>[t.id,t]));}async run(e){let t=[],n=process.env.CREWX_TASK_LOG_PATH,o=process.env.CREWX_HOOK_LOG_VERBOSE==="1";for(let s of this.hooks)if(this.matchEntryLevel(s,e)&&s.guide){if(!this.matchRuleLevel(s.guide,e)){o&&n&&this.appendHookLog(n,{rule:s.name,action:"pass",once:s.guide.once??false,ctx:e,matched:false});continue}s.guide.once&&this.hasFired(e.sessionId,s.name)||(s.guide.once&&this.markFired(e.sessionId,s.name),t.push(s.guide.say),n&&this.appendHookLog(n,{rule:s.name,action:"inject",once:s.guide.once??false,ctx:e,matched:true,message:s.guide.say}));}return t.length?e.inject(t.join(`
|
|
76
|
+
|
|
77
|
+
`)):e.pass()}appendHookLog(e,t){try{let n={rule:t.rule,action:t.action,once:t.once,sessionId:t.ctx.sessionId,provider:t.ctx.provider,agent:t.ctx.agent.id,toolName:t.ctx.tool.name,rawToolName:t.ctx.tool.rawName};t.message&&(n.chars=t.message.length,process.env.CREWX_HOOK_LOG_VERBOSE==="1"&&(n.message=ls(t.message).slice(0,500)));let o=`[${new Date().toISOString()}] HOOK: ${JSON.stringify(n)}
|
|
78
|
+
`;fs$1.appendFileSync(e,o,{encoding:"utf8",mode:384});}catch{}}matchEntryLevel(e,t){if(e.provider!==void 0){let n=t.provider.replace(/^cli\//,"");if(!Rr(e.provider,n))return false}if(e.team!==void 0){let o=this.agentMap.get(t.agent.id)?.team??t.agent.team;if(!Rr(e.team,o))return false}if(e.role!==void 0){let o=this.agentMap.get(t.agent.id)?.role??t.agent.role;if(!Rr(e.role,o))return false}if(e.tag!==void 0){let o=this.agentMap.get(t.agent.id)?.tags??[];if(!nd(e.tag,o))return false}return !(e.agents!==void 0&&!e.agents.includes(t.agent.id))}matchRuleLevel(e,t){return !(e.when!==void 0&&e.when.length>0&&!e.when.includes(t.tool.name)&&!e.when.includes(t.tool.rawName)||!sd(e.pattern,t.tool.input)||!id(e.regex,t.tool.input)||!od(e.pathPattern,t.tool.input,t.cwd)||!ld(e,t.tool.input)||!ad(e.whenInputRegex,t.tool.input))}hasFired(e,t){try{let n=this.firedFilePath(e);if(!fs$1.existsSync(n))return !1;let o=JSON.parse(fs$1.readFileSync(n,"utf8"));return Array.isArray(o.fired)&&o.fired.includes(t)}catch{return false}}markFired(e,t){try{let n=this.firedFilePath(e);fs$1.mkdirSync(Hr.dirname(n),{recursive:!0,mode:448});let o=fs$1.existsSync(n)?JSON.parse(fs$1.readFileSync(n,"utf8")):{fired:[]};Array.isArray(o.fired)||(o.fired=[]),o.fired.includes(t)||(o.fired.push(t),fs$1.writeFileSync(n,JSON.stringify(o),{mode:384}));}catch(n){process.stderr.write(`[YamlHookPlugin] once state write failed: ${n}
|
|
79
|
+
`);}}firedFilePath(e){let t=crypto$1.createHash("sha1").update(e).digest("hex");return Hr.join(os$1.homedir(),".crewx","sessions",t,"fired-rules.json")}};y();y();y();function cd(r){let e=r.messages.map(t=>({id:t.id,role:t.isAssistant?"assistant":"user",content:t.text,timestamp:new Date(t.timestamp).toISOString(),metadata:t.metadata??null}));return {getThreadMessages(t){return e}}}y();var Pr=class extends Error{code;kind;retryAfterMs;constructor(e,t,n){super(`AdapterError: ${e}`),this.name="AdapterError",this.code=e,this.kind=t,this.retryAfterMs=n;}};y();function dd(r){return r}function pd(r){return {name:r.name,async attach(e){let t=await r.configFactory(e),o=e.registerChannelAdapter,s=r.instanceId??r.name;o&&await o({adapter:r.adapter,instanceId:s,config:t}),r.onAttach&&await r.onAttach(e);},async detach(e){let n=e.unregisterChannelAdapter;n&&await n(r.instanceId??r.name),r.onDetach&&await r.onDetach(e);}}}exports.AdapterError=Pr;exports.AgentNotFoundError=ue;exports.AgentRuntime=nt;exports.BrowserFsAdapter=br;exports.ConfigLoadError=_e;exports.Crewx=wr;exports.CrewxPlugin=De;exports.DocumentLoader=ke;exports.LayoutLoadError=Y;exports.LayoutLoader=Me;exports.LayoutRenderer=Ne;exports.NodeFsAdapter=st;exports.ParallelRunner=rt;exports.ParallelRunnerTimeoutError=_t;exports.PropsValidationError=de;exports.PropsValidator=je;exports.SdkBoxService=xr;exports.SqliteConversationProvider=Le;exports.TemplateEngine=ze;exports.TypedEventEmitter=$e;exports.YamlHookPlugin=Tr;exports.buildContext=$c;exports.createAdapterContext=Lt;exports.createDelegateTool=zc;exports.createHandler=Bt;exports.createPluginProviderFactory=Yo;exports.createProvider=ce;exports.createRemoteProviderFactory=Vo;exports.createScopedAdapterStore=$t;exports.defaultFsAdapter=Mt;exports.defineChannelAdapter=dd;exports.defineChannelAdapterPlugin=pd;exports.escapeHandlebarsHelper=It;exports.formatFileSizeHelper=Ot;exports.formatTimestamp=Nt;exports.formatTimestampHelper=zt;exports.generateFingerprint=oi;exports.generateId=Ce;exports.getSyncWindowStore=ai;exports.hashWorkspaceId=Jt;exports.lengthHelper=St;exports.loadYamlFile=Ct;exports.normalizeWorkspacePath=Yr;exports.parseStdoutEvent=Ft;exports.parseUsage=Tt;exports.parseYamlContent=Sr;exports.registerApiProviders=Jo;exports.registerProviderFactory=Ae;exports.resolveAgent=ot;exports.resolveCrewxCli=Mc;exports.resolveCrewxWorkspace=jc;exports.runExecutesParallel=Vc;exports.runInSyncWindow=li;exports.runQueriesParallel=Wc;exports.setAuditVerbose=Fs;exports.toTaskReader=cd;exports.toTemplateMessages=Ut;exports.truncateHelper=At;exports.validateHooksSchema=ud;
|