@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,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: utility
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-11-02
|
|
5
|
+
* @tags: [write-dispatch, adapter-pattern, multi-backend, adr-041]
|
|
6
|
+
* @related: [adapters/graph-adapter.ts, adapters/local-adapter.ts, api/v1/graph/_cloud-graph-client.ts]
|
|
7
|
+
* @priority: critical
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: []
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* WriteDispatcher
|
|
13
|
+
*
|
|
14
|
+
* Routes write operations to multiple backends using the adapter pattern.
|
|
15
|
+
* Supports dual-write migration strategy and graceful fallback.
|
|
16
|
+
*
|
|
17
|
+
* Architecture (ADR-041):
|
|
18
|
+
* - Primary adapter (graph) must succeed for write to be considered successful
|
|
19
|
+
* - Secondary adapters (local) run concurrently for dual-write period
|
|
20
|
+
* - Environment variables control which adapters are enabled
|
|
21
|
+
* - Single source of truth: graph for reads, dispatched writes
|
|
22
|
+
*
|
|
23
|
+
* Usage:
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const dispatcher = new WriteDispatcher({ primaryAdapter: 'graph' });
|
|
26
|
+
* dispatcher.registerAdapter(new GraphAdapter());
|
|
27
|
+
* dispatcher.registerAdapter(new LocalAdapter());
|
|
28
|
+
*
|
|
29
|
+
* const result = await dispatcher.dispatch({
|
|
30
|
+
* type: 'ADR',
|
|
31
|
+
* id: 'adr_042',
|
|
32
|
+
* title: 'Use JWT',
|
|
33
|
+
* content: '# ADR-042...',
|
|
34
|
+
* data: { status: 'proposed' }
|
|
35
|
+
* });
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export class WriteDispatcher {
|
|
39
|
+
adapters = new Map();
|
|
40
|
+
config;
|
|
41
|
+
constructor(config) {
|
|
42
|
+
this.config = {
|
|
43
|
+
primaryAdapter: config.primaryAdapter,
|
|
44
|
+
enabledAdapters: config.enabledAdapters || [],
|
|
45
|
+
dualWrite: config.dualWrite !== undefined ? config.dualWrite : true,
|
|
46
|
+
failFast: config.failFast !== undefined ? config.failFast : true,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Register a write adapter
|
|
51
|
+
*/
|
|
52
|
+
registerAdapter(adapter) {
|
|
53
|
+
this.adapters.set(adapter.name, adapter);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Unregister an adapter
|
|
57
|
+
*/
|
|
58
|
+
unregisterAdapter(name) {
|
|
59
|
+
this.adapters.delete(name);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get list of registered adapters
|
|
63
|
+
*/
|
|
64
|
+
getAdapters() {
|
|
65
|
+
return Array.from(this.adapters.keys());
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get enabled adapters based on configuration
|
|
69
|
+
*/
|
|
70
|
+
getEnabledAdapters() {
|
|
71
|
+
return Array.from(this.adapters.values()).filter(adapter => {
|
|
72
|
+
// Check if adapter itself is enabled
|
|
73
|
+
if (!adapter.enabled()) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
// If enabledAdapters list is specified, check if adapter is in the list
|
|
77
|
+
if (this.config.enabledAdapters && this.config.enabledAdapters.length > 0) {
|
|
78
|
+
return this.config.enabledAdapters.includes(adapter.name);
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Dispatch write operation to all enabled adapters
|
|
85
|
+
*
|
|
86
|
+
* Strategy:
|
|
87
|
+
* 1. Execute all enabled adapters concurrently
|
|
88
|
+
* 2. Wait for primary adapter to complete
|
|
89
|
+
* 3. If primary fails, throw error (fail fast)
|
|
90
|
+
* 4. If primary succeeds, return its result
|
|
91
|
+
* 5. Secondary adapter failures are logged but don't block
|
|
92
|
+
*
|
|
93
|
+
* @throws Error if primary adapter fails
|
|
94
|
+
*/
|
|
95
|
+
async dispatch(document) {
|
|
96
|
+
const enabledAdapters = this.getEnabledAdapters();
|
|
97
|
+
if (enabledAdapters.length === 0) {
|
|
98
|
+
throw new Error('No enabled adapters available for write dispatch');
|
|
99
|
+
}
|
|
100
|
+
// Find primary adapter
|
|
101
|
+
const primaryAdapter = enabledAdapters.find(a => a.name === this.config.primaryAdapter);
|
|
102
|
+
if (!primaryAdapter) {
|
|
103
|
+
throw new Error(`Primary adapter '${this.config.primaryAdapter}' not found or not enabled`);
|
|
104
|
+
}
|
|
105
|
+
// Execute all adapters concurrently
|
|
106
|
+
const writePromises = enabledAdapters.map(adapter => adapter
|
|
107
|
+
.write(document)
|
|
108
|
+
.then(result => ({ adapter: adapter.name, result, success: true }))
|
|
109
|
+
.catch(error => ({
|
|
110
|
+
adapter: adapter.name,
|
|
111
|
+
error: error instanceof Error ? error.message : String(error),
|
|
112
|
+
success: false,
|
|
113
|
+
})));
|
|
114
|
+
const results = await Promise.all(writePromises);
|
|
115
|
+
// Check primary adapter result
|
|
116
|
+
const primaryResult = results.find(r => r.adapter === this.config.primaryAdapter);
|
|
117
|
+
if (!primaryResult) {
|
|
118
|
+
throw new Error(`Primary adapter '${this.config.primaryAdapter}' not found in results`);
|
|
119
|
+
}
|
|
120
|
+
if (!primaryResult.success) {
|
|
121
|
+
const errorMsg = 'error' in primaryResult ? primaryResult.error : 'Unknown error';
|
|
122
|
+
throw new Error(`Primary adapter '${this.config.primaryAdapter}' failed: ${errorMsg}`);
|
|
123
|
+
}
|
|
124
|
+
// Log secondary adapter failures (non-blocking)
|
|
125
|
+
const secondaryFailures = results.filter((r) => !r.success && r.adapter !== this.config.primaryAdapter);
|
|
126
|
+
if (secondaryFailures.length > 0) {
|
|
127
|
+
for (const failure of secondaryFailures) {
|
|
128
|
+
console.warn(`[WriteDispatcher] Secondary adapter '${failure.adapter}' failed: ${failure.error}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Return primary adapter result
|
|
132
|
+
return primaryResult.result;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Validate configuration and adapters
|
|
136
|
+
*/
|
|
137
|
+
validate() {
|
|
138
|
+
const errors = [];
|
|
139
|
+
// Check if primary adapter is registered
|
|
140
|
+
if (!this.adapters.has(this.config.primaryAdapter)) {
|
|
141
|
+
errors.push(`Primary adapter '${this.config.primaryAdapter}' is not registered`);
|
|
142
|
+
}
|
|
143
|
+
// Check if at least one adapter is enabled
|
|
144
|
+
const enabledAdapters = this.getEnabledAdapters();
|
|
145
|
+
if (enabledAdapters.length === 0) {
|
|
146
|
+
errors.push('No adapters are enabled. Check environment configuration.');
|
|
147
|
+
}
|
|
148
|
+
// Check if primary adapter is enabled
|
|
149
|
+
const primaryEnabled = enabledAdapters.some(a => a.name === this.config.primaryAdapter);
|
|
150
|
+
if (!primaryEnabled && this.adapters.has(this.config.primaryAdapter)) {
|
|
151
|
+
errors.push(`Primary adapter '${this.config.primaryAdapter}' is registered but not enabled`);
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
valid: errors.length === 0,
|
|
155
|
+
errors,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get dispatcher status
|
|
160
|
+
*/
|
|
161
|
+
getStatus() {
|
|
162
|
+
const enabledAdapters = this.getEnabledAdapters();
|
|
163
|
+
return {
|
|
164
|
+
primaryAdapter: this.config.primaryAdapter,
|
|
165
|
+
registeredAdapters: Array.from(this.adapters.keys()),
|
|
166
|
+
enabledAdapters: enabledAdapters.map(a => a.name),
|
|
167
|
+
dualWrite: this.config.dualWrite,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Global dispatcher instance (singleton)
|
|
173
|
+
*/
|
|
174
|
+
let globalDispatcher = null;
|
|
175
|
+
/**
|
|
176
|
+
* Initialize global dispatcher
|
|
177
|
+
*/
|
|
178
|
+
export function initializeDispatcher(config) {
|
|
179
|
+
globalDispatcher = new WriteDispatcher(config);
|
|
180
|
+
return globalDispatcher;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get global dispatcher instance
|
|
184
|
+
*/
|
|
185
|
+
export function getDispatcher() {
|
|
186
|
+
if (!globalDispatcher) {
|
|
187
|
+
throw new Error('WriteDispatcher not initialized. Call initializeDispatcher() first.');
|
|
188
|
+
}
|
|
189
|
+
return globalDispatcher;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Check if dispatcher is initialized
|
|
193
|
+
*/
|
|
194
|
+
export function isDispatcherInitialized() {
|
|
195
|
+
return globalDispatcher !== null;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=write-dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-dispatcher.js","sourceRoot":"","sources":["../../../src/lib/write-dispatcher/write-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: model
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-11-10
|
|
5
|
+
* @tags: [types, charter, project-charter, conversation, confidence-scoring]
|
|
6
|
+
* @related: [charter-storage.ts, conversation-facilitator.ts, charter-synthesizer.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: []
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Work modes determine charter depth and conversation style
|
|
13
|
+
*/
|
|
14
|
+
export type WorkMode = 'hack-ship' | 'think-build' | 'full-planning';
|
|
15
|
+
/**
|
|
16
|
+
* Charter status lifecycle
|
|
17
|
+
*/
|
|
18
|
+
export type CharterStatus = 'draft' | 'active' | 'archived';
|
|
19
|
+
/**
|
|
20
|
+
* Charter aspects tracked for confidence scoring
|
|
21
|
+
*/
|
|
22
|
+
export type CharterAspect = 'purpose' | 'users' | 'success' | 'scope';
|
|
23
|
+
/**
|
|
24
|
+
* Version bump types for semantic versioning
|
|
25
|
+
*/
|
|
26
|
+
export type VersionBump = 'major' | 'minor' | 'patch';
|
|
27
|
+
/**
|
|
28
|
+
* Scope boundaries: what's in, out, and to be determined
|
|
29
|
+
*/
|
|
30
|
+
export interface CharterScope {
|
|
31
|
+
inScope: string[];
|
|
32
|
+
outOfScope: string[];
|
|
33
|
+
tbd: string[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Main charter content
|
|
37
|
+
*/
|
|
38
|
+
export interface CharterContent {
|
|
39
|
+
purpose: string;
|
|
40
|
+
users: string[];
|
|
41
|
+
successCriteria: string[];
|
|
42
|
+
scope: CharterScope;
|
|
43
|
+
constraints?: string;
|
|
44
|
+
timeline?: string;
|
|
45
|
+
team?: string[];
|
|
46
|
+
risks?: string[];
|
|
47
|
+
alternatives?: string[];
|
|
48
|
+
governance?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Score for a single charter aspect (0-100)
|
|
52
|
+
*/
|
|
53
|
+
export interface AspectScore {
|
|
54
|
+
score: number;
|
|
55
|
+
signals: string[];
|
|
56
|
+
missing: string[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Confidence metrics for charter completeness
|
|
60
|
+
*/
|
|
61
|
+
export interface CharterConfidence {
|
|
62
|
+
purpose: AspectScore;
|
|
63
|
+
users: AspectScore;
|
|
64
|
+
success: AspectScore;
|
|
65
|
+
scope: AspectScore;
|
|
66
|
+
overall: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Confidence thresholds for decision-making
|
|
70
|
+
*/
|
|
71
|
+
export declare const CONFIDENCE_THRESHOLDS: {
|
|
72
|
+
readonly CRITICAL: 40;
|
|
73
|
+
readonly WORKABLE: 70;
|
|
74
|
+
readonly EXCELLENT: 90;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Semantic version structure
|
|
78
|
+
*/
|
|
79
|
+
export interface CharterVersion {
|
|
80
|
+
major: number;
|
|
81
|
+
minor: number;
|
|
82
|
+
patch: number;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Single changelog entry
|
|
86
|
+
*/
|
|
87
|
+
export interface ChangelogEntry {
|
|
88
|
+
version: string;
|
|
89
|
+
date: string;
|
|
90
|
+
changes: string[];
|
|
91
|
+
participants: string[];
|
|
92
|
+
confidence?: number;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Complete project charter
|
|
96
|
+
*/
|
|
97
|
+
export interface Charter {
|
|
98
|
+
id: string;
|
|
99
|
+
projectId: string;
|
|
100
|
+
status: CharterStatus;
|
|
101
|
+
workMode: WorkMode;
|
|
102
|
+
version: CharterVersion;
|
|
103
|
+
createdAt: Date;
|
|
104
|
+
updatedAt: Date;
|
|
105
|
+
content: CharterContent;
|
|
106
|
+
confidence: CharterConfidence;
|
|
107
|
+
changelog: ChangelogEntry[];
|
|
108
|
+
graphNodeId?: string;
|
|
109
|
+
embedding?: number[];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* A single conversation exchange
|
|
113
|
+
*/
|
|
114
|
+
export interface ConversationExchange {
|
|
115
|
+
question: string;
|
|
116
|
+
response: string;
|
|
117
|
+
timestamp: Date;
|
|
118
|
+
aspectsAddressed: CharterAspect[];
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Work mode detection signals
|
|
122
|
+
*/
|
|
123
|
+
export interface WorkModeSignals {
|
|
124
|
+
hackShip: number;
|
|
125
|
+
thinkBuild: number;
|
|
126
|
+
fullPlanning: number;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Full conversation context during charter creation
|
|
130
|
+
*/
|
|
131
|
+
export interface ConversationContext {
|
|
132
|
+
exchanges: ConversationExchange[];
|
|
133
|
+
workModeSignals: WorkModeSignals;
|
|
134
|
+
tbdAspects: Set<CharterAspect>;
|
|
135
|
+
nudgeCount: number;
|
|
136
|
+
lastNudgeTime?: Date;
|
|
137
|
+
stopSignals: boolean;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Extracted content from conversation
|
|
141
|
+
*/
|
|
142
|
+
export interface ExtractedContent {
|
|
143
|
+
problemStatements: string[];
|
|
144
|
+
valueStatements: string[];
|
|
145
|
+
userTypes: string[];
|
|
146
|
+
successCriteria: string[];
|
|
147
|
+
inScope: string[];
|
|
148
|
+
outOfScope: string[];
|
|
149
|
+
constraints: string[];
|
|
150
|
+
timeline: string[];
|
|
151
|
+
team: string[];
|
|
152
|
+
risks?: string[];
|
|
153
|
+
alternatives?: string[];
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Question template for a specific aspect
|
|
157
|
+
*/
|
|
158
|
+
export interface QuestionTemplate {
|
|
159
|
+
aspect: CharterAspect;
|
|
160
|
+
question: string;
|
|
161
|
+
followUps: string[];
|
|
162
|
+
keywords: string[];
|
|
163
|
+
weight: number;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Question selection context
|
|
167
|
+
*/
|
|
168
|
+
export interface QuestionContext {
|
|
169
|
+
previousQuestions: string[];
|
|
170
|
+
aspectsCovered: Set<CharterAspect>;
|
|
171
|
+
responseDepth: 'shallow' | 'moderate' | 'deep';
|
|
172
|
+
userTone: 'urgent' | 'exploratory' | 'methodical';
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* File storage metadata
|
|
176
|
+
*/
|
|
177
|
+
export interface FileStorageMetadata {
|
|
178
|
+
path: string;
|
|
179
|
+
exists: boolean;
|
|
180
|
+
lastModified?: Date;
|
|
181
|
+
size?: number;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Graph storage metadata
|
|
185
|
+
*/
|
|
186
|
+
export interface GraphStorageMetadata {
|
|
187
|
+
nodeId?: string;
|
|
188
|
+
synced: boolean;
|
|
189
|
+
lastSyncedAt?: Date;
|
|
190
|
+
syncError?: string;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Complete storage status
|
|
194
|
+
*/
|
|
195
|
+
export interface CharterStorageStatus {
|
|
196
|
+
file: FileStorageMetadata;
|
|
197
|
+
graph: GraphStorageMetadata;
|
|
198
|
+
inSync: boolean;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Storage operation result
|
|
202
|
+
*/
|
|
203
|
+
export interface CharterStorageResult {
|
|
204
|
+
success: boolean;
|
|
205
|
+
charter?: Charter;
|
|
206
|
+
error?: string;
|
|
207
|
+
storageStatus: CharterStorageStatus;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Options for ginko charter command
|
|
211
|
+
*/
|
|
212
|
+
export interface CharterOptions {
|
|
213
|
+
view?: boolean;
|
|
214
|
+
edit?: boolean;
|
|
215
|
+
mode?: WorkMode;
|
|
216
|
+
skipConversation?: boolean;
|
|
217
|
+
outputPath?: string;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Options for charter creation
|
|
221
|
+
*/
|
|
222
|
+
export interface CharterCreateOptions {
|
|
223
|
+
workMode?: WorkMode;
|
|
224
|
+
skipGraphSync?: boolean;
|
|
225
|
+
customPath?: string;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Options for charter editing
|
|
229
|
+
*/
|
|
230
|
+
export interface CharterEditOptions {
|
|
231
|
+
conversational?: boolean;
|
|
232
|
+
directEdit?: boolean;
|
|
233
|
+
aspectToEdit?: CharterAspect;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Charter preview summary
|
|
237
|
+
*/
|
|
238
|
+
export interface CharterPreview {
|
|
239
|
+
title: string;
|
|
240
|
+
purpose: string;
|
|
241
|
+
keyPoints: string[];
|
|
242
|
+
confidence: number;
|
|
243
|
+
workMode: WorkMode;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Diff between two charter versions
|
|
247
|
+
*/
|
|
248
|
+
export interface CharterDiff {
|
|
249
|
+
versionFrom: string;
|
|
250
|
+
versionTo: string;
|
|
251
|
+
additions: string[];
|
|
252
|
+
deletions: string[];
|
|
253
|
+
modifications: string[];
|
|
254
|
+
significantChange: boolean;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Charter validation result
|
|
258
|
+
*/
|
|
259
|
+
export interface CharterValidation {
|
|
260
|
+
valid: boolean;
|
|
261
|
+
errors: string[];
|
|
262
|
+
warnings: string[];
|
|
263
|
+
suggestions: string[];
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Validation rules
|
|
267
|
+
*/
|
|
268
|
+
export interface ValidationRule {
|
|
269
|
+
name: string;
|
|
270
|
+
description: string;
|
|
271
|
+
check: (charter: Charter) => boolean;
|
|
272
|
+
severity: 'error' | 'warning' | 'info';
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Default charter file path
|
|
276
|
+
*/
|
|
277
|
+
export declare const DEFAULT_CHARTER_PATH = "docs/PROJECT-CHARTER.md";
|
|
278
|
+
/**
|
|
279
|
+
* Work mode characteristics
|
|
280
|
+
*/
|
|
281
|
+
export declare const WORK_MODE_CHARACTERISTICS: {
|
|
282
|
+
readonly 'hack-ship': {
|
|
283
|
+
readonly name: "Hack & Ship";
|
|
284
|
+
readonly description: "Quick prototype, MVP, weekend project";
|
|
285
|
+
readonly conversationDepth: "light";
|
|
286
|
+
readonly targetTime: 5;
|
|
287
|
+
readonly requiredSections: readonly ["purpose", "scope"];
|
|
288
|
+
readonly keywords: readonly ["quick", "prototype", "MVP", "weekend", "validate"];
|
|
289
|
+
};
|
|
290
|
+
readonly 'think-build': {
|
|
291
|
+
readonly name: "Think & Build";
|
|
292
|
+
readonly description: "Team project with process and testing";
|
|
293
|
+
readonly conversationDepth: "standard";
|
|
294
|
+
readonly targetTime: 15;
|
|
295
|
+
readonly requiredSections: readonly ["purpose", "users", "success", "scope", "constraints"];
|
|
296
|
+
readonly keywords: readonly ["team", "process", "testing", "architecture"];
|
|
297
|
+
};
|
|
298
|
+
readonly 'full-planning': {
|
|
299
|
+
readonly name: "Full Planning";
|
|
300
|
+
readonly description: "Enterprise project with stakeholders and governance";
|
|
301
|
+
readonly conversationDepth: "comprehensive";
|
|
302
|
+
readonly targetTime: 30;
|
|
303
|
+
readonly requiredSections: readonly ["purpose", "users", "success", "scope", "constraints", "risks", "alternatives", "governance"];
|
|
304
|
+
readonly keywords: readonly ["stakeholders", "governance", "risks", "alternatives", "compliance"];
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
/**
|
|
308
|
+
* Check if value is a valid WorkMode
|
|
309
|
+
*/
|
|
310
|
+
export declare function isWorkMode(value: any): value is WorkMode;
|
|
311
|
+
/**
|
|
312
|
+
* Check if value is a valid CharterStatus
|
|
313
|
+
*/
|
|
314
|
+
export declare function isCharterStatus(value: any): value is CharterStatus;
|
|
315
|
+
/**
|
|
316
|
+
* Check if value is a valid CharterAspect
|
|
317
|
+
*/
|
|
318
|
+
export declare function isCharterAspect(value: any): value is CharterAspect;
|
|
319
|
+
/**
|
|
320
|
+
* Partial charter for updates
|
|
321
|
+
*/
|
|
322
|
+
export type CharterUpdate = Partial<Pick<Charter, 'content' | 'status' | 'workMode' | 'confidence'>>;
|
|
323
|
+
/**
|
|
324
|
+
* Charter summary for listings
|
|
325
|
+
*/
|
|
326
|
+
export type CharterSummary = Pick<Charter, 'id' | 'status' | 'workMode' | 'version' | 'updatedAt'> & {
|
|
327
|
+
title: string;
|
|
328
|
+
confidenceOverall: number;
|
|
329
|
+
};
|
|
330
|
+
//# sourceMappingURL=charter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charter.d.ts","sourceRoot":"","sources":["../../src/types/charter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: model
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-11-10
|
|
5
|
+
* @tags: [types, charter, project-charter, conversation, confidence-scoring]
|
|
6
|
+
* @related: [charter-storage.ts, conversation-facilitator.ts, charter-synthesizer.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: []
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Confidence thresholds for decision-making
|
|
13
|
+
*/
|
|
14
|
+
export const CONFIDENCE_THRESHOLDS = {
|
|
15
|
+
CRITICAL: 40, // Below this needs gentle probing
|
|
16
|
+
WORKABLE: 70, // Above this is good enough to start
|
|
17
|
+
EXCELLENT: 90, // Very comprehensive
|
|
18
|
+
};
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Helper Functions & Constants
|
|
21
|
+
// ============================================================================
|
|
22
|
+
/**
|
|
23
|
+
* Default charter file path
|
|
24
|
+
*/
|
|
25
|
+
export const DEFAULT_CHARTER_PATH = 'docs/PROJECT-CHARTER.md';
|
|
26
|
+
/**
|
|
27
|
+
* Work mode characteristics
|
|
28
|
+
*/
|
|
29
|
+
export const WORK_MODE_CHARACTERISTICS = {
|
|
30
|
+
'hack-ship': {
|
|
31
|
+
name: 'Hack & Ship',
|
|
32
|
+
description: 'Quick prototype, MVP, weekend project',
|
|
33
|
+
conversationDepth: 'light',
|
|
34
|
+
targetTime: 5, // minutes
|
|
35
|
+
requiredSections: ['purpose', 'scope'],
|
|
36
|
+
keywords: ['quick', 'prototype', 'MVP', 'weekend', 'validate'],
|
|
37
|
+
},
|
|
38
|
+
'think-build': {
|
|
39
|
+
name: 'Think & Build',
|
|
40
|
+
description: 'Team project with process and testing',
|
|
41
|
+
conversationDepth: 'standard',
|
|
42
|
+
targetTime: 15, // minutes
|
|
43
|
+
requiredSections: ['purpose', 'users', 'success', 'scope', 'constraints'],
|
|
44
|
+
keywords: ['team', 'process', 'testing', 'architecture'],
|
|
45
|
+
},
|
|
46
|
+
'full-planning': {
|
|
47
|
+
name: 'Full Planning',
|
|
48
|
+
description: 'Enterprise project with stakeholders and governance',
|
|
49
|
+
conversationDepth: 'comprehensive',
|
|
50
|
+
targetTime: 30, // minutes
|
|
51
|
+
requiredSections: ['purpose', 'users', 'success', 'scope', 'constraints', 'risks', 'alternatives', 'governance'],
|
|
52
|
+
keywords: ['stakeholders', 'governance', 'risks', 'alternatives', 'compliance'],
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
// ============================================================================
|
|
56
|
+
// Type Guards
|
|
57
|
+
// ============================================================================
|
|
58
|
+
/**
|
|
59
|
+
* Check if value is a valid WorkMode
|
|
60
|
+
*/
|
|
61
|
+
export function isWorkMode(value) {
|
|
62
|
+
return ['hack-ship', 'think-build', 'full-planning'].includes(value);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Check if value is a valid CharterStatus
|
|
66
|
+
*/
|
|
67
|
+
export function isCharterStatus(value) {
|
|
68
|
+
return ['draft', 'active', 'archived'].includes(value);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check if value is a valid CharterAspect
|
|
72
|
+
*/
|
|
73
|
+
export function isCharterAspect(value) {
|
|
74
|
+
return ['purpose', 'users', 'success', 'scope'].includes(value);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=charter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charter.js","sourceRoot":"","sources":["../../src/types/charter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA+EH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,EAAE,EAAI,kCAAkC;IAClD,QAAQ,EAAE,EAAE,EAAI,qCAAqC;IACrD,SAAS,EAAE,EAAE,EAAG,qBAAqB;CAC7B,CAAC;AAqQX,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,uCAAuC;QACpD,iBAAiB,EAAE,OAAO;QAC1B,UAAU,EAAE,CAAC,EAAE,UAAU;QACzB,gBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;QACtC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC;KAC/D;IACD,aAAa,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,uCAAuC;QACpD,iBAAiB,EAAE,UAAU;QAC7B,UAAU,EAAE,EAAE,EAAE,UAAU;QAC1B,gBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC;QACzE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC;KACzD;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,qDAAqD;QAClE,iBAAiB,EAAE,eAAe;QAClC,UAAU,EAAE,EAAE,EAAE,UAAU;QAC1B,gBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC;QAChH,QAAQ,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC;KAChF;CACO,CAAC;AAEX,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAU;IACnC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAU;IACxC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAU;IACxC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC"}
|