@hilbras/omninode 2.0.0-alpha.19 → 2.0.0-alpha.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/cli/index.js +66 -24
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +22 -3
- package/dist/index.js +71 -24
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2161,11 +2161,16 @@ interface AuditEvent {
|
|
|
2161
2161
|
interface AuditSink {
|
|
2162
2162
|
record(event: AuditEvent): Promise<void>;
|
|
2163
2163
|
}
|
|
2164
|
+
/** Default rotation threshold: the audit log is rotated past this size (§24). */
|
|
2165
|
+
declare const DEFAULT_AUDIT_MAX_BYTES: number;
|
|
2164
2166
|
/** Append-only JSONL sink. Failures are logged, never propagated. */
|
|
2165
2167
|
declare class FileAuditLog implements AuditSink {
|
|
2166
2168
|
private readonly filePath;
|
|
2169
|
+
private readonly maxBytes;
|
|
2167
2170
|
private readonly log;
|
|
2168
|
-
constructor(directory?: string, log?: Logger);
|
|
2171
|
+
constructor(directory?: string, log?: Logger, maxBytes?: number);
|
|
2172
|
+
/** Rotates the log once it passes the size budget, keeping one backup. */
|
|
2173
|
+
private rotateIfNeeded;
|
|
2169
2174
|
record(event: AuditEvent): Promise<void>;
|
|
2170
2175
|
/** Recent events, oldest first; used by the CLI. */
|
|
2171
2176
|
recent(limit?: number): Promise<AuditEvent[]>;
|
|
@@ -2740,12 +2745,16 @@ interface ExtractionMeta {
|
|
|
2740
2745
|
}
|
|
2741
2746
|
declare function extractReportFromText(raw: string, meta: ExtractionMeta): Report;
|
|
2742
2747
|
|
|
2748
|
+
/** Default cap on retained finding groups per combined report (§24, memory). */
|
|
2749
|
+
declare const MAX_COMBINED_FINDINGS = 200;
|
|
2743
2750
|
interface AggregateOptions {
|
|
2744
2751
|
objective?: string;
|
|
2745
2752
|
pipelineRunId?: string;
|
|
2746
2753
|
taskIds?: string[];
|
|
2747
2754
|
/** Token-set Jaccard similarity above which findings are merged. */
|
|
2748
2755
|
similarityThreshold?: number;
|
|
2756
|
+
/** Cap on retained finding groups; excess is counted in metadata. */
|
|
2757
|
+
maxFindings?: number;
|
|
2749
2758
|
}
|
|
2750
2759
|
declare function aggregateReports(reports: Report[], options?: AggregateOptions): CombinedReport;
|
|
2751
2760
|
/**
|
|
@@ -2992,6 +3001,10 @@ interface PipelineEngineOptions {
|
|
|
2992
3001
|
audit?: AuditSink;
|
|
2993
3002
|
/** When present, finished runs have their reports collected, stored and combined (§16–§17). */
|
|
2994
3003
|
reports?: ReportService;
|
|
3004
|
+
/** Max steps executed concurrently within one wave (§24 execution-storm guard). */
|
|
3005
|
+
maxParallelSteps?: number;
|
|
3006
|
+
/** Combined-context budget in characters (§24 memory bound). */
|
|
3007
|
+
maxContextChars?: number;
|
|
2995
3008
|
log?: Logger;
|
|
2996
3009
|
}
|
|
2997
3010
|
interface RunPipelineOptions {
|
|
@@ -2999,6 +3012,12 @@ interface RunPipelineOptions {
|
|
|
2999
3012
|
onStep?: (stepRun: PipelineStepRun) => void;
|
|
3000
3013
|
}
|
|
3001
3014
|
|
|
3015
|
+
/** Default cap on steps running concurrently in one wave (§24). */
|
|
3016
|
+
declare const DEFAULT_MAX_PARALLEL_STEPS = 8;
|
|
3017
|
+
/** Default combined-context budget for downstream steps (§24). */
|
|
3018
|
+
declare const MAX_COMBINED_CONTEXT_CHARS = 20000;
|
|
3019
|
+
/** Keeps the most recent context within budget, marking what was dropped. */
|
|
3020
|
+
declare function budgetContext(context: string, maxChars?: number): string;
|
|
3002
3021
|
declare class PipelineEngine implements IPipelineExecutor {
|
|
3003
3022
|
private readonly options;
|
|
3004
3023
|
private readonly log;
|
|
@@ -3179,6 +3198,6 @@ declare class ProtocolSession {
|
|
|
3179
3198
|
sawV2: boolean;
|
|
3180
3199
|
}
|
|
3181
3200
|
|
|
3182
|
-
declare const OMNINODE_VERSION = "2.0.0-alpha.
|
|
3201
|
+
declare const OMNINODE_VERSION = "2.0.0-alpha.20";
|
|
3183
3202
|
|
|
3184
|
-
export { AgentAdapterRegistry, type AgentConfig, type AgentDescriptor, AgentError, type AgentInfo, type AgentInputMode, type AgentIntegrationType, AgentRegistry, type AgentStatus, type AgentTaskInput, type AgentTaskOutput, type AgentToNodeMessage, type AggregatedFinding, type AggregatedRecommendation, type AppConfig, type ArtifactPayload, type AskedQuestion, type AuditAction, type AuditEvent, type AuditSink, type AuditSink as AuditStore, type ChatFn, type ChatMessage, type ChatRequest, type ChatResponse, type ChatRole, type ChatStreamChunk, type ChatUsage, type CombinedReport, type CombinedReportFilter, type Confidence, ConfigError, type ConflictPosition, ConsoleLogSink, type CreateProviderOptions, type CreateTaskInput, type CwdValidation, DEFAULT_MAX_OUTPUT_BYTES, type DecodeResult, type DefaultChatOptions, type DocumentState, type Durability, type EnvPolicy, type EnvelopeMeta, type Evidence, type EvidenceInput, type EvidenceKind, type ExecutionRecord, FileAuditLog, FilePipelineRunStore, FilePlanStore, FileReportStore, FileTaskStore, type Finding, type FindingOrigin, type FindingSeverity, type FindingSource, type HelloResult, HeuristicPlanner, type IAgent, type IAgentAdapter, type IChatProvider, type IMemoryProvider, type IPipelineExecutor, type IPlanner, type IProvider, type JsonDocument, JsonFileStore, type JsonFileStoreOptions, type LoadConfigOptions, type LoadConfigResult, LocalMemoryProvider, type LogFormat, type LogLevel, type LogSink, Logger, type LoggerOptions, MAX_CONTEXT_CHARS, MAX_MESSAGE_BYTES, MAX_REPORT_BYTES, type MemoryCategory, type MemoryContextQuery, type MemoryEntry, MemoryError, type MemoryProviderConfig, type MemoryProviderMetadata, type MemoryQuery, type MemoryScope, MemoryService, type MemoryServiceOptions, LocalMemoryProvider as MemoryStore, type MemoryTaskContext, type MessageEnvelope, type MigrationReport, type Modality, type ModelCapabilities, type ModelInfo, ModelPlanner, type ModelPlannerOptions, ModelRegistry, type ModelStatus, type NodeToAgentMessage, OMNINODE_VERSION, OPENAI_COMPATIBLE_TYPES, OmniHilbrasProvider, OmniNodeError, OpenAICompatibleProvider, PROTOCOL_V2, type PipelineDefinition, PipelineEngine, PipelineError, type PipelineRun, type PipelineRunAttempt, type PipelineRunFilter, type PipelineRunOptions, type PipelineRunStatus, type PipelineRunStore, type PipelineStep, type PipelineStepCondition, type PipelineStepKind, type PipelineStepRun, type PipelineRunStore as PipelineStore, type Plan, type PlanFilter, type PlanRequest, type PlanStep, type PlanStore, type PlanValidationIssue, type PlanValidationResult, PlannerError, ProcessAgent, ProcessAgentAdapter, type Project, ProjectStores, type ProtocolAgentToNodeType, ProtocolDecoder, type ProtocolEnvelope, ProtocolError, type ProtocolMessageType, type ProtocolNodeToAgentType, ProtocolSession, type ProtocolViolation, type ProtocolViolationCode, type ProviderAuthentication, type ProviderCapability, type ProviderConfig, ProviderError, type ProviderHealth, type ProviderStatus, type ProviderType, type QuestionPayload, type QuestionResponder, type RememberaConfig, RememberaMemoryProvider, type Report, type ReportArtifact, type ReportConflict, type ReportFilter, type ReportPayload, ReportService, type ReportStore, type RoleDefinition, RoleRegistry, type RunPipelineOptions, type RunTaskOptions, SCHEMA_VERSION, SUPPORTED_PROTOCOL_VERSIONS, type SessionIds, TERMINAL_TASK_STATUSES, type Task, type TaskContext, TaskEngine, type TaskEngineOptions, TaskError, type TaskResult, type TaskStatus, type TaskStore, type TaskStoreFilter, agentConfigSchema, aggregateReports, appConfigSchema, authHeaders, buildAgentRegistry, buildChildEnv, buildHello, buildHelloAck, buildPipelineEngine, buildPlanner, buildPlannerContext, buildRoleRegistry, composeTaskText, configDiagnostics, configureLogger, createAgent, createDefaultChatFn, createMemoryProvider, createProvider, createTaskEngine, decodeMessage, defaultAgentAdapters, defaultProjectConfigYaml, describeExit, describeSecretFindings, detectConflicts, encodeMessage, envelope, expandEnvRefs, extractMessage, extractReportFromText, findConfigFile, inspectDocument, isNetworkError, isOmniNodeError, isRetryable, isSupportedProtocol, isTimeoutError, killTree, kindFromStatus, loadConfig, loadConfigDetailed, logger, migrateProjectStores, newMessageId, normalizeEvidence, normalizeFinding, parseHello, parsePlanJson, parseRetryAfter, pipelineConfigSchema, pipelineStepConfigSchema, planJsonSchema, plannerConfigSchema, projectConfigSchema, providerConfigSchema, providerHttpError, providerTransportError, readDocument, registryKey, requestJson, resolveApiKey, resolveEnvPolicy, roleConfigSchema, sanitizeChunk, scanForInlineSecrets, similar, validateEnvelope, validatePlan, validateReport, validateWorkingDirectory, writeFileAtomic };
|
|
3203
|
+
export { AgentAdapterRegistry, type AgentConfig, type AgentDescriptor, AgentError, type AgentInfo, type AgentInputMode, type AgentIntegrationType, AgentRegistry, type AgentStatus, type AgentTaskInput, type AgentTaskOutput, type AgentToNodeMessage, type AggregatedFinding, type AggregatedRecommendation, type AppConfig, type ArtifactPayload, type AskedQuestion, type AuditAction, type AuditEvent, type AuditSink, type AuditSink as AuditStore, type ChatFn, type ChatMessage, type ChatRequest, type ChatResponse, type ChatRole, type ChatStreamChunk, type ChatUsage, type CombinedReport, type CombinedReportFilter, type Confidence, ConfigError, type ConflictPosition, ConsoleLogSink, type CreateProviderOptions, type CreateTaskInput, type CwdValidation, DEFAULT_AUDIT_MAX_BYTES, DEFAULT_MAX_OUTPUT_BYTES, DEFAULT_MAX_PARALLEL_STEPS, type DecodeResult, type DefaultChatOptions, type DocumentState, type Durability, type EnvPolicy, type EnvelopeMeta, type Evidence, type EvidenceInput, type EvidenceKind, type ExecutionRecord, FileAuditLog, FilePipelineRunStore, FilePlanStore, FileReportStore, FileTaskStore, type Finding, type FindingOrigin, type FindingSeverity, type FindingSource, type HelloResult, HeuristicPlanner, type IAgent, type IAgentAdapter, type IChatProvider, type IMemoryProvider, type IPipelineExecutor, type IPlanner, type IProvider, type JsonDocument, JsonFileStore, type JsonFileStoreOptions, type LoadConfigOptions, type LoadConfigResult, LocalMemoryProvider, type LogFormat, type LogLevel, type LogSink, Logger, type LoggerOptions, MAX_COMBINED_CONTEXT_CHARS, MAX_COMBINED_FINDINGS, MAX_CONTEXT_CHARS, MAX_MESSAGE_BYTES, MAX_REPORT_BYTES, type MemoryCategory, type MemoryContextQuery, type MemoryEntry, MemoryError, type MemoryProviderConfig, type MemoryProviderMetadata, type MemoryQuery, type MemoryScope, MemoryService, type MemoryServiceOptions, LocalMemoryProvider as MemoryStore, type MemoryTaskContext, type MessageEnvelope, type MigrationReport, type Modality, type ModelCapabilities, type ModelInfo, ModelPlanner, type ModelPlannerOptions, ModelRegistry, type ModelStatus, type NodeToAgentMessage, OMNINODE_VERSION, OPENAI_COMPATIBLE_TYPES, OmniHilbrasProvider, OmniNodeError, OpenAICompatibleProvider, PROTOCOL_V2, type PipelineDefinition, PipelineEngine, PipelineError, type PipelineRun, type PipelineRunAttempt, type PipelineRunFilter, type PipelineRunOptions, type PipelineRunStatus, type PipelineRunStore, type PipelineStep, type PipelineStepCondition, type PipelineStepKind, type PipelineStepRun, type PipelineRunStore as PipelineStore, type Plan, type PlanFilter, type PlanRequest, type PlanStep, type PlanStore, type PlanValidationIssue, type PlanValidationResult, PlannerError, ProcessAgent, ProcessAgentAdapter, type Project, ProjectStores, type ProtocolAgentToNodeType, ProtocolDecoder, type ProtocolEnvelope, ProtocolError, type ProtocolMessageType, type ProtocolNodeToAgentType, ProtocolSession, type ProtocolViolation, type ProtocolViolationCode, type ProviderAuthentication, type ProviderCapability, type ProviderConfig, ProviderError, type ProviderHealth, type ProviderStatus, type ProviderType, type QuestionPayload, type QuestionResponder, type RememberaConfig, RememberaMemoryProvider, type Report, type ReportArtifact, type ReportConflict, type ReportFilter, type ReportPayload, ReportService, type ReportStore, type RoleDefinition, RoleRegistry, type RunPipelineOptions, type RunTaskOptions, SCHEMA_VERSION, SUPPORTED_PROTOCOL_VERSIONS, type SessionIds, TERMINAL_TASK_STATUSES, type Task, type TaskContext, TaskEngine, type TaskEngineOptions, TaskError, type TaskResult, type TaskStatus, type TaskStore, type TaskStoreFilter, agentConfigSchema, aggregateReports, appConfigSchema, authHeaders, budgetContext, buildAgentRegistry, buildChildEnv, buildHello, buildHelloAck, buildPipelineEngine, buildPlanner, buildPlannerContext, buildRoleRegistry, composeTaskText, configDiagnostics, configureLogger, createAgent, createDefaultChatFn, createMemoryProvider, createProvider, createTaskEngine, decodeMessage, defaultAgentAdapters, defaultProjectConfigYaml, describeExit, describeSecretFindings, detectConflicts, encodeMessage, envelope, expandEnvRefs, extractMessage, extractReportFromText, findConfigFile, inspectDocument, isNetworkError, isOmniNodeError, isRetryable, isSupportedProtocol, isTimeoutError, killTree, kindFromStatus, loadConfig, loadConfigDetailed, logger, migrateProjectStores, newMessageId, normalizeEvidence, normalizeFinding, parseHello, parsePlanJson, parseRetryAfter, pipelineConfigSchema, pipelineStepConfigSchema, planJsonSchema, plannerConfigSchema, projectConfigSchema, providerConfigSchema, providerHttpError, providerTransportError, readDocument, registryKey, requestJson, resolveApiKey, resolveEnvPolicy, roleConfigSchema, sanitizeChunk, scanForInlineSecrets, similar, validateEnvelope, validatePlan, validateReport, validateWorkingDirectory, writeFileAtomic };
|
package/dist/index.js
CHANGED
|
@@ -1744,6 +1744,9 @@ var ProcessAgent = class {
|
|
|
1744
1744
|
clearTimeout(timer);
|
|
1745
1745
|
this.running.delete(input.taskId);
|
|
1746
1746
|
GLOBAL_RUNNING.delete(child);
|
|
1747
|
+
child.stdin?.destroy();
|
|
1748
|
+
child.stdout?.destroy();
|
|
1749
|
+
child.stderr?.destroy();
|
|
1747
1750
|
finish();
|
|
1748
1751
|
};
|
|
1749
1752
|
const collect = (into, chunk) => {
|
|
@@ -2543,18 +2546,31 @@ function sleep(ms) {
|
|
|
2543
2546
|
}
|
|
2544
2547
|
|
|
2545
2548
|
// src/audit/index.ts
|
|
2546
|
-
import { appendFile, mkdir as mkdir2, readFile as readFile2 } from "fs/promises";
|
|
2549
|
+
import { appendFile, mkdir as mkdir2, readFile as readFile2, rename as rename2, stat as stat2 } from "fs/promises";
|
|
2547
2550
|
import { dirname as dirname2 } from "path";
|
|
2551
|
+
var DEFAULT_AUDIT_MAX_BYTES = 5 * 1024 * 1024;
|
|
2548
2552
|
var FileAuditLog = class {
|
|
2549
2553
|
filePath;
|
|
2554
|
+
maxBytes;
|
|
2550
2555
|
log;
|
|
2551
|
-
constructor(directory = `${process.cwd()}/.omninode`, log = logger) {
|
|
2556
|
+
constructor(directory = `${process.cwd()}/.omninode`, log = logger, maxBytes = DEFAULT_AUDIT_MAX_BYTES) {
|
|
2552
2557
|
this.filePath = `${directory}/audit.jsonl`;
|
|
2558
|
+
this.maxBytes = maxBytes;
|
|
2553
2559
|
this.log = log.child({ component: "audit" });
|
|
2554
2560
|
}
|
|
2561
|
+
/** Rotates the log once it passes the size budget, keeping one backup. */
|
|
2562
|
+
async rotateIfNeeded() {
|
|
2563
|
+
try {
|
|
2564
|
+
const stats = await stat2(this.filePath);
|
|
2565
|
+
if (stats.size <= this.maxBytes) return;
|
|
2566
|
+
await rename2(this.filePath, `${this.filePath}.1`);
|
|
2567
|
+
} catch {
|
|
2568
|
+
}
|
|
2569
|
+
}
|
|
2555
2570
|
async record(event) {
|
|
2556
2571
|
try {
|
|
2557
2572
|
await mkdir2(dirname2(this.filePath), { recursive: true });
|
|
2573
|
+
await this.rotateIfNeeded();
|
|
2558
2574
|
await appendFile(this.filePath, `${JSON.stringify(event)}
|
|
2559
2575
|
`, "utf8");
|
|
2560
2576
|
} catch (error) {
|
|
@@ -3057,6 +3073,7 @@ var SEVERITY_RANK = {
|
|
|
3057
3073
|
high: 3,
|
|
3058
3074
|
critical: 4
|
|
3059
3075
|
};
|
|
3076
|
+
var MAX_COMBINED_FINDINGS = 200;
|
|
3060
3077
|
function aggregateReports(reports, options = {}) {
|
|
3061
3078
|
const threshold = options.similarityThreshold ?? 0.7;
|
|
3062
3079
|
const findingGroups = [];
|
|
@@ -3075,6 +3092,10 @@ function aggregateReports(reports, options = {}) {
|
|
|
3075
3092
|
const agreements = findingGroups.filter(
|
|
3076
3093
|
(group) => group.sources.length > 1 && group.severity !== void 0 && new Set(Object.values(group.severityBySource ?? {})).size === 1
|
|
3077
3094
|
);
|
|
3095
|
+
const maxFindings = options.maxFindings ?? MAX_COMBINED_FINDINGS;
|
|
3096
|
+
const orderedFindings = findingGroups.sort((a, b) => rank(b) - rank(a));
|
|
3097
|
+
const retainedFindings = orderedFindings.slice(0, maxFindings);
|
|
3098
|
+
const droppedFindings = orderedFindings.length - retainedFindings.length;
|
|
3078
3099
|
const disputed = conflicts.length;
|
|
3079
3100
|
const summary = `${reports.length} report(s) from ${sources.length > 0 ? sources.join(", ") : "no agents"}: ${findingGroups.length} unique finding group(s) (${totalRawFindings} raw), ${agreements.length} agreement(s), ${disputed} conflict(s), ${recommendationGroups.length} recommendation group(s).`;
|
|
3080
3101
|
return {
|
|
@@ -3084,7 +3105,7 @@ function aggregateReports(reports, options = {}) {
|
|
|
3084
3105
|
...options.pipelineRunId !== void 0 ? { pipelineRunId: options.pipelineRunId } : {},
|
|
3085
3106
|
taskIds: options.taskIds ?? [],
|
|
3086
3107
|
summary,
|
|
3087
|
-
findings:
|
|
3108
|
+
findings: retainedFindings,
|
|
3088
3109
|
agreements,
|
|
3089
3110
|
conflicts,
|
|
3090
3111
|
recommendations: recommendationGroups,
|
|
@@ -3097,7 +3118,8 @@ function aggregateReports(reports, options = {}) {
|
|
|
3097
3118
|
rawFindings: totalRawFindings,
|
|
3098
3119
|
findingGroups: findingGroups.length,
|
|
3099
3120
|
agreements: agreements.length,
|
|
3100
|
-
conflicts: conflicts.length
|
|
3121
|
+
conflicts: conflicts.length,
|
|
3122
|
+
findingsTruncated: droppedFindings
|
|
3101
3123
|
}
|
|
3102
3124
|
};
|
|
3103
3125
|
}
|
|
@@ -3530,6 +3552,13 @@ function describe(error) {
|
|
|
3530
3552
|
}
|
|
3531
3553
|
|
|
3532
3554
|
// src/pipelines/engine.ts
|
|
3555
|
+
var DEFAULT_MAX_PARALLEL_STEPS = 8;
|
|
3556
|
+
var MAX_COMBINED_CONTEXT_CHARS = 2e4;
|
|
3557
|
+
function budgetContext(context, maxChars = MAX_COMBINED_CONTEXT_CHARS) {
|
|
3558
|
+
if (context.length <= maxChars) return context;
|
|
3559
|
+
const marker = "\n[earlier context trimmed]\n";
|
|
3560
|
+
return marker + context.slice(context.length - (maxChars - marker.length));
|
|
3561
|
+
}
|
|
3533
3562
|
var PipelineEngine = class {
|
|
3534
3563
|
constructor(options) {
|
|
3535
3564
|
this.options = options;
|
|
@@ -3725,24 +3754,35 @@ var PipelineEngine = class {
|
|
|
3725
3754
|
if (ready.length === 0) {
|
|
3726
3755
|
throw new PipelineError("PIPELINE_FAILED", `Pipeline "${def.id}" scheduling stalled.`);
|
|
3727
3756
|
}
|
|
3728
|
-
const settled =
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3757
|
+
const settled = [];
|
|
3758
|
+
const limit = Math.max(1, this.options.maxParallelSteps ?? DEFAULT_MAX_PARALLEL_STEPS);
|
|
3759
|
+
for (let offset = 0; offset < ready.length; offset += limit) {
|
|
3760
|
+
const batch = ready.slice(offset, offset + limit);
|
|
3761
|
+
settled.push(
|
|
3762
|
+
...await Promise.all(
|
|
3763
|
+
batch.map(async (step) => {
|
|
3764
|
+
if (!this.shouldRun(step, deps.get(step.id) ?? [], outcomes)) {
|
|
3765
|
+
return { status: "skipped", summary: "", taskIds: [], reports: [] };
|
|
3766
|
+
}
|
|
3767
|
+
const ctx = {
|
|
3768
|
+
maxContextChars: this.options.maxContextChars,
|
|
3769
|
+
objective,
|
|
3770
|
+
...role ? { role } : {},
|
|
3771
|
+
combinedContext: budgetContext(
|
|
3772
|
+
contextParts.join("\n\n"),
|
|
3773
|
+
this.options.maxContextChars ?? MAX_COMBINED_CONTEXT_CHARS
|
|
3774
|
+
),
|
|
3775
|
+
reports: [...allReports],
|
|
3776
|
+
pipelineRunId: run.id,
|
|
3777
|
+
runId: run.id,
|
|
3778
|
+
pipelineDefId: def.id,
|
|
3779
|
+
taskId: run.id
|
|
3780
|
+
};
|
|
3781
|
+
return this.executeStep(step, ctx);
|
|
3782
|
+
})
|
|
3783
|
+
)
|
|
3784
|
+
);
|
|
3785
|
+
}
|
|
3746
3786
|
ready.forEach((step, index) => {
|
|
3747
3787
|
const outcome = settled[index];
|
|
3748
3788
|
outcomes.set(step.id, outcome);
|
|
@@ -3967,7 +4007,9 @@ ${contribution}`);
|
|
|
3967
4007
|
};
|
|
3968
4008
|
}
|
|
3969
4009
|
async runPlan(step, ctx) {
|
|
3970
|
-
const aggregated = ctx.reports.length > 0 ? aggregateReports(ctx.reports
|
|
4010
|
+
const aggregated = ctx.reports.length > 0 ? aggregateReports(ctx.reports, {
|
|
4011
|
+
...step.constraints !== void 0 && step.constraints.length > 0 ? { maxFindings: MAX_COMBINED_FINDINGS } : {}
|
|
4012
|
+
}) : void 0;
|
|
3971
4013
|
const request = {
|
|
3972
4014
|
objective: ctx.objective,
|
|
3973
4015
|
reports: ctx.reports,
|
|
@@ -4430,14 +4472,16 @@ async function migrateProjectStores(directory = `${process.cwd()}/.omninode`, op
|
|
|
4430
4472
|
}
|
|
4431
4473
|
|
|
4432
4474
|
// src/version.ts
|
|
4433
|
-
var OMNINODE_VERSION = "2.0.0-alpha.
|
|
4475
|
+
var OMNINODE_VERSION = "2.0.0-alpha.20";
|
|
4434
4476
|
export {
|
|
4435
4477
|
AgentAdapterRegistry,
|
|
4436
4478
|
AgentError,
|
|
4437
4479
|
AgentRegistry,
|
|
4438
4480
|
ConfigError,
|
|
4439
4481
|
ConsoleLogSink,
|
|
4482
|
+
DEFAULT_AUDIT_MAX_BYTES,
|
|
4440
4483
|
DEFAULT_MAX_OUTPUT_BYTES,
|
|
4484
|
+
DEFAULT_MAX_PARALLEL_STEPS,
|
|
4441
4485
|
FileAuditLog,
|
|
4442
4486
|
FilePipelineRunStore,
|
|
4443
4487
|
FilePlanStore,
|
|
@@ -4447,6 +4491,8 @@ export {
|
|
|
4447
4491
|
JsonFileStore,
|
|
4448
4492
|
LocalMemoryProvider,
|
|
4449
4493
|
Logger,
|
|
4494
|
+
MAX_COMBINED_CONTEXT_CHARS,
|
|
4495
|
+
MAX_COMBINED_FINDINGS,
|
|
4450
4496
|
MAX_CONTEXT_CHARS,
|
|
4451
4497
|
MAX_MESSAGE_BYTES,
|
|
4452
4498
|
MAX_REPORT_BYTES,
|
|
@@ -4481,6 +4527,7 @@ export {
|
|
|
4481
4527
|
aggregateReports,
|
|
4482
4528
|
appConfigSchema,
|
|
4483
4529
|
authHeaders,
|
|
4530
|
+
budgetContext,
|
|
4484
4531
|
buildAgentRegistry,
|
|
4485
4532
|
buildChildEnv,
|
|
4486
4533
|
buildHello,
|