@wrongstack/core 0.302.2 → 0.305.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.
Files changed (97) hide show
  1. package/README.md +1 -1
  2. package/dist/chronicle/index.js +117 -30
  3. package/dist/chronicle/project-server.js +12 -5
  4. package/dist/coordination/agents/index.js +4645 -3448
  5. package/dist/coordination/agents/project-agent-auto-optimize.d.ts +116 -0
  6. package/dist/coordination/agents/project-agent-capture-window.d.ts +29 -0
  7. package/dist/coordination/agents/project-agent-config-io.d.ts +11 -0
  8. package/dist/coordination/agents/project-agent-consolidation.d.ts +34 -2
  9. package/dist/coordination/agents/project-agent-directive-outcome.d.ts +57 -0
  10. package/dist/coordination/agents/project-agent-files.d.ts +12 -3
  11. package/dist/coordination/agents/project-agent-identity-types.d.ts +4 -0
  12. package/dist/coordination/agents/project-agent-identity.d.ts +38 -11
  13. package/dist/coordination/agents/project-agent-learning-entries.d.ts +8 -2
  14. package/dist/coordination/agents/project-agent-learning-policy.d.ts +22 -1
  15. package/dist/coordination/agents/project-agent-learning-structured.d.ts +72 -1
  16. package/dist/coordination/agents/project-agent-optimizer.d.ts +49 -0
  17. package/dist/coordination/agents/project-agent-quarantine.d.ts +63 -0
  18. package/dist/coordination/agents/project-agent-skill-layer.d.ts +146 -0
  19. package/dist/coordination/agents/role-skills.d.ts +11 -1
  20. package/dist/coordination/agents/types.d.ts +10 -2
  21. package/dist/coordination/director-prompts.d.ts +19 -6
  22. package/dist/coordination/director-tools.d.ts +2 -2
  23. package/dist/coordination/fleet.d.ts +0 -6
  24. package/dist/coordination/index.d.ts +1 -1
  25. package/dist/coordination/index.js +5746 -4326
  26. package/dist/coordination/mail-tools.d.ts +1 -1
  27. package/dist/core/agent-types.d.ts +4 -2
  28. package/dist/core/agent.d.ts +1 -0
  29. package/dist/core/context.d.ts +19 -0
  30. package/dist/core/conversation-state.d.ts +14 -0
  31. package/dist/core/fallback-profile-manager.d.ts +70 -2
  32. package/dist/core/index.js +317 -108
  33. package/dist/core/system-prompt-blocks.d.ts +1 -1
  34. package/dist/core/system-prompt-builder.d.ts +13 -1
  35. package/dist/core/system-prompt-glossary.d.ts +73 -0
  36. package/dist/core/system-prompt-memory-skills.d.ts +2 -2
  37. package/dist/defaults/index.js +1635 -1120
  38. package/dist/execution/council-orchestrator.d.ts +3 -13
  39. package/dist/execution/index.js +3136 -2706
  40. package/dist/execution/one-shot-llm.d.ts +5 -0
  41. package/dist/goal/index.js +7 -0
  42. package/dist/hq/index.js +17 -7
  43. package/dist/hq/protocol/kanban.d.ts +21 -0
  44. package/dist/hq/protocol.js +5 -1
  45. package/dist/hq/redaction.d.ts +14 -0
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.js +5502 -3483
  48. package/dist/infrastructure/index.js +247 -122
  49. package/dist/kernel/events/agent-events.d.ts +28 -0
  50. package/dist/plugin/index.js +111 -7
  51. package/dist/registry/index.js +11 -0
  52. package/dist/registry/tool-registry.d.ts +8 -0
  53. package/dist/replay/hash.d.ts +9 -0
  54. package/dist/replay/index.js +14 -4
  55. package/dist/replay/replay-provider-runner.d.ts +31 -1
  56. package/dist/security/index.js +92 -21
  57. package/dist/security/kanban-boundary.d.ts +5 -1
  58. package/dist/security/secret-vault.d.ts +2 -0
  59. package/dist/session-catalog/index.js +86 -10
  60. package/dist/session-catalog/project-server.js +100 -17
  61. package/dist/session-catalog/protocol.d.ts +20 -4
  62. package/dist/session-catalog/store.d.ts +19 -3
  63. package/dist/storage/index.js +305 -69
  64. package/dist/storage/memory-consolidator.d.ts +4 -2
  65. package/dist/storage/plan-store.d.ts +1 -1
  66. package/dist/storage/session-resume-validation.d.ts +24 -0
  67. package/dist/storage/session-store/directory-scan.d.ts +5 -1
  68. package/dist/storage/session-store/fork-session.d.ts +13 -1
  69. package/dist/storage/session-store/load-cache.d.ts +11 -0
  70. package/dist/storage/session-store/prune-helpers.d.ts +5 -0
  71. package/dist/storage/session-store.d.ts +18 -0
  72. package/dist/tasking/index.js +5 -0
  73. package/dist/tools/index.js +1151 -831
  74. package/dist/types/config/mcp-features.d.ts +31 -1
  75. package/dist/types/config/root.d.ts +23 -1
  76. package/dist/types/config/skills-fleet-brain.d.ts +34 -0
  77. package/dist/types/config/tools.d.ts +22 -0
  78. package/dist/types/config/ui.d.ts +14 -0
  79. package/dist/types/config.d.ts +1 -0
  80. package/dist/types/default-config.d.ts +1 -0
  81. package/dist/types/index.d.ts +2 -2
  82. package/dist/types/index.js +23 -0
  83. package/dist/types/multi-agent.d.ts +7 -0
  84. package/dist/types/session.d.ts +9 -1
  85. package/dist/types/task-graph.d.ts +2 -0
  86. package/dist/types/tool-executor.d.ts +2 -0
  87. package/dist/utils/index.d.ts +1 -0
  88. package/dist/utils/index.js +217 -76
  89. package/dist/utils/project-state-guard.d.ts +21 -0
  90. package/dist/utils/session-scoped-path.d.ts +17 -0
  91. package/dist/utils/todos-format.d.ts +20 -0
  92. package/instructions/leader-after-task.md +3 -4
  93. package/instructions/system-lite.md +17 -14
  94. package/instructions/system-pro.md +29 -30
  95. package/instructions/system.md +29 -28
  96. package/package.json +3 -3
  97. package/skills/wrongstack-kanban/SKILL.md +95 -93
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Project-specific **skill development** layer for roster agents.
3
+ *
4
+ * This is deliberately not a memory store. A roster agent's skills are what it
5
+ * knows how to *do*; this layer lets a project grow those skills in place — the
6
+ * bundled `testing` skill body, plus everything this project has taught the
7
+ * `verifier` agent about testing *here*. The addendum is injected directly
8
+ * beneath the bundled skill body at spawn time, so the agent reads one coherent
9
+ * skill rather than a skill plus a pile of recalled facts.
10
+ *
11
+ * Files under `.wrongstack/agents/<role>/skills/`:
12
+ * `<skill>.md` — project addendum for that skill (distilled, bounded)
13
+ * `affinity.json` — per-skill load/outcome/learning counters that drive which
14
+ * skills are eagerly loaded for this role in this project
15
+ *
16
+ * Ownership: capture routes each learned directive to a skill
17
+ * (`project-agent-identity.ts`); the optimization pass distills the routed
18
+ * directives into `<skill>.md`; the spawn path reads both
19
+ * (`packages/cli/src/fleet/host-context.ts`).
20
+ */
21
+ /** Hard cap on a single skill addendum. Keeps the spawn budget predictable. */
22
+ export declare const SKILL_AUGMENTATION_MAX_BYTES = 6144;
23
+ /** Default number of skills eagerly loaded into a spawn. */
24
+ export declare const DEFAULT_EAGER_SKILL_LIMIT = 3;
25
+ export declare function isProjectSkillName(name: string): boolean;
26
+ export declare function assertProjectSkillName(name: string): string;
27
+ export declare function projectSkillsDir(role: string, projectRoot?: string): string;
28
+ export declare function projectSkillAugmentationPath(role: string, skill: string, projectRoot?: string): string;
29
+ export declare function projectSkillAffinityPath(role: string, projectRoot?: string): string;
30
+ export declare function loadProjectSkillAugmentation(role: string, skill: string, projectRoot?: string): string;
31
+ export declare function saveProjectSkillAugmentation(role: string, skill: string, content: string, projectRoot?: string): string;
32
+ export declare function clearProjectSkillAugmentation(role: string, skill?: string, projectRoot?: string): void;
33
+ /** Skill names that have a project addendum for this role. */
34
+ export declare function listProjectSkillAugmentations(role: string, projectRoot?: string): string[];
35
+ /**
36
+ * Render a distilled skill addendum. Used as the deterministic fallback when no
37
+ * LLM is available — the directives are already instructive, so emitting them
38
+ * verbatim under a stable header is strictly better than no addendum.
39
+ *
40
+ * `existing` is **not optional in practice**: this renderer only ever sees the
41
+ * directives currently sitting in the capture buffer, and the buffer is pruned
42
+ * after every successful optimization. Rendering from the buffer alone and
43
+ * writing the result over the file therefore deleted every directive distilled
44
+ * by an earlier pass. That happened silently on any headless box, and on a
45
+ * model-backed one whenever a single per-skill call timed out and the role-level
46
+ * consolidation then pruned; the only remaining copy was under `archive/`.
47
+ *
48
+ * Passing the current addendum in keeps it: prior body first, new directives
49
+ * appended, near-duplicates of lines already present dropped.
50
+ */
51
+ export declare function renderSkillAugmentation(role: string, skill: string, directives: readonly string[], updatedAt: string, existing?: string): string;
52
+ /**
53
+ * Instruction for the optimization pass: turn the directives that capture
54
+ * routed to one skill into that skill's project addendum.
55
+ */
56
+ export declare function buildSkillDistillInstruction(role: string, skill: string, directives: readonly string[], existing?: string, retired?: readonly string[]): string;
57
+ export interface SkillAffinityEntry {
58
+ /** Times this skill was eagerly loaded into a spawn of this role. */
59
+ loaded: number;
60
+ /** Task outcomes observed while this skill was loaded. */
61
+ succeeded: number;
62
+ failed: number;
63
+ /** Learned directives routed to this skill. */
64
+ learned: number;
65
+ lastUsedAt?: string | undefined;
66
+ /** Operator pin — always selected, never rotated out. */
67
+ pinned?: boolean | undefined;
68
+ }
69
+ export interface SkillAffinity {
70
+ role: string;
71
+ entries: Record<string, SkillAffinityEntry>;
72
+ updatedAt: string;
73
+ }
74
+ export declare function loadSkillAffinity(role: string, projectRoot?: string): SkillAffinity;
75
+ /** Record that these skills were loaded into a spawn of `role`. */
76
+ export declare function recordSkillLoad(role: string, skills: readonly string[], projectRoot?: string): void;
77
+ /**
78
+ * Record the outcome of a task that ran with these skills loaded.
79
+ *
80
+ * Also stamps `lastUsedAt`: an outcome is the strongest evidence that a skill
81
+ * was in use, and the recency decay in {@link scoreSkillAffinity} reads that
82
+ * stamp. Leaving it to `recordSkillLoad` alone meant an affinity file written
83
+ * only through this path looked like it had never been touched.
84
+ */
85
+ export declare function recordSkillOutcome(role: string, skills: readonly string[], ok: boolean, projectRoot?: string): void;
86
+ /** Record that a learned directive was routed to this skill. */
87
+ export declare function recordSkillLearned(role: string, skill: string, projectRoot?: string): void;
88
+ export declare function setSkillPinned(role: string, skill: string, pinned: boolean, projectRoot?: string): SkillAffinity;
89
+ /** Half-life of outcome evidence, in days. Older evidence fades toward neutral. */
90
+ export declare const SKILL_EVIDENCE_HALF_LIFE_DAYS = 30;
91
+ /**
92
+ * Score a skill for this role. Higher wins. Deterministic and monotone: with no
93
+ * recorded history every candidate scores exactly the same, so ranking falls
94
+ * back to the curated order and a fresh project behaves as if this layer did
95
+ * not exist.
96
+ *
97
+ * Four properties the previous scoring got wrong, each of which showed up as a
98
+ * skill that could not be dislodged:
99
+ *
100
+ * 1. **Failure counts against a skill.** The old form skipped Laplace smoothing
101
+ * when there were no outcomes, so "no evidence" scored 0 while ten straight
102
+ * failures scored 0.25 — failure ranked as evidence of relevance. The
103
+ * success rate is now centred on the 0.5 prior, so a losing record is
104
+ * negative and an untried skill is exactly neutral.
105
+ * 2. **Exposure is not merit.** `min(loaded, 10) * 0.1` paid a skill up to a
106
+ * full point for having been selected, which is a loop: selected skills
107
+ * out-scored unselected ones because they had been selected. The term is now
108
+ * an exploration bonus that *decays* with load count, so a skill that has
109
+ * never been tried is the one with something to prove.
110
+ * 3. **Evidence goes stale.** Counters are lifetime totals; a project that
111
+ * switched test runners four months ago still carried the old runner's wins
112
+ * at full weight. Outcome evidence now decays with a
113
+ * {@link SKILL_EVIDENCE_HALF_LIFE_DAYS}-day half-life.
114
+ * 4. **One chatty skill could pin the top slot.** `learned * 2` is unbounded, so
115
+ * a skill that attracts routing dominates every other signal forever. It is
116
+ * now logarithmic: still the strongest single term, no longer a lock.
117
+ *
118
+ * A missing `lastUsedAt` means "unknown", not "ancient" — legacy affinity files
119
+ * written before the field existed must not have their evidence zeroed.
120
+ */
121
+ export declare function scoreSkillAffinity(entry: SkillAffinityEntry | undefined, now?: number): number;
122
+ /**
123
+ * Rank the candidate skills for a role by project affinity, keeping the
124
+ * curated order as a stable tie-break, and return at most `limit` names.
125
+ *
126
+ * A skill that has accumulated project-specific learning outranks one that has
127
+ * not: the whole point of the layer is that a skill the project actually
128
+ * developed is more valuable here than a generic sibling.
129
+ */
130
+ export declare function rankRoleSkills(role: string, candidates: readonly string[], projectRoot?: string, limit?: number): string[];
131
+ /**
132
+ * Every skill this role could legitimately develop in this project:
133
+ * the project override when present, otherwise the curated catalog set (or the
134
+ * base role's set for a project-created role), always unioned with any skill
135
+ * that already carries a project addendum.
136
+ */
137
+ export declare function resolveRoleSkillCandidates(role: string, projectRoot?: string): string[];
138
+ /** Explicit tag form the agent can use: `## LEARNED [skill: testing]`. */
139
+ export declare const LEARNED_SKILL_TAG: RegExp;
140
+ /**
141
+ * Route a captured directive to one of the role's candidate skills.
142
+ * Returns `undefined` when nothing matches well enough — an unrouted directive
143
+ * stays role-level rather than being forced into the wrong skill.
144
+ */
145
+ export declare function routeDirectiveToSkill(text: string, candidates: readonly string[]): string | undefined;
146
+ //# sourceMappingURL=project-agent-skill-layer.d.ts.map
@@ -97,6 +97,16 @@ export declare const ROLE_SKILL_SETS: {
97
97
  export type CatalogRoleWithSkills = keyof typeof ROLE_SKILL_SETS;
98
98
  /** Standalone operational role that lives outside the phase catalog. */
99
99
  export declare const SHADOW_AGENT_SKILLS: ("api-design" | "audit-log" | "bug-hunter" | "chimera" | "data-governance" | "docker-deploy" | "git-flow" | "mnemosyne" | "multi-agent" | "node-modern" | "observability" | "output-standards" | "plugin-author" | "prompt-engineering" | "react-modern" | "refactor-planner" | "research-web" | "sdd" | "security-scanner" | "skill-creator" | "tech-stack" | "testing" | "typescript-strict" | "wrongstack-mailbox")[];
100
- /** Attach a bounded, fresh skill-name array so catalog templates remain mutation-safe. */
100
+ export declare const MAX_EAGER_ROSTER_SKILLS = 3;
101
+ /**
102
+ * Attach a bounded, fresh skill-name array so catalog templates remain
103
+ * mutation-safe.
104
+ *
105
+ * `skillNames` stays capped at `MAX_EAGER_ROSTER_SKILLS` — it is the default
106
+ * eager set for a project with no learning history. The full curated set is
107
+ * also carried as `skillPool` so the spawn path can rank *all* candidates by
108
+ * project affinity instead of being permanently limited to whichever three
109
+ * happened to be written first in this file.
110
+ */
101
111
  export declare function assignSkillsToAgents(definitions: readonly AgentDefinition[]): AgentDefinition[];
102
112
  //# sourceMappingURL=role-skills.d.ts.map
@@ -91,8 +91,16 @@ export declare const TOOLS: {
91
91
  readonly write: readonly ["read", "grep", "glob", "search", "tree", "write", "edit", "replace", "patch", "mailbox"];
92
92
  /** Full build loop: edit + run (lint/format/typecheck/test/bash). */
93
93
  readonly build: readonly ["read", "grep", "glob", "search", "tree", "write", "edit", "replace", "patch", "bash", "exec", "lint", "format", "typecheck", "test", "mailbox"];
94
- /** Version control. */
95
- readonly vcs: readonly ["read", "grep", "glob", "git", "diff"];
94
+ /**
95
+ * Version control.
96
+ *
97
+ * `mailbox` is in every preset on purpose: a subagent that hits a wall must
98
+ * be able to say so. This was the one preset without it, which left the `git`
99
+ * and `release` roles able to fail but not to ask — the two roles whose work
100
+ * most often needs a decision from the leader (force-push, tag collision,
101
+ * dirty tree) and least often has a safe default.
102
+ */
103
+ readonly vcs: readonly ["read", "grep", "glob", "git", "diff", "mailbox"];
96
104
  /** Dependency management + CVE audit. */
97
105
  readonly deps: readonly ["read", "grep", "glob", "install", "outdated", "audit", "json", "mailbox"];
98
106
  /** Documentation authoring. */
@@ -101,13 +101,22 @@ export interface SubagentPromptParts {
101
101
  */
102
102
  export declare function composeSubagentPrompt(parts?: SubagentPromptParts): string;
103
103
  /**
104
- * Render a short bullet list summarising a roster — useful for stuffing
105
- * into `composeDirectorPrompt({ rosterSummary })` so the director model
106
- * can see available roles without scanning tool descriptions.
104
+ * Render a bullet list summarising a roster — stuffed into
105
+ * `composeDirectorPrompt({ rosterSummary })` so the leader can see the roles it
106
+ * may spawn without scanning tool descriptions.
107
107
  *
108
- * Each entry: `- <role-id>: <name>[ (provider/model)] — <prompt-headline>`
109
- * The prompt headline is the first non-empty line of `config.prompt`,
110
- * truncated to 80 chars. Skipped entirely when the role has no prompt.
108
+ * Each entry: `- <role-id>[ (<name>)][ (provider/model)] — <capability>`
109
+ *
110
+ * The capability comes from `dispatch.summary`, the curated one-liner the
111
+ * catalog already writes for every agent and the dispatcher already routes on.
112
+ * It used to come from the first 80 characters of `config.prompt`, which is
113
+ * how a 77-role menu came to read as 77 variations of "You are the X agent.
114
+ * Your job is…" with the discriminating half cut off. A leader given that list
115
+ * can only reliably pick the roles whose id spells out the job — and the usage
116
+ * data matched exactly that: 57 of the 77 roles had never once been chosen.
117
+ *
118
+ * The prompt headline stays as the fallback for roles with no dispatch
119
+ * metadata, so a hand-written project role is still listed.
111
120
  */
112
121
  export declare function rosterSummaryFromConfigs(roster: Record<string, {
113
122
  name: string;
@@ -115,5 +124,9 @@ export declare function rosterSummaryFromConfigs(roster: Record<string, {
115
124
  model?: string | undefined;
116
125
  prompt?: string | undefined;
117
126
  role?: string | undefined;
127
+ dispatch?: {
128
+ summary: string;
129
+ keywords: string[];
130
+ } | undefined;
118
131
  }>): string;
119
132
  //# sourceMappingURL=director-prompts.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import type { SubagentConfig } from '../types/multi-agent.js';
2
2
  import type { Tool } from '../types/tool.js';
3
3
  import type * as Host from './director-host-contracts.js';
4
- export { makeQualityGateTool } from './director-quality-gate-tool.js';
5
- export { makeCollabDebugTool, makeFleetEmitTool, makeWorkCompleteTool, } from './director-collab-tools.js';
6
4
  export { makeAskResultTool, makeAskTool, makeAssignTool, makeAwaitTasksTool, makeFleetTool, makeRollUpTool, makeTerminateAllTool, makeTerminateTool, } from './director-basic-tools.js';
5
+ export { makeCollabDebugTool, makeFleetEmitTool, makeWorkCompleteTool, } from './director-collab-tools.js';
6
+ export { makeQualityGateTool } from './director-quality-gate-tool.js';
7
7
  export declare function makeSpawnTool(director: Host.DirectorAdmissionPort, roster?: Record<string, SubagentConfig>): Tool;
8
8
  export declare function makeKanbanQueueTool(director: Host.DirectorLeaseRecoveryPort, roster?: Record<string, SubagentConfig>): Tool;
9
9
  //# sourceMappingURL=director-tools.d.ts.map
@@ -26,12 +26,6 @@ export declare const REFACTOR_PLANNER_AGENT: SubagentConfig;
26
26
  export declare const SECURITY_SCANNER_AGENT: SubagentConfig;
27
27
  /** Generic template used directly or cloned into project-specific roles. */
28
28
  export declare const GENERIC_AGENT: SubagentConfig;
29
- /**
30
- * All agents in a map for easy lookup by role. The 75-role phase catalog
31
- * (`ALL_AGENT_DEFINITIONS`) already includes `critic` and the historical
32
- * audit/review specialists. Adding standalone `generic` and `shadow-agent`
33
- * roles produces 77 unique built-in role ids.
34
- */
35
29
  export declare const FLEET_ROSTER: Record<string, SubagentConfig>;
36
30
  export interface FleetRosterBudget {
37
31
  timeoutMs?: number | undefined;
@@ -1,6 +1,6 @@
1
1
  export { createMessage, InMemoryAgentBridge, InMemoryBridgeTransport, } from './agent-bridge.js';
2
2
  export { type AgentFactory, type AgentFactoryResult, type AgentRunnerOptions, makeAgentSubagentRunner, withDisabledToolFiltering, } from './agent-subagent-runner.js';
3
- export { AGENT_CATALOG, AGENTS_BY_PHASE, type AgentBudgetTier, type AgentCapability, type AgentDefinition, type AgentPhase, ALL_AGENT_DEFINITIONS, applyProjectAgentConfig, assertProjectAgentRole, BUILD_AGENTS, buildConsolidationInstruction, buildProjectContextualizedPrompt, CAPTURE_COOLDOWN_MS, CAPTURE_MAX_PER_SESSION, type ConsolidationMetadata, type CreateProjectAgentInput, canCaptureNewLearned, captureLearnedFromAgentOutput, captureLearnedFromAgentOutputDetailed, clearProjectAgentConsolidated, createProjectAgent, createProjectAgentRoster, DELIVERY_AGENTS, DISCOVERY_AGENTS, DOMAIN_AGENTS, detectLearnedConflicts, getAgentDefinition, getProjectAgentLearnStats, HEAVY_BUDGET, hintLearnedNeedsSummarization, isConsolidated, KNOWLEDGE_AGENTS, LEARNED_HARD_LIMIT, LEARNED_SOFT_LIMIT, type LearnedCaptureResult, LIGHT_BUDGET, listProjectAgentLearnedEntries, listProjectAgentRoles, loadConsolidationMetadata, loadProjectAgentConfig, loadProjectAgentConsolidated, loadProjectAgentIdentity, loadProjectAgentLearned, loadProjectAgentLearningPolicy, loadProjectAgentProfile, loadRoleKnowledgeManifest, MEDIUM_BUDGET, META_AGENTS, PLANNING_AGENTS, type ProjectAgentConfig, type ProjectAgentLearningPolicy, type ProjectAgentProfile, REVIEW_AGENTS, type RoleKnowledgeManifest, refreshProjectAgentIdentity, resetProjectAgentIdentity, saveProjectAgentConsolidated, slugifyProjectAgentRole, updateProjectAgentConfig, updateProjectAgentIdentity, updateProjectAgentKnowledge, updateProjectAgentLearned, updateProjectAgentLearningPolicy, VERIFY_AGENTS, validateProjectAgentConfig, } from './agents/index.js';
3
+ export { AGENT_CATALOG, AGENTS_BY_PHASE, type AgentBudgetTier, type AgentCapability, type AgentDefinition, type AgentPhase, ALL_AGENT_DEFINITIONS, type AutoOptimizeDecision, type AutoOptimizeEvent, type AutoOptimizePolicy, type AutoOptimizePolicyOverrides, applyProjectAgentConfig, assertProjectAgentRole, BUILD_AGENTS, buildConsolidationInstruction, buildProjectContextualizedPrompt, buildSkillDistillInstruction, CAPTURE_COOLDOWN_MS, CAPTURE_MAX_PER_SESSION, CAPTURE_SESSION_WINDOW_MS, type ConsolidationMetadata, type CreateProjectAgentInput, canCaptureNewLearned, captureLearnedFromAgentOutput, captureLearnedFromAgentOutputDetailed, clearProjectAgentConsolidated, clearProjectSkillAugmentation, consolidatedDocumentPath, createProjectAgent, createProjectAgentRoster, DEFAULT_AUTO_OPTIMIZE_POLICY, DEFAULT_EAGER_SKILL_LIMIT, DELIVERY_AGENTS, DIRECTIVE_QUARANTINE_MAX_UTILITY, DIRECTIVE_QUARANTINE_MIN_APPLIED, DISCOVERY_AGENTS, type DirectiveOutcomeResult, DOMAIN_AGENTS, detectLearnedConflicts, directiveTrials, directiveUtility, directiveWasApplied, evaluateAutoOptimize, getAgentDefinition, getProjectAgentLearnStats, HEAVY_BUDGET, hintLearnedNeedsSummarization, isConsolidated, isProvenDirective, KNOWLEDGE_AGENTS, LEARNED_HARD_LIMIT, LEARNED_SOFT_LIMIT, type LearnedCaptureResult, LearningOptimizationScheduler, type LearningOptimizationSchedulerOptions, type LearningOptimizerLlm, LIGHT_BUDGET, listProjectAgentLearnedEntries, listProjectAgentRoles, listProjectSkillAugmentations, loadConsolidationMetadata, loadProjectAgentConfig, loadProjectAgentConsolidated, loadProjectAgentIdentity, loadProjectAgentLearned, loadProjectAgentLearningPolicy, loadProjectAgentProfile, loadProjectSkillAugmentation, loadRoleKnowledgeManifest, loadSkillAffinity, MEDIUM_BUDGET, META_AGENTS, type OptimizeLearningOptions, type OptimizeLearningResult, optimizeProjectAgentLearning, PLANNING_AGENTS, type ProjectAgentConfig, type ProjectAgentLearningPolicy, type ProjectAgentProfile, type QuarantinedDirective, quarantinePath, REVIEW_AGENTS, type RoleKnowledgeManifest, rankRoleSkills, readQuarantinedDirectives, readRawLearnedEntries, recordDirectiveOutcomes, recordSkillLoad, recordSkillOutcome, refreshProjectAgentIdentity, renderSkillAugmentation, resetCaptureWindow, resetCaptureWindows, resetProjectAgentIdentity, resolveAutoOptimizePolicy, resolveRoleSkillCandidates, retiredDirectivesToWarnAbout, routeDirectiveToSkill, type SaveConsolidationOptions, SKILL_AUGMENTATION_MAX_BYTES, type SkillAffinity, type SkillAffinityEntry, saveProjectAgentConsolidated, saveProjectSkillAugmentation, scoreSkillAffinity, scrubRetiredLines, setSkillPinned, slugifyProjectAgentRole, unwrapWholeDocumentFence, updateProjectAgentConfig, updateProjectAgentIdentity, updateProjectAgentKnowledge, updateProjectAgentLearned, updateProjectAgentLearningPolicy, VERIFY_AGENTS, validateProjectAgentConfig, } from './agents/index.js';
4
4
  export { type AutoExtendCeiling, type AutoExtendPolicy, attachAutoExtend, } from './auto-extend.js';
5
5
  export { type BrainArbiter, type BrainDecision, type BrainDecisionOption, BrainDecisionQueue, type BrainDecisionRequest, type BrainDecisionSource, type BrainEscalationMode, type BrainFallback, type BrainRisk, DefaultBrainArbiter, type DefaultBrainArbiterOptions, EscalationRoutingBrainArbiter, formatHumanPrompt, HumanEscalatingBrainArbiter, ObservableBrainArbiter, terminalPolicyDecision, } from './brain.js';
6
6
  export { BrainDecisionLedger, type BrainDecisionLedgerOptions, type BrainLedgerEntry, brainDecisionKey, createLedgerGuardBrainArbiter, type LedgerGuardBrainArbiterOptions, } from './brain-ledger.js';