@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,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileType: utility
|
|
3
|
-
* @status: current
|
|
4
|
-
* @updated: 2025-10-04
|
|
5
|
-
* @tags: [handoff, session-logging, adr-033, deterministic-save]
|
|
6
|
-
* @related: [./index.ts, ../../core/session-log-manager.ts]
|
|
7
|
-
* @priority: high
|
|
8
|
-
* @complexity: low
|
|
9
|
-
* @dependencies: [fs/promises, path, chalk]
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* Save session log as handoff (deterministic, no AI needed)
|
|
13
|
-
* Implements ADR-033 quality inversion: save raw log, synthesize later
|
|
14
|
-
*/
|
|
15
|
-
export declare function saveSessionLogAsHandoff(userDir: string, message?: string): Promise<void>;
|
|
16
|
-
//# sourceMappingURL=handoff-save.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-save.d.ts","sourceRoot":"","sources":["../../../src/commands/handoff/handoff-save.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D9F"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileType: utility
|
|
3
|
-
* @status: current
|
|
4
|
-
* @updated: 2025-10-04
|
|
5
|
-
* @tags: [handoff, session-logging, adr-033, deterministic-save]
|
|
6
|
-
* @related: [./index.ts, ../../core/session-log-manager.ts]
|
|
7
|
-
* @priority: high
|
|
8
|
-
* @complexity: low
|
|
9
|
-
* @dependencies: [fs/promises, path, chalk]
|
|
10
|
-
*/
|
|
11
|
-
import { SessionLogManager } from '../../core/session-log-manager.js';
|
|
12
|
-
import * as fs from 'fs/promises';
|
|
13
|
-
import * as path from 'path';
|
|
14
|
-
import chalk from 'chalk';
|
|
15
|
-
/**
|
|
16
|
-
* Save session log as handoff (deterministic, no AI needed)
|
|
17
|
-
* Implements ADR-033 quality inversion: save raw log, synthesize later
|
|
18
|
-
*/
|
|
19
|
-
export async function saveSessionLogAsHandoff(userDir, message) {
|
|
20
|
-
console.log(chalk.cyan('📋 Saving session log as handoff...'));
|
|
21
|
-
const sessionLogPath = path.join(userDir, 'current-session-log.md');
|
|
22
|
-
const archiveDir = path.join(userDir, 'archive');
|
|
23
|
-
// Read session log
|
|
24
|
-
const logContent = await fs.readFile(sessionLogPath, 'utf-8');
|
|
25
|
-
// Append session-end event if message provided
|
|
26
|
-
let finalContent = logContent;
|
|
27
|
-
if (message) {
|
|
28
|
-
const timestamp = new Date().toLocaleTimeString('en-US', {
|
|
29
|
-
hour: '2-digit',
|
|
30
|
-
minute: '2-digit',
|
|
31
|
-
hour12: false
|
|
32
|
-
});
|
|
33
|
-
const sessionEndEvent = `
|
|
34
|
-
### ${timestamp} - [session-end]
|
|
35
|
-
Session ended via handoff: ${message}
|
|
36
|
-
Impact: high
|
|
37
|
-
`;
|
|
38
|
-
// Append to Timeline section
|
|
39
|
-
const timelineIndex = finalContent.indexOf('## Timeline');
|
|
40
|
-
if (timelineIndex !== -1) {
|
|
41
|
-
const nextSectionIndex = finalContent.indexOf('\n## ', timelineIndex + 11);
|
|
42
|
-
const insertPoint = nextSectionIndex === -1 ? finalContent.length : nextSectionIndex;
|
|
43
|
-
finalContent =
|
|
44
|
-
finalContent.slice(0, insertPoint) +
|
|
45
|
-
sessionEndEvent +
|
|
46
|
-
(nextSectionIndex === -1 ? '' : '\n' + finalContent.slice(insertPoint));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// Create archive directory if needed
|
|
50
|
-
await fs.mkdir(archiveDir, { recursive: true });
|
|
51
|
-
// Generate archive filename with timestamp
|
|
52
|
-
const now = new Date();
|
|
53
|
-
const timestamp = now.toISOString()
|
|
54
|
-
.replace(/:/g, '-')
|
|
55
|
-
.replace(/\..+/, '')
|
|
56
|
-
.replace('T', '-');
|
|
57
|
-
const archivePath = path.join(archiveDir, `${timestamp}-handoff.md`);
|
|
58
|
-
// Save to archive
|
|
59
|
-
await fs.writeFile(archivePath, finalContent, 'utf-8');
|
|
60
|
-
// Get statistics for display
|
|
61
|
-
const stats = SessionLogManager.getSummary(finalContent);
|
|
62
|
-
console.log(chalk.green(` ✅ Handoff saved: ${path.relative(process.cwd(), archivePath)}`));
|
|
63
|
-
console.log(chalk.cyan(` 📊 Session captured:`));
|
|
64
|
-
console.log(chalk.gray(` - ${stats.totalEntries} events logged`));
|
|
65
|
-
console.log(chalk.gray(` - ${stats.byCategory.decision || 0} key decisions`));
|
|
66
|
-
console.log(chalk.gray(` - ${stats.byCategory.insight || 0} insights discovered`));
|
|
67
|
-
console.log(chalk.gray(` - ${stats.filesAffected} files affected`));
|
|
68
|
-
console.log();
|
|
69
|
-
console.log(chalk.cyan(' 💡 Next: Run `ginko start` to resume (synthesis happens then)'));
|
|
70
|
-
console.log(chalk.gray(' High-quality summary will be generated at optimal context pressure'));
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=handoff-save.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-save.js","sourceRoot":"","sources":["../../../src/commands/handoff/handoff-save.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileType: command
|
|
3
|
-
* @status: current
|
|
4
|
-
* @updated: 2025-01-13
|
|
5
|
-
* @tags: [handoff, router, reflection, legacy]
|
|
6
|
-
* @related: [./handoff-reflection-pipeline.ts, ../handoff-enhanced-orig.ts]
|
|
7
|
-
* @priority: critical
|
|
8
|
-
* @complexity: low
|
|
9
|
-
* @dependencies: []
|
|
10
|
-
*/
|
|
11
|
-
import { HandoffPipeline, HandoffReflectionCommand } from './handoff-reflection-pipeline.js';
|
|
12
|
-
/**
|
|
13
|
-
* Handoff command router
|
|
14
|
-
* Routes between AI-enhanced pipeline and legacy implementations
|
|
15
|
-
*/
|
|
16
|
-
export declare function handoffCommand(options?: any): Promise<void>;
|
|
17
|
-
export { HandoffReflectionCommand, HandoffPipeline };
|
|
18
|
-
export default handoffCommand;
|
|
19
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/handoff/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAM7F;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCrE;AAGD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,CAAC;AAErD,eAAe,cAAc,CAAC"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileType: command
|
|
3
|
-
* @status: current
|
|
4
|
-
* @updated: 2025-01-13
|
|
5
|
-
* @tags: [handoff, router, reflection, legacy]
|
|
6
|
-
* @related: [./handoff-reflection-pipeline.ts, ../handoff-enhanced-orig.ts]
|
|
7
|
-
* @priority: critical
|
|
8
|
-
* @complexity: low
|
|
9
|
-
* @dependencies: []
|
|
10
|
-
*/
|
|
11
|
-
import { HandoffPipeline, HandoffReflectionCommand } from './handoff-reflection-pipeline.js';
|
|
12
|
-
import { saveSessionLogAsHandoff } from './handoff-save.js';
|
|
13
|
-
import { SessionLogManager } from '../../core/session-log-manager.js';
|
|
14
|
-
import { getUserEmail, getGinkoDir } from '../../utils/helpers.js';
|
|
15
|
-
import * as path from 'path';
|
|
16
|
-
/**
|
|
17
|
-
* Handoff command router
|
|
18
|
-
* Routes between AI-enhanced pipeline and legacy implementations
|
|
19
|
-
*/
|
|
20
|
-
export async function handoffCommand(options = {}) {
|
|
21
|
-
// Get user directory
|
|
22
|
-
const ginkoDir = await getGinkoDir();
|
|
23
|
-
const userEmail = await getUserEmail();
|
|
24
|
-
const userSlug = userEmail.replace('@', '-at-').replace(/\./g, '-');
|
|
25
|
-
const userDir = path.join(ginkoDir, 'sessions', userSlug);
|
|
26
|
-
// Check for session log (ADR-033 Strategy 1)
|
|
27
|
-
const hasLog = await SessionLogManager.hasSessionLog(userDir);
|
|
28
|
-
if (hasLog && !options.noai && !options.legacy) {
|
|
29
|
-
// Strategy 1: Deterministic save of session log
|
|
30
|
-
await saveSessionLogAsHandoff(userDir, options.message);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
// Strategy 2: Fallback to AI synthesis
|
|
34
|
-
// Use legacy implementation if AI enhancement is disabled
|
|
35
|
-
if (options.noai || options.legacy) {
|
|
36
|
-
// Try enhanced version first, fall back to basic
|
|
37
|
-
try {
|
|
38
|
-
const { enhancedHandoffCommand } = await import('../handoff-enhanced-orig.js');
|
|
39
|
-
await enhancedHandoffCommand(options);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
const { handoffCommand: origCommand } = await import('../handoff-orig.js');
|
|
44
|
-
await origCommand(options);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Use AI-enhanced pipeline implementation (default - ADR-013 Simple Builder Pattern)
|
|
49
|
-
const pipeline = new HandoffPipeline(options.message || 'Create comprehensive session handoff');
|
|
50
|
-
await pipeline.build();
|
|
51
|
-
}
|
|
52
|
-
// Also export for direct 'ginko reflect --domain handoff' usage
|
|
53
|
-
export { HandoffReflectionCommand, HandoffPipeline };
|
|
54
|
-
export default handoffCommand;
|
|
55
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/handoff/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAe,EAAE;IACpD,qBAAqB;IACrB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE1D,6CAA6C;IAC7C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE9D,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/C,gDAAgD;QAChD,MAAM,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,uCAAuC;IACvC,0DAA0D;IAC1D,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,iDAAiD;QACjD,IAAI,CAAC;YACH,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;YAC/E,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC3E,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;IACH,CAAC;IAED,qFAAqF;IACrF,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,IAAI,sCAAsC,CAAC,CAAC;IAChG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,gEAAgE;AAChE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,CAAC;AAErD,eAAe,cAAc,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileType: command
|
|
3
|
-
* @status: current
|
|
4
|
-
* @updated: 2025-08-28
|
|
5
|
-
* @tags: [cli, handoff, ai-enhanced, session]
|
|
6
|
-
* @related: [handoff.ts, ../utils/ai-templates.ts]
|
|
7
|
-
* @priority: high
|
|
8
|
-
* @complexity: high
|
|
9
|
-
* @dependencies: [chalk, fs-extra, ora, simple-git]
|
|
10
|
-
*/
|
|
11
|
-
interface HandoffOptions {
|
|
12
|
-
message?: string;
|
|
13
|
-
store?: boolean;
|
|
14
|
-
id?: string;
|
|
15
|
-
content?: string;
|
|
16
|
-
ai?: boolean;
|
|
17
|
-
quick?: boolean;
|
|
18
|
-
review?: boolean;
|
|
19
|
-
verbose?: boolean;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* AI-enhanced handoff command following ADR-024 pattern:
|
|
23
|
-
* User → CLI → Template+Prompt → AI → Enriched Content → CLI → Storage
|
|
24
|
-
*/
|
|
25
|
-
export declare function handoffAiCommand(options: HandoffOptions): Promise<void>;
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=handoff-ai-orig.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-ai-orig.d.ts","sourceRoot":"","sources":["../../src/commands/handoff-ai-orig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,cAAc,iBAmG7D"}
|
|
@@ -1,405 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileType: command
|
|
3
|
-
* @status: current
|
|
4
|
-
* @updated: 2025-08-28
|
|
5
|
-
* @tags: [cli, handoff, ai-enhanced, session]
|
|
6
|
-
* @related: [handoff.ts, ../utils/ai-templates.ts]
|
|
7
|
-
* @priority: high
|
|
8
|
-
* @complexity: high
|
|
9
|
-
* @dependencies: [chalk, fs-extra, ora, simple-git]
|
|
10
|
-
*/
|
|
11
|
-
import chalk from 'chalk';
|
|
12
|
-
import fs from 'fs-extra';
|
|
13
|
-
import path from 'path';
|
|
14
|
-
import ora from 'ora';
|
|
15
|
-
import simpleGit from 'simple-git';
|
|
16
|
-
import { getUserEmail, getGinkoDir, detectWorkMode } from '../utils/helpers.js';
|
|
17
|
-
import { generateCompletionPrompt, validateEnrichedContent, TEMPLATES } from '../utils/ai-templates.js';
|
|
18
|
-
/**
|
|
19
|
-
* AI-enhanced handoff command following ADR-024 pattern:
|
|
20
|
-
* User → CLI → Template+Prompt → AI → Enriched Content → CLI → Storage
|
|
21
|
-
*/
|
|
22
|
-
export async function handoffAiCommand(options) {
|
|
23
|
-
// Phase 2: Store AI-enriched content
|
|
24
|
-
if (options.store && options.id && options.content) {
|
|
25
|
-
return storeEnrichedHandoff(options.id, options.content);
|
|
26
|
-
}
|
|
27
|
-
// Phase 1: Generate template with AI prompts
|
|
28
|
-
const spinner = options.verbose ? ora('Generating handoff template...').start() : null;
|
|
29
|
-
try {
|
|
30
|
-
const git = simpleGit();
|
|
31
|
-
const ginkoDir = await getGinkoDir();
|
|
32
|
-
const userEmail = await getUserEmail();
|
|
33
|
-
const userSlug = userEmail.replace('@', '-at-').replace(/\./g, '-');
|
|
34
|
-
const sessionDir = path.join(ginkoDir, 'sessions', userSlug);
|
|
35
|
-
const handoffId = `handoff-${Date.now()}`;
|
|
36
|
-
// Gather context
|
|
37
|
-
const status = await git.status();
|
|
38
|
-
const branch = await git.branchLocal();
|
|
39
|
-
const currentBranch = branch.current;
|
|
40
|
-
const mode = await detectWorkMode(status);
|
|
41
|
-
// Get recent commits and changes
|
|
42
|
-
const log = await git.log({ maxCount: 10 });
|
|
43
|
-
const diff = await git.diff(['--stat']);
|
|
44
|
-
const stagedDiff = await git.diff(['--staged', '--stat']);
|
|
45
|
-
// Quick mode: basic template without AI
|
|
46
|
-
if (options.quick) {
|
|
47
|
-
const basicHandoff = await generateBasicHandoff({
|
|
48
|
-
userEmail,
|
|
49
|
-
currentBranch,
|
|
50
|
-
mode,
|
|
51
|
-
message: options.message,
|
|
52
|
-
status,
|
|
53
|
-
commits: log.all
|
|
54
|
-
});
|
|
55
|
-
await saveHandoff(sessionDir, basicHandoff, options.message);
|
|
56
|
-
if (spinner)
|
|
57
|
-
spinner.succeed('Handoff created (quick mode)');
|
|
58
|
-
console.log(chalk.dim('done'));
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
// Generate AI-enhanced template
|
|
62
|
-
const template = await generateAiHandoffTemplate({
|
|
63
|
-
handoffId,
|
|
64
|
-
userEmail,
|
|
65
|
-
currentBranch,
|
|
66
|
-
mode,
|
|
67
|
-
message: options.message,
|
|
68
|
-
status,
|
|
69
|
-
commits: log.all,
|
|
70
|
-
diff,
|
|
71
|
-
stagedDiff,
|
|
72
|
-
sessionDir
|
|
73
|
-
});
|
|
74
|
-
// Review mode: show template before AI processing
|
|
75
|
-
if (options.review) {
|
|
76
|
-
if (spinner)
|
|
77
|
-
spinner.stop();
|
|
78
|
-
console.log(chalk.cyan('\n📝 Handoff Template for AI Enhancement:\n'));
|
|
79
|
-
console.log(template.content);
|
|
80
|
-
console.log(chalk.cyan('\n---\n'));
|
|
81
|
-
}
|
|
82
|
-
// Output template and prompt for AI
|
|
83
|
-
if (spinner)
|
|
84
|
-
spinner.succeed('Template generated');
|
|
85
|
-
// Exit with special code to signal AI processing needed
|
|
86
|
-
if (options.ai !== false) {
|
|
87
|
-
// Write to stdout explicitly to avoid stderr
|
|
88
|
-
process.stdout.write(chalk.yellow('\n🤖 AI Enhancement Required:\n\n'));
|
|
89
|
-
process.stdout.write(template.prompt + '\n');
|
|
90
|
-
process.stdout.write(chalk.dim(`\nWhen complete, call:\nginko handoff --store --id=${handoffId} --content="[enriched content]"\n\n`));
|
|
91
|
-
// Store template temporarily for AI processing
|
|
92
|
-
const tempFile = path.join(sessionDir, `.${handoffId}.tmp`);
|
|
93
|
-
await fs.writeFile(tempFile, template.content);
|
|
94
|
-
// Ensure stdout is flushed before exit
|
|
95
|
-
await new Promise(resolve => process.stdout.write('', resolve));
|
|
96
|
-
// Use exit code 0 to avoid stderr interpretation
|
|
97
|
-
// The AI enhancement prompt is expected behavior, not an error
|
|
98
|
-
process.exit(0);
|
|
99
|
-
}
|
|
100
|
-
// No AI mode: save basic template
|
|
101
|
-
await saveHandoff(sessionDir, template.content, options.message);
|
|
102
|
-
console.log(chalk.dim('done'));
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
if (spinner)
|
|
106
|
-
spinner.fail('Failed to generate handoff');
|
|
107
|
-
console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
108
|
-
process.exit(1);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Phase 2: Store AI-enriched handoff content
|
|
113
|
-
*/
|
|
114
|
-
async function storeEnrichedHandoff(id, content) {
|
|
115
|
-
const spinner = ora('Storing enriched handoff...').start();
|
|
116
|
-
try {
|
|
117
|
-
const ginkoDir = await getGinkoDir();
|
|
118
|
-
const userEmail = await getUserEmail();
|
|
119
|
-
const userSlug = userEmail.replace('@', '-at-').replace(/\./g, '-');
|
|
120
|
-
const sessionDir = path.join(ginkoDir, 'sessions', userSlug);
|
|
121
|
-
const tempFile = path.join(sessionDir, `.${id}.tmp`);
|
|
122
|
-
// Load original template for validation
|
|
123
|
-
let originalTemplate = '';
|
|
124
|
-
if (await fs.pathExists(tempFile)) {
|
|
125
|
-
originalTemplate = await fs.readFile(tempFile, 'utf8');
|
|
126
|
-
}
|
|
127
|
-
// Validate enriched content
|
|
128
|
-
const validation = validateEnrichedContent(originalTemplate, content);
|
|
129
|
-
if (!validation.valid) {
|
|
130
|
-
throw new Error(`Content validation failed: ${validation.issues.join(', ')}`);
|
|
131
|
-
}
|
|
132
|
-
// Extract summary for archive naming
|
|
133
|
-
const summaryMatch = content.match(/## 📊 Session Summary\n([^\n]+)/);
|
|
134
|
-
const summary = summaryMatch?.[1] || 'session handoff';
|
|
135
|
-
// Archive existing handoff if present
|
|
136
|
-
await archiveExistingHandoff(sessionDir, summary);
|
|
137
|
-
// Save enriched content
|
|
138
|
-
const currentHandoff = path.join(sessionDir, 'current.md');
|
|
139
|
-
await fs.writeFile(currentHandoff, content);
|
|
140
|
-
// Clean up temp file
|
|
141
|
-
if (await fs.pathExists(tempFile)) {
|
|
142
|
-
await fs.remove(tempFile);
|
|
143
|
-
}
|
|
144
|
-
// Optionally commit to git
|
|
145
|
-
const config = await fs.readJSON(path.join(ginkoDir, 'config.json')).catch(() => ({}));
|
|
146
|
-
if (config.git?.autoCommit) {
|
|
147
|
-
const git = simpleGit();
|
|
148
|
-
await git.add(currentHandoff);
|
|
149
|
-
await git.commit(`📝 AI-enhanced session handoff`);
|
|
150
|
-
}
|
|
151
|
-
spinner.succeed('Enriched handoff stored successfully');
|
|
152
|
-
console.log(chalk.dim('done'));
|
|
153
|
-
}
|
|
154
|
-
catch (error) {
|
|
155
|
-
spinner.fail('Failed to store enriched handoff');
|
|
156
|
-
console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
157
|
-
process.exit(1);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Get the most recent handoff for context
|
|
162
|
-
*/
|
|
163
|
-
async function getMostRecentHandoff(sessionDir) {
|
|
164
|
-
// Check current.md first
|
|
165
|
-
const currentPath = path.join(sessionDir, 'current.md');
|
|
166
|
-
if (await fs.pathExists(currentPath)) {
|
|
167
|
-
return fs.readFile(currentPath, 'utf8');
|
|
168
|
-
}
|
|
169
|
-
// Otherwise check archive
|
|
170
|
-
const archiveDir = path.join(sessionDir, 'archive');
|
|
171
|
-
if (await fs.pathExists(archiveDir)) {
|
|
172
|
-
const files = await fs.readdir(archiveDir);
|
|
173
|
-
const handoffs = files
|
|
174
|
-
.filter(f => f.endsWith('.md'))
|
|
175
|
-
.sort()
|
|
176
|
-
.reverse(); // Most recent first by date prefix
|
|
177
|
-
if (handoffs.length > 0) {
|
|
178
|
-
return fs.readFile(path.join(archiveDir, handoffs[0]), 'utf8');
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Generate AI-enhanced handoff template with placeholders
|
|
185
|
-
*/
|
|
186
|
-
async function generateAiHandoffTemplate(context) {
|
|
187
|
-
const timestamp = new Date().toISOString();
|
|
188
|
-
const sessionId = Date.now();
|
|
189
|
-
// Read previous handoff for context
|
|
190
|
-
const previousHandoff = await getMostRecentHandoff(context.sessionDir);
|
|
191
|
-
const content = `---
|
|
192
|
-
session_id: ${sessionId}
|
|
193
|
-
user: ${context.userEmail}
|
|
194
|
-
timestamp: ${timestamp}
|
|
195
|
-
mode: ${context.mode}
|
|
196
|
-
branch: ${context.currentBranch}
|
|
197
|
-
ai_enhanced: true
|
|
198
|
-
ai_model: [AI: Please identify your model name, e.g., claude-3.5-sonnet, gpt-4-turbo, cursor-fast]
|
|
199
|
-
ai_version: [AI: Please identify your version/date, e.g., 20241022, 2024-04-09, latest]
|
|
200
|
-
ai_provider: [AI: Please identify your provider, e.g., anthropic, openai, cursor, github]
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
# Session Handoff
|
|
204
|
-
|
|
205
|
-
## 📊 Session Summary
|
|
206
|
-
${context.message || TEMPLATES.handoffSummary}
|
|
207
|
-
|
|
208
|
-
## 🎯 Key Achievements
|
|
209
|
-
${TEMPLATES.keyAchievements}
|
|
210
|
-
- Achievement 1
|
|
211
|
-
- Achievement 2
|
|
212
|
-
- Achievement 3
|
|
213
|
-
|
|
214
|
-
## 🔄 Current State
|
|
215
|
-
|
|
216
|
-
### Git Status
|
|
217
|
-
- Branch: ${context.currentBranch}
|
|
218
|
-
- Modified files: ${context.status.modified.length}
|
|
219
|
-
- Staged files: ${context.status.staged.length}
|
|
220
|
-
- Untracked files: ${context.status.not_added.length}
|
|
221
|
-
|
|
222
|
-
### Changes Overview
|
|
223
|
-
[AI: Analyze the diffs and provide a high-level overview of the types of changes made]
|
|
224
|
-
|
|
225
|
-
## 💡 Technical Decisions
|
|
226
|
-
${TEMPLATES.technicalDecisions}
|
|
227
|
-
|
|
228
|
-
## 🚧 In Progress
|
|
229
|
-
[AI: Identify work that appears to be in progress based on uncommitted changes and TODO comments]
|
|
230
|
-
|
|
231
|
-
## 📝 Context for Next Session
|
|
232
|
-
[AI: Provide essential context that the next session will need to continue smoothly]
|
|
233
|
-
|
|
234
|
-
### Known Issues
|
|
235
|
-
${TEMPLATES.knownIssues}
|
|
236
|
-
|
|
237
|
-
### Dependencies
|
|
238
|
-
[AI: Note any new dependencies added or external services configured]
|
|
239
|
-
|
|
240
|
-
### Next Steps
|
|
241
|
-
${TEMPLATES.nextSteps}
|
|
242
|
-
1. Next step 1
|
|
243
|
-
2. Next step 2
|
|
244
|
-
3. Next step 3
|
|
245
|
-
|
|
246
|
-
## 📁 Key Files Modified
|
|
247
|
-
|
|
248
|
-
### Core Changes
|
|
249
|
-
[AI: List the most important files changed with brief explanations of why they matter]
|
|
250
|
-
|
|
251
|
-
### Supporting Changes
|
|
252
|
-
[AI: List secondary files that were modified to support the main changes]
|
|
253
|
-
|
|
254
|
-
## 🧠 Mental Model
|
|
255
|
-
${TEMPLATES.mentalModel}
|
|
256
|
-
|
|
257
|
-
## 🔐 Privacy Note
|
|
258
|
-
This handoff is stored locally in git. AI enhancement happens on your local machine.
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
Generated at ${new Date().toLocaleString()}
|
|
262
|
-
AI-Enhanced with ADR-024 pattern`;
|
|
263
|
-
const enhancementContext = {
|
|
264
|
-
command: 'handoff',
|
|
265
|
-
id: context.handoffId,
|
|
266
|
-
data: {
|
|
267
|
-
commits: context.commits,
|
|
268
|
-
status: context.status,
|
|
269
|
-
branch: context.currentBranch,
|
|
270
|
-
mode: context.mode,
|
|
271
|
-
files: [...context.status.modified, ...context.status.staged, ...context.status.not_added],
|
|
272
|
-
previousHandoff: previousHandoff ? previousHandoff.substring(0, 2000) : null // Include first 2000 chars for context
|
|
273
|
-
}
|
|
274
|
-
};
|
|
275
|
-
// Enhanced prompt with model identification and previous context
|
|
276
|
-
const basePrompt = generateCompletionPrompt(enhancementContext, content);
|
|
277
|
-
const prompt = `${basePrompt}
|
|
278
|
-
|
|
279
|
-
IMPORTANT: AI Model Identification
|
|
280
|
-
In the frontmatter, replace the [AI: ...] placeholders with your actual model information:
|
|
281
|
-
- ai_model: Your model name (e.g., claude-3.5-sonnet, gpt-4-turbo, cursor-fast, copilot-chat)
|
|
282
|
-
- ai_version: Your version/date (e.g., 20241022, 2024-04-09, latest)
|
|
283
|
-
- ai_provider: Your provider (e.g., anthropic, openai, cursor, github)
|
|
284
|
-
|
|
285
|
-
If you're unsure, use "unknown" for any field.
|
|
286
|
-
|
|
287
|
-
${previousHandoff ? `Previous Handoff for Context:
|
|
288
|
-
---
|
|
289
|
-
${previousHandoff}
|
|
290
|
-
---
|
|
291
|
-
Use this previous handoff to maintain continuity and understand what was worked on before.` : 'This is the first handoff for this session.'}
|
|
292
|
-
|
|
293
|
-
Ginko Philosophy: "Nothing special, just quicker" - You're simply filling out what a developer would write manually, just faster.`;
|
|
294
|
-
return { content, prompt };
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Generate basic handoff without AI enhancement
|
|
298
|
-
*/
|
|
299
|
-
async function generateBasicHandoff(context) {
|
|
300
|
-
const timestamp = new Date().toISOString();
|
|
301
|
-
const sessionId = Date.now();
|
|
302
|
-
return `---
|
|
303
|
-
session_id: ${sessionId}
|
|
304
|
-
user: ${context.userEmail}
|
|
305
|
-
timestamp: ${timestamp}
|
|
306
|
-
mode: ${context.mode}
|
|
307
|
-
branch: ${context.currentBranch}
|
|
308
|
-
---
|
|
309
|
-
|
|
310
|
-
# Session Handoff
|
|
311
|
-
|
|
312
|
-
## 📊 Session Summary
|
|
313
|
-
${context.message || 'Session progress saved'}
|
|
314
|
-
|
|
315
|
-
## 🔄 Current State
|
|
316
|
-
|
|
317
|
-
### Git Status
|
|
318
|
-
- Branch: ${context.currentBranch}
|
|
319
|
-
- Modified files: ${context.status.modified.length}
|
|
320
|
-
- Staged files: ${context.status.staged.length}
|
|
321
|
-
- Untracked files: ${context.status.not_added.length}
|
|
322
|
-
|
|
323
|
-
### Recent Activity
|
|
324
|
-
${context.commits.map((c) => `- ${c.hash.substring(0, 7)} ${c.message}`).join('\n')}
|
|
325
|
-
|
|
326
|
-
## 📁 Working Files
|
|
327
|
-
|
|
328
|
-
### Modified
|
|
329
|
-
${context.status.modified.map((f) => `- ${f}`).join('\n') || '- No modified files'}
|
|
330
|
-
|
|
331
|
-
## 🎯 Work Mode: ${context.mode}
|
|
332
|
-
|
|
333
|
-
## Next Steps
|
|
334
|
-
- Review changes with \`git diff\`
|
|
335
|
-
- Continue work on ${context.currentBranch}
|
|
336
|
-
- Run tests to verify changes
|
|
337
|
-
|
|
338
|
-
## 🔐 Privacy Note
|
|
339
|
-
This handoff is stored locally in git. No data was sent to any server.
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
Generated at ${new Date().toLocaleString()}`;
|
|
343
|
-
}
|
|
344
|
-
/**
|
|
345
|
-
* Save handoff to filesystem
|
|
346
|
-
*/
|
|
347
|
-
async function saveHandoff(sessionDir, content, message) {
|
|
348
|
-
// Extract summary from content for archive naming
|
|
349
|
-
const summaryMatch = content.match(/## 📊 Session Summary\n([^\n]+)/);
|
|
350
|
-
const summary = message || summaryMatch?.[1] || 'session handoff';
|
|
351
|
-
await archiveExistingHandoff(sessionDir, summary);
|
|
352
|
-
const currentHandoff = path.join(sessionDir, 'current.md');
|
|
353
|
-
await fs.writeFile(currentHandoff, content);
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Archive existing handoff if present
|
|
357
|
-
*/
|
|
358
|
-
// Common words to filter out when generating descriptions
|
|
359
|
-
const COMMON_WORDS = new Set([
|
|
360
|
-
'the', 'and', 'for', 'with', 'from', 'into', 'this', 'that', 'was', 'are',
|
|
361
|
-
'been', 'have', 'has', 'had', 'were', 'will', 'would', 'could', 'should'
|
|
362
|
-
]);
|
|
363
|
-
/**
|
|
364
|
-
* Generate a 3-word description from text for archive naming
|
|
365
|
-
*/
|
|
366
|
-
function generateThreeWordDesc(text) {
|
|
367
|
-
// Remove common words and punctuation, extract meaningful words
|
|
368
|
-
const words = text.toLowerCase()
|
|
369
|
-
.replace(/[^\w\s]/g, '')
|
|
370
|
-
.split(/\s+/)
|
|
371
|
-
.filter(w => w.length > 2 && !COMMON_WORDS.has(w));
|
|
372
|
-
// Take first 3 meaningful words
|
|
373
|
-
const desc = words.slice(0, 3).join('-');
|
|
374
|
-
// Fallback if not enough words
|
|
375
|
-
return desc || 'session-handoff-archive';
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Archive existing handoff with descriptive naming
|
|
379
|
-
*/
|
|
380
|
-
async function archiveExistingHandoff(sessionDir, message) {
|
|
381
|
-
const currentHandoff = path.join(sessionDir, 'current.md');
|
|
382
|
-
if (await fs.pathExists(currentHandoff)) {
|
|
383
|
-
const existing = await fs.readFile(currentHandoff, 'utf8');
|
|
384
|
-
const timestampMatch = existing.match(/timestamp: ([^\n]+)/);
|
|
385
|
-
const summaryMatch = existing.match(/## 📊 Session Summary\n([^\n]+)/);
|
|
386
|
-
if (timestampMatch) {
|
|
387
|
-
const timestamp = new Date(timestampMatch[1]);
|
|
388
|
-
const date = timestamp.toISOString().split('T')[0];
|
|
389
|
-
// Generate 3-word description from message or summary
|
|
390
|
-
const description = generateThreeWordDesc(message || summaryMatch?.[1] || 'session handoff complete');
|
|
391
|
-
const archiveDir = path.join(sessionDir, 'archive');
|
|
392
|
-
await fs.ensureDir(archiveDir);
|
|
393
|
-
// Create unique filename with counter if needed
|
|
394
|
-
let counter = 0;
|
|
395
|
-
let archiveFile;
|
|
396
|
-
do {
|
|
397
|
-
const suffix = counter > 0 ? `-${counter}` : '';
|
|
398
|
-
archiveFile = path.join(archiveDir, `${date}-${description}${suffix}.md`);
|
|
399
|
-
counter++;
|
|
400
|
-
} while (await fs.pathExists(archiveFile));
|
|
401
|
-
await fs.move(currentHandoff, archiveFile);
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
//# sourceMappingURL=handoff-ai-orig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-ai-orig.js","sourceRoot":"","sources":["../../src/commands/handoff-ai-orig.ts"],"names":[],"mappings":"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"}
|