@seanhogg/builderforce-memory 2026.6.35 → 2026.6.39
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/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/limbic/LimbicSession.d.ts +31 -1
- package/dist/limbic/LimbicSession.d.ts.map +1 -1
- package/dist/limbic/LimbicSession.js +47 -3
- package/dist/limbic/LimbicSession.js.map +1 -1
- package/dist/workflow/code-eval.d.ts +54 -0
- package/dist/workflow/code-eval.d.ts.map +1 -0
- package/dist/workflow/code-eval.js +135 -0
- package/dist/workflow/code-eval.js.map +1 -0
- package/dist/workflow/index.d.ts +3 -2
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +3 -2
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/steps.d.ts +20 -0
- package/dist/workflow/steps.d.ts.map +1 -1
- package/dist/workflow/steps.js +321 -7
- package/dist/workflow/steps.js.map +1 -1
- package/dist/workflow/templates.d.ts +15 -0
- package/dist/workflow/templates.d.ts.map +1 -1
- package/dist/workflow/templates.js +56 -1
- package/dist/workflow/templates.js.map +1 -1
- package/package.json +7 -4
- package/src/index.ts +6 -0
- package/src/limbic/LimbicSession.ts +61 -1
- package/src/workflow/code-eval.ts +143 -0
- package/src/workflow/index.ts +9 -1
- package/src/workflow/steps.ts +367 -6
- package/src/workflow/templates.ts +59 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
`@seanhogg/builderforce-memory` is the **runtime layer** of BuilderForce Agent Memory — a complete, self-contained AI runtime built directly on top of [`@seanhogg/builderforce-memory-engine`](https://www.npmjs.com/package/@seanhogg/builderforce-memory-engine). It includes the full session layer (previously `@seanhogg/mambakit`) as an internal layer, so you only need one package. *(Formerly published as `@seanhogg/ssmjs`.)*
|
|
9
9
|
|
|
10
|
-
> **Technical report & peer review.** The runtime's design — Write-Through Cognition, hybrid recall, the inference router, and online distillation — is specified in the Evermind technical report ([`../../publication/evermind/`](../../publication/evermind)). Its adversarial [`PEER-REVIEW.md`](../../publication/evermind/PEER-REVIEW.md) is candid about runtime-level gaps to weigh before production: recall is an `O(N)` scan with no ANN index and frequently uses the lexical (Jaccard) fallback rather than dense embeddings; the "stable subject key" is **caller-supplied and not yet canonicalized** (so the single-incumbent guarantee rests on an unenforced precondition); recalled facts are injected unsanitized (memory-poisoning surface); and the online loop has no catastrophic-forgetting guard. Tracked as `EVM-1…EVM-8`.
|
|
10
|
+
> **Technical report & peer review.** The runtime's design — Write-Through Cognition, hybrid recall, the inference router, and online distillation — is specified in the Evermind technical report ([`../../publication/evermind/`](../../publication/evermind)). Its adversarial [`PEER-REVIEW.md`](../../publication/evermind/PEER-REVIEW.md) is candid about runtime-level gaps to weigh before production: recall is an `O(N)` scan with no ANN index and frequently uses the lexical (Jaccard) fallback rather than dense embeddings; the "stable subject key" is **caller-supplied and not yet canonicalized** (so the single-incumbent guarantee rests on an unenforced precondition); recalled facts are injected unsanitized (memory-poisoning surface); and the online loop has no catastrophic-forgetting guard. Tracked as `EVM-1…EVM-8`. These have since been resolved in the v2026.6.34 hardening — an HNSW ANN index (`src/retrieval/hnsw.ts`) gates the exact scan, a subject-key canonicalizer (`src/cognition/canonicalize.ts`) runs inside `commit()`, recall is fenced, and the online loop has a forgetting guard — and the engine now ships a benchmarking harness for measured quality. See the resolution addendum in [`PEER-REVIEW.md`](../../publication/evermind/PEER-REVIEW.md).
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -65,6 +65,7 @@ Generic build step types (compose your own pipeline via the step registry):
|
|
|
65
65
|
| `convergence` | Asserts training loss actually decreased (the model learned) |
|
|
66
66
|
| `evaluate` / `generate-check` | Output is non-empty **and** seed-reproducible |
|
|
67
67
|
| `roundtrip` | Packages the trained model → loads → generates; served output must match trained |
|
|
68
|
+
| `benchmark` | Scores the trained model on a held-out corpus (perplexity, bits-per-token, top-1/top-k accuracy, throughput); optional maxPerplexity / minTop1 gates fail the run |
|
|
68
69
|
|
|
69
70
|
---
|
|
70
71
|
|
|
@@ -214,7 +215,7 @@ const recent = await memory.recallRecent(10);
|
|
|
214
215
|
// Filter by tag
|
|
215
216
|
const techFacts = await memory.recallByTag('tech');
|
|
216
217
|
|
|
217
|
-
// Semantic similarity search (
|
|
218
|
+
// Semantic similarity search (SSM-embedding cosine via HNSW ANN index, lexical fallback)
|
|
218
219
|
const similar = await memory.recallSimilar('who built this?', 5, runtime);
|
|
219
220
|
|
|
220
221
|
// Purge expired entries from storage
|
|
@@ -475,7 +476,7 @@ GPU init is optional: if `@webgpu/node` is unavailable, the service starts in me
|
|
|
475
476
|
- `SSMAgent`: fact injection sorted by `importance` descending
|
|
476
477
|
|
|
477
478
|
### Phase 2 — Semantic Memory
|
|
478
|
-
- `MemoryStore.recallSimilar(query, topK, runtime)` —
|
|
479
|
+
- `MemoryStore.recallSimilar(query, topK, runtime)` — SSM-embedding cosine recall via an HNSW ANN index (lexical fallback when embeddings are unavailable)
|
|
479
480
|
- `MemoryStore.recallByTag(tag)` — tag-based filtering
|
|
480
481
|
- `MemoryStore.exportAll()` / `importAll(entries, strategy)` — cross-session merge
|
|
481
482
|
|
package/dist/index.d.ts
CHANGED
|
@@ -59,8 +59,8 @@ export { EvermindCognition, workspacePresenceGatherer, canonicalizeSubjectKey, n
|
|
|
59
59
|
export type { EvermindCognitionOptions, WorkspacePresenceRule, Claim, CognitionFactStore, CommitResult, EvidenceContext, EvidenceGatherer, EvidenceResult, Verdict, AliasTable, RecalledFact, FactProvenance, } from './cognition/index.js';
|
|
60
60
|
export { runStackDiagnostic } from './diagnostics/index.js';
|
|
61
61
|
export type { StackStep, StackStepResult, StackContext, StackDiagnosticResult, RunStackOptions, StepStatus, } from './diagnostics/index.js';
|
|
62
|
-
export { runWorkflow, compileWorkflow, validateWorkflow, buildEvermindStackSteps, StepTypeRegistry, createDefaultRegistry, defaultStepRegistry, BUILTIN_STEPS, AGENTIC_SEVEN_LAYER, TRAIN_LLM, WORKFLOW_TEMPLATES, getTemplate, cloneTemplate, } from './workflow/index.js';
|
|
63
|
-
export type { WorkflowConfig, WorkflowStepConfig, StepTypeInfo, StepFactory, WorkflowValidationError, RunWorkflowOptions, } from './workflow/index.js';
|
|
62
|
+
export { runWorkflow, compileWorkflow, validateWorkflow, buildEvermindStackSteps, StepTypeRegistry, createDefaultRegistry, defaultStepRegistry, BUILTIN_STEPS, AGENTIC_SEVEN_LAYER, TRAIN_LLM, TEACH_CODE, WORKFLOW_TEMPLATES, getTemplate, cloneTemplate, analyzeCode, runJsCases, } from './workflow/index.js';
|
|
63
|
+
export type { WorkflowConfig, WorkflowStepConfig, StepTypeInfo, StepFactory, WorkflowValidationError, RunWorkflowOptions, CodeAnalysis, CodeCase, CodeEvalResult, } from './workflow/index.js';
|
|
64
64
|
export { publishToHuggingFace, writeExportToDir } from './publish/index.js';
|
|
65
65
|
export type { HuggingFaceTarget, PublishOutcome, HubClient, FsLike } from './publish/index.js';
|
|
66
66
|
export { DistillationEngine } from './distillation/DistillationEngine.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -53,7 +53,7 @@ export { EvermindCognition, workspacePresenceGatherer, canonicalizeSubjectKey, n
|
|
|
53
53
|
// ── Diagnostics (execution-output runner) ──────────────────────────────────────
|
|
54
54
|
export { runStackDiagnostic } from './diagnostics/index.js';
|
|
55
55
|
// ── Workflows (configurable templates + step registry → run + .evermind output) ─
|
|
56
|
-
export { runWorkflow, compileWorkflow, validateWorkflow, buildEvermindStackSteps, StepTypeRegistry, createDefaultRegistry, defaultStepRegistry, BUILTIN_STEPS, AGENTIC_SEVEN_LAYER, TRAIN_LLM, WORKFLOW_TEMPLATES, getTemplate, cloneTemplate, } from './workflow/index.js';
|
|
56
|
+
export { runWorkflow, compileWorkflow, validateWorkflow, buildEvermindStackSteps, StepTypeRegistry, createDefaultRegistry, defaultStepRegistry, BUILTIN_STEPS, AGENTIC_SEVEN_LAYER, TRAIN_LLM, TEACH_CODE, WORKFLOW_TEMPLATES, getTemplate, cloneTemplate, analyzeCode, runJsCases, } from './workflow/index.js';
|
|
57
57
|
// ── Publish (ship an engine model export to HF / local folder) ──────────────────
|
|
58
58
|
export { publishToHuggingFace, writeExportToDir } from './publish/index.js';
|
|
59
59
|
// ── Distillation ──────────────────────────────────────────────────────────────
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAmB,oBAAoB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAmB,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAoB7F,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,gFAAgF;AAChF,qEAAqE;AACrE,OAAO,EACH,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,GAChB,MAAM,sCAAsC,CAAC;AAU9C,sFAAsF;AACtF,wFAAwF;AACxF,OAAO,EACH,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,oBAAoB,GACvB,MAAM,sCAAsC,CAAC;AAa9C,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAGrF,iFAAiF;AACjF,OAAO,EAAE,UAAU,EAAE,MAAS,yBAAyB,CAAC;AAKxD,OAAO,EAAE,YAAY,EAAE,MAAS,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAU,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAQ,4BAA4B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ1E,kFAAkF;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AASjF,kFAAkF;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtF,kFAAkF;AAClF,OAAO,EACH,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,GACjB,MAAM,sBAAsB,CAAC;AAgB9B,iFAAiF;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAS9D,iFAAiF;AACjF,OAAO,EAAE,WAAW,EAAE,MAAO,yBAAyB,CAAC;AAQvD,iFAAiF;AACjF,OAAO,EACH,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,GACb,MAAM,sBAAsB,CAAC;AAgB9B,kFAAkF;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAU5D,mFAAmF;AACnF,OAAO,EACH,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* await limbic.train(samples, { epochs: 30 });
|
|
13
13
|
* const bin = limbic.exportWeights({ fp16: true });
|
|
14
14
|
*/
|
|
15
|
-
import { LimbicModel, LimbicTrainer, type LimbicModelConfig, type LimbicForward, type LimbicSample, type LimbicTrainOptions } from "@seanhogg/builderforce-memory-engine";
|
|
15
|
+
import { LimbicModel, LimbicTrainer, type LimbicModelConfig, type LimbicForward, type LimbicSample, type LimbicTrainOptions, type PersonalityTraits } from "@seanhogg/builderforce-memory-engine";
|
|
16
16
|
export type LimbicGpuMode = "webgpu" | "cpu-fallback" | "cpu";
|
|
17
17
|
export interface LimbicSessionOptions {
|
|
18
18
|
/** Pre-created GPUAdapter (e.g. from @webgpu/node). When set, navigator.gpu is not used. */
|
|
@@ -29,12 +29,29 @@ export interface LimbicSessionOptions {
|
|
|
29
29
|
modelConfig?: Partial<LimbicModelConfig>;
|
|
30
30
|
/** Deterministic init seed. */
|
|
31
31
|
seed?: number;
|
|
32
|
+
/**
|
|
33
|
+
* The agent's static personality traits (0..100). Mapped to the resting affective
|
|
34
|
+
* SETPOINT the learned dynamics ride on top of, so training + relaxation happen
|
|
35
|
+
* around the personality baseline instead of neutral ("personality = setpoints,
|
|
36
|
+
* limbic = dynamics"). Ignored when {@link personalitySetpoint} is given.
|
|
37
|
+
*/
|
|
38
|
+
personalityTraits?: PersonalityTraits;
|
|
39
|
+
/**
|
|
40
|
+
* An explicit 8-dim resting setpoint (e.g. one already derived by the runtime's
|
|
41
|
+
* `deriveLimbicSetpoints`). Overrides {@link personalityTraits}. Clamped to bounds.
|
|
42
|
+
*/
|
|
43
|
+
personalitySetpoint?: ArrayLike<number>;
|
|
32
44
|
}
|
|
33
45
|
export declare class LimbicSession {
|
|
34
46
|
readonly model: LimbicModel;
|
|
35
47
|
readonly trainer: LimbicTrainer;
|
|
36
48
|
readonly device: GPUDevice | null;
|
|
37
49
|
readonly gpuMode: LimbicGpuMode;
|
|
50
|
+
/** The personality-conditioned resting setpoint (8-dim). NEUTRAL when no
|
|
51
|
+
* personality was supplied. The homeostatic baseline the learned dynamics
|
|
52
|
+
* settle toward — see {@link baselineState}. Mutable via {@link setSetpoint} so a
|
|
53
|
+
* long-lived service can re-point it when the active personas change. */
|
|
54
|
+
setpoint: Float32Array;
|
|
38
55
|
private readonly _name;
|
|
39
56
|
private readonly _idbFactory;
|
|
40
57
|
private _pipeline;
|
|
@@ -42,6 +59,19 @@ export declare class LimbicSession {
|
|
|
42
59
|
private _paramBufs;
|
|
43
60
|
private _paramsDirty;
|
|
44
61
|
private constructor();
|
|
62
|
+
/**
|
|
63
|
+
* A fresh copy of the personality-conditioned resting state. Seed training-sample
|
|
64
|
+
* states and initial affect from this so the learned dynamics move AROUND the
|
|
65
|
+
* agent's personality baseline rather than a fixed neutral. NEUTRAL when the
|
|
66
|
+
* session was created with no personality.
|
|
67
|
+
*/
|
|
68
|
+
baselineState(): Float32Array;
|
|
69
|
+
/**
|
|
70
|
+
* Re-point the resting setpoint after construction — e.g. a long-lived service
|
|
71
|
+
* recomputing it when the active personas change. An explicit 8-dim vector wins;
|
|
72
|
+
* else the traits are mapped; else neutral. Clamped to bounds.
|
|
73
|
+
*/
|
|
74
|
+
setSetpoint(traits?: PersonalityTraits, explicit?: ArrayLike<number>): void;
|
|
45
75
|
static create(options?: LimbicSessionOptions): Promise<LimbicSession>;
|
|
46
76
|
/** One affect step. Uses the GPU kernel when a device is available, else CPU. */
|
|
47
77
|
step(input: ArrayLike<number>, state: ArrayLike<number>, hidden?: ArrayLike<number>): Promise<LimbicForward>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LimbicSession.d.ts","sourceRoot":"","sources":["../../src/limbic/LimbicSession.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"LimbicSession.d.ts","sourceRoot":"","sources":["../../src/limbic/LimbicSession.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,WAAW,EACX,aAAa,EAab,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,sCAAsC,CAAC;AAI9C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,cAAc,GAAG,KAAK,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzC,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACzC;AAUD,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC;;;8EAG0E;IAC1E,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAGrD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO;IAkBP;;;;;OAKG;IACH,aAAa,IAAI,YAAY;IAI7B;;;;OAIG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI;WAU9D,MAAM,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;IAsD/E,iFAAiF;IAC3E,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAMlH,OAAO,CAAC,cAAc;YAuBR,QAAQ;IA0CtB,oFAAoF;IAC9E,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMlF,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM;IAIzC,aAAa,CAAC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW;IAIrD,2DAA2D;IACrD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,2EAA2E;IACrE,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ9B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -12,13 +12,18 @@
|
|
|
12
12
|
* await limbic.train(samples, { epochs: 30 });
|
|
13
13
|
* const bin = limbic.exportWeights({ fp16: true });
|
|
14
14
|
*/
|
|
15
|
-
import { LimbicModel, LimbicTrainer, LIMBIC_AFFECT_WGSL, createStorageBuffer, createEmptyStorageBuffer, createUniformBuffer, createComputePipeline, createBindGroup, dispatchKernel, readBuffer, } from "@seanhogg/builderforce-memory-engine";
|
|
15
|
+
import { LimbicModel, LimbicTrainer, LIMBIC_AFFECT_WGSL, createStorageBuffer, createEmptyStorageBuffer, createUniformBuffer, createComputePipeline, createBindGroup, dispatchKernel, readBuffer, personalitySetpoint, clampState, neutralState, LIMBIC_STATE_DIM, } from "@seanhogg/builderforce-memory-engine";
|
|
16
16
|
import { saveToIndexedDB, loadFromIndexedDB } from "../session/persistence.js";
|
|
17
17
|
export class LimbicSession {
|
|
18
18
|
model;
|
|
19
19
|
trainer;
|
|
20
20
|
device;
|
|
21
21
|
gpuMode;
|
|
22
|
+
/** The personality-conditioned resting setpoint (8-dim). NEUTRAL when no
|
|
23
|
+
* personality was supplied. The homeostatic baseline the learned dynamics
|
|
24
|
+
* settle toward — see {@link baselineState}. Mutable via {@link setSetpoint} so a
|
|
25
|
+
* long-lived service can re-point it when the active personas change. */
|
|
26
|
+
setpoint;
|
|
22
27
|
_name;
|
|
23
28
|
_idbFactory;
|
|
24
29
|
// GPU step pipeline + buffers, allocated lazily on first GPU step.
|
|
@@ -26,13 +31,39 @@ export class LimbicSession {
|
|
|
26
31
|
_dimsBuf = null;
|
|
27
32
|
_paramBufs = null;
|
|
28
33
|
_paramsDirty = true;
|
|
29
|
-
constructor(model, trainer, device, gpuMode, name, idbFactory) {
|
|
34
|
+
constructor(model, trainer, device, gpuMode, name, idbFactory, setpoint) {
|
|
30
35
|
this.model = model;
|
|
31
36
|
this.trainer = trainer;
|
|
32
37
|
this.device = device;
|
|
33
38
|
this.gpuMode = gpuMode;
|
|
34
39
|
this._name = name;
|
|
35
40
|
this._idbFactory = idbFactory;
|
|
41
|
+
this.setpoint = setpoint;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A fresh copy of the personality-conditioned resting state. Seed training-sample
|
|
45
|
+
* states and initial affect from this so the learned dynamics move AROUND the
|
|
46
|
+
* agent's personality baseline rather than a fixed neutral. NEUTRAL when the
|
|
47
|
+
* session was created with no personality.
|
|
48
|
+
*/
|
|
49
|
+
baselineState() {
|
|
50
|
+
return Float32Array.from(this.setpoint);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Re-point the resting setpoint after construction — e.g. a long-lived service
|
|
54
|
+
* recomputing it when the active personas change. An explicit 8-dim vector wins;
|
|
55
|
+
* else the traits are mapped; else neutral. Clamped to bounds.
|
|
56
|
+
*/
|
|
57
|
+
setSetpoint(traits, explicit) {
|
|
58
|
+
if (explicit && explicit.length >= LIMBIC_STATE_DIM) {
|
|
59
|
+
this.setpoint = clampState(Float32Array.from(explicit));
|
|
60
|
+
}
|
|
61
|
+
else if (traits) {
|
|
62
|
+
this.setpoint = personalitySetpoint(traits);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this.setpoint = neutralState();
|
|
66
|
+
}
|
|
36
67
|
}
|
|
37
68
|
static async create(options = {}) {
|
|
38
69
|
let device = null;
|
|
@@ -76,7 +107,20 @@ export class LimbicSession {
|
|
|
76
107
|
model.loadWeights(options.checkpointBuffer);
|
|
77
108
|
}
|
|
78
109
|
const trainer = new LimbicTrainer(model, device);
|
|
79
|
-
|
|
110
|
+
// Resolve the resting setpoint: an explicit 8-dim vector wins; else map the
|
|
111
|
+
// personality traits; else neutral. This is where the STATIC personality enters
|
|
112
|
+
// the (dynamic, trainable) limbic system.
|
|
113
|
+
let setpoint;
|
|
114
|
+
if (options.personalitySetpoint && options.personalitySetpoint.length >= LIMBIC_STATE_DIM) {
|
|
115
|
+
setpoint = clampState(Float32Array.from(options.personalitySetpoint));
|
|
116
|
+
}
|
|
117
|
+
else if (options.personalityTraits) {
|
|
118
|
+
setpoint = personalitySetpoint(options.personalityTraits);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
setpoint = neutralState();
|
|
122
|
+
}
|
|
123
|
+
return new LimbicSession(model, trainer, device, gpuMode, options.name ?? "limbic-default", options.idbFactory, setpoint);
|
|
80
124
|
}
|
|
81
125
|
/** One affect step. Uses the GPU kernel when a device is available, else CPU. */
|
|
82
126
|
async step(input, state, hidden) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LimbicSession.js","sourceRoot":"","sources":["../../src/limbic/LimbicSession.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,UAAU,
|
|
1
|
+
{"version":3,"file":"LimbicSession.js","sourceRoot":"","sources":["../../src/limbic/LimbicSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* workflow/code-eval.ts — dependency-free code-validity + execution-reward checks.
|
|
3
|
+
*
|
|
4
|
+
* These power the code-specific BUILD diagnostics that grade what Evermind's
|
|
5
|
+
* generator produces when we teach it to program:
|
|
6
|
+
* • {@link analyzeCode} — structural validity (balanced delimiters/strings) +
|
|
7
|
+
* an optional JS parse. The portable "does this look
|
|
8
|
+
* like valid code" gate.
|
|
9
|
+
* • {@link runJsCases} — execution-grounded reward: run generated JS against
|
|
10
|
+
* test cases and score the pass-rate. Code's signal is
|
|
11
|
+
* that it RUNS — this turns that into a number.
|
|
12
|
+
*
|
|
13
|
+
* Both are zero-dependency (no AST library) so they run in the same WebGPU/TS
|
|
14
|
+
* runtime as the rest of the engine. Execution uses the `Function` constructor —
|
|
15
|
+
* a heuristic reward sandbox, NOT a security boundary; only feed it code from a
|
|
16
|
+
* trusted teacher / the model under training.
|
|
17
|
+
*/
|
|
18
|
+
export interface CodeAnalysis {
|
|
19
|
+
/** 0..1 structural-validity score (1 = delimiters and strings all balanced). */
|
|
20
|
+
score: number;
|
|
21
|
+
/** True when every bracket/brace/paren and string literal closes cleanly. */
|
|
22
|
+
balanced: boolean;
|
|
23
|
+
/** For language="js": whether the source parses (Function constructor). undefined otherwise. */
|
|
24
|
+
jsParse?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Score how structurally valid `code` is: walk the source tracking string state
|
|
28
|
+
* (so brackets inside strings are ignored) and a delimiter stack. A clean parse
|
|
29
|
+
* scores 1; each unmatched/mismatched delimiter or unterminated string lowers it.
|
|
30
|
+
*/
|
|
31
|
+
export declare function analyzeCode(code: string, language?: string): CodeAnalysis;
|
|
32
|
+
export interface CodeCase {
|
|
33
|
+
/** An expression to evaluate after the code is loaded, e.g. "add(2, 3)". */
|
|
34
|
+
call: string;
|
|
35
|
+
/** The expected result (deep-equal compared). */
|
|
36
|
+
expect: unknown;
|
|
37
|
+
}
|
|
38
|
+
export interface CodeEvalResult {
|
|
39
|
+
passed: number;
|
|
40
|
+
total: number;
|
|
41
|
+
/** passed / total (0 when there are no cases). */
|
|
42
|
+
passRate: number;
|
|
43
|
+
/** A whole-program error (e.g. syntax error) that failed every case, if any. */
|
|
44
|
+
error?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Load `code` (which defines functions) and evaluate each case's `call`
|
|
48
|
+
* expression, comparing the result to `expect`. A syntax error in `code` fails
|
|
49
|
+
* every case. Per-case runtime errors fail only that case.
|
|
50
|
+
*
|
|
51
|
+
* NOTE: heuristic reward sandbox, not a security boundary — see file header.
|
|
52
|
+
*/
|
|
53
|
+
export declare function runJsCases(code: string, cases: CodeCase[]): CodeEvalResult;
|
|
54
|
+
//# sourceMappingURL=code-eval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-eval.d.ts","sourceRoot":"","sources":["../../src/workflow/code-eval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,WAAW,YAAY;IAC3B,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;IAClB,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAO,GAAG,YAAY,CAkCvE;AAaD,MAAM,WAAW,QAAQ;IACvB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,cAAc,CAqB1E"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* workflow/code-eval.ts — dependency-free code-validity + execution-reward checks.
|
|
3
|
+
*
|
|
4
|
+
* These power the code-specific BUILD diagnostics that grade what Evermind's
|
|
5
|
+
* generator produces when we teach it to program:
|
|
6
|
+
* • {@link analyzeCode} — structural validity (balanced delimiters/strings) +
|
|
7
|
+
* an optional JS parse. The portable "does this look
|
|
8
|
+
* like valid code" gate.
|
|
9
|
+
* • {@link runJsCases} — execution-grounded reward: run generated JS against
|
|
10
|
+
* test cases and score the pass-rate. Code's signal is
|
|
11
|
+
* that it RUNS — this turns that into a number.
|
|
12
|
+
*
|
|
13
|
+
* Both are zero-dependency (no AST library) so they run in the same WebGPU/TS
|
|
14
|
+
* runtime as the rest of the engine. Execution uses the `Function` constructor —
|
|
15
|
+
* a heuristic reward sandbox, NOT a security boundary; only feed it code from a
|
|
16
|
+
* trusted teacher / the model under training.
|
|
17
|
+
*/
|
|
18
|
+
const OPEN = { ")": "(", "]": "[", "}": "{" };
|
|
19
|
+
/**
|
|
20
|
+
* Score how structurally valid `code` is: walk the source tracking string state
|
|
21
|
+
* (so brackets inside strings are ignored) and a delimiter stack. A clean parse
|
|
22
|
+
* scores 1; each unmatched/mismatched delimiter or unterminated string lowers it.
|
|
23
|
+
*/
|
|
24
|
+
export function analyzeCode(code, language = "js") {
|
|
25
|
+
const stack = [];
|
|
26
|
+
let mismatches = 0;
|
|
27
|
+
let delims = 0;
|
|
28
|
+
let inString = null; // the opening quote char, or null
|
|
29
|
+
let escaped = false;
|
|
30
|
+
for (let i = 0; i < code.length; i++) {
|
|
31
|
+
const ch = code[i];
|
|
32
|
+
if (inString) {
|
|
33
|
+
if (escaped) {
|
|
34
|
+
escaped = false;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (ch === "\\") {
|
|
38
|
+
escaped = true;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (ch === inString)
|
|
42
|
+
inString = null;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (ch === '"' || ch === "'" || ch === "`") {
|
|
46
|
+
inString = ch;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (ch === "(" || ch === "[" || ch === "{") {
|
|
50
|
+
stack.push(ch);
|
|
51
|
+
delims++;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (ch === ")" || ch === "]" || ch === "}") {
|
|
55
|
+
delims++;
|
|
56
|
+
if (stack.pop() !== OPEN[ch])
|
|
57
|
+
mismatches++;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Anything left open is an unmatched delimiter; an open string is one more fault.
|
|
61
|
+
mismatches += stack.length;
|
|
62
|
+
const faults = mismatches + (inString ? 1 : 0);
|
|
63
|
+
const denom = Math.max(1, delims + (inString ? 1 : 0));
|
|
64
|
+
const balanced = faults === 0;
|
|
65
|
+
const score = balanced ? 1 : Math.max(0, 1 - faults / denom);
|
|
66
|
+
const analysis = { score, balanced };
|
|
67
|
+
if (language === "js" || language === "ts" || language === "javascript" || language === "typescript") {
|
|
68
|
+
analysis.jsParse = jsParses(code);
|
|
69
|
+
}
|
|
70
|
+
return analysis;
|
|
71
|
+
}
|
|
72
|
+
/** True when `code` parses as JS (Function constructor parses but does not run). */
|
|
73
|
+
function jsParses(code) {
|
|
74
|
+
try {
|
|
75
|
+
// eslint-disable-next-line no-new-func
|
|
76
|
+
new Function(code);
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Load `code` (which defines functions) and evaluate each case's `call`
|
|
85
|
+
* expression, comparing the result to `expect`. A syntax error in `code` fails
|
|
86
|
+
* every case. Per-case runtime errors fail only that case.
|
|
87
|
+
*
|
|
88
|
+
* NOTE: heuristic reward sandbox, not a security boundary — see file header.
|
|
89
|
+
*/
|
|
90
|
+
export function runJsCases(code, cases) {
|
|
91
|
+
const total = cases.length;
|
|
92
|
+
if (total === 0)
|
|
93
|
+
return { passed: 0, total: 0, passRate: 0 };
|
|
94
|
+
let passed = 0;
|
|
95
|
+
for (const c of cases) {
|
|
96
|
+
try {
|
|
97
|
+
// Code defines functions (hoisted); the trailing return evaluates the call.
|
|
98
|
+
// eslint-disable-next-line no-new-func
|
|
99
|
+
const fn = new Function(`${code}\n;return (${c.call});`);
|
|
100
|
+
const actual = fn();
|
|
101
|
+
if (deepEqual(actual, c.expect))
|
|
102
|
+
passed++;
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
// A syntax error throws at construction for ALL cases — report it once.
|
|
106
|
+
if (err instanceof SyntaxError) {
|
|
107
|
+
return { passed: 0, total, passRate: 0, error: err.message };
|
|
108
|
+
}
|
|
109
|
+
// Runtime error → this case simply fails.
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return { passed, total, passRate: passed / total };
|
|
113
|
+
}
|
|
114
|
+
/** Structural deep equality good enough for JSON-shaped test expectations. */
|
|
115
|
+
function deepEqual(a, b) {
|
|
116
|
+
if (a === b)
|
|
117
|
+
return true;
|
|
118
|
+
if (typeof a !== typeof b || a === null || b === null)
|
|
119
|
+
return false;
|
|
120
|
+
if (typeof a !== "object")
|
|
121
|
+
return Object.is(a, b);
|
|
122
|
+
if (Array.isArray(a) || Array.isArray(b)) {
|
|
123
|
+
if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length)
|
|
124
|
+
return false;
|
|
125
|
+
return a.every((v, i) => deepEqual(v, b[i]));
|
|
126
|
+
}
|
|
127
|
+
const ao = a;
|
|
128
|
+
const bo = b;
|
|
129
|
+
const ak = Object.keys(ao);
|
|
130
|
+
const bk = Object.keys(bo);
|
|
131
|
+
if (ak.length !== bk.length)
|
|
132
|
+
return false;
|
|
133
|
+
return ak.every((k) => deepEqual(ao[k], bo[k]));
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=code-eval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-eval.js","sourceRoot":"","sources":["../../src/workflow/code-eval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,IAAI,GAA2B,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAWtE;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,QAAQ,GAAG,IAAI;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAkB,IAAI,CAAC,CAAC,kCAAkC;IACtE,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACpB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,GAAG,KAAK,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAAC,OAAO,GAAG,IAAI,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC9C,IAAI,EAAE,KAAK,QAAQ;gBAAE,QAAQ,GAAG,IAAI,CAAC;YACrC,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QACxE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAC,MAAM,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QACnF,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC3C,MAAM,EAAE,CAAC;YACT,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAAE,UAAU,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,kFAAkF;IAClF,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,MAAM,GAAG,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACnD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QACrG,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,oFAAoF;AACpF,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,uCAAuC;QACvC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAkBD;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAiB;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAE7D,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,4EAA4E;YAC5E,uCAAuC;YACvC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;YACpB,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBAAE,MAAM,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wEAAwE;YACxE,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBAC/B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;YAC/D,CAAC;YACD,0CAA0C;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,8EAA8E;AAC9E,SAAS,SAAS,CAAC,CAAU,EAAE,CAAU;IACvC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAClF,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,EAAE,GAAG,CAA4B,CAAC;IACxC,MAAM,EAAE,GAAG,CAA4B,CAAC;IACxC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/workflow/index.d.ts
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export type { WorkflowConfig, WorkflowStepConfig, StepTypeInfo, StepFactory } from "./types.js";
|
|
7
7
|
export { StepTypeRegistry, createDefaultRegistry, defaultStepRegistry } from "./registry.js";
|
|
8
|
-
export { BUILTIN_STEPS } from "./steps.js";
|
|
9
|
-
export { AGENTIC_SEVEN_LAYER, TRAIN_LLM, WORKFLOW_TEMPLATES, getTemplate, cloneTemplate, } from "./templates.js";
|
|
8
|
+
export { BUILTIN_STEPS, selectBestCandidate, stripCodeFences } from "./steps.js";
|
|
9
|
+
export { AGENTIC_SEVEN_LAYER, TRAIN_LLM, TEACH_CODE, WORKFLOW_TEMPLATES, getTemplate, cloneTemplate, } from "./templates.js";
|
|
10
|
+
export { analyzeCode, runJsCases, type CodeAnalysis, type CodeCase, type CodeEvalResult, } from "./code-eval.js";
|
|
10
11
|
export { compileWorkflow, validateWorkflow, runWorkflow, buildEvermindStackSteps, type WorkflowValidationError, type RunWorkflowOptions, } from "./run.js";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC"}
|
package/dist/workflow/index.js
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* artifact for build workflows).
|
|
5
5
|
*/
|
|
6
6
|
export { StepTypeRegistry, createDefaultRegistry, defaultStepRegistry } from "./registry.js";
|
|
7
|
-
export { BUILTIN_STEPS } from "./steps.js";
|
|
8
|
-
export { AGENTIC_SEVEN_LAYER, TRAIN_LLM, WORKFLOW_TEMPLATES, getTemplate, cloneTemplate, } from "./templates.js";
|
|
7
|
+
export { BUILTIN_STEPS, selectBestCandidate, stripCodeFences } from "./steps.js";
|
|
8
|
+
export { AGENTIC_SEVEN_LAYER, TRAIN_LLM, TEACH_CODE, WORKFLOW_TEMPLATES, getTemplate, cloneTemplate, } from "./templates.js";
|
|
9
|
+
export { analyzeCode, runJsCases, } from "./code-eval.js";
|
|
9
10
|
export { compileWorkflow, validateWorkflow, runWorkflow, buildEvermindStackSteps, } from "./run.js";
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,UAAU,GAIX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,uBAAuB,GAGxB,MAAM,UAAU,CAAC"}
|
package/dist/workflow/steps.d.ts
CHANGED
|
@@ -9,7 +9,27 @@
|
|
|
9
9
|
*
|
|
10
10
|
* A custom workflow mixes these freely; new step types register the same way.
|
|
11
11
|
*/
|
|
12
|
+
import { type CodeCase } from "./code-eval.js";
|
|
12
13
|
import type { StepFactory, StepTypeInfo } from "./types.js";
|
|
14
|
+
/** A single teacher's answer to a prompt, before selection. */
|
|
15
|
+
interface Candidate {
|
|
16
|
+
teacher: string;
|
|
17
|
+
completion: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Strip a wrapping ```lang … ``` markdown fence some teachers add despite the
|
|
21
|
+
* "code only, no fences" instruction — otherwise the fence fails every code
|
|
22
|
+
* gate and the exemplar is wrongly dropped.
|
|
23
|
+
*/
|
|
24
|
+
export declare function stripCodeFences(text: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Best-of-N selection across a teacher panel. When the task carries execution
|
|
27
|
+
* `cases`, keep only fully-passing candidates and return the first — teachers
|
|
28
|
+
* are listed strongest-first (e.g. Opus), so the strongest correct answer wins
|
|
29
|
+
* and a wrong teacher answer is dropped rather than trained on. With no cases,
|
|
30
|
+
* take the first non-empty candidate (teacher-order priority).
|
|
31
|
+
*/
|
|
32
|
+
export declare function selectBestCandidate(candidates: Candidate[], cases: CodeCase[]): Candidate | null;
|
|
13
33
|
interface Registered {
|
|
14
34
|
info: StepTypeInfo;
|
|
15
35
|
factory: StepFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/workflow/steps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/workflow/steps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAoBH,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAoDhF,+DAA+D;AAC/D,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAkBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpD;AASD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,GAAG,IAAI,CAOhG;AAoGD,UAAU,UAAU;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAuhBpD,CAAC"}
|