intentdna 1.0.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/LICENSE +69 -0
- package/README.md +251 -0
- package/dist/audit/index.d.ts +109 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +144 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/cli/commands/compile.d.ts +14 -0
- package/dist/cli/commands/compile.d.ts.map +1 -0
- package/dist/cli/commands/compile.js +89 -0
- package/dist/cli/commands/compile.js.map +1 -0
- package/dist/cli/commands/epigenetic.d.ts +20 -0
- package/dist/cli/commands/epigenetic.d.ts.map +1 -0
- package/dist/cli/commands/epigenetic.js +112 -0
- package/dist/cli/commands/epigenetic.js.map +1 -0
- package/dist/cli/commands/evolve.d.ts +12 -0
- package/dist/cli/commands/evolve.d.ts.map +1 -0
- package/dist/cli/commands/evolve.js +52 -0
- package/dist/cli/commands/evolve.js.map +1 -0
- package/dist/cli/commands/guard.d.ts +22 -0
- package/dist/cli/commands/guard.d.ts.map +1 -0
- package/dist/cli/commands/guard.js +257 -0
- package/dist/cli/commands/guard.js.map +1 -0
- package/dist/cli/commands/import.d.ts +71 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +428 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/init.d.ts +13 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +171 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/run.d.ts +59 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +350 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/show.d.ts +12 -0
- package/dist/cli/commands/show.d.ts.map +1 -0
- package/dist/cli/commands/show.js +78 -0
- package/dist/cli/commands/show.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +31 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +307 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +11 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +30 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/verify.d.ts +33 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +102 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/index.d.ts +15 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +358 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/util/format.d.ts +24 -0
- package/dist/cli/util/format.d.ts.map +1 -0
- package/dist/cli/util/format.js +67 -0
- package/dist/cli/util/format.js.map +1 -0
- package/dist/cli/util/prompt.d.ts +11 -0
- package/dist/cli/util/prompt.d.ts.map +1 -0
- package/dist/cli/util/prompt.js +51 -0
- package/dist/cli/util/prompt.js.map +1 -0
- package/dist/compiler/activate.d.ts +29 -0
- package/dist/compiler/activate.d.ts.map +1 -0
- package/dist/compiler/activate.js +141 -0
- package/dist/compiler/activate.js.map +1 -0
- package/dist/compiler/cascade.d.ts +27 -0
- package/dist/compiler/cascade.d.ts.map +1 -0
- package/dist/compiler/cascade.js +124 -0
- package/dist/compiler/cascade.js.map +1 -0
- package/dist/compiler/compile.d.ts +17 -0
- package/dist/compiler/compile.d.ts.map +1 -0
- package/dist/compiler/compile.js +219 -0
- package/dist/compiler/compile.js.map +1 -0
- package/dist/compiler/index.d.ts +28 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +51 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/workflow.d.ts +37 -0
- package/dist/compiler/workflow.d.ts.map +1 -0
- package/dist/compiler/workflow.js +274 -0
- package/dist/compiler/workflow.js.map +1 -0
- package/dist/evolution/collector.d.ts +52 -0
- package/dist/evolution/collector.d.ts.map +1 -0
- package/dist/evolution/collector.js +72 -0
- package/dist/evolution/collector.js.map +1 -0
- package/dist/evolution/fitness.d.ts +33 -0
- package/dist/evolution/fitness.d.ts.map +1 -0
- package/dist/evolution/fitness.js +96 -0
- package/dist/evolution/fitness.js.map +1 -0
- package/dist/evolution/index.d.ts +53 -0
- package/dist/evolution/index.d.ts.map +1 -0
- package/dist/evolution/index.js +69 -0
- package/dist/evolution/index.js.map +1 -0
- package/dist/evolution/marker-gen.d.ts +31 -0
- package/dist/evolution/marker-gen.d.ts.map +1 -0
- package/dist/evolution/marker-gen.js +141 -0
- package/dist/evolution/marker-gen.js.map +1 -0
- package/dist/evolution/store.d.ts +24 -0
- package/dist/evolution/store.d.ts.map +1 -0
- package/dist/evolution/store.js +78 -0
- package/dist/evolution/store.js.map +1 -0
- package/dist/evolution/types.d.ts +73 -0
- package/dist/evolution/types.d.ts.map +1 -0
- package/dist/evolution/types.js +14 -0
- package/dist/evolution/types.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/log/logger.d.ts +15 -0
- package/dist/log/logger.d.ts.map +1 -0
- package/dist/log/logger.js +36 -0
- package/dist/log/logger.js.map +1 -0
- package/dist/runtime/agent-md.d.ts +56 -0
- package/dist/runtime/agent-md.d.ts.map +1 -0
- package/dist/runtime/agent-md.js +257 -0
- package/dist/runtime/agent-md.js.map +1 -0
- package/dist/runtime/claude-sdk.d.ts +51 -0
- package/dist/runtime/claude-sdk.d.ts.map +1 -0
- package/dist/runtime/claude-sdk.js +78 -0
- package/dist/runtime/claude-sdk.js.map +1 -0
- package/dist/runtime/hooks.d.ts +67 -0
- package/dist/runtime/hooks.d.ts.map +1 -0
- package/dist/runtime/hooks.js +645 -0
- package/dist/runtime/hooks.js.map +1 -0
- package/dist/runtime/index.d.ts +9 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +5 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/markdown.d.ts +36 -0
- package/dist/runtime/markdown.d.ts.map +1 -0
- package/dist/runtime/markdown.js +214 -0
- package/dist/runtime/markdown.js.map +1 -0
- package/dist/runtime/settings-adapter.d.ts +33 -0
- package/dist/runtime/settings-adapter.d.ts.map +1 -0
- package/dist/runtime/settings-adapter.js +78 -0
- package/dist/runtime/settings-adapter.js.map +1 -0
- package/dist/runtime/skill-adapter.d.ts +22 -0
- package/dist/runtime/skill-adapter.d.ts.map +1 -0
- package/dist/runtime/skill-adapter.js +170 -0
- package/dist/runtime/skill-adapter.js.map +1 -0
- package/dist/runtime/workflow-runner.d.ts +53 -0
- package/dist/runtime/workflow-runner.d.ts.map +1 -0
- package/dist/runtime/workflow-runner.js +420 -0
- package/dist/runtime/workflow-runner.js.map +1 -0
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/types.d.ts +275 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +11 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/schema/validate.d.ts +20 -0
- package/dist/schema/validate.d.ts.map +1 -0
- package/dist/schema/validate.js +379 -0
- package/dist/schema/validate.js.map +1 -0
- package/dist/schema/yaml-parser.d.ts +12 -0
- package/dist/schema/yaml-parser.d.ts.map +1 -0
- package/dist/schema/yaml-parser.js +298 -0
- package/dist/schema/yaml-parser.js.map +1 -0
- package/dist/species/default.dna.json +62 -0
- package/dist/templates/api-backend.dna.yaml +77 -0
- package/dist/templates/brainstorming-first.dna.yaml +71 -0
- package/dist/templates/branch-finishing.dna.yaml +54 -0
- package/dist/templates/code-review-pipeline.dna.yaml +91 -0
- package/dist/templates/devops-cicd.dna.yaml +67 -0
- package/dist/templates/documentation-writer.dna.yaml +71 -0
- package/dist/templates/enterprise-baseline.dna.yaml +66 -0
- package/dist/templates/frontend-quality.dna.yaml +88 -0
- package/dist/templates/full-pipeline.dna.yaml +129 -0
- package/dist/templates/mobile-dev.dna.yaml +68 -0
- package/dist/templates/monorepo-governance.dna.yaml +60 -0
- package/dist/templates/multi-perspective-review.dna.yaml +109 -0
- package/dist/templates/pr-submitter.dna.yaml +55 -0
- package/dist/templates/safe-refactoring.dna.yaml +65 -0
- package/dist/templates/secure-dev.dna.yaml +90 -0
- package/dist/templates/subagent-parallel.dna.yaml +98 -0
- package/dist/templates/systematic-debugging.dna.yaml +55 -0
- package/dist/templates/tdd-strict.dna.yaml +69 -0
- package/dist/templates/verification-loop.dna.yaml +53 -0
- package/dist/templates/yolo-with-guardrails.dna.yaml +56 -0
- package/package.json +43 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Evolution Engine
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the epigenetic learning loop:
|
|
5
|
+
* 1. Record outcome (via collector)
|
|
6
|
+
* 2. Generate/update markers (via marker-gen)
|
|
7
|
+
* 3. Store markers (via store)
|
|
8
|
+
* 4. Compilation pipeline reads markers on next run
|
|
9
|
+
*/
|
|
10
|
+
import { DEFAULT_EVOLUTION_CONFIG } from "./types.js";
|
|
11
|
+
import { EvolutionStore } from "./store.js";
|
|
12
|
+
import { OutcomeCollector } from "./collector.js";
|
|
13
|
+
import { generateMarkers, describeMarkerChanges } from "./marker-gen.js";
|
|
14
|
+
export { EvolutionStore } from "./store.js";
|
|
15
|
+
export { OutcomeCollector } from "./collector.js";
|
|
16
|
+
export { generateMarkers, describeMarkerChanges } from "./marker-gen.js";
|
|
17
|
+
export { computeGeneFitness, computeModulationFactor, computeMarkerStrength } from "./fitness.js";
|
|
18
|
+
/**
|
|
19
|
+
* The Evolution Engine: ties together collection, marker generation, and storage.
|
|
20
|
+
*/
|
|
21
|
+
export class EvolutionEngine {
|
|
22
|
+
store;
|
|
23
|
+
collector;
|
|
24
|
+
config;
|
|
25
|
+
constructor(config) {
|
|
26
|
+
this.config = { ...DEFAULT_EVOLUTION_CONFIG, ...config };
|
|
27
|
+
this.store = new EvolutionStore(this.config);
|
|
28
|
+
this.collector = new OutcomeCollector(this.store);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Record an execution outcome.
|
|
32
|
+
*/
|
|
33
|
+
async recordOutcome(input) {
|
|
34
|
+
return this.collector.record(input);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Evolve: generate/update epigenetic markers based on accumulated outcomes.
|
|
38
|
+
* Returns the new marker set.
|
|
39
|
+
*/
|
|
40
|
+
async evolve(dnaId) {
|
|
41
|
+
const outcomes = await this.store.listOutcomes(dnaId);
|
|
42
|
+
const existing = await this.store.loadMarkers(dnaId);
|
|
43
|
+
const markers = generateMarkers(outcomes, existing, this.config);
|
|
44
|
+
await this.store.saveMarkers(dnaId, markers);
|
|
45
|
+
return markers;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Preview what markers would be generated without persisting.
|
|
49
|
+
*/
|
|
50
|
+
async preview(dnaId) {
|
|
51
|
+
const outcomes = await this.store.listOutcomes(dnaId);
|
|
52
|
+
const existing = await this.store.loadMarkers(dnaId);
|
|
53
|
+
return describeMarkerChanges(outcomes, existing, this.config);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Load stored markers for use in compilation.
|
|
57
|
+
* This is the integration point with the compiler pipeline.
|
|
58
|
+
*/
|
|
59
|
+
async loadMarkers(dnaId) {
|
|
60
|
+
return this.store.loadMarkers(dnaId);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get outcome summary for a DNA.
|
|
64
|
+
*/
|
|
65
|
+
async summary(dnaId) {
|
|
66
|
+
return this.collector.getSummary(dnaId);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evolution/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAgD,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAqB,MAAM,iBAAiB,CAAC;AAE5F,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAKlG;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,KAAK,CAAiB;IACtB,SAAS,CAAmB;IAC7B,MAAM,CAAkB;IAEhC,YAAY,MAAiC;QAC3C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,wBAAwB,EAAE,GAAG,MAAM,EAAE,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,KAAyB;QAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Marker Generator
|
|
3
|
+
*
|
|
4
|
+
* Converts execution outcomes into epigenetic markers.
|
|
5
|
+
* This is the core learning loop: outcomes → markers → gene modulation.
|
|
6
|
+
*
|
|
7
|
+
* Rules:
|
|
8
|
+
* - A gene needs >= min_outcomes_for_marker feedback entries to generate a marker
|
|
9
|
+
* - Markers are merged if they target the same gene (update count + recalculate factor)
|
|
10
|
+
* - Markers exceeding max_markers are pruned by lowest strength
|
|
11
|
+
*/
|
|
12
|
+
import type { EpigeneticMarker } from "../schema/types.js";
|
|
13
|
+
import type { ExecutionOutcome, EvolutionConfig } from "./types.js";
|
|
14
|
+
/**
|
|
15
|
+
* Generate or update epigenetic markers from a set of outcomes.
|
|
16
|
+
* Returns the updated marker array.
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateMarkers(outcomes: ExecutionOutcome[], existingMarkers: EpigeneticMarker[], config?: Partial<EvolutionConfig>): EpigeneticMarker[];
|
|
19
|
+
/**
|
|
20
|
+
* Get a human-readable summary of what markers would be generated.
|
|
21
|
+
*/
|
|
22
|
+
export declare function describeMarkerChanges(outcomes: ExecutionOutcome[], existingMarkers: EpigeneticMarker[], config?: Partial<EvolutionConfig>): MarkerChange[];
|
|
23
|
+
export interface MarkerChange {
|
|
24
|
+
gene: string;
|
|
25
|
+
type: "create" | "update" | "neutral" | "insufficient_data";
|
|
26
|
+
action?: "amplify" | "suppress";
|
|
27
|
+
factor?: number;
|
|
28
|
+
feedback_count: number;
|
|
29
|
+
needed?: number;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=marker-gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marker-gen.d.ts","sourceRoot":"","sources":["../../src/evolution/marker-gen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,oBAAoB,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIpE;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,eAAe,EAAE,gBAAgB,EAAE,EACnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,gBAAgB,EAAE,CAiFpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,eAAe,EAAE,gBAAgB,EAAE,EACnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,YAAY,EAAE,CAkDhB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,mBAAmB,CAAC;IAC5D,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Marker Generator
|
|
3
|
+
*
|
|
4
|
+
* Converts execution outcomes into epigenetic markers.
|
|
5
|
+
* This is the core learning loop: outcomes → markers → gene modulation.
|
|
6
|
+
*
|
|
7
|
+
* Rules:
|
|
8
|
+
* - A gene needs >= min_outcomes_for_marker feedback entries to generate a marker
|
|
9
|
+
* - Markers are merged if they target the same gene (update count + recalculate factor)
|
|
10
|
+
* - Markers exceeding max_markers are pruned by lowest strength
|
|
11
|
+
*/
|
|
12
|
+
import { randomBytes } from "node:crypto";
|
|
13
|
+
import { DEFAULT_EVOLUTION_CONFIG } from "./types.js";
|
|
14
|
+
import { computeModulationFactor, computeMarkerStrength } from "./fitness.js";
|
|
15
|
+
/**
|
|
16
|
+
* Generate or update epigenetic markers from a set of outcomes.
|
|
17
|
+
* Returns the updated marker array.
|
|
18
|
+
*/
|
|
19
|
+
export function generateMarkers(outcomes, existingMarkers, config = {}) {
|
|
20
|
+
const cfg = { ...DEFAULT_EVOLUTION_CONFIG, ...config };
|
|
21
|
+
// Collect all genes that received feedback
|
|
22
|
+
const geneFeedbackCounts = new Map();
|
|
23
|
+
for (const outcome of outcomes) {
|
|
24
|
+
for (const fb of outcome.constraint_feedback) {
|
|
25
|
+
geneFeedbackCounts.set(fb.gene, (geneFeedbackCounts.get(fb.gene) ?? 0) + 1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Start with existing markers (clone)
|
|
29
|
+
const markers = existingMarkers.map(m => ({ ...m, effects: [...m.effects] }));
|
|
30
|
+
const markerByGene = new Map();
|
|
31
|
+
for (const m of markers) {
|
|
32
|
+
for (const e of m.effects) {
|
|
33
|
+
if (e.gene) {
|
|
34
|
+
markerByGene.set(e.gene, m);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Generate/update markers for genes with enough feedback
|
|
39
|
+
for (const [geneName, feedbackCount] of geneFeedbackCounts) {
|
|
40
|
+
if (feedbackCount < cfg.min_outcomes_for_marker)
|
|
41
|
+
continue;
|
|
42
|
+
const factor = computeModulationFactor(geneName, outcomes);
|
|
43
|
+
// Skip if modulation is negligible
|
|
44
|
+
if (Math.abs(factor - 1.0) < 0.05)
|
|
45
|
+
continue;
|
|
46
|
+
const action = factor > 1.0 ? "amplify" : "suppress";
|
|
47
|
+
const existing = markerByGene.get(geneName);
|
|
48
|
+
if (existing) {
|
|
49
|
+
// Update existing marker
|
|
50
|
+
existing.timestamp = new Date().toISOString();
|
|
51
|
+
existing.count = (existing.count ?? 1) + feedbackCount;
|
|
52
|
+
existing.decay = cfg.default_decay;
|
|
53
|
+
// Update the effect for this gene
|
|
54
|
+
const effect = existing.effects.find(e => e.gene === geneName);
|
|
55
|
+
if (effect) {
|
|
56
|
+
effect.action = action;
|
|
57
|
+
effect.factor = factor;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Create new marker
|
|
62
|
+
const triggersFromOutcomes = outcomes
|
|
63
|
+
.flatMap(o => o.constraint_feedback)
|
|
64
|
+
.filter(fb => fb.gene === geneName)
|
|
65
|
+
.map(fb => fb.detail ?? fb.effect)
|
|
66
|
+
.slice(0, 3);
|
|
67
|
+
const marker = {
|
|
68
|
+
id: `epi_${geneName}_${randomBytes(4).toString("hex")}`,
|
|
69
|
+
trigger: `outcome_feedback:${geneName}`,
|
|
70
|
+
timestamp: new Date().toISOString(),
|
|
71
|
+
count: feedbackCount,
|
|
72
|
+
effects: [{
|
|
73
|
+
gene: geneName,
|
|
74
|
+
action,
|
|
75
|
+
factor,
|
|
76
|
+
}],
|
|
77
|
+
decay: cfg.default_decay,
|
|
78
|
+
};
|
|
79
|
+
markers.push(marker);
|
|
80
|
+
markerByGene.set(geneName, marker);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Prune decayed markers
|
|
84
|
+
const active = markers.filter(m => computeMarkerStrength(m) >= cfg.prune_threshold);
|
|
85
|
+
// Enforce max markers limit (keep highest strength)
|
|
86
|
+
if (active.length > cfg.max_markers) {
|
|
87
|
+
active.sort((a, b) => computeMarkerStrength(b) - computeMarkerStrength(a));
|
|
88
|
+
return active.slice(0, cfg.max_markers);
|
|
89
|
+
}
|
|
90
|
+
return active;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get a human-readable summary of what markers would be generated.
|
|
94
|
+
*/
|
|
95
|
+
export function describeMarkerChanges(outcomes, existingMarkers, config = {}) {
|
|
96
|
+
const cfg = { ...DEFAULT_EVOLUTION_CONFIG, ...config };
|
|
97
|
+
const changes = [];
|
|
98
|
+
const geneFeedbackCounts = new Map();
|
|
99
|
+
for (const outcome of outcomes) {
|
|
100
|
+
for (const fb of outcome.constraint_feedback) {
|
|
101
|
+
geneFeedbackCounts.set(fb.gene, (geneFeedbackCounts.get(fb.gene) ?? 0) + 1);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const existingGenes = new Set();
|
|
105
|
+
for (const m of existingMarkers) {
|
|
106
|
+
for (const e of m.effects) {
|
|
107
|
+
if (e.gene)
|
|
108
|
+
existingGenes.add(e.gene);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
for (const [geneName, feedbackCount] of geneFeedbackCounts) {
|
|
112
|
+
if (feedbackCount < cfg.min_outcomes_for_marker) {
|
|
113
|
+
changes.push({
|
|
114
|
+
gene: geneName,
|
|
115
|
+
type: "insufficient_data",
|
|
116
|
+
feedback_count: feedbackCount,
|
|
117
|
+
needed: cfg.min_outcomes_for_marker,
|
|
118
|
+
});
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const factor = computeModulationFactor(geneName, outcomes);
|
|
122
|
+
if (Math.abs(factor - 1.0) < 0.05) {
|
|
123
|
+
changes.push({
|
|
124
|
+
gene: geneName,
|
|
125
|
+
type: "neutral",
|
|
126
|
+
factor,
|
|
127
|
+
feedback_count: feedbackCount,
|
|
128
|
+
});
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
changes.push({
|
|
132
|
+
gene: geneName,
|
|
133
|
+
type: existingGenes.has(geneName) ? "update" : "create",
|
|
134
|
+
action: factor > 1.0 ? "amplify" : "suppress",
|
|
135
|
+
factor,
|
|
136
|
+
feedback_count: feedbackCount,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
return changes;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=marker-gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marker-gen.js","sourceRoot":"","sources":["../../src/evolution/marker-gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Evolution Store
|
|
3
|
+
*
|
|
4
|
+
* File-based persistence for execution outcomes and epigenetic markers.
|
|
5
|
+
* Adapted from Mycelium's store pattern.
|
|
6
|
+
*
|
|
7
|
+
* Layout:
|
|
8
|
+
* {store_dir}/outcomes/{dna_id}/{id}.json — execution outcomes
|
|
9
|
+
* {store_dir}/markers/{dna_id}.json — epigenetic markers for a DNA
|
|
10
|
+
*/
|
|
11
|
+
import type { ExecutionOutcome, EvolutionConfig } from "./types.js";
|
|
12
|
+
import type { EpigeneticMarker } from "../schema/types.js";
|
|
13
|
+
export declare class EvolutionStore {
|
|
14
|
+
private config;
|
|
15
|
+
constructor(config?: Partial<EvolutionConfig>);
|
|
16
|
+
private outcomesDir;
|
|
17
|
+
private markersPath;
|
|
18
|
+
saveOutcome(outcome: ExecutionOutcome): Promise<void>;
|
|
19
|
+
listOutcomes(dnaId: string): Promise<ExecutionOutcome[]>;
|
|
20
|
+
getOutcome(dnaId: string, outcomeId: string): Promise<ExecutionOutcome | null>;
|
|
21
|
+
loadMarkers(dnaId: string): Promise<EpigeneticMarker[]>;
|
|
22
|
+
saveMarkers(dnaId: string, markers: EpigeneticMarker[]): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/evolution/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAI7C,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAMb,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsBxD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAY9E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IASvD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAS7E"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Evolution Store
|
|
3
|
+
*
|
|
4
|
+
* File-based persistence for execution outcomes and epigenetic markers.
|
|
5
|
+
* Adapted from Mycelium's store pattern.
|
|
6
|
+
*
|
|
7
|
+
* Layout:
|
|
8
|
+
* {store_dir}/outcomes/{dna_id}/{id}.json — execution outcomes
|
|
9
|
+
* {store_dir}/markers/{dna_id}.json — epigenetic markers for a DNA
|
|
10
|
+
*/
|
|
11
|
+
import { readFile, writeFile, mkdir, readdir } from "node:fs/promises";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
import { DEFAULT_EVOLUTION_CONFIG } from "./types.js";
|
|
14
|
+
export class EvolutionStore {
|
|
15
|
+
config;
|
|
16
|
+
constructor(config) {
|
|
17
|
+
this.config = { ...DEFAULT_EVOLUTION_CONFIG, ...config };
|
|
18
|
+
}
|
|
19
|
+
outcomesDir(dnaId) {
|
|
20
|
+
return join(this.config.store_dir, "outcomes", dnaId);
|
|
21
|
+
}
|
|
22
|
+
markersPath(dnaId) {
|
|
23
|
+
return join(this.config.store_dir, "markers", `${dnaId}.json`);
|
|
24
|
+
}
|
|
25
|
+
// ── Outcomes ─────────────────────────────────────────────────
|
|
26
|
+
async saveOutcome(outcome) {
|
|
27
|
+
const dir = this.outcomesDir(outcome.dna_id);
|
|
28
|
+
await mkdir(dir, { recursive: true });
|
|
29
|
+
const filePath = join(dir, `${outcome.id}.json`);
|
|
30
|
+
await writeFile(filePath, JSON.stringify(outcome, null, 2), "utf-8");
|
|
31
|
+
}
|
|
32
|
+
async listOutcomes(dnaId) {
|
|
33
|
+
const dir = this.outcomesDir(dnaId);
|
|
34
|
+
await mkdir(dir, { recursive: true });
|
|
35
|
+
const files = await readdir(dir);
|
|
36
|
+
const outcomes = [];
|
|
37
|
+
for (const file of files) {
|
|
38
|
+
if (!file.endsWith(".json"))
|
|
39
|
+
continue;
|
|
40
|
+
try {
|
|
41
|
+
const raw = await readFile(join(dir, file), "utf-8");
|
|
42
|
+
outcomes.push(JSON.parse(raw));
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Skip corrupt files
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Sort by timestamp descending (newest first)
|
|
49
|
+
outcomes.sort((a, b) => b.timestamp.localeCompare(a.timestamp));
|
|
50
|
+
return outcomes;
|
|
51
|
+
}
|
|
52
|
+
async getOutcome(dnaId, outcomeId) {
|
|
53
|
+
try {
|
|
54
|
+
const filePath = join(this.outcomesDir(dnaId), `${outcomeId}.json`);
|
|
55
|
+
const raw = await readFile(filePath, "utf-8");
|
|
56
|
+
return JSON.parse(raw);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// ── Markers ──────────────────────────────────────────────────
|
|
63
|
+
async loadMarkers(dnaId) {
|
|
64
|
+
try {
|
|
65
|
+
const raw = await readFile(this.markersPath(dnaId), "utf-8");
|
|
66
|
+
return JSON.parse(raw);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async saveMarkers(dnaId, markers) {
|
|
73
|
+
const dir = join(this.config.store_dir, "markers");
|
|
74
|
+
await mkdir(dir, { recursive: true });
|
|
75
|
+
await writeFile(this.markersPath(dnaId), JSON.stringify(markers, null, 2), "utf-8");
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/evolution/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Evolution Types
|
|
3
|
+
*
|
|
4
|
+
* Adapted from Mycelium evolution types for Intent DNA's epigenetic system.
|
|
5
|
+
* Core flow: agent executes → outcome recorded → markers generated → DNA modulated
|
|
6
|
+
*/
|
|
7
|
+
export interface ConstraintFeedback {
|
|
8
|
+
/** Which gene's constraint was involved */
|
|
9
|
+
gene: string;
|
|
10
|
+
/** Did this constraint help, hinder, or have no effect? */
|
|
11
|
+
effect: "helped" | "hindered" | "neutral";
|
|
12
|
+
/** Optional detail about what happened */
|
|
13
|
+
detail?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface OutcomeMetrics {
|
|
16
|
+
duration_ms?: number;
|
|
17
|
+
tokens?: number;
|
|
18
|
+
cost_usd?: number;
|
|
19
|
+
retries?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Record of what happened when an agent executed under DNA constraints.
|
|
23
|
+
* This is the raw input to the epigenetic system.
|
|
24
|
+
*/
|
|
25
|
+
export interface ExecutionOutcome {
|
|
26
|
+
id: string;
|
|
27
|
+
timestamp: string;
|
|
28
|
+
/** Which DNA was active */
|
|
29
|
+
dna_id: string;
|
|
30
|
+
/** Which context was active (if any) */
|
|
31
|
+
context?: string;
|
|
32
|
+
/** Description of what the agent was doing */
|
|
33
|
+
action: string;
|
|
34
|
+
/** Which genes were active during execution */
|
|
35
|
+
active_genes: string[];
|
|
36
|
+
/** Which constraints were applied */
|
|
37
|
+
constraints_applied: string[];
|
|
38
|
+
/** Did the overall action succeed? */
|
|
39
|
+
success: boolean;
|
|
40
|
+
/** Per-constraint feedback */
|
|
41
|
+
constraint_feedback: ConstraintFeedback[];
|
|
42
|
+
/** Execution metrics */
|
|
43
|
+
metrics?: OutcomeMetrics;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Fitness tracking for an epigenetic marker.
|
|
47
|
+
* Tracks how effective the marker's modulation has been.
|
|
48
|
+
*/
|
|
49
|
+
export interface MarkerFitness {
|
|
50
|
+
/** How often outcomes were positive when this marker was active */
|
|
51
|
+
success_rate: number;
|
|
52
|
+
/** Number of times this marker influenced execution */
|
|
53
|
+
activation_count: number;
|
|
54
|
+
/** Normalized fitness score (0-1), computed from success_rate + recency */
|
|
55
|
+
score: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Configuration for the epigenetic evolution engine.
|
|
59
|
+
*/
|
|
60
|
+
export interface EvolutionConfig {
|
|
61
|
+
/** Directory for storing outcomes and markers. Default: ".intentdna" */
|
|
62
|
+
store_dir: string;
|
|
63
|
+
/** Minimum outcome count before generating markers. Default: 3 */
|
|
64
|
+
min_outcomes_for_marker: number;
|
|
65
|
+
/** Initial decay rate for new markers. Default: 0.9 */
|
|
66
|
+
default_decay: number;
|
|
67
|
+
/** Threshold below which markers are pruned. Default: 0.01 */
|
|
68
|
+
prune_threshold: number;
|
|
69
|
+
/** Maximum markers per DNA. Default: 50 */
|
|
70
|
+
max_markers: number;
|
|
71
|
+
}
|
|
72
|
+
export declare const DEFAULT_EVOLUTION_CONFIG: EvolutionConfig;
|
|
73
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/evolution/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qCAAqC;IACrC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,wBAAwB;IACxB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAID;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,gBAAgB,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;CACf;AAID;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,uBAAuB,EAAE,MAAM,CAAC;IAChC,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,eAAe,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,wBAAwB,EAAE,eAMtC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Evolution Types
|
|
3
|
+
*
|
|
4
|
+
* Adapted from Mycelium evolution types for Intent DNA's epigenetic system.
|
|
5
|
+
* Core flow: agent executes → outcome recorded → markers generated → DNA modulated
|
|
6
|
+
*/
|
|
7
|
+
export const DEFAULT_EVOLUTION_CONFIG = {
|
|
8
|
+
store_dir: ".intentdna",
|
|
9
|
+
min_outcomes_for_marker: 3,
|
|
10
|
+
default_decay: 0.9,
|
|
11
|
+
prune_threshold: 0.01,
|
|
12
|
+
max_markers: 50,
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/evolution/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8EH,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,SAAS,EAAE,YAAY;IACvB,uBAAuB,EAAE,CAAC;IAC1B,aAAa,EAAE,GAAG;IAClB,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,EAAE;CAChB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Outcome Logger
|
|
3
|
+
*
|
|
4
|
+
* Append-only JSONL log for execution outcomes.
|
|
5
|
+
* Adapted from Mycelium's SignalLogger.
|
|
6
|
+
*/
|
|
7
|
+
import type { ExecutionOutcome } from "../evolution/types.js";
|
|
8
|
+
export declare class OutcomeLogger {
|
|
9
|
+
private ready;
|
|
10
|
+
readonly path: string;
|
|
11
|
+
constructor(logPath: string);
|
|
12
|
+
log(outcome: ExecutionOutcome): Promise<void>;
|
|
13
|
+
readAll(): Promise<ExecutionOutcome[]>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/log/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAgB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM;IAKrB,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAa7C"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Outcome Logger
|
|
3
|
+
*
|
|
4
|
+
* Append-only JSONL log for execution outcomes.
|
|
5
|
+
* Adapted from Mycelium's SignalLogger.
|
|
6
|
+
*/
|
|
7
|
+
import { appendFile, mkdir, readFile } from "node:fs/promises";
|
|
8
|
+
import { dirname } from "node:path";
|
|
9
|
+
export class OutcomeLogger {
|
|
10
|
+
ready;
|
|
11
|
+
path;
|
|
12
|
+
constructor(logPath) {
|
|
13
|
+
this.path = logPath;
|
|
14
|
+
this.ready = mkdir(dirname(logPath), { recursive: true }).then(() => { });
|
|
15
|
+
}
|
|
16
|
+
async log(outcome) {
|
|
17
|
+
await this.ready;
|
|
18
|
+
const line = JSON.stringify(outcome) + "\n";
|
|
19
|
+
await appendFile(this.path, line, "utf-8");
|
|
20
|
+
}
|
|
21
|
+
async readAll() {
|
|
22
|
+
await this.ready;
|
|
23
|
+
try {
|
|
24
|
+
const raw = await readFile(this.path, "utf-8");
|
|
25
|
+
return raw
|
|
26
|
+
.trim()
|
|
27
|
+
.split("\n")
|
|
28
|
+
.filter(Boolean)
|
|
29
|
+
.map(line => JSON.parse(line));
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/log/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,OAAO,aAAa;IAChB,KAAK,CAAgB;IACpB,IAAI,CAAS;IAEtB,YAAY,OAAe;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAyB;QACjC,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAC5C,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,OAAO,GAAG;iBACP,IAAI,EAAE;iBACN,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent DNA — Agent MD Adapter
|
|
3
|
+
*
|
|
4
|
+
* Compiles RoleDef definitions into Claude Code agent markdown files.
|
|
5
|
+
* Each role produces a .md file with YAML frontmatter (name, tools,
|
|
6
|
+
* disallowedTools, model) and a markdown body containing role description,
|
|
7
|
+
* scope rules, and DNA behavioral guidelines.
|
|
8
|
+
*
|
|
9
|
+
* Output directory: .claude/agents/<name>.md
|
|
10
|
+
*/
|
|
11
|
+
import type { RoleDef, ConstraintIR } from "../schema/types.js";
|
|
12
|
+
/** Agent MD compilation options */
|
|
13
|
+
export interface AgentMDOptions {
|
|
14
|
+
/** Output directory (default ".claude/agents") */
|
|
15
|
+
outputDir?: string;
|
|
16
|
+
/** Whether to include DNA behavioral guidelines in body */
|
|
17
|
+
includeDNAGuidelines?: boolean;
|
|
18
|
+
/** Role name prefix (e.g. "dna-") */
|
|
19
|
+
namePrefix?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Single agent MD compilation result */
|
|
22
|
+
export interface AgentMDResult {
|
|
23
|
+
/** Role name (original key, e.g. "reviewer") */
|
|
24
|
+
roleName: string;
|
|
25
|
+
/** Generated file name (e.g. "dna-reviewer.md") */
|
|
26
|
+
fileName: string;
|
|
27
|
+
/** Full MD content (frontmatter + body) */
|
|
28
|
+
content: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Convert camelCase or snake_case to kebab-case.
|
|
32
|
+
*/
|
|
33
|
+
export declare function toKebabCase(name: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Compile a single RoleDef into an agent MD file.
|
|
36
|
+
* Pure function, no side effects.
|
|
37
|
+
*/
|
|
38
|
+
export declare function compileRoleToAgentMD(roleName: string, role: RoleDef, ir?: ConstraintIR, options?: AgentMDOptions): AgentMDResult;
|
|
39
|
+
/**
|
|
40
|
+
* Compile all roles from IntentDNA into agent MD files.
|
|
41
|
+
* Returns compilation results for each role.
|
|
42
|
+
*/
|
|
43
|
+
export declare function compileAllRolesToAgentMD(roles: Record<string, RoleDef>, ir?: ConstraintIR, options?: AgentMDOptions): AgentMDResult[];
|
|
44
|
+
/**
|
|
45
|
+
* Write agent MD results to the file system.
|
|
46
|
+
* Creates the output directory if it doesn't exist.
|
|
47
|
+
* Returns list of written file paths.
|
|
48
|
+
*/
|
|
49
|
+
export declare function writeAgentMDFiles(results: AgentMDResult[], outputDir: string): Promise<string[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Remove Intent DNA generated agent MD files from a directory.
|
|
52
|
+
* Only removes files that contain the sentinel comment.
|
|
53
|
+
* Returns number of files removed.
|
|
54
|
+
*/
|
|
55
|
+
export declare function removeAgentMDFiles(outputDir: string): Promise<number>;
|
|
56
|
+
//# sourceMappingURL=agent-md.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-md.d.ts","sourceRoot":"","sources":["../../src/runtime/agent-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAMxF,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhD;AA8MD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,EAAE,CAAC,EAAE,YAAY,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,aAAa,CAUf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,EAAE,CAAC,EAAE,YAAY,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,aAAa,EAAE,CAIjB;AAID;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EAAE,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
|