@harness-engineering/orchestrator 0.5.0 → 0.6.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/dist/index.d.mts +315 -4
- package/dist/index.d.ts +315 -4
- package/dist/index.js +1781 -355
- package/dist/index.mjs +1753 -323
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Issue, AgentEvent, WorkflowConfig, TokenUsage, ConcernSignal, ScopeTier, EscalationConfig, RoutingDecision, Result, WorkflowDefinition, WorkspaceConfig, HooksConfig, AgentBackend, SessionStartParams, AgentSession, AgentError, TurnParams, TurnResult, BackendDef, RoutingConfig, RoutingUseCase, ContainerConfig, SecretConfig, AgentConfig, TokenScope, AuthToken, AuthTokenPublic, IndexedFileKind, SessionSearchResult, ReindexStats, SessionSummarizationConfig, SessionSummary, SessionSummaryMeta, SessionsConfig, GatewayEvent, NotificationEnvelope, NotificationDeliveryResult, NotificationSinkConfig, NotificationsConfig } from '@harness-engineering/types';
|
|
2
|
-
import { IssueTrackerClient, Issue as Issue$1, TrackerConfig, CacheMetricsRecorder, ArchiveHooks } from '@harness-engineering/core';
|
|
1
|
+
import { Issue, AgentEvent, WorkflowConfig, TokenUsage, ConcernSignal, ScopeTier, EscalationConfig, RoutingDecision, Result, WorkflowDefinition, WorkspaceConfig, HooksConfig, AgentBackend, SessionStartParams, AgentSession, AgentError, TurnParams, TurnResult, CheckScriptDefinition, OutputRetentionConfig, BackendDef, RoutingConfig, RoutingUseCase, ContainerConfig, SecretConfig, AgentConfig, CustomTaskDefinition, TokenScope, AuthToken, AuthTokenPublic, IndexedFileKind, SessionSearchResult, ReindexStats, SessionSummarizationConfig, SessionSummary, SessionSummaryMeta, SessionsConfig, GatewayEvent, NotificationEnvelope, NotificationDeliveryResult, NotificationSinkConfig, NotificationsConfig } from '@harness-engineering/types';
|
|
2
|
+
import { IssueTrackerClient, Issue as Issue$1, TrackerConfig, CacheMetricsRecorder, ArchiveHooks, SkillProposal, ProposalGateFinding } from '@harness-engineering/core';
|
|
3
3
|
import { EnrichedSpec, ComplexityScore, SimulationResult, IntelligencePipeline, WeightedRecommendation, AnalysisProvider } from '@harness-engineering/intelligence';
|
|
4
4
|
import { GraphStore } from '@harness-engineering/graph';
|
|
5
5
|
import { execFile } from 'node:child_process';
|
|
@@ -1084,8 +1084,10 @@ declare class PromptRenderer {
|
|
|
1084
1084
|
|
|
1085
1085
|
/**
|
|
1086
1086
|
* Internal types for the maintenance module.
|
|
1087
|
-
* Public config types (MaintenanceConfig, TaskOverride
|
|
1087
|
+
* Public config types (MaintenanceConfig, TaskOverride, CustomTaskDefinition,
|
|
1088
|
+
* CheckScriptDefinition, OutputRetentionConfig) live in @harness-engineering/types.
|
|
1088
1089
|
*/
|
|
1090
|
+
|
|
1089
1091
|
/**
|
|
1090
1092
|
* Classification of maintenance task execution strategy.
|
|
1091
1093
|
*
|
|
@@ -1095,6 +1097,85 @@ declare class PromptRenderer {
|
|
|
1095
1097
|
* - housekeeping: Run a mechanical command directly; no AI, no PR.
|
|
1096
1098
|
*/
|
|
1097
1099
|
type TaskType = 'mechanical-ai' | 'pure-ai' | 'report-only' | 'housekeeping';
|
|
1100
|
+
/**
|
|
1101
|
+
* Hermes Phase 2 — Provenance tag identifying the trigger source of a run.
|
|
1102
|
+
*
|
|
1103
|
+
* Set by the entry point, never user-configurable:
|
|
1104
|
+
* - 'cron' — scheduled by MaintenanceScheduler
|
|
1105
|
+
* - 'cli' — `harness maintenance run <id>`
|
|
1106
|
+
* - { kind: 'api', tokenName } — Gateway API trigger (Phase 0)
|
|
1107
|
+
* - { kind: 'chain', upstreamTaskId } — fired by a downstream `contextFrom`
|
|
1108
|
+
* dependency (reserved; not yet wired)
|
|
1109
|
+
*/
|
|
1110
|
+
type RunOrigin = 'cron' | 'cli' | {
|
|
1111
|
+
kind: 'api';
|
|
1112
|
+
tokenName: string;
|
|
1113
|
+
} | {
|
|
1114
|
+
kind: 'chain';
|
|
1115
|
+
upstreamTaskId: string;
|
|
1116
|
+
};
|
|
1117
|
+
/**
|
|
1118
|
+
* Per-task cost ceiling (Hermes Phase 5).
|
|
1119
|
+
*
|
|
1120
|
+
* When set, the orchestrator's `CostCeilingMonitor` tracks cumulative
|
|
1121
|
+
* agent spend for the task and aborts dispatch on exceed (D6 — abort
|
|
1122
|
+
* is advisory at the turn boundary).
|
|
1123
|
+
*/
|
|
1124
|
+
interface TaskCostCeiling {
|
|
1125
|
+
/** Hard cap in USD. Cumulative spend > maxUsd fires the abort path. */
|
|
1126
|
+
maxUsd: number;
|
|
1127
|
+
/** Warn threshold expressed as a percentage of `maxUsd` (1–99). */
|
|
1128
|
+
warnAtPct?: number;
|
|
1129
|
+
}
|
|
1130
|
+
/**
|
|
1131
|
+
* Definition of a maintenance task (built-in or Phase 2 custom).
|
|
1132
|
+
*
|
|
1133
|
+
* Custom-task-only fields (`checkScript`, `inlineSkills`, `inlineSkillsBudgetTokens`,
|
|
1134
|
+
* `contextFrom`, `contextFromMaxAgeMinutes`, `outputRetention`, `isCustom`) are
|
|
1135
|
+
* populated by the scheduler when merging `MaintenanceConfig.customTasks` into the
|
|
1136
|
+
* resolved task list. Built-ins leave them unset and the runner falls through to
|
|
1137
|
+
* the legacy execution paths unchanged.
|
|
1138
|
+
*/
|
|
1139
|
+
interface TaskDefinition {
|
|
1140
|
+
/** Unique identifier for this task (e.g., 'arch-violations') */
|
|
1141
|
+
id: string;
|
|
1142
|
+
/** Execution strategy */
|
|
1143
|
+
type: TaskType;
|
|
1144
|
+
/** Human-readable description */
|
|
1145
|
+
description: string;
|
|
1146
|
+
/** Default cron expression (e.g., '0 2 * * *' for daily at 2am) */
|
|
1147
|
+
schedule: string;
|
|
1148
|
+
/** Branch name for PRs, or null for report-only/housekeeping tasks */
|
|
1149
|
+
branch: string | null;
|
|
1150
|
+
/** CLI command args for the mechanical check step (mechanical-ai and report-only) */
|
|
1151
|
+
checkCommand?: string[];
|
|
1152
|
+
/** Skill name to dispatch for AI fix (mechanical-ai and pure-ai) */
|
|
1153
|
+
fixSkill?: string;
|
|
1154
|
+
/**
|
|
1155
|
+
* Per-task cost ceiling (Hermes Phase 5). When set, cumulative agent
|
|
1156
|
+
* spend across all turns dispatched for this task is tracked; the
|
|
1157
|
+
* orchestrator aborts dispatch on `maxUsd` exceedance with
|
|
1158
|
+
* `RunResult.error === 'cost_ceiling_exceeded'`. Default: unset = no cap.
|
|
1159
|
+
*/
|
|
1160
|
+
costCeiling?: TaskCostCeiling;
|
|
1161
|
+
/**
|
|
1162
|
+
* Hermes Phase 2 — Arbitrary-executable check (replaces `checkCommand`).
|
|
1163
|
+
* Mutually-exclusive with `checkCommand`; validator rejects both.
|
|
1164
|
+
*/
|
|
1165
|
+
checkScript?: CheckScriptDefinition;
|
|
1166
|
+
/** Hermes Phase 2 — Skill names whose markdown is inlined into the agent prompt. */
|
|
1167
|
+
inlineSkills?: string[];
|
|
1168
|
+
/** Hermes Phase 2 — Token-budget cap for inlined skills. Default: 8000. */
|
|
1169
|
+
inlineSkillsBudgetTokens?: number;
|
|
1170
|
+
/** Hermes Phase 2 — Upstream task IDs whose latest output feeds prompt context. */
|
|
1171
|
+
contextFrom?: string[];
|
|
1172
|
+
/** Hermes Phase 2 — Max upstream-output age (minutes). Default: 1440. */
|
|
1173
|
+
contextFromMaxAgeMinutes?: number;
|
|
1174
|
+
/** Hermes Phase 2 — Output retention overrides. */
|
|
1175
|
+
outputRetention?: OutputRetentionConfig;
|
|
1176
|
+
/** Hermes Phase 2 — Marks tasks originating from `customTasks` config. */
|
|
1177
|
+
isCustom?: boolean;
|
|
1178
|
+
}
|
|
1098
1179
|
/**
|
|
1099
1180
|
* Result of a single maintenance task run.
|
|
1100
1181
|
*/
|
|
@@ -1126,6 +1207,12 @@ interface RunResult {
|
|
|
1126
1207
|
* and `error === 'cost_ceiling_exceeded'`.
|
|
1127
1208
|
*/
|
|
1128
1209
|
costUsd?: number;
|
|
1210
|
+
/**
|
|
1211
|
+
* Hermes Phase 2 — Provenance tag set by the entry point.
|
|
1212
|
+
* Older orchestrators may emit this field absent; renderers should fall
|
|
1213
|
+
* back to `'—'` rather than crash.
|
|
1214
|
+
*/
|
|
1215
|
+
origin?: RunOrigin;
|
|
1129
1216
|
}
|
|
1130
1217
|
/**
|
|
1131
1218
|
* Schedule entry for a single task, used in MaintenanceStatus.
|
|
@@ -1614,6 +1701,147 @@ interface SyncMainOptions {
|
|
|
1614
1701
|
*/
|
|
1615
1702
|
declare function syncMain(repoRoot: string, opts?: SyncMainOptions): Promise<SyncMainResult>;
|
|
1616
1703
|
|
|
1704
|
+
/**
|
|
1705
|
+
* All 21 built-in maintenance task definitions with default schedules.
|
|
1706
|
+
*
|
|
1707
|
+
* Tasks are grouped by type:
|
|
1708
|
+
* - mechanical-ai (7): Run check first, dispatch AI only if fixable issues found
|
|
1709
|
+
* - pure-ai (4): Always dispatch AI agent on schedule
|
|
1710
|
+
* - report-only (7): Run command, record metrics, no PR
|
|
1711
|
+
* - housekeeping (3): Mechanical command, no AI, no PR
|
|
1712
|
+
*/
|
|
1713
|
+
declare const BUILT_IN_TASKS: readonly TaskDefinition[];
|
|
1714
|
+
|
|
1715
|
+
/**
|
|
1716
|
+
* Unified logger interface for all maintenance classes.
|
|
1717
|
+
* Matches StructuredLogger's shape.
|
|
1718
|
+
*/
|
|
1719
|
+
interface MaintenanceLogger {
|
|
1720
|
+
info(message: string, context?: Record<string, unknown>): void;
|
|
1721
|
+
warn(message: string, context?: Record<string, unknown>): void;
|
|
1722
|
+
error(message: string, context?: Record<string, unknown>): void;
|
|
1723
|
+
debug?(message: string, context?: Record<string, unknown>): void;
|
|
1724
|
+
}
|
|
1725
|
+
|
|
1726
|
+
/**
|
|
1727
|
+
* Hermes Phase 2 — A single persisted run entry.
|
|
1728
|
+
*
|
|
1729
|
+
* Mirrors `RunResult` plus the captured stdout/stderr, the parsed structured
|
|
1730
|
+
* status envelope (if any), the resolved upstream context that was injected
|
|
1731
|
+
* into the prompt (if any), and the trigger origin.
|
|
1732
|
+
*/
|
|
1733
|
+
interface PersistedOutputEntry {
|
|
1734
|
+
taskId: string;
|
|
1735
|
+
startedAt: string;
|
|
1736
|
+
completedAt: string;
|
|
1737
|
+
status: RunResult['status'];
|
|
1738
|
+
findings: number;
|
|
1739
|
+
fixed: number;
|
|
1740
|
+
prUrl: string | null;
|
|
1741
|
+
prUpdated: boolean;
|
|
1742
|
+
error?: string;
|
|
1743
|
+
costUsd?: number;
|
|
1744
|
+
origin?: RunOrigin;
|
|
1745
|
+
/** Raw captured stdout from the check step (or housekeeping command). */
|
|
1746
|
+
stdout?: string;
|
|
1747
|
+
/** Raw captured stderr from the check step. */
|
|
1748
|
+
stderr?: string;
|
|
1749
|
+
/** Structured envelope when a JSON status line was parsed; null otherwise. */
|
|
1750
|
+
structured?: Record<string, unknown> | null;
|
|
1751
|
+
/** Resolved upstream-context block, if any. */
|
|
1752
|
+
context?: string;
|
|
1753
|
+
}
|
|
1754
|
+
interface TaskOutputStoreOptions {
|
|
1755
|
+
/** Root directory under which `<taskId>/outputs/` lives. Default: `.harness/maintenance`. */
|
|
1756
|
+
rootDir: string;
|
|
1757
|
+
/** Default retention bounds applied when a task doesn't specify its own. */
|
|
1758
|
+
retentionDefaults?: Required<OutputRetentionConfig>;
|
|
1759
|
+
logger?: MaintenanceLogger;
|
|
1760
|
+
}
|
|
1761
|
+
/**
|
|
1762
|
+
* Persists per-task run outputs to disk and applies retention. The store is
|
|
1763
|
+
* intentionally simple: one file per run keyed by completion timestamp, JSON
|
|
1764
|
+
* payload, no SQLite. The chain-context read path (`latest`) and the
|
|
1765
|
+
* dashboard list path (`list`) both consume the same on-disk format.
|
|
1766
|
+
*
|
|
1767
|
+
* Concurrency: `processQueue` already serializes runs of the same task ID,
|
|
1768
|
+
* so the store assumes exclusive write access per task.
|
|
1769
|
+
*/
|
|
1770
|
+
declare class TaskOutputStore {
|
|
1771
|
+
private rootDir;
|
|
1772
|
+
private retentionDefaults;
|
|
1773
|
+
private logger;
|
|
1774
|
+
constructor(options: TaskOutputStoreOptions);
|
|
1775
|
+
/**
|
|
1776
|
+
* Reject task IDs that don't match the validator's kebab-case pattern —
|
|
1777
|
+
* defends `dirFor()` against caller-supplied path-traversal segments
|
|
1778
|
+
* (`'../foo'`) when the store is invoked from CLI surfaces that don't
|
|
1779
|
+
* round-trip through `validateCustomTasks`.
|
|
1780
|
+
*/
|
|
1781
|
+
private ensureSafeTaskId;
|
|
1782
|
+
/**
|
|
1783
|
+
* Persist a single run entry. Retention is applied after the write so
|
|
1784
|
+
* the latest record is durable even if pruning fails.
|
|
1785
|
+
*/
|
|
1786
|
+
write(taskId: string, entry: PersistedOutputEntry, retention?: OutputRetentionConfig): Promise<void>;
|
|
1787
|
+
/**
|
|
1788
|
+
* Return the most recent persisted entry for the task, or null if none.
|
|
1789
|
+
*/
|
|
1790
|
+
latest(taskId: string): Promise<PersistedOutputEntry | null>;
|
|
1791
|
+
/**
|
|
1792
|
+
* List entries newest-first with offset+limit pagination.
|
|
1793
|
+
*/
|
|
1794
|
+
list(taskId: string, limit: number, offset: number): Promise<PersistedOutputEntry[]>;
|
|
1795
|
+
/**
|
|
1796
|
+
* Lookup a specific run by its file name (without the `.json` suffix) or
|
|
1797
|
+
* by its raw completion timestamp.
|
|
1798
|
+
*/
|
|
1799
|
+
get(taskId: string, runId: string): Promise<PersistedOutputEntry | null>;
|
|
1800
|
+
/**
|
|
1801
|
+
* The on-disk root for a given task. Exposed for tooling that needs to walk
|
|
1802
|
+
* outputs from outside the store API.
|
|
1803
|
+
*/
|
|
1804
|
+
dirFor(taskId: string): string;
|
|
1805
|
+
private readEntry;
|
|
1806
|
+
private applyRetention;
|
|
1807
|
+
}
|
|
1808
|
+
|
|
1809
|
+
/**
|
|
1810
|
+
* Hermes Phase 2 — Validation errors surfaced by `validateCustomTasks`.
|
|
1811
|
+
*
|
|
1812
|
+
* `path` always begins with `customTasks.<taskId>` so the caller can render
|
|
1813
|
+
* it directly without re-prefixing. Multiple errors may be returned in a
|
|
1814
|
+
* single call; the validator does not short-circuit on the first failure.
|
|
1815
|
+
*/
|
|
1816
|
+
interface CustomTaskValidationError {
|
|
1817
|
+
path: string;
|
|
1818
|
+
message: string;
|
|
1819
|
+
}
|
|
1820
|
+
interface CustomTaskValidatorDeps {
|
|
1821
|
+
/** Returns true if a skill with this name exists in the project's registry. */
|
|
1822
|
+
skillExists?: (name: string) => boolean;
|
|
1823
|
+
/** Returns true if the executable referenced by a checkScript.path exists. */
|
|
1824
|
+
scriptExists?: (path: string) => boolean;
|
|
1825
|
+
}
|
|
1826
|
+
/**
|
|
1827
|
+
* Validates a `MaintenanceConfig.customTasks` map.
|
|
1828
|
+
*
|
|
1829
|
+
* Checks:
|
|
1830
|
+
* - kebab-case task IDs (matching the BUILT_IN_TASKS convention)
|
|
1831
|
+
* - no collision with built-in IDs
|
|
1832
|
+
* - per-type required fields (e.g., mechanical-ai must have `branch` + `fixSkill`)
|
|
1833
|
+
* - exactly one of `checkCommand` / `checkScript` for types that need a check step
|
|
1834
|
+
* - `contextFrom` cycle detection across the merged graph (built-ins + customs)
|
|
1835
|
+
* - `contextFrom` entries reference existing task IDs
|
|
1836
|
+
* - `inlineSkills` entries exist in the skill registry (when `skillExists` is provided)
|
|
1837
|
+
* - `checkScript.path` exists on disk (when `scriptExists` is provided)
|
|
1838
|
+
*
|
|
1839
|
+
* Returns `Ok(void)` when all custom tasks pass; otherwise an `Err` carrying
|
|
1840
|
+
* every distinct violation. The validator is pure: no I/O outside the
|
|
1841
|
+
* injected predicates.
|
|
1842
|
+
*/
|
|
1843
|
+
declare function validateCustomTasks(customTasks: Record<string, CustomTaskDefinition> | undefined, builtIns: readonly TaskDefinition[], deps?: CustomTaskValidatorDeps): Result<void, CustomTaskValidationError[]>;
|
|
1844
|
+
|
|
1617
1845
|
interface CreateTokenInput {
|
|
1618
1846
|
name: string;
|
|
1619
1847
|
scopes: TokenScope[];
|
|
@@ -1980,4 +2208,87 @@ interface WireParams {
|
|
|
1980
2208
|
}
|
|
1981
2209
|
declare function wireNotificationSinks({ bus, registry }: WireParams): () => void;
|
|
1982
2210
|
|
|
1983
|
-
|
|
2211
|
+
/**
|
|
2212
|
+
* Phase 4 gate (degraded mode, see spec D5).
|
|
2213
|
+
*
|
|
2214
|
+
* The full design calls for `harness skill run harness-soundness-review
|
|
2215
|
+
* --mode skill` against materialized proposal content. The skill-mode check
|
|
2216
|
+
* vocabulary is not yet designed; its design is the explicit follow-up spec
|
|
2217
|
+
* referenced in Phase 4's Non-goals.
|
|
2218
|
+
*
|
|
2219
|
+
* In v1 we run a small set of mechanical checks inline against the proposal
|
|
2220
|
+
* payload. They cover the obvious structural failures (unparseable YAML,
|
|
2221
|
+
* empty markdown, name/regex drift) without needing an LLM. The result
|
|
2222
|
+
* shape mirrors the eventual soundness-review output so the downstream
|
|
2223
|
+
* promote step (and dashboard panel) does not need to change when
|
|
2224
|
+
* skill-mode lands.
|
|
2225
|
+
*/
|
|
2226
|
+
declare class GateRunError extends Error {
|
|
2227
|
+
constructor(message: string);
|
|
2228
|
+
}
|
|
2229
|
+
interface GateResult {
|
|
2230
|
+
proposalId: string;
|
|
2231
|
+
status: SkillProposal['status'];
|
|
2232
|
+
findings: ProposalGateFinding[];
|
|
2233
|
+
runAt: string;
|
|
2234
|
+
}
|
|
2235
|
+
/**
|
|
2236
|
+
* Synchronously run the gate against the given proposal. The proposal is
|
|
2237
|
+
* read from disk, checks are computed, and the proposal JSON is patched
|
|
2238
|
+
* with the gate result. Returns the post-update gate snapshot for the
|
|
2239
|
+
* caller to render.
|
|
2240
|
+
*/
|
|
2241
|
+
declare function runGate(projectPath: string, proposalId: string): Promise<GateResult>;
|
|
2242
|
+
|
|
2243
|
+
declare class GateNotReadyError extends Error {
|
|
2244
|
+
constructor(message: string);
|
|
2245
|
+
}
|
|
2246
|
+
declare class PromotionError extends Error {
|
|
2247
|
+
constructor(message: string);
|
|
2248
|
+
}
|
|
2249
|
+
interface PromotionResult {
|
|
2250
|
+
proposalId: string;
|
|
2251
|
+
skillPath: string;
|
|
2252
|
+
/** Provenance field stamped onto the promoted skill. */
|
|
2253
|
+
provenance: 'agent-proposed';
|
|
2254
|
+
}
|
|
2255
|
+
/**
|
|
2256
|
+
* Promote a proposal to the skill catalog. Caller is responsible for
|
|
2257
|
+
* emitting `proposal.approved` after a successful return.
|
|
2258
|
+
*/
|
|
2259
|
+
declare function promote(projectPath: string, proposalId: string, decidedBy: string): Promise<PromotionResult>;
|
|
2260
|
+
|
|
2261
|
+
/**
|
|
2262
|
+
* Phase 4 — thin wrappers around the orchestrator event bus that emit the
|
|
2263
|
+
* three `proposal.*` lifecycle events with a stable, validated payload
|
|
2264
|
+
* shape. Both the webhook fan-out (gateway/webhooks/events.ts) and the
|
|
2265
|
+
* in-process notification dispatcher (notifications/events.ts) subscribe
|
|
2266
|
+
* to these topics; their envelope derivers know the field names below.
|
|
2267
|
+
*/
|
|
2268
|
+
interface ProposalCreatedData {
|
|
2269
|
+
id: string;
|
|
2270
|
+
kind: SkillProposal['kind'];
|
|
2271
|
+
name: string;
|
|
2272
|
+
targetSkill?: string;
|
|
2273
|
+
proposedBy: string;
|
|
2274
|
+
justification: string;
|
|
2275
|
+
}
|
|
2276
|
+
interface ProposalApprovedData {
|
|
2277
|
+
id: string;
|
|
2278
|
+
kind: SkillProposal['kind'];
|
|
2279
|
+
name: string;
|
|
2280
|
+
targetSkill?: string;
|
|
2281
|
+
decidedBy: string;
|
|
2282
|
+
}
|
|
2283
|
+
interface ProposalRejectedData {
|
|
2284
|
+
id: string;
|
|
2285
|
+
kind: SkillProposal['kind'];
|
|
2286
|
+
name: string;
|
|
2287
|
+
decidedBy: string;
|
|
2288
|
+
reason: string;
|
|
2289
|
+
}
|
|
2290
|
+
declare function emitProposalCreated(bus: EventEmitter, proposal: SkillProposal): void;
|
|
2291
|
+
declare function emitProposalApproved(bus: EventEmitter, proposal: SkillProposal): void;
|
|
2292
|
+
declare function emitProposalRejected(bus: EventEmitter, proposal: SkillProposal): void;
|
|
2293
|
+
|
|
2294
|
+
export { type AgentUpdateEvent, AnalysisArchive, type AnalysisRecord, type ApplyEventResult, type ArtifactPresence, type AttemptStats, BUILT_IN_TASKS, BackendRouter, type BackendRouterOptions, type BaseRefFallbackEvent, type BuildArchiveHooksOptions, ClaimManager, type ClaimManagerConfig, type CleanWorkspaceEffect, type CreateTokenInput, type CreateTokenResult, type CustomTaskValidationError, type DispatchEffect, type EmitLogEffect, type EscalateEffect, type ExecFileFn$1 as ExecFileFn, type FromConfigOptions, GateNotReadyError, type GateResult, GateRunError, type Highlight, type HighlightsInfo, type IndexedDoc, InteractionQueue, type LinearGraphQLExtension, LinearGraphQLStub, type LiveSession, MAX_ATTEMPTS, type MigrationResult, MockBackend, type NotificationSink, type NotificationSinkDeliverInput, ORCHESTRATOR_IDENTITY_FILE, Orchestrator, OrchestratorBackendFactory, type OrchestratorBackendFactoryOptions, type OrchestratorContext, type OrchestratorEvent, type OrchestratorState, PRDetector, type PRDetectorLogger, type PendingInteraction, type PersistedOutputEntry, PromotionError, type PromotionResult, PromptRenderer, type ProposalApprovedData, type ProposalCreatedData, type ProposalRejectedData, type PublishedIndex, type QueueInsertInput, type QueueRow, type QueueStats, RETRY_DELAYS_MS, type RateLimitSnapshot as RateLimitComputeSnapshot, type RateLimitConfig, type RateLimitSnapshot$1 as RateLimitSnapshot, type RegistryEntry, type ReleaseClaimEffect, type RetryEntry, type RetryFiredEvent, RoadmapTrackerAdapter, type RunAttemptPhase, type RunOrigin, type RunningEntry, type ScheduleRetryEffect, type SearchOptions, type SideEffect, SinkConfigError, SinkRegistry, SlackSink, type SlackSinkOptions, SqliteSearchIndex, type StallDetectedEvent, type StopEffect, type StreamManifest, StreamRecorder, type SummarizeContext, type SummarizeResult, type SyncMainOptions, type SyncMainResult, type SyncSkipReason, type TaskDefinition, TaskOutputStore, type TaskType, type TickEvent, TokenStore, type TokenTotals, type TriageConfig, type TriageDecision, type TriageSignals, type TriageSkill, type UpdateTokensEffect, WebhookQueue, type WorkerExitEvent, WorkflowLoader, WorkspaceHooks, WorkspaceManager, type WorkspaceManagerOptions, applyEvent, artifactPresenceFromIssue, buildArchiveHooks, calculateRetryDelay, canDispatch, computeRateLimitDelay, createBackend, createEmptyState, detectScopeTier, emitProposalApproved, emitProposalCreated, emitProposalRejected, extractHighlights, extractTitlePrefix, getAvailableSlots, getDefaultConfig, getPerStateCount, indexSessionDirectory, isEligible, isSummaryEnabled, launchTUI, loadPublishedIndex, migrateAgentConfig, normalizeFts5Query, openSearchIndex, promote, reconcile, reindexFromArchive, renderAnalysisComment, renderLlmSummaryMarkdown, renderPRComment, resolveEscalationConfig, resolveOrchestratorId, routeIssue, runGate, savePublishedIndex, searchIndexPath, selectCandidates, sortCandidates, summarizeArchivedSession, syncMain, triageIssue, truncateForBudget, validateCustomTasks, validateWorkflowConfig, wireNotificationSinks, wrapAsEnvelope };
|