@crewx/sdk 0.8.0-rc.73 → 0.8.0-rc.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +380 -818
- package/dist/adapter/context-builder.d.ts +35 -0
- package/dist/adapter/context-builder.js +87 -0
- package/dist/adapter/index.d.ts +5 -0
- package/dist/{core/remote → adapter}/index.js +3 -2
- package/dist/adapter/plugin-helper.d.ts +19 -0
- package/dist/adapter/plugin-helper.js +45 -0
- package/dist/adapter/scoped-store.d.ts +12 -0
- package/dist/adapter/scoped-store.js +43 -0
- package/dist/adapter/types.d.ts +264 -0
- package/dist/adapter/types.js +23 -0
- package/dist/agent/resolver.d.ts +18 -0
- package/dist/agent/resolver.js +46 -0
- package/dist/boxing/box-storage.interface.d.ts +12 -0
- package/dist/boxing/box-storage.interface.js +3 -0
- package/dist/boxing/box.service.d.ts +4 -0
- package/dist/boxing/box.service.js +5 -1
- package/dist/boxing/box.types.d.ts +4 -0
- package/dist/boxing/box.types.js +3 -0
- package/dist/boxing/context-builder.d.ts +6 -7
- package/dist/boxing/context-builder.js +3 -0
- package/dist/client/CrewxClient.d.ts +65 -0
- package/dist/client/CrewxClient.js +86 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.js +6 -0
- package/dist/config/loader.browser.d.ts +14 -0
- package/dist/config/loader.browser.js +59 -0
- package/dist/config/loader.d.ts +19 -0
- package/dist/config/loader.js +95 -0
- package/dist/conversation/index.d.ts +5 -3
- package/dist/conversation/index.js +8 -3
- package/dist/conversation/sqlite-provider.d.ts +21 -0
- package/dist/conversation/sqlite-provider.js +178 -0
- package/dist/conversation/to-task-reader.d.ts +14 -0
- package/dist/conversation/to-task-reader.js +28 -0
- package/dist/conversation/to-template-messages.d.ts +15 -0
- package/dist/conversation/to-template-messages.js +34 -0
- package/dist/conversation/types.d.ts +101 -0
- package/dist/conversation/types.js +10 -0
- package/dist/esm/agent/resolver.js +41 -0
- package/dist/esm/boxing/box-storage.interface.js +5 -0
- package/dist/esm/boxing/box.service.js +69 -0
- package/dist/esm/boxing/box.types.js +5 -0
- package/dist/esm/boxing/context-builder.js +76 -0
- package/dist/esm/client/CrewxClient.js +82 -0
- package/dist/esm/client/index.js +2 -0
- package/dist/esm/config/loader.browser.js +54 -0
- package/dist/esm/config/loader.js +77 -0
- package/dist/esm/events/TypedEventEmitter.js +61 -0
- package/dist/esm/events/types.js +8 -0
- package/dist/esm/facade/Crewx.browser.js +310 -0
- package/dist/esm/facade/Crewx.js +941 -0
- package/dist/esm/hooks/define.js +10 -0
- package/dist/esm/hooks/dispatch.js +76 -0
- package/dist/esm/hooks/index.js +6 -0
- package/dist/esm/hooks/observer.js +56 -0
- package/dist/esm/hooks/plugin.js +12 -0
- package/dist/esm/hooks/types.js +9 -0
- package/dist/esm/index.browser.js +15 -0
- package/dist/esm/index.js +60 -0
- package/dist/esm/layout/loader.js +268 -0
- package/dist/esm/layout/props-validator.js +297 -0
- package/dist/esm/layout/renderer.js +180 -0
- package/dist/esm/layout/types.js +31 -0
- package/dist/esm/parallel/agent-runtime.js +21 -0
- package/dist/esm/parallel/helpers.js +214 -0
- package/dist/esm/parallel/index.js +5 -0
- package/dist/esm/parallel/parallel-runner.js +221 -0
- package/dist/esm/parallel/types.js +5 -0
- package/dist/esm/parsers/agent-call.util.js +15 -0
- package/dist/esm/parsers/claude.parser.js +64 -0
- package/dist/esm/parsers/codex.parser.js +97 -0
- package/dist/esm/parsers/copilot.parser.js +63 -0
- package/dist/esm/parsers/gemini.parser.js +43 -0
- package/dist/esm/parsers/opencode.parser.js +73 -0
- package/dist/esm/parsers/router.js +53 -0
- package/dist/esm/platform/BrowserFsAdapter.js +80 -0
- package/dist/esm/platform/IFsAdapter.js +2 -0
- package/dist/esm/platform/NodeFsAdapter.js +34 -0
- package/dist/esm/plugin/plugin-provider.js +202 -0
- package/dist/esm/plugin/types.js +8 -0
- package/dist/esm/plugin.js +25 -0
- package/dist/esm/provider/bridge.browser.js +43 -0
- package/dist/esm/provider/bridge.js +373 -0
- package/dist/esm/provider/parse-usage.js +80 -0
- package/dist/esm/provider/register-api.js +21 -0
- package/dist/esm/provider/vercel-runtime.js +310 -0
- package/dist/esm/remote/index.js +10 -0
- package/dist/esm/remote/remote-agent-manager.js +194 -0
- package/dist/esm/remote/remote-provider.js +98 -0
- package/dist/esm/remote/remote-transport.js +79 -0
- package/dist/esm/remote/types.js +8 -0
- package/dist/esm/server/auth.js +31 -0
- package/dist/esm/server/handler.js +72 -0
- package/dist/esm/server/index.js +5 -0
- package/dist/esm/server/tool-adapter.js +92 -0
- package/dist/esm/template/engine.js +100 -0
- package/dist/esm/template/helpers/exec.browser.js +31 -0
- package/dist/esm/template/helpers/exec.js +220 -0
- package/dist/esm/template/helpers/fenced_code.js +17 -0
- package/dist/esm/template/helpers/include.js +20 -0
- package/dist/esm/template/helpers/p1p2.js +83 -0
- package/dist/esm/template/loader/DocumentLoader.js +124 -0
- package/dist/esm/template/types.js +5 -0
- package/dist/esm/tools/delegate.js +57 -0
- package/dist/esm/tools/index.js +5 -0
- package/dist/esm/tools/node/builtin.js +541 -0
- package/dist/esm/tools/node/index.js +54 -0
- package/dist/esm/types/index.js +27 -0
- package/dist/esm/types/task-log.types.js +5 -0
- package/dist/esm/utils/env-defaults.js +23 -0
- package/dist/esm/utils/glob-match.js +38 -0
- package/dist/esm/utils/id.js +46 -0
- package/dist/esm/utils/workspace.js +21 -0
- package/dist/events/TypedEventEmitter.d.ts +31 -0
- package/dist/events/TypedEventEmitter.js +65 -0
- package/dist/events/types.d.ts +139 -0
- package/dist/events/types.js +9 -0
- package/dist/facade/Crewx.browser.d.ts +73 -0
- package/dist/facade/Crewx.browser.js +314 -0
- package/dist/facade/Crewx.d.ts +267 -0
- package/dist/facade/Crewx.js +1299 -0
- package/dist/hooks/define.d.ts +10 -0
- package/dist/hooks/define.js +13 -0
- package/dist/hooks/dispatch.d.ts +61 -0
- package/dist/hooks/dispatch.js +147 -0
- package/dist/hooks/index.d.ts +13 -0
- package/dist/hooks/index.js +24 -0
- package/dist/hooks/observer.d.ts +20 -0
- package/dist/hooks/observer.js +60 -0
- package/dist/hooks/plugin.d.ts +19 -0
- package/dist/hooks/plugin.js +17 -0
- package/dist/hooks/tool-normalize.d.ts +29 -0
- package/dist/hooks/tool-normalize.js +110 -0
- package/dist/hooks/types.d.ts +79 -0
- package/dist/hooks/types.js +12 -0
- package/dist/hooks/yaml-plugin.d.ts +29 -0
- package/dist/hooks/yaml-plugin.js +356 -0
- package/dist/index.browser.d.ts +15 -0
- package/dist/index.browser.js +25 -0
- package/dist/index.d.ts +70 -58
- package/dist/index.js +144 -133
- package/dist/{services/layout-loader.service.d.ts → layout/loader.d.ts} +24 -4
- package/dist/{services/layout-loader.service.js → layout/loader.js} +103 -73
- package/dist/{services/props-validator.service.d.ts → layout/props-validator.d.ts} +7 -1
- package/dist/{services/props-validator.service.js → layout/props-validator.js} +28 -59
- package/dist/{services/layout-renderer.service.d.ts → layout/renderer.d.ts} +28 -14
- package/dist/layout/renderer.js +193 -0
- package/dist/{types/layout.types.d.ts → layout/types.d.ts} +47 -1
- package/dist/{types/layout.types.js → layout/types.js} +15 -1
- package/dist/parallel/agent-runtime.d.ts +31 -0
- package/dist/parallel/agent-runtime.js +25 -0
- package/dist/{core/parallel → parallel}/helpers.d.ts +2 -1
- package/dist/{core/parallel → parallel}/helpers.js +55 -88
- package/dist/parallel/index.d.ts +8 -0
- package/dist/{core/parallel → parallel}/index.js +5 -3
- package/dist/{core/parallel → parallel}/parallel-runner.d.ts +8 -1
- package/dist/{core/parallel → parallel}/parallel-runner.js +53 -57
- package/dist/parallel/types.d.ts +65 -0
- package/dist/parallel/types.js +6 -0
- package/dist/parsers/agent-call.util.d.ts +3 -0
- package/dist/parsers/agent-call.util.js +2 -0
- package/dist/parsers/api.parser.d.ts +10 -0
- package/dist/parsers/api.parser.js +26 -0
- package/dist/parsers/claude.parser.d.ts +8 -0
- package/dist/parsers/claude.parser.js +22 -1
- package/dist/parsers/codex.parser.d.ts +8 -0
- package/dist/parsers/codex.parser.js +11 -0
- package/dist/parsers/copilot.parser.d.ts +9 -0
- package/dist/parsers/copilot.parser.js +8 -0
- package/dist/parsers/gemini.parser.d.ts +10 -0
- package/dist/parsers/gemini.parser.js +10 -0
- package/dist/parsers/opencode.parser.d.ts +12 -0
- package/dist/parsers/opencode.parser.js +76 -0
- package/dist/parsers/router.d.ts +7 -0
- package/dist/parsers/router.js +56 -0
- package/dist/platform/BrowserFsAdapter.d.ts +37 -0
- package/dist/platform/BrowserFsAdapter.js +84 -0
- package/dist/platform/IFsAdapter.d.ts +29 -0
- package/dist/{core/remote/types.js → platform/IFsAdapter.js} +1 -1
- package/dist/platform/NodeFsAdapter.d.ts +16 -0
- package/dist/platform/NodeFsAdapter.js +38 -0
- package/dist/plugin/plugin-provider.d.ts +33 -0
- package/dist/plugin/plugin-provider.js +207 -0
- package/dist/plugin/types.d.ts +53 -0
- package/dist/plugin/types.js +9 -0
- package/dist/plugin.d.ts +33 -0
- package/dist/plugin.js +29 -0
- package/dist/plugins/conversation.d.ts +18 -0
- package/dist/plugins/conversation.js +59 -0
- package/dist/plugins/file-logger.d.ts +29 -0
- package/dist/plugins/file-logger.js +87 -0
- package/dist/plugins/index.d.ts +16 -0
- package/dist/plugins/index.js +19 -0
- package/dist/plugins/sqlite-tracing.d.ts +29 -0
- package/dist/plugins/sqlite-tracing.js +112 -0
- package/dist/provider/bridge.browser.d.ts +49 -0
- package/dist/provider/bridge.browser.js +49 -0
- package/dist/provider/bridge.d.ts +106 -0
- package/dist/provider/bridge.js +380 -0
- package/dist/provider/mastra-runtime.d.ts +45 -0
- package/dist/provider/mastra-runtime.js +208 -0
- package/dist/provider/parse-usage.d.ts +20 -0
- package/dist/provider/parse-usage.js +83 -0
- package/dist/provider/register-api.d.ts +14 -0
- package/dist/provider/register-api.js +24 -0
- package/dist/provider/vercel-runtime.d.ts +54 -0
- package/dist/provider/vercel-runtime.js +347 -0
- package/dist/remote/index.d.ts +13 -0
- package/dist/remote/index.js +32 -0
- package/dist/remote/remote-agent-manager.d.ts +54 -0
- package/dist/{core/remote → remote}/remote-agent-manager.js +100 -97
- package/dist/remote/remote-provider.d.ts +47 -0
- package/dist/remote/remote-provider.js +141 -0
- package/dist/remote/remote-transport.d.ts +32 -0
- package/dist/remote/remote-transport.js +83 -0
- package/dist/remote/types.d.ts +147 -0
- package/dist/remote/types.js +9 -0
- package/dist/server/auth.d.ts +21 -0
- package/dist/server/auth.js +35 -0
- package/dist/server/handler.d.ts +24 -0
- package/dist/server/handler.js +75 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.js +9 -0
- package/dist/server/tool-adapter.d.ts +19 -0
- package/dist/server/tool-adapter.js +95 -0
- package/dist/template/engine.d.ts +28 -0
- package/dist/template/engine.js +137 -0
- package/dist/template/helpers/exec.browser.d.ts +22 -0
- package/dist/template/helpers/exec.browser.js +41 -0
- package/dist/template/helpers/exec.d.ts +60 -0
- package/dist/template/helpers/exec.js +230 -0
- package/dist/template/helpers/fenced_code.d.ts +22 -0
- package/dist/template/helpers/fenced_code.js +20 -0
- package/dist/template/helpers/format-conversation.d.ts +30 -0
- package/dist/template/helpers/format-conversation.js +53 -0
- package/dist/template/helpers/include.d.ts +16 -0
- package/dist/template/helpers/include.js +23 -0
- package/dist/template/helpers/p1p2.d.ts +37 -0
- package/dist/template/helpers/p1p2.js +90 -0
- package/dist/template/loader/DocumentLoader.d.ts +48 -0
- package/dist/template/loader/DocumentLoader.js +128 -0
- package/dist/template/types.d.ts +51 -0
- package/dist/template/types.js +6 -0
- package/dist/testing/index.d.ts +12 -0
- package/dist/testing/index.js +16 -0
- package/dist/testing/mock-audit.d.ts +10 -0
- package/dist/testing/mock-audit.js +13 -0
- package/dist/testing/mock-context.d.ts +27 -0
- package/dist/testing/mock-context.js +68 -0
- package/dist/testing/mock-logger.d.ts +15 -0
- package/dist/testing/mock-logger.js +27 -0
- package/dist/testing/mock-router.d.ts +16 -0
- package/dist/testing/mock-router.js +67 -0
- package/dist/testing/mock-storage.d.ts +9 -0
- package/dist/testing/mock-storage.js +21 -0
- package/dist/testing/mock-store.d.ts +3 -0
- package/dist/testing/mock-store.js +8 -0
- package/dist/tools/delegate.d.ts +10 -0
- package/dist/tools/delegate.js +60 -0
- package/dist/tools/index.d.ts +5 -12
- package/dist/tools/index.js +6 -37
- package/dist/tools/node/builtin.d.ts +23 -0
- package/dist/tools/node/builtin.js +547 -0
- package/dist/tools/node/index.d.ts +23 -0
- package/dist/tools/node/index.js +59 -0
- package/dist/types/index.d.ts +804 -6
- package/dist/types/index.js +29 -20
- package/dist/types/task-log.types.d.ts +4 -0
- package/dist/types/task-log.types.js +3 -0
- package/dist/utils/env-defaults.d.ts +18 -0
- package/dist/utils/env-defaults.js +27 -0
- package/dist/utils/glob-match.d.ts +18 -0
- package/dist/utils/glob-match.js +42 -0
- package/dist/{core → utils}/id.d.ts +15 -0
- package/dist/utils/id.js +50 -0
- package/dist/utils/timestamp.d.ts +2 -0
- package/dist/utils/timestamp.js +13 -0
- package/dist/{core → utils}/workspace.d.ts +4 -0
- package/dist/{core → utils}/workspace.js +3 -0
- package/package.json +67 -102
- package/src/schemas/hooks.schema.json +59 -0
- package/templates/agents/default.yaml +490 -0
- package/templates/agents/minimal.yaml +16 -0
- package/LICENSE +0 -201
- package/dist/adapters/MastraToolAdapter.d.ts +0 -9
- package/dist/adapters/MastraToolAdapter.js +0 -66
- package/dist/adapters/MastraToolAdapter.js.map +0 -1
- package/dist/api/index.d.ts +0 -2
- package/dist/api/index.js +0 -8
- package/dist/api/index.js.map +0 -1
- package/dist/boxing/box-storage.interface.js.map +0 -1
- package/dist/boxing/box.service.js.map +0 -1
- package/dist/boxing/box.types.js.map +0 -1
- package/dist/boxing/context-builder.js.map +0 -1
- package/dist/boxing/index.d.ts +0 -6
- package/dist/boxing/index.js +0 -11
- package/dist/boxing/index.js.map +0 -1
- package/dist/boxing/tokenizer.d.ts +0 -3
- package/dist/boxing/tokenizer.js +0 -11
- package/dist/boxing/tokenizer.js.map +0 -1
- package/dist/config/api-provider-parser.d.ts +0 -58
- package/dist/config/api-provider-parser.js +0 -212
- package/dist/config/api-provider-parser.js.map +0 -1
- package/dist/config/index.d.ts +0 -3
- package/dist/config/index.js +0 -20
- package/dist/config/index.js.map +0 -1
- package/dist/config/log.config.d.ts +0 -7
- package/dist/config/log.config.js +0 -20
- package/dist/config/log.config.js.map +0 -1
- package/dist/config/pricing.d.ts +0 -11
- package/dist/config/pricing.js +0 -53
- package/dist/config/pricing.js.map +0 -1
- package/dist/config/timeout.config.d.ts +0 -14
- package/dist/config/timeout.config.js +0 -34
- package/dist/config/timeout.config.js.map +0 -1
- package/dist/config/yaml-loader.d.ts +0 -8
- package/dist/config/yaml-loader.js +0 -155
- package/dist/config/yaml-loader.js.map +0 -1
- package/dist/constants/index.d.ts +0 -4
- package/dist/constants/index.js +0 -8
- package/dist/constants/index.js.map +0 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +0 -18
- package/dist/constants.js.map +0 -1
- package/dist/conversation/conversation-config.d.ts +0 -9
- package/dist/conversation/conversation-config.js +0 -22
- package/dist/conversation/conversation-config.js.map +0 -1
- package/dist/conversation/conversation-history.interface.d.ts +0 -36
- package/dist/conversation/conversation-history.interface.js +0 -3
- package/dist/conversation/conversation-history.interface.js.map +0 -1
- package/dist/conversation/conversation-storage.service.d.ts +0 -16
- package/dist/conversation/conversation-storage.service.js +0 -213
- package/dist/conversation/conversation-storage.service.js.map +0 -1
- package/dist/conversation/index.js.map +0 -1
- package/dist/core/__tests__/id.test.d.ts +0 -1
- package/dist/core/__tests__/id.test.js +0 -115
- package/dist/core/__tests__/id.test.js.map +0 -1
- package/dist/core/agent/agent-factory.d.ts +0 -37
- package/dist/core/agent/agent-factory.js +0 -68
- package/dist/core/agent/agent-factory.js.map +0 -1
- package/dist/core/agent/agent-runtime.d.ts +0 -52
- package/dist/core/agent/agent-runtime.js +0 -206
- package/dist/core/agent/agent-runtime.js.map +0 -1
- package/dist/core/agent/event-bus.d.ts +0 -44
- package/dist/core/agent/event-bus.js +0 -43
- package/dist/core/agent/event-bus.js.map +0 -1
- package/dist/core/agent/index.d.ts +0 -3
- package/dist/core/agent/index.js +0 -13
- package/dist/core/agent/index.js.map +0 -1
- package/dist/core/env-defaults.d.ts +0 -1
- package/dist/core/env-defaults.js +0 -7
- package/dist/core/env-defaults.js.map +0 -1
- package/dist/core/id.js +0 -27
- package/dist/core/id.js.map +0 -1
- package/dist/core/parallel/helpers.js.map +0 -1
- package/dist/core/parallel/index.d.ts +0 -4
- package/dist/core/parallel/index.js.map +0 -1
- package/dist/core/parallel/parallel-runner.js.map +0 -1
- package/dist/core/parallel/types.d.ts +0 -41
- package/dist/core/parallel/types.js +0 -3
- package/dist/core/parallel/types.js.map +0 -1
- package/dist/core/providers/MastraAPIProvider.d.ts +0 -31
- package/dist/core/providers/MastraAPIProvider.js +0 -365
- package/dist/core/providers/MastraAPIProvider.js.map +0 -1
- package/dist/core/providers/ai-provider.interface.d.ts +0 -79
- package/dist/core/providers/ai-provider.interface.js +0 -23
- package/dist/core/providers/ai-provider.interface.js.map +0 -1
- package/dist/core/providers/base-ai.provider.d.ts +0 -84
- package/dist/core/providers/base-ai.provider.js +0 -1237
- package/dist/core/providers/base-ai.provider.js.map +0 -1
- package/dist/core/providers/base-ai.types.d.ts +0 -26
- package/dist/core/providers/base-ai.types.js +0 -3
- package/dist/core/providers/base-ai.types.js.map +0 -1
- package/dist/core/providers/claude.provider.d.ts +0 -19
- package/dist/core/providers/claude.provider.js +0 -170
- package/dist/core/providers/claude.provider.js.map +0 -1
- package/dist/core/providers/codex.provider.d.ts +0 -21
- package/dist/core/providers/codex.provider.js +0 -134
- package/dist/core/providers/codex.provider.js.map +0 -1
- package/dist/core/providers/copilot.provider.d.ts +0 -25
- package/dist/core/providers/copilot.provider.js +0 -146
- package/dist/core/providers/copilot.provider.js.map +0 -1
- package/dist/core/providers/dynamic-provider.factory.d.ts +0 -74
- package/dist/core/providers/dynamic-provider.factory.js +0 -645
- package/dist/core/providers/dynamic-provider.factory.js.map +0 -1
- package/dist/core/providers/gemini.provider.d.ts +0 -16
- package/dist/core/providers/gemini.provider.js +0 -101
- package/dist/core/providers/gemini.provider.js.map +0 -1
- package/dist/core/providers/index.d.ts +0 -8
- package/dist/core/providers/index.js +0 -20
- package/dist/core/providers/index.js.map +0 -1
- package/dist/core/providers/mock.provider.d.ts +0 -13
- package/dist/core/providers/mock.provider.js +0 -55
- package/dist/core/providers/mock.provider.js.map +0 -1
- package/dist/core/providers/provider-factory.d.ts +0 -3
- package/dist/core/providers/provider-factory.js +0 -65
- package/dist/core/providers/provider-factory.js.map +0 -1
- package/dist/core/providers/tool-call.types.d.ts +0 -39
- package/dist/core/providers/tool-call.types.js +0 -3
- package/dist/core/providers/tool-call.types.js.map +0 -1
- package/dist/core/remote/index.d.ts +0 -3
- package/dist/core/remote/index.js.map +0 -1
- package/dist/core/remote/remote-agent-manager.d.ts +0 -24
- package/dist/core/remote/remote-agent-manager.js.map +0 -1
- package/dist/core/remote/remote-transport.d.ts +0 -15
- package/dist/core/remote/remote-transport.js +0 -70
- package/dist/core/remote/remote-transport.js.map +0 -1
- package/dist/core/remote/types.d.ts +0 -79
- package/dist/core/remote/types.js.map +0 -1
- package/dist/core/workspace.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal/index.d.ts +0 -1
- package/dist/internal/index.js +0 -6
- package/dist/internal/index.js.map +0 -1
- package/dist/knowledge/DocumentManager.d.ts +0 -4
- package/dist/knowledge/DocumentManager.js +0 -119
- package/dist/knowledge/DocumentManager.js.map +0 -1
- package/dist/knowledge/index.d.ts +0 -1
- package/dist/knowledge/index.js +0 -18
- package/dist/knowledge/index.js.map +0 -1
- package/dist/parsers/agent-call.util.js.map +0 -1
- package/dist/parsers/claude.parser.js.map +0 -1
- package/dist/parsers/codex.parser.js.map +0 -1
- package/dist/parsers/copilot.parser.js.map +0 -1
- package/dist/parsers/gemini.parser.js.map +0 -1
- package/dist/parsers/index.d.ts +0 -7
- package/dist/parsers/index.js +0 -45
- package/dist/parsers/index.js.map +0 -1
- package/dist/schema/skills-parser.d.ts +0 -8
- package/dist/schema/skills-parser.js +0 -438
- package/dist/schema/skills-parser.js.map +0 -1
- package/dist/schema/skills.types.d.ts +0 -158
- package/dist/schema/skills.types.js +0 -41
- package/dist/schema/skills.types.js.map +0 -1
- package/dist/schemas/api-provider.schema.d.ts +0 -432
- package/dist/schemas/api-provider.schema.js +0 -50
- package/dist/schemas/api-provider.schema.js.map +0 -1
- package/dist/services/index.d.ts +0 -2
- package/dist/services/index.js +0 -19
- package/dist/services/index.js.map +0 -1
- package/dist/services/layout-loader.service.js.map +0 -1
- package/dist/services/layout-renderer.service.js +0 -325
- package/dist/services/layout-renderer.service.js.map +0 -1
- package/dist/services/props-validator.service.js.map +0 -1
- package/dist/skills/adapter/claude-skill-adapter.d.ts +0 -11
- package/dist/skills/adapter/claude-skill-adapter.js +0 -222
- package/dist/skills/adapter/claude-skill-adapter.js.map +0 -1
- package/dist/skills/index.d.ts +0 -6
- package/dist/skills/index.js +0 -31
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/runtime/progressive-loader.d.ts +0 -27
- package/dist/skills/runtime/progressive-loader.js +0 -186
- package/dist/skills/runtime/progressive-loader.js.map +0 -1
- package/dist/skills/runtime/runtime-requirements-validator.d.ts +0 -23
- package/dist/skills/runtime/runtime-requirements-validator.js +0 -248
- package/dist/skills/runtime/runtime-requirements-validator.js.map +0 -1
- package/dist/skills/runtime/skill-runtime.service.d.ts +0 -42
- package/dist/skills/runtime/skill-runtime.service.js +0 -434
- package/dist/skills/runtime/skill-runtime.service.js.map +0 -1
- package/dist/tools/file-system.service.d.ts +0 -10
- package/dist/tools/file-system.service.js +0 -33
- package/dist/tools/file-system.service.js.map +0 -1
- package/dist/tools/find.tool.d.ts +0 -21
- package/dist/tools/find.tool.js +0 -139
- package/dist/tools/find.tool.js.map +0 -1
- package/dist/tools/glob.tool.d.ts +0 -24
- package/dist/tools/glob.tool.js +0 -153
- package/dist/tools/glob.tool.js.map +0 -1
- package/dist/tools/grep.tool.d.ts +0 -1
- package/dist/tools/grep.tool.js +0 -137
- package/dist/tools/grep.tool.js.map +0 -1
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/ls.tool.d.ts +0 -1
- package/dist/tools/ls.tool.js +0 -94
- package/dist/tools/ls.tool.js.map +0 -1
- package/dist/tools/read-file.tool.d.ts +0 -1
- package/dist/tools/read-file.tool.js +0 -69
- package/dist/tools/read-file.tool.js.map +0 -1
- package/dist/tools/replace.tool.d.ts +0 -1
- package/dist/tools/replace.tool.js +0 -68
- package/dist/tools/replace.tool.js.map +0 -1
- package/dist/tools/run-shell-command.tool.d.ts +0 -1
- package/dist/tools/run-shell-command.tool.js +0 -64
- package/dist/tools/run-shell-command.tool.js.map +0 -1
- package/dist/tools/tree.tool.d.ts +0 -1
- package/dist/tools/tree.tool.js +0 -109
- package/dist/tools/tree.tool.js.map +0 -1
- package/dist/tools/types.d.ts +0 -42
- package/dist/tools/types.js +0 -13
- package/dist/tools/types.js.map +0 -1
- package/dist/tools/utils/file-utils.d.ts +0 -5
- package/dist/tools/utils/file-utils.js +0 -221
- package/dist/tools/utils/file-utils.js.map +0 -1
- package/dist/tools/write-file.tool.d.ts +0 -1
- package/dist/tools/write-file.tool.js +0 -55
- package/dist/tools/write-file.tool.js.map +0 -1
- package/dist/types/agent.types.d.ts +0 -134
- package/dist/types/agent.types.js +0 -16
- package/dist/types/agent.types.js.map +0 -1
- package/dist/types/api-provider.types.d.ts +0 -85
- package/dist/types/api-provider.types.js +0 -65
- package/dist/types/api-provider.types.js.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/layout.types.js.map +0 -1
- package/dist/types/provider.types.d.ts +0 -12
- package/dist/types/provider.types.js +0 -3
- package/dist/types/provider.types.js.map +0 -1
- package/dist/types/skill-runtime.types.d.ts +0 -244
- package/dist/types/skill-runtime.types.js +0 -44
- package/dist/types/skill-runtime.types.js.map +0 -1
- package/dist/types/structured-payload.types.d.ts +0 -46
- package/dist/types/structured-payload.types.js +0 -65
- package/dist/types/structured-payload.types.js.map +0 -1
- package/dist/types/task-log.types.js.map +0 -1
- package/dist/types/template.types.d.ts +0 -38
- package/dist/types/template.types.js +0 -3
- package/dist/types/template.types.js.map +0 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -18
- package/dist/types.js.map +0 -1
- package/dist/utils/api-provider-normalizer.d.ts +0 -16
- package/dist/utils/api-provider-normalizer.js +0 -135
- package/dist/utils/api-provider-normalizer.js.map +0 -1
- package/dist/utils/base-message-formatter.d.ts +0 -32
- package/dist/utils/base-message-formatter.js +0 -170
- package/dist/utils/base-message-formatter.js.map +0 -1
- package/dist/utils/error-utils.d.ts +0 -3
- package/dist/utils/error-utils.js +0 -27
- package/dist/utils/error-utils.js.map +0 -1
- package/dist/utils/index.d.ts +0 -4
- package/dist/utils/index.js +0 -21
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/math-utils.d.ts +0 -3
- package/dist/utils/math-utils.js +0 -10
- package/dist/utils/math-utils.js.map +0 -1
- package/dist/utils/mention-parser.d.ts +0 -18
- package/dist/utils/mention-parser.js +0 -136
- package/dist/utils/mention-parser.js.map +0 -1
- package/dist/utils/string-utils.d.ts +0 -1
- package/dist/utils/string-utils.js +0 -10
- package/dist/utils/string-utils.js.map +0 -1
- package/dist/utils.d.ts +0 -3
- package/dist/utils.js +0 -20
- package/dist/utils.js.map +0 -1
- package/schema/api-provider-config.json +0 -138
- package/schema/crewx-config.json +0 -224
- package/schema/skills-config.json +0 -306
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConversationPlugin = void 0;
|
|
4
|
+
const plugin_1 = require("../plugin");
|
|
5
|
+
const sqlite_provider_1 = require("../conversation/sqlite-provider");
|
|
6
|
+
class ConversationPlugin extends plugin_1.CrewxPlugin {
|
|
7
|
+
name = 'conversation';
|
|
8
|
+
_provider;
|
|
9
|
+
unsubStart = null;
|
|
10
|
+
unsubEnd = null;
|
|
11
|
+
constructor(opts) {
|
|
12
|
+
super();
|
|
13
|
+
this._provider = new sqlite_provider_1.SqliteConversationProvider(opts?.dbPath);
|
|
14
|
+
}
|
|
15
|
+
/** Expose provider for SDK history auto-fetch (WI-CONV-002). */
|
|
16
|
+
get conversationProvider() {
|
|
17
|
+
return this._provider;
|
|
18
|
+
}
|
|
19
|
+
attach(crewx) {
|
|
20
|
+
// task:start — save user message + ensure thread
|
|
21
|
+
this.unsubStart = crewx.on('task:start', async (event) => {
|
|
22
|
+
if (!event.threadId)
|
|
23
|
+
return;
|
|
24
|
+
const platform = (event.platform ?? 'cli');
|
|
25
|
+
try {
|
|
26
|
+
await this._provider.ensureThread(event.threadId, platform, event.workspaceId);
|
|
27
|
+
await this._provider.saveUserMessage(event.threadId, event.message ?? '');
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Non-fatal: conversation persistence must never crash the main process
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
// task:end — save assistant response (WI-CONV-002)
|
|
34
|
+
this.unsubEnd = crewx.on('task:end', async (event) => {
|
|
35
|
+
if (!event.result)
|
|
36
|
+
return;
|
|
37
|
+
// Resolve threadId from metadata propagated in task:start
|
|
38
|
+
const threadId = event.metadata?.threadId;
|
|
39
|
+
if (!threadId)
|
|
40
|
+
return;
|
|
41
|
+
const agentId = event.agentRef?.replace(/^@/, '') ?? '';
|
|
42
|
+
try {
|
|
43
|
+
await this._provider.saveAssistantMessage(threadId, event.result, agentId);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Non-fatal: conversation persistence must never crash the main process
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
detach(_crewx) {
|
|
51
|
+
this.unsubStart?.();
|
|
52
|
+
this.unsubStart = null;
|
|
53
|
+
this.unsubEnd?.();
|
|
54
|
+
this.unsubEnd = null;
|
|
55
|
+
this._provider.close?.();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.ConversationPlugin = ConversationPlugin;
|
|
59
|
+
//# sourceMappingURL=conversation.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FileLoggerPlugin — writes structured log files to .crewx/logs/.
|
|
3
|
+
*
|
|
4
|
+
* Subscribes to task:start and task:end events and writes one log file
|
|
5
|
+
* per task execution. Format mirrors cli-bak TaskManagementService for
|
|
6
|
+
* backward compatibility.
|
|
7
|
+
*
|
|
8
|
+
* File name: {YYYYMMDDTHHmmss}_{traceId}.log
|
|
9
|
+
* e.g. 20260412T145044_tsk_AbCdEfGh.log
|
|
10
|
+
*/
|
|
11
|
+
import { CrewxPlugin } from '../plugin';
|
|
12
|
+
import type { Crewx } from '../facade/Crewx';
|
|
13
|
+
export interface FileLoggerPluginOptions {
|
|
14
|
+
/** Root directory under which `.crewx/logs/` will be created. Defaults to `process.cwd()`. */
|
|
15
|
+
workspaceRoot?: string;
|
|
16
|
+
/** Caller-provided version string written into the log header. Defaults to `'unknown'`. */
|
|
17
|
+
version?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class FileLoggerPlugin extends CrewxPlugin {
|
|
20
|
+
readonly name = "file-logger";
|
|
21
|
+
private unsubs;
|
|
22
|
+
private logFiles;
|
|
23
|
+
private readonly logsDir;
|
|
24
|
+
private readonly version;
|
|
25
|
+
constructor(opts?: FileLoggerPluginOptions);
|
|
26
|
+
attach(crewx: Crewx): void;
|
|
27
|
+
detach(_crewx: Crewx): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=file-logger.d.ts.map
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* FileLoggerPlugin — writes structured log files to .crewx/logs/.
|
|
4
|
+
*
|
|
5
|
+
* Subscribes to task:start and task:end events and writes one log file
|
|
6
|
+
* per task execution. Format mirrors cli-bak TaskManagementService for
|
|
7
|
+
* backward compatibility.
|
|
8
|
+
*
|
|
9
|
+
* File name: {YYYYMMDDTHHmmss}_{traceId}.log
|
|
10
|
+
* e.g. 20260412T145044_tsk_AbCdEfGh.log
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.FileLoggerPlugin = void 0;
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const path_1 = require("path");
|
|
16
|
+
const plugin_1 = require("../plugin");
|
|
17
|
+
const timestamp_1 = require("../utils/timestamp");
|
|
18
|
+
class FileLoggerPlugin extends plugin_1.CrewxPlugin {
|
|
19
|
+
name = 'file-logger';
|
|
20
|
+
unsubs = [];
|
|
21
|
+
logFiles = new Map();
|
|
22
|
+
logsDir;
|
|
23
|
+
version;
|
|
24
|
+
constructor(opts) {
|
|
25
|
+
super();
|
|
26
|
+
this.logsDir = (0, path_1.join)(opts?.workspaceRoot ?? process.cwd(), '.crewx', 'logs');
|
|
27
|
+
this.version = opts?.version ?? 'unknown';
|
|
28
|
+
}
|
|
29
|
+
attach(crewx) {
|
|
30
|
+
this.unsubs.push(crewx.on('task:start', (event) => {
|
|
31
|
+
try {
|
|
32
|
+
if (!(0, fs_1.existsSync)(this.logsDir)) {
|
|
33
|
+
(0, fs_1.mkdirSync)(this.logsDir, { recursive: true });
|
|
34
|
+
}
|
|
35
|
+
const ts = (0, timestamp_1.formatTimestamp)(event.timestamp);
|
|
36
|
+
const logFile = (0, path_1.join)(this.logsDir, `${ts}_${event.traceId}.log`);
|
|
37
|
+
this.logFiles.set(event.traceId, logFile);
|
|
38
|
+
const header = `=== TASK LOG: ${event.traceId} ===\n` +
|
|
39
|
+
`CrewX Version: ${this.version}\n` +
|
|
40
|
+
`Mode: ${event.mode}\n` +
|
|
41
|
+
`Agent: ${event.agentRef}\n` +
|
|
42
|
+
`Started: ${event.timestamp.toLocaleString()}\n` +
|
|
43
|
+
`Message: ${event.message}\n` +
|
|
44
|
+
`\n`;
|
|
45
|
+
(0, fs_1.writeFileSync)(logFile, header, { encoding: 'utf8', mode: 0o600 });
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Non-fatal: logging must never crash the main process
|
|
49
|
+
}
|
|
50
|
+
}), crewx.on('task:output', (event) => {
|
|
51
|
+
try {
|
|
52
|
+
const logFile = this.logFiles.get(event.traceId);
|
|
53
|
+
if (!logFile)
|
|
54
|
+
return;
|
|
55
|
+
const ts = new Date().toISOString();
|
|
56
|
+
(0, fs_1.appendFileSync)(logFile, `[${ts}] STDOUT: ${event.output}\n`, 'utf8');
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Non-fatal
|
|
60
|
+
}
|
|
61
|
+
}), crewx.on('task:end', (event) => {
|
|
62
|
+
try {
|
|
63
|
+
const logFile = this.logFiles.get(event.traceId);
|
|
64
|
+
if (!logFile)
|
|
65
|
+
return;
|
|
66
|
+
const ts = new Date().toLocaleString();
|
|
67
|
+
const status = event.error
|
|
68
|
+
? `failed: ${event.error.message}`
|
|
69
|
+
: 'completed successfully';
|
|
70
|
+
const completion = `[${ts}] INFO: Task ${status} in ${event.durationMs}ms\n` +
|
|
71
|
+
`[${ts}] INFO: Process closed with exit code: ${event.error ? 1 : 0}\n`;
|
|
72
|
+
(0, fs_1.appendFileSync)(logFile, completion, 'utf8');
|
|
73
|
+
this.logFiles.delete(event.traceId);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Non-fatal
|
|
77
|
+
}
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
detach(_crewx) {
|
|
81
|
+
this.unsubs.forEach(fn => fn());
|
|
82
|
+
this.unsubs = [];
|
|
83
|
+
this.logFiles.clear();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.FileLoggerPlugin = FileLoggerPlugin;
|
|
87
|
+
//# sourceMappingURL=file-logger.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @crewx/sdk/plugins — Optional plugins for advanced runtime features.
|
|
3
|
+
*
|
|
4
|
+
* These plugins depend on Node.js APIs (fs, path, sqlite) and are kept out
|
|
5
|
+
* of the main `@crewx/sdk` entry to avoid bundling them into browser builds.
|
|
6
|
+
* Consumers must explicitly import from this subpath:
|
|
7
|
+
*
|
|
8
|
+
* import { FileLoggerPlugin, SqliteTracingPlugin } from '@crewx/sdk/plugins';
|
|
9
|
+
*/
|
|
10
|
+
export { FileLoggerPlugin } from './file-logger';
|
|
11
|
+
export type { FileLoggerPluginOptions } from './file-logger';
|
|
12
|
+
export { SqliteTracingPlugin } from './sqlite-tracing';
|
|
13
|
+
export type { SqliteTracingPluginOptions } from './sqlite-tracing';
|
|
14
|
+
export { ConversationPlugin } from './conversation';
|
|
15
|
+
export type { ConversationPluginOptions } from './conversation';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @crewx/sdk/plugins — Optional plugins for advanced runtime features.
|
|
4
|
+
*
|
|
5
|
+
* These plugins depend on Node.js APIs (fs, path, sqlite) and are kept out
|
|
6
|
+
* of the main `@crewx/sdk` entry to avoid bundling them into browser builds.
|
|
7
|
+
* Consumers must explicitly import from this subpath:
|
|
8
|
+
*
|
|
9
|
+
* import { FileLoggerPlugin, SqliteTracingPlugin } from '@crewx/sdk/plugins';
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ConversationPlugin = exports.SqliteTracingPlugin = exports.FileLoggerPlugin = void 0;
|
|
13
|
+
var file_logger_1 = require("./file-logger");
|
|
14
|
+
Object.defineProperty(exports, "FileLoggerPlugin", { enumerable: true, get: function () { return file_logger_1.FileLoggerPlugin; } });
|
|
15
|
+
var sqlite_tracing_1 = require("./sqlite-tracing");
|
|
16
|
+
Object.defineProperty(exports, "SqliteTracingPlugin", { enumerable: true, get: function () { return sqlite_tracing_1.SqliteTracingPlugin; } });
|
|
17
|
+
var conversation_1 = require("./conversation");
|
|
18
|
+
Object.defineProperty(exports, "ConversationPlugin", { enumerable: true, get: function () { return conversation_1.ConversationPlugin; } });
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SqliteTracingPlugin — records task execution data to ~/.crewx/crewx.db.
|
|
3
|
+
*
|
|
4
|
+
* Subscribes to task:start, task:output, and task:end events and persists
|
|
5
|
+
* full records to the global CrewX SQLite database. Matches the schema
|
|
6
|
+
* written by the global crewx CLI (0.8.x).
|
|
7
|
+
*
|
|
8
|
+
* DB location: {dbRoot}/.crewx/crewx.db
|
|
9
|
+
* (dbRoot defaults to os.homedir())
|
|
10
|
+
*/
|
|
11
|
+
import { CrewxPlugin } from '../plugin';
|
|
12
|
+
import type { Crewx } from '../facade/Crewx';
|
|
13
|
+
export interface SqliteTracingPluginOptions {
|
|
14
|
+
/** Root directory under which `.crewx/crewx.db` will be created. Defaults to `os.homedir()`. */
|
|
15
|
+
dbRoot?: string;
|
|
16
|
+
/** Caller-provided version string written into the `crewx_version` column. Defaults to `'unknown'`. */
|
|
17
|
+
version?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class SqliteTracingPlugin extends CrewxPlugin {
|
|
20
|
+
readonly name = "sqlite-tracing";
|
|
21
|
+
private db;
|
|
22
|
+
private unsubs;
|
|
23
|
+
private readonly dbPath;
|
|
24
|
+
private readonly version;
|
|
25
|
+
constructor(opts?: SqliteTracingPluginOptions);
|
|
26
|
+
attach(crewx: Crewx): void;
|
|
27
|
+
detach(_crewx: Crewx): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=sqlite-tracing.d.ts.map
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SqliteTracingPlugin — records task execution data to ~/.crewx/crewx.db.
|
|
4
|
+
*
|
|
5
|
+
* Subscribes to task:start, task:output, and task:end events and persists
|
|
6
|
+
* full records to the global CrewX SQLite database. Matches the schema
|
|
7
|
+
* written by the global crewx CLI (0.8.x).
|
|
8
|
+
*
|
|
9
|
+
* DB location: {dbRoot}/.crewx/crewx.db
|
|
10
|
+
* (dbRoot defaults to os.homedir())
|
|
11
|
+
*/
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.SqliteTracingPlugin = void 0;
|
|
17
|
+
const fs_1 = require("fs");
|
|
18
|
+
const path_1 = require("path");
|
|
19
|
+
const os_1 = require("os");
|
|
20
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
21
|
+
const plugin_1 = require("../plugin");
|
|
22
|
+
const workspace_1 = require("../utils/workspace");
|
|
23
|
+
/** Detect host AI caller agent ID from environment (set by parent crewx process). */
|
|
24
|
+
function detectCallerAgentId() {
|
|
25
|
+
return process.env['CREWX_CALLER_AGENT_ID'] ?? null;
|
|
26
|
+
}
|
|
27
|
+
class SqliteTracingPlugin extends plugin_1.CrewxPlugin {
|
|
28
|
+
name = 'sqlite-tracing';
|
|
29
|
+
db = null;
|
|
30
|
+
unsubs = [];
|
|
31
|
+
dbPath;
|
|
32
|
+
version;
|
|
33
|
+
constructor(opts) {
|
|
34
|
+
super();
|
|
35
|
+
this.dbPath = (0, path_1.join)(opts?.dbRoot ?? (0, os_1.homedir)(), '.crewx', 'crewx.db');
|
|
36
|
+
this.version = opts?.version ?? 'unknown';
|
|
37
|
+
}
|
|
38
|
+
attach(crewx) {
|
|
39
|
+
// Ensure parent directory exists
|
|
40
|
+
const dbDir = (0, path_1.dirname)(this.dbPath);
|
|
41
|
+
if (!(0, fs_1.existsSync)(dbDir)) {
|
|
42
|
+
(0, fs_1.mkdirSync)(dbDir, { recursive: true });
|
|
43
|
+
}
|
|
44
|
+
this.db = new better_sqlite3_1.default(this.dbPath);
|
|
45
|
+
// Fallback workspace only when crewx.yaml/.yml exists in cwd — prevents phantom workspace entries
|
|
46
|
+
const cwd = process.cwd();
|
|
47
|
+
const yamlExists = (0, fs_1.existsSync)((0, path_1.join)(cwd, 'crewx.yaml')) || (0, fs_1.existsSync)((0, path_1.join)(cwd, 'crewx.yml'));
|
|
48
|
+
const fallbackWorkspaceId = yamlExists ? (0, workspace_1.hashWorkspaceId)(cwd) : null;
|
|
49
|
+
const fallbackWorkspaceName = yamlExists ? (0, path_1.basename)(cwd) : null;
|
|
50
|
+
const callerAgentId = detectCallerAgentId();
|
|
51
|
+
const command = process.argv.join(' ');
|
|
52
|
+
this.unsubs.push(crewx.on('task:start', (event) => {
|
|
53
|
+
try {
|
|
54
|
+
const metadata = event.metadata
|
|
55
|
+
? JSON.stringify(event.metadata)
|
|
56
|
+
: JSON.stringify({ provider: event.provider ?? 'cli/claude' });
|
|
57
|
+
this.db.prepare(`INSERT OR IGNORE INTO tasks
|
|
58
|
+
(id, agent_id, prompt, mode, status, pid, started_at,
|
|
59
|
+
crewx_version, platform,
|
|
60
|
+
model, rendered_prompt, command, coding_agent_command,
|
|
61
|
+
workspace_id, workspace_name,
|
|
62
|
+
caller_agent_id, trace_id, metadata, thread_id)
|
|
63
|
+
VALUES (?, ?, ?, ?, 'running', ?, ?,
|
|
64
|
+
?, ?,
|
|
65
|
+
?, ?, ?, ?,
|
|
66
|
+
?, ?,
|
|
67
|
+
?, ?, ?, ?)`).run(event.traceId, event.agentRef.replace(/^@/, ''), event.message, event.mode, event.pid ?? null, event.timestamp.toISOString(), this.version, event.platform ?? 'cli', event.model ?? null, event.renderedPrompt ?? null, command, event.codingAgentCommand ?? null, event.workspaceId ?? fallbackWorkspaceId, event.workspaceName ?? fallbackWorkspaceName, callerAgentId, event.traceId, // trace_id mirrors the task id for root requests
|
|
68
|
+
metadata, event.threadId ?? null);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Non-fatal: tracing must never crash the main process
|
|
72
|
+
}
|
|
73
|
+
}), crewx.on('task:output', (event) => {
|
|
74
|
+
try {
|
|
75
|
+
const row = this.db.prepare('SELECT logs FROM tasks WHERE id=?').get(event.traceId);
|
|
76
|
+
const existing = row?.logs ? JSON.parse(row.logs) : [];
|
|
77
|
+
existing.push({
|
|
78
|
+
timestamp: event.timestamp.toISOString(),
|
|
79
|
+
level: event.level ?? 'stdout',
|
|
80
|
+
message: event.output,
|
|
81
|
+
});
|
|
82
|
+
this.db.prepare('UPDATE tasks SET logs=? WHERE id=?').run(JSON.stringify(existing), event.traceId);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Non-fatal
|
|
86
|
+
}
|
|
87
|
+
}), crewx.on('task:end', (event) => {
|
|
88
|
+
try {
|
|
89
|
+
const status = event.error ? 'failed' : 'success';
|
|
90
|
+
this.db.prepare(`UPDATE tasks
|
|
91
|
+
SET status=?, result=?, error=?,
|
|
92
|
+
completed_at=?, duration_ms=?,
|
|
93
|
+
exit_code=?,
|
|
94
|
+
input_tokens=?, output_tokens=?, cached_input_tokens=?,
|
|
95
|
+
cost_usd=?,
|
|
96
|
+
model=COALESCE(?, model)
|
|
97
|
+
WHERE id=?`).run(status, event.result ?? null, event.error ? JSON.stringify(event.error) : null, event.timestamp.toISOString(), event.durationMs, event.exitCode ?? null, event.inputTokens ?? 0, event.outputTokens ?? 0, event.cachedInputTokens ?? 0, event.costUsd ?? 0, event.model ?? null, event.traceId);
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Non-fatal
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
detach(_crewx) {
|
|
105
|
+
this.unsubs.forEach(fn => fn());
|
|
106
|
+
this.unsubs = [];
|
|
107
|
+
this.db?.close();
|
|
108
|
+
this.db = null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.SqliteTracingPlugin = SqliteTracingPlugin;
|
|
112
|
+
//# sourceMappingURL=sqlite-tracing.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe provider bridge.
|
|
3
|
+
* Registry pattern only — no child_process / CLI spawn.
|
|
4
|
+
*/
|
|
5
|
+
export declare class ProviderError extends Error {
|
|
6
|
+
readonly providerStr: string;
|
|
7
|
+
constructor(message: string, providerStr: string);
|
|
8
|
+
}
|
|
9
|
+
/** Factory function that creates a ProviderRuntime for a given provider id within a namespace. */
|
|
10
|
+
export type ProviderFactory = (id: string, providerStr: string) => ProviderRuntime;
|
|
11
|
+
/** Usage data extracted from provider output. */
|
|
12
|
+
export interface ProviderUsage {
|
|
13
|
+
inputTokens: number;
|
|
14
|
+
outputTokens: number;
|
|
15
|
+
cachedInputTokens: number;
|
|
16
|
+
costUsd: number;
|
|
17
|
+
}
|
|
18
|
+
export interface ProviderQueryOptions {
|
|
19
|
+
model?: string;
|
|
20
|
+
context?: string;
|
|
21
|
+
systemPrompt?: string;
|
|
22
|
+
additionalArgs?: string[];
|
|
23
|
+
onOutput?: (line: string, level: 'stdout' | 'stderr') => void;
|
|
24
|
+
onPid?: (pid: number) => void;
|
|
25
|
+
onCommand?: (command: string) => void;
|
|
26
|
+
onUsage?: (usage: ProviderUsage) => void;
|
|
27
|
+
onExitCode?: (code: number) => void;
|
|
28
|
+
onModel?: (model: string) => void;
|
|
29
|
+
}
|
|
30
|
+
export interface ProviderRuntime {
|
|
31
|
+
query(message: string, options?: ProviderQueryOptions): Promise<string>;
|
|
32
|
+
execute(message: string, options?: ProviderQueryOptions): Promise<string>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Register a provider factory for a given namespace.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* registerProviderFactory('api', (id, providerStr) => ({
|
|
39
|
+
* async query(message, options) { ... },
|
|
40
|
+
* async execute(message, options) { ... },
|
|
41
|
+
* }));
|
|
42
|
+
*/
|
|
43
|
+
export declare function registerProviderFactory(namespace: string, factory: ProviderFactory): void;
|
|
44
|
+
/**
|
|
45
|
+
* Create a provider runtime for the given provider string.
|
|
46
|
+
* Browser version — only supports registered factories (no CLI fallback).
|
|
47
|
+
*/
|
|
48
|
+
export declare function createProvider(providerStr: string): ProviderRuntime;
|
|
49
|
+
//# sourceMappingURL=bridge.browser.d.ts.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Browser-safe provider bridge.
|
|
4
|
+
* Registry pattern only — no child_process / CLI spawn.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ProviderError = void 0;
|
|
8
|
+
exports.registerProviderFactory = registerProviderFactory;
|
|
9
|
+
exports.createProvider = createProvider;
|
|
10
|
+
class ProviderError extends Error {
|
|
11
|
+
providerStr;
|
|
12
|
+
constructor(message, providerStr) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.providerStr = providerStr;
|
|
15
|
+
this.name = 'ProviderError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ProviderError = ProviderError;
|
|
19
|
+
// ── Provider factory registry ───────────────────────────────────────────────
|
|
20
|
+
const _providerFactories = new Map();
|
|
21
|
+
/**
|
|
22
|
+
* Register a provider factory for a given namespace.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* registerProviderFactory('api', (id, providerStr) => ({
|
|
26
|
+
* async query(message, options) { ... },
|
|
27
|
+
* async execute(message, options) { ... },
|
|
28
|
+
* }));
|
|
29
|
+
*/
|
|
30
|
+
function registerProviderFactory(namespace, factory) {
|
|
31
|
+
_providerFactories.set(namespace, factory);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a provider runtime for the given provider string.
|
|
35
|
+
* Browser version — only supports registered factories (no CLI fallback).
|
|
36
|
+
*/
|
|
37
|
+
function createProvider(providerStr) {
|
|
38
|
+
const parts = providerStr.split('/');
|
|
39
|
+
if (parts.length !== 2) {
|
|
40
|
+
throw new ProviderError(`Invalid provider format: "${providerStr}". Expected namespace/id (e.g., api/webllm)`, providerStr);
|
|
41
|
+
}
|
|
42
|
+
const [namespace, id] = parts;
|
|
43
|
+
const factory = _providerFactories.get(namespace);
|
|
44
|
+
if (factory) {
|
|
45
|
+
return factory(id, providerStr);
|
|
46
|
+
}
|
|
47
|
+
throw new ProviderError(`Unsupported provider namespace: "${namespace}". Register a factory with registerProviderFactory('${namespace}', factory).`, providerStr);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=bridge.browser.js.map
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider bridge: creates a runtime that can invoke AI providers.
|
|
3
|
+
*
|
|
4
|
+
* Supports a registry pattern — built-in cli/* providers are registered by default,
|
|
5
|
+
* and additional namespaces (e.g. api/*, webllm/*) can be added via registerProviderFactory().
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseStreamJsonOutput(raw: string): string;
|
|
8
|
+
export declare function parseResultEventUsage(raw: string): ProviderUsage | null;
|
|
9
|
+
export declare class ProviderError extends Error {
|
|
10
|
+
readonly providerStr: string;
|
|
11
|
+
constructor(message: string, providerStr: string);
|
|
12
|
+
}
|
|
13
|
+
/** Describes a pending client-side tool call that requires external execution. */
|
|
14
|
+
export interface ClientToolCall {
|
|
15
|
+
toolCallId: string;
|
|
16
|
+
toolName: string;
|
|
17
|
+
args: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
/** Opaque state needed to resume a conversation after a client tool call. */
|
|
20
|
+
export interface ContinuationState {
|
|
21
|
+
userMessage: string;
|
|
22
|
+
responseMessages: unknown[];
|
|
23
|
+
toolDefinitions: import('../facade/Crewx').ToolDefinition[];
|
|
24
|
+
maxSteps: number;
|
|
25
|
+
systemPrompt?: string;
|
|
26
|
+
modelOverride?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Thrown by VercelProviderRuntime when generateText() encounters a tool without
|
|
30
|
+
* an execute function (client tool). The caller should return requires_action
|
|
31
|
+
* to the client, collect the tool result, and call continueWithToolResults().
|
|
32
|
+
*/
|
|
33
|
+
export declare class ClientToolCallRequiredError extends Error {
|
|
34
|
+
readonly toolCall: ClientToolCall;
|
|
35
|
+
readonly continuationState: ContinuationState;
|
|
36
|
+
readonly name = "ClientToolCallRequiredError";
|
|
37
|
+
constructor(toolCall: ClientToolCall, continuationState: ContinuationState);
|
|
38
|
+
}
|
|
39
|
+
/** Factory function that creates a ProviderRuntime for a given provider id within a namespace. */
|
|
40
|
+
export type ProviderFactory = (id: string, providerStr: string) => ProviderRuntime;
|
|
41
|
+
/**
|
|
42
|
+
* Register a provider factory for a given namespace.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* // Register an API-based provider namespace
|
|
46
|
+
* registerProviderFactory('api', (id, providerStr) => new MyApiProvider(id));
|
|
47
|
+
*
|
|
48
|
+
* // Now createProvider('api/claude') works
|
|
49
|
+
* const provider = createProvider('api/claude');
|
|
50
|
+
*/
|
|
51
|
+
export declare function registerProviderFactory(namespace: string, factory: ProviderFactory): void;
|
|
52
|
+
/** Usage data extracted from provider stream-json output. */
|
|
53
|
+
export interface ProviderUsage {
|
|
54
|
+
inputTokens: number;
|
|
55
|
+
outputTokens: number;
|
|
56
|
+
cachedInputTokens: number;
|
|
57
|
+
costUsd: number;
|
|
58
|
+
}
|
|
59
|
+
export interface ProviderQueryOptions {
|
|
60
|
+
model?: string;
|
|
61
|
+
context?: string;
|
|
62
|
+
systemPrompt?: string;
|
|
63
|
+
/** Provider-specific CLI args from agent config (e.g. ['exec', '--json'] for codex). Replaces hardcoded defaults when provided. */
|
|
64
|
+
additionalArgs?: string[];
|
|
65
|
+
/** Called with each completed output line from the provider process. */
|
|
66
|
+
onOutput?: (line: string, level: 'stdout' | 'stderr') => void;
|
|
67
|
+
/** Called once with the child process PID, right after spawn. */
|
|
68
|
+
onPid?: (pid: number) => void;
|
|
69
|
+
/** Called with the full CLI command string (e.g. "claude -p ... --output-format stream-json"). */
|
|
70
|
+
onCommand?: (command: string) => void;
|
|
71
|
+
/** Called with token usage once the result event is parsed. */
|
|
72
|
+
onUsage?: (usage: ProviderUsage) => void;
|
|
73
|
+
/** Called with the process exit code on close. */
|
|
74
|
+
onExitCode?: (code: number) => void;
|
|
75
|
+
/** Called with the actual model used (from result event's modelUsage key). */
|
|
76
|
+
onModel?: (model: string) => void;
|
|
77
|
+
/** CREWX_* env vars injected by facade for hook context propagation */
|
|
78
|
+
env?: Record<string, string>;
|
|
79
|
+
/** Working directory for CLI provider process (overrides process.cwd). Used by file:// remote delegation. */
|
|
80
|
+
cwd?: string;
|
|
81
|
+
/** Vercel AI SDK에 주입할 tools. registerTool()로 등록한 것 중 필터링된 목록. */
|
|
82
|
+
tools?: import('../facade/Crewx').ToolDefinition[];
|
|
83
|
+
/** Agent generate() 최대 반복 횟수. 기본값 10, 최대 50. */
|
|
84
|
+
maxSteps?: number;
|
|
85
|
+
}
|
|
86
|
+
export interface ProviderRuntime {
|
|
87
|
+
query(message: string, options?: ProviderQueryOptions): Promise<string>;
|
|
88
|
+
execute(message: string, options?: ProviderQueryOptions): Promise<string>;
|
|
89
|
+
/** Resume a conversation after providing client-side tool results. Only implemented by API providers. */
|
|
90
|
+
continueWithToolResults?(continuationState: ContinuationState, toolResults: Array<{
|
|
91
|
+
toolCallId: string;
|
|
92
|
+
toolName: string;
|
|
93
|
+
result: unknown;
|
|
94
|
+
}>, options?: ProviderQueryOptions): Promise<string>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create a provider runtime for the given provider string.
|
|
98
|
+
*
|
|
99
|
+
* Looks up the namespace in the provider registry first.
|
|
100
|
+
* Falls back to built-in cli/* providers for backward compatibility.
|
|
101
|
+
*
|
|
102
|
+
* @param providerStr - Provider string in namespace/id format (e.g., 'cli/claude', 'api/claude')
|
|
103
|
+
* @throws ProviderError for unknown or unsupported providers
|
|
104
|
+
*/
|
|
105
|
+
export declare function createProvider(providerStr: string): ProviderRuntime;
|
|
106
|
+
//# sourceMappingURL=bridge.d.ts.map
|