codehere 0.3.0 → 0.5.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +230 -42
- package/dist/application/agents/documentation-agent.d.ts +24 -0
- package/dist/application/agents/documentation-agent.d.ts.map +1 -0
- package/dist/application/agents/documentation-agent.js +399 -0
- package/dist/application/agents/documentation-agent.js.map +1 -0
- package/dist/application/agents/execution-agent.d.ts +11 -0
- package/dist/application/agents/execution-agent.d.ts.map +1 -1
- package/dist/application/agents/execution-agent.js +289 -80
- package/dist/application/agents/execution-agent.js.map +1 -1
- package/dist/application/agents/multi-agent-orchestrator.d.ts +3 -0
- package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -1
- package/dist/application/agents/multi-agent-orchestrator.js +86 -0
- package/dist/application/agents/multi-agent-orchestrator.js.map +1 -1
- package/dist/application/agents/planning-agent.d.ts +3 -0
- package/dist/application/agents/planning-agent.d.ts.map +1 -1
- package/dist/application/agents/planning-agent.js +146 -70
- package/dist/application/agents/planning-agent.js.map +1 -1
- package/dist/application/agents/product-requirements-agent.d.ts +21 -0
- package/dist/application/agents/product-requirements-agent.d.ts.map +1 -0
- package/dist/application/agents/product-requirements-agent.js +247 -0
- package/dist/application/agents/product-requirements-agent.js.map +1 -0
- package/dist/application/agents/validation-agent.d.ts +5 -1
- package/dist/application/agents/validation-agent.d.ts.map +1 -1
- package/dist/application/agents/validation-agent.js +156 -21
- package/dist/application/agents/validation-agent.js.map +1 -1
- package/dist/application/services/dependency-container.d.ts +46 -2
- package/dist/application/services/dependency-container.d.ts.map +1 -1
- package/dist/application/services/dependency-container.js +177 -7
- package/dist/application/services/dependency-container.js.map +1 -1
- package/dist/application/services/intelligent-router.d.ts +13 -0
- package/dist/application/services/intelligent-router.d.ts.map +1 -1
- package/dist/application/services/intelligent-router.js +306 -90
- package/dist/application/services/intelligent-router.js.map +1 -1
- package/dist/application/use-cases/ask-question-use-case.d.ts +19 -0
- package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -1
- package/dist/application/use-cases/ask-question-use-case.js +125 -46
- package/dist/application/use-cases/ask-question-use-case.js.map +1 -1
- package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -1
- package/dist/application/use-cases/edit-file-use-case.js +16 -1
- package/dist/application/use-cases/edit-file-use-case.js.map +1 -1
- package/dist/domain/entities/documentation.d.ts +35 -0
- package/dist/domain/entities/documentation.d.ts.map +1 -0
- package/dist/domain/entities/documentation.js +6 -0
- package/dist/domain/entities/documentation.js.map +1 -0
- package/dist/domain/entities/product-requirements.d.ts +50 -0
- package/dist/domain/entities/product-requirements.d.ts.map +1 -0
- package/dist/domain/entities/product-requirements.js +6 -0
- package/dist/domain/entities/product-requirements.js.map +1 -0
- package/dist/domain/entities/task.d.ts +152 -0
- package/dist/domain/entities/task.d.ts.map +1 -0
- package/dist/domain/entities/task.js +61 -0
- package/dist/domain/entities/task.js.map +1 -0
- package/dist/domain/errors/embeddings-not-found-error.d.ts +9 -0
- package/dist/domain/errors/embeddings-not-found-error.d.ts.map +1 -0
- package/dist/domain/errors/embeddings-not-found-error.js +13 -0
- package/dist/domain/errors/embeddings-not-found-error.js.map +1 -0
- package/dist/domain/interfaces/agent.interface.d.ts +15 -0
- package/dist/domain/interfaces/agent.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/agent.interface.js +6 -0
- package/dist/domain/interfaces/agent.interface.js.map +1 -0
- package/dist/domain/interfaces/embedding-repository.interface.d.ts +5 -0
- package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -1
- package/dist/domain/services/environment-mode-manager.d.ts +12 -0
- package/dist/domain/services/environment-mode-manager.d.ts.map +1 -0
- package/dist/domain/services/environment-mode-manager.js +22 -0
- package/dist/domain/services/environment-mode-manager.js.map +1 -0
- package/dist/domain/services/risk-tier-detector.d.ts +17 -0
- package/dist/domain/services/risk-tier-detector.d.ts.map +1 -0
- package/dist/domain/services/risk-tier-detector.js +78 -0
- package/dist/domain/services/risk-tier-detector.js.map +1 -0
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.js +18 -8
- package/dist/embed.js.map +1 -1
- package/dist/formatter.d.ts.map +1 -1
- package/dist/formatter.js +10 -3
- package/dist/formatter.js.map +1 -1
- package/dist/index.js +398 -164
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -1
- package/dist/infrastructure/ai/cohere-ai-service.js +18 -5
- package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -1
- package/dist/infrastructure/ai/fake-ai-service.d.ts +22 -0
- package/dist/infrastructure/ai/fake-ai-service.d.ts.map +1 -0
- package/dist/infrastructure/ai/fake-ai-service.js +59 -0
- package/dist/infrastructure/ai/fake-ai-service.js.map +1 -0
- package/dist/infrastructure/ai/provider-ai-service.d.ts +59 -0
- package/dist/infrastructure/ai/provider-ai-service.d.ts.map +1 -0
- package/dist/infrastructure/ai/provider-ai-service.js +477 -0
- package/dist/infrastructure/ai/provider-ai-service.js.map +1 -0
- package/dist/infrastructure/cache/embedding-cache.d.ts +13 -1
- package/dist/infrastructure/cache/embedding-cache.d.ts.map +1 -1
- package/dist/infrastructure/cache/embedding-cache.js +80 -9
- package/dist/infrastructure/cache/embedding-cache.js.map +1 -1
- package/dist/infrastructure/cache/query-result-cache.d.ts +14 -55
- package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -1
- package/dist/infrastructure/cache/query-result-cache.js +40 -112
- package/dist/infrastructure/cache/query-result-cache.js.map +1 -1
- package/dist/infrastructure/cache/response-cache.d.ts +18 -0
- package/dist/infrastructure/cache/response-cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/response-cache.js +48 -0
- package/dist/infrastructure/cache/response-cache.js.map +1 -0
- package/dist/infrastructure/cache/security-scan-cache.d.ts +8 -49
- package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -1
- package/dist/infrastructure/cache/security-scan-cache.js +25 -102
- package/dist/infrastructure/cache/security-scan-cache.js.map +1 -1
- package/dist/infrastructure/completion/bash-completion.d.ts +2 -3
- package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -1
- package/dist/infrastructure/completion/bash-completion.js +11 -87
- package/dist/infrastructure/completion/bash-completion.js.map +1 -1
- package/dist/infrastructure/completion/fish-completion.d.ts +2 -3
- package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -1
- package/dist/infrastructure/completion/fish-completion.js +15 -58
- package/dist/infrastructure/completion/fish-completion.js.map +1 -1
- package/dist/infrastructure/completion/zsh-completion.d.ts +2 -3
- package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -1
- package/dist/infrastructure/completion/zsh-completion.js +18 -73
- package/dist/infrastructure/completion/zsh-completion.js.map +1 -1
- package/dist/infrastructure/config/config-manager.js +2 -2
- package/dist/infrastructure/config/config-manager.js.map +1 -1
- package/dist/infrastructure/context/conversation-context.d.ts +54 -0
- package/dist/infrastructure/context/conversation-context.d.ts.map +1 -0
- package/dist/infrastructure/context/conversation-context.js +128 -0
- package/dist/infrastructure/context/conversation-context.js.map +1 -0
- package/dist/infrastructure/context/session-manager.d.ts +42 -0
- package/dist/infrastructure/context/session-manager.d.ts.map +1 -0
- package/dist/infrastructure/context/session-manager.js +94 -0
- package/dist/infrastructure/context/session-manager.js.map +1 -0
- package/dist/infrastructure/cost/cost-tracker.d.ts +1 -0
- package/dist/infrastructure/cost/cost-tracker.d.ts.map +1 -1
- package/dist/infrastructure/cost/cost-tracker.js +12 -5
- package/dist/infrastructure/cost/cost-tracker.js.map +1 -1
- package/dist/infrastructure/governance/nist-ai-rmf.d.ts +6 -8
- package/dist/infrastructure/governance/nist-ai-rmf.d.ts.map +1 -1
- package/dist/infrastructure/governance/nist-ai-rmf.js +6 -8
- package/dist/infrastructure/governance/nist-ai-rmf.js.map +1 -1
- package/dist/infrastructure/governance/policy-as-code.d.ts +6 -8
- package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -1
- package/dist/infrastructure/governance/policy-as-code.js +6 -8
- package/dist/infrastructure/governance/policy-as-code.js.map +1 -1
- package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts +7 -9
- package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts.map +1 -1
- package/dist/infrastructure/governance/prompt-to-code-lineage.js +7 -9
- package/dist/infrastructure/governance/prompt-to-code-lineage.js.map +1 -1
- package/dist/infrastructure/providers/cohere-provider.d.ts +39 -0
- package/dist/infrastructure/providers/cohere-provider.d.ts.map +1 -0
- package/dist/infrastructure/providers/cohere-provider.js +444 -0
- package/dist/infrastructure/providers/cohere-provider.js.map +1 -0
- package/dist/infrastructure/providers/fake-provider.d.ts +43 -0
- package/dist/infrastructure/providers/fake-provider.d.ts.map +1 -0
- package/dist/infrastructure/providers/fake-provider.js +130 -0
- package/dist/infrastructure/providers/fake-provider.js.map +1 -0
- package/dist/infrastructure/providers/local-llm-provider.d.ts +49 -0
- package/dist/infrastructure/providers/local-llm-provider.d.ts.map +1 -0
- package/dist/infrastructure/providers/local-llm-provider.js +330 -0
- package/dist/infrastructure/providers/local-llm-provider.js.map +1 -0
- package/dist/infrastructure/providers/model-config.types.d.ts +70 -0
- package/dist/infrastructure/providers/model-config.types.d.ts.map +1 -0
- package/dist/infrastructure/providers/model-config.types.js +9 -0
- package/dist/infrastructure/providers/model-config.types.js.map +1 -0
- package/dist/infrastructure/providers/model-provider.interface.d.ts +113 -0
- package/dist/infrastructure/providers/model-provider.interface.d.ts.map +1 -0
- package/dist/infrastructure/providers/model-provider.interface.js +8 -0
- package/dist/infrastructure/providers/model-provider.interface.js.map +1 -0
- package/dist/infrastructure/providers/openai-provider.d.ts +38 -0
- package/dist/infrastructure/providers/openai-provider.d.ts.map +1 -0
- package/dist/infrastructure/providers/openai-provider.js +413 -0
- package/dist/infrastructure/providers/openai-provider.js.map +1 -0
- package/dist/infrastructure/providers/openrouter-provider.d.ts +42 -0
- package/dist/infrastructure/providers/openrouter-provider.d.ts.map +1 -0
- package/dist/infrastructure/providers/openrouter-provider.js +399 -0
- package/dist/infrastructure/providers/openrouter-provider.js.map +1 -0
- package/dist/infrastructure/providers/operation-provider-resolver.d.ts +48 -0
- package/dist/infrastructure/providers/operation-provider-resolver.d.ts.map +1 -0
- package/dist/infrastructure/providers/operation-provider-resolver.js +105 -0
- package/dist/infrastructure/providers/operation-provider-resolver.js.map +1 -0
- package/dist/infrastructure/providers/provider-config-loader.d.ts +37 -0
- package/dist/infrastructure/providers/provider-config-loader.d.ts.map +1 -0
- package/dist/infrastructure/providers/provider-config-loader.js +120 -0
- package/dist/infrastructure/providers/provider-config-loader.js.map +1 -0
- package/dist/infrastructure/providers/provider-registry.d.ts +53 -0
- package/dist/infrastructure/providers/provider-registry.d.ts.map +1 -0
- package/dist/infrastructure/providers/provider-registry.js +88 -0
- package/dist/infrastructure/providers/provider-registry.js.map +1 -0
- package/dist/infrastructure/serialization/toon-serializer.d.ts +45 -0
- package/dist/infrastructure/serialization/toon-serializer.d.ts.map +1 -0
- package/dist/infrastructure/serialization/toon-serializer.js +119 -0
- package/dist/infrastructure/serialization/toon-serializer.js.map +1 -0
- package/dist/infrastructure/storage/embeddings-path.d.ts +18 -0
- package/dist/infrastructure/storage/embeddings-path.d.ts.map +1 -0
- package/dist/infrastructure/storage/embeddings-path.js +37 -0
- package/dist/infrastructure/storage/embeddings-path.js.map +1 -0
- package/dist/infrastructure/storage/plan-repository.d.ts +2 -0
- package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -1
- package/dist/infrastructure/storage/plan-repository.js +36 -73
- package/dist/infrastructure/storage/plan-repository.js.map +1 -1
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +10 -1
- package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -1
- package/dist/infrastructure/storage/sqlite-embedding-repository.js +37 -3
- package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -1
- package/dist/infrastructure/storage/task-helpers.d.ts +69 -0
- package/dist/infrastructure/storage/task-helpers.d.ts.map +1 -0
- package/dist/infrastructure/storage/task-helpers.js +197 -0
- package/dist/infrastructure/storage/task-helpers.js.map +1 -0
- package/dist/infrastructure/storage/task-repository.d.ts +67 -0
- package/dist/infrastructure/storage/task-repository.d.ts.map +1 -0
- package/dist/infrastructure/storage/task-repository.js +205 -0
- package/dist/infrastructure/storage/task-repository.js.map +1 -0
- package/dist/infrastructure/ux/bi-directional-learning.d.ts +22 -0
- package/dist/infrastructure/ux/bi-directional-learning.d.ts.map +1 -1
- package/dist/infrastructure/ux/bi-directional-learning.js +144 -7
- package/dist/infrastructure/ux/bi-directional-learning.js.map +1 -1
- package/dist/infrastructure/ux/capability-boundaries.d.ts +22 -0
- package/dist/infrastructure/ux/capability-boundaries.d.ts.map +1 -0
- package/dist/infrastructure/ux/capability-boundaries.js +42 -0
- package/dist/infrastructure/ux/capability-boundaries.js.map +1 -0
- package/dist/infrastructure/ux/comprehensive-formatter.d.ts +21 -0
- package/dist/infrastructure/ux/comprehensive-formatter.d.ts.map +1 -0
- package/dist/infrastructure/ux/comprehensive-formatter.js +117 -0
- package/dist/infrastructure/ux/comprehensive-formatter.js.map +1 -0
- package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +5 -18
- package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -1
- package/dist/infrastructure/ux/contextual-feature-discovery.js +5 -139
- package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -1
- package/dist/infrastructure/ux/feature-discovery.d.ts +3 -33
- package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -1
- package/dist/infrastructure/ux/feature-discovery.js +5 -181
- package/dist/infrastructure/ux/feature-discovery.js.map +1 -1
- package/dist/infrastructure/ux/feedback-prompt.d.ts +26 -0
- package/dist/infrastructure/ux/feedback-prompt.d.ts.map +1 -0
- package/dist/infrastructure/ux/feedback-prompt.js +45 -0
- package/dist/infrastructure/ux/feedback-prompt.js.map +1 -0
- package/dist/infrastructure/ux/hitl-review-portal.d.ts.map +1 -1
- package/dist/infrastructure/ux/hitl-review-portal.js +4 -1
- package/dist/infrastructure/ux/hitl-review-portal.js.map +1 -1
- package/dist/infrastructure/ux/hitl-validation.d.ts +35 -0
- package/dist/infrastructure/ux/hitl-validation.d.ts.map +1 -1
- package/dist/infrastructure/ux/hitl-validation.js +86 -0
- package/dist/infrastructure/ux/hitl-validation.js.map +1 -1
- package/dist/infrastructure/ux/progress-indicator.d.ts +4 -5
- package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -1
- package/dist/infrastructure/ux/progress-indicator.js +35 -40
- package/dist/infrastructure/ux/progress-indicator.js.map +1 -1
- package/dist/infrastructure/ux/proportional-friction.d.ts +73 -0
- package/dist/infrastructure/ux/proportional-friction.d.ts.map +1 -0
- package/dist/infrastructure/ux/proportional-friction.js +200 -0
- package/dist/infrastructure/ux/proportional-friction.js.map +1 -0
- package/dist/infrastructure/ux/review-checkpoint.d.ts +3 -1
- package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -1
- package/dist/infrastructure/ux/review-checkpoint.js +33 -80
- package/dist/infrastructure/ux/review-checkpoint.js.map +1 -1
- package/dist/infrastructure/ux/staged-feature-intro.d.ts +14 -39
- package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -1
- package/dist/infrastructure/ux/staged-feature-intro.js +12 -132
- package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -1
- package/dist/infrastructure/ux/syntax-highlighter.d.ts +1 -2
- package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -1
- package/dist/infrastructure/ux/syntax-highlighter.js +67 -148
- package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -1
- package/dist/infrastructure/validation/agent-feedback.d.ts +51 -0
- package/dist/infrastructure/validation/agent-feedback.d.ts.map +1 -0
- package/dist/infrastructure/validation/agent-feedback.js +55 -0
- package/dist/infrastructure/validation/agent-feedback.js.map +1 -0
- package/dist/infrastructure/validation/agent-validation-helper.d.ts +75 -0
- package/dist/infrastructure/validation/agent-validation-helper.d.ts.map +1 -0
- package/dist/infrastructure/validation/agent-validation-helper.js +137 -0
- package/dist/infrastructure/validation/agent-validation-helper.js.map +1 -0
- package/dist/infrastructure/validation/feedback-stats.d.ts +99 -0
- package/dist/infrastructure/validation/feedback-stats.d.ts.map +1 -0
- package/dist/infrastructure/validation/feedback-stats.js +173 -0
- package/dist/infrastructure/validation/feedback-stats.js.map +1 -0
- package/dist/infrastructure/validation/review-handler.d.ts +26 -0
- package/dist/infrastructure/validation/review-handler.d.ts.map +1 -0
- package/dist/infrastructure/validation/review-handler.js +40 -0
- package/dist/infrastructure/validation/review-handler.js.map +1 -0
- package/dist/infrastructure/validation/summary-aggregator.d.ts +45 -0
- package/dist/infrastructure/validation/summary-aggregator.d.ts.map +1 -0
- package/dist/infrastructure/validation/summary-aggregator.js +70 -0
- package/dist/infrastructure/validation/summary-aggregator.js.map +1 -0
- package/dist/infrastructure/validation/summary-extractor.d.ts +24 -0
- package/dist/infrastructure/validation/summary-extractor.d.ts.map +1 -0
- package/dist/infrastructure/validation/summary-extractor.js +45 -0
- package/dist/infrastructure/validation/summary-extractor.js.map +1 -0
- package/dist/infrastructure/validation/trace-summary.d.ts +45 -0
- package/dist/infrastructure/validation/trace-summary.d.ts.map +1 -0
- package/dist/infrastructure/validation/trace-summary.js +52 -0
- package/dist/infrastructure/validation/trace-summary.js.map +1 -0
- package/dist/infrastructure/validation/trust-config.d.ts +27 -0
- package/dist/infrastructure/validation/trust-config.d.ts.map +1 -0
- package/dist/infrastructure/validation/trust-config.js +113 -0
- package/dist/infrastructure/validation/trust-config.js.map +1 -0
- package/dist/infrastructure/xai/attention-visualizer.d.ts +6 -8
- package/dist/infrastructure/xai/attention-visualizer.d.ts.map +1 -1
- package/dist/infrastructure/xai/attention-visualizer.js +6 -8
- package/dist/infrastructure/xai/attention-visualizer.js.map +1 -1
- package/dist/infrastructure/xai/cot-visualizer.d.ts +6 -9
- package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -1
- package/dist/infrastructure/xai/cot-visualizer.js +6 -9
- package/dist/infrastructure/xai/cot-visualizer.js.map +1 -1
- package/dist/infrastructure/xai/decision-tree-log.d.ts +6 -10
- package/dist/infrastructure/xai/decision-tree-log.d.ts.map +1 -1
- package/dist/infrastructure/xai/decision-tree-log.js +6 -10
- package/dist/infrastructure/xai/decision-tree-log.js.map +1 -1
- package/dist/infrastructure/xai/interactive-xai.d.ts +6 -8
- package/dist/infrastructure/xai/interactive-xai.d.ts.map +1 -1
- package/dist/infrastructure/xai/interactive-xai.js +6 -8
- package/dist/infrastructure/xai/interactive-xai.js.map +1 -1
- package/dist/infrastructure/xai/uncertainty-quantifier.d.ts +6 -9
- package/dist/infrastructure/xai/uncertainty-quantifier.d.ts.map +1 -1
- package/dist/infrastructure/xai/uncertainty-quantifier.js +6 -9
- package/dist/infrastructure/xai/uncertainty-quantifier.js.map +1 -1
- package/dist/monitoring.d.ts +1 -1
- package/dist/monitoring.d.ts.map +1 -1
- package/dist/monitoring.js +12 -9
- package/dist/monitoring.js.map +1 -1
- package/dist/parallel-processor.d.ts.map +1 -1
- package/dist/parallel-processor.js +124 -45
- package/dist/parallel-processor.js.map +1 -1
- package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/ask-command.js +225 -86
- package/dist/presentation/cli/commands/ask-command.js.map +1 -1
- package/dist/presentation/cli/commands/config-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/config-command.js +8 -6
- package/dist/presentation/cli/commands/config-command.js.map +1 -1
- package/dist/presentation/cli/commands/docs-command.d.ts +14 -0
- package/dist/presentation/cli/commands/docs-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/docs-command.js +25 -0
- package/dist/presentation/cli/commands/docs-command.js.map +1 -0
- package/dist/presentation/cli/commands/fix-command.d.ts +10 -0
- package/dist/presentation/cli/commands/fix-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/fix-command.js +53 -0
- package/dist/presentation/cli/commands/fix-command.js.map +1 -0
- package/dist/presentation/cli/commands/help-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/help-command.js +2 -0
- package/dist/presentation/cli/commands/help-command.js.map +1 -1
- package/dist/presentation/cli/commands/models-command.d.ts +13 -0
- package/dist/presentation/cli/commands/models-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/models-command.js +194 -0
- package/dist/presentation/cli/commands/models-command.js.map +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts +1 -0
- package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/orchestrate-command.js +68 -7
- package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -1
- package/dist/presentation/cli/commands/plan-command.d.ts +1 -0
- package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/plan-command.js +88 -8
- package/dist/presentation/cli/commands/plan-command.js.map +1 -1
- package/dist/presentation/cli/commands/product-command.d.ts +14 -0
- package/dist/presentation/cli/commands/product-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/product-command.js +22 -0
- package/dist/presentation/cli/commands/product-command.js.map +1 -0
- package/dist/presentation/cli/commands/react-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/react-command.js +3 -1
- package/dist/presentation/cli/commands/react-command.js.map +1 -1
- package/dist/presentation/cli/commands/review-command.d.ts +14 -0
- package/dist/presentation/cli/commands/review-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/review-command.js +154 -0
- package/dist/presentation/cli/commands/review-command.js.map +1 -0
- package/dist/presentation/cli/commands/run-command.d.ts +13 -0
- package/dist/presentation/cli/commands/run-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/run-command.js +188 -0
- package/dist/presentation/cli/commands/run-command.js.map +1 -0
- package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/setup-command.js +15 -0
- package/dist/presentation/cli/commands/setup-command.js.map +1 -1
- package/dist/presentation/cli/commands/smart-command.d.ts +3 -1
- package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -1
- package/dist/presentation/cli/commands/smart-command.js +92 -6
- package/dist/presentation/cli/commands/smart-command.js.map +1 -1
- package/dist/presentation/cli/commands/status-command.d.ts +14 -0
- package/dist/presentation/cli/commands/status-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/status-command.js +167 -0
- package/dist/presentation/cli/commands/status-command.js.map +1 -0
- package/dist/presentation/cli/commands/suggest-command.d.ts +11 -0
- package/dist/presentation/cli/commands/suggest-command.d.ts.map +1 -0
- package/dist/presentation/cli/commands/suggest-command.js +138 -0
- package/dist/presentation/cli/commands/suggest-command.js.map +1 -0
- package/dist/presentation/cli/error-display.d.ts.map +1 -1
- package/dist/presentation/cli/error-display.js +43 -0
- package/dist/presentation/cli/error-display.js.map +1 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +6 -1
- package/dist/search.js.map +1 -1
- package/dist/session.js +19 -2
- package/dist/session.js.map +1 -1
- package/dist/ui.d.ts +6 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +43 -6
- package/dist/ui.js.map +1 -1
- package/package.json +16 -3
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive Formatter
|
|
3
|
+
* Format content for CLI display with proper indentation and wrapping
|
|
4
|
+
*
|
|
5
|
+
* Phase 1: v0.5.0-alpha.0
|
|
6
|
+
*/
|
|
7
|
+
interface FormatOptions {
|
|
8
|
+
indent?: number;
|
|
9
|
+
maxWidth?: number;
|
|
10
|
+
preserveMarkdown?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Format content for CLI display
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatContent(content: string, options?: FormatOptions): string;
|
|
16
|
+
/**
|
|
17
|
+
* Format reflection/analysis output
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatReflection(reflection: any, options?: FormatOptions): string;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=comprehensive-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comprehensive-formatter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/comprehensive-formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAsDlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAiCrF"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive Formatter
|
|
3
|
+
* Format content for CLI display with proper indentation and wrapping
|
|
4
|
+
*
|
|
5
|
+
* Phase 1: v0.5.0-alpha.0
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Format content for CLI display
|
|
9
|
+
*/
|
|
10
|
+
export function formatContent(content, options = {}) {
|
|
11
|
+
const { indent = 0, maxWidth = 76, preserveMarkdown = true, } = options;
|
|
12
|
+
if (!content) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
const indentStr = ' '.repeat(indent);
|
|
16
|
+
const actualMaxWidth = maxWidth - indent;
|
|
17
|
+
// If content is short enough, return as-is with indentation
|
|
18
|
+
if (content.length <= actualMaxWidth && !content.includes('\n')) {
|
|
19
|
+
return indentStr + content;
|
|
20
|
+
}
|
|
21
|
+
// Handle markdown code blocks
|
|
22
|
+
if (preserveMarkdown && content.includes('```')) {
|
|
23
|
+
return formatMarkdownContent(content, indent, actualMaxWidth);
|
|
24
|
+
}
|
|
25
|
+
// Simple word wrapping
|
|
26
|
+
const lines = content.split('\n');
|
|
27
|
+
const wrappedLines = [];
|
|
28
|
+
for (const line of lines) {
|
|
29
|
+
if (line.length <= actualMaxWidth) {
|
|
30
|
+
wrappedLines.push(indentStr + line);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// Word wrap
|
|
34
|
+
const words = line.split(/\s+/);
|
|
35
|
+
let currentLine = '';
|
|
36
|
+
for (const word of words) {
|
|
37
|
+
if ((currentLine + word).length <= actualMaxWidth) {
|
|
38
|
+
currentLine += (currentLine ? ' ' : '') + word;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
if (currentLine) {
|
|
42
|
+
wrappedLines.push(indentStr + currentLine);
|
|
43
|
+
}
|
|
44
|
+
currentLine = word;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (currentLine) {
|
|
48
|
+
wrappedLines.push(indentStr + currentLine);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return wrappedLines.join('\n');
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Format reflection/analysis output
|
|
56
|
+
*/
|
|
57
|
+
export function formatReflection(reflection, options = {}) {
|
|
58
|
+
if (!reflection) {
|
|
59
|
+
return '';
|
|
60
|
+
}
|
|
61
|
+
if (typeof reflection === 'string') {
|
|
62
|
+
return formatContent(reflection, options);
|
|
63
|
+
}
|
|
64
|
+
if (typeof reflection === 'object') {
|
|
65
|
+
// Format structured reflection
|
|
66
|
+
const parts = [];
|
|
67
|
+
if (reflection.insight) {
|
|
68
|
+
parts.push(`💡 Insight:\n${formatContent(reflection.insight, { ...options, indent: (options.indent || 0) + 2 })}`);
|
|
69
|
+
}
|
|
70
|
+
if (reflection.reasoning) {
|
|
71
|
+
parts.push(`🧠 Reasoning:\n${formatContent(reflection.reasoning, { ...options, indent: (options.indent || 0) + 2 })}`);
|
|
72
|
+
}
|
|
73
|
+
if (reflection.summary) {
|
|
74
|
+
parts.push(`📋 Summary:\n${formatContent(reflection.summary, { ...options, indent: (options.indent || 0) + 2 })}`);
|
|
75
|
+
}
|
|
76
|
+
if (parts.length === 0) {
|
|
77
|
+
return formatContent(JSON.stringify(reflection, null, 2), options);
|
|
78
|
+
}
|
|
79
|
+
return parts.join('\n\n');
|
|
80
|
+
}
|
|
81
|
+
return String(reflection);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Format markdown content with code block preservation
|
|
85
|
+
*/
|
|
86
|
+
function formatMarkdownContent(content, indent, maxWidth) {
|
|
87
|
+
const indentStr = ' '.repeat(indent);
|
|
88
|
+
const lines = content.split('\n');
|
|
89
|
+
const formatted = [];
|
|
90
|
+
let inCodeBlock = false;
|
|
91
|
+
let codeBlockLang = '';
|
|
92
|
+
for (const line of lines) {
|
|
93
|
+
if (line.trim().startsWith('```')) {
|
|
94
|
+
inCodeBlock = !inCodeBlock;
|
|
95
|
+
if (inCodeBlock) {
|
|
96
|
+
codeBlockLang = line.trim().substring(3).trim();
|
|
97
|
+
}
|
|
98
|
+
formatted.push(indentStr + line);
|
|
99
|
+
}
|
|
100
|
+
else if (inCodeBlock) {
|
|
101
|
+
// Preserve code blocks as-is
|
|
102
|
+
formatted.push(indentStr + line);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Format regular markdown lines
|
|
106
|
+
if (line.length <= maxWidth) {
|
|
107
|
+
formatted.push(indentStr + line);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
// Word wrap for non-code content
|
|
111
|
+
formatted.push(formatContent(line, { indent, maxWidth: maxWidth + indent }));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return formatted.join('\n');
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=comprehensive-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comprehensive-formatter.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/comprehensive-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Contextual Feature Discovery
|
|
3
|
-
*
|
|
2
|
+
* Contextual Feature Discovery (v0.5.0-alpha.0 - Stub)
|
|
3
|
+
* TODO: Implement contextual feature suggestions
|
|
4
4
|
*/
|
|
5
5
|
export interface ContextualSuggestion {
|
|
6
|
-
feature: string;
|
|
7
|
-
description: string;
|
|
8
|
-
command: string;
|
|
9
6
|
reason: string;
|
|
10
|
-
|
|
7
|
+
command: string;
|
|
8
|
+
description: string;
|
|
11
9
|
}
|
|
12
|
-
|
|
13
|
-
* Analyze query to suggest contextual features
|
|
14
|
-
*/
|
|
15
|
-
export declare function getContextualSuggestions(query: string): ContextualSuggestion[];
|
|
16
|
-
/**
|
|
17
|
-
* Get contextual feature suggestions based on query limitations
|
|
18
|
-
*/
|
|
19
|
-
export declare function getSuggestionsForLimitation(limitation: string, currentCommand: string): ContextualSuggestion[];
|
|
20
|
-
/**
|
|
21
|
-
* Check if contextual suggestions should be shown
|
|
22
|
-
*/
|
|
23
|
-
export declare function shouldShowContextualSuggestion(query: string, currentCommand: string): ContextualSuggestion | null;
|
|
10
|
+
export declare function shouldShowContextualSuggestion(query: string, command?: string): ContextualSuggestion | null;
|
|
24
11
|
//# sourceMappingURL=contextual-feature-discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextual-feature-discovery.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/contextual-feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"contextual-feature-discovery.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/contextual-feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAI3G"}
|
|
@@ -1,144 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Contextual Feature Discovery
|
|
3
|
-
*
|
|
2
|
+
* Contextual Feature Discovery (v0.5.0-alpha.0 - Stub)
|
|
3
|
+
* TODO: Implement contextual feature suggestions
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export function getContextualSuggestions(query) {
|
|
9
|
-
const suggestions = [];
|
|
10
|
-
const queryLower = query.toLowerCase();
|
|
11
|
-
// Multi-file operations → suggest orchestrate
|
|
12
|
-
if ((queryLower.includes('multiple') || queryLower.includes('several') || queryLower.includes('all')) &&
|
|
13
|
-
(queryLower.includes('file') || queryLower.includes('module'))) {
|
|
14
|
-
suggestions.push({
|
|
15
|
-
feature: 'Multi-agent Orchestration',
|
|
16
|
-
description: 'Plan and execute complex multi-step tasks across multiple files',
|
|
17
|
-
command: 'codehere orchestrate "your goal"',
|
|
18
|
-
reason: 'Your query involves multiple files/modules',
|
|
19
|
-
confidence: 0.8,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
// Complex refactoring → suggest plan
|
|
23
|
-
if (queryLower.includes('refactor') &&
|
|
24
|
-
(queryLower.includes('large') || queryLower.includes('complex') || queryLower.includes('multiple'))) {
|
|
25
|
-
suggestions.push({
|
|
26
|
-
feature: 'Planning Mode',
|
|
27
|
-
description: 'Generate hierarchical plans for large refactoring tasks',
|
|
28
|
-
command: 'codehere plan "refactor goal"',
|
|
29
|
-
reason: 'Complex refactoring tasks benefit from structured planning',
|
|
30
|
-
confidence: 0.9,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
// Debugging/problem solving → suggest react
|
|
34
|
-
if (queryLower.includes('debug') ||
|
|
35
|
-
queryLower.includes('fix') ||
|
|
36
|
-
queryLower.includes('error') ||
|
|
37
|
-
queryLower.includes('issue') ||
|
|
38
|
-
queryLower.includes('problem') ||
|
|
39
|
-
queryLower.includes('why') ||
|
|
40
|
-
queryLower.includes('why is')) {
|
|
41
|
-
suggestions.push({
|
|
42
|
-
feature: 'ReAct Reasoning',
|
|
43
|
-
description: 'Debug and solve complex problems step-by-step with reasoning',
|
|
44
|
-
command: 'codehere react "your problem"',
|
|
45
|
-
reason: 'Step-by-step reasoning helps with debugging',
|
|
46
|
-
confidence: 0.85,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
// Security-related → suggest security commands
|
|
50
|
-
if (queryLower.includes('security') ||
|
|
51
|
-
queryLower.includes('vulnerability') ||
|
|
52
|
-
queryLower.includes('vulnerabilities') ||
|
|
53
|
-
queryLower.includes('secure') ||
|
|
54
|
-
queryLower.includes('audit')) {
|
|
55
|
-
suggestions.push({
|
|
56
|
-
feature: 'Security Scanning',
|
|
57
|
-
description: 'Codehere automatically scans for security issues. Use edit command to fix them.',
|
|
58
|
-
command: 'codehere "fix security issues in auth.ts"',
|
|
59
|
-
reason: 'Security-focused queries benefit from comprehensive scanning',
|
|
60
|
-
confidence: 0.9,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
// Knowledge/documentation → suggest knowledge commands
|
|
64
|
-
if (queryLower.includes('document') ||
|
|
65
|
-
queryLower.includes('knowledge') ||
|
|
66
|
-
queryLower.includes('learn') ||
|
|
67
|
-
queryLower.includes('pattern') ||
|
|
68
|
-
queryLower.includes('remember')) {
|
|
69
|
-
suggestions.push({
|
|
70
|
-
feature: 'Knowledge Management',
|
|
71
|
-
description: 'Query and manage preserved knowledge about your codebase',
|
|
72
|
-
command: 'codehere knowledge query "your query"',
|
|
73
|
-
reason: 'Knowledge management helps with documentation and learning',
|
|
74
|
-
confidence: 0.8,
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
// Performance optimization → suggest trace/learning
|
|
78
|
-
if (queryLower.includes('performance') ||
|
|
79
|
-
queryLower.includes('optimize') ||
|
|
80
|
-
queryLower.includes('slow') ||
|
|
81
|
-
queryLower.includes('faster')) {
|
|
82
|
-
suggestions.push({
|
|
83
|
-
feature: 'Execution Tracing',
|
|
84
|
-
description: 'Analyze execution patterns to understand performance',
|
|
85
|
-
command: 'codehere trace list',
|
|
86
|
-
reason: 'Tracing helps identify performance bottlenecks',
|
|
87
|
-
confidence: 0.75,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
// Configuration/setup → suggest config commands
|
|
91
|
-
if (queryLower.includes('config') ||
|
|
92
|
-
queryLower.includes('setting') ||
|
|
93
|
-
queryLower.includes('preference') ||
|
|
94
|
-
queryLower.includes('setup')) {
|
|
95
|
-
suggestions.push({
|
|
96
|
-
feature: 'Configuration Management',
|
|
97
|
-
description: 'Manage preferences and settings',
|
|
98
|
-
command: 'codehere config',
|
|
99
|
-
reason: 'Configuration queries can be handled directly',
|
|
100
|
-
confidence: 0.95,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
return suggestions.sort((a, b) => b.confidence - a.confidence); // Sort by confidence
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Get contextual feature suggestions based on query limitations
|
|
107
|
-
*/
|
|
108
|
-
export function getSuggestionsForLimitation(limitation, currentCommand) {
|
|
109
|
-
const suggestions = [];
|
|
110
|
-
const limitationLower = limitation.toLowerCase();
|
|
111
|
-
// If limitation mentions multi-file, suggest orchestrate
|
|
112
|
-
if (limitationLower.includes('multi-file') || limitationLower.includes('multiple files')) {
|
|
113
|
-
suggestions.push({
|
|
114
|
-
feature: 'Multi-agent Orchestration',
|
|
115
|
-
description: 'Handle complex multi-file operations with planning',
|
|
116
|
-
command: 'codehere orchestrate "your goal"',
|
|
117
|
-
reason: 'Orchestrate mode handles multi-file operations better',
|
|
118
|
-
confidence: 0.9,
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
// If limitation mentions complexity, suggest plan
|
|
122
|
-
if (limitationLower.includes('complex') || limitationLower.includes('complicated')) {
|
|
123
|
-
suggestions.push({
|
|
124
|
-
feature: 'Planning Mode',
|
|
125
|
-
description: 'Break down complex tasks into manageable steps',
|
|
126
|
-
command: 'codehere plan "your goal"',
|
|
127
|
-
reason: 'Planning mode helps with complex tasks',
|
|
128
|
-
confidence: 0.85,
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
return suggestions;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Check if contextual suggestions should be shown
|
|
135
|
-
*/
|
|
136
|
-
export function shouldShowContextualSuggestion(query, currentCommand) {
|
|
137
|
-
const suggestions = getContextualSuggestions(query);
|
|
138
|
-
// Only show top suggestion if confidence is high enough
|
|
139
|
-
if (suggestions.length > 0 && suggestions[0].confidence >= 0.75) {
|
|
140
|
-
return suggestions[0];
|
|
141
|
-
}
|
|
5
|
+
export function shouldShowContextualSuggestion(query, command) {
|
|
6
|
+
// In alpha, return null (no suggestions)
|
|
7
|
+
// Can be enhanced later with heuristics
|
|
142
8
|
return null;
|
|
143
9
|
}
|
|
144
10
|
//# sourceMappingURL=contextual-feature-discovery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextual-feature-discovery.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/contextual-feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"contextual-feature-discovery.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/contextual-feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,UAAU,8BAA8B,CAAC,KAAa,EAAE,OAAgB;IAC5E,yCAAyC;IACzC,wCAAwC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,22 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Feature Discovery
|
|
3
|
-
*
|
|
2
|
+
* Feature Discovery (v0.5.0-alpha.0 - Stub)
|
|
3
|
+
* TODO: Implement feature discovery system
|
|
4
4
|
*/
|
|
5
|
-
export interface OnboardingState {
|
|
6
|
-
onboardingComplete: boolean;
|
|
7
|
-
onboardingDate?: string;
|
|
8
|
-
commandCount: number;
|
|
9
|
-
featuresDiscovered: string[];
|
|
10
|
-
lastDiscoveryShown?: string;
|
|
11
|
-
lastDiscoveryDate?: string;
|
|
12
|
-
}
|
|
13
5
|
export interface FeatureDiscovery {
|
|
14
6
|
id: string;
|
|
15
|
-
trigger: {
|
|
16
|
-
commandCount?: number;
|
|
17
|
-
commands?: string[];
|
|
18
|
-
condition?: (state: OnboardingState) => boolean;
|
|
19
|
-
};
|
|
20
7
|
message: string;
|
|
21
8
|
features: Array<{
|
|
22
9
|
name: string;
|
|
@@ -24,24 +11,7 @@ export interface FeatureDiscovery {
|
|
|
24
11
|
command: string;
|
|
25
12
|
}>;
|
|
26
13
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Track command usage
|
|
29
|
-
*/
|
|
30
14
|
export declare function trackCommand(command: string): void;
|
|
31
|
-
/**
|
|
32
|
-
* Check if feature discovery should be shown
|
|
33
|
-
*/
|
|
34
15
|
export declare function shouldShowFeatureDiscovery(command: string): FeatureDiscovery | null;
|
|
35
|
-
|
|
36
|
-
* Mark feature discovery as shown
|
|
37
|
-
*/
|
|
38
|
-
export declare function markFeatureDiscoveryShown(discoveryId: string): void;
|
|
39
|
-
/**
|
|
40
|
-
* Check if user is first-time (onboarding not complete)
|
|
41
|
-
*/
|
|
42
|
-
export declare function isFirstTimeUser(): boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Get command count for analytics
|
|
45
|
-
*/
|
|
46
|
-
export declare function getCommandCount(): number;
|
|
16
|
+
export declare function markFeatureDiscoveryShown(id: string): void;
|
|
47
17
|
//# sourceMappingURL=feature-discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-discovery.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"feature-discovery.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAEnF;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE1D"}
|
|
@@ -1,190 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Feature Discovery
|
|
3
|
-
*
|
|
4
|
-
*/
|
|
5
|
-
import { readFileSync, existsSync, writeFileSync, mkdirSync } from 'fs';
|
|
6
|
-
import { join } from 'path';
|
|
7
|
-
const DISCOVERY_FEATURES = [
|
|
8
|
-
{
|
|
9
|
-
id: 'basic-commands',
|
|
10
|
-
trigger: { commandCount: 3 },
|
|
11
|
-
message: 'You\'ve mastered the basics! Try these next:',
|
|
12
|
-
features: [
|
|
13
|
-
{
|
|
14
|
-
name: 'Multi-agent Orchestration',
|
|
15
|
-
description: 'Plan and execute complex multi-step tasks',
|
|
16
|
-
command: 'codehere orchestrate "your goal"',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'ReAct Reasoning',
|
|
20
|
-
description: 'Debug and solve complex problems step-by-step',
|
|
21
|
-
command: 'codehere react "your problem"',
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
name: 'Planning',
|
|
25
|
-
description: 'Generate hierarchical plans for large tasks',
|
|
26
|
-
command: 'codehere plan "your goal"',
|
|
27
|
-
},
|
|
28
|
-
],
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
id: 'advanced-features',
|
|
32
|
-
trigger: { commandCount: 5 },
|
|
33
|
-
message: 'Ready for advanced features? Discover more:',
|
|
34
|
-
features: [
|
|
35
|
-
{
|
|
36
|
-
name: 'Execution Tracing',
|
|
37
|
-
description: 'View and reproduce agent execution traces',
|
|
38
|
-
command: 'codehere trace show <runId>',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: 'Knowledge Management',
|
|
42
|
-
description: 'Query and manage preserved knowledge',
|
|
43
|
-
command: 'codehere knowledge query "your query"',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
name: 'Learning Dashboard',
|
|
47
|
-
description: 'View patterns and insights learned',
|
|
48
|
-
command: 'codehere learning overview',
|
|
49
|
-
},
|
|
50
|
-
],
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
id: 'config-management',
|
|
54
|
-
trigger: { commands: ['ask', 'explain', 'edit'] },
|
|
55
|
-
message: 'Customize your experience:',
|
|
56
|
-
features: [
|
|
57
|
-
{
|
|
58
|
-
name: 'Configuration',
|
|
59
|
-
description: 'Manage preferences and settings',
|
|
60
|
-
command: 'codehere config',
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
name: 'Auto-completion',
|
|
64
|
-
description: 'Install shell completion for faster commands',
|
|
65
|
-
command: 'codehere completion bash',
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
},
|
|
69
|
-
];
|
|
70
|
-
/**
|
|
71
|
-
* Get onboarding state from file
|
|
72
|
-
*/
|
|
73
|
-
function getOnboardingState() {
|
|
74
|
-
try {
|
|
75
|
-
const configDir = join(process.cwd(), 'data');
|
|
76
|
-
const onboardingPath = join(configDir, 'onboarding.json');
|
|
77
|
-
if (existsSync(onboardingPath)) {
|
|
78
|
-
const state = JSON.parse(readFileSync(onboardingPath, 'utf-8'));
|
|
79
|
-
return {
|
|
80
|
-
onboardingComplete: state.onboardingComplete || false,
|
|
81
|
-
onboardingDate: state.onboardingDate,
|
|
82
|
-
commandCount: state.commandCount || 0,
|
|
83
|
-
featuresDiscovered: state.featuresDiscovered || [],
|
|
84
|
-
lastDiscoveryShown: state.lastDiscoveryShown,
|
|
85
|
-
lastDiscoveryDate: state.lastDiscoveryDate,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
// Ignore errors
|
|
91
|
-
}
|
|
92
|
-
return {
|
|
93
|
-
onboardingComplete: false,
|
|
94
|
-
commandCount: 0,
|
|
95
|
-
featuresDiscovered: [],
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Save onboarding state
|
|
100
|
-
*/
|
|
101
|
-
function saveOnboardingState(state) {
|
|
102
|
-
try {
|
|
103
|
-
const configDir = join(process.cwd(), 'data');
|
|
104
|
-
if (!existsSync(configDir)) {
|
|
105
|
-
mkdirSync(configDir, { recursive: true });
|
|
106
|
-
}
|
|
107
|
-
const onboardingPath = join(configDir, 'onboarding.json');
|
|
108
|
-
writeFileSync(onboardingPath, JSON.stringify(state, null, 2));
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
// Ignore errors - non-critical
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Track command usage
|
|
2
|
+
* Feature Discovery (v0.5.0-alpha.0 - Stub)
|
|
3
|
+
* TODO: Implement feature discovery system
|
|
116
4
|
*/
|
|
117
5
|
export function trackCommand(command) {
|
|
118
|
-
|
|
119
|
-
state.commandCount = (state.commandCount || 0) + 1;
|
|
120
|
-
// Track feature discovery
|
|
121
|
-
if (!state.featuresDiscovered.includes(command)) {
|
|
122
|
-
state.featuresDiscovered.push(command);
|
|
123
|
-
}
|
|
124
|
-
saveOnboardingState(state);
|
|
6
|
+
// Stub implementation
|
|
125
7
|
}
|
|
126
|
-
/**
|
|
127
|
-
* Check if feature discovery should be shown
|
|
128
|
-
*/
|
|
129
8
|
export function shouldShowFeatureDiscovery(command) {
|
|
130
|
-
const state = getOnboardingState();
|
|
131
|
-
// Don't show if onboarding not complete
|
|
132
|
-
if (!state.onboardingComplete) {
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
// Don't show discovery too frequently (once per day max)
|
|
136
|
-
const lastDate = state.lastDiscoveryDate;
|
|
137
|
-
if (lastDate) {
|
|
138
|
-
const lastShown = new Date(lastDate);
|
|
139
|
-
const now = new Date();
|
|
140
|
-
const daysSince = (now.getTime() - lastShown.getTime()) / (1000 * 60 * 60 * 24);
|
|
141
|
-
if (daysSince < 1) {
|
|
142
|
-
return null; // Already shown today
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
// Check each discovery feature
|
|
146
|
-
for (const discovery of DISCOVERY_FEATURES) {
|
|
147
|
-
// Skip if already shown
|
|
148
|
-
if (state.lastDiscoveryShown === discovery.id) {
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
const trigger = discovery.trigger;
|
|
152
|
-
// Check command count trigger
|
|
153
|
-
if (trigger.commandCount && state.commandCount >= trigger.commandCount) {
|
|
154
|
-
return discovery;
|
|
155
|
-
}
|
|
156
|
-
// Check commands trigger
|
|
157
|
-
if (trigger.commands && trigger.commands.includes(command)) {
|
|
158
|
-
return discovery;
|
|
159
|
-
}
|
|
160
|
-
// Check custom condition
|
|
161
|
-
if (trigger.condition && trigger.condition(state)) {
|
|
162
|
-
return discovery;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
9
|
return null;
|
|
166
10
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
*/
|
|
170
|
-
export function markFeatureDiscoveryShown(discoveryId) {
|
|
171
|
-
const state = getOnboardingState();
|
|
172
|
-
state.lastDiscoveryShown = discoveryId;
|
|
173
|
-
state.lastDiscoveryDate = new Date().toISOString();
|
|
174
|
-
saveOnboardingState(state);
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Check if user is first-time (onboarding not complete)
|
|
178
|
-
*/
|
|
179
|
-
export function isFirstTimeUser() {
|
|
180
|
-
const state = getOnboardingState();
|
|
181
|
-
return !state.onboardingComplete;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Get command count for analytics
|
|
185
|
-
*/
|
|
186
|
-
export function getCommandCount() {
|
|
187
|
-
const state = getOnboardingState();
|
|
188
|
-
return state.commandCount || 0;
|
|
11
|
+
export function markFeatureDiscoveryShown(id) {
|
|
12
|
+
// Stub implementation
|
|
189
13
|
}
|
|
190
14
|
//# sourceMappingURL=feature-discovery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-discovery.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"feature-discovery.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/feature-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,sBAAsB;AACxB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EAAU;IAClD,sBAAsB;AACxB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feedback Prompt
|
|
3
|
+
* Collect and store user feedback for bidirectional learning
|
|
4
|
+
*
|
|
5
|
+
* Phase 1: v0.5.0-alpha.0
|
|
6
|
+
*/
|
|
7
|
+
interface FeedbackContext {
|
|
8
|
+
query?: string;
|
|
9
|
+
response?: string;
|
|
10
|
+
sessionId?: string;
|
|
11
|
+
operation?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Prompt user for feedback (non-blocking, returns null if user skips)
|
|
15
|
+
*/
|
|
16
|
+
export declare function promptForFeedback(operation: string, context: FeedbackContext): Promise<string | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Store feedback in the learning system
|
|
19
|
+
*/
|
|
20
|
+
export declare function storeFeedback(learningSystem: any, userId: string, feedback: string, metadata: FeedbackContext): void;
|
|
21
|
+
/**
|
|
22
|
+
* Display feedback confirmation message
|
|
23
|
+
*/
|
|
24
|
+
export declare function displayFeedbackConfirmation(feedback: string): void;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=feedback-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-prompt.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/feedback-prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,cAAc,EAAE,GAAG,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,eAAe,GACxB,IAAI,CAmBN;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGlE"}
|