@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
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: utility
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-11-04
|
|
5
|
+
* @tags: [context-loading, events, adr-043, session-cursor, graph]
|
|
6
|
+
* @related: [context-loader.ts, session-logger.ts, CloudGraphClient]
|
|
7
|
+
* @priority: critical
|
|
8
|
+
* @complexity: high
|
|
9
|
+
* @dependencies: [fs-extra, path]
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Event-Based Context Loader (ADR-043)
|
|
13
|
+
*
|
|
14
|
+
* Loads context by reading backwards through event stream from cursor position,
|
|
15
|
+
* replacing handoff-based context loading with continuous event history.
|
|
16
|
+
*
|
|
17
|
+
* Key differences from handoff-based loading:
|
|
18
|
+
* - Reads raw events instead of synthesized summaries
|
|
19
|
+
* - Loads my events + team high-signal events
|
|
20
|
+
* - Extracts document references from event descriptions
|
|
21
|
+
* - Follows graph relationships to load related documents
|
|
22
|
+
* - Target: <30K tokens total (vs 88K with handoff approach)
|
|
23
|
+
*
|
|
24
|
+
* Based on ADR-043 Event Stream Session Model
|
|
25
|
+
*/
|
|
26
|
+
import fs from 'fs-extra';
|
|
27
|
+
import path from 'path';
|
|
28
|
+
/**
|
|
29
|
+
* Load context using consolidated API endpoint (performance optimized)
|
|
30
|
+
*
|
|
31
|
+
* Single API call that performs all operations server-side:
|
|
32
|
+
* - Read events backward
|
|
33
|
+
* - Load team events
|
|
34
|
+
* - Extract & load documents
|
|
35
|
+
* - Follow relationships
|
|
36
|
+
* - Get active sprint
|
|
37
|
+
*
|
|
38
|
+
* Performance: ~2-3s vs ~10-15s (4-5 sequential calls)
|
|
39
|
+
*/
|
|
40
|
+
async function loadContextConsolidated(cursor, options = {}) {
|
|
41
|
+
const { eventLimit = 50, includeTeam = false, teamEventLimit = 20, categories, documentDepth = 2, teamDays = 7 } = options;
|
|
42
|
+
try {
|
|
43
|
+
const { GraphApiClient } = await import('../commands/graph/api-client.js');
|
|
44
|
+
const client = new GraphApiClient();
|
|
45
|
+
// Build query parameters
|
|
46
|
+
const params = new URLSearchParams({
|
|
47
|
+
cursorId: cursor.current_event_id,
|
|
48
|
+
userId: cursor.user_id,
|
|
49
|
+
projectId: cursor.project_id,
|
|
50
|
+
eventLimit: eventLimit.toString(),
|
|
51
|
+
includeTeam: includeTeam.toString(),
|
|
52
|
+
teamEventLimit: teamEventLimit.toString(),
|
|
53
|
+
teamDays: teamDays.toString(),
|
|
54
|
+
documentDepth: documentDepth.toString(),
|
|
55
|
+
});
|
|
56
|
+
if (categories && categories.length > 0) {
|
|
57
|
+
params.append('categories', categories.join(','));
|
|
58
|
+
}
|
|
59
|
+
if (cursor.branch) {
|
|
60
|
+
params.append('branch', cursor.branch);
|
|
61
|
+
}
|
|
62
|
+
console.log('📡 Using consolidated API endpoint (single call)');
|
|
63
|
+
// Single API call for all context loading
|
|
64
|
+
const response = await client.request('GET', `/api/v1/context/initial-load?${params.toString()}`);
|
|
65
|
+
console.log(`⚡ Consolidated load: ${response.performance.queryTimeMs}ms (${response.event_count} events, ${response.performance.documentsLoaded} docs)`);
|
|
66
|
+
return {
|
|
67
|
+
cursor,
|
|
68
|
+
myEvents: normalizeEvents(response.myEvents || []),
|
|
69
|
+
teamEvents: response.teamEvents ? normalizeEvents(response.teamEvents) : undefined,
|
|
70
|
+
documents: response.documents,
|
|
71
|
+
relatedDocs: response.relatedDocs,
|
|
72
|
+
sprint: response.sprint,
|
|
73
|
+
loaded_at: new Date(response.loaded_at),
|
|
74
|
+
event_count: response.event_count,
|
|
75
|
+
token_estimate: response.token_estimate,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.log(`⚠️ Consolidated endpoint failed: ${error.message}`);
|
|
80
|
+
throw error; // Re-throw to trigger fallback
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Load context from cursor position by reading events backwards
|
|
85
|
+
*
|
|
86
|
+
* @param cursor - Session cursor with current position
|
|
87
|
+
* @param options - Loading options
|
|
88
|
+
* @returns Loaded context with events, documents, and metadata
|
|
89
|
+
*/
|
|
90
|
+
export async function loadContextFromCursor(cursor, options = {}) {
|
|
91
|
+
const startTime = Date.now();
|
|
92
|
+
const { eventLimit = 50, includeTeam = false, teamEventLimit = 20, categories, documentDepth = 2, teamDays = 7 } = options;
|
|
93
|
+
// Try consolidated endpoint first (performance optimized)
|
|
94
|
+
try {
|
|
95
|
+
return await loadContextConsolidated(cursor, options);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.log('⚠️ Falling back to multi-call approach');
|
|
99
|
+
}
|
|
100
|
+
// Fallback: Multi-call approach (original behavior)
|
|
101
|
+
// 1. Read my events backwards from cursor
|
|
102
|
+
const myEvents = await readEventsBackward(cursor.current_event_id, cursor.user_id, cursor.project_id, eventLimit, { categories, branch: cursor.branch });
|
|
103
|
+
// 2. Load team events (optional)
|
|
104
|
+
let teamEvents = [];
|
|
105
|
+
if (includeTeam) {
|
|
106
|
+
teamEvents = await loadTeamEvents(cursor.project_id, cursor.user_id, teamEventLimit, teamDays);
|
|
107
|
+
}
|
|
108
|
+
// 3. Extract document references from events
|
|
109
|
+
const allEvents = [...myEvents, ...teamEvents];
|
|
110
|
+
const documentRefs = extractDocumentReferences(allEvents);
|
|
111
|
+
// 4. Load mentioned documents from graph
|
|
112
|
+
const documents = await loadDocuments(documentRefs);
|
|
113
|
+
// 5. Follow typed relationships (ADR-042)
|
|
114
|
+
const relatedDocs = await followTypedRelationships(documents, documentDepth);
|
|
115
|
+
// 6. Get active sprint context
|
|
116
|
+
const sprint = await getActiveSprint(cursor.project_id);
|
|
117
|
+
// 7. Calculate token estimate
|
|
118
|
+
const tokenEstimate = estimateTokens({
|
|
119
|
+
myEvents,
|
|
120
|
+
teamEvents,
|
|
121
|
+
documents,
|
|
122
|
+
relatedDocs,
|
|
123
|
+
sprint
|
|
124
|
+
});
|
|
125
|
+
const loadedContext = {
|
|
126
|
+
cursor,
|
|
127
|
+
myEvents,
|
|
128
|
+
teamEvents: includeTeam ? teamEvents : undefined,
|
|
129
|
+
documents,
|
|
130
|
+
relatedDocs,
|
|
131
|
+
sprint,
|
|
132
|
+
loaded_at: new Date(),
|
|
133
|
+
event_count: allEvents.length,
|
|
134
|
+
token_estimate: tokenEstimate
|
|
135
|
+
};
|
|
136
|
+
console.log(`⏱️ Context loaded in ${Date.now() - startTime}ms`);
|
|
137
|
+
return loadedContext;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Read events backwards from cursor position (Git log style)
|
|
141
|
+
*
|
|
142
|
+
* @param fromEventId - Starting event ID (cursor position)
|
|
143
|
+
* @param userId - Filter by user
|
|
144
|
+
* @param projectId - Filter by project (multi-tenant)
|
|
145
|
+
* @param limit - Number of events to read
|
|
146
|
+
* @param filters - Additional filters
|
|
147
|
+
* @returns Array of events in reverse chronological order
|
|
148
|
+
*/
|
|
149
|
+
async function readEventsBackward(fromEventId, userId, projectId, limit = 50, filters) {
|
|
150
|
+
console.log(`📖 Reading ${limit} events backwards from ${fromEventId} for user ${userId}`);
|
|
151
|
+
try {
|
|
152
|
+
const { GraphApiClient } = await import('../commands/graph/api-client.js');
|
|
153
|
+
const client = new GraphApiClient();
|
|
154
|
+
// Build query parameters
|
|
155
|
+
const params = new URLSearchParams({
|
|
156
|
+
cursorId: fromEventId,
|
|
157
|
+
limit: limit.toString(),
|
|
158
|
+
});
|
|
159
|
+
if (filters?.categories && filters.categories.length > 0) {
|
|
160
|
+
params.append('categories', filters.categories.join(','));
|
|
161
|
+
}
|
|
162
|
+
if (filters?.branch) {
|
|
163
|
+
params.append('branch', filters.branch);
|
|
164
|
+
}
|
|
165
|
+
// Call API endpoint
|
|
166
|
+
const response = await client.request('GET', `/api/v1/events?${params.toString()}`);
|
|
167
|
+
return normalizeEvents(response.events || []);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
console.error('Failed to read events:', error);
|
|
171
|
+
return [];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Load team high-signal events (decisions, achievements, git)
|
|
176
|
+
*
|
|
177
|
+
* @param projectId - Project ID for multi-tenant filtering
|
|
178
|
+
* @param excludeUserId - Exclude events from this user
|
|
179
|
+
* @param limit - Number of team events to load
|
|
180
|
+
* @param days - Load events from last N days
|
|
181
|
+
* @returns Array of high-signal team events
|
|
182
|
+
*/
|
|
183
|
+
async function loadTeamEvents(projectId, excludeUserId, limit = 20, days = 7) {
|
|
184
|
+
console.log(`👥 Loading ${limit} team events from last ${days} days (excluding ${excludeUserId})`);
|
|
185
|
+
try {
|
|
186
|
+
const { GraphApiClient } = await import('../commands/graph/api-client.js');
|
|
187
|
+
const client = new GraphApiClient();
|
|
188
|
+
// Build query parameters
|
|
189
|
+
const params = new URLSearchParams({
|
|
190
|
+
projectId,
|
|
191
|
+
graphId: '', // Will be populated from context
|
|
192
|
+
limit: limit.toString(),
|
|
193
|
+
days: days.toString(),
|
|
194
|
+
categories: 'decision,achievement,git',
|
|
195
|
+
});
|
|
196
|
+
// Call API endpoint
|
|
197
|
+
const response = await client.request('GET', `/api/v1/events/team?${params.toString()}`);
|
|
198
|
+
return normalizeEvents(response.events || []);
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
console.error('Failed to load team events:', error);
|
|
202
|
+
return [];
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Extract document references from event descriptions
|
|
207
|
+
*
|
|
208
|
+
* Parses event descriptions for references to:
|
|
209
|
+
* - ADR-XXX (Architecture Decision Records)
|
|
210
|
+
* - PRD-XXX (Product Requirements Documents)
|
|
211
|
+
* - Pattern-XXX (Design Patterns)
|
|
212
|
+
* - TASK-XXX (Task references)
|
|
213
|
+
*
|
|
214
|
+
* @param events - Events to parse
|
|
215
|
+
* @returns Array of document IDs referenced in events
|
|
216
|
+
*/
|
|
217
|
+
function extractDocumentReferences(events) {
|
|
218
|
+
const refs = new Set();
|
|
219
|
+
// Regex patterns for document references
|
|
220
|
+
const patterns = [
|
|
221
|
+
/ADR-(\d+)/gi,
|
|
222
|
+
/PRD-(\d+)/gi,
|
|
223
|
+
/Pattern-(\d+)/gi,
|
|
224
|
+
/TASK-(\d+)/gi,
|
|
225
|
+
];
|
|
226
|
+
for (const event of events) {
|
|
227
|
+
const text = event.description;
|
|
228
|
+
for (const pattern of patterns) {
|
|
229
|
+
const matches = text.matchAll(pattern);
|
|
230
|
+
for (const match of matches) {
|
|
231
|
+
refs.add(match[0]); // e.g., "ADR-043"
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
console.log(`📎 Extracted ${refs.size} document references from ${events.length} events`);
|
|
236
|
+
return Array.from(refs);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Load documents from graph by ID
|
|
240
|
+
*
|
|
241
|
+
* @param documentIds - Document IDs to load (e.g., ["ADR-043", "PRD-009"])
|
|
242
|
+
* @returns Array of knowledge nodes
|
|
243
|
+
*/
|
|
244
|
+
async function loadDocuments(documentIds) {
|
|
245
|
+
if (documentIds.length === 0) {
|
|
246
|
+
return [];
|
|
247
|
+
}
|
|
248
|
+
console.log(`📚 Loading ${documentIds.length} documents: ${documentIds.slice(0, 5).join(', ')}...`);
|
|
249
|
+
try {
|
|
250
|
+
const { GraphApiClient } = await import('../commands/graph/api-client.js');
|
|
251
|
+
const client = new GraphApiClient();
|
|
252
|
+
// Get graphId from environment or config
|
|
253
|
+
const graphId = process.env.GINKO_GRAPH_ID || '';
|
|
254
|
+
// Call batch documents API
|
|
255
|
+
const response = await client.request('POST', '/api/v1/graph/documents/batch', {
|
|
256
|
+
graphId,
|
|
257
|
+
documentIds,
|
|
258
|
+
});
|
|
259
|
+
if (response.notFound && response.notFound.length > 0) {
|
|
260
|
+
console.log(`⚠️ ${response.notFound.length} documents not found: ${response.notFound.slice(0, 3).join(', ')}...`);
|
|
261
|
+
}
|
|
262
|
+
return response.documents;
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
console.error('Failed to load documents:', error);
|
|
266
|
+
return [];
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Follow typed relationships to discover related documents
|
|
271
|
+
*
|
|
272
|
+
* Uses ADR-042 relationship types:
|
|
273
|
+
* - IMPLEMENTS (PRD -> ADR)
|
|
274
|
+
* - REFERENCES (ADR -> ADR, Pattern -> ADR)
|
|
275
|
+
* - DEPENDS_ON (Feature -> Feature)
|
|
276
|
+
*
|
|
277
|
+
* @param documents - Starting documents
|
|
278
|
+
* @param depth - How many hops to follow
|
|
279
|
+
* @returns Array of related documents
|
|
280
|
+
*/
|
|
281
|
+
async function followTypedRelationships(documents, depth = 2) {
|
|
282
|
+
if (documents.length === 0 || depth === 0) {
|
|
283
|
+
return [];
|
|
284
|
+
}
|
|
285
|
+
console.log(`🔗 Following relationships ${depth} hops from ${documents.length} documents`);
|
|
286
|
+
try {
|
|
287
|
+
const { GraphApiClient } = await import('../commands/graph/api-client.js');
|
|
288
|
+
const client = new GraphApiClient();
|
|
289
|
+
const relatedDocs = new Set();
|
|
290
|
+
// For each starting document, explore its relationships
|
|
291
|
+
for (const doc of documents.slice(0, 10)) { // Limit to first 10 to avoid too many API calls
|
|
292
|
+
try {
|
|
293
|
+
const response = await client.request('GET', `/api/v1/graph/explore/${doc.id}`);
|
|
294
|
+
// Collect all related documents from typed relationships
|
|
295
|
+
const relationships = response.relationships;
|
|
296
|
+
if (relationships.implements) {
|
|
297
|
+
relationships.implements.forEach((rel) => {
|
|
298
|
+
relatedDocs.add({
|
|
299
|
+
id: rel.id,
|
|
300
|
+
type: rel.type,
|
|
301
|
+
title: rel.title,
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
if (relationships.referencedBy) {
|
|
306
|
+
relationships.referencedBy.forEach((rel) => {
|
|
307
|
+
relatedDocs.add({
|
|
308
|
+
id: rel.id,
|
|
309
|
+
type: rel.type,
|
|
310
|
+
title: rel.title,
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
// Skip SIMILAR_TO as these are lower signal
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
console.log(` ⚠️ Could not explore ${doc.id}:`, error.message);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return Array.from(relatedDocs);
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
console.error('Failed to follow relationships:', error);
|
|
324
|
+
return [];
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Get active sprint for project
|
|
329
|
+
*
|
|
330
|
+
* @param projectId - Project ID
|
|
331
|
+
* @returns Active sprint or undefined
|
|
332
|
+
*/
|
|
333
|
+
async function getActiveSprint(projectId) {
|
|
334
|
+
console.log(`🎯 Loading active sprint for project ${projectId}`);
|
|
335
|
+
try {
|
|
336
|
+
// Look for sprint files in docs/sprints/
|
|
337
|
+
const sprintDir = path.join(process.cwd(), 'docs', 'sprints');
|
|
338
|
+
if (!await fs.pathExists(sprintDir)) {
|
|
339
|
+
return undefined;
|
|
340
|
+
}
|
|
341
|
+
// Read CURRENT-SPRINT.md first (optimized for readiness - ADR-043)
|
|
342
|
+
const currentSprintPath = path.join(sprintDir, 'CURRENT-SPRINT.md');
|
|
343
|
+
if (await fs.pathExists(currentSprintPath)) {
|
|
344
|
+
const content = await fs.readFile(currentSprintPath, 'utf-8');
|
|
345
|
+
// CURRENT-SPRINT.md contains all readiness info (WHY, WHAT, HOW, status)
|
|
346
|
+
// No need to read the full sprint file during startup
|
|
347
|
+
// Extract sprint reference (e.g., "**Sprint**: SPRINT-2025-10-27-cloud-knowledge-graph")
|
|
348
|
+
const sprintMatch = content.match(/\*\*Sprint\*\*:\s*(SPRINT-[\w-]+)/);
|
|
349
|
+
const sprintId = sprintMatch ? sprintMatch[1] : 'unknown';
|
|
350
|
+
// Extract title from "Sprint Goal" section
|
|
351
|
+
const titleMatch = content.match(/##\s+Sprint Goal\s+(.+?)(?=\n\n|\*\*|$)/s);
|
|
352
|
+
const title = titleMatch ? titleMatch[1].trim() : 'Active Sprint';
|
|
353
|
+
// Extract progress if available
|
|
354
|
+
const progressMatch = content.match(/\*\*Progress\*\*:\s*(\d+)%/);
|
|
355
|
+
const progress = progressMatch ? parseInt(progressMatch[1], 10) : 0;
|
|
356
|
+
return {
|
|
357
|
+
id: sprintId,
|
|
358
|
+
title,
|
|
359
|
+
goals: [], // Available in CURRENT-SPRINT.md if needed
|
|
360
|
+
progress,
|
|
361
|
+
started: new Date(), // Could parse from CURRENT-SPRINT.md if needed
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
// Fallback: scan all sprint files (legacy behavior)
|
|
365
|
+
const files = await fs.readdir(sprintDir);
|
|
366
|
+
const sprintFiles = files.filter(f => f.startsWith('SPRINT-') && f.endsWith('.md'));
|
|
367
|
+
for (const file of sprintFiles) {
|
|
368
|
+
const filePath = path.join(sprintDir, file);
|
|
369
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
370
|
+
if (content.toLowerCase().includes('status**: active') ||
|
|
371
|
+
content.toLowerCase().includes('sprint status: active')) {
|
|
372
|
+
const titleMatch = content.match(/^#\s+(.+)$/m);
|
|
373
|
+
const title = titleMatch ? titleMatch[1] : file.replace('.md', '');
|
|
374
|
+
return {
|
|
375
|
+
id: file.replace('.md', ''),
|
|
376
|
+
title,
|
|
377
|
+
goals: [],
|
|
378
|
+
progress: 0,
|
|
379
|
+
started: new Date(),
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
return undefined;
|
|
384
|
+
}
|
|
385
|
+
catch (error) {
|
|
386
|
+
console.log('Could not load sprint:', error.message);
|
|
387
|
+
return undefined;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Estimate total token count for loaded context
|
|
392
|
+
*
|
|
393
|
+
* Token estimation:
|
|
394
|
+
* - Events: ~100 tokens each
|
|
395
|
+
* - Documents: ~1000 tokens each (average)
|
|
396
|
+
* - Sprint: ~500 tokens
|
|
397
|
+
*
|
|
398
|
+
* Target: <30K tokens total
|
|
399
|
+
*
|
|
400
|
+
* @param context - Context components
|
|
401
|
+
* @returns Estimated token count
|
|
402
|
+
*/
|
|
403
|
+
function estimateTokens(context) {
|
|
404
|
+
const eventTokens = (context.myEvents.length + (context.teamEvents?.length || 0)) * 100;
|
|
405
|
+
const docTokens = context.documents.length * 1000;
|
|
406
|
+
const relatedDocTokens = context.relatedDocs.length * 1000;
|
|
407
|
+
const sprintTokens = context.sprint ? 500 : 0;
|
|
408
|
+
return eventTokens + docTokens + relatedDocTokens + sprintTokens;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Format context summary for display
|
|
412
|
+
*
|
|
413
|
+
* @param context - Loaded context
|
|
414
|
+
* @returns Formatted summary string
|
|
415
|
+
*/
|
|
416
|
+
export function formatContextSummary(context) {
|
|
417
|
+
const lines = [];
|
|
418
|
+
lines.push('📊 Context Loaded:');
|
|
419
|
+
lines.push(` - ${context.myEvents.length} my events (last ${daysAgo(context.myEvents[0]?.timestamp)} days)`);
|
|
420
|
+
if (context.teamEvents && context.teamEvents.length > 0) {
|
|
421
|
+
lines.push(` - ${context.teamEvents.length} team events (decisions + achievements)`);
|
|
422
|
+
}
|
|
423
|
+
// Group documents by type
|
|
424
|
+
const docsByType = groupByType(context.documents);
|
|
425
|
+
const totalDocs = context.documents.length;
|
|
426
|
+
const docSummary = Object.entries(docsByType)
|
|
427
|
+
.map(([type, count]) => `${count} ${type}${count > 1 ? 's' : ''}`)
|
|
428
|
+
.join(', ');
|
|
429
|
+
lines.push(` - ${totalDocs} documents (${docSummary})`);
|
|
430
|
+
if (context.relatedDocs.length > 0) {
|
|
431
|
+
lines.push(` - ${context.relatedDocs.length} related documents`);
|
|
432
|
+
}
|
|
433
|
+
if (context.sprint) {
|
|
434
|
+
lines.push(` - Sprint: ${context.sprint.title} (${context.sprint.progress}% complete)`);
|
|
435
|
+
}
|
|
436
|
+
lines.push(` - Estimated tokens: ${context.token_estimate.toLocaleString()}`);
|
|
437
|
+
return lines.join('\n');
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Normalize event data from API (convert timestamp strings to Date objects)
|
|
441
|
+
*/
|
|
442
|
+
function normalizeEvent(event) {
|
|
443
|
+
return {
|
|
444
|
+
...event,
|
|
445
|
+
timestamp: event.timestamp ? new Date(event.timestamp) : new Date(),
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Normalize array of events from API
|
|
450
|
+
*/
|
|
451
|
+
function normalizeEvents(events) {
|
|
452
|
+
return events.map(normalizeEvent);
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Calculate days ago from timestamp
|
|
456
|
+
*/
|
|
457
|
+
function daysAgo(timestamp) {
|
|
458
|
+
if (!timestamp)
|
|
459
|
+
return 0;
|
|
460
|
+
const now = new Date();
|
|
461
|
+
const diff = now.getTime() - timestamp.getTime();
|
|
462
|
+
return Math.round(diff / (1000 * 60 * 60 * 24));
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Group documents by type
|
|
466
|
+
*/
|
|
467
|
+
function groupByType(documents) {
|
|
468
|
+
const groups = {};
|
|
469
|
+
for (const doc of documents) {
|
|
470
|
+
const type = doc.type || 'unknown';
|
|
471
|
+
groups[type] = (groups[type] || 0) + 1;
|
|
472
|
+
}
|
|
473
|
+
return groups;
|
|
474
|
+
}
|
|
475
|
+
//# sourceMappingURL=context-loader-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-loader-events.js","sourceRoot":"","sources":["../../src/lib/context-loader-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: utility
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-11-04
|
|
5
|
+
* @tags: [event-logging, dual-write, adr-043, session-events]
|
|
6
|
+
* @related: [event-queue.ts, ../commands/log.ts, ../utils/session-logger.ts]
|
|
7
|
+
* @priority: critical
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [fs-extra, uuid]
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Event entry structure (aligned with ADR-043)
|
|
13
|
+
*/
|
|
14
|
+
export interface EventEntry {
|
|
15
|
+
category: 'fix' | 'feature' | 'decision' | 'insight' | 'git' | 'achievement';
|
|
16
|
+
description: string;
|
|
17
|
+
files?: string[];
|
|
18
|
+
impact?: 'high' | 'medium' | 'low';
|
|
19
|
+
branch?: string;
|
|
20
|
+
tags?: string[];
|
|
21
|
+
shared?: boolean;
|
|
22
|
+
commit_hash?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Internal event structure with metadata
|
|
26
|
+
*/
|
|
27
|
+
export interface Event extends EventEntry {
|
|
28
|
+
id: string;
|
|
29
|
+
user_id: string;
|
|
30
|
+
organization_id: string;
|
|
31
|
+
project_id: string;
|
|
32
|
+
timestamp: string;
|
|
33
|
+
pressure?: number;
|
|
34
|
+
synced_to_graph?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Log an event with dual-write pattern
|
|
38
|
+
*
|
|
39
|
+
* Pattern (ADR-043):
|
|
40
|
+
* 1. Write to local file immediately (blocking, must succeed)
|
|
41
|
+
* 2. Add to async queue for Neo4j sync (non-blocking)
|
|
42
|
+
* 3. Return immediately (don't wait for sync)
|
|
43
|
+
*
|
|
44
|
+
* @param entry - Event entry data
|
|
45
|
+
* @returns Promise<Event> - The logged event with metadata
|
|
46
|
+
*/
|
|
47
|
+
export declare function logEvent(entry: EventEntry): Promise<Event>;
|
|
48
|
+
/**
|
|
49
|
+
* Load all events from local file
|
|
50
|
+
*/
|
|
51
|
+
export declare function loadEvents(): Promise<Event[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Mark events as synced to graph
|
|
54
|
+
*/
|
|
55
|
+
export declare function markEventsSynced(eventIds: string[]): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Get events that need syncing (not yet synced to graph)
|
|
58
|
+
*/
|
|
59
|
+
export declare function getUnsyncedEvents(): Promise<Event[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Clear events file (for testing)
|
|
62
|
+
*/
|
|
63
|
+
export declare function clearEvents(): Promise<void>;
|
|
64
|
+
//# sourceMappingURL=event-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-logger.d.ts","sourceRoot":"","sources":["../../src/lib/event-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,KAAM,SAAQ,UAAU;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAgGD;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAqChE;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAgBnD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAG1D;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAOjD"}
|