@dawn-ai/core 0.8.2 → 0.8.4

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.
@@ -0,0 +1,8 @@
1
+ import type { CapabilityMarker } from "../types.js";
2
+ /**
3
+ * Injects <routeDir>/memory.md into the system prompt under a "# Route Memory"
4
+ * heading. Opt-in by file presence; re-read every turn. Route-scoped profile
5
+ * memory — distinct from the global workspace AGENTS.md (agents-md.ts).
6
+ */
7
+ export declare function createMemoryMdMarker(): CapabilityMarker;
8
+ //# sourceMappingURL=memory-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-md.d.ts","sourceRoot":"","sources":["../../../src/capabilities/built-in/memory-md.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAWnD;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,CAcvD"}
@@ -0,0 +1,54 @@
1
+ import { existsSync, readFileSync, statSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ const MAX_MEMORY_BYTES = 32 * 1024;
4
+ const MEMORY_HEADER = `# Route Memory
5
+
6
+ The block below is the live contents of this route's \`memory.md\`, re-read every turn. It is stable, human-editable context for this route only.
7
+
8
+ ---`;
9
+ const MEMORY_FILE = "memory.md";
10
+ /**
11
+ * Injects <routeDir>/memory.md into the system prompt under a "# Route Memory"
12
+ * heading. Opt-in by file presence; re-read every turn. Route-scoped profile
13
+ * memory — distinct from the global workspace AGENTS.md (agents-md.ts).
14
+ */
15
+ export function createMemoryMdMarker() {
16
+ return {
17
+ name: "memory-md",
18
+ detect: async (routeDir) => existsSync(join(routeDir, MEMORY_FILE)),
19
+ load: async (routeDir) => {
20
+ const path = join(routeDir, MEMORY_FILE);
21
+ return {
22
+ promptFragment: {
23
+ placement: "after_user_prompt",
24
+ render: () => renderRouteMemory(path),
25
+ },
26
+ };
27
+ },
28
+ };
29
+ }
30
+ function renderRouteMemory(path) {
31
+ if (!existsSync(path))
32
+ return "";
33
+ let size;
34
+ try {
35
+ size = statSync(path).size;
36
+ }
37
+ catch {
38
+ return "";
39
+ }
40
+ if (size > MAX_MEMORY_BYTES) {
41
+ return `${MEMORY_HEADER}\n\n(route memory.md is ${size} bytes; exceeds 32 KiB limit — not loaded)`;
42
+ }
43
+ let raw;
44
+ try {
45
+ raw = readFileSync(path, "utf8");
46
+ }
47
+ catch {
48
+ return "";
49
+ }
50
+ const trimmed = raw.trim();
51
+ if (trimmed.length === 0)
52
+ return "";
53
+ return `${MEMORY_HEADER}\n\n${trimmed}`;
54
+ }
@@ -0,0 +1,10 @@
1
+ import type { CapabilityMarker } from "../types.js";
2
+ /**
3
+ * Long-term memory (L3): contributes `recall` and `remember` tools backed by a
4
+ * typed, namespaced memory store, plus a memory-index prompt fragment listing
5
+ * the in-scope memories the agent can recall. Activated only when the CLI
6
+ * supplies context.memory (i.e. the route has a memory.ts). Deterministic: no
7
+ * Date.now()/new Date(); timestamps come from context.memory.now.
8
+ */
9
+ export declare function createMemoryMarker(): CapabilityMarker;
10
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/capabilities/built-in/memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAA;AAInE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,CA0KrD"}
@@ -0,0 +1,158 @@
1
+ import { createHash } from "node:crypto";
2
+ import { z } from "zod";
3
+ const DEFAULT_SEMANTIC_IDENTITY = ["subject", "predicate"];
4
+ /**
5
+ * Long-term memory (L3): contributes `recall` and `remember` tools backed by a
6
+ * typed, namespaced memory store, plus a memory-index prompt fragment listing
7
+ * the in-scope memories the agent can recall. Activated only when the CLI
8
+ * supplies context.memory (i.e. the route has a memory.ts). Deterministic: no
9
+ * Date.now()/new Date(); timestamps come from context.memory.now.
10
+ */
11
+ export function createMemoryMarker() {
12
+ return {
13
+ name: "memory",
14
+ detect: async (_routeDir, context) => context.memory !== undefined,
15
+ load: async (_routeDir, context) => {
16
+ const mem = context.memory;
17
+ if (!mem)
18
+ return {};
19
+ const indexEntries = await mem.store.search({
20
+ namespace: mem.namespace,
21
+ status: "active",
22
+ limit: mem.indexMaxEntries ?? 20,
23
+ });
24
+ // Tool input schemas exposed to the MODEL (so it knows what to pass). The
25
+ // `remember.data` shape is the route's own defineMemory() zod schema; without
26
+ // this the model calls remember/recall with the wrong/empty args and writes
27
+ // are rejected by validate(). Falls back to a permissive map if absent.
28
+ const routeDataSchema = (mem.schema ?? z.record(z.string(), z.unknown()));
29
+ const rememberSchema = z.object({
30
+ data: routeDataSchema,
31
+ content: z
32
+ .string()
33
+ .describe("A short human-readable summary of this memory (what you'd recall)."),
34
+ tags: z.array(z.string()).optional().describe("Optional tags to filter on later."),
35
+ confidence: z.number().min(0).max(1).optional(),
36
+ });
37
+ const recallSchema = z.object({
38
+ query: z.string().optional().describe("Keywords to match against stored memories."),
39
+ kind: z.string().optional(),
40
+ tags: z.array(z.string()).optional(),
41
+ limit: z.number().int().positive().optional(),
42
+ });
43
+ const recall = {
44
+ name: "recall",
45
+ description: "Recall typed long-term memories by keyword/kind/tags.",
46
+ schema: recallSchema,
47
+ run: async (input) => {
48
+ const q = (input ?? {});
49
+ const rows = await mem.store.search({
50
+ namespace: mem.namespace,
51
+ ...(q.query ? { query: q.query } : {}),
52
+ ...(q.kind ? { kind: q.kind } : {}),
53
+ ...(q.tags ? { tags: q.tags } : {}),
54
+ limit: q.limit ?? 8,
55
+ });
56
+ if (rows.length === 0)
57
+ return "(no memories found)";
58
+ return rows.map((r) => `${r.id}: ${r.content}`).join("\n");
59
+ },
60
+ };
61
+ const remember = {
62
+ name: "remember",
63
+ description: "Store a typed long-term memory for later recall.",
64
+ schema: rememberSchema,
65
+ run: async (input) => {
66
+ const inp = (input ?? {});
67
+ const validated = mem.validate(inp.data);
68
+ if (!validated.ok)
69
+ return `Rejected: ${validated.errors}`;
70
+ const data = validated.value;
71
+ const identityKeys = mem.defined.identity ?? DEFAULT_SEMANTIC_IDENTITY;
72
+ // id is DATA-derived so contradicting values (same identity, different
73
+ // value) get distinct ids and can coexist as active/superseded rows.
74
+ const id = `memory_${createHash("sha1")
75
+ .update(`${mem.namespace}|${JSON.stringify(data)}`)
76
+ .digest("hex")
77
+ .slice(0, 16)}`;
78
+ const status = mem.writes === "auto" ? "active" : "candidate";
79
+ const content = typeof inp.content === "string" && inp.content.length > 0
80
+ ? inp.content
81
+ : JSON.stringify(data);
82
+ const confidence = typeof inp.confidence === "number" ? inp.confidence : 1;
83
+ const tags = inp.tags ?? [];
84
+ const record = {
85
+ id,
86
+ kind: mem.defined.kind,
87
+ namespace: mem.namespace,
88
+ content,
89
+ data,
90
+ source: { type: "tool", id: "remember" },
91
+ confidence,
92
+ tags,
93
+ status,
94
+ createdAt: mem.now,
95
+ updatedAt: mem.now,
96
+ };
97
+ if (mem.writes === "auto") {
98
+ // Inline identity key helper — avoids importing from @dawn-ai/memory
99
+ const identityKey = (d) => identityKeys.map((k) => JSON.stringify(d[k] ?? null)).join(" ");
100
+ const existing = await mem.store.search({
101
+ namespace: mem.namespace,
102
+ status: "active",
103
+ limit: 50,
104
+ });
105
+ const target = existing.find((m) => identityKey(m.data) === identityKey(data));
106
+ if (target) {
107
+ if (JSON.stringify(target.data) === JSON.stringify(data)) {
108
+ // Idempotent update — same identity AND same data
109
+ await mem.store.update(target.id, {
110
+ updatedAt: mem.now,
111
+ content,
112
+ confidence,
113
+ tags,
114
+ });
115
+ return `Updated memory ${target.id}.`;
116
+ }
117
+ // Same identity but different value — write new active row then supersede old
118
+ await mem.store.put(record);
119
+ await mem.store.supersede(target.id, id);
120
+ return `Superseded ${target.id} with ${id}.`;
121
+ }
122
+ // No existing record with same identity — add new active row
123
+ await mem.store.put(record);
124
+ return `Stored memory ${id}.`;
125
+ }
126
+ // Candidate mode (and "off" never reaches here — remember tool absent):
127
+ // write a candidate; reconciliation happens later at CLI approval.
128
+ await mem.store.put(record);
129
+ return `Stored memory candidate ${id} (pending approval).`;
130
+ },
131
+ };
132
+ // Fingerprint the snapshot the render closure froze at load time. `id`
133
+ // covers adds/removes (supersede flips a row out of the active set);
134
+ // `updatedAt` covers in-place content/confidence updates that keep the
135
+ // same id. The agent adapter folds this into its materialize cache key so
136
+ // a memory written after first materialize re-keys the cache (see
137
+ // PromptFragment.cacheKey).
138
+ const indexCacheKey = indexEntries.length === 0
139
+ ? "memory:empty"
140
+ : `memory:${createHash("sha1")
141
+ .update(indexEntries.map((r) => `${r.id}@${r.updatedAt}`).join("\n"))
142
+ .digest("hex")
143
+ .slice(0, 16)}`;
144
+ const promptFragment = {
145
+ placement: "after_user_prompt",
146
+ cacheKey: indexCacheKey,
147
+ render: () => {
148
+ if (indexEntries.length === 0)
149
+ return "";
150
+ const lines = indexEntries.map((r) => `- ${r.id}: ${r.content.slice(0, 80)}`).join("\n");
151
+ return `# Long-Term Memory\n\nThese memories are available — call \`recall({ query })\` to load full details before relying on them.\n\n${lines}`;
152
+ },
153
+ };
154
+ const tools = mem.writes === "off" ? [recall] : [recall, remember];
155
+ return { tools, promptFragment };
156
+ },
157
+ };
158
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Names of tools any built-in capability may contribute. Used by `dawn check`
3
+ * to validate a route's tools scope against the universe of names it could
4
+ * reference (route-local tools + these). Keep in sync with the built-in
5
+ * capability markers under capabilities/built-in/.
6
+ */
7
+ export declare const BUILT_IN_TOOL_NAMES: readonly string[];
8
+ //# sourceMappingURL=built-in-tool-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"built-in-tool-names.d.ts","sourceRoot":"","sources":["../../src/capabilities/built-in-tool-names.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAehD,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Names of tools any built-in capability may contribute. Used by `dawn check`
3
+ * to validate a route's tools scope against the universe of names it could
4
+ * reference (route-local tools + these). Keep in sync with the built-in
5
+ * capability markers under capabilities/built-in/.
6
+ */
7
+ export const BUILT_IN_TOOL_NAMES = [
8
+ // workspace.ts — readFile, writeFile, listDir, runBash
9
+ "readFile",
10
+ "writeFile",
11
+ "listDir",
12
+ "runBash",
13
+ // subagents.ts — task
14
+ "task",
15
+ // planning.ts — writeTodos
16
+ "writeTodos",
17
+ // skills.ts — readSkill
18
+ "readSkill",
19
+ // memory.ts — recall, remember
20
+ "recall",
21
+ "remember",
22
+ ];
@@ -2,6 +2,58 @@ import type { PermissionsStore } from "@dawn-ai/permissions";
2
2
  import type { DawnAgent, WorkspaceFs } from "@dawn-ai/sdk";
3
3
  import type { ExecBackend, FilesystemBackend } from "@dawn-ai/workspace";
4
4
  import type { ResolvedStateField, RouteManifest } from "../types.js";
5
+ export interface MemoryRecordLike {
6
+ readonly id: string;
7
+ readonly kind: string;
8
+ readonly namespace: string;
9
+ readonly content: string;
10
+ readonly data: Record<string, unknown>;
11
+ readonly source: {
12
+ readonly type: string;
13
+ readonly id: string;
14
+ };
15
+ readonly confidence: number;
16
+ readonly tags: readonly string[];
17
+ readonly status: string;
18
+ readonly createdAt: string;
19
+ readonly updatedAt: string;
20
+ readonly supersedes?: readonly string[];
21
+ }
22
+ export interface MemoryStoreLike {
23
+ put(rec: MemoryRecordLike): Promise<void>;
24
+ get(id: string): Promise<MemoryRecordLike | null>;
25
+ search(q: {
26
+ namespace: string;
27
+ query?: string;
28
+ kind?: string;
29
+ tags?: readonly string[];
30
+ status?: string;
31
+ limit?: number;
32
+ }): Promise<readonly MemoryRecordLike[]>;
33
+ update(id: string, patch: Partial<MemoryRecordLike>): Promise<void>;
34
+ supersede(id: string, bySupersedingId: string): Promise<void>;
35
+ }
36
+ export interface MemoryContext {
37
+ readonly store: MemoryStoreLike;
38
+ readonly namespace: string;
39
+ readonly writes: "off" | "candidate" | "auto";
40
+ readonly defined: {
41
+ readonly kind: string;
42
+ readonly scope: readonly string[];
43
+ readonly identity?: readonly string[];
44
+ };
45
+ /** The route's defineMemory() zod schema — exposed as the `remember` tool's `data` shape so the model knows what to pass. */
46
+ readonly schema?: unknown;
47
+ readonly validate: (data: unknown) => {
48
+ readonly ok: true;
49
+ readonly value: Record<string, unknown>;
50
+ } | {
51
+ readonly ok: false;
52
+ readonly errors: string;
53
+ };
54
+ readonly now: string;
55
+ readonly indexMaxEntries?: number;
56
+ }
5
57
  export interface CapabilityMarkerContext {
6
58
  readonly routeManifest: RouteManifest;
7
59
  readonly descriptor: DawnAgent | undefined;
@@ -13,6 +65,7 @@ export interface CapabilityMarkerContext {
13
65
  readonly permissions?: PermissionsStore;
14
66
  /** Absolute path to the Dawn app root. Capabilities should resolve app-relative paths (e.g. workspace/) against this, NOT process.cwd(). */
15
67
  readonly appRoot: string;
68
+ readonly memory?: MemoryContext;
16
69
  }
17
70
  export interface DawnToolDefinition {
18
71
  readonly description?: string;
@@ -32,6 +85,17 @@ export interface PromptFragment {
32
85
  * (e.g., the current todos list is re-injected each turn).
33
86
  */
34
87
  readonly render: (state: Readonly<Record<string, unknown>>) => string;
88
+ /**
89
+ * Optional fingerprint of any load-time data this fragment closed over (i.e.
90
+ * data NOT derived from the per-turn `state` passed to `render`). The agent
91
+ * adapter folds it into the materialized-agent cache key, so a fragment whose
92
+ * frozen snapshot has changed forces a re-materialize instead of serving a
93
+ * stale prompt. Omit when the fragment is stable per descriptor or reads all
94
+ * its data live at render time. Example: the memory-index fragment sets this
95
+ * from the active store rows so a memory written mid-process still appears in
96
+ * the index hint on the next run without a restart.
97
+ */
98
+ readonly cacheKey?: string;
35
99
  }
36
100
  export interface StreamTransformerInput {
37
101
  readonly toolName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEpE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;QACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAA;KAC5B,CAAA;IACD,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAA;IACvC,4IAA4I;IAC5I,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,CACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QACP,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QACvD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;QAI5B,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAA;KAC1B,KACE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;IACvC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,MAAM,CAAA;CACtE;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,CAClB,KAAK,EAAE,sBAAsB,KAC1B,QAAQ,CAAC,uBAAuB,CAAC,GAAG,aAAa,CAAC,uBAAuB,CAAC,CAAA;CAChF;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAA;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAA;IACxD,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CAC/D;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACzF,QAAQ,CAAC,IAAI,EAAE,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uBAAuB,KAC7B,OAAO,CAAC,sBAAsB,CAAC,CAAA;CACrC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,16 @@
1
1
  export type { ThreadsStore } from "@dawn-ai/sqlite-storage";
2
2
  export { createAgentsMdMarker } from "./capabilities/built-in/agents-md.js";
3
+ export { createMemoryMarker } from "./capabilities/built-in/memory.js";
4
+ export { createMemoryMdMarker } from "./capabilities/built-in/memory-md.js";
3
5
  export type { RuntimeTodo } from "./capabilities/built-in/planning.js";
4
6
  export { createPlanningMarker } from "./capabilities/built-in/planning.js";
5
7
  export { createSkillsMarker } from "./capabilities/built-in/skills.js";
6
8
  export { createSubagentsMarker } from "./capabilities/built-in/subagents.js";
7
9
  export { createWorkspaceMarker } from "./capabilities/built-in/workspace.js";
10
+ export { BUILT_IN_TOOL_NAMES } from "./capabilities/built-in-tool-names.js";
8
11
  export type { AppliedContribution, ApplyResult, CapabilityError, CapabilityRegistry, } from "./capabilities/registry.js";
9
12
  export { applyCapabilities, createCapabilityRegistry } from "./capabilities/registry.js";
10
- export type { CapabilityContribution, CapabilityMarker, CapabilityMarkerContext, DawnToolDefinition, PromptFragment, StreamTransformer, StreamTransformerInput, StreamTransformerOutput, } from "./capabilities/types.js";
13
+ export type { CapabilityContribution, CapabilityMarker, CapabilityMarkerContext, DawnToolDefinition, MemoryContext, MemoryRecordLike, MemoryStoreLike, PromptFragment, StreamTransformer, StreamTransformerInput, StreamTransformerOutput, } from "./capabilities/types.js";
11
14
  export type { CreateWorkspaceFsOptions } from "./capabilities/workspace-fs.js";
12
15
  export { createWorkspaceFs } from "./capabilities/workspace-fs.js";
13
16
  export { loadDawnConfig } from "./config.js";
@@ -16,6 +19,8 @@ export { assertDawnRoutesDir, findDawnApp } from "./discovery/find-dawn-app.js";
16
19
  export { isPrivateSegment, isRouteGroupSegment, toRouteSegments, } from "./discovery/route-segments.js";
17
20
  export type { ResolveStateFieldsOptions } from "./state/resolve-state-fields.js";
18
21
  export { resolveStateFields } from "./state/resolve-state-fields.js";
22
+ export type { ScopeInput, ToolOrigin } from "./tool-scope.js";
23
+ export { resolveToolScope, toolOrigin } from "./tool-scope.js";
19
24
  export type { ExtractToolSchemasOptions } from "./typegen/extract-tool-schema.js";
20
25
  export { extractToolSchemasForRoute } from "./typegen/extract-tool-schema.js";
21
26
  export type { ExtractToolTypesOptions } from "./typegen/extract-tool-types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,kBAAkB,GACnB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACxF,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,YAAY,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAC7E,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACnF,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,kBAAkB,GACnB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACxF,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAC7E,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACnF,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -1,8 +1,11 @@
1
1
  export { createAgentsMdMarker } from "./capabilities/built-in/agents-md.js";
2
+ export { createMemoryMarker } from "./capabilities/built-in/memory.js";
3
+ export { createMemoryMdMarker } from "./capabilities/built-in/memory-md.js";
2
4
  export { createPlanningMarker } from "./capabilities/built-in/planning.js";
3
5
  export { createSkillsMarker } from "./capabilities/built-in/skills.js";
4
6
  export { createSubagentsMarker } from "./capabilities/built-in/subagents.js";
5
7
  export { createWorkspaceMarker } from "./capabilities/built-in/workspace.js";
8
+ export { BUILT_IN_TOOL_NAMES } from "./capabilities/built-in-tool-names.js";
6
9
  export { applyCapabilities, createCapabilityRegistry } from "./capabilities/registry.js";
7
10
  export { createWorkspaceFs } from "./capabilities/workspace-fs.js";
8
11
  export { loadDawnConfig } from "./config.js";
@@ -10,6 +13,7 @@ export { discoverRoutes } from "./discovery/discover-routes.js";
10
13
  export { assertDawnRoutesDir, findDawnApp } from "./discovery/find-dawn-app.js";
11
14
  export { isPrivateSegment, isRouteGroupSegment, toRouteSegments, } from "./discovery/route-segments.js";
12
15
  export { resolveStateFields } from "./state/resolve-state-fields.js";
16
+ export { resolveToolScope, toolOrigin } from "./tool-scope.js";
13
17
  export { extractToolSchemasForRoute } from "./typegen/extract-tool-schema.js";
14
18
  export { extractToolTypesForRoute } from "./typegen/extract-tool-types.js";
15
19
  export { renderDawnTypes, renderRouteTypes } from "./typegen/render-route-types.js";
@@ -0,0 +1,27 @@
1
+ import type { ToolScope } from "@dawn-ai/sdk";
2
+ export type ToolOrigin = "authored" | "capability";
3
+ /**
4
+ * Capability-contributed tools are tagged with a synthetic filePath
5
+ * `<capability:NAME>` at composition (see execute-route.ts). Everything else
6
+ * is authored from the route's tools/*.ts.
7
+ */
8
+ export declare function toolOrigin(tool: {
9
+ readonly filePath: string;
10
+ }): ToolOrigin;
11
+ export interface ScopeInput {
12
+ readonly name: string;
13
+ readonly origin: ToolOrigin;
14
+ }
15
+ /**
16
+ * Resolve which tool names survive a route's scope.
17
+ *
18
+ * Base set: top route → all tools; subagent → authored only (capability
19
+ * tools withheld). Then `allow` GRANTS named tools into the set, `deny`
20
+ * REVOKES named tools, and deny wins. Unknown names (absent from the full
21
+ * available set) throw so authoring typos fail loud at composition time.
22
+ */
23
+ export declare function resolveToolScope(tools: readonly ScopeInput[], scope: ToolScope | undefined, context: {
24
+ readonly isSubagent: boolean;
25
+ readonly routeId: string;
26
+ }): ReadonlySet<string>;
27
+ //# sourceMappingURL=tool-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-scope.d.ts","sourceRoot":"","sources":["../src/tool-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,CAAA;AAElD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAE1E;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,KAAK,EAAE,SAAS,GAAG,SAAS,EAC5B,OAAO,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClE,WAAW,CAAC,MAAM,CAAC,CAoBrB"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Capability-contributed tools are tagged with a synthetic filePath
3
+ * `<capability:NAME>` at composition (see execute-route.ts). Everything else
4
+ * is authored from the route's tools/*.ts.
5
+ */
6
+ export function toolOrigin(tool) {
7
+ return tool.filePath.startsWith("<capability:") ? "capability" : "authored";
8
+ }
9
+ /**
10
+ * Resolve which tool names survive a route's scope.
11
+ *
12
+ * Base set: top route → all tools; subagent → authored only (capability
13
+ * tools withheld). Then `allow` GRANTS named tools into the set, `deny`
14
+ * REVOKES named tools, and deny wins. Unknown names (absent from the full
15
+ * available set) throw so authoring typos fail loud at composition time.
16
+ */
17
+ export function resolveToolScope(tools, scope, context) {
18
+ const available = new Set(tools.map((t) => t.name));
19
+ const unknown = [...(scope?.allow ?? []), ...(scope?.deny ?? [])].filter((n) => !available.has(n));
20
+ if (unknown.length > 0) {
21
+ throw new Error(`Route "${context.routeId}" tool scope references unknown tool(s): ${unknown.join(", ")}. ` +
22
+ `Available: ${[...available].sort().join(", ")}.`);
23
+ }
24
+ const allow = new Set(scope?.allow ?? []);
25
+ const deny = new Set(scope?.deny ?? []);
26
+ const keep = new Set();
27
+ for (const t of tools) {
28
+ const inBase = context.isSubagent ? t.origin === "authored" : true;
29
+ if (inBase || allow.has(t.name))
30
+ keep.add(t.name);
31
+ }
32
+ for (const name of deny)
33
+ keep.delete(name);
34
+ return keep;
35
+ }
package/dist/types.d.ts CHANGED
@@ -61,6 +61,20 @@ export interface DawnConfig {
61
61
  readonly signal: AbortSignal;
62
62
  }) => Promise<string>;
63
63
  };
64
+ readonly memory?: {
65
+ readonly enabled?: boolean;
66
+ /** Custom memory store. Defaults to an SQLite-backed store at <appRoot>/.dawn/memory.sqlite. */
67
+ readonly store?: import("./capabilities/types.js").MemoryStoreLike;
68
+ /** Write-governance mode. "off" — never write; "candidate" — write as candidate (default); "auto" — write and auto-promote. */
69
+ readonly writes?: "off" | "candidate" | "auto";
70
+ /** Maximum number of entries returned by the index. */
71
+ readonly indexMaxEntries?: number;
72
+ /** Derive the memory namespace scope for a given route. */
73
+ readonly resolveScope?: (ctx: {
74
+ readonly routePath: string;
75
+ readonly appRoot: string;
76
+ }) => Record<string, string>;
77
+ };
64
78
  }
65
79
  export type RouteSegment = {
66
80
  readonly kind: "static";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dawn-ai/core",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -34,10 +34,10 @@
34
34
  "tsx": "^4.8.1",
35
35
  "typescript": "5.8.3",
36
36
  "zod": "^4.4.3",
37
- "@dawn-ai/permissions": "0.8.2",
38
- "@dawn-ai/workspace": "0.8.2",
39
- "@dawn-ai/sdk": "0.8.2",
40
- "@dawn-ai/sqlite-storage": "0.8.2"
37
+ "@dawn-ai/permissions": "0.8.4",
38
+ "@dawn-ai/sqlite-storage": "0.8.4",
39
+ "@dawn-ai/sdk": "0.8.4",
40
+ "@dawn-ai/workspace": "0.8.4"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "@langchain/langgraph-checkpoint": "^1.0.2"
@@ -45,8 +45,8 @@
45
45
  "devDependencies": {
46
46
  "@langchain/langgraph-checkpoint": "^1.0.2",
47
47
  "@types/node": "25.6.0",
48
- "@dawn-ai/config-typescript": "0.8.2",
49
- "@dawn-ai/sqlite-storage": "0.8.2"
48
+ "@dawn-ai/config-typescript": "0.8.4",
49
+ "@dawn-ai/sqlite-storage": "0.8.4"
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsc -b tsconfig.json",