@jagilber-org/index-server 1.19.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/CHANGELOG.md +1218 -0
- package/CODE_OF_CONDUCT.md +49 -0
- package/CONTRIBUTING.md +75 -0
- package/LICENSE +21 -0
- package/README.md +523 -0
- package/SECURITY.md +50 -0
- package/dist/config/configUtils.d.ts +11 -0
- package/dist/config/configUtils.js +87 -0
- package/dist/config/dashboardConfig.d.ts +45 -0
- package/dist/config/dashboardConfig.js +63 -0
- package/dist/config/defaultValues.d.ts +61 -0
- package/dist/config/defaultValues.js +70 -0
- package/dist/config/dirConstants.d.ts +17 -0
- package/dist/config/dirConstants.js +28 -0
- package/dist/config/featureConfig.d.ts +61 -0
- package/dist/config/featureConfig.js +121 -0
- package/dist/config/runtimeConfig.d.ts +145 -0
- package/dist/config/runtimeConfig.js +334 -0
- package/dist/config/serverConfig.d.ts +90 -0
- package/dist/config/serverConfig.js +164 -0
- package/dist/dashboard/analytics/AnalyticsEngine.d.ts +142 -0
- package/dist/dashboard/analytics/AnalyticsEngine.js +373 -0
- package/dist/dashboard/analytics/BusinessIntelligence.d.ts +187 -0
- package/dist/dashboard/analytics/BusinessIntelligence.js +594 -0
- package/dist/dashboard/client/admin.html +2150 -0
- package/dist/dashboard/client/chunks/mermaid-layout-elk.esm.min/chunk-SP2CHFBE.mjs +1 -0
- package/dist/dashboard/client/chunks/mermaid-layout-elk.esm.min/render-T6MDALS3.mjs +27 -0
- package/dist/dashboard/client/css/admin.css +1466 -0
- package/dist/dashboard/client/js/admin.boot.js +359 -0
- package/dist/dashboard/client/js/admin.config.js +196 -0
- package/dist/dashboard/client/js/admin.embeddings.js +425 -0
- package/dist/dashboard/client/js/admin.graph.js +583 -0
- package/dist/dashboard/client/js/admin.instances.js +120 -0
- package/dist/dashboard/client/js/admin.instructions.js +552 -0
- package/dist/dashboard/client/js/admin.logs.js +113 -0
- package/dist/dashboard/client/js/admin.maintenance.js +354 -0
- package/dist/dashboard/client/js/admin.messaging.js +635 -0
- package/dist/dashboard/client/js/admin.monitor.js +181 -0
- package/dist/dashboard/client/js/admin.overview.js +221 -0
- package/dist/dashboard/client/js/admin.performance.js +61 -0
- package/dist/dashboard/client/js/admin.sessions.js +293 -0
- package/dist/dashboard/client/js/admin.sqlite.js +366 -0
- package/dist/dashboard/client/js/admin.utils.js +49 -0
- package/dist/dashboard/client/js/chart.umd.js +14 -0
- package/dist/dashboard/client/js/elk.bundled.js +6696 -0
- package/dist/dashboard/client/js/marked.umd.js +74 -0
- package/dist/dashboard/client/js/mermaid.min.js +3022 -0
- package/dist/dashboard/client/mermaid-layout-elk.esm.min.mjs +1 -0
- package/dist/dashboard/export/DataExporter.d.ts +169 -0
- package/dist/dashboard/export/DataExporter.js +737 -0
- package/dist/dashboard/export/exporters/csvExporter.d.ts +11 -0
- package/dist/dashboard/export/exporters/csvExporter.js +46 -0
- package/dist/dashboard/export/exporters/exportTypes.d.ts +89 -0
- package/dist/dashboard/export/exporters/exportTypes.js +5 -0
- package/dist/dashboard/export/exporters/jsonExporter.d.ts +7 -0
- package/dist/dashboard/export/exporters/jsonExporter.js +22 -0
- package/dist/dashboard/export/exporters/xmlExporter.d.ts +17 -0
- package/dist/dashboard/export/exporters/xmlExporter.js +175 -0
- package/dist/dashboard/integration/APIIntegration.d.ts +41 -0
- package/dist/dashboard/integration/APIIntegration.js +95 -0
- package/dist/dashboard/security/SecurityMonitor.d.ts +167 -0
- package/dist/dashboard/security/SecurityMonitor.js +559 -0
- package/dist/dashboard/server/AdminPanel.d.ts +183 -0
- package/dist/dashboard/server/AdminPanel.js +792 -0
- package/dist/dashboard/server/AdminPanelConfig.d.ts +42 -0
- package/dist/dashboard/server/AdminPanelConfig.js +80 -0
- package/dist/dashboard/server/AdminPanelState.d.ts +47 -0
- package/dist/dashboard/server/AdminPanelState.js +214 -0
- package/dist/dashboard/server/ApiRoutes.d.ts +17 -0
- package/dist/dashboard/server/ApiRoutes.js +149 -0
- package/dist/dashboard/server/DashboardServer.d.ts +49 -0
- package/dist/dashboard/server/DashboardServer.js +159 -0
- package/dist/dashboard/server/FileMetricsStorage.d.ts +49 -0
- package/dist/dashboard/server/FileMetricsStorage.js +195 -0
- package/dist/dashboard/server/HttpTransport.d.ts +23 -0
- package/dist/dashboard/server/HttpTransport.js +116 -0
- package/dist/dashboard/server/InstanceManager.d.ts +53 -0
- package/dist/dashboard/server/InstanceManager.js +284 -0
- package/dist/dashboard/server/KnowledgeStore.d.ts +35 -0
- package/dist/dashboard/server/KnowledgeStore.js +105 -0
- package/dist/dashboard/server/LeaderElection.d.ts +81 -0
- package/dist/dashboard/server/LeaderElection.js +268 -0
- package/dist/dashboard/server/MetricsCollector.d.ts +200 -0
- package/dist/dashboard/server/MetricsCollector.js +803 -0
- package/dist/dashboard/server/SessionPersistenceManager.d.ts +88 -0
- package/dist/dashboard/server/SessionPersistenceManager.js +457 -0
- package/dist/dashboard/server/ThinClient.d.ts +64 -0
- package/dist/dashboard/server/ThinClient.js +237 -0
- package/dist/dashboard/server/WebSocketManager.d.ts +161 -0
- package/dist/dashboard/server/WebSocketManager.js +463 -0
- package/dist/dashboard/server/httpLifecycle.d.ts +17 -0
- package/dist/dashboard/server/httpLifecycle.js +35 -0
- package/dist/dashboard/server/legacyDashboardHtml.d.ts +9 -0
- package/dist/dashboard/server/legacyDashboardHtml.js +618 -0
- package/dist/dashboard/server/legacyDashboardStyles.d.ts +5 -0
- package/dist/dashboard/server/legacyDashboardStyles.js +490 -0
- package/dist/dashboard/server/metricsAggregation.d.ts +252 -0
- package/dist/dashboard/server/metricsAggregation.js +206 -0
- package/dist/dashboard/server/metricsSerializer.d.ts +25 -0
- package/dist/dashboard/server/metricsSerializer.js +195 -0
- package/dist/dashboard/server/routes/admin.routes.d.ts +16 -0
- package/dist/dashboard/server/routes/admin.routes.js +596 -0
- package/dist/dashboard/server/routes/alerts.routes.d.ts +7 -0
- package/dist/dashboard/server/routes/alerts.routes.js +93 -0
- package/dist/dashboard/server/routes/api.feedback.routes.d.ts +73 -0
- package/dist/dashboard/server/routes/api.feedback.routes.js +171 -0
- package/dist/dashboard/server/routes/api.instructions.routes.d.ts +101 -0
- package/dist/dashboard/server/routes/api.instructions.routes.js +213 -0
- package/dist/dashboard/server/routes/api.usage.routes.d.ts +57 -0
- package/dist/dashboard/server/routes/api.usage.routes.js +374 -0
- package/dist/dashboard/server/routes/embeddings.routes.d.ts +6 -0
- package/dist/dashboard/server/routes/embeddings.routes.js +246 -0
- package/dist/dashboard/server/routes/graph.routes.d.ts +6 -0
- package/dist/dashboard/server/routes/graph.routes.js +280 -0
- package/dist/dashboard/server/routes/index.d.ts +38 -0
- package/dist/dashboard/server/routes/index.js +194 -0
- package/dist/dashboard/server/routes/instances.routes.d.ts +6 -0
- package/dist/dashboard/server/routes/instances.routes.js +35 -0
- package/dist/dashboard/server/routes/instructions.routes.d.ts +8 -0
- package/dist/dashboard/server/routes/instructions.routes.js +336 -0
- package/dist/dashboard/server/routes/knowledge.routes.d.ts +6 -0
- package/dist/dashboard/server/routes/knowledge.routes.js +82 -0
- package/dist/dashboard/server/routes/logs.routes.d.ts +6 -0
- package/dist/dashboard/server/routes/logs.routes.js +164 -0
- package/dist/dashboard/server/routes/messaging.routes.d.ts +16 -0
- package/dist/dashboard/server/routes/messaging.routes.js +293 -0
- package/dist/dashboard/server/routes/metrics.routes.d.ts +10 -0
- package/dist/dashboard/server/routes/metrics.routes.js +346 -0
- package/dist/dashboard/server/routes/scripts.routes.d.ts +9 -0
- package/dist/dashboard/server/routes/scripts.routes.js +84 -0
- package/dist/dashboard/server/routes/sqlite.routes.d.ts +9 -0
- package/dist/dashboard/server/routes/sqlite.routes.js +569 -0
- package/dist/dashboard/server/routes/status.routes.d.ts +7 -0
- package/dist/dashboard/server/routes/status.routes.js +183 -0
- package/dist/dashboard/server/routes/synthetic.routes.d.ts +7 -0
- package/dist/dashboard/server/routes/synthetic.routes.js +195 -0
- package/dist/dashboard/server/routes/tools.routes.d.ts +6 -0
- package/dist/dashboard/server/routes/tools.routes.js +46 -0
- package/dist/dashboard/server/routes/usage.routes.d.ts +6 -0
- package/dist/dashboard/server/routes/usage.routes.js +25 -0
- package/dist/dashboard/server/wsInit.d.ts +16 -0
- package/dist/dashboard/server/wsInit.js +35 -0
- package/dist/externalClientLib.d.ts +1 -0
- package/dist/externalClientLib.js +2 -0
- package/dist/minimal/index.d.ts +1 -0
- package/dist/minimal/index.js +140 -0
- package/dist/models/SessionPersistence.d.ts +115 -0
- package/dist/models/SessionPersistence.js +66 -0
- package/dist/models/instruction.d.ts +45 -0
- package/dist/models/instruction.js +2 -0
- package/dist/perf/benchmark.d.ts +1 -0
- package/dist/perf/benchmark.js +50 -0
- package/dist/portableClientWrapper.d.ts +1 -0
- package/dist/portableClientWrapper.js +2 -0
- package/dist/schemas/index.d.ts +128 -0
- package/dist/schemas/index.js +371 -0
- package/dist/scripts/runPerformanceBaseline.d.ts +1 -0
- package/dist/scripts/runPerformanceBaseline.js +17 -0
- package/dist/server/handshakeManager.d.ts +25 -0
- package/dist/server/handshakeManager.js +472 -0
- package/dist/server/index-server.d.ts +56 -0
- package/dist/server/index-server.js +822 -0
- package/dist/server/registry.d.ts +44 -0
- package/dist/server/registry.js +236 -0
- package/dist/server/sdkServer.d.ts +8 -0
- package/dist/server/sdkServer.js +299 -0
- package/dist/server/shutdownGuard.d.ts +41 -0
- package/dist/server/shutdownGuard.js +52 -0
- package/dist/server/thin-client.d.ts +22 -0
- package/dist/server/thin-client.js +111 -0
- package/dist/server/transport.d.ts +41 -0
- package/dist/server/transport.js +312 -0
- package/dist/server/transportFactory.d.ts +21 -0
- package/dist/server/transportFactory.js +429 -0
- package/dist/services/atomicFs.d.ts +22 -0
- package/dist/services/atomicFs.js +103 -0
- package/dist/services/auditLog.d.ts +38 -0
- package/dist/services/auditLog.js +142 -0
- package/dist/services/autoBackup.d.ts +14 -0
- package/dist/services/autoBackup.js +171 -0
- package/dist/services/autoSplit.d.ts +32 -0
- package/dist/services/autoSplit.js +113 -0
- package/dist/services/backupZip.d.ts +25 -0
- package/dist/services/backupZip.js +110 -0
- package/dist/services/bootstrapGating.d.ts +123 -0
- package/dist/services/bootstrapGating.js +221 -0
- package/dist/services/canonical.d.ts +23 -0
- package/dist/services/canonical.js +65 -0
- package/dist/services/categoryRules.d.ts +7 -0
- package/dist/services/categoryRules.js +37 -0
- package/dist/services/classificationService.d.ts +42 -0
- package/dist/services/classificationService.js +168 -0
- package/dist/services/embeddingService.d.ts +62 -0
- package/dist/services/embeddingService.js +259 -0
- package/dist/services/errors.d.ts +22 -0
- package/dist/services/errors.js +31 -0
- package/dist/services/featureFlags.d.ts +25 -0
- package/dist/services/featureFlags.js +89 -0
- package/dist/services/features.d.ts +13 -0
- package/dist/services/features.js +35 -0
- package/dist/services/handlers/instructions.add.d.ts +1 -0
- package/dist/services/handlers/instructions.add.js +496 -0
- package/dist/services/handlers/instructions.groom.d.ts +1 -0
- package/dist/services/handlers/instructions.groom.js +523 -0
- package/dist/services/handlers/instructions.import.d.ts +1 -0
- package/dist/services/handlers/instructions.import.js +173 -0
- package/dist/services/handlers/instructions.patch.d.ts +1 -0
- package/dist/services/handlers/instructions.patch.js +167 -0
- package/dist/services/handlers/instructions.query.d.ts +163 -0
- package/dist/services/handlers/instructions.query.js +522 -0
- package/dist/services/handlers/instructions.reload.d.ts +1 -0
- package/dist/services/handlers/instructions.reload.js +13 -0
- package/dist/services/handlers/instructions.remove.d.ts +1 -0
- package/dist/services/handlers/instructions.remove.js +118 -0
- package/dist/services/handlers/instructions.shared.d.ts +31 -0
- package/dist/services/handlers/instructions.shared.js +124 -0
- package/dist/services/handlers.activation.d.ts +1 -0
- package/dist/services/handlers.activation.js +203 -0
- package/dist/services/handlers.bootstrap.d.ts +1 -0
- package/dist/services/handlers.bootstrap.js +38 -0
- package/dist/services/handlers.dashboardConfig.d.ts +34 -0
- package/dist/services/handlers.dashboardConfig.js +108 -0
- package/dist/services/handlers.diagnostics.d.ts +1 -0
- package/dist/services/handlers.diagnostics.js +64 -0
- package/dist/services/handlers.feedback.d.ts +15 -0
- package/dist/services/handlers.feedback.js +378 -0
- package/dist/services/handlers.gates.d.ts +1 -0
- package/dist/services/handlers.gates.js +46 -0
- package/dist/services/handlers.graph.d.ts +53 -0
- package/dist/services/handlers.graph.js +231 -0
- package/dist/services/handlers.help.d.ts +1 -0
- package/dist/services/handlers.help.js +119 -0
- package/dist/services/handlers.instructionSchema.d.ts +1 -0
- package/dist/services/handlers.instructionSchema.js +227 -0
- package/dist/services/handlers.instructions.d.ts +8 -0
- package/dist/services/handlers.instructions.js +14 -0
- package/dist/services/handlers.instructionsDiagnostics.d.ts +1 -0
- package/dist/services/handlers.instructionsDiagnostics.js +14 -0
- package/dist/services/handlers.integrity.d.ts +1 -0
- package/dist/services/handlers.integrity.js +35 -0
- package/dist/services/handlers.manifest.d.ts +1 -0
- package/dist/services/handlers.manifest.js +24 -0
- package/dist/services/handlers.messaging.d.ts +12 -0
- package/dist/services/handlers.messaging.js +203 -0
- package/dist/services/handlers.metrics.d.ts +1 -0
- package/dist/services/handlers.metrics.js +43 -0
- package/dist/services/handlers.promote.d.ts +1 -0
- package/dist/services/handlers.promote.js +306 -0
- package/dist/services/handlers.prompt.d.ts +1 -0
- package/dist/services/handlers.prompt.js +7 -0
- package/dist/services/handlers.search.d.ts +69 -0
- package/dist/services/handlers.search.js +645 -0
- package/dist/services/handlers.testPrimitive.d.ts +1 -0
- package/dist/services/handlers.testPrimitive.js +5 -0
- package/dist/services/handlers.trace.d.ts +1 -0
- package/dist/services/handlers.trace.js +31 -0
- package/dist/services/handlers.usage.d.ts +1 -0
- package/dist/services/handlers.usage.js +11 -0
- package/dist/services/hotScore.d.ts +137 -0
- package/dist/services/hotScore.js +244 -0
- package/dist/services/indexContext.d.ts +117 -0
- package/dist/services/indexContext.js +968 -0
- package/dist/services/indexLoader.d.ts +44 -0
- package/dist/services/indexLoader.js +921 -0
- package/dist/services/indexRepository.d.ts +32 -0
- package/dist/services/indexRepository.js +71 -0
- package/dist/services/indexingService.d.ts +1 -0
- package/dist/services/indexingService.js +2 -0
- package/dist/services/instructions.dispatcher.d.ts +1 -0
- package/dist/services/instructions.dispatcher.js +231 -0
- package/dist/services/logPrefix.d.ts +1 -0
- package/dist/services/logPrefix.js +30 -0
- package/dist/services/logger.d.ts +52 -0
- package/dist/services/logger.js +268 -0
- package/dist/services/manifestManager.d.ts +82 -0
- package/dist/services/manifestManager.js +200 -0
- package/dist/services/messaging/agentMailbox.d.ts +60 -0
- package/dist/services/messaging/agentMailbox.js +353 -0
- package/dist/services/messaging/messagingPersistence.d.ts +20 -0
- package/dist/services/messaging/messagingPersistence.js +111 -0
- package/dist/services/messaging/messagingTypes.d.ts +150 -0
- package/dist/services/messaging/messagingTypes.js +66 -0
- package/dist/services/ownershipService.d.ts +1 -0
- package/dist/services/ownershipService.js +38 -0
- package/dist/services/performanceBaseline.d.ts +19 -0
- package/dist/services/performanceBaseline.js +210 -0
- package/dist/services/preflight.d.ts +12 -0
- package/dist/services/preflight.js +79 -0
- package/dist/services/promptReviewService.d.ts +44 -0
- package/dist/services/promptReviewService.js +101 -0
- package/dist/services/responseEnvelope.d.ts +6 -0
- package/dist/services/responseEnvelope.js +25 -0
- package/dist/services/seedBootstrap.d.ts +34 -0
- package/dist/services/seedBootstrap.js +427 -0
- package/dist/services/storage/factory.d.ts +17 -0
- package/dist/services/storage/factory.js +35 -0
- package/dist/services/storage/hashUtils.d.ts +11 -0
- package/dist/services/storage/hashUtils.js +35 -0
- package/dist/services/storage/index.d.ts +12 -0
- package/dist/services/storage/index.js +18 -0
- package/dist/services/storage/jsonFileStore.d.ts +32 -0
- package/dist/services/storage/jsonFileStore.js +241 -0
- package/dist/services/storage/migrationEngine.d.ts +35 -0
- package/dist/services/storage/migrationEngine.js +93 -0
- package/dist/services/storage/sqliteMessageStore.d.ts +53 -0
- package/dist/services/storage/sqliteMessageStore.js +146 -0
- package/dist/services/storage/sqliteSchema.d.ts +12 -0
- package/dist/services/storage/sqliteSchema.js +122 -0
- package/dist/services/storage/sqliteStore.d.ts +41 -0
- package/dist/services/storage/sqliteStore.js +339 -0
- package/dist/services/storage/sqliteUsageStore.d.ts +35 -0
- package/dist/services/storage/sqliteUsageStore.js +94 -0
- package/dist/services/storage/types.d.ts +171 -0
- package/dist/services/storage/types.js +12 -0
- package/dist/services/toolHandlers.d.ts +23 -0
- package/dist/services/toolHandlers.js +50 -0
- package/dist/services/toolRegistry.d.ts +20 -0
- package/dist/services/toolRegistry.js +490 -0
- package/dist/services/toolRegistry.zod.d.ts +10 -0
- package/dist/services/toolRegistry.zod.js +323 -0
- package/dist/services/tracing.d.ts +26 -0
- package/dist/services/tracing.js +260 -0
- package/dist/services/usageBuckets.d.ts +161 -0
- package/dist/services/usageBuckets.js +364 -0
- package/dist/services/validationService.d.ts +38 -0
- package/dist/services/validationService.js +125 -0
- package/dist/utils/BufferRing.d.ts +203 -0
- package/dist/utils/BufferRing.js +551 -0
- package/dist/utils/BufferRingExamples.d.ts +55 -0
- package/dist/utils/BufferRingExamples.js +188 -0
- package/dist/utils/envUtils.d.ts +42 -0
- package/dist/utils/envUtils.js +80 -0
- package/dist/utils/memoryMonitor.d.ts +83 -0
- package/dist/utils/memoryMonitor.js +275 -0
- package/dist/versioning/schemaVersion.d.ts +6 -0
- package/dist/versioning/schemaVersion.js +93 -0
- package/package.json +134 -0
- package/schemas/README.md +13 -0
- package/schemas/feedback-entry.schema.json +27 -0
- package/schemas/graph-export-v2.schema.json +60 -0
- package/schemas/index-server.code-schema.json +38477 -0
- package/schemas/instruction.schema.json +262 -0
- package/schemas/json-schema/SessionPersistence-persisted-admin-session.schema.json +54 -0
- package/schemas/json-schema/SessionPersistence-persisted-session-history-entry.schema.json +51 -0
- package/schemas/json-schema/SessionPersistence-persisted-web-socket-connection.schema.json +54 -0
- package/schemas/json-schema/SessionPersistence-session-persistence-config.schema.json +110 -0
- package/schemas/json-schema/SessionPersistence-session-persistence-data.schema.json +229 -0
- package/schemas/json-schema/SessionPersistence-session-persistence-manifest.schema.json +109 -0
- package/schemas/json-schema/SessionPersistence-session-persistence-metadata.schema.json +55 -0
- package/schemas/json-schema/instruction-audience-scope.schema.json +14 -0
- package/schemas/json-schema/instruction-content-type.schema.json +17 -0
- package/schemas/json-schema/instruction-instruction-entry.schema.json +206 -0
- package/schemas/json-schema/instruction-requirement-level.schema.json +16 -0
- package/schemas/manifest.json +78 -0
- package/schemas/manifest.schema.json +33 -0
- package/schemas/usage-batch.schema.json +16 -0
- package/schemas/usage-buckets.schema.json +30 -0
- package/schemas/usage-event.schema.json +17 -0
- package/scripts/copy-dashboard-assets.mjs +170 -0
- package/scripts/setup-hooks.cjs +28 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const registry_1 = require("../server/registry");
|
|
7
|
+
const tracing_1 = require("./tracing");
|
|
8
|
+
const runtimeConfig_1 = require("../config/runtimeConfig");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
// trace_dump: writes current in-memory ring buffer (if enabled) to a file and returns summary.
|
|
12
|
+
// Params: { file?: string }
|
|
13
|
+
(0, registry_1.registerHandler)('trace_dump', (p) => {
|
|
14
|
+
const tracingCfg = (0, runtimeConfig_1.getRuntimeConfig)().tracing;
|
|
15
|
+
const fallback = path_1.default.join(process.cwd(), 'snapshots', 'trace-buffer.json');
|
|
16
|
+
const file = p?.file || tracingCfg.buffer.file || fallback;
|
|
17
|
+
(0, tracing_1.dumpTraceBufferNow)(file);
|
|
18
|
+
let size = 0;
|
|
19
|
+
let bytes = 0;
|
|
20
|
+
try {
|
|
21
|
+
if (fs_1.default.existsSync(file)) {
|
|
22
|
+
const stat = fs_1.default.statSync(file);
|
|
23
|
+
bytes = stat.size;
|
|
24
|
+
const raw = JSON.parse(fs_1.default.readFileSync(file, 'utf8'));
|
|
25
|
+
if (raw && Array.isArray(raw.records))
|
|
26
|
+
size = raw.records.length;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch { /* ignore */ }
|
|
30
|
+
return { dumped: true, file, records: size, bytes, env: (0, tracing_1.summarizeTraceEnv)(), bufferEnabled: (0, tracing_1.getTraceBuffer)().length > 0 };
|
|
31
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const registry_1 = require("../server/registry");
|
|
4
|
+
const indexContext_1 = require("./indexContext");
|
|
5
|
+
(0, registry_1.registerHandler)('usage_track', (p) => { if (!p.id)
|
|
6
|
+
return { error: 'missing id' }; const opts = { action: p.action, signal: p.signal, comment: p.comment }; const r = (0, indexContext_1.incrementUsage)(p.id, opts); if (!r)
|
|
7
|
+
return { notFound: true }; return r; });
|
|
8
|
+
(0, registry_1.registerHandler)('usage_hotset', (p) => { const st = (0, indexContext_1.ensureLoaded)(); const snap = (0, indexContext_1.loadUsageSnapshot)(); const limit = Math.max(1, Math.min(p.limit ?? 10, 100)); const items = [...st.list].filter(e => (e.usageCount ?? 0) > 0).sort((a, b) => { const ua = a.usageCount ?? 0, ub = b.usageCount ?? 0; if (ub !== ua)
|
|
9
|
+
return ub - ua; return (b.lastUsedAt || '').localeCompare(a.lastUsedAt || ''); }).slice(0, limit).map(e => { const rec = snap[e.id] || {}; const item = { id: e.id, usageCount: e.usageCount, lastUsedAt: e.lastUsedAt }; if (rec.lastSignal)
|
|
10
|
+
item.lastSignal = rec.lastSignal; if (rec.lastComment)
|
|
11
|
+
item.lastComment = rec.lastComment; return item; }); return { hash: st.hash, count: items.length, items, limit }; });
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 3: Hotness/Ranking System - Core Hot Score Algorithm
|
|
3
|
+
*
|
|
4
|
+
* Implements instruction ranking based on temporal usage patterns,
|
|
5
|
+
* recency weighting, and usage frequency with configurable decay parameters.
|
|
6
|
+
*
|
|
7
|
+
* Hot Score Formula:
|
|
8
|
+
* hotScore = (recentUsage * recencyWeight) + (historicalUsage * historyWeight) + bonuses
|
|
9
|
+
*
|
|
10
|
+
* @module HotScore
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
* @since Phase 3 Implementation
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Configuration parameters for hot score calculation
|
|
16
|
+
*/
|
|
17
|
+
export interface HotScoreConfig {
|
|
18
|
+
/** Weight for recent usage (last 24 hours). Default: 0.7 */
|
|
19
|
+
recencyWeight: number;
|
|
20
|
+
/** Weight for historical usage (beyond 24 hours). Default: 0.3 */
|
|
21
|
+
historyWeight: number;
|
|
22
|
+
/** Decay factor per hour for temporal weighting. Default: 0.95 */
|
|
23
|
+
temporalDecay: number;
|
|
24
|
+
/** Minimum score threshold for ranking inclusion. Default: 0.01 */
|
|
25
|
+
minScoreThreshold: number;
|
|
26
|
+
/** Maximum lookback hours for historical analysis. Default: 168 (7 days) */
|
|
27
|
+
maxLookbackHours: number;
|
|
28
|
+
/** Bonus points for first-time usage. Default: 0.1 */
|
|
29
|
+
firstUseBonus: number;
|
|
30
|
+
/** Bonus points for diverse usage patterns. Default: 0.05 */
|
|
31
|
+
diversityBonus: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Usage data point for hot score calculation
|
|
35
|
+
*/
|
|
36
|
+
export interface UsagePoint {
|
|
37
|
+
/** Timestamp of usage event (Unix epoch ms) */
|
|
38
|
+
timestamp: number;
|
|
39
|
+
/** Usage count at this point */
|
|
40
|
+
count: number;
|
|
41
|
+
/** Optional context metadata */
|
|
42
|
+
context?: Record<string, string | number | boolean>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Computed hot score result with breakdown
|
|
46
|
+
*/
|
|
47
|
+
export interface HotScoreResult {
|
|
48
|
+
/** Final computed hot score */
|
|
49
|
+
score: number;
|
|
50
|
+
/** Breakdown of score components */
|
|
51
|
+
breakdown: {
|
|
52
|
+
recentUsage: number;
|
|
53
|
+
historicalUsage: number;
|
|
54
|
+
recencyContribution: number;
|
|
55
|
+
historyContribution: number;
|
|
56
|
+
bonuses: number;
|
|
57
|
+
};
|
|
58
|
+
/** Ranking metadata */
|
|
59
|
+
metadata: {
|
|
60
|
+
totalUsageEvents: number;
|
|
61
|
+
uniqueHours: number;
|
|
62
|
+
firstUsage?: number;
|
|
63
|
+
lastUsage?: number;
|
|
64
|
+
usageTrend: 'increasing' | 'decreasing' | 'stable';
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Default hot score configuration optimized for enterprise usage patterns
|
|
69
|
+
*/
|
|
70
|
+
export declare const DEFAULT_HOT_SCORE_CONFIG: HotScoreConfig;
|
|
71
|
+
/**
|
|
72
|
+
* Hot score calculation service
|
|
73
|
+
*
|
|
74
|
+
* Provides sophisticated instruction ranking based on temporal usage patterns
|
|
75
|
+
* with configurable weighting, decay factors, and bonus systems.
|
|
76
|
+
*/
|
|
77
|
+
export declare class HotScoreService {
|
|
78
|
+
private config;
|
|
79
|
+
/**
|
|
80
|
+
* Initialize hot score service with configuration
|
|
81
|
+
*
|
|
82
|
+
* @param config - Hot score calculation parameters
|
|
83
|
+
*/
|
|
84
|
+
constructor(config?: HotScoreConfig);
|
|
85
|
+
/**
|
|
86
|
+
* Calculate hot score for instruction based on usage history
|
|
87
|
+
*
|
|
88
|
+
* @param instructionId - Unique identifier for instruction
|
|
89
|
+
* @param usageHistory - Temporal usage data points
|
|
90
|
+
* @param currentTime - Current timestamp for recency calculation (defaults to now)
|
|
91
|
+
* @returns Hot score result with detailed breakdown
|
|
92
|
+
*/
|
|
93
|
+
calculateHotScore(instructionId: string, usageHistory: UsagePoint[], _currentTime?: number): HotScoreResult;
|
|
94
|
+
/**
|
|
95
|
+
* Calculate usage score for a specific time window with temporal decay
|
|
96
|
+
*/
|
|
97
|
+
private calculateTimeWindowUsage;
|
|
98
|
+
/**
|
|
99
|
+
* Calculate bonus points for special usage patterns
|
|
100
|
+
*/
|
|
101
|
+
private calculateBonuses;
|
|
102
|
+
/**
|
|
103
|
+
* Generate ranking metadata for analysis and debugging
|
|
104
|
+
*/
|
|
105
|
+
private generateMetadata;
|
|
106
|
+
/**
|
|
107
|
+
* Create empty result for instructions with no usage history
|
|
108
|
+
*/
|
|
109
|
+
private createEmptyResult;
|
|
110
|
+
/**
|
|
111
|
+
* Update configuration parameters
|
|
112
|
+
*
|
|
113
|
+
* @param newConfig - Updated configuration parameters
|
|
114
|
+
*/
|
|
115
|
+
updateConfig(newConfig: Partial<HotScoreConfig>): void;
|
|
116
|
+
/**
|
|
117
|
+
* Get current configuration
|
|
118
|
+
*
|
|
119
|
+
* @returns Current hot score configuration
|
|
120
|
+
*/
|
|
121
|
+
getConfig(): HotScoreConfig;
|
|
122
|
+
/**
|
|
123
|
+
* Batch calculate hot scores for multiple instructions
|
|
124
|
+
*
|
|
125
|
+
* @param instructionUsage - Map of instruction ID to usage history
|
|
126
|
+
* @param currentTime - Current timestamp for calculations
|
|
127
|
+
* @returns Map of instruction ID to hot score results
|
|
128
|
+
*/
|
|
129
|
+
calculateBatchHotScores(instructionUsage: Map<string, UsagePoint[]>, _currentTime?: number): Map<string, HotScoreResult>;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Utility function to create hot score service with default configuration
|
|
133
|
+
*
|
|
134
|
+
* @param overrides - Configuration overrides
|
|
135
|
+
* @returns Configured hot score service instance
|
|
136
|
+
*/
|
|
137
|
+
export declare function createHotScoreService(overrides?: Partial<HotScoreConfig>): HotScoreService;
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Phase 3: Hotness/Ranking System - Core Hot Score Algorithm
|
|
4
|
+
*
|
|
5
|
+
* Implements instruction ranking based on temporal usage patterns,
|
|
6
|
+
* recency weighting, and usage frequency with configurable decay parameters.
|
|
7
|
+
*
|
|
8
|
+
* Hot Score Formula:
|
|
9
|
+
* hotScore = (recentUsage * recencyWeight) + (historicalUsage * historyWeight) + bonuses
|
|
10
|
+
*
|
|
11
|
+
* @module HotScore
|
|
12
|
+
* @version 1.0.0
|
|
13
|
+
* @since Phase 3 Implementation
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.HotScoreService = exports.DEFAULT_HOT_SCORE_CONFIG = void 0;
|
|
17
|
+
exports.createHotScoreService = createHotScoreService;
|
|
18
|
+
const logger_js_1 = require("./logger.js");
|
|
19
|
+
/**
|
|
20
|
+
* Default hot score configuration optimized for enterprise usage patterns
|
|
21
|
+
*/
|
|
22
|
+
exports.DEFAULT_HOT_SCORE_CONFIG = {
|
|
23
|
+
recencyWeight: 0.7, // Favor recent activity
|
|
24
|
+
historyWeight: 0.3, // But consider historical patterns
|
|
25
|
+
temporalDecay: 0.95, // 5% decay per hour
|
|
26
|
+
minScoreThreshold: 0.01, // Filter very low scores
|
|
27
|
+
maxLookbackHours: 168, // 7 days historical window
|
|
28
|
+
firstUseBonus: 0.1, // Encourage exploration
|
|
29
|
+
diversityBonus: 0.05 // Reward varied usage
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Hot score calculation service
|
|
33
|
+
*
|
|
34
|
+
* Provides sophisticated instruction ranking based on temporal usage patterns
|
|
35
|
+
* with configurable weighting, decay factors, and bonus systems.
|
|
36
|
+
*/
|
|
37
|
+
class HotScoreService {
|
|
38
|
+
config;
|
|
39
|
+
/**
|
|
40
|
+
* Initialize hot score service with configuration
|
|
41
|
+
*
|
|
42
|
+
* @param config - Hot score calculation parameters
|
|
43
|
+
*/
|
|
44
|
+
constructor(config = exports.DEFAULT_HOT_SCORE_CONFIG) {
|
|
45
|
+
this.config = { ...config };
|
|
46
|
+
(0, logger_js_1.logInfo)('[hotScore] HotScoreService initialized', {
|
|
47
|
+
recencyWeight: this.config.recencyWeight,
|
|
48
|
+
historyWeight: this.config.historyWeight,
|
|
49
|
+
temporalDecay: this.config.temporalDecay,
|
|
50
|
+
maxLookbackHours: this.config.maxLookbackHours
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Calculate hot score for instruction based on usage history
|
|
55
|
+
*
|
|
56
|
+
* @param instructionId - Unique identifier for instruction
|
|
57
|
+
* @param usageHistory - Temporal usage data points
|
|
58
|
+
* @param currentTime - Current timestamp for recency calculation (defaults to now)
|
|
59
|
+
* @returns Hot score result with detailed breakdown
|
|
60
|
+
*/
|
|
61
|
+
calculateHotScore(instructionId, usageHistory, _currentTime = Date.now()) {
|
|
62
|
+
if (!usageHistory.length) {
|
|
63
|
+
return this.createEmptyResult();
|
|
64
|
+
}
|
|
65
|
+
const currentTime = _currentTime; // internal alias; parameter intentionally prefixed underscore to satisfy lint
|
|
66
|
+
const sortedHistory = usageHistory
|
|
67
|
+
.filter(point => point.timestamp <= currentTime)
|
|
68
|
+
.sort((a, b) => b.timestamp - a.timestamp); // Most recent first
|
|
69
|
+
const cutoffTime = currentTime - (this.config.maxLookbackHours * 60 * 60 * 1000);
|
|
70
|
+
const relevantHistory = sortedHistory.filter(point => point.timestamp >= cutoffTime);
|
|
71
|
+
if (!relevantHistory.length) {
|
|
72
|
+
return this.createEmptyResult();
|
|
73
|
+
}
|
|
74
|
+
// Calculate temporal weights and usage components
|
|
75
|
+
const recentBoundary = currentTime - (24 * 60 * 60 * 1000); // 24 hours ago
|
|
76
|
+
const recentUsage = this.calculateTimeWindowUsage(relevantHistory, recentBoundary, currentTime);
|
|
77
|
+
const historicalUsage = this.calculateTimeWindowUsage(relevantHistory, cutoffTime, recentBoundary);
|
|
78
|
+
// Apply configuration weights
|
|
79
|
+
const recencyContribution = recentUsage * this.config.recencyWeight;
|
|
80
|
+
const historyContribution = historicalUsage * this.config.historyWeight;
|
|
81
|
+
// Calculate bonuses
|
|
82
|
+
const bonuses = this.calculateBonuses(instructionId, relevantHistory, currentTime);
|
|
83
|
+
// Compute final score
|
|
84
|
+
const score = recencyContribution + historyContribution + bonuses;
|
|
85
|
+
// Generate metadata
|
|
86
|
+
const metadata = this.generateMetadata(relevantHistory, currentTime);
|
|
87
|
+
const result = {
|
|
88
|
+
score: Math.max(0, score),
|
|
89
|
+
breakdown: {
|
|
90
|
+
recentUsage,
|
|
91
|
+
historicalUsage,
|
|
92
|
+
recencyContribution,
|
|
93
|
+
historyContribution,
|
|
94
|
+
bonuses
|
|
95
|
+
},
|
|
96
|
+
metadata
|
|
97
|
+
};
|
|
98
|
+
(0, logger_js_1.logDebug)('[hotScore] Hot score calculated', {
|
|
99
|
+
instructionId,
|
|
100
|
+
score: result.score,
|
|
101
|
+
usagePoints: relevantHistory.length,
|
|
102
|
+
...result.breakdown
|
|
103
|
+
});
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Calculate usage score for a specific time window with temporal decay
|
|
108
|
+
*/
|
|
109
|
+
calculateTimeWindowUsage(history, windowStart, windowEnd) {
|
|
110
|
+
const windowHistory = history.filter(point => point.timestamp >= windowStart && point.timestamp < windowEnd);
|
|
111
|
+
if (!windowHistory.length)
|
|
112
|
+
return 0;
|
|
113
|
+
let totalScore = 0;
|
|
114
|
+
for (const point of windowHistory) {
|
|
115
|
+
const hoursFromEnd = (windowEnd - point.timestamp) / (60 * 60 * 1000);
|
|
116
|
+
const decayFactor = Math.pow(this.config.temporalDecay, hoursFromEnd);
|
|
117
|
+
totalScore += point.count * decayFactor;
|
|
118
|
+
}
|
|
119
|
+
return totalScore;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Calculate bonus points for special usage patterns
|
|
123
|
+
*/
|
|
124
|
+
calculateBonuses(instructionId, history, _currentTime) {
|
|
125
|
+
let bonuses = 0;
|
|
126
|
+
// First use bonus (encourages exploration)
|
|
127
|
+
const totalUsage = history.reduce((sum, point) => sum + point.count, 0);
|
|
128
|
+
if (totalUsage === 1) {
|
|
129
|
+
bonuses += this.config.firstUseBonus;
|
|
130
|
+
}
|
|
131
|
+
// Diversity bonus (rewards varied usage patterns)
|
|
132
|
+
const uniqueHours = new Set(history.map(point => Math.floor(point.timestamp / (60 * 60 * 1000)))).size;
|
|
133
|
+
if (uniqueHours >= 3) {
|
|
134
|
+
bonuses += this.config.diversityBonus;
|
|
135
|
+
}
|
|
136
|
+
return bonuses;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Generate ranking metadata for analysis and debugging
|
|
140
|
+
*/
|
|
141
|
+
generateMetadata(history, _currentTime) {
|
|
142
|
+
const timestamps = history.map(p => p.timestamp);
|
|
143
|
+
const totalUsageEvents = history.reduce((sum, point) => sum + point.count, 0);
|
|
144
|
+
const uniqueHours = new Set(history.map(point => Math.floor(point.timestamp / (60 * 60 * 1000)))).size;
|
|
145
|
+
const firstUsage = Math.min(...timestamps);
|
|
146
|
+
const lastUsage = Math.max(...timestamps);
|
|
147
|
+
// Simple trend analysis (last quarter vs previous quarter)
|
|
148
|
+
const quarterDuration = (_currentTime - firstUsage) / 4;
|
|
149
|
+
const lastQuarterStart = _currentTime - quarterDuration;
|
|
150
|
+
const lastQuarterUsage = history
|
|
151
|
+
.filter(p => p.timestamp >= lastQuarterStart)
|
|
152
|
+
.reduce((sum, point) => sum + point.count, 0);
|
|
153
|
+
const previousQuarterEnd = lastQuarterStart;
|
|
154
|
+
const previousQuarterStart = previousQuarterEnd - quarterDuration;
|
|
155
|
+
const previousQuarterUsage = history
|
|
156
|
+
.filter(p => p.timestamp >= previousQuarterStart && p.timestamp < previousQuarterEnd)
|
|
157
|
+
.reduce((sum, point) => sum + point.count, 0);
|
|
158
|
+
let usageTrend = 'stable';
|
|
159
|
+
if (lastQuarterUsage > previousQuarterUsage * 1.1) {
|
|
160
|
+
usageTrend = 'increasing';
|
|
161
|
+
}
|
|
162
|
+
else if (lastQuarterUsage < previousQuarterUsage * 0.9) {
|
|
163
|
+
usageTrend = 'decreasing';
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
totalUsageEvents,
|
|
167
|
+
uniqueHours,
|
|
168
|
+
firstUsage,
|
|
169
|
+
lastUsage,
|
|
170
|
+
usageTrend
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Create empty result for instructions with no usage history
|
|
175
|
+
*/
|
|
176
|
+
createEmptyResult() {
|
|
177
|
+
return {
|
|
178
|
+
score: 0,
|
|
179
|
+
breakdown: {
|
|
180
|
+
recentUsage: 0,
|
|
181
|
+
historicalUsage: 0,
|
|
182
|
+
recencyContribution: 0,
|
|
183
|
+
historyContribution: 0,
|
|
184
|
+
bonuses: 0
|
|
185
|
+
},
|
|
186
|
+
metadata: {
|
|
187
|
+
totalUsageEvents: 0,
|
|
188
|
+
uniqueHours: 0,
|
|
189
|
+
usageTrend: 'stable'
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Update configuration parameters
|
|
195
|
+
*
|
|
196
|
+
* @param newConfig - Updated configuration parameters
|
|
197
|
+
*/
|
|
198
|
+
updateConfig(newConfig) {
|
|
199
|
+
this.config = { ...this.config, ...newConfig };
|
|
200
|
+
(0, logger_js_1.logInfo)('[hotScore] Hot score configuration updated', newConfig);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get current configuration
|
|
204
|
+
*
|
|
205
|
+
* @returns Current hot score configuration
|
|
206
|
+
*/
|
|
207
|
+
getConfig() {
|
|
208
|
+
return { ...this.config };
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Batch calculate hot scores for multiple instructions
|
|
212
|
+
*
|
|
213
|
+
* @param instructionUsage - Map of instruction ID to usage history
|
|
214
|
+
* @param currentTime - Current timestamp for calculations
|
|
215
|
+
* @returns Map of instruction ID to hot score results
|
|
216
|
+
*/
|
|
217
|
+
calculateBatchHotScores(instructionUsage, _currentTime = Date.now()) {
|
|
218
|
+
const results = new Map();
|
|
219
|
+
for (const [instructionId, usageHistory] of instructionUsage) {
|
|
220
|
+
const result = this.calculateHotScore(instructionId, usageHistory, _currentTime);
|
|
221
|
+
// Apply minimum threshold filter
|
|
222
|
+
if (result.score >= this.config.minScoreThreshold) {
|
|
223
|
+
results.set(instructionId, result);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
(0, logger_js_1.logInfo)('[hotScore] Batch hot scores calculated', {
|
|
227
|
+
totalInstructions: instructionUsage.size,
|
|
228
|
+
qualifyingInstructions: results.size,
|
|
229
|
+
minThreshold: this.config.minScoreThreshold
|
|
230
|
+
});
|
|
231
|
+
return results;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
exports.HotScoreService = HotScoreService;
|
|
235
|
+
/**
|
|
236
|
+
* Utility function to create hot score service with default configuration
|
|
237
|
+
*
|
|
238
|
+
* @param overrides - Configuration overrides
|
|
239
|
+
* @returns Configured hot score service instance
|
|
240
|
+
*/
|
|
241
|
+
function createHotScoreService(overrides) {
|
|
242
|
+
const config = overrides ? { ...exports.DEFAULT_HOT_SCORE_CONFIG, ...overrides } : exports.DEFAULT_HOT_SCORE_CONFIG;
|
|
243
|
+
return new HotScoreService(config);
|
|
244
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { InstructionEntry } from '../models/instruction';
|
|
2
|
+
export interface IndexState {
|
|
3
|
+
loadedAt: string;
|
|
4
|
+
hash: string;
|
|
5
|
+
byId: Map<string, InstructionEntry>;
|
|
6
|
+
list: InstructionEntry[];
|
|
7
|
+
fileCount: number;
|
|
8
|
+
versionMTime: number;
|
|
9
|
+
versionToken: string;
|
|
10
|
+
loadErrors?: {
|
|
11
|
+
file: string;
|
|
12
|
+
error: string;
|
|
13
|
+
}[];
|
|
14
|
+
loadDebug?: {
|
|
15
|
+
scanned: number;
|
|
16
|
+
accepted: number;
|
|
17
|
+
skipped: number;
|
|
18
|
+
trace?: {
|
|
19
|
+
file: string;
|
|
20
|
+
accepted: boolean;
|
|
21
|
+
reason?: string;
|
|
22
|
+
}[];
|
|
23
|
+
};
|
|
24
|
+
loadSummary?: {
|
|
25
|
+
scanned: number;
|
|
26
|
+
accepted: number;
|
|
27
|
+
skipped: number;
|
|
28
|
+
reasons: Record<string, number>;
|
|
29
|
+
cacheHits?: number;
|
|
30
|
+
hashHits?: number;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface UsagePersistRecord {
|
|
34
|
+
usageCount?: number;
|
|
35
|
+
firstSeenTs?: string;
|
|
36
|
+
lastUsedAt?: string;
|
|
37
|
+
lastAction?: string;
|
|
38
|
+
lastSignal?: string;
|
|
39
|
+
lastComment?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface UsageTrackOptions {
|
|
42
|
+
action?: string;
|
|
43
|
+
signal?: string;
|
|
44
|
+
comment?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare function clearUsageRateLimit(id?: string): void;
|
|
47
|
+
export declare function loadUsageSnapshot(): Record<string, UsagePersistRecord>;
|
|
48
|
+
export declare function getInstructionsDir(): string;
|
|
49
|
+
export declare function diagnoseInstructionsDir(): {
|
|
50
|
+
dir: string;
|
|
51
|
+
exists: boolean;
|
|
52
|
+
writable: boolean;
|
|
53
|
+
error: string | null;
|
|
54
|
+
};
|
|
55
|
+
export declare function touchIndexVersion(): void;
|
|
56
|
+
export declare function markindexDirty(): void;
|
|
57
|
+
export declare function ensureLoaded(): IndexState;
|
|
58
|
+
export interface IndexPollerOptions {
|
|
59
|
+
intervalMs?: number;
|
|
60
|
+
proactive?: boolean;
|
|
61
|
+
}
|
|
62
|
+
export declare function startIndexVersionPoller(opts?: IndexPollerOptions): void;
|
|
63
|
+
export declare function stopIndexVersionPoller(): void;
|
|
64
|
+
export declare function invalidate(): void;
|
|
65
|
+
export declare function getIndexState(): IndexState;
|
|
66
|
+
export declare function getDebugIndexSnapshot(): {
|
|
67
|
+
dir: string;
|
|
68
|
+
fileCountOnDisk: number;
|
|
69
|
+
fileNames: string[];
|
|
70
|
+
indexLoaded: boolean;
|
|
71
|
+
indexCount: number;
|
|
72
|
+
dirtyFlag: boolean;
|
|
73
|
+
missingIds: string[];
|
|
74
|
+
extraLoaded: string[];
|
|
75
|
+
loadedAt: string | undefined;
|
|
76
|
+
versionMTime: number | undefined;
|
|
77
|
+
};
|
|
78
|
+
export declare function getIndexDiagnostics(opts?: {
|
|
79
|
+
includeTrace?: boolean;
|
|
80
|
+
}): {
|
|
81
|
+
dir: string;
|
|
82
|
+
loadedAt: string;
|
|
83
|
+
hash: string;
|
|
84
|
+
scanned: number;
|
|
85
|
+
accepted: number;
|
|
86
|
+
skipped: number;
|
|
87
|
+
fileCountOnDisk: number;
|
|
88
|
+
indexCount: number;
|
|
89
|
+
missingOnIndexCount: number;
|
|
90
|
+
missingOnIndex: string[];
|
|
91
|
+
reasons: Record<string, number>;
|
|
92
|
+
errorSamples: {
|
|
93
|
+
file: string;
|
|
94
|
+
error: string;
|
|
95
|
+
}[];
|
|
96
|
+
traceSample: {
|
|
97
|
+
file: string;
|
|
98
|
+
accepted: boolean;
|
|
99
|
+
reason?: string;
|
|
100
|
+
}[] | undefined;
|
|
101
|
+
};
|
|
102
|
+
export declare function projectGovernance(e: InstructionEntry): {
|
|
103
|
+
id: string;
|
|
104
|
+
title: string;
|
|
105
|
+
version: string;
|
|
106
|
+
owner: string;
|
|
107
|
+
priorityTier: "P1" | "P2" | "P3" | "P4";
|
|
108
|
+
nextReviewDue: string;
|
|
109
|
+
semanticSummarySha256: string;
|
|
110
|
+
changeLogLength: number;
|
|
111
|
+
};
|
|
112
|
+
export declare function computeGovernanceHash(entries: InstructionEntry[]): string;
|
|
113
|
+
export declare function writeEntry(entry: InstructionEntry): void;
|
|
114
|
+
export declare function removeEntry(id: string): void;
|
|
115
|
+
export declare function scheduleUsagePersist(): void;
|
|
116
|
+
export declare function incrementUsage(id: string, opts?: UsageTrackOptions): Record<string, unknown> | null;
|
|
117
|
+
export declare function __testResetUsageState(): void;
|