@oni.bot/core 1.0.2 → 1.1.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/CHANGELOG.md +146 -146
- package/dist/agents/define-agent.d.ts.map +1 -1
- package/dist/agents/define-agent.js +7 -2
- package/dist/agents/define-agent.js.map +1 -1
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +7 -2
- package/dist/checkpoint.js.map +1 -1
- package/dist/checkpointers/postgres.d.ts.map +1 -1
- package/dist/checkpointers/postgres.js +45 -28
- package/dist/checkpointers/postgres.js.map +1 -1
- package/dist/circuit-breaker.d.ts +1 -0
- package/dist/circuit-breaker.d.ts.map +1 -1
- package/dist/circuit-breaker.js +13 -0
- package/dist/circuit-breaker.js.map +1 -1
- package/dist/cli/dev.d.ts.map +1 -1
- package/dist/cli/dev.js +0 -1
- package/dist/cli/dev.js.map +1 -1
- package/dist/cli/inspect.d.ts.map +1 -1
- package/dist/cli/inspect.js +4 -2
- package/dist/cli/inspect.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +0 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.js +12 -4
- package/dist/config/loader.js.map +1 -1
- package/dist/coordination/pubsub.d.ts +1 -0
- package/dist/coordination/pubsub.d.ts.map +1 -1
- package/dist/coordination/pubsub.js +31 -16
- package/dist/coordination/pubsub.js.map +1 -1
- package/dist/coordination/request-reply.d.ts +17 -2
- package/dist/coordination/request-reply.d.ts.map +1 -1
- package/dist/coordination/request-reply.js +56 -14
- package/dist/coordination/request-reply.js.map +1 -1
- package/dist/events/bus.d.ts +1 -0
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/bus.js +17 -10
- package/dist/events/bus.js.map +1 -1
- package/dist/functional.d.ts.map +1 -1
- package/dist/functional.js +3 -0
- package/dist/functional.js.map +1 -1
- package/dist/graph.d.ts +11 -1
- package/dist/graph.d.ts.map +1 -1
- package/dist/graph.js +9 -4
- package/dist/graph.js.map +1 -1
- package/dist/guardrails/audit.d.ts +4 -1
- package/dist/guardrails/audit.d.ts.map +1 -1
- package/dist/guardrails/audit.js +18 -1
- package/dist/guardrails/audit.js.map +1 -1
- package/dist/harness/agent-loop.d.ts +1 -7
- package/dist/harness/agent-loop.d.ts.map +1 -1
- package/dist/harness/agent-loop.js +2 -523
- package/dist/harness/agent-loop.js.map +1 -1
- package/dist/harness/context-compactor.d.ts +1 -0
- package/dist/harness/context-compactor.d.ts.map +1 -1
- package/dist/harness/context-compactor.js +43 -1
- package/dist/harness/context-compactor.js.map +1 -1
- package/dist/harness/harness.d.ts +6 -0
- package/dist/harness/harness.d.ts.map +1 -1
- package/dist/harness/harness.js +32 -5
- package/dist/harness/harness.js.map +1 -1
- package/dist/harness/hooks-engine.d.ts.map +1 -1
- package/dist/harness/hooks-engine.js +12 -10
- package/dist/harness/hooks-engine.js.map +1 -1
- package/dist/harness/index.d.ts +3 -1
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +2 -0
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/loop/hooks.d.ts +7 -0
- package/dist/harness/loop/hooks.d.ts.map +1 -0
- package/dist/harness/loop/hooks.js +46 -0
- package/dist/harness/loop/hooks.js.map +1 -0
- package/dist/harness/loop/index.d.ts +8 -0
- package/dist/harness/loop/index.d.ts.map +1 -0
- package/dist/harness/loop/index.js +257 -0
- package/dist/harness/loop/index.js.map +1 -0
- package/dist/harness/loop/inference.d.ts +19 -0
- package/dist/harness/loop/inference.d.ts.map +1 -0
- package/dist/harness/loop/inference.js +121 -0
- package/dist/harness/loop/inference.js.map +1 -0
- package/dist/harness/loop/memory.d.ts +22 -0
- package/dist/harness/loop/memory.d.ts.map +1 -0
- package/dist/harness/loop/memory.js +73 -0
- package/dist/harness/loop/memory.js.map +1 -0
- package/dist/harness/loop/safety.d.ts +8 -0
- package/dist/harness/loop/safety.d.ts.map +1 -0
- package/dist/harness/loop/safety.js +21 -0
- package/dist/harness/loop/safety.js.map +1 -0
- package/dist/harness/loop/tools.d.ts +24 -0
- package/dist/harness/loop/tools.d.ts.map +1 -0
- package/dist/harness/loop/tools.js +184 -0
- package/dist/harness/loop/tools.js.map +1 -0
- package/dist/harness/loop/types.d.ts +7 -0
- package/dist/harness/loop/types.d.ts.map +1 -0
- package/dist/harness/loop/types.js +9 -0
- package/dist/harness/loop/types.js.map +1 -0
- package/dist/harness/memory/fs-compat.d.ts +3 -0
- package/dist/harness/memory/fs-compat.d.ts.map +1 -0
- package/dist/harness/memory/fs-compat.js +26 -0
- package/dist/harness/memory/fs-compat.js.map +1 -0
- package/dist/harness/memory/index.d.ts +105 -0
- package/dist/harness/memory/index.d.ts.map +1 -0
- package/dist/harness/memory/index.js +491 -0
- package/dist/harness/memory/index.js.map +1 -0
- package/dist/harness/memory/prompter.d.ts +7 -0
- package/dist/harness/memory/prompter.d.ts.map +1 -0
- package/dist/harness/memory/prompter.js +24 -0
- package/dist/harness/memory/prompter.js.map +1 -0
- package/dist/harness/memory/ranker.d.ts +15 -0
- package/dist/harness/memory/ranker.d.ts.map +1 -0
- package/dist/harness/memory/ranker.js +72 -0
- package/dist/harness/memory/ranker.js.map +1 -0
- package/dist/harness/memory/scanner.d.ts +26 -0
- package/dist/harness/memory/scanner.d.ts.map +1 -0
- package/dist/harness/memory/scanner.js +187 -0
- package/dist/harness/memory/scanner.js.map +1 -0
- package/dist/harness/memory/types.d.ts +50 -0
- package/dist/harness/memory/types.d.ts.map +1 -0
- package/dist/harness/memory/types.js +7 -0
- package/dist/harness/memory/types.js.map +1 -0
- package/dist/harness/memory-loader.d.ts +3 -0
- package/dist/harness/memory-loader.d.ts.map +1 -0
- package/dist/harness/memory-loader.js +2 -0
- package/dist/harness/memory-loader.js.map +1 -0
- package/dist/harness/safety-gate.d.ts.map +1 -1
- package/dist/harness/safety-gate.js +47 -26
- package/dist/harness/safety-gate.js.map +1 -1
- package/dist/harness/skill-loader.d.ts +7 -0
- package/dist/harness/skill-loader.d.ts.map +1 -1
- package/dist/harness/skill-loader.js +24 -8
- package/dist/harness/skill-loader.js.map +1 -1
- package/dist/harness/todo-module.d.ts.map +1 -1
- package/dist/harness/todo-module.js +13 -6
- package/dist/harness/todo-module.js.map +1 -1
- package/dist/harness/types.d.ts +7 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js.map +1 -1
- package/dist/harness/validate-args.js +18 -3
- package/dist/harness/validate-args.js.map +1 -1
- package/dist/hitl/interrupt.d.ts +2 -2
- package/dist/hitl/interrupt.d.ts.map +1 -1
- package/dist/hitl/interrupt.js +8 -5
- package/dist/hitl/interrupt.js.map +1 -1
- package/dist/hitl/resume.d.ts +10 -0
- package/dist/hitl/resume.d.ts.map +1 -1
- package/dist/hitl/resume.js +31 -0
- package/dist/hitl/resume.js.map +1 -1
- package/dist/injected.d.ts.map +1 -1
- package/dist/injected.js.map +1 -1
- package/dist/inspect.d.ts.map +1 -1
- package/dist/inspect.js +28 -8
- package/dist/inspect.js.map +1 -1
- package/dist/lsp/client.d.ts +2 -0
- package/dist/lsp/client.d.ts.map +1 -1
- package/dist/lsp/client.js +62 -17
- package/dist/lsp/client.js.map +1 -1
- package/dist/lsp/index.d.ts.map +1 -1
- package/dist/lsp/index.js.map +1 -1
- package/dist/mcp/client.d.ts +2 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +44 -13
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/convert.js +1 -1
- package/dist/mcp/convert.js.map +1 -1
- package/dist/mcp/transport.d.ts +2 -0
- package/dist/mcp/transport.d.ts.map +1 -1
- package/dist/mcp/transport.js +33 -8
- package/dist/mcp/transport.js.map +1 -1
- package/dist/messages/index.d.ts.map +1 -1
- package/dist/messages/index.js +7 -1
- package/dist/messages/index.js.map +1 -1
- package/dist/models/anthropic.d.ts.map +1 -1
- package/dist/models/anthropic.js +25 -15
- package/dist/models/anthropic.js.map +1 -1
- package/dist/models/google.d.ts.map +1 -1
- package/dist/models/google.js +23 -7
- package/dist/models/google.js.map +1 -1
- package/dist/models/ollama.d.ts.map +1 -1
- package/dist/models/ollama.js +11 -1
- package/dist/models/ollama.js.map +1 -1
- package/dist/models/openai.d.ts.map +1 -1
- package/dist/models/openai.js +15 -3
- package/dist/models/openai.js.map +1 -1
- package/dist/models/openrouter.d.ts.map +1 -1
- package/dist/models/openrouter.js +14 -3
- package/dist/models/openrouter.js.map +1 -1
- package/dist/prebuilt/react-agent.d.ts.map +1 -1
- package/dist/prebuilt/react-agent.js +7 -2
- package/dist/prebuilt/react-agent.js.map +1 -1
- package/dist/pregel/checkpointing.d.ts +12 -0
- package/dist/pregel/checkpointing.d.ts.map +1 -0
- package/dist/pregel/checkpointing.js +60 -0
- package/dist/pregel/checkpointing.js.map +1 -0
- package/dist/pregel/execution.d.ts +7 -0
- package/dist/pregel/execution.d.ts.map +1 -0
- package/dist/pregel/execution.js +178 -0
- package/dist/pregel/execution.js.map +1 -0
- package/dist/pregel/index.d.ts +61 -0
- package/dist/pregel/index.d.ts.map +1 -0
- package/dist/pregel/index.js +154 -0
- package/dist/pregel/index.js.map +1 -0
- package/dist/pregel/interrupts.d.ts +3 -0
- package/dist/pregel/interrupts.d.ts.map +1 -0
- package/dist/pregel/interrupts.js +7 -0
- package/dist/pregel/interrupts.js.map +1 -0
- package/dist/pregel/state-helpers.d.ts +12 -0
- package/dist/pregel/state-helpers.d.ts.map +1 -0
- package/dist/pregel/state-helpers.js +71 -0
- package/dist/pregel/state-helpers.js.map +1 -0
- package/dist/pregel/streaming.d.ts +5 -0
- package/dist/pregel/streaming.d.ts.map +1 -0
- package/dist/pregel/streaming.js +462 -0
- package/dist/pregel/streaming.js.map +1 -0
- package/dist/pregel/types.d.ts +48 -0
- package/dist/pregel/types.d.ts.map +1 -0
- package/dist/pregel/types.js +5 -0
- package/dist/pregel/types.js.map +1 -0
- package/dist/pregel.d.ts +1 -63
- package/dist/pregel.d.ts.map +1 -1
- package/dist/pregel.js +2 -804
- package/dist/pregel.js.map +1 -1
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +7 -6
- package/dist/retry.js.map +1 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +36 -9
- package/dist/store/index.js.map +1 -1
- package/dist/stream-events.d.ts.map +1 -1
- package/dist/stream-events.js +3 -9
- package/dist/stream-events.js.map +1 -1
- package/dist/swarm/agent-node.d.ts +11 -0
- package/dist/swarm/agent-node.d.ts.map +1 -0
- package/dist/swarm/agent-node.js +156 -0
- package/dist/swarm/agent-node.js.map +1 -0
- package/dist/swarm/compile-ext.d.ts +5 -0
- package/dist/swarm/compile-ext.d.ts.map +1 -0
- package/dist/swarm/compile-ext.js +126 -0
- package/dist/swarm/compile-ext.js.map +1 -0
- package/dist/swarm/config.d.ts +147 -0
- package/dist/swarm/config.d.ts.map +1 -0
- package/dist/swarm/config.js +17 -0
- package/dist/swarm/config.js.map +1 -0
- package/dist/swarm/factories.d.ts +37 -0
- package/dist/swarm/factories.d.ts.map +1 -0
- package/dist/swarm/factories.js +703 -0
- package/dist/swarm/factories.js.map +1 -0
- package/dist/swarm/graph.d.ts +16 -136
- package/dist/swarm/graph.d.ts.map +1 -1
- package/dist/swarm/graph.js +39 -897
- package/dist/swarm/graph.js.map +1 -1
- package/dist/swarm/index.d.ts +2 -1
- package/dist/swarm/index.d.ts.map +1 -1
- package/dist/swarm/index.js.map +1 -1
- package/dist/swarm/mailbox.d.ts.map +1 -1
- package/dist/swarm/mailbox.js +3 -1
- package/dist/swarm/mailbox.js.map +1 -1
- package/dist/swarm/mermaid.d.ts +2 -1
- package/dist/swarm/mermaid.d.ts.map +1 -1
- package/dist/swarm/mermaid.js +6 -3
- package/dist/swarm/mermaid.js.map +1 -1
- package/dist/swarm/pool.d.ts.map +1 -1
- package/dist/swarm/pool.js +18 -1
- package/dist/swarm/pool.js.map +1 -1
- package/dist/swarm/registry.d.ts.map +1 -1
- package/dist/swarm/registry.js +7 -0
- package/dist/swarm/registry.js.map +1 -1
- package/dist/swarm/scaling.d.ts +10 -1
- package/dist/swarm/scaling.d.ts.map +1 -1
- package/dist/swarm/scaling.js +85 -14
- package/dist/swarm/scaling.js.map +1 -1
- package/dist/swarm/snapshot.d.ts.map +1 -1
- package/dist/swarm/snapshot.js +10 -1
- package/dist/swarm/snapshot.js.map +1 -1
- package/dist/swarm/supervisor.js +20 -12
- package/dist/swarm/supervisor.js.map +1 -1
- package/dist/swarm/tracer.d.ts +3 -1
- package/dist/swarm/tracer.d.ts.map +1 -1
- package/dist/swarm/tracer.js +66 -15
- package/dist/swarm/tracer.js.map +1 -1
- package/dist/swarm/types.d.ts +1 -6
- package/dist/swarm/types.d.ts.map +1 -1
- package/dist/testing/index.d.ts +4 -4
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3 -2
- package/dist/testing/index.js.map +1 -1
- package/dist/tools/define.d.ts +2 -1
- package/dist/tools/define.d.ts.map +1 -1
- package/dist/tools/define.js +3 -1
- package/dist/tools/define.js.map +1 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ranker.js","sourceRoot":"","sources":["../../../src/harness/memory/ranker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { MemoryTier, MemoryType, MemoryUnit, Frontmatter } from "./types.js";
|
|
2
|
+
export declare function parseFrontmatter(content: string): {
|
|
3
|
+
meta: Frontmatter;
|
|
4
|
+
body: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function estimateTokens(content: string): number;
|
|
7
|
+
export declare function inferTypeFromPath(relPath: string): MemoryType;
|
|
8
|
+
export declare function inferTierFromPath(relPath: string, type: MemoryType): MemoryTier;
|
|
9
|
+
export declare function extractTagsFromContent(body: string): string[];
|
|
10
|
+
export declare function extractSummary(body: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Read a single markdown file from disk and build a MemoryUnit.
|
|
13
|
+
* Returns null if the file cannot be read.
|
|
14
|
+
*/
|
|
15
|
+
export declare function registerFile(absPath: string, relPath: string): MemoryUnit | null;
|
|
16
|
+
/**
|
|
17
|
+
* Recursively scan a directory for .md files (skipping INDEX.md).
|
|
18
|
+
* Returns a map of relPath → MemoryUnit for all successfully registered files.
|
|
19
|
+
*/
|
|
20
|
+
export declare function scanDirectory(absDir: string, relDir: string, fs: typeof import("fs"), path: typeof import("path")): Map<string, MemoryUnit>;
|
|
21
|
+
/**
|
|
22
|
+
* Scan the memory root directory and return all discovered MemoryUnits.
|
|
23
|
+
* Returns an empty map if fs/path are unavailable or root doesn't exist.
|
|
24
|
+
*/
|
|
25
|
+
export declare function scanRoot(root: string): Map<string, MemoryUnit>;
|
|
26
|
+
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/harness/memory/scanner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIlF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA8BrF;AAID,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAW7D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAuB/E;AAID,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO7D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAInD;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAwBhF;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,cAAc,IAAI,CAAC,EACvB,IAAI,EAAE,cAAc,MAAM,CAAC,GAC1B,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CA2BzB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAK9D"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// @oni.bot/core/harness/memory — scanner
|
|
3
|
+
//
|
|
4
|
+
// Filesystem scan, frontmatter parsing, tag/summary inference,
|
|
5
|
+
// and token cost estimation.
|
|
6
|
+
// Uses getFs()/getPath() from fs-compat.ts — never top-level fs imports.
|
|
7
|
+
// ============================================================
|
|
8
|
+
import { getFs, getPath } from "./fs-compat.js";
|
|
9
|
+
// ─── Frontmatter ─────────────────────────────────────────────────────────────
|
|
10
|
+
export function parseFrontmatter(content) {
|
|
11
|
+
const normalized = content.replace(/\r\n/g, "\n");
|
|
12
|
+
const match = normalized.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);
|
|
13
|
+
if (!match)
|
|
14
|
+
return { meta: {}, body: content };
|
|
15
|
+
const raw = match[1];
|
|
16
|
+
const body = match[2];
|
|
17
|
+
const meta = {};
|
|
18
|
+
for (const line of raw.split("\n")) {
|
|
19
|
+
const colonIdx = line.indexOf(":");
|
|
20
|
+
if (colonIdx === -1)
|
|
21
|
+
continue;
|
|
22
|
+
const key = line.slice(0, colonIdx).trim();
|
|
23
|
+
const val = line.slice(colonIdx + 1).trim();
|
|
24
|
+
if (!key || !val)
|
|
25
|
+
continue;
|
|
26
|
+
switch (key) {
|
|
27
|
+
case "type":
|
|
28
|
+
meta.type = val;
|
|
29
|
+
break;
|
|
30
|
+
case "tier": {
|
|
31
|
+
const parsed = parseInt(val, 10);
|
|
32
|
+
if (parsed >= 0 && parsed <= 3)
|
|
33
|
+
meta.tier = parsed;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case "tags":
|
|
37
|
+
meta.tags = val.split(",").map((t) => t.trim()).filter(Boolean);
|
|
38
|
+
break;
|
|
39
|
+
case "summary":
|
|
40
|
+
meta.summary = val;
|
|
41
|
+
break;
|
|
42
|
+
case "triggers":
|
|
43
|
+
meta.triggers = val.split(",").map((t) => t.trim()).filter(Boolean);
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return { meta, body };
|
|
48
|
+
}
|
|
49
|
+
// ─── Token estimation ─────────────────────────────────────────────────────────
|
|
50
|
+
export function estimateTokens(content) {
|
|
51
|
+
return Math.ceil(content.length / 4);
|
|
52
|
+
}
|
|
53
|
+
// ─── Path-based type/tier inference ──────────────────────────────────────────
|
|
54
|
+
export function inferTypeFromPath(relPath) {
|
|
55
|
+
const top = relPath.split(/[\\/]/)[0] ?? "";
|
|
56
|
+
const map = {
|
|
57
|
+
identity: "identity",
|
|
58
|
+
working: "working",
|
|
59
|
+
procedural: "procedural",
|
|
60
|
+
episodic: "episodic",
|
|
61
|
+
semantic: "semantic",
|
|
62
|
+
user: "user",
|
|
63
|
+
};
|
|
64
|
+
return map[top] ?? "semantic";
|
|
65
|
+
}
|
|
66
|
+
export function inferTierFromPath(relPath, type) {
|
|
67
|
+
if (type === "identity")
|
|
68
|
+
return 0;
|
|
69
|
+
if (type === "working")
|
|
70
|
+
return 1;
|
|
71
|
+
if (type === "user")
|
|
72
|
+
return relPath.includes("RELATIONSHIPS") ? 2 : 1;
|
|
73
|
+
if (type === "procedural") {
|
|
74
|
+
if (relPath.endsWith("INDEX.md"))
|
|
75
|
+
return 1;
|
|
76
|
+
if (relPath.includes("examples"))
|
|
77
|
+
return 3;
|
|
78
|
+
return 2;
|
|
79
|
+
}
|
|
80
|
+
if (type === "episodic") {
|
|
81
|
+
if (relPath.endsWith("INDEX.md"))
|
|
82
|
+
return 1;
|
|
83
|
+
if (relPath.includes("archive"))
|
|
84
|
+
return 3;
|
|
85
|
+
return 2;
|
|
86
|
+
}
|
|
87
|
+
if (type === "semantic") {
|
|
88
|
+
const parts = relPath.split(/[\\/]/);
|
|
89
|
+
// root INDEX.md: semantic/INDEX.md → 2 parts
|
|
90
|
+
if (parts.length === 2 && parts[1] === "INDEX.md")
|
|
91
|
+
return 1;
|
|
92
|
+
// domain INDEX.md: semantic/<domain>/INDEX.md → 3 parts
|
|
93
|
+
if (parts.length === 3 && parts[2] === "INDEX.md")
|
|
94
|
+
return 2;
|
|
95
|
+
return 3;
|
|
96
|
+
}
|
|
97
|
+
return 2;
|
|
98
|
+
}
|
|
99
|
+
// ─── Tag + summary extraction ─────────────────────────────────────────────────
|
|
100
|
+
export function extractTagsFromContent(body) {
|
|
101
|
+
const headings = [...body.matchAll(/^##\s+(.+)$/gm)].map((m) => m[1].toLowerCase().replace(/\s+/g, "-"));
|
|
102
|
+
const firstLine = body.split("\n").find((l) => l.trim() && !l.startsWith("#")) ?? "";
|
|
103
|
+
const words = firstLine.toLowerCase().match(/\b[a-z]{4,}\b/g) ?? [];
|
|
104
|
+
return [...new Set([...headings, ...words.slice(0, 5)])];
|
|
105
|
+
}
|
|
106
|
+
export function extractSummary(body) {
|
|
107
|
+
const firstParagraph = body.split("\n\n").find((p) => p.trim() && !p.startsWith("#"));
|
|
108
|
+
if (!firstParagraph)
|
|
109
|
+
return "";
|
|
110
|
+
return firstParagraph.replace(/\n/g, " ").trim().slice(0, 120);
|
|
111
|
+
}
|
|
112
|
+
// ─── File registration ────────────────────────────────────────────────────────
|
|
113
|
+
/**
|
|
114
|
+
* Read a single markdown file from disk and build a MemoryUnit.
|
|
115
|
+
* Returns null if the file cannot be read.
|
|
116
|
+
*/
|
|
117
|
+
export function registerFile(absPath, relPath) {
|
|
118
|
+
const fs = getFs();
|
|
119
|
+
if (!fs)
|
|
120
|
+
return null;
|
|
121
|
+
try {
|
|
122
|
+
const raw = fs.readFileSync(absPath, "utf-8");
|
|
123
|
+
const { meta, body } = parseFrontmatter(raw);
|
|
124
|
+
const type = meta.type ?? inferTypeFromPath(relPath);
|
|
125
|
+
const tier = meta.tier ?? inferTierFromPath(relPath, type);
|
|
126
|
+
const stat = fs.statSync(absPath);
|
|
127
|
+
return {
|
|
128
|
+
key: relPath,
|
|
129
|
+
path: absPath,
|
|
130
|
+
type,
|
|
131
|
+
tier,
|
|
132
|
+
tags: meta.tags ?? extractTagsFromContent(body),
|
|
133
|
+
summary: meta.summary ?? extractSummary(body),
|
|
134
|
+
tokenCost: estimateTokens(raw),
|
|
135
|
+
triggers: meta.triggers ?? [],
|
|
136
|
+
updatedAt: stat.mtime.toISOString(),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// ─── Directory scan ───────────────────────────────────────────────────────────
|
|
144
|
+
/**
|
|
145
|
+
* Recursively scan a directory for .md files (skipping INDEX.md).
|
|
146
|
+
* Returns a map of relPath → MemoryUnit for all successfully registered files.
|
|
147
|
+
*/
|
|
148
|
+
export function scanDirectory(absDir, relDir, fs, path) {
|
|
149
|
+
const result = new Map();
|
|
150
|
+
let entries;
|
|
151
|
+
try {
|
|
152
|
+
entries = fs.readdirSync(absDir, { withFileTypes: true });
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
for (const entry of entries) {
|
|
158
|
+
// Skip INDEX.md — it is metadata, not a memory unit
|
|
159
|
+
if (entry.name === "INDEX.md")
|
|
160
|
+
continue;
|
|
161
|
+
const relPath = relDir ? path.join(relDir, entry.name) : entry.name;
|
|
162
|
+
const absPath = path.join(absDir, entry.name);
|
|
163
|
+
if (entry.isDirectory()) {
|
|
164
|
+
const sub = scanDirectory(absPath, relPath, fs, path);
|
|
165
|
+
for (const [k, v] of sub)
|
|
166
|
+
result.set(k, v);
|
|
167
|
+
}
|
|
168
|
+
else if (entry.name.endsWith(".md")) {
|
|
169
|
+
const unit = registerFile(absPath, relPath);
|
|
170
|
+
if (unit)
|
|
171
|
+
result.set(relPath, unit);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Scan the memory root directory and return all discovered MemoryUnits.
|
|
178
|
+
* Returns an empty map if fs/path are unavailable or root doesn't exist.
|
|
179
|
+
*/
|
|
180
|
+
export function scanRoot(root) {
|
|
181
|
+
const fs = getFs();
|
|
182
|
+
const path = getPath();
|
|
183
|
+
if (!fs || !path || !fs.existsSync(root))
|
|
184
|
+
return new Map();
|
|
185
|
+
return scanDirectory(root, "", fs, path);
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/harness/memory/scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export type MemoryTier = 0 | 1 | 2 | 3;
|
|
2
|
+
export type MemoryType = "identity" | "working" | "procedural" | "episodic" | "semantic" | "user";
|
|
3
|
+
export interface MemoryUnit {
|
|
4
|
+
/** Relative path from memory root, e.g. "procedural/pptx/notes.md" */
|
|
5
|
+
key: string;
|
|
6
|
+
/** Absolute path on disk */
|
|
7
|
+
path: string;
|
|
8
|
+
type: MemoryType;
|
|
9
|
+
tier: MemoryTier;
|
|
10
|
+
/** From frontmatter; fallback: h2 headings + first-line keywords (≤5) */
|
|
11
|
+
tags: string[];
|
|
12
|
+
/** From frontmatter; fallback: first non-heading paragraph (≤120 chars) */
|
|
13
|
+
summary: string;
|
|
14
|
+
/** Math.ceil(content.length / 4) */
|
|
15
|
+
tokenCost: number;
|
|
16
|
+
/** Natural language patterns that trigger this unit */
|
|
17
|
+
triggers: string[];
|
|
18
|
+
/** ISO mtime */
|
|
19
|
+
updatedAt: string;
|
|
20
|
+
/** Absent after scan(); populated after hydrate() or persist() */
|
|
21
|
+
content?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface LoadResult {
|
|
24
|
+
units: MemoryUnit[];
|
|
25
|
+
totalTokens: number;
|
|
26
|
+
budget: number;
|
|
27
|
+
/** Candidates that exceeded the budget (content NOT hydrated) */
|
|
28
|
+
dropped: MemoryUnit[];
|
|
29
|
+
}
|
|
30
|
+
export interface MemoryLoaderConfig {
|
|
31
|
+
root: string;
|
|
32
|
+
/** Default: { 0: 800, 1: 2000, 2: 4000, 3: 8000 } */
|
|
33
|
+
budgets?: Partial<Record<MemoryTier, number>>;
|
|
34
|
+
/** Days to keep episodic sessions in recent/ before archiving. Default: 7 */
|
|
35
|
+
episodicRecentDays?: number;
|
|
36
|
+
/** Auto-rebuild INDEX.md after every persist(). Default: true */
|
|
37
|
+
autoIndex?: boolean;
|
|
38
|
+
/** Minimum relevance score (0–1) for match()/query(). Default: 0.2 */
|
|
39
|
+
matchThreshold?: number;
|
|
40
|
+
debug?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/** Internal frontmatter type — NOT exported as MemoryFrontmatter */
|
|
43
|
+
export interface Frontmatter {
|
|
44
|
+
type?: MemoryType;
|
|
45
|
+
tier?: MemoryTier;
|
|
46
|
+
tags?: string[];
|
|
47
|
+
summary?: string;
|
|
48
|
+
triggers?: string[];
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/harness/memory/types.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvC,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,SAAS,GACT,YAAY,GACZ,UAAU,GACV,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// @oni.bot/core/harness/memory — types
|
|
3
|
+
//
|
|
4
|
+
// All public and internal types for the MemoryLoader system.
|
|
5
|
+
// ============================================================
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/harness/memory/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uCAAuC;AACvC,EAAE;AACF,6DAA6D;AAC7D,+DAA+D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-loader.d.ts","sourceRoot":"","sources":["../../src/harness/memory-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-loader.js","sourceRoot":"","sources":["../../src/harness/memory-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety-gate.d.ts","sourceRoot":"","sources":["../../src/harness/safety-gate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAkCD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,gBAAgB;IAOpC,yEAAyE;IACzE,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC,6EAA6E;IACvE,KAAK,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"safety-gate.d.ts","sourceRoot":"","sources":["../../src/harness/safety-gate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAkCD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,gBAAgB;IAOpC,yEAAyE;IACzE,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC,6EAA6E;IACvE,KAAK,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAgD3G"}
|
|
@@ -5,27 +5,27 @@
|
|
|
5
5
|
// ─── Constants ──────────────────────────────────────────────────────────────
|
|
6
6
|
const DEFAULT_PROTECTED_TOOLS = ["Bash", "Write", "MultiEdit"];
|
|
7
7
|
const DEFAULT_TIMEOUT = 5000;
|
|
8
|
-
const DEFAULT_SAFETY_PROMPT = `You are a safety evaluator for an AI agent's tool calls. Analyze the tool call and respond with a JSON object:
|
|
9
|
-
{"approved": boolean, "reason": string, "riskScore": number (0-1), "suggestion"?: string}
|
|
10
|
-
|
|
11
|
-
Be strict about:
|
|
12
|
-
- Irreversible deletions (rm -rf, DROP TABLE, etc.)
|
|
13
|
-
- Broad file writes that could overwrite important files
|
|
14
|
-
- Pipe-to-shell patterns (curl | sh, wget | bash)
|
|
15
|
-
- Credential access (.env, secrets, tokens, API keys)
|
|
16
|
-
|
|
17
|
-
Be permissive about:
|
|
18
|
-
- Read operations (cat, ls, grep, find)
|
|
19
|
-
- Targeted writes to specific files
|
|
20
|
-
- Build and test commands (npm test, make, vitest)
|
|
21
|
-
- Version control operations (git status, git diff)
|
|
22
|
-
|
|
8
|
+
const DEFAULT_SAFETY_PROMPT = `You are a safety evaluator for an AI agent's tool calls. Analyze the tool call and respond with a JSON object:
|
|
9
|
+
{"approved": boolean, "reason": string, "riskScore": number (0-1), "suggestion"?: string}
|
|
10
|
+
|
|
11
|
+
Be strict about:
|
|
12
|
+
- Irreversible deletions (rm -rf, DROP TABLE, etc.)
|
|
13
|
+
- Broad file writes that could overwrite important files
|
|
14
|
+
- Pipe-to-shell patterns (curl | sh, wget | bash)
|
|
15
|
+
- Credential access (.env, secrets, tokens, API keys)
|
|
16
|
+
|
|
17
|
+
Be permissive about:
|
|
18
|
+
- Read operations (cat, ls, grep, find)
|
|
19
|
+
- Targeted writes to specific files
|
|
20
|
+
- Build and test commands (npm test, make, vitest)
|
|
21
|
+
- Version control operations (git status, git diff)
|
|
22
|
+
|
|
23
23
|
Respond ONLY with the JSON object, no other text.`;
|
|
24
24
|
// ─── Fallback result ────────────────────────────────────────────────────────
|
|
25
25
|
const FALLBACK_RESULT = {
|
|
26
|
-
approved:
|
|
27
|
-
reason: "Safety check
|
|
28
|
-
riskScore: 0
|
|
26
|
+
approved: false,
|
|
27
|
+
reason: "Safety check unavailable (timeout/error) — failing closed",
|
|
28
|
+
riskScore: 1.0,
|
|
29
29
|
};
|
|
30
30
|
// ─── SafetyGate ─────────────────────────────────────────────────────────────
|
|
31
31
|
export class SafetyGate {
|
|
@@ -45,6 +45,7 @@ export class SafetyGate {
|
|
|
45
45
|
}
|
|
46
46
|
/** Sends tool call info to the safety model and returns the check result. */
|
|
47
47
|
async check(call) {
|
|
48
|
+
let response;
|
|
48
49
|
try {
|
|
49
50
|
const userMessage = `Tool: ${call.name}\nArguments: ${JSON.stringify(call.args, null, 2)}`;
|
|
50
51
|
const responsePromise = this.model.chat({
|
|
@@ -52,20 +53,40 @@ export class SafetyGate {
|
|
|
52
53
|
systemPrompt: this.systemPrompt,
|
|
53
54
|
maxTokens: 256,
|
|
54
55
|
});
|
|
56
|
+
let timeoutHandle;
|
|
55
57
|
const timeoutPromise = new Promise((_, reject) => {
|
|
56
|
-
setTimeout(() => reject(new Error("Safety check timeout")), this.timeout);
|
|
58
|
+
timeoutHandle = setTimeout(() => reject(new Error("Safety check timeout")), this.timeout);
|
|
57
59
|
});
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
response = await Promise.race([responsePromise, timeoutPromise]);
|
|
61
|
+
clearTimeout(timeoutHandle);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Fail-closed for network errors and timeouts — block destructive tools
|
|
65
|
+
// when the safety service is unavailable.
|
|
66
|
+
return { ...FALLBACK_RESULT };
|
|
67
|
+
}
|
|
68
|
+
// Safely extract text — content is typed as string but guard defensively
|
|
69
|
+
// against adapters that return a content-block array at runtime.
|
|
70
|
+
const text = typeof response.content === "string"
|
|
71
|
+
? response.content
|
|
72
|
+
: response.content.map((p) => p.text ?? "").join("");
|
|
73
|
+
try {
|
|
74
|
+
const parsed = JSON.parse(text);
|
|
60
75
|
return {
|
|
61
|
-
approved: Boolean(parsed
|
|
62
|
-
reason: parsed
|
|
63
|
-
riskScore: parsed
|
|
64
|
-
suggestion: parsed
|
|
76
|
+
approved: Boolean(parsed["approved"]),
|
|
77
|
+
reason: parsed["reason"],
|
|
78
|
+
riskScore: parsed["riskScore"],
|
|
79
|
+
suggestion: parsed["suggestion"],
|
|
65
80
|
};
|
|
66
81
|
}
|
|
67
82
|
catch {
|
|
68
|
-
|
|
83
|
+
// Model returned non-JSON content — fail-closed. A safety model that
|
|
84
|
+
// cannot produce a parseable response must not silently approve.
|
|
85
|
+
return {
|
|
86
|
+
approved: false,
|
|
87
|
+
reason: "Safety check failed: model returned non-JSON response",
|
|
88
|
+
riskScore: 1.0,
|
|
89
|
+
};
|
|
69
90
|
}
|
|
70
91
|
}
|
|
71
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety-gate.js","sourceRoot":"","sources":["../../src/harness/safety-gate.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,qCAAqC;AACrC,6DAA6D;AAC7D,+DAA+D;AAoB/D,+EAA+E;AAE/E,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC/D,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;kDAeoB,CAAC;AAEnD,+EAA+E;AAE/E,MAAM,eAAe,GAAsB;IACzC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"safety-gate.js","sourceRoot":"","sources":["../../src/harness/safety-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,13 @@ export declare class SkillLoader {
|
|
|
30
30
|
private loadDirectory;
|
|
31
31
|
private scanDirectory;
|
|
32
32
|
private loadSkillFile;
|
|
33
|
+
/**
|
|
34
|
+
* Create a fork that shares the skill catalog but has its own isolated
|
|
35
|
+
* pendingInjection state. Use when multiple concurrent agents share the
|
|
36
|
+
* same SkillLoader to prevent one agent's skill invocation from being
|
|
37
|
+
* consumed by another agent.
|
|
38
|
+
*/
|
|
39
|
+
fork(): SkillLoader;
|
|
33
40
|
/**
|
|
34
41
|
* Register a skill definition programmatically (works in all runtimes).
|
|
35
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-loader.d.ts","sourceRoot":"","sources":["../../src/harness/skill-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAuCD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,kFAAkF;IAClF,OAAO,SAAK;IAIZ;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAM9C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW;IAUnD,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"skill-loader.d.ts","sourceRoot":"","sources":["../../src/harness/skill-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAuCD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,kFAAkF;IAClF,OAAO,SAAK;IAIZ;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAM9C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW;IAUnD,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,aAAa;IAyCrB;;;;;OAKG;IACH,IAAI,IAAI,WAAW;IASnB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAKtC;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAa5C;;OAEG;IACH,MAAM,IAAI,eAAe,EAAE;IAI3B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAM9C;;;OAGG;IACH,yBAAyB,IAAI,MAAM;IAgBnC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAS5C;;OAEG;IACH,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAM7B;;;OAGG;IACH,YAAY,IAAI,cAAc,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC;CA4BzD"}
|
|
@@ -63,7 +63,9 @@ export class SkillLoader {
|
|
|
63
63
|
loadDirectory(dir) {
|
|
64
64
|
try {
|
|
65
65
|
// Dynamic require to avoid bundler issues in non-Node envs
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
66
67
|
const fs = require("fs");
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
67
69
|
const path = require("path");
|
|
68
70
|
this.scanDirectory(dir, fs, path);
|
|
69
71
|
}
|
|
@@ -101,7 +103,7 @@ export class SkillLoader {
|
|
|
101
103
|
const { meta, body } = parseFrontmatter(raw);
|
|
102
104
|
const name = meta.name || "";
|
|
103
105
|
if (!name)
|
|
104
|
-
return;
|
|
106
|
+
return false;
|
|
105
107
|
const skill = {
|
|
106
108
|
name,
|
|
107
109
|
description: meta.description || "",
|
|
@@ -126,11 +128,25 @@ export class SkillLoader {
|
|
|
126
128
|
}
|
|
127
129
|
this.skills.set(name, skill);
|
|
128
130
|
this.version++;
|
|
131
|
+
return true;
|
|
129
132
|
}
|
|
130
133
|
catch {
|
|
131
134
|
// Skip unreadable files
|
|
135
|
+
return false;
|
|
132
136
|
}
|
|
133
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Create a fork that shares the skill catalog but has its own isolated
|
|
140
|
+
* pendingInjection state. Use when multiple concurrent agents share the
|
|
141
|
+
* same SkillLoader to prevent one agent's skill invocation from being
|
|
142
|
+
* consumed by another agent.
|
|
143
|
+
*/
|
|
144
|
+
fork() {
|
|
145
|
+
const forked = new SkillLoader();
|
|
146
|
+
forked.skills = this.skills; // shared read-only catalog — no filesystem re-scan
|
|
147
|
+
forked.version = this.version;
|
|
148
|
+
return forked;
|
|
149
|
+
}
|
|
134
150
|
// ── Programmatic Registration ────────────────────────────────────────
|
|
135
151
|
/**
|
|
136
152
|
* Register a skill definition programmatically (works in all runtimes).
|
|
@@ -145,10 +161,10 @@ export class SkillLoader {
|
|
|
145
161
|
*/
|
|
146
162
|
loadSkillFromFile(filePath) {
|
|
147
163
|
try {
|
|
164
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
148
165
|
const fs = require("fs");
|
|
149
|
-
this.
|
|
150
|
-
this.
|
|
151
|
-
return true;
|
|
166
|
+
// Note: loadSkillFile already increments this.version on success.
|
|
167
|
+
return this.loadSkillFile(filePath, fs);
|
|
152
168
|
}
|
|
153
169
|
catch {
|
|
154
170
|
return false;
|
|
@@ -175,9 +191,10 @@ export class SkillLoader {
|
|
|
175
191
|
getDescriptionsForContext() {
|
|
176
192
|
if (this.skills.size === 0)
|
|
177
193
|
return "";
|
|
194
|
+
const escXml = (s) => s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
178
195
|
const lines = ["<available-skills>"];
|
|
179
196
|
for (const skill of this.skills.values()) {
|
|
180
|
-
lines.push(` <skill name="${skill.name}">${skill.description}</skill>`);
|
|
197
|
+
lines.push(` <skill name="${escXml(skill.name)}">${escXml(skill.description)}</skill>`);
|
|
181
198
|
}
|
|
182
199
|
lines.push("</available-skills>");
|
|
183
200
|
return lines.join("\n");
|
|
@@ -213,7 +230,6 @@ export class SkillLoader {
|
|
|
213
230
|
* This tool allows the agent to invoke skills by name.
|
|
214
231
|
*/
|
|
215
232
|
getSkillTool() {
|
|
216
|
-
const self = this;
|
|
217
233
|
return {
|
|
218
234
|
name: "Skill",
|
|
219
235
|
description: "Invoke a skill by name. Skills provide specialized capabilities and domain knowledge. " +
|
|
@@ -229,8 +245,8 @@ export class SkillLoader {
|
|
|
229
245
|
required: ["name"],
|
|
230
246
|
additionalProperties: false,
|
|
231
247
|
},
|
|
232
|
-
execute(input) {
|
|
233
|
-
const found =
|
|
248
|
+
execute: (input) => {
|
|
249
|
+
const found = this.invoke(input.name);
|
|
234
250
|
if (found) {
|
|
235
251
|
return JSON.stringify({ success: true, skill: input.name });
|
|
236
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../src/harness/skill-loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../src/harness/skill-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-module.d.ts","sourceRoot":"","sources":["../../src/harness/todo-module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAIrE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAC7E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAElE,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,SAAS,CAAkC;gBAEvC,SAAS,CAAC,EAAE,MAAM;IAW9B,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAY1B,IAAI,IAAI,SAAS;IAIjB,QAAQ,IAAI,SAAS;IAMrB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"todo-module.d.ts","sourceRoot":"","sources":["../../src/harness/todo-module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAIrE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAC7E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAElE,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,SAAS,CAAkC;gBAEvC,SAAS,CAAC,EAAE,MAAM;IAW9B,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAY1B,IAAI,IAAI,SAAS;IAIjB,QAAQ,IAAI,SAAS;IAMrB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO;IAerD,SAAS,IAAI,IAAI,EAAE;IAInB,eAAe,IAAI,IAAI,GAAG,SAAS;IAInC,UAAU,IAAI,OAAO;IASrB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAO1D,OAAO,CAAC,MAAM;IAYd,QAAQ,IAAI,cAAc,EAAE;IAI5B,OAAO,CAAC,eAAe;IAoEvB,OAAO,CAAC,cAAc;IAgBtB,MAAM,IAAI,SAAS;IAInB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU;IAY5C,eAAe,IAAI,MAAM;CAgB1B"}
|