lattice-orchestrator 0.7.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/LICENSE +201 -0
- package/README.md +58 -0
- package/config/logrotate.conf +15 -0
- package/dist/cli-parser.d.ts +11 -0
- package/dist/cli-parser.d.ts.map +1 -0
- package/dist/cli-parser.js +48 -0
- package/dist/cli-parser.js.map +1 -0
- package/dist/lattice-server.d.ts +70 -0
- package/dist/lattice-server.d.ts.map +1 -0
- package/dist/lattice-server.js +969 -0
- package/dist/lattice-server.js.map +1 -0
- package/dist/mcp-server/index.d.ts +3 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/index.js +190 -0
- package/dist/mcp-server/index.js.map +1 -0
- package/dist/mcp-server/lattice-tools.d.ts +15 -0
- package/dist/mcp-server/lattice-tools.d.ts.map +1 -0
- package/dist/mcp-server/lattice-tools.js +366 -0
- package/dist/mcp-server/lattice-tools.js.map +1 -0
- package/dist/middleware/cors-setup.d.ts +7 -0
- package/dist/middleware/cors-setup.d.ts.map +1 -0
- package/dist/middleware/cors-setup.js +8 -0
- package/dist/middleware/cors-setup.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +4 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +27 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/query-parser.d.ts +11 -0
- package/dist/middleware/query-parser.d.ts.map +1 -0
- package/dist/middleware/query-parser.js +68 -0
- package/dist/middleware/query-parser.js.map +1 -0
- package/dist/middleware/request-logger.d.ts +4 -0
- package/dist/middleware/request-logger.d.ts.map +1 -0
- package/dist/middleware/request-logger.js +6 -0
- package/dist/middleware/request-logger.js.map +1 -0
- package/dist/process-daemon/index.d.ts +14 -0
- package/dist/process-daemon/index.d.ts.map +1 -0
- package/dist/process-daemon/index.js +51 -0
- package/dist/process-daemon/index.js.map +1 -0
- package/dist/process-daemon/process-daemon.d.ts +101 -0
- package/dist/process-daemon/process-daemon.d.ts.map +1 -0
- package/dist/process-daemon/process-daemon.js +846 -0
- package/dist/process-daemon/process-daemon.js.map +1 -0
- package/dist/process-daemon/process-manager-client.d.ts +123 -0
- package/dist/process-daemon/process-manager-client.d.ts.map +1 -0
- package/dist/process-daemon/process-manager-client.js +329 -0
- package/dist/process-daemon/process-manager-client.js.map +1 -0
- package/dist/process-daemon/process-manager-interface.d.ts +61 -0
- package/dist/process-daemon/process-manager-interface.d.ts.map +1 -0
- package/dist/process-daemon/process-manager-interface.js +8 -0
- package/dist/process-daemon/process-manager-interface.js.map +1 -0
- package/dist/process-daemon/test-daemon.d.ts +12 -0
- package/dist/process-daemon/test-daemon.d.ts.map +1 -0
- package/dist/process-daemon/test-daemon.js +81 -0
- package/dist/process-daemon/test-daemon.js.map +1 -0
- package/dist/process-daemon/types.d.ts +97 -0
- package/dist/process-daemon/types.d.ts.map +1 -0
- package/dist/process-daemon/types.js +8 -0
- package/dist/process-daemon/types.js.map +1 -0
- package/dist/routes/analysis.routes.d.ts +13 -0
- package/dist/routes/analysis.routes.d.ts.map +1 -0
- package/dist/routes/analysis.routes.js +520 -0
- package/dist/routes/analysis.routes.js.map +1 -0
- package/dist/routes/config.routes.d.ts +4 -0
- package/dist/routes/config.routes.d.ts.map +1 -0
- package/dist/routes/config.routes.js +27 -0
- package/dist/routes/config.routes.js.map +1 -0
- package/dist/routes/conversation.routes.d.ts +43 -0
- package/dist/routes/conversation.routes.d.ts.map +1 -0
- package/dist/routes/conversation.routes.js +79 -0
- package/dist/routes/conversation.routes.js.map +1 -0
- package/dist/routes/filesystem.routes.d.ts +4 -0
- package/dist/routes/filesystem.routes.d.ts.map +1 -0
- package/dist/routes/filesystem.routes.js +86 -0
- package/dist/routes/filesystem.routes.js.map +1 -0
- package/dist/routes/insights.routes.d.ts +17 -0
- package/dist/routes/insights.routes.d.ts.map +1 -0
- package/dist/routes/insights.routes.js +633 -0
- package/dist/routes/insights.routes.js.map +1 -0
- package/dist/routes/lattice.routes.d.ts +10 -0
- package/dist/routes/lattice.routes.d.ts.map +1 -0
- package/dist/routes/lattice.routes.js +123 -0
- package/dist/routes/lattice.routes.js.map +1 -0
- package/dist/routes/license.routes.d.ts +3 -0
- package/dist/routes/license.routes.d.ts.map +1 -0
- package/dist/routes/license.routes.js +95 -0
- package/dist/routes/license.routes.js.map +1 -0
- package/dist/routes/log.routes.d.ts +3 -0
- package/dist/routes/log.routes.d.ts.map +1 -0
- package/dist/routes/log.routes.js +184 -0
- package/dist/routes/log.routes.js.map +1 -0
- package/dist/routes/pending-question.routes.d.ts +9 -0
- package/dist/routes/pending-question.routes.d.ts.map +1 -0
- package/dist/routes/pending-question.routes.js +162 -0
- package/dist/routes/pending-question.routes.js.map +1 -0
- package/dist/routes/permission.routes.d.ts +18 -0
- package/dist/routes/permission.routes.d.ts.map +1 -0
- package/dist/routes/permission.routes.js +370 -0
- package/dist/routes/permission.routes.js.map +1 -0
- package/dist/routes/process-events.routes.d.ts +9 -0
- package/dist/routes/process-events.routes.d.ts.map +1 -0
- package/dist/routes/process-events.routes.js +141 -0
- package/dist/routes/process-events.routes.js.map +1 -0
- package/dist/routes/prototype.routes.d.ts +9 -0
- package/dist/routes/prototype.routes.d.ts.map +1 -0
- package/dist/routes/prototype.routes.js +757 -0
- package/dist/routes/prototype.routes.js.map +1 -0
- package/dist/routes/question.routes.d.ts +8 -0
- package/dist/routes/question.routes.d.ts.map +1 -0
- package/dist/routes/question.routes.js +83 -0
- package/dist/routes/question.routes.js.map +1 -0
- package/dist/routes/session-control.routes.d.ts +29 -0
- package/dist/routes/session-control.routes.d.ts.map +1 -0
- package/dist/routes/session-control.routes.js +455 -0
- package/dist/routes/session-control.routes.js.map +1 -0
- package/dist/routes/session-lifecycle.routes.d.ts +21 -0
- package/dist/routes/session-lifecycle.routes.d.ts.map +1 -0
- package/dist/routes/session-lifecycle.routes.js +256 -0
- package/dist/routes/session-lifecycle.routes.js.map +1 -0
- package/dist/routes/session-query.routes.d.ts +25 -0
- package/dist/routes/session-query.routes.d.ts.map +1 -0
- package/dist/routes/session-query.routes.js +363 -0
- package/dist/routes/session-query.routes.js.map +1 -0
- package/dist/routes/session-stream.routes.d.ts +21 -0
- package/dist/routes/session-stream.routes.d.ts.map +1 -0
- package/dist/routes/session-stream.routes.js +235 -0
- package/dist/routes/session-stream.routes.js.map +1 -0
- package/dist/routes/streaming.routes.d.ts +4 -0
- package/dist/routes/streaming.routes.d.ts.map +1 -0
- package/dist/routes/streaming.routes.js +33 -0
- package/dist/routes/streaming.routes.js.map +1 -0
- package/dist/routes/system.routes.d.ts +7 -0
- package/dist/routes/system.routes.d.ts.map +1 -0
- package/dist/routes/system.routes.js +214 -0
- package/dist/routes/system.routes.js.map +1 -0
- package/dist/routes/walkthrough.routes.d.ts +19 -0
- package/dist/routes/walkthrough.routes.d.ts.map +1 -0
- package/dist/routes/walkthrough.routes.js +688 -0
- package/dist/routes/walkthrough.routes.js.map +1 -0
- package/dist/routes/working-directories.routes.d.ts +4 -0
- package/dist/routes/working-directories.routes.d.ts.map +1 -0
- package/dist/routes/working-directories.routes.js +25 -0
- package/dist/routes/working-directories.routes.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +34 -0
- package/dist/server.js.map +1 -0
- package/dist/services/ToolMetricsService.d.ts +53 -0
- package/dist/services/ToolMetricsService.d.ts.map +1 -0
- package/dist/services/ToolMetricsService.js +230 -0
- package/dist/services/ToolMetricsService.js.map +1 -0
- package/dist/services/claude-router-service.d.ts +19 -0
- package/dist/services/claude-router-service.d.ts.map +1 -0
- package/dist/services/claude-router-service.js +160 -0
- package/dist/services/claude-router-service.js.map +1 -0
- package/dist/services/commands-service.d.ts +20 -0
- package/dist/services/commands-service.d.ts.map +1 -0
- package/dist/services/commands-service.js +115 -0
- package/dist/services/commands-service.js.map +1 -0
- package/dist/services/connection-debug-logger.d.ts +85 -0
- package/dist/services/connection-debug-logger.d.ts.map +1 -0
- package/dist/services/connection-debug-logger.js +221 -0
- package/dist/services/connection-debug-logger.js.map +1 -0
- package/dist/services/debug-log.d.ts +6 -0
- package/dist/services/debug-log.d.ts.map +1 -0
- package/dist/services/debug-log.js +27 -0
- package/dist/services/debug-log.js.map +1 -0
- package/dist/services/gemini-service.d.ts +35 -0
- package/dist/services/gemini-service.d.ts.map +1 -0
- package/dist/services/gemini-service.js +256 -0
- package/dist/services/gemini-service.js.map +1 -0
- package/dist/services/infrastructure/config-service.d.ts +79 -0
- package/dist/services/infrastructure/config-service.d.ts.map +1 -0
- package/dist/services/infrastructure/config-service.js +431 -0
- package/dist/services/infrastructure/config-service.js.map +1 -0
- package/dist/services/infrastructure/cost-tracker.d.ts +112 -0
- package/dist/services/infrastructure/cost-tracker.d.ts.map +1 -0
- package/dist/services/infrastructure/cost-tracker.js +423 -0
- package/dist/services/infrastructure/cost-tracker.js.map +1 -0
- package/dist/services/infrastructure/file-system-service.d.ts +61 -0
- package/dist/services/infrastructure/file-system-service.d.ts.map +1 -0
- package/dist/services/infrastructure/file-system-service.js +348 -0
- package/dist/services/infrastructure/file-system-service.js.map +1 -0
- package/dist/services/infrastructure/log-formatter.d.ts +5 -0
- package/dist/services/infrastructure/log-formatter.d.ts.map +1 -0
- package/dist/services/infrastructure/log-formatter.js +77 -0
- package/dist/services/infrastructure/log-formatter.js.map +1 -0
- package/dist/services/infrastructure/log-stream-buffer.d.ts +11 -0
- package/dist/services/infrastructure/log-stream-buffer.d.ts.map +1 -0
- package/dist/services/infrastructure/log-stream-buffer.js +36 -0
- package/dist/services/infrastructure/log-stream-buffer.js.map +1 -0
- package/dist/services/infrastructure/logger.d.ts +71 -0
- package/dist/services/infrastructure/logger.d.ts.map +1 -0
- package/dist/services/infrastructure/logger.js +215 -0
- package/dist/services/infrastructure/logger.js.map +1 -0
- package/dist/services/infrastructure/service-registry.d.ts +86 -0
- package/dist/services/infrastructure/service-registry.d.ts.map +1 -0
- package/dist/services/infrastructure/service-registry.js +162 -0
- package/dist/services/infrastructure/service-registry.js.map +1 -0
- package/dist/services/infrastructure/stream-manager.d.ts +87 -0
- package/dist/services/infrastructure/stream-manager.d.ts.map +1 -0
- package/dist/services/infrastructure/stream-manager.js +436 -0
- package/dist/services/infrastructure/stream-manager.js.map +1 -0
- package/dist/services/infrastructure/timing.d.ts +72 -0
- package/dist/services/infrastructure/timing.d.ts.map +1 -0
- package/dist/services/infrastructure/timing.js +115 -0
- package/dist/services/infrastructure/timing.js.map +1 -0
- package/dist/services/insights/anthropic-service.d.ts +224 -0
- package/dist/services/insights/anthropic-service.d.ts.map +1 -0
- package/dist/services/insights/anthropic-service.js +1062 -0
- package/dist/services/insights/anthropic-service.js.map +1 -0
- package/dist/services/insights/insight-audit-repository.d.ts +119 -0
- package/dist/services/insights/insight-audit-repository.d.ts.map +1 -0
- package/dist/services/insights/insight-audit-repository.js +242 -0
- package/dist/services/insights/insight-audit-repository.js.map +1 -0
- package/dist/services/insights/insight-queue.d.ts +99 -0
- package/dist/services/insights/insight-queue.d.ts.map +1 -0
- package/dist/services/insights/insight-queue.js +277 -0
- package/dist/services/insights/insight-queue.js.map +1 -0
- package/dist/services/insights/insights-computer.d.ts +132 -0
- package/dist/services/insights/insights-computer.d.ts.map +1 -0
- package/dist/services/insights/insights-computer.js +936 -0
- package/dist/services/insights/insights-computer.js.map +1 -0
- package/dist/services/insights/insights-coordinator.d.ts +165 -0
- package/dist/services/insights/insights-coordinator.d.ts.map +1 -0
- package/dist/services/insights/insights-coordinator.js +1678 -0
- package/dist/services/insights/insights-coordinator.js.map +1 -0
- package/dist/services/insights/insights-event-log.d.ts +196 -0
- package/dist/services/insights/insights-event-log.d.ts.map +1 -0
- package/dist/services/insights/insights-event-log.js +319 -0
- package/dist/services/insights/insights-event-log.js.map +1 -0
- package/dist/services/lattice-service.d.ts +77 -0
- package/dist/services/lattice-service.d.ts.map +1 -0
- package/dist/services/lattice-service.js +195 -0
- package/dist/services/lattice-service.js.map +1 -0
- package/dist/services/license-service.d.ts +69 -0
- package/dist/services/license-service.d.ts.map +1 -0
- package/dist/services/license-service.js +330 -0
- package/dist/services/license-service.js.map +1 -0
- package/dist/services/mcp-config-generator.d.ts +32 -0
- package/dist/services/mcp-config-generator.d.ts.map +1 -0
- package/dist/services/mcp-config-generator.js +126 -0
- package/dist/services/mcp-config-generator.js.map +1 -0
- package/dist/services/message-filter.d.ts +22 -0
- package/dist/services/message-filter.d.ts.map +1 -0
- package/dist/services/message-filter.js +57 -0
- package/dist/services/message-filter.js.map +1 -0
- package/dist/services/notification-service.d.ts +45 -0
- package/dist/services/notification-service.d.ts.map +1 -0
- package/dist/services/notification-service.js +184 -0
- package/dist/services/notification-service.js.map +1 -0
- package/dist/services/pending-question-service.d.ts +97 -0
- package/dist/services/pending-question-service.d.ts.map +1 -0
- package/dist/services/pending-question-service.js +223 -0
- package/dist/services/pending-question-service.js.map +1 -0
- package/dist/services/permission-event-log.d.ts +136 -0
- package/dist/services/permission-event-log.d.ts.map +1 -0
- package/dist/services/permission-event-log.js +252 -0
- package/dist/services/permission-event-log.js.map +1 -0
- package/dist/services/permission-pattern-matcher.d.ts +82 -0
- package/dist/services/permission-pattern-matcher.d.ts.map +1 -0
- package/dist/services/permission-pattern-matcher.js +294 -0
- package/dist/services/permission-pattern-matcher.js.map +1 -0
- package/dist/services/permission-tracker.d.ts +67 -0
- package/dist/services/permission-tracker.d.ts.map +1 -0
- package/dist/services/permission-tracker.js +162 -0
- package/dist/services/permission-tracker.js.map +1 -0
- package/dist/services/process/claude-process-manager.d.ts +142 -0
- package/dist/services/process/claude-process-manager.d.ts.map +1 -0
- package/dist/services/process/claude-process-manager.js +1218 -0
- package/dist/services/process/claude-process-manager.js.map +1 -0
- package/dist/services/process/conversation-status-manager.d.ts +110 -0
- package/dist/services/process/conversation-status-manager.d.ts.map +1 -0
- package/dist/services/process/conversation-status-manager.js +349 -0
- package/dist/services/process/conversation-status-manager.js.map +1 -0
- package/dist/services/process/json-lines-parser.d.ts +19 -0
- package/dist/services/process/json-lines-parser.d.ts.map +1 -0
- package/dist/services/process/json-lines-parser.js +59 -0
- package/dist/services/process/json-lines-parser.js.map +1 -0
- package/dist/services/process/process-event-log.d.ts +263 -0
- package/dist/services/process/process-event-log.d.ts.map +1 -0
- package/dist/services/process/process-event-log.js +509 -0
- package/dist/services/process/process-event-log.js.map +1 -0
- package/dist/services/process/process-manager-factory.d.ts +109 -0
- package/dist/services/process/process-manager-factory.d.ts.map +1 -0
- package/dist/services/process/process-manager-factory.js +338 -0
- package/dist/services/process/process-manager-factory.js.map +1 -0
- package/dist/services/question-tracker.d.ts +51 -0
- package/dist/services/question-tracker.d.ts.map +1 -0
- package/dist/services/question-tracker.js +111 -0
- package/dist/services/question-tracker.js.map +1 -0
- package/dist/services/sessions/claude-history-reader.d.ts +139 -0
- package/dist/services/sessions/claude-history-reader.d.ts.map +1 -0
- package/dist/services/sessions/claude-history-reader.js +864 -0
- package/dist/services/sessions/claude-history-reader.js.map +1 -0
- package/dist/services/sessions/conversation-cache.d.ts +98 -0
- package/dist/services/sessions/conversation-cache.d.ts.map +1 -0
- package/dist/services/sessions/conversation-cache.js +329 -0
- package/dist/services/sessions/conversation-cache.js.map +1 -0
- package/dist/services/sessions/session-activity-watcher.d.ts +67 -0
- package/dist/services/sessions/session-activity-watcher.d.ts.map +1 -0
- package/dist/services/sessions/session-activity-watcher.js +236 -0
- package/dist/services/sessions/session-activity-watcher.js.map +1 -0
- package/dist/services/sessions/session-analysis-service.d.ts +72 -0
- package/dist/services/sessions/session-analysis-service.d.ts.map +1 -0
- package/dist/services/sessions/session-analysis-service.js +373 -0
- package/dist/services/sessions/session-analysis-service.js.map +1 -0
- package/dist/services/sessions/session-branch-service.d.ts +76 -0
- package/dist/services/sessions/session-branch-service.d.ts.map +1 -0
- package/dist/services/sessions/session-branch-service.js +355 -0
- package/dist/services/sessions/session-branch-service.js.map +1 -0
- package/dist/services/sessions/session-info-service.d.ts +455 -0
- package/dist/services/sessions/session-info-service.d.ts.map +1 -0
- package/dist/services/sessions/session-info-service.js +1640 -0
- package/dist/services/sessions/session-info-service.js.map +1 -0
- package/dist/services/sessions/session-marks-repository.d.ts +78 -0
- package/dist/services/sessions/session-marks-repository.d.ts.map +1 -0
- package/dist/services/sessions/session-marks-repository.js +263 -0
- package/dist/services/sessions/session-marks-repository.js.map +1 -0
- package/dist/services/sessions/session-marks-service.d.ts +137 -0
- package/dist/services/sessions/session-marks-service.d.ts.map +1 -0
- package/dist/services/sessions/session-marks-service.js +562 -0
- package/dist/services/sessions/session-marks-service.js.map +1 -0
- package/dist/services/sessions/session-review-service.d.ts +98 -0
- package/dist/services/sessions/session-review-service.d.ts.map +1 -0
- package/dist/services/sessions/session-review-service.js +629 -0
- package/dist/services/sessions/session-review-service.js.map +1 -0
- package/dist/services/sessions/turn-capture-service.d.ts +83 -0
- package/dist/services/sessions/turn-capture-service.d.ts.map +1 -0
- package/dist/services/sessions/turn-capture-service.js +477 -0
- package/dist/services/sessions/turn-capture-service.js.map +1 -0
- package/dist/services/sessions/turn-repository.d.ts +48 -0
- package/dist/services/sessions/turn-repository.d.ts.map +1 -0
- package/dist/services/sessions/turn-repository.js +103 -0
- package/dist/services/sessions/turn-repository.js.map +1 -0
- package/dist/services/walkthrough-service.d.ts +226 -0
- package/dist/services/walkthrough-service.d.ts.map +1 -0
- package/dist/services/walkthrough-service.js +1112 -0
- package/dist/services/walkthrough-service.js.map +1 -0
- package/dist/services/walkthrough-skill-prompt.d.ts +34 -0
- package/dist/services/walkthrough-skill-prompt.d.ts.map +1 -0
- package/dist/services/walkthrough-skill-prompt.js +313 -0
- package/dist/services/walkthrough-skill-prompt.js.map +1 -0
- package/dist/services/web-push-service.d.ts +48 -0
- package/dist/services/web-push-service.d.ts.map +1 -0
- package/dist/services/web-push-service.js +186 -0
- package/dist/services/web-push-service.js.map +1 -0
- package/dist/services/working-directories-service.d.ts +19 -0
- package/dist/services/working-directories-service.d.ts.map +1 -0
- package/dist/services/working-directories-service.js +103 -0
- package/dist/services/working-directories-service.js.map +1 -0
- package/dist/types/config.d.ts +122 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +21 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/express.d.ts +5 -0
- package/dist/types/express.d.ts.map +1 -0
- package/dist/types/express.js +2 -0
- package/dist/types/express.js.map +1 -0
- package/dist/types/index.d.ts +400 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +41 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/insights.d.ts +176 -0
- package/dist/types/insights.d.ts.map +1 -0
- package/dist/types/insights.js +23 -0
- package/dist/types/insights.js.map +1 -0
- package/dist/types/license.d.ts +70 -0
- package/dist/types/license.d.ts.map +1 -0
- package/dist/types/license.js +5 -0
- package/dist/types/license.js.map +1 -0
- package/dist/types/router-config.d.ts +13 -0
- package/dist/types/router-config.d.ts.map +1 -0
- package/dist/types/router-config.js +2 -0
- package/dist/types/router-config.js.map +1 -0
- package/dist/utils/constants.d.ts +26 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +28 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/machine-id.d.ts +7 -0
- package/dist/utils/machine-id.d.ts.map +1 -0
- package/dist/utils/machine-id.js +76 -0
- package/dist/utils/machine-id.js.map +1 -0
- package/dist/utils/server-startup.d.ts +11 -0
- package/dist/utils/server-startup.d.ts.map +1 -0
- package/dist/utils/server-startup.js +9 -0
- package/dist/utils/server-startup.js.map +1 -0
- package/dist/utils/update-check.d.ts +13 -0
- package/dist/utils/update-check.d.ts.map +1 -0
- package/dist/utils/update-check.js +90 -0
- package/dist/utils/update-check.js.map +1 -0
- package/dist/web/assets/ArchivedCardPrototype-S9ifiasa.js +5 -0
- package/dist/web/assets/BannerGallery-B__rJV6F.js +1 -0
- package/dist/web/assets/BannerPrototype-DBKP9Uiu.js +52 -0
- package/dist/web/assets/CodeHikeExperiment-B8jjWAFy.js +15 -0
- package/dist/web/assets/ContextTooltipVariations-DzklAFam.js +1 -0
- package/dist/web/assets/FontShowcasePrototype-KIMEWeP2.js +13 -0
- package/dist/web/assets/GeometricGallery-DddlWhHK.js +1 -0
- package/dist/web/assets/HistoryWalkthroughPrototype-DeniRRdw.js +18 -0
- package/dist/web/assets/InlineWalkthroughPrototype-Csd5r_Hk.js +1 -0
- package/dist/web/assets/MarkButtonPrototype-CxhxE0RP.js +1 -0
- package/dist/web/assets/MenuStylesPrototype-D7neA6YM.js +1 -0
- package/dist/web/assets/MomentCardVariations-2GT7GyFn.js +1 -0
- package/dist/web/assets/MomentHeaderVariations-DhGEw4XC.js +1 -0
- package/dist/web/assets/NarrativeWalkthroughDemo-B5C566fu.js +389 -0
- package/dist/web/assets/OutcomeVariations-BrZfsVcs.js +1 -0
- package/dist/web/assets/PermissionPatternPickerPrototype-CBOhe2Me.js +1 -0
- package/dist/web/assets/PermissionPrototype-BcF-a5an.js +1 -0
- package/dist/web/assets/PipelineGallery-BJhyM0rx.js +1 -0
- package/dist/web/assets/ScopeHeaderPrototype-GD1HNfaO.js +1 -0
- package/dist/web/assets/ScopeHeaderStylesPrototype-aa4uNJJ1.js +1 -0
- package/dist/web/assets/ScrollycodingPrototype-CKW1bf72.js +70 -0
- package/dist/web/assets/SectionHeaderVariations-DM8vUwfj.js +1 -0
- package/dist/web/assets/SemanticGallery-CtQEo7St.js +1 -0
- package/dist/web/assets/SessionCardPrototype-CgHCIMHe.js +1 -0
- package/dist/web/assets/SessionSidebarVariations-DMQL3Azj.js +3 -0
- package/dist/web/assets/SessionStartPrototype-Cwsv01Rr.js +1 -0
- package/dist/web/assets/SmartMenuPrototype-Br37Qbs_.js +1 -0
- package/dist/web/assets/StyleGallery-rZgrploB.js +1 -0
- package/dist/web/assets/TimelineCardPrototype-lzPc5mhe.js +19 -0
- package/dist/web/assets/ToolbarPrototype-Dm4BNZra.js +1 -0
- package/dist/web/assets/TooltipExperiment-Dy8QzTIP.js +13 -0
- package/dist/web/assets/WalkthroughCTAPrototype-uHoovujd.js +1 -0
- package/dist/web/assets/WalkthroughHeaderVariations-Do7Di1g1.js +1 -0
- package/dist/web/assets/WalkthroughShowcase-sGmRoPoM.js +112 -0
- package/dist/web/assets/arrow-right-D46Nx1mC.js +1 -0
- package/dist/web/assets/brain-BXIZKtOZ.js +1 -0
- package/dist/web/assets/grid-3x3-Cb81B62m.js +1 -0
- package/dist/web/assets/main-B1fyog77.js +321 -0
- package/dist/web/assets/main-C2PK2Klg.css +1 -0
- package/dist/web/assets/semantic-variations-Bd-W7ea2.js +1 -0
- package/dist/web/assets/target-Cf92wDTW.js +1 -0
- package/dist/web/favicon.png +0 -0
- package/dist/web/favicon.svg +22 -0
- package/dist/web/icon-192x192.png +0 -0
- package/dist/web/icon-512x512.png +0 -0
- package/dist/web/index.html +45 -0
- package/dist/web/manifest.json +61 -0
- package/package.json +192 -0
- package/scripts/postinstall.js +60 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { GoogleGenAI, Type } from '@google/genai';
|
|
2
|
+
import { setGlobalDispatcher, ProxyAgent } from 'undici';
|
|
3
|
+
import sharp from 'sharp';
|
|
4
|
+
import { LatticeError } from '../types/index.js';
|
|
5
|
+
import { createLogger } from '../services/infrastructure/logger.js';
|
|
6
|
+
import { ConfigService } from './infrastructure/config-service.js';
|
|
7
|
+
// Banner dimensions for identity images
|
|
8
|
+
const BANNER_WIDTH = 401;
|
|
9
|
+
const BANNER_HEIGHT = 64;
|
|
10
|
+
// Rich color palette for diverse banners
|
|
11
|
+
const COLORS = [
|
|
12
|
+
'electric blue', 'hot pink', 'lime green', 'golden yellow', 'coral orange',
|
|
13
|
+
'deep purple', 'cyan', 'magenta', 'mint green', 'amber',
|
|
14
|
+
'crimson red', 'teal', 'lavender', 'peach', 'electric violet',
|
|
15
|
+
'neon orange', 'sky blue', 'rose pink', 'chartreuse', 'copper'
|
|
16
|
+
];
|
|
17
|
+
// Style seeds - different visual languages
|
|
18
|
+
const STYLE_SEEDS = [
|
|
19
|
+
'flowing and organic',
|
|
20
|
+
'sharp and angular',
|
|
21
|
+
'scattered particles',
|
|
22
|
+
'layered waves',
|
|
23
|
+
'crystalline shards',
|
|
24
|
+
'soft gradients',
|
|
25
|
+
'circuit-like traces',
|
|
26
|
+
'bold geometric',
|
|
27
|
+
'wispy and ethereal',
|
|
28
|
+
'dense and textured',
|
|
29
|
+
'minimal and sparse',
|
|
30
|
+
'dynamic and energetic'
|
|
31
|
+
];
|
|
32
|
+
// Composition hints
|
|
33
|
+
const COMPOSITIONS = [
|
|
34
|
+
'asymmetric, weighted left',
|
|
35
|
+
'asymmetric, weighted right',
|
|
36
|
+
'centered focal point',
|
|
37
|
+
'scattered across the frame',
|
|
38
|
+
'diagonal flow',
|
|
39
|
+
'horizontal bands',
|
|
40
|
+
'clustered elements'
|
|
41
|
+
];
|
|
42
|
+
function pickRandom(arr) {
|
|
43
|
+
return arr[Math.floor(Math.random() * arr.length)];
|
|
44
|
+
}
|
|
45
|
+
function pickTwo(arr) {
|
|
46
|
+
const first = pickRandom(arr);
|
|
47
|
+
let second = pickRandom(arr);
|
|
48
|
+
while (second === first && arr.length > 1) {
|
|
49
|
+
second = pickRandom(arr);
|
|
50
|
+
}
|
|
51
|
+
return [first, second];
|
|
52
|
+
}
|
|
53
|
+
// Set up proxy support using environment variables (production only)
|
|
54
|
+
const proxyUrl = process.env.HTTPS_PROXY || process.env.https_proxy;
|
|
55
|
+
if (proxyUrl && process.env.NODE_ENV !== 'test') {
|
|
56
|
+
const dispatcher = new ProxyAgent({ uri: new URL(proxyUrl).toString() });
|
|
57
|
+
setGlobalDispatcher(dispatcher);
|
|
58
|
+
}
|
|
59
|
+
export class GeminiService {
|
|
60
|
+
logger;
|
|
61
|
+
genAI = null;
|
|
62
|
+
model;
|
|
63
|
+
constructor() {
|
|
64
|
+
this.logger = createLogger('GeminiService');
|
|
65
|
+
this.model = 'gemini-2.5-flash';
|
|
66
|
+
}
|
|
67
|
+
async initialize() {
|
|
68
|
+
const config = ConfigService.getInstance().getConfig();
|
|
69
|
+
const apiKey = config.gemini?.apiKey || process.env.GOOGLE_API_KEY;
|
|
70
|
+
if (!apiKey) {
|
|
71
|
+
this.logger.warn('Gemini API key not configured');
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
this.genAI = new GoogleGenAI({
|
|
76
|
+
apiKey: apiKey
|
|
77
|
+
});
|
|
78
|
+
if (config.gemini?.model) {
|
|
79
|
+
this.model = config.gemini.model;
|
|
80
|
+
}
|
|
81
|
+
this.logger.info('Gemini service initialized', { model: this.model });
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
this.logger.error('Failed to initialize Gemini service', { error });
|
|
85
|
+
throw new LatticeError('GEMINI_INIT_ERROR', 'Failed to initialize Gemini service', 500);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
async generateSessionName(conversationText) {
|
|
89
|
+
if (!this.genAI) {
|
|
90
|
+
throw new LatticeError('GEMINI_API_KEY_MISSING', 'Gemini API key not configured', 400);
|
|
91
|
+
}
|
|
92
|
+
const schema = {
|
|
93
|
+
type: Type.OBJECT,
|
|
94
|
+
properties: {
|
|
95
|
+
name: {
|
|
96
|
+
type: Type.STRING,
|
|
97
|
+
description: 'A brief, descriptive name for this coding session (3-6 words)'
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
required: ['name']
|
|
101
|
+
};
|
|
102
|
+
try {
|
|
103
|
+
const response = await this.genAI.models.generateContent({
|
|
104
|
+
model: this.model,
|
|
105
|
+
contents: [{
|
|
106
|
+
role: 'user',
|
|
107
|
+
parts: [{
|
|
108
|
+
text: `Generate a brief, descriptive name (3-6 words) for this coding session. Focus on the main task or feature being worked on. Do not include generic words like "session", "conversation", or "chat". Examples of good names: "Fix auth redirect bug", "Add dark mode support", "Refactor user service".
|
|
109
|
+
|
|
110
|
+
Conversation:
|
|
111
|
+
${conversationText}`
|
|
112
|
+
}]
|
|
113
|
+
}],
|
|
114
|
+
config: {
|
|
115
|
+
responseMimeType: 'application/json',
|
|
116
|
+
responseSchema: schema
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
const responseText = response.text;
|
|
120
|
+
if (!responseText) {
|
|
121
|
+
throw new LatticeError('GEMINI_SESSION_NAME_ERROR', 'No response text returned', 500);
|
|
122
|
+
}
|
|
123
|
+
const result = JSON.parse(responseText);
|
|
124
|
+
if (!result.name) {
|
|
125
|
+
throw new LatticeError('GEMINI_SESSION_NAME_ERROR', 'Invalid response format', 500);
|
|
126
|
+
}
|
|
127
|
+
this.logger.debug('Session name generated successfully', {
|
|
128
|
+
nameLength: result.name.length
|
|
129
|
+
});
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
if (error instanceof LatticeError) {
|
|
134
|
+
throw error;
|
|
135
|
+
}
|
|
136
|
+
this.logger.error('Session name generation failed', { error });
|
|
137
|
+
throw new LatticeError('GEMINI_SESSION_NAME_ERROR', 'Failed to generate session name', 500);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Note: Session insights generation is handled by AnthropicService.
|
|
141
|
+
// Gemini is used only for session naming and identity image generation.
|
|
142
|
+
/**
|
|
143
|
+
* Create a black canvas PNG to use as base for image editing.
|
|
144
|
+
* Using inpainting on a black canvas ensures consistent black backgrounds.
|
|
145
|
+
*/
|
|
146
|
+
async createBlackCanvas(width, height) {
|
|
147
|
+
// Create at higher resolution for quality (3x), will resize after generation
|
|
148
|
+
const scale = Math.min(3, 1024 / Math.max(width, height));
|
|
149
|
+
const canvasWidth = Math.round(width * scale);
|
|
150
|
+
const canvasHeight = Math.round(height * scale);
|
|
151
|
+
return sharp({
|
|
152
|
+
create: {
|
|
153
|
+
width: canvasWidth,
|
|
154
|
+
height: canvasHeight,
|
|
155
|
+
channels: 3,
|
|
156
|
+
background: { r: 0, g: 0, b: 0 }
|
|
157
|
+
}
|
|
158
|
+
}).png().toBuffer();
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Generate a visually distinctive identity banner for a session.
|
|
162
|
+
*
|
|
163
|
+
* Uses randomized visual parameters (colors, style, composition) plus
|
|
164
|
+
* loose context from the session to create unique, scannable banners.
|
|
165
|
+
* No Claude extraction step - faster and cheaper while achieving better diversity.
|
|
166
|
+
*/
|
|
167
|
+
async generateSessionImage(sessionContext) {
|
|
168
|
+
if (!this.genAI) {
|
|
169
|
+
throw new LatticeError('GEMINI_API_KEY_MISSING', 'Gemini API key not configured', 400);
|
|
170
|
+
}
|
|
171
|
+
// Pick random visual parameters for diversity
|
|
172
|
+
const [primaryColor, accentColor] = pickTwo(COLORS);
|
|
173
|
+
const style = pickRandom(STYLE_SEEDS);
|
|
174
|
+
const composition = pickRandom(COMPOSITIONS);
|
|
175
|
+
this.logger.info('Generating diverse session banner', {
|
|
176
|
+
mission: sessionContext.mission?.slice(0, 50),
|
|
177
|
+
primaryColor,
|
|
178
|
+
accentColor,
|
|
179
|
+
style,
|
|
180
|
+
composition
|
|
181
|
+
});
|
|
182
|
+
// Build prompt with random params + loose context
|
|
183
|
+
const prompt = `Create a unique abstract banner on this black background. No text, no faces, no realistic objects.
|
|
184
|
+
|
|
185
|
+
Colors: ${primaryColor} as primary, ${accentColor} as accent
|
|
186
|
+
Style: ${style}
|
|
187
|
+
Composition: ${composition}
|
|
188
|
+
|
|
189
|
+
${sessionContext.mission ? `Inspiration (interpret freely, don't be literal): ${sessionContext.mission}` : ''}
|
|
190
|
+
|
|
191
|
+
Be creative and make this visually distinctive. Pure black background must be preserved.`;
|
|
192
|
+
try {
|
|
193
|
+
const blackCanvas = await this.createBlackCanvas(BANNER_WIDTH, BANNER_HEIGHT);
|
|
194
|
+
const blackCanvasBase64 = blackCanvas.toString('base64');
|
|
195
|
+
const response = await this.genAI.models.generateContent({
|
|
196
|
+
model: 'gemini-3-pro-image-preview',
|
|
197
|
+
contents: [
|
|
198
|
+
{
|
|
199
|
+
role: 'user',
|
|
200
|
+
parts: [
|
|
201
|
+
{ inlineData: { mimeType: 'image/png', data: blackCanvasBase64 } },
|
|
202
|
+
{ text: prompt }
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
],
|
|
206
|
+
config: {
|
|
207
|
+
responseModalities: ['TEXT', 'IMAGE'],
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
// Extract image from response parts
|
|
211
|
+
if (response.candidates?.[0]?.content?.parts) {
|
|
212
|
+
for (const part of response.candidates[0].content.parts) {
|
|
213
|
+
if (part.inlineData) {
|
|
214
|
+
this.logger.debug('Raw session banner generated, resizing to final dimensions');
|
|
215
|
+
const rawImageBuffer = Buffer.from(part.inlineData.data, 'base64');
|
|
216
|
+
// Resize to final banner dimensions
|
|
217
|
+
const resizedBuffer = await sharp(rawImageBuffer)
|
|
218
|
+
.resize(BANNER_WIDTH, BANNER_HEIGHT, { fit: 'cover' })
|
|
219
|
+
.jpeg({ quality: 90 })
|
|
220
|
+
.toBuffer();
|
|
221
|
+
const resizedBase64 = resizedBuffer.toString('base64');
|
|
222
|
+
this.logger.info('Session banner generated successfully', {
|
|
223
|
+
originalSize: rawImageBuffer.length,
|
|
224
|
+
resizedSize: resizedBuffer.length,
|
|
225
|
+
dimensions: `${BANNER_WIDTH}x${BANNER_HEIGHT}`,
|
|
226
|
+
primaryColor,
|
|
227
|
+
accentColor,
|
|
228
|
+
style
|
|
229
|
+
});
|
|
230
|
+
return {
|
|
231
|
+
imageData: resizedBase64,
|
|
232
|
+
mimeType: 'image/jpeg'
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
throw new LatticeError('GEMINI_IMAGE_ERROR', 'No image was generated in the response', 500);
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
if (error instanceof LatticeError) {
|
|
241
|
+
throw error;
|
|
242
|
+
}
|
|
243
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
244
|
+
const errorStack = error instanceof Error ? error.stack : undefined;
|
|
245
|
+
this.logger.error('Session banner generation failed', {
|
|
246
|
+
errorMessage,
|
|
247
|
+
errorStack,
|
|
248
|
+
errorType: error?.constructor?.name
|
|
249
|
+
});
|
|
250
|
+
throw new LatticeError('GEMINI_IMAGE_ERROR', `Failed to generate session banner: ${errorMessage}`, 500);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
// Export singleton instance
|
|
255
|
+
export const geminiService = new GeminiService();
|
|
256
|
+
//# sourceMappingURL=gemini-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-service.js","sourceRoot":"","sources":["../../src/services/gemini-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { CUIConfig } from '../../types/config.js';
|
|
2
|
+
/**
|
|
3
|
+
* ConfigService manages Claudia configuration
|
|
4
|
+
* Loads from ~/.claudia/config.json
|
|
5
|
+
* Creates default config on first run
|
|
6
|
+
*/
|
|
7
|
+
export declare class ConfigService {
|
|
8
|
+
private static instance;
|
|
9
|
+
private config;
|
|
10
|
+
private logger;
|
|
11
|
+
private configPath;
|
|
12
|
+
private configDir;
|
|
13
|
+
private emitter;
|
|
14
|
+
private watcher?;
|
|
15
|
+
private debounceTimer?;
|
|
16
|
+
private lastLoadedRaw?;
|
|
17
|
+
private pollInterval?;
|
|
18
|
+
/** Runtime-only overrides (not persisted to config file) */
|
|
19
|
+
private runtimeOverrides;
|
|
20
|
+
private constructor();
|
|
21
|
+
/**
|
|
22
|
+
* Get singleton instance
|
|
23
|
+
*/
|
|
24
|
+
static getInstance(): ConfigService;
|
|
25
|
+
/**
|
|
26
|
+
* Initialize configuration
|
|
27
|
+
* Creates config file if it doesn't exist
|
|
28
|
+
* Throws error if initialization fails
|
|
29
|
+
*/
|
|
30
|
+
initialize(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Get current configuration
|
|
33
|
+
* Throws if not initialized
|
|
34
|
+
*/
|
|
35
|
+
getConfig(): CUIConfig & {
|
|
36
|
+
server: {
|
|
37
|
+
cwd?: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Set the working directory where claudia was invoked from
|
|
42
|
+
* This is a runtime-only value, not persisted to config file
|
|
43
|
+
*/
|
|
44
|
+
setInvocationCwd(cwd: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* Create default configuration
|
|
47
|
+
*/
|
|
48
|
+
private createDefaultConfig;
|
|
49
|
+
/**
|
|
50
|
+
* Load configuration from file
|
|
51
|
+
*/
|
|
52
|
+
private loadConfig;
|
|
53
|
+
/**
|
|
54
|
+
* Update configuration
|
|
55
|
+
*/
|
|
56
|
+
updateConfig(updates: Partial<CUIConfig>): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Subscribe to configuration changes
|
|
59
|
+
*/
|
|
60
|
+
onChange(listener: (newConfig: CUIConfig, previous: CUIConfig | null, source: 'internal' | 'external') => void): void;
|
|
61
|
+
/**
|
|
62
|
+
* Validate provided fields in a partial config. Throws on incompatible values.
|
|
63
|
+
*/
|
|
64
|
+
private validateProvidedFields;
|
|
65
|
+
/**
|
|
66
|
+
* Validate a complete merged config before using it. Throws on error.
|
|
67
|
+
*/
|
|
68
|
+
private validateCompleteConfig;
|
|
69
|
+
private assertServerConfig;
|
|
70
|
+
private assertInterfaceConfig;
|
|
71
|
+
private assertRouterConfig;
|
|
72
|
+
private startWatching;
|
|
73
|
+
private handleExternalChange;
|
|
74
|
+
/**
|
|
75
|
+
* Reset singleton instance (for testing)
|
|
76
|
+
*/
|
|
77
|
+
static resetInstance(): void;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=config-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-service.d.ts","sourceRoot":"","sources":["../../../src/services/infrastructure/config-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAiD,MAAM,mBAAmB,CAAC;AAO7F;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,OAAO,CAAC,CAAyB;IACzC,OAAO,CAAC,aAAa,CAAC,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,4DAA4D;IAC5D,OAAO,CAAC,gBAAgB,CAAwB;IAEhD,OAAO;IAMP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC;;;OAGG;IACH,SAAS,IAAI,SAAS,GAAG;QAAE,MAAM,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAcrD;;;OAGG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKnC;;OAEG;YACW,mBAAmB;IAoCjC;;OAEG;YACW,UAAU;IAiDxB;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+D9D;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,KAAK,IAAI,GAAG,IAAI;IAIrH;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqC9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,oBAAoB;IAuC5B;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;CAI7B"}
|