@ginkoai/cli 1.0.0 → 1.4.1
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 +19 -0
- package/dist/analysis/project-analyzer.d.ts.map +1 -1
- package/dist/analysis/project-analyzer.js +68 -4
- package/dist/analysis/project-analyzer.js.map +1 -1
- package/dist/commands/architecture/architecture-pipeline-enhanced.d.ts.map +1 -1
- package/dist/commands/architecture/architecture-pipeline-enhanced.js +10 -6
- package/dist/commands/architecture/architecture-pipeline-enhanced.js.map +1 -1
- package/dist/commands/backlog/base.d.ts.map +1 -1
- package/dist/commands/backlog/base.js +3 -0
- package/dist/commands/backlog/base.js.map +1 -1
- package/dist/commands/backlog/create.js +20 -20
- package/dist/commands/backlog/create.js.map +1 -1
- package/dist/commands/backlog/index.d.ts.map +1 -1
- package/dist/commands/backlog/index.js +6 -1
- package/dist/commands/backlog/index.js.map +1 -1
- package/dist/commands/changelog/changelog-reflection.d.ts.map +1 -1
- package/dist/commands/changelog/changelog-reflection.js +7 -3
- package/dist/commands/changelog/changelog-reflection.js.map +1 -1
- package/dist/commands/charter.d.ts +28 -0
- package/dist/commands/charter.d.ts.map +1 -0
- package/dist/commands/charter.js +434 -0
- package/dist/commands/charter.js.map +1 -0
- package/dist/commands/documentation/documentation-pipeline.d.ts.map +1 -1
- package/dist/commands/documentation/documentation-pipeline.js +15 -7
- package/dist/commands/documentation/documentation-pipeline.js.map +1 -1
- package/dist/commands/git/git-pipeline.d.ts.map +1 -1
- package/dist/commands/git/git-pipeline.js +3 -2
- package/dist/commands/git/git-pipeline.js.map +1 -1
- package/dist/commands/graph/api-client.d.ts +212 -0
- package/dist/commands/graph/api-client.d.ts.map +1 -0
- package/dist/commands/graph/api-client.js +143 -0
- package/dist/commands/graph/api-client.js.map +1 -0
- package/dist/commands/graph/config.d.ts +82 -0
- package/dist/commands/graph/config.d.ts.map +1 -0
- package/dist/commands/graph/config.js +113 -0
- package/dist/commands/graph/config.js.map +1 -0
- package/dist/commands/graph/explore.d.ts +19 -0
- package/dist/commands/graph/explore.d.ts.map +1 -0
- package/dist/commands/graph/explore.js +117 -0
- package/dist/commands/graph/explore.js.map +1 -0
- package/dist/commands/graph/index.d.ts +17 -0
- package/dist/commands/graph/index.d.ts.map +1 -0
- package/dist/commands/graph/index.js +104 -0
- package/dist/commands/graph/index.js.map +1 -0
- package/dist/commands/graph/init.d.ts +21 -0
- package/dist/commands/graph/init.d.ts.map +1 -0
- package/dist/commands/graph/init.js +173 -0
- package/dist/commands/graph/init.js.map +1 -0
- package/dist/commands/graph/load.d.ts +21 -0
- package/dist/commands/graph/load.d.ts.map +1 -0
- package/dist/commands/graph/load.js +224 -0
- package/dist/commands/graph/load.js.map +1 -0
- package/dist/commands/graph/query.d.ts +23 -0
- package/dist/commands/graph/query.d.ts.map +1 -0
- package/dist/commands/graph/query.js +145 -0
- package/dist/commands/graph/query.js.map +1 -0
- package/dist/commands/graph/status.d.ts +15 -0
- package/dist/commands/graph/status.d.ts.map +1 -0
- package/dist/commands/graph/status.js +88 -0
- package/dist/commands/graph/status.js.map +1 -0
- package/dist/commands/handoff.d.ts +14 -5
- package/dist/commands/handoff.d.ts.map +1 -1
- package/dist/commands/handoff.js +84 -142
- package/dist/commands/handoff.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +88 -41
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/knowledge/create.d.ts +24 -0
- package/dist/commands/knowledge/create.d.ts.map +1 -0
- package/dist/commands/knowledge/create.js +180 -0
- package/dist/commands/knowledge/create.js.map +1 -0
- package/dist/commands/knowledge/graph.d.ts +21 -0
- package/dist/commands/knowledge/graph.d.ts.map +1 -0
- package/dist/commands/knowledge/graph.js +199 -0
- package/dist/commands/knowledge/graph.js.map +1 -0
- package/dist/commands/knowledge/index.d.ts +25 -0
- package/dist/commands/knowledge/index.d.ts.map +1 -0
- package/dist/commands/knowledge/index.js +121 -0
- package/dist/commands/knowledge/index.js.map +1 -0
- package/dist/commands/knowledge/search.d.ts +23 -0
- package/dist/commands/knowledge/search.d.ts.map +1 -0
- package/dist/commands/knowledge/search.js +157 -0
- package/dist/commands/knowledge/search.js.map +1 -0
- package/dist/commands/knowledge/sync.d.ts +28 -0
- package/dist/commands/knowledge/sync.d.ts.map +1 -0
- package/dist/commands/knowledge/sync.js +251 -0
- package/dist/commands/knowledge/sync.js.map +1 -0
- package/dist/commands/log.d.ts +32 -0
- package/dist/commands/log.d.ts.map +1 -0
- package/dist/commands/log.js +632 -0
- package/dist/commands/log.js.map +1 -0
- package/dist/commands/login.d.ts +27 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +177 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +15 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +31 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/project/create.d.ts +22 -0
- package/dist/commands/project/create.d.ts.map +1 -0
- package/dist/commands/project/create.js +69 -0
- package/dist/commands/project/create.js.map +1 -0
- package/dist/commands/project/delete.d.ts +19 -0
- package/dist/commands/project/delete.d.ts.map +1 -0
- package/dist/commands/project/delete.js +73 -0
- package/dist/commands/project/delete.js.map +1 -0
- package/dist/commands/project/index.d.ts +22 -0
- package/dist/commands/project/index.d.ts.map +1 -0
- package/dist/commands/project/index.js +134 -0
- package/dist/commands/project/index.js.map +1 -0
- package/dist/commands/project/info.d.ts +15 -0
- package/dist/commands/project/info.d.ts.map +1 -0
- package/dist/commands/project/info.js +92 -0
- package/dist/commands/project/info.js.map +1 -0
- package/dist/commands/project/list.d.ts +20 -0
- package/dist/commands/project/list.d.ts.map +1 -0
- package/dist/commands/project/list.js +82 -0
- package/dist/commands/project/list.js.map +1 -0
- package/dist/commands/project/members.d.ts +27 -0
- package/dist/commands/project/members.d.ts.map +1 -0
- package/dist/commands/project/members.js +140 -0
- package/dist/commands/project/members.js.map +1 -0
- package/dist/commands/project/update.d.ts +24 -0
- package/dist/commands/project/update.d.ts.map +1 -0
- package/dist/commands/project/update.js +83 -0
- package/dist/commands/project/update.js.map +1 -0
- package/dist/commands/reflect.js +0 -3
- package/dist/commands/reflect.js.map +1 -1
- package/dist/commands/ship.d.ts +3 -1
- package/dist/commands/ship.d.ts.map +1 -1
- package/dist/commands/ship.js +100 -9
- package/dist/commands/ship.js.map +1 -1
- package/dist/commands/start/index.d.ts.map +1 -1
- package/dist/commands/start/index.js +5 -3
- package/dist/commands/start/index.js.map +1 -1
- package/dist/commands/start/start-reflection.d.ts +2 -1
- package/dist/commands/start/start-reflection.d.ts.map +1 -1
- package/dist/commands/start/start-reflection.js +265 -43
- package/dist/commands/start/start-reflection.js.map +1 -1
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +41 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/team/create.d.ts +15 -0
- package/dist/commands/team/create.d.ts.map +1 -0
- package/dist/commands/team/create.js +48 -0
- package/dist/commands/team/create.js.map +1 -0
- package/dist/commands/team/index.d.ts +22 -0
- package/dist/commands/team/index.d.ts.map +1 -0
- package/dist/commands/team/index.js +109 -0
- package/dist/commands/team/index.js.map +1 -0
- package/dist/commands/team/list.d.ts +15 -0
- package/dist/commands/team/list.d.ts.map +1 -0
- package/dist/commands/team/list.js +67 -0
- package/dist/commands/team/list.js.map +1 -0
- package/dist/commands/team/members.d.ts +27 -0
- package/dist/commands/team/members.d.ts.map +1 -0
- package/dist/commands/team/members.js +135 -0
- package/dist/commands/team/members.js.map +1 -0
- package/dist/commands/team/projects.d.ts +19 -0
- package/dist/commands/team/projects.d.ts.map +1 -0
- package/dist/commands/team/projects.js +107 -0
- package/dist/commands/team/projects.js.map +1 -0
- package/dist/commands/team.d.ts +22 -0
- package/dist/commands/team.d.ts.map +1 -0
- package/dist/commands/team.js +238 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/commands/testing/testing-pipeline-enhanced.d.ts.map +1 -1
- package/dist/commands/testing/testing-pipeline-enhanced.js +5 -3
- package/dist/commands/testing/testing-pipeline-enhanced.js.map +1 -1
- package/dist/commands/testing/testing-pipeline.d.ts.map +1 -1
- package/dist/commands/testing/testing-pipeline.js +5 -3
- package/dist/commands/testing/testing-pipeline.js.map +1 -1
- package/dist/commands/whoami.d.ts +15 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +38 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/core/reflection-pattern.d.ts +1 -1
- package/dist/core/reflection-pattern.d.ts.map +1 -1
- package/dist/core/reflection-pattern.js +2 -12
- package/dist/core/reflection-pattern.js.map +1 -1
- package/dist/core/session-log-manager.d.ts +44 -4
- package/dist/core/session-log-manager.d.ts.map +1 -1
- package/dist/core/session-log-manager.js +132 -31
- package/dist/core/session-log-manager.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +116 -17
- package/dist/index.js.map +1 -1
- package/dist/lib/api/projects-client.d.ts +119 -0
- package/dist/lib/api/projects-client.d.ts.map +1 -0
- package/dist/lib/api/projects-client.js +125 -0
- package/dist/lib/api/projects-client.js.map +1 -0
- package/dist/lib/api/teams-client.d.ts +73 -0
- package/dist/lib/api/teams-client.d.ts.map +1 -0
- package/dist/lib/api/teams-client.js +68 -0
- package/dist/lib/api/teams-client.js.map +1 -0
- package/dist/lib/charter/charter-editor.d.ts +60 -0
- package/dist/lib/charter/charter-editor.d.ts.map +1 -0
- package/dist/lib/charter/charter-editor.js +559 -0
- package/dist/lib/charter/charter-editor.js.map +1 -0
- package/dist/lib/charter/charter-storage.d.ts +92 -0
- package/dist/lib/charter/charter-storage.d.ts.map +1 -0
- package/dist/lib/charter/charter-storage.js +501 -0
- package/dist/lib/charter/charter-storage.js.map +1 -0
- package/dist/lib/charter/charter-synthesizer.d.ts +94 -0
- package/dist/lib/charter/charter-synthesizer.d.ts.map +1 -0
- package/dist/lib/charter/charter-synthesizer.js +521 -0
- package/dist/lib/charter/charter-synthesizer.js.map +1 -0
- package/dist/lib/charter/charter-versioning.d.ts +57 -0
- package/dist/lib/charter/charter-versioning.d.ts.map +1 -0
- package/dist/lib/charter/charter-versioning.js +283 -0
- package/dist/lib/charter/charter-versioning.js.map +1 -0
- package/dist/lib/charter/confidence-scorer.d.ts +263 -0
- package/dist/lib/charter/confidence-scorer.d.ts.map +1 -0
- package/dist/lib/charter/confidence-scorer.js +737 -0
- package/dist/lib/charter/confidence-scorer.js.map +1 -0
- package/dist/lib/charter/conversation-context.d.ts +99 -0
- package/dist/lib/charter/conversation-context.d.ts.map +1 -0
- package/dist/lib/charter/conversation-context.js +297 -0
- package/dist/lib/charter/conversation-context.js.map +1 -0
- package/dist/lib/charter/conversation-facilitator.d.ts +117 -0
- package/dist/lib/charter/conversation-facilitator.d.ts.map +1 -0
- package/dist/lib/charter/conversation-facilitator.js +360 -0
- package/dist/lib/charter/conversation-facilitator.js.map +1 -0
- package/dist/lib/charter/question-templates.d.ts +82 -0
- package/dist/lib/charter/question-templates.d.ts.map +1 -0
- package/dist/lib/charter/question-templates.js +355 -0
- package/dist/lib/charter/question-templates.js.map +1 -0
- package/dist/lib/charter/signal-detection.d.ts +49 -0
- package/dist/lib/charter/signal-detection.d.ts.map +1 -0
- package/dist/lib/charter/signal-detection.js +338 -0
- package/dist/lib/charter/signal-detection.js.map +1 -0
- package/dist/lib/context-loader-events.d.ts +111 -0
- package/dist/lib/context-loader-events.d.ts.map +1 -0
- package/dist/lib/context-loader-events.js +475 -0
- package/dist/lib/context-loader-events.js.map +1 -0
- package/dist/lib/event-logger.d.ts +64 -0
- package/dist/lib/event-logger.d.ts.map +1 -0
- package/dist/lib/event-logger.js +197 -0
- package/dist/lib/event-logger.js.map +1 -0
- package/dist/lib/event-queue.d.ts +104 -0
- package/dist/lib/event-queue.d.ts.map +1 -0
- package/dist/lib/event-queue.js +274 -0
- package/dist/lib/event-queue.js.map +1 -0
- package/dist/lib/session-cursor.d.ts +80 -0
- package/dist/lib/session-cursor.d.ts.map +1 -0
- package/dist/lib/session-cursor.js +250 -0
- package/dist/lib/session-cursor.js.map +1 -0
- package/dist/lib/sync/conflict-detector.d.ts +41 -0
- package/dist/lib/sync/conflict-detector.d.ts.map +1 -0
- package/dist/lib/sync/conflict-detector.js +124 -0
- package/dist/lib/sync/conflict-detector.js.map +1 -0
- package/dist/lib/sync/logger.d.ts +89 -0
- package/dist/lib/sync/logger.d.ts.map +1 -0
- package/dist/lib/sync/logger.js +202 -0
- package/dist/lib/sync/logger.js.map +1 -0
- package/dist/lib/sync/parser.d.ts +32 -0
- package/dist/lib/sync/parser.d.ts.map +1 -0
- package/dist/lib/sync/parser.js +180 -0
- package/dist/lib/sync/parser.js.map +1 -0
- package/dist/lib/sync/scanner.d.ts +34 -0
- package/dist/lib/sync/scanner.d.ts.map +1 -0
- package/dist/lib/sync/scanner.js +97 -0
- package/dist/lib/sync/scanner.js.map +1 -0
- package/dist/lib/sync/uploader.d.ts +33 -0
- package/dist/lib/sync/uploader.d.ts.map +1 -0
- package/dist/lib/sync/uploader.js +188 -0
- package/dist/lib/sync/uploader.js.map +1 -0
- package/dist/lib/write-dispatcher/adapters/graph-adapter.d.ts +77 -0
- package/dist/lib/write-dispatcher/adapters/graph-adapter.d.ts.map +1 -0
- package/dist/lib/write-dispatcher/adapters/graph-adapter.js +178 -0
- package/dist/lib/write-dispatcher/adapters/graph-adapter.js.map +1 -0
- package/dist/lib/write-dispatcher/adapters/local-adapter.d.ts +133 -0
- package/dist/lib/write-dispatcher/adapters/local-adapter.d.ts.map +1 -0
- package/dist/lib/write-dispatcher/adapters/local-adapter.js +324 -0
- package/dist/lib/write-dispatcher/adapters/local-adapter.js.map +1 -0
- package/dist/lib/write-dispatcher/write-dispatcher.d.ts +151 -0
- package/dist/lib/write-dispatcher/write-dispatcher.d.ts.map +1 -0
- package/dist/lib/write-dispatcher/write-dispatcher.js +197 -0
- package/dist/lib/write-dispatcher/write-dispatcher.js.map +1 -0
- package/dist/types/charter.d.ts +330 -0
- package/dist/types/charter.d.ts.map +1 -0
- package/dist/types/charter.js +76 -0
- package/dist/types/charter.js.map +1 -0
- package/dist/types/config.d.ts +65 -17
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +50 -21
- package/dist/types/config.js.map +1 -1
- package/dist/utils/api-client.d.ts +36 -0
- package/dist/utils/api-client.d.ts.map +1 -0
- package/dist/utils/api-client.js +97 -0
- package/dist/utils/api-client.js.map +1 -0
- package/dist/utils/auth-storage.d.ts +56 -0
- package/dist/utils/auth-storage.d.ts.map +1 -0
- package/dist/utils/auth-storage.js +133 -0
- package/dist/utils/auth-storage.js.map +1 -0
- package/dist/utils/cleanup.d.ts +21 -0
- package/dist/utils/cleanup.d.ts.map +1 -0
- package/dist/utils/cleanup.js +122 -0
- package/dist/utils/cleanup.js.map +1 -0
- package/dist/utils/config-loader.d.ts +76 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +269 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/context-loader.d.ts +154 -0
- package/dist/utils/context-loader.d.ts.map +1 -0
- package/dist/utils/context-loader.js +411 -0
- package/dist/utils/context-loader.js.map +1 -0
- package/dist/utils/dispatcher-logger.d.ts +30 -0
- package/dist/utils/dispatcher-logger.d.ts.map +1 -0
- package/dist/utils/dispatcher-logger.js +128 -0
- package/dist/utils/dispatcher-logger.js.map +1 -0
- package/dist/utils/ginko-root.d.ts +3 -2
- package/dist/utils/ginko-root.d.ts.map +1 -1
- package/dist/utils/ginko-root.js +35 -2
- package/dist/utils/ginko-root.js.map +1 -1
- package/dist/utils/helpers.d.ts +1 -0
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +3 -0
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/log-quality.d.ts +55 -0
- package/dist/utils/log-quality.d.ts.map +1 -0
- package/dist/utils/log-quality.js +297 -0
- package/dist/utils/log-quality.js.map +1 -0
- package/dist/utils/reference-parser.d.ts +164 -0
- package/dist/utils/reference-parser.d.ts.map +1 -0
- package/dist/utils/reference-parser.js +363 -0
- package/dist/utils/reference-parser.js.map +1 -0
- package/dist/utils/synthesis.d.ts +180 -0
- package/dist/utils/synthesis.d.ts.map +1 -0
- package/dist/utils/synthesis.js +724 -0
- package/dist/utils/synthesis.js.map +1 -0
- package/dist/utils/team-awareness.d.ts +127 -0
- package/dist/utils/team-awareness.d.ts.map +1 -0
- package/dist/utils/team-awareness.js +385 -0
- package/dist/utils/team-awareness.js.map +1 -0
- package/package.json +6 -4
- package/dist/commands/handoff/handoff-reflection-pipeline.d.ts +0 -106
- package/dist/commands/handoff/handoff-reflection-pipeline.d.ts.map +0 -1
- package/dist/commands/handoff/handoff-reflection-pipeline.js +0 -534
- package/dist/commands/handoff/handoff-reflection-pipeline.js.map +0 -1
- package/dist/commands/handoff/handoff-save.d.ts +0 -16
- package/dist/commands/handoff/handoff-save.d.ts.map +0 -1
- package/dist/commands/handoff/handoff-save.js +0 -72
- package/dist/commands/handoff/handoff-save.js.map +0 -1
- package/dist/commands/handoff/index.d.ts +0 -19
- package/dist/commands/handoff/index.d.ts.map +0 -1
- package/dist/commands/handoff/index.js +0 -55
- package/dist/commands/handoff/index.js.map +0 -1
- package/dist/commands/handoff-ai-orig.d.ts +0 -27
- package/dist/commands/handoff-ai-orig.d.ts.map +0 -1
- package/dist/commands/handoff-ai-orig.js +0 -405
- package/dist/commands/handoff-ai-orig.js.map +0 -1
- package/dist/commands/handoff-ai.d.ts +0 -27
- package/dist/commands/handoff-ai.d.ts.map +0 -1
- package/dist/commands/handoff-ai.js +0 -405
- package/dist/commands/handoff-ai.js.map +0 -1
- package/dist/commands/handoff-enhanced-orig.d.ts +0 -25
- package/dist/commands/handoff-enhanced-orig.d.ts.map +0 -1
- package/dist/commands/handoff-enhanced-orig.js +0 -349
- package/dist/commands/handoff-enhanced-orig.js.map +0 -1
- package/dist/commands/handoff-enhanced.d.ts +0 -25
- package/dist/commands/handoff-enhanced.d.ts.map +0 -1
- package/dist/commands/handoff-enhanced.js +0 -349
- package/dist/commands/handoff-enhanced.js.map +0 -1
- package/dist/commands/handoff-orig.d.ts +0 -10
- package/dist/commands/handoff-orig.d.ts.map +0 -1
- package/dist/commands/handoff-orig.js +0 -167
- package/dist/commands/handoff-orig.js.map +0 -1
- package/dist/commands/init-enhanced.d.ts +0 -20
- package/dist/commands/init-enhanced.d.ts.map +0 -1
- package/dist/commands/init-enhanced.js +0 -430
- package/dist/commands/init-enhanced.js.map +0 -1
- package/dist/commands/prd/prd-reflection-enhanced.d.ts +0 -63
- package/dist/commands/prd/prd-reflection-enhanced.d.ts.map +0 -1
- package/dist/commands/prd/prd-reflection-enhanced.js +0 -310
- package/dist/commands/prd/prd-reflection-enhanced.js.map +0 -1
- package/dist/commands/start-enhanced.d.ts +0 -19
- package/dist/commands/start-enhanced.d.ts.map +0 -1
- package/dist/commands/start-enhanced.js +0 -434
- package/dist/commands/start-enhanced.js.map +0 -1
- package/dist/commands/start.d.ts +0 -10
- package/dist/commands/start.d.ts.map +0 -1
- package/dist/commands/start.js +0 -119
- package/dist/commands/start.js.map +0 -1
- package/dist/core/config/config-aware-reflection.d.ts +0 -37
- package/dist/core/config/config-aware-reflection.d.ts.map +0 -1
- package/dist/core/config/config-aware-reflection.js +0 -97
- package/dist/core/config/config-aware-reflection.js.map +0 -1
- package/dist/core/config/config-loader.d.ts +0 -154
- package/dist/core/config/config-loader.d.ts.map +0 -1
- package/dist/core/config/config-loader.js +0 -424
- package/dist/core/config/config-loader.js.map +0 -1
- package/dist/core/config/config-migrator.d.ts +0 -150
- package/dist/core/config/config-migrator.d.ts.map +0 -1
- package/dist/core/config/config-migrator.js +0 -423
- package/dist/core/config/config-migrator.js.map +0 -1
- package/dist/core/config/config-schema.d.ts +0 -276
- package/dist/core/config/config-schema.d.ts.map +0 -1
- package/dist/core/config/config-schema.js +0 -277
- package/dist/core/config/config-schema.js.map +0 -1
- package/dist/core/config/index.d.ts +0 -260
- package/dist/core/config/index.d.ts.map +0 -1
- package/dist/core/config/index.js +0 -283
- package/dist/core/config/index.js.map +0 -1
- package/dist/core/config/interactive-config.d.ts +0 -76
- package/dist/core/config/interactive-config.d.ts.map +0 -1
- package/dist/core/config/interactive-config.js +0 -315
- package/dist/core/config/interactive-config.js.map +0 -1
- package/dist/core/config/path-config.d.ts +0 -121
- package/dist/core/config/path-config.d.ts.map +0 -1
- package/dist/core/config/path-config.js +0 -210
- package/dist/core/config/path-config.js.map +0 -1
- package/dist/core/config/path-resolver.d.ts +0 -151
- package/dist/core/config/path-resolver.d.ts.map +0 -1
- package/dist/core/config/path-resolver.js +0 -343
- package/dist/core/config/path-resolver.js.map +0 -1
- package/dist/core/config/project-detector.d.ts +0 -58
- package/dist/core/config/project-detector.d.ts.map +0 -1
- package/dist/core/config/project-detector.js +0 -310
- package/dist/core/config/project-detector.js.map +0 -1
- package/dist/core/config-backup/config-aware-reflection.d.ts +0 -37
- package/dist/core/config-backup/config-aware-reflection.d.ts.map +0 -1
- package/dist/core/config-backup/config-aware-reflection.js +0 -97
- package/dist/core/config-backup/config-aware-reflection.js.map +0 -1
- package/dist/core/config-backup/config-loader.d.ts +0 -71
- package/dist/core/config-backup/config-loader.d.ts.map +0 -1
- package/dist/core/config-backup/config-loader.js +0 -288
- package/dist/core/config-backup/config-loader.js.map +0 -1
- package/dist/core/config-backup/interactive-config.d.ts +0 -76
- package/dist/core/config-backup/interactive-config.d.ts.map +0 -1
- package/dist/core/config-backup/interactive-config.js +0 -315
- package/dist/core/config-backup/interactive-config.js.map +0 -1
- package/dist/core/config-backup/path-config.d.ts +0 -121
- package/dist/core/config-backup/path-config.d.ts.map +0 -1
- package/dist/core/config-backup/path-config.js +0 -210
- package/dist/core/config-backup/path-config.js.map +0 -1
- package/dist/core/config-backup/project-detector.d.ts +0 -58
- package/dist/core/config-backup/project-detector.d.ts.map +0 -1
- package/dist/core/config-backup/project-detector.js +0 -310
- package/dist/core/config-backup/project-detector.js.map +0 -1
- package/dist/core/documents/document-manager.d.ts +0 -97
- package/dist/core/documents/document-manager.d.ts.map +0 -1
- package/dist/core/documents/document-manager.js +0 -441
- package/dist/core/documents/document-manager.js.map +0 -1
- package/dist/core/documents/document-migrator.d.ts +0 -138
- package/dist/core/documents/document-migrator.d.ts.map +0 -1
- package/dist/core/documents/document-migrator.js +0 -349
- package/dist/core/documents/document-migrator.js.map +0 -1
- package/dist/core/documents/document-namer.d.ts +0 -111
- package/dist/core/documents/document-namer.d.ts.map +0 -1
- package/dist/core/documents/document-namer.js +0 -225
- package/dist/core/documents/document-namer.js.map +0 -1
- package/dist/core/documents/examples.d.ts +0 -74
- package/dist/core/documents/examples.d.ts.map +0 -1
- package/dist/core/documents/examples.js +0 -273
- package/dist/core/documents/examples.js.map +0 -1
- package/dist/core/documents/file-system.d.ts +0 -93
- package/dist/core/documents/file-system.d.ts.map +0 -1
- package/dist/core/documents/file-system.js +0 -432
- package/dist/core/documents/file-system.js.map +0 -1
- package/dist/core/documents/index.d.ts +0 -97
- package/dist/core/documents/index.d.ts.map +0 -1
- package/dist/core/documents/index.js +0 -119
- package/dist/core/documents/index.js.map +0 -1
- package/dist/core/documents/markdown-processor.d.ts +0 -84
- package/dist/core/documents/markdown-processor.d.ts.map +0 -1
- package/dist/core/documents/markdown-processor.js +0 -302
- package/dist/core/documents/markdown-processor.js.map +0 -1
- package/dist/core/documents/sequence-manager.d.ts +0 -107
- package/dist/core/documents/sequence-manager.d.ts.map +0 -1
- package/dist/core/documents/sequence-manager.js +0 -246
- package/dist/core/documents/sequence-manager.js.map +0 -1
- package/dist/core/documents/template-engine.d.ts +0 -101
- package/dist/core/documents/template-engine.d.ts.map +0 -1
- package/dist/core/documents/template-engine.js +0 -440
- package/dist/core/documents/template-engine.js.map +0 -1
- package/dist/core/platform/hook-migration.d.ts +0 -73
- package/dist/core/platform/hook-migration.d.ts.map +0 -1
- package/dist/core/platform/hook-migration.js +0 -339
- package/dist/core/platform/hook-migration.js.map +0 -1
- package/dist/core/platform/hook-migrator.d.ts +0 -49
- package/dist/core/platform/hook-migrator.d.ts.map +0 -1
- package/dist/core/platform/hook-migrator.js +0 -305
- package/dist/core/platform/hook-migrator.js.map +0 -1
- package/dist/core/platform/path-resolver.d.ts +0 -120
- package/dist/core/platform/path-resolver.d.ts.map +0 -1
- package/dist/core/platform/path-resolver.js +0 -339
- package/dist/core/platform/path-resolver.js.map +0 -1
- package/dist/core/platform/platform-templates.d.ts +0 -62
- package/dist/core/platform/platform-templates.d.ts.map +0 -1
- package/dist/core/platform/platform-templates.js +0 -364
- package/dist/core/platform/platform-templates.js.map +0 -1
- package/dist/core/pressure-monitor.d.ts +0 -76
- package/dist/core/pressure-monitor.d.ts.map +0 -1
- package/dist/core/pressure-monitor.js +0 -156
- package/dist/core/pressure-monitor.js.map +0 -1
- package/dist/core/validators/git-validator.test.d.ts +0 -12
- package/dist/core/validators/git-validator.test.d.ts.map +0 -1
- package/dist/core/validators/git-validator.test.js +0 -40
- package/dist/core/validators/git-validator.test.js.map +0 -1
- package/dist/core/validators/temp_index.d.ts +0 -56
- package/dist/core/validators/temp_index.d.ts.map +0 -1
- package/dist/core/validators/temp_index.js +0 -94
- package/dist/core/validators/temp_index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ginko-root.js","sourceRoot":"","sources":["../../src/utils/ginko-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ginko-root.js","sourceRoot":"","sources":["../../src/utils/ginko-root.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/helpers.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @complexity: low
|
|
9
9
|
*/
|
|
10
10
|
export declare function getGinkoDir(): Promise<string>;
|
|
11
|
+
export declare function getProjectRoot(): Promise<string>;
|
|
11
12
|
export declare function getUserEmail(): Promise<string>;
|
|
12
13
|
export declare function formatTimeAgo(date: Date): string;
|
|
13
14
|
export declare function detectWorkMode(gitStatus: any): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAGnD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAmBpD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAWhD;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBpE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAqCD"}
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAGnD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAEtD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAmBpD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAWhD;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBpE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAqCD"}
|
package/dist/utils/helpers.js
CHANGED
|
@@ -15,6 +15,9 @@ export async function getGinkoDir() {
|
|
|
15
15
|
const root = await requireGinkoRoot();
|
|
16
16
|
return path.join(root, '.ginko');
|
|
17
17
|
}
|
|
18
|
+
export async function getProjectRoot() {
|
|
19
|
+
return await requireGinkoRoot();
|
|
20
|
+
}
|
|
18
21
|
export async function getUserEmail() {
|
|
19
22
|
try {
|
|
20
23
|
// Try git config first
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: utility
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-10-22
|
|
5
|
+
* @tags: [session-logging, quality-validation, adr-033, defensive-logging]
|
|
6
|
+
* @related: [../core/session-log-manager.ts, ../commands/log.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [simple-git, child_process]
|
|
10
|
+
*/
|
|
11
|
+
import { LogEntry } from '../core/session-log-manager.js';
|
|
12
|
+
export interface QualityMetrics {
|
|
13
|
+
score: number;
|
|
14
|
+
hasRootCauses: boolean;
|
|
15
|
+
hasWhyForFeatures: boolean;
|
|
16
|
+
hasAlternatives: boolean;
|
|
17
|
+
hasInsights: boolean;
|
|
18
|
+
hasGitOps: boolean;
|
|
19
|
+
terseEntries: number;
|
|
20
|
+
suggestions: string[];
|
|
21
|
+
}
|
|
22
|
+
export interface GitContext {
|
|
23
|
+
recentCommits: string[];
|
|
24
|
+
currentBranch: string;
|
|
25
|
+
modifiedFiles: string[];
|
|
26
|
+
hasUncommittedChanges: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Detect git operations and context for smart logging
|
|
30
|
+
*/
|
|
31
|
+
export declare function detectGitContext(): Promise<GitContext>;
|
|
32
|
+
/**
|
|
33
|
+
* Auto-detect files affected from git status
|
|
34
|
+
*/
|
|
35
|
+
export declare function autoDetectFiles(): Promise<string[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Score session log quality based on criteria
|
|
38
|
+
*/
|
|
39
|
+
export declare function scoreSessionLog(logContent: string): QualityMetrics;
|
|
40
|
+
/**
|
|
41
|
+
* Validate a single log entry for quality
|
|
42
|
+
*/
|
|
43
|
+
export declare function validateEntry(entry: LogEntry): {
|
|
44
|
+
isValid: boolean;
|
|
45
|
+
warnings: string[];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Generate quality examples for help text
|
|
49
|
+
*/
|
|
50
|
+
export declare function getQualityExamples(): string;
|
|
51
|
+
/**
|
|
52
|
+
* Suggest insights based on patterns in session log
|
|
53
|
+
*/
|
|
54
|
+
export declare function suggestInsights(logContent: string): string[];
|
|
55
|
+
//# sourceMappingURL=log-quality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-quality.d.ts","sourceRoot":"","sources":["../../src/utils/log-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,QAAQ,EAAe,MAAM,gCAAgC,CAAC;AAGvE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAqC5D;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGzD;AAmFD;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAgFlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CA0CA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAmC3C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAqC5D"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: utility
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-10-22
|
|
5
|
+
* @tags: [session-logging, quality-validation, adr-033, defensive-logging]
|
|
6
|
+
* @related: [../core/session-log-manager.ts, ../commands/log.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [simple-git, child_process]
|
|
10
|
+
*/
|
|
11
|
+
import simpleGit from 'simple-git';
|
|
12
|
+
/**
|
|
13
|
+
* Detect git operations and context for smart logging
|
|
14
|
+
*/
|
|
15
|
+
export async function detectGitContext() {
|
|
16
|
+
const git = simpleGit();
|
|
17
|
+
try {
|
|
18
|
+
// Get current branch
|
|
19
|
+
const currentBranch = await git.revparse(['--abbrev-ref', 'HEAD']);
|
|
20
|
+
// Get recent commits (last 5)
|
|
21
|
+
const log = await git.log({ maxCount: 5 });
|
|
22
|
+
const recentCommits = log.all.map(commit => `${commit.hash.substring(0, 7)} - ${commit.message}`);
|
|
23
|
+
// Get modified files
|
|
24
|
+
const status = await git.status();
|
|
25
|
+
const modifiedFiles = [
|
|
26
|
+
...status.modified,
|
|
27
|
+
...status.created,
|
|
28
|
+
...status.deleted,
|
|
29
|
+
...status.renamed.map(r => r.to)
|
|
30
|
+
];
|
|
31
|
+
return {
|
|
32
|
+
recentCommits,
|
|
33
|
+
currentBranch: currentBranch.trim(),
|
|
34
|
+
modifiedFiles,
|
|
35
|
+
hasUncommittedChanges: !status.isClean()
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
// Return empty context if git operations fail
|
|
40
|
+
return {
|
|
41
|
+
recentCommits: [],
|
|
42
|
+
currentBranch: '',
|
|
43
|
+
modifiedFiles: [],
|
|
44
|
+
hasUncommittedChanges: false
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Auto-detect files affected from git status
|
|
50
|
+
*/
|
|
51
|
+
export async function autoDetectFiles() {
|
|
52
|
+
const context = await detectGitContext();
|
|
53
|
+
return context.modifiedFiles;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if description contains WHY keywords
|
|
57
|
+
*/
|
|
58
|
+
function hasWhyKeywords(description) {
|
|
59
|
+
const whyKeywords = [
|
|
60
|
+
'because',
|
|
61
|
+
'to enable',
|
|
62
|
+
'to fix',
|
|
63
|
+
'to address',
|
|
64
|
+
'solves',
|
|
65
|
+
'addresses',
|
|
66
|
+
'enables',
|
|
67
|
+
'fixes',
|
|
68
|
+
'root cause',
|
|
69
|
+
'caused by',
|
|
70
|
+
'rationale',
|
|
71
|
+
'reason',
|
|
72
|
+
'problem',
|
|
73
|
+
'issue'
|
|
74
|
+
];
|
|
75
|
+
const lowerDesc = description.toLowerCase();
|
|
76
|
+
return whyKeywords.some(keyword => lowerDesc.includes(keyword));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Check if description contains alternatives for decisions
|
|
80
|
+
*/
|
|
81
|
+
function hasAlternatives(description) {
|
|
82
|
+
const alternativeKeywords = [
|
|
83
|
+
'alternative',
|
|
84
|
+
'alternatives',
|
|
85
|
+
'considered',
|
|
86
|
+
'vs',
|
|
87
|
+
'versus',
|
|
88
|
+
'instead of',
|
|
89
|
+
'rather than',
|
|
90
|
+
'over',
|
|
91
|
+
'compared to',
|
|
92
|
+
'option',
|
|
93
|
+
'choice'
|
|
94
|
+
];
|
|
95
|
+
const lowerDesc = description.toLowerCase();
|
|
96
|
+
return alternativeKeywords.some(keyword => lowerDesc.includes(keyword));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Count words in a description
|
|
100
|
+
*/
|
|
101
|
+
function countWords(text) {
|
|
102
|
+
return text.trim().split(/\s+/).length;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Check if entry is terse (< 15 words)
|
|
106
|
+
*/
|
|
107
|
+
function isTerse(description) {
|
|
108
|
+
return countWords(description) < 15;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Extract entries by category from log content
|
|
112
|
+
*/
|
|
113
|
+
function extractByCategory(logContent, category) {
|
|
114
|
+
const entries = [];
|
|
115
|
+
// Match entry pattern: ### HH:MM - [category]
|
|
116
|
+
const entryRegex = new RegExp(`### \\d{2}:\\d{2} - \\[${category}\\]\\n([\\s\\S]*?)(?=\\n### |\\n## |$)`, 'g');
|
|
117
|
+
let match;
|
|
118
|
+
while ((match = entryRegex.exec(logContent)) !== null) {
|
|
119
|
+
entries.push(match[1].trim());
|
|
120
|
+
}
|
|
121
|
+
return entries;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Score session log quality based on criteria
|
|
125
|
+
*/
|
|
126
|
+
export function scoreSessionLog(logContent) {
|
|
127
|
+
const fixes = extractByCategory(logContent, 'fix');
|
|
128
|
+
const features = extractByCategory(logContent, 'feature');
|
|
129
|
+
const decisions = extractByCategory(logContent, 'decision');
|
|
130
|
+
const insights = extractByCategory(logContent, 'insight');
|
|
131
|
+
const gitOps = extractByCategory(logContent, 'git');
|
|
132
|
+
let score = 10.0;
|
|
133
|
+
const suggestions = [];
|
|
134
|
+
// Check root causes in fixes
|
|
135
|
+
const fixesWithRootCause = fixes.filter(f => hasWhyKeywords(f));
|
|
136
|
+
const fixRatio = fixes.length > 0 ? fixesWithRootCause.length / fixes.length : 1;
|
|
137
|
+
const hasRootCauses = fixRatio >= 0.8;
|
|
138
|
+
if (!hasRootCauses && fixes.length > 0) {
|
|
139
|
+
score -= 1.0;
|
|
140
|
+
suggestions.push(`Add root causes to fix entries (${fixesWithRootCause.length}/${fixes.length} have them)`);
|
|
141
|
+
}
|
|
142
|
+
// Check WHY in features
|
|
143
|
+
const featuresWithWhy = features.filter(f => hasWhyKeywords(f));
|
|
144
|
+
const featureRatio = features.length > 0 ? featuresWithWhy.length / features.length : 1;
|
|
145
|
+
const hasWhyForFeatures = featureRatio >= 0.7;
|
|
146
|
+
if (!hasWhyForFeatures && features.length > 0) {
|
|
147
|
+
score -= 1.5;
|
|
148
|
+
suggestions.push(`Add WHY (problem solved) to feature entries (${featuresWithWhy.length}/${features.length} have it)`);
|
|
149
|
+
}
|
|
150
|
+
// Check alternatives in decisions
|
|
151
|
+
const decisionsWithAlternatives = decisions.filter(d => hasAlternatives(d));
|
|
152
|
+
const decisionRatio = decisions.length > 0 ? decisionsWithAlternatives.length / decisions.length : 1;
|
|
153
|
+
const hasAlternativesPresent = decisionRatio >= 0.6;
|
|
154
|
+
if (!hasAlternativesPresent && decisions.length > 0) {
|
|
155
|
+
score -= 1.0;
|
|
156
|
+
suggestions.push(`Document alternatives in decision entries (${decisionsWithAlternatives.length}/${decisions.length} have them)`);
|
|
157
|
+
}
|
|
158
|
+
// Check for insights
|
|
159
|
+
const hasInsightsPresent = insights.length > 0;
|
|
160
|
+
if (!hasInsightsPresent) {
|
|
161
|
+
score -= 0.5;
|
|
162
|
+
suggestions.push('Consider documenting insights and learnings discovered during session');
|
|
163
|
+
}
|
|
164
|
+
// Check for git operations
|
|
165
|
+
const hasGitOps = gitOps.length > 0;
|
|
166
|
+
if (!hasGitOps) {
|
|
167
|
+
suggestions.push('Consider logging git operations (commits, merges, branch changes)');
|
|
168
|
+
}
|
|
169
|
+
// Count terse entries across all categories
|
|
170
|
+
const allDescriptions = [...fixes, ...features, ...decisions, ...insights, ...gitOps];
|
|
171
|
+
const terseEntries = allDescriptions.filter(d => isTerse(d)).length;
|
|
172
|
+
if (terseEntries > 0) {
|
|
173
|
+
score -= 0.5;
|
|
174
|
+
suggestions.push(`${terseEntries} entries are terse (<15 words). Add more context for better handoffs.`);
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
score: Math.max(0, Math.min(10, score)),
|
|
178
|
+
hasRootCauses,
|
|
179
|
+
hasWhyForFeatures,
|
|
180
|
+
hasAlternatives: hasAlternativesPresent,
|
|
181
|
+
hasInsights: hasInsightsPresent,
|
|
182
|
+
hasGitOps,
|
|
183
|
+
terseEntries,
|
|
184
|
+
suggestions
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Validate a single log entry for quality
|
|
189
|
+
*/
|
|
190
|
+
export function validateEntry(entry) {
|
|
191
|
+
const warnings = [];
|
|
192
|
+
// Check for terse descriptions
|
|
193
|
+
if (isTerse(entry.description)) {
|
|
194
|
+
warnings.push('Description is terse (<15 words). Consider adding more context.');
|
|
195
|
+
}
|
|
196
|
+
// Check category-specific requirements
|
|
197
|
+
switch (entry.category) {
|
|
198
|
+
case 'fix':
|
|
199
|
+
if (!hasWhyKeywords(entry.description)) {
|
|
200
|
+
warnings.push('Fix entry should include root cause (why it happened).');
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
case 'feature':
|
|
204
|
+
if (!hasWhyKeywords(entry.description)) {
|
|
205
|
+
warnings.push('Feature entry should explain WHY (what problem it solves).');
|
|
206
|
+
}
|
|
207
|
+
break;
|
|
208
|
+
case 'decision':
|
|
209
|
+
if (!hasAlternatives(entry.description)) {
|
|
210
|
+
warnings.push('Decision entry should mention alternatives considered.');
|
|
211
|
+
}
|
|
212
|
+
break;
|
|
213
|
+
case 'insight':
|
|
214
|
+
// Insights are flexible, just check they're not too terse
|
|
215
|
+
break;
|
|
216
|
+
case 'git':
|
|
217
|
+
case 'achievement':
|
|
218
|
+
// These are typically fine as-is
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
isValid: warnings.length === 0,
|
|
223
|
+
warnings
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Generate quality examples for help text
|
|
228
|
+
*/
|
|
229
|
+
export function getQualityExamples() {
|
|
230
|
+
return `
|
|
231
|
+
Quality Examples:
|
|
232
|
+
|
|
233
|
+
GOOD - Fix with root cause:
|
|
234
|
+
"Fixed authentication timeout in login flow. Root cause: bcrypt rounds set to 15
|
|
235
|
+
(too slow). Reduced to 11 for 200ms response time while maintaining security."
|
|
236
|
+
|
|
237
|
+
BAD - Fix without root cause:
|
|
238
|
+
"Fixed auth timeout"
|
|
239
|
+
|
|
240
|
+
GOOD - Feature with WHY:
|
|
241
|
+
"Implemented --show flag for ginko log command. Problem: Users couldn't view logged
|
|
242
|
+
events without opening files manually. Solution: Added terminal view with summary
|
|
243
|
+
statistics for quick access."
|
|
244
|
+
|
|
245
|
+
BAD - Feature without WHY:
|
|
246
|
+
"Implemented --show flag"
|
|
247
|
+
|
|
248
|
+
GOOD - Decision with alternatives:
|
|
249
|
+
"Chose JWT over session cookies for authentication. Alternatives: 1) Server-side
|
|
250
|
+
sessions (better security but harder to scale), 2) OAuth only (simpler but vendor
|
|
251
|
+
lock-in). JWT selected for stateless scaling and mobile client support."
|
|
252
|
+
|
|
253
|
+
BAD - Decision without alternatives:
|
|
254
|
+
"Chose JWT for authentication"
|
|
255
|
+
|
|
256
|
+
GOOD - Insight with context:
|
|
257
|
+
"Discovered bcrypt rounds 10-11 provide optimal security/performance balance. Testing
|
|
258
|
+
showed rounds 15 caused 800ms login delays; rounds 11 achieved 200ms with acceptable
|
|
259
|
+
entropy per OWASP standards."
|
|
260
|
+
|
|
261
|
+
BAD - Insight without context:
|
|
262
|
+
"Bcrypt rounds should be 11"
|
|
263
|
+
`;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Suggest insights based on patterns in session log
|
|
267
|
+
*/
|
|
268
|
+
export function suggestInsights(logContent) {
|
|
269
|
+
const suggestions = [];
|
|
270
|
+
const fixes = extractByCategory(logContent, 'fix');
|
|
271
|
+
// Check for repeated errors
|
|
272
|
+
const errorPatterns = new Map();
|
|
273
|
+
for (const fix of fixes) {
|
|
274
|
+
// Extract potential error patterns (simplified)
|
|
275
|
+
const words = fix.toLowerCase().split(/\s+/);
|
|
276
|
+
for (const word of words) {
|
|
277
|
+
if (word.length > 5) {
|
|
278
|
+
// Only count meaningful words
|
|
279
|
+
errorPatterns.set(word, (errorPatterns.get(word) || 0) + 1);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// Find patterns that occurred multiple times
|
|
284
|
+
for (const [pattern, count] of errorPatterns) {
|
|
285
|
+
if (count >= 2) {
|
|
286
|
+
suggestions.push(`Pattern detected: "${pattern}" mentioned in ${count} fix entries. Consider documenting this as an insight.`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
// Check for performance-related fixes
|
|
290
|
+
const performanceKeywords = ['slow', 'timeout', 'performance', 'latency', 'delay'];
|
|
291
|
+
const hasPerformanceFixes = fixes.some(f => performanceKeywords.some(kw => f.toLowerCase().includes(kw)));
|
|
292
|
+
if (hasPerformanceFixes) {
|
|
293
|
+
suggestions.push('Performance improvements detected. Consider documenting the optimization as an insight.');
|
|
294
|
+
}
|
|
295
|
+
return suggestions;
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=log-quality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-quality.js","sourceRoot":"","sources":["../../src/utils/log-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,SAAS,MAAM,YAAY,CAAC;AAoBnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IAExB,IAAI,CAAC;QACH,qBAAqB;QACrB,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAEnE,8BAA8B;QAC9B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAC/B,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAC/D,CAAC;QAEF,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG;YACpB,GAAG,MAAM,CAAC,QAAQ;YAClB,GAAG,MAAM,CAAC,OAAO;YACjB,GAAG,MAAM,CAAC,OAAO;YACjB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjC,CAAC;QAEF,OAAO;YACL,aAAa;YACb,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE;YACnC,aAAa;YACb,qBAAqB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;SACzC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8CAA8C;QAC9C,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;YACjB,qBAAqB,EAAE,KAAK;SAC7B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACzC,OAAO,OAAO,CAAC,aAAa,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,WAAmB;IACzC,MAAM,WAAW,GAAG;QAClB,SAAS;QACT,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,SAAS;QACT,OAAO;QACP,YAAY;QACZ,WAAW;QACX,WAAW;QACX,QAAQ;QACR,SAAS;QACT,OAAO;KACR,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,WAAmB;IAC1C,MAAM,mBAAmB,GAAG;QAC1B,aAAa;QACb,cAAc;QACd,YAAY;QACZ,IAAI;QACJ,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,MAAM;QACN,aAAa;QACb,QAAQ;QACR,QAAQ;KACT,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,WAAmB;IAClC,OAAO,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,UAAkB,EAAE,QAAgB;IAC7D,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,8CAA8C;IAC9C,MAAM,UAAU,GAAG,IAAI,MAAM,CAC3B,0BAA0B,QAAQ,wCAAwC,EAC1E,GAAG,CACJ,CAAC;IAEF,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAEpD,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,6BAA6B;IAC7B,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,aAAa,GAAG,QAAQ,IAAI,GAAG,CAAC;IAEtC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,KAAK,IAAI,GAAG,CAAC;QACb,WAAW,CAAC,IAAI,CACd,mCAAmC,kBAAkB,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,aAAa,CAC1F,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,iBAAiB,GAAG,YAAY,IAAI,GAAG,CAAC;IAE9C,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,IAAI,GAAG,CAAC;QACb,WAAW,CAAC,IAAI,CACd,gDAAgD,eAAe,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,WAAW,CACrG,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,MAAM,yBAAyB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,MAAM,sBAAsB,GAAG,aAAa,IAAI,GAAG,CAAC;IAEpD,IAAI,CAAC,sBAAsB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,KAAK,IAAI,GAAG,CAAC;QACb,WAAW,CAAC,IAAI,CACd,8CAA8C,yBAAyB,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,aAAa,CAChH,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,KAAK,IAAI,GAAG,CAAC;QACb,WAAW,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;IAC5F,CAAC;IAED,2BAA2B;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,WAAW,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IACxF,CAAC;IAED,4CAA4C;IAC5C,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;IACtF,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,IAAI,GAAG,CAAC;QACb,WAAW,CAAC,IAAI,CACd,GAAG,YAAY,uEAAuE,CACvF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACvC,aAAa;QACb,iBAAiB;QACjB,eAAe,EAAE,sBAAsB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,SAAS;QACT,YAAY;QACZ,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAe;IAI3C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,+BAA+B;IAC/B,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IACnF,CAAC;IAED,uCAAuC;IACvC,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,KAAK;YACR,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM;QAER,KAAK,UAAU;YACb,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM;QAER,KAAK,SAAS;YACZ,0DAA0D;YAC1D,MAAM;QAER,KAAK,KAAK,CAAC;QACX,KAAK,aAAa;YAChB,iCAAiC;YACjC,MAAM;IACV,CAAC;IAED,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC9B,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAEnD,4BAA4B;IAC5B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,gDAAgD;QAChD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,8BAA8B;gBAC9B,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;QAC7C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,WAAW,CAAC,IAAI,CACd,sBAAsB,OAAO,kBAAkB,KAAK,wDAAwD,CAC7G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnF,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACzC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAC7D,CAAC;IAEF,IAAI,mBAAmB,EAAE,CAAC;QACxB,WAAW,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;IAC9G,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: utility
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-10-22
|
|
5
|
+
* @tags: [references, parsing, navigation, context-linking, prd-009, task-010]
|
|
6
|
+
* @related: [config-loader.ts, log.ts, session-log-manager.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [fs-extra, path, glob]
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Reference types supported by the system
|
|
13
|
+
*/
|
|
14
|
+
export type ReferenceType = 'task' | 'feature' | 'prd' | 'adr' | 'sprint';
|
|
15
|
+
/**
|
|
16
|
+
* A parsed reference with type and ID
|
|
17
|
+
*/
|
|
18
|
+
export interface Reference {
|
|
19
|
+
type: ReferenceType;
|
|
20
|
+
id: string;
|
|
21
|
+
rawText: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A resolved reference with file path
|
|
25
|
+
*/
|
|
26
|
+
export interface ResolvedReference extends Reference {
|
|
27
|
+
filePath: string | null;
|
|
28
|
+
exists: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Reference chain showing document relationships
|
|
32
|
+
*/
|
|
33
|
+
export interface ReferenceChain {
|
|
34
|
+
source: string;
|
|
35
|
+
chain: ResolvedReference[];
|
|
36
|
+
depth: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Extract all references from text
|
|
40
|
+
*
|
|
41
|
+
* @param text - Text to search for references
|
|
42
|
+
* @returns Array of Reference objects
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* const refs = extractReferences("Fixed TASK-006 per PRD-009 and ADR-033");
|
|
46
|
+
* // → [
|
|
47
|
+
* // { type: 'task', id: '006', rawText: 'TASK-006' },
|
|
48
|
+
* // { type: 'prd', id: '009', rawText: 'PRD-009' },
|
|
49
|
+
* // { type: 'adr', id: '033', rawText: 'ADR-033' }
|
|
50
|
+
* // ]
|
|
51
|
+
*/
|
|
52
|
+
export declare function extractReferences(text: string): Reference[];
|
|
53
|
+
/**
|
|
54
|
+
* Resolve a reference to its file path
|
|
55
|
+
* Uses config-loader to map reference types to directory paths
|
|
56
|
+
*
|
|
57
|
+
* @param reference - Reference to resolve
|
|
58
|
+
* @returns ResolvedReference with file path and exists flag
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* const resolved = await resolveReference({ type: 'task', id: '006', rawText: 'TASK-006' });
|
|
62
|
+
* // → {
|
|
63
|
+
* // type: 'task',
|
|
64
|
+
* // id: '006',
|
|
65
|
+
* // rawText: 'TASK-006',
|
|
66
|
+
* // filePath: '/path/to/backlog/items/TASK-006.md',
|
|
67
|
+
* // exists: true
|
|
68
|
+
* // }
|
|
69
|
+
*/
|
|
70
|
+
export declare function resolveReference(reference: Reference): Promise<ResolvedReference>;
|
|
71
|
+
/**
|
|
72
|
+
* Validate references - check if all targets exist
|
|
73
|
+
* Non-blocking, returns validation results with warnings
|
|
74
|
+
*
|
|
75
|
+
* @param references - Array of references to validate
|
|
76
|
+
* @returns Validation results with broken references
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* const validation = await validateReferences(refs);
|
|
80
|
+
* if (validation.broken.length > 0) {
|
|
81
|
+
* console.warn('Broken references:', validation.broken);
|
|
82
|
+
* }
|
|
83
|
+
*/
|
|
84
|
+
export declare function validateReferences(references: Reference[]): Promise<{
|
|
85
|
+
valid: ResolvedReference[];
|
|
86
|
+
broken: ResolvedReference[];
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Load content of a referenced document
|
|
90
|
+
*
|
|
91
|
+
* @param reference - Resolved reference to load
|
|
92
|
+
* @returns File content or null if doesn't exist
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* const content = await getReferencedContent(resolvedRef);
|
|
96
|
+
* if (content) {
|
|
97
|
+
* // Parse and use content
|
|
98
|
+
* }
|
|
99
|
+
*/
|
|
100
|
+
export declare function getReferencedContent(reference: ResolvedReference): Promise<string | null>;
|
|
101
|
+
/**
|
|
102
|
+
* Follow reference chain recursively (with depth limit)
|
|
103
|
+
* Detects circular references
|
|
104
|
+
*
|
|
105
|
+
* @param sourceRef - Starting reference to follow
|
|
106
|
+
* @param maxDepth - Maximum depth to traverse (default: 3)
|
|
107
|
+
* @returns ReferenceChain object
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* const chain = await getReferenceChain(taskRef, 3);
|
|
111
|
+
* // → {
|
|
112
|
+
* // source: 'TASK-006',
|
|
113
|
+
* // chain: [
|
|
114
|
+
* // { type: 'feature', id: '024', rawText: 'FEATURE-024', ... },
|
|
115
|
+
* // { type: 'prd', id: '009', rawText: 'PRD-009', ... },
|
|
116
|
+
* // { type: 'adr', id: '037', rawText: 'ADR-037', ... }
|
|
117
|
+
* // ],
|
|
118
|
+
* // depth: 3
|
|
119
|
+
* // }
|
|
120
|
+
*/
|
|
121
|
+
export declare function getReferenceChain(sourceRef: Reference, maxDepth?: number): Promise<ReferenceChain>;
|
|
122
|
+
/**
|
|
123
|
+
* Format reference chain as human-readable string
|
|
124
|
+
*
|
|
125
|
+
* @param chain - Reference chain to format
|
|
126
|
+
* @returns Formatted string like "TASK-006 → FEATURE-024 → PRD-009 → ADR-037"
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* const formatted = formatReferenceChain(chain);
|
|
130
|
+
* console.log(formatted);
|
|
131
|
+
* // → "TASK-006 → FEATURE-024 → PRD-009 → ADR-037"
|
|
132
|
+
*/
|
|
133
|
+
export declare function formatReferenceChain(chain: ReferenceChain): string;
|
|
134
|
+
/**
|
|
135
|
+
* Get backlinks - find all documents referencing a given document
|
|
136
|
+
* Useful for understanding what depends on a document
|
|
137
|
+
*
|
|
138
|
+
* @param targetRef - Reference to find backlinks for
|
|
139
|
+
* @param searchPaths - Array of directory paths to search (defaults to all doc paths)
|
|
140
|
+
* @returns Array of file paths containing references to target
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* const backlinks = await getBacklinks({ type: 'prd', id: '009', rawText: 'PRD-009' });
|
|
144
|
+
* // → [
|
|
145
|
+
* // '/path/to/backlog/items/TASK-006.md',
|
|
146
|
+
* // '/path/to/backlog/items/TASK-010.md',
|
|
147
|
+
* // '/path/to/docs/sprints/SPRINT-2025-10-22-configuration-system.md'
|
|
148
|
+
* // ]
|
|
149
|
+
*/
|
|
150
|
+
export declare function getBacklinks(targetRef: Reference, searchPaths?: string[]): Promise<string[]>;
|
|
151
|
+
/**
|
|
152
|
+
* Clear the resolved path cache
|
|
153
|
+
* Useful after file changes or for testing
|
|
154
|
+
*/
|
|
155
|
+
export declare function clearResolvedPathCache(): void;
|
|
156
|
+
/**
|
|
157
|
+
* Get all references from a file
|
|
158
|
+
* Convenience wrapper around extractReferences
|
|
159
|
+
*
|
|
160
|
+
* @param filePath - Path to file to extract references from
|
|
161
|
+
* @returns Array of Reference objects
|
|
162
|
+
*/
|
|
163
|
+
export declare function getReferencesFromFile(filePath: string): Promise<Reference[]>;
|
|
164
|
+
//# sourceMappingURL=reference-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-parser.d.ts","sourceRoot":"","sources":["../../src/utils/reference-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoBH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAmBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CA0B3D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqFvF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC;IACT,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B,CAAC,CAOD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUxB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,EACpB,QAAQ,GAAE,MAAU,GACnB,OAAO,CAAC,cAAc,CAAC,CAyCzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAOlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CA2CnB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAOlF"}
|