0xray 4.0.36 → 4.0.38
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/.grok-plugin/plugin.json +1 -1
- package/.xray/features.json +1 -1
- package/dist/CHANGELOG.md +28 -0
- package/dist/analytics/emerging-pattern-detector.d.ts +12 -1
- package/dist/analytics/emerging-pattern-detector.js +37 -12
- package/dist/analytics/pattern-learning-engine.js +1 -9
- package/dist/analytics/predictive-analytics.js +51 -33
- package/dist/analytics/prompt-pattern-analyzer.d.ts +1 -0
- package/dist/analytics/prompt-pattern-analyzer.js +39 -20
- package/dist/analytics/routing-performance-analyzer.d.ts +2 -0
- package/dist/analytics/routing-performance-analyzer.js +89 -37
- package/dist/analytics/simple-pattern-analyzer.d.ts +4 -0
- package/dist/analytics/simple-pattern-analyzer.js +66 -28
- package/dist/architect/architect-tools.d.ts +3 -0
- package/dist/architect/architect-tools.js +22 -0
- package/dist/cli/commands/grok-install.js +1 -1
- package/dist/cli/commands/hermes-install.js +11 -5
- package/dist/cli/commands/openclaw-install.js +13 -7
- package/dist/cli/commands/opencode-install.js +7 -4
- package/dist/cli/commands/suit-monitor.d.ts +30 -0
- package/dist/cli/commands/suit-monitor.js +128 -0
- package/dist/cli/index.js +52 -15
- package/dist/cli/suit-pulse.d.ts +29 -0
- package/dist/cli/suit-pulse.js +270 -0
- package/dist/delegation/agent-delegator.d.ts +4 -2
- package/dist/delegation/agent-delegator.js +46 -27
- package/dist/delegation/agent-expertise.js +2 -1
- package/dist/delegation/analytics/outcome-tracker.d.ts +6 -0
- package/dist/delegation/analytics/outcome-tracker.js +17 -3
- package/dist/delegation/ast-code-parser.d.ts +5 -0
- package/dist/delegation/ast-code-parser.js +53 -48
- package/dist/delegation/codebase-context-analyzer.d.ts +3 -7
- package/dist/delegation/codebase-context-analyzer.js +188 -159
- package/dist/delegation/session-coordinator.js +3 -2
- package/dist/enforcement/loaders/codex-loader.js +18 -14
- package/dist/enforcement/validators/architecture-validators.js +115 -9
- package/dist/governance/codex-policy.service.d.ts +12 -2
- package/dist/governance/codex-policy.service.js +91 -16
- package/dist/integrations/grok/hooks/session-start.js +6 -6
- package/dist/integrations/hooks/goggles-pipeline.mjs +169 -28
- package/dist/integrations/hooks/goggles-planes.json +172 -8
- package/dist/integrations/hooks/plates.cjs +138 -0
- package/dist/integrations/hooks/station-hook-runtime.cjs +63 -5
- package/dist/integrations/hooks/write-home.cjs +59 -0
- package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/dist/mcps/architect-tools.server.d.ts +6 -0
- package/dist/mcps/architect-tools.server.js +19 -18
- package/dist/mcps/orchestrator/server.d.ts +4 -3
- package/dist/mcps/orchestrator/server.js +29 -17
- package/dist/memory-routing/lookup-cache.d.ts +8 -0
- package/dist/memory-routing/lookup-cache.js +72 -0
- package/dist/memory-routing/plates.d.ts +1 -1
- package/dist/memory-routing/plates.js +26 -0
- package/dist/memory-routing/provider-loader.js +3 -0
- package/dist/metrics/agent-metrics.d.ts +14 -5
- package/dist/metrics/agent-metrics.js +362 -224
- package/dist/nucleus/synthesis-consult-receipt.js +38 -16
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +5 -0
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +9 -0
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +1 -2
- package/dist/orchestrator/orchestrator.js +1 -2
- package/dist/processors/implementations/agents-md-validation-processor.d.ts +0 -1
- package/dist/processors/implementations/agents-md-validation-processor.js +0 -11
- package/dist/processors/implementations/console-log-guard-processor.js +39 -50
- package/dist/processors/implementations/performance-budget-processor.d.ts +0 -5
- package/dist/processors/implementations/performance-budget-processor.js +29 -38
- package/dist/processors/implementations/storytelling-trigger-processor.d.ts +5 -0
- package/dist/processors/implementations/storytelling-trigger-processor.js +69 -16
- package/dist/processors/implementations/test-auto-creation-processor.js +39 -36
- package/dist/reporting/framework-reporting-system.d.ts +3 -0
- package/dist/reporting/framework-reporting-system.js +61 -8
- package/dist/reporting/log-parser.js +188 -105
- package/dist/reporting/metrics.js +42 -18
- package/dist/security/prompt-security-validator.js +8 -7
- package/dist/security/security-auditor.d.ts +4 -0
- package/dist/security/security-auditor.js +132 -57
- package/dist/security/security-hardener.d.ts +2 -0
- package/dist/security/security-hardener.js +31 -6
- package/dist/security/security-headers.d.ts +2 -0
- package/dist/security/security-headers.js +23 -21
- package/dist/security/security-scanner.js +18 -4
- package/dist/session/session-cleanup-manager.d.ts +2 -0
- package/dist/session/session-cleanup-manager.js +29 -8
- package/dist/session/session-monitor.d.ts +14 -4
- package/dist/session/session-monitor.js +208 -106
- package/dist/session/session-state-manager.d.ts +11 -0
- package/dist/session/session-state-manager.js +90 -8
- package/docs-site/docs/plates/activity-log.md +38 -0
- package/docs-site/docs/plates/cursor-compact.md +35 -0
- package/docs-site/docs/plates/grok-compact.md +35 -0
- package/docs-site/docs/plates/index.md +25 -3
- package/docs-site/docs/plates/inference-files.md +35 -0
- package/docs-site/docs/plates/kept-line.md +35 -0
- package/docs-site/docs/plates/lens-gate.md +35 -0
- package/docs-site/docs/plates/lens-page.md +35 -0
- package/docs-site/docs/plates/notes-page.md +35 -0
- package/docs-site/docs/plates/package-face.md +35 -0
- package/docs-site/docs/plates/payload-heat.md +35 -0
- package/docs-site/docs/plates/pickup-stamp.md +35 -0
- package/docs-site/docs/plates/pre-tool.md +35 -0
- package/docs-site/docs/plates/record-map.md +41 -0
- package/docs-site/docs/plates/reflection-page.md +35 -0
- package/docs-site/docs/plates/review.md +57 -0
- package/docs-site/docs/plates/session-capture.md +38 -0
- package/docs-site/docs/plates/site-manual.md +35 -0
- package/docs-site/docs/plates/stamp-plate.md +35 -0
- package/docs-site/docs/plates/station-card.md +35 -0
- package/docs-site/docs/plates/station-heat.md +35 -0
- package/docs-site/docs/plates/suit-organs.md +38 -0
- package/docs-site/docs/plates/suit-settings.md +35 -0
- package/docs-site/docs/plates/suit-wear.md +37 -0
- package/docs-site/docs/plates/trail-state.md +35 -0
- package/docs-site/docs/plates/work-fresh.md +35 -0
- package/docs-site/docs/plates/write-home.md +38 -0
- package/package.json +3 -2
- package/scripts/node/install-bridges.cjs +302 -78
- package/scripts/node/postinstall.cjs +14 -3
- package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/src/mcps/architect-tools.server.ts +25 -20
- package/src/mcps/orchestrator/server.ts +33 -19
- package/xray/features.json +1 -1
- package/vendor/@0xray/repertoire/dist/RepertoireService.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/RepertoireService.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/governance/ontological-trap-enforcer.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/governance/ontological-trap-enforcer.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/index.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/index.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/groover-log-ingester.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/groover-log-ingester.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/groover-log-parser.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/groover-log-parser.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/orchestrator-feedback-ingester.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/orchestrator-feedback-ingester.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/mcp/server.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/mcp/server.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/RepertoireOrchestratorBridge.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/RepertoireOrchestratorBridge.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/capability-enhancer.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/capability-enhancer.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-agent-affinity.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-agent-affinity.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/paths.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/paths.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/InferenceStateManager.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/InferenceStateManager.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/confidence-decay.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/confidence-decay.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/signal-prune.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/signal-prune.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/concrete-sections.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/concrete-sections.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/meta-inference-engine.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/meta-inference-engine.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/primitive-confidence-aggregator.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/primitive-confidence-aggregator.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/synthesis-prompt-builder.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/synthesis-prompt-builder.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/types.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/types.js.map +0 -1
|
@@ -9,10 +9,6 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
9
9
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
10
10
|
import * as fs from 'fs';
|
|
11
11
|
import { frameworkLogger } from '../../core/framework-logger.js';
|
|
12
|
-
import { XrayStateManager } from '../../state/state-manager.js';
|
|
13
|
-
import { MultiAgentOrchestrationCoordinator } from '../../orchestrator/multi-agent-orchestration-coordinator.js';
|
|
14
|
-
import { TaskHandler } from './handlers/task-handler.js';
|
|
15
|
-
import { ComplexityHandler } from './handlers/complexity-handler.js';
|
|
16
12
|
import { StatusHandler } from './handlers/status-handler.js';
|
|
17
13
|
import { spawnAside, closeAside, closeAllAsides, addObservations, getActiveAsideCount, getActiveAsideIds, getAsideState, extractGovernanceObservations, } from './aside-context.js';
|
|
18
14
|
/**
|
|
@@ -23,19 +19,11 @@ export class OrchestratorServer {
|
|
|
23
19
|
server;
|
|
24
20
|
activeTasks = new Map();
|
|
25
21
|
taskHistory = [];
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
// Task and complexity handlers import the planner and nucleus. Load on tool call.
|
|
23
|
+
taskHandlerPromise = null;
|
|
24
|
+
complexityHandlerPromise = null;
|
|
29
25
|
statusHandler;
|
|
30
|
-
// Actual orchestration coordinator
|
|
31
|
-
coordinator;
|
|
32
26
|
constructor() {
|
|
33
|
-
// Initialize actual coordinator
|
|
34
|
-
const stateManager = new XrayStateManager();
|
|
35
|
-
this.coordinator = new MultiAgentOrchestrationCoordinator(stateManager);
|
|
36
|
-
// Initialize handlers
|
|
37
|
-
this.taskHandler = new TaskHandler();
|
|
38
|
-
this.complexityHandler = new ComplexityHandler();
|
|
39
27
|
this.statusHandler = new StatusHandler();
|
|
40
28
|
// Create MCP server
|
|
41
29
|
this.server = new Server({
|
|
@@ -52,6 +40,28 @@ export class OrchestratorServer {
|
|
|
52
40
|
message: '0xRay Orchestrator MCP Server initialized',
|
|
53
41
|
});
|
|
54
42
|
}
|
|
43
|
+
loadTaskHandler() {
|
|
44
|
+
if (!this.taskHandlerPromise) {
|
|
45
|
+
this.taskHandlerPromise = import('./handlers/task-handler.js')
|
|
46
|
+
.then(({ TaskHandler }) => new TaskHandler())
|
|
47
|
+
.catch((error) => {
|
|
48
|
+
this.taskHandlerPromise = null;
|
|
49
|
+
throw error;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return this.taskHandlerPromise;
|
|
53
|
+
}
|
|
54
|
+
loadComplexityHandler() {
|
|
55
|
+
if (!this.complexityHandlerPromise) {
|
|
56
|
+
this.complexityHandlerPromise = import('./handlers/complexity-handler.js')
|
|
57
|
+
.then(({ ComplexityHandler }) => new ComplexityHandler())
|
|
58
|
+
.catch((error) => {
|
|
59
|
+
this.complexityHandlerPromise = null;
|
|
60
|
+
throw error;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return this.complexityHandlerPromise;
|
|
64
|
+
}
|
|
55
65
|
/**
|
|
56
66
|
* Initialize tool definitions
|
|
57
67
|
*/
|
|
@@ -268,7 +278,8 @@ export class OrchestratorServer {
|
|
|
268
278
|
inheritedContext: { taskCount: orchArgs.tasks?.length ?? 0, executionMode: orchArgs.executionMode ?? 'optimized' },
|
|
269
279
|
});
|
|
270
280
|
try {
|
|
271
|
-
const
|
|
281
|
+
const taskHandler = await this.loadTaskHandler();
|
|
282
|
+
const result = await taskHandler.handleOrchestrateTask(orchArgs, { taskHistory: this.taskHistory, activeTasks: this.activeTasks, asideId: aside.asideId });
|
|
272
283
|
return result;
|
|
273
284
|
}
|
|
274
285
|
finally {
|
|
@@ -348,7 +359,8 @@ export class OrchestratorServer {
|
|
|
348
359
|
inheritedContext,
|
|
349
360
|
});
|
|
350
361
|
try {
|
|
351
|
-
const
|
|
362
|
+
const complexityHandler = await this.loadComplexityHandler();
|
|
363
|
+
const result = await complexityHandler.handleAnalyzeComplexity({
|
|
352
364
|
...complexityArgs,
|
|
353
365
|
...(sessionId ? { sessionId } : {}),
|
|
354
366
|
...(synthesisDue
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { MemoryRoutingProvider } from './types.js';
|
|
2
|
+
export declare function resetOrganFileCacheStats(): void;
|
|
3
|
+
export declare function organFileCacheStats(): {
|
|
4
|
+
hits: number;
|
|
5
|
+
misses: number;
|
|
6
|
+
};
|
|
7
|
+
/** Attach the file cache to a loaded Repertoire provider. Other providers are left alone. */
|
|
8
|
+
export declare function bindOrganFileCache(provider: MemoryRoutingProvider): void;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { statSync } from 'node:fs';
|
|
2
|
+
const boundStores = new WeakSet();
|
|
3
|
+
let cacheHits = 0;
|
|
4
|
+
let cacheMisses = 0;
|
|
5
|
+
export function resetOrganFileCacheStats() {
|
|
6
|
+
cacheHits = 0;
|
|
7
|
+
cacheMisses = 0;
|
|
8
|
+
}
|
|
9
|
+
export function organFileCacheStats() {
|
|
10
|
+
return { hits: cacheHits, misses: cacheMisses };
|
|
11
|
+
}
|
|
12
|
+
function stampFile(filePath) {
|
|
13
|
+
try {
|
|
14
|
+
const info = statSync(filePath);
|
|
15
|
+
const mtimeNs = typeof info.mtimeNs === 'bigint'
|
|
16
|
+
? info.mtimeNs
|
|
17
|
+
: BigInt(Math.round(info.mtimeMs * 1_000_000));
|
|
18
|
+
return { exists: true, size: info.size, mtimeNs };
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return { exists: false, size: 0, mtimeNs: 0n };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function sameStamp(left, right) {
|
|
25
|
+
return left.exists === right.exists
|
|
26
|
+
&& left.size === right.size
|
|
27
|
+
&& left.mtimeNs === right.mtimeNs;
|
|
28
|
+
}
|
|
29
|
+
function bindStore(store) {
|
|
30
|
+
if (!store || typeof store !== 'object')
|
|
31
|
+
return;
|
|
32
|
+
if (boundStores.has(store))
|
|
33
|
+
return;
|
|
34
|
+
const organ = store;
|
|
35
|
+
const read = organ.load;
|
|
36
|
+
const filePath = organ.filePath;
|
|
37
|
+
if (typeof read !== 'function' || typeof filePath !== 'string' || filePath.length === 0)
|
|
38
|
+
return;
|
|
39
|
+
boundStores.add(store);
|
|
40
|
+
let filled = false;
|
|
41
|
+
let cached;
|
|
42
|
+
let stamp = null;
|
|
43
|
+
organ.load = () => {
|
|
44
|
+
const before = stampFile(filePath);
|
|
45
|
+
if (filled && stamp && sameStamp(stamp, before)) {
|
|
46
|
+
cacheHits += 1;
|
|
47
|
+
return cached;
|
|
48
|
+
}
|
|
49
|
+
cacheMisses += 1;
|
|
50
|
+
const value = read.call(organ);
|
|
51
|
+
const after = stampFile(filePath);
|
|
52
|
+
if (sameStamp(before, after)) {
|
|
53
|
+
cached = value;
|
|
54
|
+
stamp = after;
|
|
55
|
+
filled = true;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
filled = false;
|
|
59
|
+
stamp = null;
|
|
60
|
+
}
|
|
61
|
+
return value;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/** Attach the file cache to a loaded Repertoire provider. Other providers are left alone. */
|
|
65
|
+
export function bindOrganFileCache(provider) {
|
|
66
|
+
const service = provider.service;
|
|
67
|
+
if (!service || typeof service !== 'object')
|
|
68
|
+
return;
|
|
69
|
+
const row = service;
|
|
70
|
+
bindStore(row.signalsManager);
|
|
71
|
+
bindStore(row.stateManager);
|
|
72
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const PLATE_IDS: readonly ["routing", "governance", "boot", "orchestration", "processor", "reporting", "memory-recall", "house", "goggles", "suit", "kits", "host-pack", "glossary"];
|
|
1
|
+
export declare const PLATE_IDS: readonly ["routing", "governance", "boot", "orchestration", "processor", "reporting", "memory-recall", "stamp-plate", "house", "review", "goggles", "suit", "kits", "host-pack", "glossary", "record-map", "write-home", "activity-log", "session-capture", "suit-wear", "suit-organs", "station-card", "notes-page", "reflection-page", "site-manual", "package-face", "suit-settings", "trail-state", "inference-files", "grok-compact", "payload-heat", "station-heat", "pickup-stamp", "cursor-compact", "work-fresh", "kept-line", "lens-gate", "pre-tool", "lens-page"];
|
|
2
2
|
export type PlateId = (typeof PLATE_IDS)[number];
|
|
3
3
|
export interface PlateStamp {
|
|
4
4
|
id: PlateId;
|
|
@@ -13,12 +13,38 @@ export const PLATE_IDS = [
|
|
|
13
13
|
'processor',
|
|
14
14
|
'reporting',
|
|
15
15
|
'memory-recall',
|
|
16
|
+
'stamp-plate',
|
|
16
17
|
'house',
|
|
18
|
+
'review',
|
|
17
19
|
'goggles',
|
|
18
20
|
'suit',
|
|
19
21
|
'kits',
|
|
20
22
|
'host-pack',
|
|
21
23
|
'glossary',
|
|
24
|
+
'record-map',
|
|
25
|
+
'write-home',
|
|
26
|
+
'activity-log',
|
|
27
|
+
'session-capture',
|
|
28
|
+
'suit-wear',
|
|
29
|
+
'suit-organs',
|
|
30
|
+
'station-card',
|
|
31
|
+
'notes-page',
|
|
32
|
+
'reflection-page',
|
|
33
|
+
'site-manual',
|
|
34
|
+
'package-face',
|
|
35
|
+
'suit-settings',
|
|
36
|
+
'trail-state',
|
|
37
|
+
'inference-files',
|
|
38
|
+
'grok-compact',
|
|
39
|
+
'payload-heat',
|
|
40
|
+
'station-heat',
|
|
41
|
+
'pickup-stamp',
|
|
42
|
+
'cursor-compact',
|
|
43
|
+
'work-fresh',
|
|
44
|
+
'kept-line',
|
|
45
|
+
'lens-gate',
|
|
46
|
+
'pre-tool',
|
|
47
|
+
'lens-page',
|
|
22
48
|
];
|
|
23
49
|
function isPlateId(value) {
|
|
24
50
|
return PLATE_IDS.includes(value);
|
|
@@ -3,6 +3,7 @@ import { createRequire } from 'node:module';
|
|
|
3
3
|
import { resolve, dirname, join } from 'node:path';
|
|
4
4
|
import { pathToFileURL } from 'node:url';
|
|
5
5
|
import { frameworkLogger } from '../core/framework-logger.js';
|
|
6
|
+
import { bindOrganFileCache } from './lookup-cache.js';
|
|
6
7
|
import { createMemoryRoutingProvider as createNullProvider } from './null-provider.js';
|
|
7
8
|
import { validateMemoryRoutingConfig } from './validate-config.js';
|
|
8
9
|
// Opening the organ must not merge subject repo-* back onto the project file.
|
|
@@ -139,6 +140,7 @@ export function loadMemoryRoutingProviderSync(config, cwd = process.cwd()) {
|
|
|
139
140
|
try {
|
|
140
141
|
const mod = require(resolved.modulePath);
|
|
141
142
|
const provider = providerFromModule(mod, resolved.modulePath, resolved.effective);
|
|
143
|
+
bindOrganFileCache(provider);
|
|
142
144
|
if (!provider.isAvailable())
|
|
143
145
|
return null;
|
|
144
146
|
return provider;
|
|
@@ -179,6 +181,7 @@ export async function loadMemoryRoutingProvider(config, cwd = process.cwd()) {
|
|
|
179
181
|
if (!provider?.id || typeof provider.isAvailable !== 'function') {
|
|
180
182
|
throw new Error(`Invalid memory routing provider from ${modulePath}`);
|
|
181
183
|
}
|
|
184
|
+
bindOrganFileCache(provider);
|
|
182
185
|
const availabilityReason = resolveUnavailableReason(provider);
|
|
183
186
|
if (!provider.isAvailable()) {
|
|
184
187
|
await frameworkLogger.log('memory-routing', 'provider-unavailable', 'error', {
|
|
@@ -106,6 +106,12 @@ export declare class AgentMetricsSystem {
|
|
|
106
106
|
private getInvocations;
|
|
107
107
|
private saveInvocations;
|
|
108
108
|
private generateId;
|
|
109
|
+
private newAgentAcc;
|
|
110
|
+
private addAgent;
|
|
111
|
+
private finishAgent;
|
|
112
|
+
private newCountAcc;
|
|
113
|
+
private addCount;
|
|
114
|
+
private finishCount;
|
|
109
115
|
trackInvocation(params: {
|
|
110
116
|
agentName: string;
|
|
111
117
|
agentType: AgentType;
|
|
@@ -131,12 +137,15 @@ export declare class AgentMetricsSystem {
|
|
|
131
137
|
getInvocationsByTimeRange(start: number, end: number): AgentInvocation[];
|
|
132
138
|
filterInvocations(filter: AgentMetricsFilter): AgentInvocation[];
|
|
133
139
|
aggregateMetrics(filter?: AgentMetricsFilter): AggregatedAgentMetrics;
|
|
134
|
-
private
|
|
135
|
-
private
|
|
136
|
-
private
|
|
137
|
-
private
|
|
138
|
-
private
|
|
140
|
+
private aggregateInvocations;
|
|
141
|
+
private addPeriod;
|
|
142
|
+
private freshPeriodCursor;
|
|
143
|
+
private periodKeys;
|
|
144
|
+
private weekNumber;
|
|
139
145
|
private getPeriodType;
|
|
146
|
+
private utcStamp;
|
|
147
|
+
private utcPeriodRange;
|
|
148
|
+
private groupNumber;
|
|
140
149
|
getAgentSummary(agentName: string): AgentInvocationSummary | null;
|
|
141
150
|
getTimePeriodSummary(period: string, periodType: "hour" | "day" | "week" | "month"): TimePeriodSummary | null;
|
|
142
151
|
getComplexitySummary(level: ComplexityLevel): ComplexitySummary | null;
|