claude-code-workflow 6.2.2 → 6.2.3
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/ccw/dist/cli.d.ts +2 -0
- package/ccw/dist/cli.d.ts.map +1 -0
- package/ccw/dist/cli.js +219 -0
- package/ccw/dist/cli.js.map +1 -0
- package/ccw/dist/commands/cli.d.ts +32 -0
- package/ccw/dist/commands/cli.d.ts.map +1 -0
- package/ccw/dist/commands/cli.js +619 -0
- package/ccw/dist/commands/cli.js.map +1 -0
- package/ccw/dist/commands/core-memory.d.ts +32 -0
- package/ccw/dist/commands/core-memory.d.ts.map +1 -0
- package/ccw/dist/commands/core-memory.js +640 -0
- package/ccw/dist/commands/core-memory.js.map +1 -0
- package/ccw/dist/commands/hook.d.ts +16 -0
- package/ccw/dist/commands/hook.d.ts.map +1 -0
- package/ccw/dist/commands/hook.js +276 -0
- package/ccw/dist/commands/hook.js.map +1 -0
- package/ccw/dist/commands/install.d.ts +12 -0
- package/ccw/dist/commands/install.d.ts.map +1 -0
- package/ccw/dist/commands/install.js +443 -0
- package/ccw/dist/commands/install.js.map +1 -0
- package/ccw/dist/commands/list.d.ts +5 -0
- package/ccw/dist/commands/list.d.ts.map +1 -0
- package/ccw/dist/commands/list.js +32 -0
- package/ccw/dist/commands/list.js.map +1 -0
- package/ccw/dist/commands/memory.d.ts +57 -0
- package/ccw/dist/commands/memory.d.ts.map +1 -0
- package/ccw/dist/commands/memory.js +890 -0
- package/ccw/dist/commands/memory.js.map +1 -0
- package/ccw/dist/commands/serve.d.ts +12 -0
- package/ccw/dist/commands/serve.d.ts.map +1 -0
- package/ccw/dist/commands/serve.js +63 -0
- package/ccw/dist/commands/serve.js.map +1 -0
- package/ccw/dist/commands/session-path-resolver.d.ts +45 -0
- package/ccw/dist/commands/session-path-resolver.d.ts.map +1 -0
- package/ccw/dist/commands/session-path-resolver.js +302 -0
- package/ccw/dist/commands/session-path-resolver.js.map +1 -0
- package/ccw/dist/commands/session.d.ts +12 -0
- package/ccw/dist/commands/session.d.ts.map +1 -0
- package/ccw/dist/commands/session.js +954 -0
- package/ccw/dist/commands/session.js.map +1 -0
- package/ccw/dist/commands/stop.d.ts +11 -0
- package/ccw/dist/commands/stop.d.ts.map +1 -0
- package/ccw/dist/commands/stop.js +96 -0
- package/ccw/dist/commands/stop.js.map +1 -0
- package/ccw/dist/commands/tool.d.ts +29 -0
- package/ccw/dist/commands/tool.d.ts.map +1 -0
- package/ccw/dist/commands/tool.js +173 -0
- package/ccw/dist/commands/tool.js.map +1 -0
- package/ccw/dist/commands/uninstall.d.ts +9 -0
- package/ccw/dist/commands/uninstall.d.ts.map +1 -0
- package/ccw/dist/commands/uninstall.js +239 -0
- package/ccw/dist/commands/uninstall.js.map +1 -0
- package/ccw/dist/commands/upgrade.d.ts +10 -0
- package/ccw/dist/commands/upgrade.d.ts.map +1 -0
- package/ccw/dist/commands/upgrade.js +288 -0
- package/ccw/dist/commands/upgrade.js.map +1 -0
- package/ccw/dist/commands/view.d.ts +14 -0
- package/ccw/dist/commands/view.d.ts.map +1 -0
- package/ccw/dist/commands/view.js +100 -0
- package/ccw/dist/commands/view.js.map +1 -0
- package/ccw/dist/config/storage-paths.d.ts +184 -0
- package/ccw/dist/config/storage-paths.d.ts.map +1 -0
- package/ccw/dist/config/storage-paths.js +536 -0
- package/ccw/dist/config/storage-paths.js.map +1 -0
- package/ccw/dist/core/cache-manager.d.ts +80 -0
- package/ccw/dist/core/cache-manager.d.ts.map +1 -0
- package/ccw/dist/core/cache-manager.js +260 -0
- package/ccw/dist/core/cache-manager.js.map +1 -0
- package/ccw/dist/core/claude-freshness.d.ts +53 -0
- package/ccw/dist/core/claude-freshness.d.ts.map +1 -0
- package/ccw/dist/core/claude-freshness.js +232 -0
- package/ccw/dist/core/claude-freshness.js.map +1 -0
- package/ccw/dist/core/core-memory-store.d.ts +320 -0
- package/ccw/dist/core/core-memory-store.d.ts.map +1 -0
- package/ccw/dist/core/core-memory-store.js +1177 -0
- package/ccw/dist/core/core-memory-store.js.map +1 -0
- package/ccw/dist/core/dashboard-generator-patch.d.ts +2 -0
- package/ccw/dist/core/dashboard-generator-patch.d.ts.map +1 -0
- package/ccw/dist/core/dashboard-generator-patch.js +48 -0
- package/ccw/dist/core/dashboard-generator-patch.js.map +1 -0
- package/ccw/dist/core/dashboard-generator.d.ts +8 -0
- package/ccw/dist/core/dashboard-generator.d.ts.map +1 -0
- package/ccw/dist/core/dashboard-generator.js +695 -0
- package/ccw/dist/core/dashboard-generator.js.map +1 -0
- package/ccw/dist/core/data-aggregator.d.ts +145 -0
- package/ccw/dist/core/data-aggregator.d.ts.map +1 -0
- package/ccw/dist/core/data-aggregator.js +416 -0
- package/ccw/dist/core/data-aggregator.js.map +1 -0
- package/ccw/dist/core/history-importer.d.ts +102 -0
- package/ccw/dist/core/history-importer.d.ts.map +1 -0
- package/ccw/dist/core/history-importer.js +493 -0
- package/ccw/dist/core/history-importer.js.map +1 -0
- package/ccw/dist/core/lite-scanner-complete.d.ts +81 -0
- package/ccw/dist/core/lite-scanner-complete.d.ts.map +1 -0
- package/ccw/dist/core/lite-scanner-complete.js +368 -0
- package/ccw/dist/core/lite-scanner-complete.js.map +1 -0
- package/ccw/dist/core/lite-scanner.d.ts +81 -0
- package/ccw/dist/core/lite-scanner.d.ts.map +1 -0
- package/ccw/dist/core/lite-scanner.js +368 -0
- package/ccw/dist/core/lite-scanner.js.map +1 -0
- package/ccw/dist/core/manifest.d.ts +88 -0
- package/ccw/dist/core/manifest.d.ts.map +1 -0
- package/ccw/dist/core/manifest.js +214 -0
- package/ccw/dist/core/manifest.js.map +1 -0
- package/ccw/dist/core/memory-embedder-bridge.d.ts +83 -0
- package/ccw/dist/core/memory-embedder-bridge.d.ts.map +1 -0
- package/ccw/dist/core/memory-embedder-bridge.js +181 -0
- package/ccw/dist/core/memory-embedder-bridge.js.map +1 -0
- package/ccw/dist/core/memory-store.d.ts +249 -0
- package/ccw/dist/core/memory-store.d.ts.map +1 -0
- package/ccw/dist/core/memory-store.js +781 -0
- package/ccw/dist/core/memory-store.js.map +1 -0
- package/ccw/dist/core/routes/ccw-routes.d.ts +20 -0
- package/ccw/dist/core/routes/ccw-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/ccw-routes.js +70 -0
- package/ccw/dist/core/routes/ccw-routes.js.map +1 -0
- package/ccw/dist/core/routes/claude-routes.d.ts +19 -0
- package/ccw/dist/core/routes/claude-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/claude-routes.js +1017 -0
- package/ccw/dist/core/routes/claude-routes.js.map +1 -0
- package/ccw/dist/core/routes/cli-routes.d.ts +20 -0
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/cli-routes.js +468 -0
- package/ccw/dist/core/routes/cli-routes.js.map +1 -0
- package/ccw/dist/core/routes/codexlens-routes.d.ts +20 -0
- package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/codexlens-routes.js +754 -0
- package/ccw/dist/core/routes/codexlens-routes.js.map +1 -0
- package/ccw/dist/core/routes/core-memory-routes.d.ts +21 -0
- package/ccw/dist/core/routes/core-memory-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/core-memory-routes.js +520 -0
- package/ccw/dist/core/routes/core-memory-routes.js.map +1 -0
- package/ccw/dist/core/routes/files-routes.d.ts +20 -0
- package/ccw/dist/core/routes/files-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/files-routes.js +374 -0
- package/ccw/dist/core/routes/files-routes.js.map +1 -0
- package/ccw/dist/core/routes/graph-routes.d.ts +20 -0
- package/ccw/dist/core/routes/graph-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/graph-routes.js +517 -0
- package/ccw/dist/core/routes/graph-routes.js.map +1 -0
- package/ccw/dist/core/routes/help-routes.d.ts +20 -0
- package/ccw/dist/core/routes/help-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/help-routes.js +250 -0
- package/ccw/dist/core/routes/help-routes.js.map +1 -0
- package/ccw/dist/core/routes/hooks-routes.d.ts +21 -0
- package/ccw/dist/core/routes/hooks-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/hooks-routes.js +346 -0
- package/ccw/dist/core/routes/hooks-routes.js.map +1 -0
- package/ccw/dist/core/routes/mcp-routes.d.ts +20 -0
- package/ccw/dist/core/routes/mcp-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/mcp-routes.js +1129 -0
- package/ccw/dist/core/routes/mcp-routes.js.map +1 -0
- package/ccw/dist/core/routes/mcp-templates-db.d.ts +54 -0
- package/ccw/dist/core/routes/mcp-templates-db.d.ts.map +1 -0
- package/ccw/dist/core/routes/mcp-templates-db.js +226 -0
- package/ccw/dist/core/routes/mcp-templates-db.js.map +1 -0
- package/ccw/dist/core/routes/memory-routes.d.ts +21 -0
- package/ccw/dist/core/routes/memory-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/memory-routes.js +1095 -0
- package/ccw/dist/core/routes/memory-routes.js.map +1 -0
- package/ccw/dist/core/routes/rules-routes.d.ts +20 -0
- package/ccw/dist/core/routes/rules-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/rules-routes.js +442 -0
- package/ccw/dist/core/routes/rules-routes.js.map +1 -0
- package/ccw/dist/core/routes/session-routes.d.ts +20 -0
- package/ccw/dist/core/routes/session-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/session-routes.js +423 -0
- package/ccw/dist/core/routes/session-routes.js.map +1 -0
- package/ccw/dist/core/routes/skills-routes.d.ts +20 -0
- package/ccw/dist/core/routes/skills-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/skills-routes.js +533 -0
- package/ccw/dist/core/routes/skills-routes.js.map +1 -0
- package/ccw/dist/core/routes/status-routes.d.ts +20 -0
- package/ccw/dist/core/routes/status-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/status-routes.js +38 -0
- package/ccw/dist/core/routes/status-routes.js.map +1 -0
- package/ccw/dist/core/routes/system-routes.d.ts +22 -0
- package/ccw/dist/core/routes/system-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/system-routes.js +354 -0
- package/ccw/dist/core/routes/system-routes.js.map +1 -0
- package/ccw/dist/core/server.d.ts +17 -0
- package/ccw/dist/core/server.d.ts.map +1 -0
- package/ccw/dist/core/server.js +386 -0
- package/ccw/dist/core/server.js.map +1 -0
- package/ccw/dist/core/session-clustering-service.d.ts +153 -0
- package/ccw/dist/core/session-clustering-service.d.ts.map +1 -0
- package/ccw/dist/core/session-clustering-service.js +1065 -0
- package/ccw/dist/core/session-clustering-service.js.map +1 -0
- package/ccw/dist/core/session-scanner.d.ts +32 -0
- package/ccw/dist/core/session-scanner.d.ts.map +1 -0
- package/ccw/dist/core/session-scanner.js +253 -0
- package/ccw/dist/core/session-scanner.js.map +1 -0
- package/ccw/dist/core/websocket.d.ts +23 -0
- package/ccw/dist/core/websocket.d.ts.map +1 -0
- package/ccw/dist/core/websocket.js +168 -0
- package/ccw/dist/core/websocket.js.map +1 -0
- package/ccw/dist/index.d.ts +10 -0
- package/ccw/dist/index.d.ts.map +1 -0
- package/ccw/dist/index.js +10 -0
- package/ccw/dist/index.js.map +1 -0
- package/ccw/dist/mcp-server/index.d.ts +7 -0
- package/ccw/dist/mcp-server/index.d.ts.map +1 -0
- package/ccw/dist/mcp-server/index.js +157 -0
- package/ccw/dist/mcp-server/index.js.map +1 -0
- package/ccw/dist/tools/classify-folders.d.ts +26 -0
- package/ccw/dist/tools/classify-folders.d.ts.map +1 -0
- package/ccw/dist/tools/classify-folders.js +201 -0
- package/ccw/dist/tools/classify-folders.js.map +1 -0
- package/ccw/dist/tools/cli-config-manager.d.ts +62 -0
- package/ccw/dist/tools/cli-config-manager.d.ts.map +1 -0
- package/ccw/dist/tools/cli-config-manager.js +221 -0
- package/ccw/dist/tools/cli-config-manager.js.map +1 -0
- package/ccw/dist/tools/cli-executor.d.ts +373 -0
- package/ccw/dist/tools/cli-executor.d.ts.map +1 -0
- package/ccw/dist/tools/cli-executor.js +1625 -0
- package/ccw/dist/tools/cli-executor.js.map +1 -0
- package/ccw/dist/tools/cli-history-store.d.ts +330 -0
- package/ccw/dist/tools/cli-history-store.d.ts.map +1 -0
- package/ccw/dist/tools/cli-history-store.js +916 -0
- package/ccw/dist/tools/cli-history-store.js.map +1 -0
- package/ccw/dist/tools/codex-lens.d.ts +118 -0
- package/ccw/dist/tools/codex-lens.d.ts.map +1 -0
- package/ccw/dist/tools/codex-lens.js +962 -0
- package/ccw/dist/tools/codex-lens.js.map +1 -0
- package/ccw/dist/tools/convert-tokens-to-css.d.ts +14 -0
- package/ccw/dist/tools/convert-tokens-to-css.d.ts.map +1 -0
- package/ccw/dist/tools/convert-tokens-to-css.js +244 -0
- package/ccw/dist/tools/convert-tokens-to-css.js.map +1 -0
- package/ccw/dist/tools/core-memory.d.ts +66 -0
- package/ccw/dist/tools/core-memory.d.ts.map +1 -0
- package/ccw/dist/tools/core-memory.js +324 -0
- package/ccw/dist/tools/core-memory.js.map +1 -0
- package/ccw/dist/tools/detect-changed-modules.d.ts +24 -0
- package/ccw/dist/tools/detect-changed-modules.d.ts.map +1 -0
- package/ccw/dist/tools/detect-changed-modules.js +277 -0
- package/ccw/dist/tools/detect-changed-modules.js.map +1 -0
- package/ccw/dist/tools/discover-design-files.d.ts +36 -0
- package/ccw/dist/tools/discover-design-files.d.ts.map +1 -0
- package/ccw/dist/tools/discover-design-files.js +147 -0
- package/ccw/dist/tools/discover-design-files.js.map +1 -0
- package/ccw/dist/tools/edit-file.d.ts +28 -0
- package/ccw/dist/tools/edit-file.d.ts.map +1 -0
- package/ccw/dist/tools/edit-file.js +479 -0
- package/ccw/dist/tools/edit-file.js.map +1 -0
- package/ccw/dist/tools/generate-module-docs.d.ts +22 -0
- package/ccw/dist/tools/generate-module-docs.d.ts.map +1 -0
- package/ccw/dist/tools/generate-module-docs.js +379 -0
- package/ccw/dist/tools/generate-module-docs.js.map +1 -0
- package/ccw/dist/tools/get-modules-by-depth.d.ts +15 -0
- package/ccw/dist/tools/get-modules-by-depth.d.ts.map +1 -0
- package/ccw/dist/tools/get-modules-by-depth.js +296 -0
- package/ccw/dist/tools/get-modules-by-depth.js.map +1 -0
- package/ccw/dist/tools/index.d.ts +55 -0
- package/ccw/dist/tools/index.d.ts.map +1 -0
- package/ccw/dist/tools/index.js +304 -0
- package/ccw/dist/tools/index.js.map +1 -0
- package/ccw/dist/tools/native-session-discovery.d.ts +97 -0
- package/ccw/dist/tools/native-session-discovery.d.ts.map +1 -0
- package/ccw/dist/tools/native-session-discovery.js +700 -0
- package/ccw/dist/tools/native-session-discovery.js.map +1 -0
- package/ccw/dist/tools/notifier.d.ts +50 -0
- package/ccw/dist/tools/notifier.d.ts.map +1 -0
- package/ccw/dist/tools/notifier.js +90 -0
- package/ccw/dist/tools/notifier.js.map +1 -0
- package/ccw/dist/tools/read-file.d.ts +32 -0
- package/ccw/dist/tools/read-file.d.ts.map +1 -0
- package/ccw/dist/tools/read-file.js +329 -0
- package/ccw/dist/tools/read-file.js.map +1 -0
- package/ccw/dist/tools/resume-strategy.d.ts +48 -0
- package/ccw/dist/tools/resume-strategy.d.ts.map +1 -0
- package/ccw/dist/tools/resume-strategy.js +248 -0
- package/ccw/dist/tools/resume-strategy.js.map +1 -0
- package/ccw/dist/tools/session-content-parser.d.ts +58 -0
- package/ccw/dist/tools/session-content-parser.d.ts.map +1 -0
- package/ccw/dist/tools/session-content-parser.js +420 -0
- package/ccw/dist/tools/session-content-parser.js.map +1 -0
- package/ccw/dist/tools/session-manager.d.ts +9 -0
- package/ccw/dist/tools/session-manager.d.ts.map +1 -0
- package/ccw/dist/tools/session-manager.js +834 -0
- package/ccw/dist/tools/session-manager.js.map +1 -0
- package/ccw/dist/tools/smart-context.d.ts +35 -0
- package/ccw/dist/tools/smart-context.d.ts.map +1 -0
- package/ccw/dist/tools/smart-context.js +182 -0
- package/ccw/dist/tools/smart-context.js.map +1 -0
- package/ccw/dist/tools/smart-search.d.ts +105 -0
- package/ccw/dist/tools/smart-search.d.ts.map +1 -0
- package/ccw/dist/tools/smart-search.js +1753 -0
- package/ccw/dist/tools/smart-search.js.map +1 -0
- package/ccw/dist/tools/storage-manager.d.ts +114 -0
- package/ccw/dist/tools/storage-manager.d.ts.map +1 -0
- package/ccw/dist/tools/storage-manager.js +392 -0
- package/ccw/dist/tools/storage-manager.js.map +1 -0
- package/ccw/dist/tools/ui-generate-preview.d.ts +39 -0
- package/ccw/dist/tools/ui-generate-preview.d.ts.map +1 -0
- package/ccw/dist/tools/ui-generate-preview.js +300 -0
- package/ccw/dist/tools/ui-generate-preview.js.map +1 -0
- package/ccw/dist/tools/ui-instantiate-prototypes.d.ts +75 -0
- package/ccw/dist/tools/ui-instantiate-prototypes.d.ts.map +1 -0
- package/ccw/dist/tools/ui-instantiate-prototypes.js +256 -0
- package/ccw/dist/tools/ui-instantiate-prototypes.js.map +1 -0
- package/ccw/dist/tools/update-module-claude.d.ts +80 -0
- package/ccw/dist/tools/update-module-claude.d.ts.map +1 -0
- package/ccw/dist/tools/update-module-claude.js +351 -0
- package/ccw/dist/tools/update-module-claude.js.map +1 -0
- package/ccw/dist/tools/write-file.d.ts +19 -0
- package/ccw/dist/tools/write-file.d.ts.map +1 -0
- package/ccw/dist/tools/write-file.js +193 -0
- package/ccw/dist/tools/write-file.js.map +1 -0
- package/ccw/dist/types/config.d.ts +11 -0
- package/ccw/dist/types/config.d.ts.map +1 -0
- package/ccw/dist/types/config.js +2 -0
- package/ccw/dist/types/config.js.map +1 -0
- package/ccw/dist/types/index.d.ts +4 -0
- package/ccw/dist/types/index.d.ts.map +1 -0
- package/ccw/dist/types/index.js +4 -0
- package/ccw/dist/types/index.js.map +1 -0
- package/ccw/dist/types/session.d.ts +20 -0
- package/ccw/dist/types/session.d.ts.map +1 -0
- package/ccw/dist/types/session.js +2 -0
- package/ccw/dist/types/session.js.map +1 -0
- package/ccw/dist/types/tool.d.ts +36 -0
- package/ccw/dist/types/tool.d.ts.map +1 -0
- package/ccw/dist/types/tool.js +11 -0
- package/ccw/dist/types/tool.js.map +1 -0
- package/ccw/dist/utils/browser-launcher.d.ts +13 -0
- package/ccw/dist/utils/browser-launcher.d.ts.map +1 -0
- package/ccw/dist/utils/browser-launcher.js +60 -0
- package/ccw/dist/utils/browser-launcher.js.map +1 -0
- package/ccw/dist/utils/file-utils.d.ts +25 -0
- package/ccw/dist/utils/file-utils.d.ts.map +1 -0
- package/ccw/dist/utils/file-utils.js +48 -0
- package/ccw/dist/utils/file-utils.js.map +1 -0
- package/ccw/dist/utils/path-resolver.d.ts +80 -0
- package/ccw/dist/utils/path-resolver.d.ts.map +1 -0
- package/ccw/dist/utils/path-resolver.js +260 -0
- package/ccw/dist/utils/path-resolver.js.map +1 -0
- package/ccw/dist/utils/path-validator.d.ts +49 -0
- package/ccw/dist/utils/path-validator.d.ts.map +1 -0
- package/ccw/dist/utils/path-validator.js +123 -0
- package/ccw/dist/utils/path-validator.js.map +1 -0
- package/ccw/dist/utils/ui.d.ts +62 -0
- package/ccw/dist/utils/ui.d.ts.map +1 -0
- package/ccw/dist/utils/ui.js +129 -0
- package/ccw/dist/utils/ui.js.map +1 -0
- package/ccw/package.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Configuration Manager
|
|
3
|
+
* Handles loading, saving, and managing CLI tool configurations
|
|
4
|
+
* Stores config in centralized storage (~/.ccw/projects/{id}/config/)
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import { StoragePaths, ensureStorageDir } from '../config/storage-paths.js';
|
|
8
|
+
// ========== Constants ==========
|
|
9
|
+
export const PREDEFINED_MODELS = {
|
|
10
|
+
gemini: ['gemini-2.5-pro', 'gemini-2.5-flash', 'gemini-2.0-flash', 'gemini-1.5-pro', 'gemini-1.5-flash'],
|
|
11
|
+
qwen: ['coder-model', 'vision-model', 'qwen2.5-coder-32b'],
|
|
12
|
+
codex: ['gpt-5.2', 'gpt-4.1', 'o4-mini', 'o3']
|
|
13
|
+
};
|
|
14
|
+
export const DEFAULT_CONFIG = {
|
|
15
|
+
version: 1,
|
|
16
|
+
tools: {
|
|
17
|
+
gemini: {
|
|
18
|
+
enabled: true,
|
|
19
|
+
primaryModel: 'gemini-2.5-pro',
|
|
20
|
+
secondaryModel: 'gemini-2.5-flash'
|
|
21
|
+
},
|
|
22
|
+
qwen: {
|
|
23
|
+
enabled: true,
|
|
24
|
+
primaryModel: 'coder-model',
|
|
25
|
+
secondaryModel: 'coder-model'
|
|
26
|
+
},
|
|
27
|
+
codex: {
|
|
28
|
+
enabled: true,
|
|
29
|
+
primaryModel: 'gpt-5.2',
|
|
30
|
+
secondaryModel: 'gpt-5.2'
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
// ========== Helper Functions ==========
|
|
35
|
+
function getConfigPath(baseDir) {
|
|
36
|
+
return StoragePaths.project(baseDir).cliConfig;
|
|
37
|
+
}
|
|
38
|
+
function ensureConfigDirForProject(baseDir) {
|
|
39
|
+
const configDir = StoragePaths.project(baseDir).config;
|
|
40
|
+
ensureStorageDir(configDir);
|
|
41
|
+
}
|
|
42
|
+
function isValidToolName(tool) {
|
|
43
|
+
return ['gemini', 'qwen', 'codex'].includes(tool);
|
|
44
|
+
}
|
|
45
|
+
function validateConfig(config) {
|
|
46
|
+
if (!config || typeof config !== 'object')
|
|
47
|
+
return false;
|
|
48
|
+
const c = config;
|
|
49
|
+
if (typeof c.version !== 'number')
|
|
50
|
+
return false;
|
|
51
|
+
if (!c.tools || typeof c.tools !== 'object')
|
|
52
|
+
return false;
|
|
53
|
+
const tools = c.tools;
|
|
54
|
+
for (const toolName of ['gemini', 'qwen', 'codex']) {
|
|
55
|
+
const tool = tools[toolName];
|
|
56
|
+
if (!tool || typeof tool !== 'object')
|
|
57
|
+
return false;
|
|
58
|
+
const t = tool;
|
|
59
|
+
if (typeof t.enabled !== 'boolean')
|
|
60
|
+
return false;
|
|
61
|
+
if (typeof t.primaryModel !== 'string')
|
|
62
|
+
return false;
|
|
63
|
+
if (typeof t.secondaryModel !== 'string')
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
function mergeWithDefaults(config) {
|
|
69
|
+
const result = {
|
|
70
|
+
version: config.version ?? DEFAULT_CONFIG.version,
|
|
71
|
+
tools: { ...DEFAULT_CONFIG.tools }
|
|
72
|
+
};
|
|
73
|
+
if (config.tools) {
|
|
74
|
+
for (const toolName of Object.keys(config.tools)) {
|
|
75
|
+
if (isValidToolName(toolName) && config.tools[toolName]) {
|
|
76
|
+
result.tools[toolName] = {
|
|
77
|
+
...DEFAULT_CONFIG.tools[toolName],
|
|
78
|
+
...config.tools[toolName]
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
// ========== Main Functions ==========
|
|
86
|
+
/**
|
|
87
|
+
* Load CLI configuration from .workflow/cli-config.json
|
|
88
|
+
* Returns default config if file doesn't exist or is invalid
|
|
89
|
+
*/
|
|
90
|
+
export function loadCliConfig(baseDir) {
|
|
91
|
+
const configPath = getConfigPath(baseDir);
|
|
92
|
+
try {
|
|
93
|
+
if (!fs.existsSync(configPath)) {
|
|
94
|
+
return { ...DEFAULT_CONFIG };
|
|
95
|
+
}
|
|
96
|
+
const content = fs.readFileSync(configPath, 'utf-8');
|
|
97
|
+
const parsed = JSON.parse(content);
|
|
98
|
+
if (validateConfig(parsed)) {
|
|
99
|
+
return mergeWithDefaults(parsed);
|
|
100
|
+
}
|
|
101
|
+
// Invalid config, return defaults
|
|
102
|
+
console.warn('[cli-config] Invalid config file, using defaults');
|
|
103
|
+
return { ...DEFAULT_CONFIG };
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
console.error('[cli-config] Error loading config:', err);
|
|
107
|
+
return { ...DEFAULT_CONFIG };
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Save CLI configuration to .workflow/cli-config.json
|
|
112
|
+
*/
|
|
113
|
+
export function saveCliConfig(baseDir, config) {
|
|
114
|
+
ensureConfigDirForProject(baseDir);
|
|
115
|
+
const configPath = getConfigPath(baseDir);
|
|
116
|
+
try {
|
|
117
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
console.error('[cli-config] Error saving config:', err);
|
|
121
|
+
throw new Error(`Failed to save CLI config: ${err}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get configuration for a specific tool
|
|
126
|
+
*/
|
|
127
|
+
export function getToolConfig(baseDir, tool) {
|
|
128
|
+
if (!isValidToolName(tool)) {
|
|
129
|
+
throw new Error(`Invalid tool name: ${tool}`);
|
|
130
|
+
}
|
|
131
|
+
const config = loadCliConfig(baseDir);
|
|
132
|
+
return config.tools[tool] || DEFAULT_CONFIG.tools[tool];
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Update configuration for a specific tool
|
|
136
|
+
* Returns the updated tool config
|
|
137
|
+
*/
|
|
138
|
+
export function updateToolConfig(baseDir, tool, updates) {
|
|
139
|
+
if (!isValidToolName(tool)) {
|
|
140
|
+
throw new Error(`Invalid tool name: ${tool}`);
|
|
141
|
+
}
|
|
142
|
+
const config = loadCliConfig(baseDir);
|
|
143
|
+
const currentToolConfig = config.tools[tool] || DEFAULT_CONFIG.tools[tool];
|
|
144
|
+
// Apply updates
|
|
145
|
+
const updatedToolConfig = {
|
|
146
|
+
enabled: updates.enabled !== undefined ? updates.enabled : currentToolConfig.enabled,
|
|
147
|
+
primaryModel: updates.primaryModel || currentToolConfig.primaryModel,
|
|
148
|
+
secondaryModel: updates.secondaryModel || currentToolConfig.secondaryModel
|
|
149
|
+
};
|
|
150
|
+
// Save updated config
|
|
151
|
+
config.tools[tool] = updatedToolConfig;
|
|
152
|
+
saveCliConfig(baseDir, config);
|
|
153
|
+
return updatedToolConfig;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Enable a CLI tool
|
|
157
|
+
*/
|
|
158
|
+
export function enableTool(baseDir, tool) {
|
|
159
|
+
return updateToolConfig(baseDir, tool, { enabled: true });
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Disable a CLI tool
|
|
163
|
+
*/
|
|
164
|
+
export function disableTool(baseDir, tool) {
|
|
165
|
+
return updateToolConfig(baseDir, tool, { enabled: false });
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Check if a tool is enabled
|
|
169
|
+
*/
|
|
170
|
+
export function isToolEnabled(baseDir, tool) {
|
|
171
|
+
try {
|
|
172
|
+
const config = getToolConfig(baseDir, tool);
|
|
173
|
+
return config.enabled;
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
return true; // Default to enabled if error
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get primary model for a tool
|
|
181
|
+
*/
|
|
182
|
+
export function getPrimaryModel(baseDir, tool) {
|
|
183
|
+
try {
|
|
184
|
+
const config = getToolConfig(baseDir, tool);
|
|
185
|
+
return config.primaryModel;
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return isValidToolName(tool) ? DEFAULT_CONFIG.tools[tool].primaryModel : 'gemini-2.5-pro';
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Get secondary model for a tool (used for internal calls)
|
|
193
|
+
*/
|
|
194
|
+
export function getSecondaryModel(baseDir, tool) {
|
|
195
|
+
try {
|
|
196
|
+
const config = getToolConfig(baseDir, tool);
|
|
197
|
+
return config.secondaryModel;
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
return isValidToolName(tool) ? DEFAULT_CONFIG.tools[tool].secondaryModel : 'gemini-2.5-flash';
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Get all predefined models for a tool
|
|
205
|
+
*/
|
|
206
|
+
export function getPredefinedModels(tool) {
|
|
207
|
+
if (!isValidToolName(tool)) {
|
|
208
|
+
return [];
|
|
209
|
+
}
|
|
210
|
+
return [...PREDEFINED_MODELS[tool]];
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get full config response for API (includes predefined models)
|
|
214
|
+
*/
|
|
215
|
+
export function getFullConfigResponse(baseDir) {
|
|
216
|
+
return {
|
|
217
|
+
config: loadCliConfig(baseDir),
|
|
218
|
+
predefinedModels: { ...PREDEFINED_MODELS }
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=cli-config-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-config-manager.js","sourceRoot":"","sources":["../../src/tools/cli-config-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Executor Tool - Unified execution for external CLI tools
|
|
3
|
+
* Supports Gemini, Qwen, and Codex with streaming output
|
|
4
|
+
*/
|
|
5
|
+
import type { ToolSchema, ToolResult } from '../types/tool.js';
|
|
6
|
+
export type ExecutionCategory = 'user' | 'internal' | 'insight';
|
|
7
|
+
type PromptFormat = 'plain' | 'yaml' | 'json';
|
|
8
|
+
interface ToolAvailability {
|
|
9
|
+
available: boolean;
|
|
10
|
+
path: string | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Clear all cache entries (useful for testing or forced refresh)
|
|
14
|
+
*/
|
|
15
|
+
export declare function clearToolCache(): void;
|
|
16
|
+
interface ConversationTurn {
|
|
17
|
+
turn: number;
|
|
18
|
+
timestamp: string;
|
|
19
|
+
prompt: string;
|
|
20
|
+
duration_ms: number;
|
|
21
|
+
status: 'success' | 'error' | 'timeout';
|
|
22
|
+
exit_code: number | null;
|
|
23
|
+
output: {
|
|
24
|
+
stdout: string;
|
|
25
|
+
stderr: string;
|
|
26
|
+
truncated: boolean;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
interface ConversationRecord {
|
|
30
|
+
id: string;
|
|
31
|
+
created_at: string;
|
|
32
|
+
updated_at: string;
|
|
33
|
+
tool: string;
|
|
34
|
+
model: string;
|
|
35
|
+
mode: string;
|
|
36
|
+
category: ExecutionCategory;
|
|
37
|
+
total_duration_ms: number;
|
|
38
|
+
turn_count: number;
|
|
39
|
+
latest_status: 'success' | 'error' | 'timeout';
|
|
40
|
+
turns: ConversationTurn[];
|
|
41
|
+
parent_execution_id?: string;
|
|
42
|
+
}
|
|
43
|
+
interface ExecutionRecord {
|
|
44
|
+
id: string;
|
|
45
|
+
timestamp: string;
|
|
46
|
+
tool: string;
|
|
47
|
+
model: string;
|
|
48
|
+
mode: string;
|
|
49
|
+
prompt: string;
|
|
50
|
+
status: 'success' | 'error' | 'timeout';
|
|
51
|
+
exit_code: number | null;
|
|
52
|
+
duration_ms: number;
|
|
53
|
+
output: {
|
|
54
|
+
stdout: string;
|
|
55
|
+
stderr: string;
|
|
56
|
+
truncated: boolean;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
interface HistoryIndex {
|
|
60
|
+
version: number;
|
|
61
|
+
total_executions: number;
|
|
62
|
+
executions: {
|
|
63
|
+
id: string;
|
|
64
|
+
timestamp: string;
|
|
65
|
+
updated_at?: string;
|
|
66
|
+
tool: string;
|
|
67
|
+
status: string;
|
|
68
|
+
duration_ms: number;
|
|
69
|
+
turn_count?: number;
|
|
70
|
+
prompt_preview: string;
|
|
71
|
+
}[];
|
|
72
|
+
}
|
|
73
|
+
interface ExecutionOutput {
|
|
74
|
+
success: boolean;
|
|
75
|
+
execution: ExecutionRecord;
|
|
76
|
+
conversation: ConversationRecord;
|
|
77
|
+
stdout: string;
|
|
78
|
+
stderr: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Check if a CLI tool is available (with caching)
|
|
82
|
+
*/
|
|
83
|
+
declare function checkToolAvailability(tool: string): Promise<ToolAvailability>;
|
|
84
|
+
/**
|
|
85
|
+
* Execute CLI tool with streaming output
|
|
86
|
+
*/
|
|
87
|
+
declare function executeCliTool(params: Record<string, unknown>, onOutput?: ((data: {
|
|
88
|
+
type: string;
|
|
89
|
+
data: string;
|
|
90
|
+
}) => void) | null): Promise<ExecutionOutput>;
|
|
91
|
+
export declare const schema: ToolSchema;
|
|
92
|
+
export declare function handler(params: Record<string, unknown>): Promise<ToolResult<ExecutionOutput>>;
|
|
93
|
+
/**
|
|
94
|
+
* Get execution history from SQLite (centralized storage)
|
|
95
|
+
*/
|
|
96
|
+
export declare function getExecutionHistoryAsync(baseDir: string, options?: {
|
|
97
|
+
limit?: number;
|
|
98
|
+
tool?: string | null;
|
|
99
|
+
status?: string | null;
|
|
100
|
+
category?: ExecutionCategory | null;
|
|
101
|
+
search?: string | null;
|
|
102
|
+
recursive?: boolean;
|
|
103
|
+
}): Promise<{
|
|
104
|
+
total: number;
|
|
105
|
+
count: number;
|
|
106
|
+
executions: (HistoryIndex['executions'][0] & {
|
|
107
|
+
sourceDir?: string;
|
|
108
|
+
})[];
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Get execution history (sync version - uses cached SQLite module)
|
|
112
|
+
*/
|
|
113
|
+
export declare function getExecutionHistory(baseDir: string, options?: {
|
|
114
|
+
limit?: number;
|
|
115
|
+
tool?: string | null;
|
|
116
|
+
status?: string | null;
|
|
117
|
+
recursive?: boolean;
|
|
118
|
+
}): {
|
|
119
|
+
total: number;
|
|
120
|
+
count: number;
|
|
121
|
+
executions: (HistoryIndex['executions'][0] & {
|
|
122
|
+
sourceDir?: string;
|
|
123
|
+
})[];
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Get conversation detail by ID (returns ConversationRecord)
|
|
127
|
+
*/
|
|
128
|
+
export declare function getConversationDetail(baseDir: string, conversationId: string): ConversationRecord | null;
|
|
129
|
+
/**
|
|
130
|
+
* Get conversation detail with native session info
|
|
131
|
+
*/
|
|
132
|
+
export declare function getConversationDetailWithNativeInfo(baseDir: string, conversationId: string): (import("./cli-history-store.js").ConversationRecord & {
|
|
133
|
+
hasNativeSession: boolean;
|
|
134
|
+
nativeSessionId?: string;
|
|
135
|
+
nativeSessionPath?: string;
|
|
136
|
+
}) | null;
|
|
137
|
+
/**
|
|
138
|
+
* Get execution detail by ID (legacy, returns ExecutionRecord for backward compatibility)
|
|
139
|
+
*/
|
|
140
|
+
export declare function getExecutionDetail(baseDir: string, executionId: string): ExecutionRecord | null;
|
|
141
|
+
/**
|
|
142
|
+
* Delete execution by ID (async version)
|
|
143
|
+
*/
|
|
144
|
+
export declare function deleteExecutionAsync(baseDir: string, executionId: string): Promise<{
|
|
145
|
+
success: boolean;
|
|
146
|
+
error?: string;
|
|
147
|
+
}>;
|
|
148
|
+
/**
|
|
149
|
+
* Delete execution by ID (sync version - uses cached SQLite module)
|
|
150
|
+
*/
|
|
151
|
+
export declare function deleteExecution(baseDir: string, executionId: string): {
|
|
152
|
+
success: boolean;
|
|
153
|
+
error?: string;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Batch delete executions (async)
|
|
157
|
+
*/
|
|
158
|
+
export declare function batchDeleteExecutionsAsync(baseDir: string, ids: string[]): Promise<{
|
|
159
|
+
success: boolean;
|
|
160
|
+
deleted: number;
|
|
161
|
+
total: number;
|
|
162
|
+
errors?: string[];
|
|
163
|
+
}>;
|
|
164
|
+
/**
|
|
165
|
+
* Get status of all CLI tools
|
|
166
|
+
*/
|
|
167
|
+
export declare function getCliToolsStatus(): Promise<Record<string, ToolAvailability>>;
|
|
168
|
+
/**
|
|
169
|
+
* Set the base directory for config operations
|
|
170
|
+
*/
|
|
171
|
+
export declare function setConfigBaseDir(dir: string): void;
|
|
172
|
+
/**
|
|
173
|
+
* Install a CLI tool via npm
|
|
174
|
+
*/
|
|
175
|
+
export declare function installCliTool(tool: string): Promise<{
|
|
176
|
+
success: boolean;
|
|
177
|
+
error?: string;
|
|
178
|
+
}>;
|
|
179
|
+
/**
|
|
180
|
+
* Uninstall a CLI tool via npm
|
|
181
|
+
*/
|
|
182
|
+
export declare function uninstallCliTool(tool: string): Promise<{
|
|
183
|
+
success: boolean;
|
|
184
|
+
error?: string;
|
|
185
|
+
}>;
|
|
186
|
+
/**
|
|
187
|
+
* Enable a CLI tool (updates config file)
|
|
188
|
+
*/
|
|
189
|
+
export declare function enableCliTool(tool: string): {
|
|
190
|
+
success: boolean;
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Disable a CLI tool (updates config file)
|
|
194
|
+
*/
|
|
195
|
+
export declare function disableCliTool(tool: string): {
|
|
196
|
+
success: boolean;
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Check if a tool is enabled (reads from config file)
|
|
200
|
+
*/
|
|
201
|
+
export declare function isToolEnabled(tool: string): boolean;
|
|
202
|
+
/**
|
|
203
|
+
* Get full status of all CLI tools including enabled state
|
|
204
|
+
*/
|
|
205
|
+
export declare function getCliToolsFullStatus(): Promise<Record<string, {
|
|
206
|
+
available: boolean;
|
|
207
|
+
enabled: boolean;
|
|
208
|
+
path: string | null;
|
|
209
|
+
packageName: string;
|
|
210
|
+
}>>;
|
|
211
|
+
/**
|
|
212
|
+
* Turn data structure for concatenation
|
|
213
|
+
*/
|
|
214
|
+
interface TurnData {
|
|
215
|
+
turn: number;
|
|
216
|
+
timestamp?: string;
|
|
217
|
+
role: 'user' | 'assistant';
|
|
218
|
+
content: string;
|
|
219
|
+
status?: string;
|
|
220
|
+
duration_ms?: number;
|
|
221
|
+
source_id?: string;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Prompt concatenation options
|
|
225
|
+
*/
|
|
226
|
+
interface ConcatOptions {
|
|
227
|
+
format: PromptFormat;
|
|
228
|
+
includeMetadata?: boolean;
|
|
229
|
+
includeTurnMarkers?: boolean;
|
|
230
|
+
maxOutputLength?: number;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* PromptConcatenator - Dedicated class for building multi-turn prompts
|
|
234
|
+
* Supports multiple output formats: plain text, YAML, JSON
|
|
235
|
+
*/
|
|
236
|
+
declare class PromptConcatenator {
|
|
237
|
+
private turns;
|
|
238
|
+
private options;
|
|
239
|
+
private metadata;
|
|
240
|
+
constructor(options?: Partial<ConcatOptions>);
|
|
241
|
+
/**
|
|
242
|
+
* Set metadata for the conversation
|
|
243
|
+
*/
|
|
244
|
+
setMetadata(key: string, value: unknown): this;
|
|
245
|
+
/**
|
|
246
|
+
* Add a user turn
|
|
247
|
+
*/
|
|
248
|
+
addUserTurn(content: string, options?: Partial<Omit<TurnData, 'role' | 'content'>>): this;
|
|
249
|
+
/**
|
|
250
|
+
* Add an assistant turn
|
|
251
|
+
*/
|
|
252
|
+
addAssistantTurn(content: string, options?: Partial<Omit<TurnData, 'role' | 'content'>>): this;
|
|
253
|
+
/**
|
|
254
|
+
* Add a conversation turn from ConversationTurn
|
|
255
|
+
*/
|
|
256
|
+
addFromConversationTurn(turn: ConversationTurn, sourceId?: string): this;
|
|
257
|
+
/**
|
|
258
|
+
* Load turns from an existing conversation
|
|
259
|
+
*/
|
|
260
|
+
loadConversation(conversation: ConversationRecord): this;
|
|
261
|
+
/**
|
|
262
|
+
* Build the final prompt in plain text format
|
|
263
|
+
*/
|
|
264
|
+
private buildPlainText;
|
|
265
|
+
/**
|
|
266
|
+
* Build the final prompt in YAML format
|
|
267
|
+
*/
|
|
268
|
+
private buildYaml;
|
|
269
|
+
/**
|
|
270
|
+
* Build the final prompt in JSON format
|
|
271
|
+
*/
|
|
272
|
+
private buildJson;
|
|
273
|
+
/**
|
|
274
|
+
* Helper to format YAML values
|
|
275
|
+
*/
|
|
276
|
+
private yamlValue;
|
|
277
|
+
/**
|
|
278
|
+
* Build the final prompt string
|
|
279
|
+
*/
|
|
280
|
+
build(newPrompt: string): string;
|
|
281
|
+
/**
|
|
282
|
+
* Reset the concatenator for reuse
|
|
283
|
+
*/
|
|
284
|
+
reset(): this;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Create a prompt concatenator with specified options
|
|
288
|
+
*/
|
|
289
|
+
declare function createPromptConcatenator(options?: Partial<ConcatOptions>): PromptConcatenator;
|
|
290
|
+
/**
|
|
291
|
+
* Quick helper to build a multi-turn prompt in any format
|
|
292
|
+
*/
|
|
293
|
+
declare function buildPrompt(conversation: ConversationRecord, newPrompt: string, format?: PromptFormat): string;
|
|
294
|
+
/**
|
|
295
|
+
* Build multi-turn prompt with full conversation history
|
|
296
|
+
* Uses the PromptConcatenator with plain text format by default
|
|
297
|
+
*/
|
|
298
|
+
declare function buildMultiTurnPrompt(conversation: ConversationRecord, newPrompt: string, format?: PromptFormat): string;
|
|
299
|
+
/**
|
|
300
|
+
* Get latest execution for a specific tool
|
|
301
|
+
*/
|
|
302
|
+
export declare function getLatestExecution(baseDir: string, tool?: string): ExecutionRecord | null;
|
|
303
|
+
/**
|
|
304
|
+
* Get native session content by CCW ID
|
|
305
|
+
* Parses the native session file and returns full conversation data
|
|
306
|
+
*/
|
|
307
|
+
export declare function getNativeSessionContent(baseDir: string, ccwId: string): Promise<import("./session-content-parser.js").ParsedSession | null>;
|
|
308
|
+
/**
|
|
309
|
+
* Get formatted native conversation text
|
|
310
|
+
*/
|
|
311
|
+
export declare function getFormattedNativeConversation(baseDir: string, ccwId: string, options?: {
|
|
312
|
+
includeThoughts?: boolean;
|
|
313
|
+
includeToolCalls?: boolean;
|
|
314
|
+
includeTokens?: boolean;
|
|
315
|
+
maxContentLength?: number;
|
|
316
|
+
}): Promise<string | null>;
|
|
317
|
+
/**
|
|
318
|
+
* Get conversation pairs from native session
|
|
319
|
+
*/
|
|
320
|
+
export declare function getNativeConversationPairs(baseDir: string, ccwId: string): Promise<{
|
|
321
|
+
turn: number;
|
|
322
|
+
userPrompt: string;
|
|
323
|
+
assistantResponse: string;
|
|
324
|
+
timestamp: string;
|
|
325
|
+
}[] | null>;
|
|
326
|
+
/**
|
|
327
|
+
* Get enriched conversation (CCW + native session merged)
|
|
328
|
+
*/
|
|
329
|
+
export declare function getEnrichedConversation(baseDir: string, ccwId: string): Promise<{
|
|
330
|
+
ccw: import("./cli-history-store.js").ConversationRecord | null;
|
|
331
|
+
native: import("./session-content-parser.js").ParsedSession | null;
|
|
332
|
+
merged: Array<{
|
|
333
|
+
turn: number;
|
|
334
|
+
timestamp: string;
|
|
335
|
+
ccwPrompt?: string;
|
|
336
|
+
ccwOutput?: string;
|
|
337
|
+
nativeUserContent?: string;
|
|
338
|
+
nativeAssistantContent?: string;
|
|
339
|
+
nativeThoughts?: string[];
|
|
340
|
+
nativeToolCalls?: Array<{
|
|
341
|
+
name: string;
|
|
342
|
+
arguments?: string;
|
|
343
|
+
output?: string;
|
|
344
|
+
}>;
|
|
345
|
+
}>;
|
|
346
|
+
} | null>;
|
|
347
|
+
/**
|
|
348
|
+
* Get history with native session info
|
|
349
|
+
*/
|
|
350
|
+
export declare function getHistoryWithNativeInfo(baseDir: string, options?: {
|
|
351
|
+
limit?: number;
|
|
352
|
+
offset?: number;
|
|
353
|
+
tool?: string | null;
|
|
354
|
+
status?: string | null;
|
|
355
|
+
category?: ExecutionCategory | null;
|
|
356
|
+
search?: string | null;
|
|
357
|
+
}): Promise<{
|
|
358
|
+
total: number;
|
|
359
|
+
count: number;
|
|
360
|
+
executions: Array<import("./cli-history-store.js").HistoryIndexEntry & {
|
|
361
|
+
hasNativeSession: boolean;
|
|
362
|
+
nativeSessionId?: string;
|
|
363
|
+
nativeSessionPath?: string;
|
|
364
|
+
}>;
|
|
365
|
+
}>;
|
|
366
|
+
export type { ConversationRecord, ConversationTurn, ExecutionRecord, PromptFormat, ConcatOptions };
|
|
367
|
+
export { executeCliTool, checkToolAvailability };
|
|
368
|
+
export { PromptConcatenator, createPromptConcatenator, buildPrompt, buildMultiTurnPrompt };
|
|
369
|
+
export declare const cliExecutorTool: {
|
|
370
|
+
schema: ToolSchema;
|
|
371
|
+
execute: typeof executeCliTool;
|
|
372
|
+
};
|
|
373
|
+
//# sourceMappingURL=cli-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-executor.d.ts","sourceRoot":"","sources":["../../src/tools/cli-executor.ts"],"names":[],"mappings":"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"}
|