gitmem-mcp 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +47 -0
- package/CLAUDE.md.template +65 -0
- package/LICENSE +21 -0
- package/README.md +221 -0
- package/bin/gitmem.js +383 -0
- package/dist/commands/check.d.ts +33 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +492 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/constants/closing-questions.d.ts +40 -0
- package/dist/constants/closing-questions.d.ts.map +1 -0
- package/dist/constants/closing-questions.js +107 -0
- package/dist/constants/closing-questions.js.map +1 -0
- package/dist/diagnostics/anonymizer.d.ts +55 -0
- package/dist/diagnostics/anonymizer.d.ts.map +1 -0
- package/dist/diagnostics/anonymizer.js +191 -0
- package/dist/diagnostics/anonymizer.js.map +1 -0
- package/dist/diagnostics/channels.d.ts +132 -0
- package/dist/diagnostics/channels.d.ts.map +1 -0
- package/dist/diagnostics/channels.js +150 -0
- package/dist/diagnostics/channels.js.map +1 -0
- package/dist/diagnostics/collector.d.ts +183 -0
- package/dist/diagnostics/collector.d.ts.map +1 -0
- package/dist/diagnostics/collector.js +227 -0
- package/dist/diagnostics/collector.js.map +1 -0
- package/dist/diagnostics/index.d.ts +28 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +31 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/absorb-observations.d.ts +63 -0
- package/dist/schemas/absorb-observations.d.ts.map +1 -0
- package/dist/schemas/absorb-observations.js +25 -0
- package/dist/schemas/absorb-observations.js.map +1 -0
- package/dist/schemas/active-sessions.d.ts +71 -0
- package/dist/schemas/active-sessions.d.ts.map +1 -0
- package/dist/schemas/active-sessions.js +19 -0
- package/dist/schemas/active-sessions.js.map +1 -0
- package/dist/schemas/analyze.d.ts +38 -0
- package/dist/schemas/analyze.d.ts.map +1 -0
- package/dist/schemas/analyze.js +30 -0
- package/dist/schemas/analyze.js.map +1 -0
- package/dist/schemas/common.d.ts +55 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +65 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/create-decision.d.ts +48 -0
- package/dist/schemas/create-decision.d.ts.map +1 -0
- package/dist/schemas/create-decision.js +31 -0
- package/dist/schemas/create-decision.js.map +1 -0
- package/dist/schemas/create-learning.d.ts +107 -0
- package/dist/schemas/create-learning.d.ts.map +1 -0
- package/dist/schemas/create-learning.js +64 -0
- package/dist/schemas/create-learning.js.map +1 -0
- package/dist/schemas/get-transcript.d.ts +24 -0
- package/dist/schemas/get-transcript.d.ts.map +1 -0
- package/dist/schemas/get-transcript.js +22 -0
- package/dist/schemas/get-transcript.js.map +1 -0
- package/dist/schemas/index.d.ts +23 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +23 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/log.d.ts +36 -0
- package/dist/schemas/log.d.ts.map +1 -0
- package/dist/schemas/log.js +27 -0
- package/dist/schemas/log.js.map +1 -0
- package/dist/schemas/prepare-context.d.ts +41 -0
- package/dist/schemas/prepare-context.d.ts.map +1 -0
- package/dist/schemas/prepare-context.js +31 -0
- package/dist/schemas/prepare-context.js.map +1 -0
- package/dist/schemas/recall.d.ts +41 -0
- package/dist/schemas/recall.d.ts.map +1 -0
- package/dist/schemas/recall.js +47 -0
- package/dist/schemas/recall.js.map +1 -0
- package/dist/schemas/record-scar-usage-batch.d.ts +82 -0
- package/dist/schemas/record-scar-usage-batch.d.ts.map +1 -0
- package/dist/schemas/record-scar-usage-batch.js +25 -0
- package/dist/schemas/record-scar-usage-batch.js.map +1 -0
- package/dist/schemas/record-scar-usage.d.ts +51 -0
- package/dist/schemas/record-scar-usage.d.ts.map +1 -0
- package/dist/schemas/record-scar-usage.js +32 -0
- package/dist/schemas/record-scar-usage.js.map +1 -0
- package/dist/schemas/save-transcript.d.ts +38 -0
- package/dist/schemas/save-transcript.d.ts.map +1 -0
- package/dist/schemas/save-transcript.js +30 -0
- package/dist/schemas/save-transcript.js.map +1 -0
- package/dist/schemas/search.d.ts +36 -0
- package/dist/schemas/search.d.ts.map +1 -0
- package/dist/schemas/search.js +27 -0
- package/dist/schemas/search.js.map +1 -0
- package/dist/schemas/session-close.d.ts +371 -0
- package/dist/schemas/session-close.d.ts.map +1 -0
- package/dist/schemas/session-close.js +95 -0
- package/dist/schemas/session-close.js.map +1 -0
- package/dist/schemas/session-start.d.ts +46 -0
- package/dist/schemas/session-start.d.ts.map +1 -0
- package/dist/schemas/session-start.js +33 -0
- package/dist/schemas/session-start.js.map +1 -0
- package/dist/schemas/thread.d.ts +72 -0
- package/dist/schemas/thread.d.ts.map +1 -0
- package/dist/schemas/thread.js +39 -0
- package/dist/schemas/thread.js.map +1 -0
- package/dist/server.d.ts +22 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +313 -0
- package/dist/server.js.map +1 -0
- package/dist/services/active-sessions.d.ts +66 -0
- package/dist/services/active-sessions.d.ts.map +1 -0
- package/dist/services/active-sessions.js +311 -0
- package/dist/services/active-sessions.js.map +1 -0
- package/dist/services/agent-detection.d.ts +25 -0
- package/dist/services/agent-detection.d.ts.map +1 -0
- package/dist/services/agent-detection.js +93 -0
- package/dist/services/agent-detection.js.map +1 -0
- package/dist/services/analytics.d.ts +201 -0
- package/dist/services/analytics.d.ts.map +1 -0
- package/dist/services/analytics.js +483 -0
- package/dist/services/analytics.js.map +1 -0
- package/dist/services/cache.d.ts +148 -0
- package/dist/services/cache.d.ts.map +1 -0
- package/dist/services/cache.js +384 -0
- package/dist/services/cache.js.map +1 -0
- package/dist/services/cache.test.d.ts +8 -0
- package/dist/services/cache.test.d.ts.map +1 -0
- package/dist/services/cache.test.js +267 -0
- package/dist/services/cache.test.js.map +1 -0
- package/dist/services/compliance-validator.d.ts +30 -0
- package/dist/services/compliance-validator.d.ts.map +1 -0
- package/dist/services/compliance-validator.js +257 -0
- package/dist/services/compliance-validator.js.map +1 -0
- package/dist/services/config.d.ts +48 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +128 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/embedding.d.ts +58 -0
- package/dist/services/embedding.d.ts.map +1 -0
- package/dist/services/embedding.js +243 -0
- package/dist/services/embedding.js.map +1 -0
- package/dist/services/gitmem-dir.d.ts +38 -0
- package/dist/services/gitmem-dir.d.ts.map +1 -0
- package/dist/services/gitmem-dir.js +84 -0
- package/dist/services/gitmem-dir.js.map +1 -0
- package/dist/services/local-file-storage.d.ts +56 -0
- package/dist/services/local-file-storage.d.ts.map +1 -0
- package/dist/services/local-file-storage.js +213 -0
- package/dist/services/local-file-storage.js.map +1 -0
- package/dist/services/local-vector-search.d.ts +137 -0
- package/dist/services/local-vector-search.d.ts.map +1 -0
- package/dist/services/local-vector-search.js +311 -0
- package/dist/services/local-vector-search.js.map +1 -0
- package/dist/services/metrics.d.ts +104 -0
- package/dist/services/metrics.d.ts.map +1 -0
- package/dist/services/metrics.js +264 -0
- package/dist/services/metrics.js.map +1 -0
- package/dist/services/session-state.d.ts +113 -0
- package/dist/services/session-state.d.ts.map +1 -0
- package/dist/services/session-state.js +203 -0
- package/dist/services/session-state.js.map +1 -0
- package/dist/services/startup.d.ts +112 -0
- package/dist/services/startup.d.ts.map +1 -0
- package/dist/services/startup.js +436 -0
- package/dist/services/startup.js.map +1 -0
- package/dist/services/storage.d.ts +43 -0
- package/dist/services/storage.d.ts.map +1 -0
- package/dist/services/storage.js +92 -0
- package/dist/services/storage.js.map +1 -0
- package/dist/services/supabase-client.d.ts +163 -0
- package/dist/services/supabase-client.d.ts.map +1 -0
- package/dist/services/supabase-client.js +510 -0
- package/dist/services/supabase-client.js.map +1 -0
- package/dist/services/thread-dedup.d.ts +44 -0
- package/dist/services/thread-dedup.d.ts.map +1 -0
- package/dist/services/thread-dedup.js +113 -0
- package/dist/services/thread-dedup.js.map +1 -0
- package/dist/services/thread-manager.d.ts +77 -0
- package/dist/services/thread-manager.d.ts.map +1 -0
- package/dist/services/thread-manager.js +250 -0
- package/dist/services/thread-manager.js.map +1 -0
- package/dist/services/thread-suggestions.d.ts +66 -0
- package/dist/services/thread-suggestions.d.ts.map +1 -0
- package/dist/services/thread-suggestions.js +243 -0
- package/dist/services/thread-suggestions.js.map +1 -0
- package/dist/services/thread-supabase.d.ts +111 -0
- package/dist/services/thread-supabase.d.ts.map +1 -0
- package/dist/services/thread-supabase.js +459 -0
- package/dist/services/thread-supabase.js.map +1 -0
- package/dist/services/thread-vitality.d.ts +65 -0
- package/dist/services/thread-vitality.d.ts.map +1 -0
- package/dist/services/thread-vitality.js +143 -0
- package/dist/services/thread-vitality.js.map +1 -0
- package/dist/services/tier.d.ts +52 -0
- package/dist/services/tier.d.ts.map +1 -0
- package/dist/services/tier.js +109 -0
- package/dist/services/tier.js.map +1 -0
- package/dist/services/timezone.d.ts +37 -0
- package/dist/services/timezone.d.ts.map +1 -0
- package/dist/services/timezone.js +147 -0
- package/dist/services/timezone.js.map +1 -0
- package/dist/services/transcript-chunker.d.ts +18 -0
- package/dist/services/transcript-chunker.d.ts.map +1 -0
- package/dist/services/transcript-chunker.js +237 -0
- package/dist/services/transcript-chunker.js.map +1 -0
- package/dist/services/triple-writer.d.ts +128 -0
- package/dist/services/triple-writer.d.ts.map +1 -0
- package/dist/services/triple-writer.js +338 -0
- package/dist/services/triple-writer.js.map +1 -0
- package/dist/services/variant-assignment.d.ts +92 -0
- package/dist/services/variant-assignment.d.ts.map +1 -0
- package/dist/services/variant-assignment.js +196 -0
- package/dist/services/variant-assignment.js.map +1 -0
- package/dist/tools/absorb-observations.d.ts +16 -0
- package/dist/tools/absorb-observations.d.ts.map +1 -0
- package/dist/tools/absorb-observations.js +82 -0
- package/dist/tools/absorb-observations.js.map +1 -0
- package/dist/tools/analyze.d.ts +55 -0
- package/dist/tools/analyze.d.ts.map +1 -0
- package/dist/tools/analyze.js +139 -0
- package/dist/tools/analyze.js.map +1 -0
- package/dist/tools/cleanup-threads.d.ts +47 -0
- package/dist/tools/cleanup-threads.d.ts.map +1 -0
- package/dist/tools/cleanup-threads.js +127 -0
- package/dist/tools/cleanup-threads.js.map +1 -0
- package/dist/tools/confirm-scars.d.ts +23 -0
- package/dist/tools/confirm-scars.d.ts.map +1 -0
- package/dist/tools/confirm-scars.js +209 -0
- package/dist/tools/confirm-scars.js.map +1 -0
- package/dist/tools/create-decision.d.ts +15 -0
- package/dist/tools/create-decision.d.ts.map +1 -0
- package/dist/tools/create-decision.js +138 -0
- package/dist/tools/create-decision.js.map +1 -0
- package/dist/tools/create-learning.d.ts +15 -0
- package/dist/tools/create-learning.d.ts.map +1 -0
- package/dist/tools/create-learning.js +226 -0
- package/dist/tools/create-learning.js.map +1 -0
- package/dist/tools/create-thread.d.ts +42 -0
- package/dist/tools/create-thread.d.ts.map +1 -0
- package/dist/tools/create-thread.js +180 -0
- package/dist/tools/create-thread.js.map +1 -0
- package/dist/tools/definitions.d.ts +5013 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +2017 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/dismiss-suggestion.d.ts +20 -0
- package/dist/tools/dismiss-suggestion.d.ts.map +1 -0
- package/dist/tools/dismiss-suggestion.js +40 -0
- package/dist/tools/dismiss-suggestion.js.map +1 -0
- package/dist/tools/get-transcript.d.ts +24 -0
- package/dist/tools/get-transcript.d.ts.map +1 -0
- package/dist/tools/get-transcript.js +52 -0
- package/dist/tools/get-transcript.js.map +1 -0
- package/dist/tools/graph-traverse.d.ts +83 -0
- package/dist/tools/graph-traverse.d.ts.map +1 -0
- package/dist/tools/graph-traverse.js +394 -0
- package/dist/tools/graph-traverse.js.map +1 -0
- package/dist/tools/list-threads.d.ts +15 -0
- package/dist/tools/list-threads.d.ts.map +1 -0
- package/dist/tools/list-threads.js +114 -0
- package/dist/tools/list-threads.js.map +1 -0
- package/dist/tools/log.d.ts +43 -0
- package/dist/tools/log.d.ts.map +1 -0
- package/dist/tools/log.js +157 -0
- package/dist/tools/log.js.map +1 -0
- package/dist/tools/prepare-context.d.ts +36 -0
- package/dist/tools/prepare-context.d.ts.map +1 -0
- package/dist/tools/prepare-context.js +353 -0
- package/dist/tools/prepare-context.js.map +1 -0
- package/dist/tools/promote-suggestion.d.ts +25 -0
- package/dist/tools/promote-suggestion.d.ts.map +1 -0
- package/dist/tools/promote-suggestion.js +60 -0
- package/dist/tools/promote-suggestion.js.map +1 -0
- package/dist/tools/recall.d.ts +77 -0
- package/dist/tools/recall.d.ts.map +1 -0
- package/dist/tools/recall.js +423 -0
- package/dist/tools/recall.js.map +1 -0
- package/dist/tools/recall.test.d.ts +5 -0
- package/dist/tools/recall.test.d.ts.map +1 -0
- package/dist/tools/recall.test.js +155 -0
- package/dist/tools/recall.test.js.map +1 -0
- package/dist/tools/record-scar-usage-batch.d.ts +10 -0
- package/dist/tools/record-scar-usage-batch.d.ts.map +1 -0
- package/dist/tools/record-scar-usage-batch.js +153 -0
- package/dist/tools/record-scar-usage-batch.js.map +1 -0
- package/dist/tools/record-scar-usage.d.ts +14 -0
- package/dist/tools/record-scar-usage.d.ts.map +1 -0
- package/dist/tools/record-scar-usage.js +94 -0
- package/dist/tools/record-scar-usage.js.map +1 -0
- package/dist/tools/resolve-thread.d.ts +16 -0
- package/dist/tools/resolve-thread.d.ts.map +1 -0
- package/dist/tools/resolve-thread.js +102 -0
- package/dist/tools/resolve-thread.js.map +1 -0
- package/dist/tools/save-transcript.d.ts +29 -0
- package/dist/tools/save-transcript.d.ts.map +1 -0
- package/dist/tools/save-transcript.js +97 -0
- package/dist/tools/save-transcript.js.map +1 -0
- package/dist/tools/search.d.ts +46 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +186 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/session-close.d.ts +14 -0
- package/dist/tools/session-close.d.ts.map +1 -0
- package/dist/tools/session-close.js +881 -0
- package/dist/tools/session-close.js.map +1 -0
- package/dist/tools/session-start.d.ts +38 -0
- package/dist/tools/session-start.d.ts.map +1 -0
- package/dist/tools/session-start.js +1104 -0
- package/dist/tools/session-start.js.map +1 -0
- package/dist/types/index.d.ts +456 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +76 -0
- package/schema/setup.sql +193 -0
- package/schema/starter-scars.json +206 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.test.js","sourceRoot":"","sources":["../../src/services/cache.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,UAAU,EAAa,MAAM,EAAE,aAAa,EAAgB,MAAM,IAAI,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErE,kDAAkD;AAClD,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,KAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,mCAAmC;QACnC,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,sBAAsB;QACtB,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACzB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAEnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAkB,UAAU,CAAC,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAChC,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAEnD,sBAAsB;YACtB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAkB,UAAU,CAAC,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAChC,0BAA0B;YAC1B,MAAM,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAEnD,sBAAsB;YACtB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YAEzD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;gBACzB,UAAU,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YAEF,4BAA4B;YAC5B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAC9C,YAAY,EACZ,eAAe,EACf,CAAC,EACD,OAAO,CACR,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE3B,iCAAiC;YACjC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAC9C,YAAY,EACZ,eAAe,EACf,CAAC,EACD,OAAO,CACR,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC;YAErC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAC7C,WAAW,EACX,eAAe,EACf,CAAC,EACD,OAAO,CACR,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YACpD,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;gBACzB,UAAU,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YAEF,4BAA4B;YAC5B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAC7C,eAAe,EACf,CAAC,EACD,OAAO,CACR,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE3B,iCAAiC;YACjC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAC7C,eAAe,EACf,CAAC,EACD,OAAO,CACR,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,mCAAmC;YACnC,MAAM,YAAY,GAAG;gBACnB,GAAG,EAAE,aAAa;gBAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM;gBAC/B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU;gBAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACrB,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;YACrE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAEtD,uBAAuB;YACvB,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YAE1D,cAAc;YACd,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAExB,+BAA+B;YAC/B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEzC,6BAA6B;YAC7B,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAElD,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YAEpB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAElD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAElD,gCAAgC;YAChC,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACrC,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACrC,MAAM,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO;YAE7C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa;YAC3D,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,wEAAwE;YACxE,yEAAyE;YACzE,UAAU,EAAE,CAAC;YACb,oCAAoC;YACpC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,cAAc,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC3C,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,cAAc,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC1B,UAAU,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC3C,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,uBAAuB;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;YACnE,aAAa,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAE9C,gCAAgC;YAChC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,4CAA4C;YAC5C,KAAK,CAAC,OAAO,EAAE,CAAC;YAEhB,8BAA8B;YAC9B,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACnF,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compliance Validator Service
|
|
3
|
+
*
|
|
4
|
+
* Validates session close compliance based on close type.
|
|
5
|
+
*
|
|
6
|
+
* Standard close requires (OD-491):
|
|
7
|
+
* - task_completion object with timestamps proving each step was done
|
|
8
|
+
* - All 6 closing questions answered
|
|
9
|
+
* - human_corrections field present (even if empty string)
|
|
10
|
+
* - Timestamps in logical order
|
|
11
|
+
* - Minimum 3-second gap between human_asked_at and human_response_at
|
|
12
|
+
*
|
|
13
|
+
* Quick close has minimal requirements.
|
|
14
|
+
* Autonomous close has agent-specific requirements.
|
|
15
|
+
*/
|
|
16
|
+
import type { SessionCloseParams, CloseCompliance, AgentIdentity } from "../types/index.js";
|
|
17
|
+
export interface ValidationResult {
|
|
18
|
+
valid: boolean;
|
|
19
|
+
errors: string[];
|
|
20
|
+
warnings: string[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Validate session close parameters based on close type
|
|
24
|
+
*/
|
|
25
|
+
export declare function validateSessionClose(params: SessionCloseParams): ValidationResult;
|
|
26
|
+
/**
|
|
27
|
+
* Build close_compliance object from validated params
|
|
28
|
+
*/
|
|
29
|
+
export declare function buildCloseCompliance(params: SessionCloseParams, agentIdentity: AgentIdentity, learningsCount: number): CloseCompliance;
|
|
30
|
+
//# sourceMappingURL=compliance-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-validator.d.ts","sourceRoot":"","sources":["../../src/services/compliance-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAa,eAAe,EAAE,aAAa,EAAkB,MAAM,mBAAmB,CAAC;AAGvH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAyOD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,gBAAgB,CAmBjF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kBAAkB,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,MAAM,GACrB,eAAe,CAoBjB"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compliance Validator Service
|
|
3
|
+
*
|
|
4
|
+
* Validates session close compliance based on close type.
|
|
5
|
+
*
|
|
6
|
+
* Standard close requires (OD-491):
|
|
7
|
+
* - task_completion object with timestamps proving each step was done
|
|
8
|
+
* - All 6 closing questions answered
|
|
9
|
+
* - human_corrections field present (even if empty string)
|
|
10
|
+
* - Timestamps in logical order
|
|
11
|
+
* - Minimum 3-second gap between human_asked_at and human_response_at
|
|
12
|
+
*
|
|
13
|
+
* Quick close has minimal requirements.
|
|
14
|
+
* Autonomous close has agent-specific requirements.
|
|
15
|
+
*/
|
|
16
|
+
import { CLOSING_QUESTIONS } from "../constants/closing-questions.js";
|
|
17
|
+
/** Minimum time (ms) between asking human and receiving response */
|
|
18
|
+
const MIN_HUMAN_RESPONSE_GAP_MS = 3000;
|
|
19
|
+
/**
|
|
20
|
+
* Validate task_completion timestamps (OD-491)
|
|
21
|
+
*
|
|
22
|
+
* Ensures:
|
|
23
|
+
* 1. All timestamps are valid ISO strings
|
|
24
|
+
* 2. Timestamps are in logical order
|
|
25
|
+
* 3. Minimum gap between human_asked_at and human_response_at
|
|
26
|
+
*/
|
|
27
|
+
function validateTaskCompletion(tc) {
|
|
28
|
+
const errors = [];
|
|
29
|
+
const warnings = [];
|
|
30
|
+
// Parse timestamps
|
|
31
|
+
const timestamps = {};
|
|
32
|
+
const fields = [
|
|
33
|
+
"questions_displayed_at",
|
|
34
|
+
"reflection_completed_at",
|
|
35
|
+
"human_asked_at",
|
|
36
|
+
"human_response_at",
|
|
37
|
+
];
|
|
38
|
+
for (const field of fields) {
|
|
39
|
+
const value = tc[field];
|
|
40
|
+
if (!value || value.trim() === "") {
|
|
41
|
+
errors.push(`task_completion.${field} is required`);
|
|
42
|
+
timestamps[field] = null;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const date = new Date(value);
|
|
46
|
+
if (isNaN(date.getTime())) {
|
|
47
|
+
errors.push(`task_completion.${field} is not a valid ISO timestamp: ${value}`);
|
|
48
|
+
timestamps[field] = null;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
timestamps[field] = date;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Validate human_response content
|
|
56
|
+
if (!tc.human_response || tc.human_response.trim() === "") {
|
|
57
|
+
errors.push("task_completion.human_response is required (e.g., 'none', 'no corrections', or actual corrections)");
|
|
58
|
+
}
|
|
59
|
+
// If we have valid timestamps, check logical order
|
|
60
|
+
const q = timestamps.questions_displayed_at;
|
|
61
|
+
const r = timestamps.reflection_completed_at;
|
|
62
|
+
const a = timestamps.human_asked_at;
|
|
63
|
+
const h = timestamps.human_response_at;
|
|
64
|
+
if (q && r && q > r) {
|
|
65
|
+
errors.push("task_completion: questions_displayed_at must be before reflection_completed_at");
|
|
66
|
+
}
|
|
67
|
+
if (r && a && r > a) {
|
|
68
|
+
errors.push("task_completion: reflection_completed_at must be before human_asked_at");
|
|
69
|
+
}
|
|
70
|
+
if (a && h && a > h) {
|
|
71
|
+
errors.push("task_completion: human_asked_at must be before human_response_at");
|
|
72
|
+
}
|
|
73
|
+
// Check minimum gap between asking and response
|
|
74
|
+
if (a && h) {
|
|
75
|
+
const gapMs = h.getTime() - a.getTime();
|
|
76
|
+
if (gapMs < MIN_HUMAN_RESPONSE_GAP_MS) {
|
|
77
|
+
errors.push(`task_completion: human_response_at must be at least ${MIN_HUMAN_RESPONSE_GAP_MS}ms after human_asked_at ` +
|
|
78
|
+
`(actual gap: ${gapMs}ms). Human cannot respond instantly.`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return { errors, warnings };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Validate standard close parameters
|
|
85
|
+
*
|
|
86
|
+
* OD-491: Now requires task_completion with timestamps proving each step was done.
|
|
87
|
+
*/
|
|
88
|
+
function validateStandardClose(params) {
|
|
89
|
+
const errors = [];
|
|
90
|
+
const warnings = [];
|
|
91
|
+
// OD-491: task_completion is REQUIRED for standard close
|
|
92
|
+
if (!params.task_completion) {
|
|
93
|
+
errors.push("Standard close requires task_completion object (OD-491). " +
|
|
94
|
+
"You must complete each step: display questions → answer → ask human → wait for response");
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// Validate task_completion timestamps and content
|
|
98
|
+
const tcValidation = validateTaskCompletion(params.task_completion);
|
|
99
|
+
errors.push(...tcValidation.errors);
|
|
100
|
+
warnings.push(...tcValidation.warnings);
|
|
101
|
+
}
|
|
102
|
+
// Closing reflection is required for standard close
|
|
103
|
+
if (!params.closing_reflection) {
|
|
104
|
+
errors.push(`Standard close requires closing_reflection with ${CLOSING_QUESTIONS.length} answers`);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
const reflection = params.closing_reflection;
|
|
108
|
+
// Validate each question from the single source of truth
|
|
109
|
+
for (const q of CLOSING_QUESTIONS) {
|
|
110
|
+
const value = reflection[q.key];
|
|
111
|
+
if (q.required) {
|
|
112
|
+
if (q.fieldType === "string") {
|
|
113
|
+
if (!value || (typeof value === "string" && value.trim() === "")) {
|
|
114
|
+
errors.push(`Missing: ${q.key} (Q${q.number}: ${q.question})`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Optional fields: warn if not provided (e.g., scars_applied)
|
|
120
|
+
if (value === undefined && q.fieldType === "string[]") {
|
|
121
|
+
warnings.push(`${q.key} not provided (Q${q.number}: ${q.question})`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Warn if Q3 (do_differently) or Q5 (wrong_assumption) have substantive answers
|
|
126
|
+
// but no learnings were created — suggests scars should be captured
|
|
127
|
+
const doDifferently = reflection.do_differently;
|
|
128
|
+
const wrongAssumption = reflection.wrong_assumption;
|
|
129
|
+
const hasSubstantiveDoDifferently = typeof doDifferently === "string" &&
|
|
130
|
+
doDifferently.trim().length > 20 &&
|
|
131
|
+
!/^(nothing|none|n\/a|na)$/i.test(doDifferently.trim());
|
|
132
|
+
const hasSubstantiveWrongAssumption = typeof wrongAssumption === "string" &&
|
|
133
|
+
wrongAssumption.trim().length > 20 &&
|
|
134
|
+
!/^(nothing|none|n\/a|na)$/i.test(wrongAssumption.trim());
|
|
135
|
+
if ((hasSubstantiveDoDifferently || hasSubstantiveWrongAssumption) &&
|
|
136
|
+
(!params.learnings_created || params.learnings_created.length === 0)) {
|
|
137
|
+
warnings.push("Q3 (do_differently) or Q5 (wrong_assumption) contain substantive answers but no learnings were created. " +
|
|
138
|
+
"Consider capturing scars from these reflections before closing.");
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Human corrections must be explicitly acknowledged
|
|
142
|
+
if (params.human_corrections === undefined) {
|
|
143
|
+
errors.push("Standard close requires human_corrections field (even if empty string)");
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
valid: errors.length === 0,
|
|
147
|
+
errors,
|
|
148
|
+
warnings,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Validate quick close parameters
|
|
153
|
+
*/
|
|
154
|
+
function validateQuickClose(params) {
|
|
155
|
+
const errors = [];
|
|
156
|
+
const warnings = [];
|
|
157
|
+
// Quick close has minimal requirements
|
|
158
|
+
if (!params.session_id) {
|
|
159
|
+
errors.push("session_id is required");
|
|
160
|
+
}
|
|
161
|
+
// Warn if closing reflection provided for quick close
|
|
162
|
+
if (params.closing_reflection) {
|
|
163
|
+
warnings.push("closing_reflection provided for quick close - consider using standard close");
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
valid: errors.length === 0,
|
|
167
|
+
errors,
|
|
168
|
+
warnings,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Validate autonomous close parameters (CODA-1)
|
|
173
|
+
*/
|
|
174
|
+
function validateAutonomousClose(params) {
|
|
175
|
+
const errors = [];
|
|
176
|
+
const warnings = [];
|
|
177
|
+
// Autonomous close generates its own reflection
|
|
178
|
+
if (!params.session_id) {
|
|
179
|
+
errors.push("session_id is required");
|
|
180
|
+
}
|
|
181
|
+
// closing_reflection is optional for autonomous - agent generates it
|
|
182
|
+
// human_corrections should not be present for autonomous
|
|
183
|
+
if (params.human_corrections) {
|
|
184
|
+
warnings.push("human_corrections provided for autonomous close - this will be ignored");
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
valid: errors.length === 0,
|
|
188
|
+
errors,
|
|
189
|
+
warnings,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Validate retroactive close parameters
|
|
194
|
+
*/
|
|
195
|
+
function validateRetroactiveClose(params) {
|
|
196
|
+
const errors = [];
|
|
197
|
+
const warnings = [];
|
|
198
|
+
// Retroactive close SHOULD have closing_reflection or decisions
|
|
199
|
+
// but we allow minimal retroactive closes (better than nothing)
|
|
200
|
+
if (!params.closing_reflection && (!params.decisions || params.decisions.length === 0)) {
|
|
201
|
+
warnings.push("Retroactive close has no closing_reflection or decisions - session will have minimal content");
|
|
202
|
+
}
|
|
203
|
+
// session_id is optional for retroactive - will be generated if not provided
|
|
204
|
+
// but if provided, it will be used
|
|
205
|
+
if (params.session_id) {
|
|
206
|
+
warnings.push("session_id provided for retroactive close - this will be ignored, a new ID will be generated");
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
valid: true, // Retroactive closes are always valid (recovery path)
|
|
210
|
+
errors,
|
|
211
|
+
warnings,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Validate session close parameters based on close type
|
|
216
|
+
*/
|
|
217
|
+
export function validateSessionClose(params) {
|
|
218
|
+
const closeType = params.close_type || "standard";
|
|
219
|
+
switch (closeType) {
|
|
220
|
+
case "standard":
|
|
221
|
+
return validateStandardClose(params);
|
|
222
|
+
case "quick":
|
|
223
|
+
return validateQuickClose(params);
|
|
224
|
+
case "autonomous":
|
|
225
|
+
return validateAutonomousClose(params);
|
|
226
|
+
case "retroactive":
|
|
227
|
+
return validateRetroactiveClose(params);
|
|
228
|
+
default:
|
|
229
|
+
return {
|
|
230
|
+
valid: false,
|
|
231
|
+
errors: [`Unknown close_type: ${closeType}`],
|
|
232
|
+
warnings: [],
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Build close_compliance object from validated params
|
|
238
|
+
*/
|
|
239
|
+
export function buildCloseCompliance(params, agentIdentity, learningsCount) {
|
|
240
|
+
const closeType = params.close_type || "standard";
|
|
241
|
+
const scarsApplied = params.closing_reflection?.scars_applied?.length || 0;
|
|
242
|
+
const compliance = {
|
|
243
|
+
close_type: closeType,
|
|
244
|
+
agent: agentIdentity,
|
|
245
|
+
checklist_displayed: true,
|
|
246
|
+
questions_answered_by_agent: closeType !== "quick",
|
|
247
|
+
human_asked_for_corrections: closeType === "standard" && params.human_corrections !== undefined,
|
|
248
|
+
learnings_stored: learningsCount,
|
|
249
|
+
scars_applied: scarsApplied,
|
|
250
|
+
};
|
|
251
|
+
// Mark retroactive closes for tracking
|
|
252
|
+
if (closeType === "retroactive") {
|
|
253
|
+
compliance.retroactive = true;
|
|
254
|
+
}
|
|
255
|
+
return compliance;
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=compliance-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-validator.js","sourceRoot":"","sources":["../../src/services/compliance-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitMem Configuration Service
|
|
3
|
+
*
|
|
4
|
+
* Manages configuration for search mode (local vs remote),
|
|
5
|
+
* cache settings, and Supabase detection.
|
|
6
|
+
*
|
|
7
|
+
* Environment Variables:
|
|
8
|
+
* - GITMEM_SEARCH_MODE: "local" | "remote" | "auto" (default: "auto")
|
|
9
|
+
* - GITMEM_CACHE_TTL_MINUTES: Minutes before cache refresh (default: 15)
|
|
10
|
+
* - GITMEM_STALE_CHECK: "true" | "false" - Check for stale data (default: "true")
|
|
11
|
+
* - SUPABASE_URL: Supabase project URL
|
|
12
|
+
*
|
|
13
|
+
* Issue: OD-473
|
|
14
|
+
*/
|
|
15
|
+
import type { GitMemTier } from "./tier.js";
|
|
16
|
+
export type SearchMode = "local" | "remote" | "auto";
|
|
17
|
+
export interface GitMemConfig {
|
|
18
|
+
tier: GitMemTier;
|
|
19
|
+
tablePrefix: string;
|
|
20
|
+
searchMode: SearchMode;
|
|
21
|
+
resolvedSearchMode: "local" | "remote";
|
|
22
|
+
cacheTtlMinutes: number;
|
|
23
|
+
staleCheckEnabled: boolean;
|
|
24
|
+
supabaseUrl: string;
|
|
25
|
+
isCloudSupabase: boolean;
|
|
26
|
+
isOnPremSupabase: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load configuration from environment
|
|
30
|
+
*/
|
|
31
|
+
export declare function loadConfig(): GitMemConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Get the configuration (loads once, caches)
|
|
34
|
+
*/
|
|
35
|
+
export declare function getConfig(): GitMemConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Reload configuration (for testing or dynamic updates)
|
|
38
|
+
*/
|
|
39
|
+
export declare function reloadConfig(): GitMemConfig;
|
|
40
|
+
/**
|
|
41
|
+
* Check if local search should be used
|
|
42
|
+
*/
|
|
43
|
+
export declare function shouldUseLocalSearch(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Check if remote search should be used
|
|
46
|
+
*/
|
|
47
|
+
export declare function shouldUseRemoteSearch(): boolean;
|
|
48
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,YAAY;IAE3B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAGvC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAG3B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAqDD;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAsCzC;AAKD;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAKxC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,YAAY,CAG3C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitMem Configuration Service
|
|
3
|
+
*
|
|
4
|
+
* Manages configuration for search mode (local vs remote),
|
|
5
|
+
* cache settings, and Supabase detection.
|
|
6
|
+
*
|
|
7
|
+
* Environment Variables:
|
|
8
|
+
* - GITMEM_SEARCH_MODE: "local" | "remote" | "auto" (default: "auto")
|
|
9
|
+
* - GITMEM_CACHE_TTL_MINUTES: Minutes before cache refresh (default: 15)
|
|
10
|
+
* - GITMEM_STALE_CHECK: "true" | "false" - Check for stale data (default: "true")
|
|
11
|
+
* - SUPABASE_URL: Supabase project URL
|
|
12
|
+
*
|
|
13
|
+
* Issue: OD-473
|
|
14
|
+
*/
|
|
15
|
+
import { getTier, hasSupabase, getTablePrefix } from "./tier.js";
|
|
16
|
+
// Private IP patterns for on-prem detection
|
|
17
|
+
const PRIVATE_IP_PATTERNS = [
|
|
18
|
+
/^https?:\/\/localhost/,
|
|
19
|
+
/^https?:\/\/127\./,
|
|
20
|
+
/^https?:\/\/10\./,
|
|
21
|
+
/^https?:\/\/172\.(1[6-9]|2[0-9]|3[0-1])\./,
|
|
22
|
+
/^https?:\/\/192\.168\./,
|
|
23
|
+
/^https?:\/\/\[::1\]/,
|
|
24
|
+
/^https?:\/\/\[fe80:/,
|
|
25
|
+
];
|
|
26
|
+
// Cloud Supabase pattern
|
|
27
|
+
const CLOUD_SUPABASE_PATTERN = /\.supabase\.co/;
|
|
28
|
+
/**
|
|
29
|
+
* Detect if URL points to cloud Supabase
|
|
30
|
+
*/
|
|
31
|
+
function isCloudSupabaseUrl(url) {
|
|
32
|
+
return CLOUD_SUPABASE_PATTERN.test(url);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Detect if URL points to on-prem/local Supabase
|
|
36
|
+
*/
|
|
37
|
+
function isOnPremSupabaseUrl(url) {
|
|
38
|
+
return PRIVATE_IP_PATTERNS.some((pattern) => pattern.test(url));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve "auto" search mode based on Supabase URL
|
|
42
|
+
*/
|
|
43
|
+
function resolveSearchMode(mode, supabaseUrl) {
|
|
44
|
+
if (mode === "local")
|
|
45
|
+
return "local";
|
|
46
|
+
if (mode === "remote")
|
|
47
|
+
return "remote";
|
|
48
|
+
// Auto-detect based on URL
|
|
49
|
+
if (isCloudSupabaseUrl(supabaseUrl)) {
|
|
50
|
+
// Cloud Supabase = use local search to reduce API calls and latency
|
|
51
|
+
return "local";
|
|
52
|
+
}
|
|
53
|
+
if (isOnPremSupabaseUrl(supabaseUrl)) {
|
|
54
|
+
// On-prem Supabase = query directly, it's fast and always fresh
|
|
55
|
+
return "remote";
|
|
56
|
+
}
|
|
57
|
+
// Unknown URL pattern, default to local for safety
|
|
58
|
+
console.warn(`[config] Unknown Supabase URL pattern: ${supabaseUrl}, defaulting to local search`);
|
|
59
|
+
return "local";
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Load configuration from environment
|
|
63
|
+
*/
|
|
64
|
+
export function loadConfig() {
|
|
65
|
+
const tier = getTier();
|
|
66
|
+
const tablePrefix = getTablePrefix();
|
|
67
|
+
const supabaseUrl = process.env.SUPABASE_URL || "";
|
|
68
|
+
const searchModeEnv = (process.env.GITMEM_SEARCH_MODE || "auto").toLowerCase();
|
|
69
|
+
const cacheTtlMinutes = parseInt(process.env.GITMEM_CACHE_TTL_MINUTES || "15", 10);
|
|
70
|
+
const staleCheckEnabled = process.env.GITMEM_STALE_CHECK !== "false";
|
|
71
|
+
// Validate search mode
|
|
72
|
+
const searchMode = ["local", "remote", "auto"].includes(searchModeEnv)
|
|
73
|
+
? searchModeEnv
|
|
74
|
+
: "auto";
|
|
75
|
+
// Free tier: always local, no Supabase detection needed
|
|
76
|
+
const isCloud = hasSupabase() ? isCloudSupabaseUrl(supabaseUrl) : false;
|
|
77
|
+
const isOnPrem = hasSupabase() ? isOnPremSupabaseUrl(supabaseUrl) : false;
|
|
78
|
+
const resolvedMode = hasSupabase() ? resolveSearchMode(searchMode, supabaseUrl) : "local";
|
|
79
|
+
const config = {
|
|
80
|
+
tier,
|
|
81
|
+
tablePrefix,
|
|
82
|
+
searchMode,
|
|
83
|
+
resolvedSearchMode: resolvedMode,
|
|
84
|
+
cacheTtlMinutes: Math.max(1, cacheTtlMinutes),
|
|
85
|
+
staleCheckEnabled,
|
|
86
|
+
supabaseUrl,
|
|
87
|
+
isCloudSupabase: isCloud,
|
|
88
|
+
isOnPremSupabase: isOnPrem,
|
|
89
|
+
};
|
|
90
|
+
console.error(`[config] Tier: ${tier} | Table prefix: ${tablePrefix}`);
|
|
91
|
+
console.error(`[config] Search mode: ${searchMode} → ${resolvedMode}`);
|
|
92
|
+
if (hasSupabase()) {
|
|
93
|
+
console.error(`[config] Supabase: ${isCloud ? "cloud" : isOnPrem ? "on-prem" : "unknown"}`);
|
|
94
|
+
}
|
|
95
|
+
console.error(`[config] Cache TTL: ${cacheTtlMinutes} minutes, Stale check: ${staleCheckEnabled}`);
|
|
96
|
+
return config;
|
|
97
|
+
}
|
|
98
|
+
// Singleton config instance
|
|
99
|
+
let configInstance = null;
|
|
100
|
+
/**
|
|
101
|
+
* Get the configuration (loads once, caches)
|
|
102
|
+
*/
|
|
103
|
+
export function getConfig() {
|
|
104
|
+
if (!configInstance) {
|
|
105
|
+
configInstance = loadConfig();
|
|
106
|
+
}
|
|
107
|
+
return configInstance;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Reload configuration (for testing or dynamic updates)
|
|
111
|
+
*/
|
|
112
|
+
export function reloadConfig() {
|
|
113
|
+
configInstance = loadConfig();
|
|
114
|
+
return configInstance;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Check if local search should be used
|
|
118
|
+
*/
|
|
119
|
+
export function shouldUseLocalSearch() {
|
|
120
|
+
return getConfig().resolvedSearchMode === "local";
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Check if remote search should be used
|
|
124
|
+
*/
|
|
125
|
+
export function shouldUseRemoteSearch() {
|
|
126
|
+
return getConfig().resolvedSearchMode === "remote";
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Service — Multi-provider embedding abstraction
|
|
3
|
+
*
|
|
4
|
+
* Generates text embeddings for semantic search using multiple providers.
|
|
5
|
+
* Auto-detects provider from available API keys.
|
|
6
|
+
*
|
|
7
|
+
* Provider detection (in priority order):
|
|
8
|
+
* GITMEM_EMBEDDING_PROVIDER=openai|openrouter|ollama — force provider
|
|
9
|
+
* OPENAI_API_KEY → OpenAI direct (text-embedding-3-small)
|
|
10
|
+
* OPENROUTER_API_KEY → OpenRouter (text-embedding-3-small via openrouter.ai)
|
|
11
|
+
* OLLAMA_URL → Ollama local (nomic-embed-text, 768-dim — requires pgvector dimension match)
|
|
12
|
+
*
|
|
13
|
+
* If no provider is configured, embed() returns null (graceful degradation).
|
|
14
|
+
* Records stored without embeddings can still be retrieved by ID/filters,
|
|
15
|
+
* but won't appear in semantic search results.
|
|
16
|
+
*/
|
|
17
|
+
export type EmbeddingProvider = "openai" | "openrouter" | "ollama" | "none";
|
|
18
|
+
interface EmbeddingConfig {
|
|
19
|
+
provider: EmbeddingProvider;
|
|
20
|
+
apiUrl: string;
|
|
21
|
+
apiKey: string;
|
|
22
|
+
model: string;
|
|
23
|
+
expectedDim: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Detect the best available embedding provider from environment
|
|
27
|
+
*/
|
|
28
|
+
export declare function detectProvider(): EmbeddingConfig;
|
|
29
|
+
/**
|
|
30
|
+
* Get the current embedding configuration (cached)
|
|
31
|
+
*/
|
|
32
|
+
export declare function getEmbeddingConfig(): EmbeddingConfig;
|
|
33
|
+
/**
|
|
34
|
+
* Reset cached config (for testing)
|
|
35
|
+
*/
|
|
36
|
+
export declare function resetEmbeddingConfig(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Generate an embedding for the given text.
|
|
39
|
+
*
|
|
40
|
+
* Returns normalized embedding vector, or null if no provider is configured.
|
|
41
|
+
* Throws on API errors (network, auth, rate limit).
|
|
42
|
+
*/
|
|
43
|
+
export declare function embed(text: string): Promise<number[] | null>;
|
|
44
|
+
/**
|
|
45
|
+
* Get the expected embedding dimension for the current provider.
|
|
46
|
+
* Returns 0 if no provider configured.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getEmbeddingDim(): number;
|
|
49
|
+
/**
|
|
50
|
+
* Check if embedding generation is available.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isEmbeddingAvailable(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Get the current provider name.
|
|
55
|
+
*/
|
|
56
|
+
export declare function getProviderName(): EmbeddingProvider;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=embedding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../src/services/embedding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAeH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5E,UAAU,eAAe;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAiBD;;GAEG;AACH,wBAAgB,cAAc,IAAI,eAAe,CAmFhD;AAKD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAUpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAiED;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CA8BlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAEnD"}
|