@dawn-ai/core 0.8.8 → 0.8.9
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/dist/capabilities/built-in/memory.d.ts.map +1 -1
- package/dist/capabilities/built-in/memory.js +44 -3
- package/dist/capabilities/permission-gate.d.ts +21 -0
- package/dist/capabilities/permission-gate.d.ts.map +1 -1
- package/dist/capabilities/permission-gate.js +50 -0
- package/dist/capabilities/types.d.ts +36 -1
- package/dist/capabilities/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/capabilities/built-in/memory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAA;AAanE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/capabilities/built-in/memory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAA;AAanE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,CAsPrD"}
|
|
@@ -58,6 +58,25 @@ export function createMemoryMarker() {
|
|
|
58
58
|
schema: recallSchema,
|
|
59
59
|
run: async (input) => {
|
|
60
60
|
const q = (input ?? {});
|
|
61
|
+
// Embed the query for the hybrid keyword+vector path when an embedder
|
|
62
|
+
// is configured. Embed FAILURE degrades to keyword-only — never throw,
|
|
63
|
+
// so a flaky/offline embedder can't break recall.
|
|
64
|
+
let queryVec;
|
|
65
|
+
if (mem.embedder && q.query) {
|
|
66
|
+
try {
|
|
67
|
+
;
|
|
68
|
+
[queryVec] = await mem.embedder.embed([q.query]);
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
// Gated: silent embed failures are an ops footgun (user thinks
|
|
72
|
+
// vector recall works while every embed errors). Mirrors the
|
|
73
|
+
// summarization hook's DAWN_DEBUG_SUMMARIZATION convention.
|
|
74
|
+
if (process.env.DAWN_DEBUG_MEMORY === "1") {
|
|
75
|
+
console.warn(`[dawn:memory] recall embed failed, falling back to keyword-only: ${String(err)}`);
|
|
76
|
+
}
|
|
77
|
+
queryVec = undefined;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
61
80
|
const rows = await mem.store.search({
|
|
62
81
|
namespace: mem.namespace,
|
|
63
82
|
...(q.query ? { query: q.query } : {}),
|
|
@@ -67,6 +86,9 @@ export function createMemoryMarker() {
|
|
|
67
86
|
// Recency reference for ranked recall — the per-request timestamp,
|
|
68
87
|
// NOT Date.now() (determinism rule; see module docblock).
|
|
69
88
|
now: mem.now,
|
|
89
|
+
...(queryVec && mem.embedder
|
|
90
|
+
? { queryEmbedding: queryVec, embedderId: mem.embedder.id, vector: mem.vector }
|
|
91
|
+
: {}),
|
|
70
92
|
});
|
|
71
93
|
// Wrap in {result} so the langchain bridge uses the string verbatim as
|
|
72
94
|
// the ToolMessage content; a bare string hits unwrapToolResult's
|
|
@@ -115,6 +137,25 @@ export function createMemoryMarker() {
|
|
|
115
137
|
createdAt: mem.now,
|
|
116
138
|
updatedAt: mem.now,
|
|
117
139
|
};
|
|
140
|
+
// Embed the content for vector recall when an embedder is configured.
|
|
141
|
+
// Embed FAILURE degrades to keyword-only (putOpts stays undefined) —
|
|
142
|
+
// NEVER lose the write. Forwarded to EVERY put site below.
|
|
143
|
+
let putOpts;
|
|
144
|
+
if (mem.embedder) {
|
|
145
|
+
try {
|
|
146
|
+
const [ev] = await mem.embedder.embed([content]);
|
|
147
|
+
if (ev)
|
|
148
|
+
putOpts = { embedding: ev, embeddingModel: mem.embedder.id };
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
// Gated warn — see the recall catch above. The write still lands
|
|
152
|
+
// keyword-only (putOpts undefined); we never lose the memory.
|
|
153
|
+
if (process.env.DAWN_DEBUG_MEMORY === "1") {
|
|
154
|
+
console.warn(`[dawn:memory] remember embed failed, storing keyword-only: ${String(err)}`);
|
|
155
|
+
}
|
|
156
|
+
putOpts = undefined;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
118
159
|
if (autoLike) {
|
|
119
160
|
// Inline identity key helper — avoids importing from @dawn-ai/memory
|
|
120
161
|
const identityKey = (d) => identityKeys.map((k) => JSON.stringify(d[k] ?? null)).join(" ");
|
|
@@ -156,17 +197,17 @@ export function createMemoryMarker() {
|
|
|
156
197
|
};
|
|
157
198
|
}
|
|
158
199
|
}
|
|
159
|
-
await mem.store.put(record);
|
|
200
|
+
await mem.store.put(record, putOpts);
|
|
160
201
|
await mem.store.supersede(target.id, id);
|
|
161
202
|
return { result: `Superseded ${target.id} with ${id}.` };
|
|
162
203
|
}
|
|
163
204
|
// No existing record with same identity — add new active row
|
|
164
|
-
await mem.store.put(record);
|
|
205
|
+
await mem.store.put(record, putOpts);
|
|
165
206
|
return { result: `Stored memory ${id}.` };
|
|
166
207
|
}
|
|
167
208
|
// Candidate mode (and "off" never reaches here — remember tool absent):
|
|
168
209
|
// write a candidate; reconciliation happens later at CLI approval.
|
|
169
|
-
await mem.store.put(record);
|
|
210
|
+
await mem.store.put(record, putOpts);
|
|
170
211
|
return { result: `Stored memory candidate ${id} (pending approval).` };
|
|
171
212
|
},
|
|
172
213
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PermissionsStore } from "@dawn-ai/permissions";
|
|
2
|
+
import type { ConstraintPredicate } from "@dawn-ai/sdk";
|
|
2
3
|
export type PathOperation = "readFile" | "writeFile" | "listDir";
|
|
3
4
|
export type GateResult = {
|
|
4
5
|
allowed: true;
|
|
@@ -65,4 +66,24 @@ export declare function wrapToolWithApproval<C, T extends {
|
|
|
65
66
|
}>(tool: T, permissions: PermissionsStore, opts?: {
|
|
66
67
|
readonly interruptCapable?: boolean;
|
|
67
68
|
}): T;
|
|
69
|
+
/**
|
|
70
|
+
* Wrap a tool so each call is first evaluated by an argument-constraint predicate
|
|
71
|
+
* (tools.constrain). The predicate returns `true` (allow), a string (deny — the
|
|
72
|
+
* string is returned as the tool result, matching wrapToolWithApproval's
|
|
73
|
+
* return-not-throw contract), or `{ approve: true }` (escalate to the HITL gate
|
|
74
|
+
* via gateToolOp). A predicate that throws OR returns any off-contract value
|
|
75
|
+
* (false, undefined, `{ approve: false }`, …) fails closed (deny) — a broken
|
|
76
|
+
* policy never silently allows. Per-call identity (signal/threadId/params) is read from
|
|
77
|
+
* the LIVE run context, never closed over, so the wrapper is safe inside the
|
|
78
|
+
* per-descriptor-cached agent. `routeId` and `predicate` are stable per descriptor
|
|
79
|
+
* and closed over.
|
|
80
|
+
*/
|
|
81
|
+
export declare function wrapToolWithConstraint<C extends {
|
|
82
|
+
readonly signal: AbortSignal;
|
|
83
|
+
readonly threadId?: string;
|
|
84
|
+
readonly params?: Readonly<Record<string, string>>;
|
|
85
|
+
}, T extends {
|
|
86
|
+
readonly name: string;
|
|
87
|
+
readonly run: (input: unknown, context: C) => Promise<unknown> | unknown;
|
|
88
|
+
}>(tool: T, predicate: ConstraintPredicate, permissions: PermissionsStore | undefined, routeId: string): T;
|
|
68
89
|
//# sourceMappingURL=permission-gate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-gate.d.ts","sourceRoot":"","sources":["../../src/capabilities/permission-gate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"permission-gate.d.ts","sourceRoot":"","sources":["../../src/capabilities/permission-gate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAM5D,OAAO,KAAK,EAAqB,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAG1E,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAA;AAEhE,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/E,wBAAsB,UAAU,CAC9B,WAAW,EAAE,gBAAgB,GAAG,SAAS,EACzC,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,OAAO,CAAC,UAAU,CAAC,CAwCrB;AAED,wBAAsB,UAAU,CAC9B,WAAW,EAAE,gBAAgB,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAqBrB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,gBAAgB,GAAG,SAAS,EACzC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,OAAO,CAAC,UAAU,CAAC,CA+BrB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,gBAAgB,GAAG,SAAS,EACzC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,UAAU,CAAC,CAqBrB;AAYD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EACD,CAAC,SAAS;IACR,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CACzE,EACD,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,CAAC,CAS3F;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,SAAS;IACR,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACnD,EACD,CAAC,SAAS;IACR,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CACzE,EAED,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,mBAAmB,EAC9B,WAAW,EAAE,gBAAgB,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,GACd,CAAC,CAkCH"}
|
|
@@ -182,6 +182,56 @@ export function wrapToolWithApproval(tool, permissions, opts) {
|
|
|
182
182
|
},
|
|
183
183
|
};
|
|
184
184
|
}
|
|
185
|
+
const CONSTRAINT_FAILED_REASON = "Blocked: the tool's argument constraint check failed (the policy predicate threw or returned an invalid verdict). Not run.";
|
|
186
|
+
/**
|
|
187
|
+
* Wrap a tool so each call is first evaluated by an argument-constraint predicate
|
|
188
|
+
* (tools.constrain). The predicate returns `true` (allow), a string (deny — the
|
|
189
|
+
* string is returned as the tool result, matching wrapToolWithApproval's
|
|
190
|
+
* return-not-throw contract), or `{ approve: true }` (escalate to the HITL gate
|
|
191
|
+
* via gateToolOp). A predicate that throws OR returns any off-contract value
|
|
192
|
+
* (false, undefined, `{ approve: false }`, …) fails closed (deny) — a broken
|
|
193
|
+
* policy never silently allows. Per-call identity (signal/threadId/params) is read from
|
|
194
|
+
* the LIVE run context, never closed over, so the wrapper is safe inside the
|
|
195
|
+
* per-descriptor-cached agent. `routeId` and `predicate` are stable per descriptor
|
|
196
|
+
* and closed over.
|
|
197
|
+
*/
|
|
198
|
+
export function wrapToolWithConstraint(tool, predicate, permissions, routeId) {
|
|
199
|
+
return {
|
|
200
|
+
...tool,
|
|
201
|
+
run: async (input, context) => {
|
|
202
|
+
const ctx = {
|
|
203
|
+
toolName: tool.name,
|
|
204
|
+
routeId,
|
|
205
|
+
signal: context.signal,
|
|
206
|
+
...(context.threadId ? { threadId: context.threadId } : {}),
|
|
207
|
+
...(context.params ? { params: context.params } : {}),
|
|
208
|
+
};
|
|
209
|
+
let verdict;
|
|
210
|
+
try {
|
|
211
|
+
verdict = await predicate(input, ctx);
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
return CONSTRAINT_FAILED_REASON;
|
|
215
|
+
}
|
|
216
|
+
if (verdict === true)
|
|
217
|
+
return tool.run(input, context);
|
|
218
|
+
if (typeof verdict === "string")
|
|
219
|
+
return verdict;
|
|
220
|
+
// Escalate to HITL ONLY on a genuine { approve: true } verdict.
|
|
221
|
+
if (typeof verdict === "object" &&
|
|
222
|
+
verdict !== null &&
|
|
223
|
+
verdict.approve === true) {
|
|
224
|
+
const gate = await gateToolOp(permissions, tool.name, buildArgsPreview(input));
|
|
225
|
+
if (!gate.allowed)
|
|
226
|
+
return gate.reason;
|
|
227
|
+
return tool.run(input, context);
|
|
228
|
+
}
|
|
229
|
+
// Any other value (false, undefined, { approve: false }, a number, …) is
|
|
230
|
+
// off-contract — fail closed rather than silently escalate or allow.
|
|
231
|
+
return CONSTRAINT_FAILED_REASON;
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
}
|
|
185
235
|
async function emitPermissionInterrupt(args) {
|
|
186
236
|
const interruptId = `perm-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
187
237
|
const suggestedPattern = args.kind === "command"
|
|
@@ -19,8 +19,20 @@ export interface MemoryRecordLike {
|
|
|
19
19
|
readonly updatedAt: string;
|
|
20
20
|
readonly supersedes?: readonly string[];
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Pluggable text embedder for opt-in vector/semantic recall. Structural — the
|
|
24
|
+
* concrete implementations (`openaiEmbedder`, `fakeEmbedder`) live outside core.
|
|
25
|
+
*/
|
|
26
|
+
export interface Embedder {
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly dims: number;
|
|
29
|
+
embed(texts: readonly string[]): Promise<Float32Array[]>;
|
|
30
|
+
}
|
|
22
31
|
export interface MemoryStoreLike {
|
|
23
|
-
put(rec: MemoryRecordLike
|
|
32
|
+
put(rec: MemoryRecordLike, opts?: {
|
|
33
|
+
embedding?: Float32Array;
|
|
34
|
+
embeddingModel?: string;
|
|
35
|
+
}): Promise<void>;
|
|
24
36
|
get(id: string): Promise<MemoryRecordLike | null>;
|
|
25
37
|
search(q: {
|
|
26
38
|
namespace: string;
|
|
@@ -31,6 +43,12 @@ export interface MemoryStoreLike {
|
|
|
31
43
|
limit?: number;
|
|
32
44
|
/** ISO recency reference for ranked searches; stores may ignore it. */
|
|
33
45
|
now?: string;
|
|
46
|
+
/** When present, the store runs the hybrid keyword+vector path. */
|
|
47
|
+
queryEmbedding?: Float32Array;
|
|
48
|
+
/** Only rows whose stored embedding model equals this are vector-compared. */
|
|
49
|
+
embedderId?: string;
|
|
50
|
+
/** Hybrid ranking tuning; structural — the store validates. */
|
|
51
|
+
vector?: unknown;
|
|
34
52
|
}): Promise<readonly MemoryRecordLike[]>;
|
|
35
53
|
update(id: string, patch: Partial<MemoryRecordLike>): Promise<void>;
|
|
36
54
|
supersede(id: string, bySupersedingId: string): Promise<void>;
|
|
@@ -61,6 +79,21 @@ export interface MemoryContext {
|
|
|
61
79
|
};
|
|
62
80
|
readonly now: string;
|
|
63
81
|
readonly indexMaxEntries?: number;
|
|
82
|
+
/** The resolved embedder when vector recall is enabled; the capability embeds
|
|
83
|
+
* writes + queries through it. Absent → keyword-only. */
|
|
84
|
+
readonly embedder?: Embedder;
|
|
85
|
+
/** Hybrid recall tuning threaded through to the store's search. All fields
|
|
86
|
+
* optional/defaulted; absent → store defaults. */
|
|
87
|
+
readonly vector?: {
|
|
88
|
+
readonly weights?: {
|
|
89
|
+
readonly keyword?: number;
|
|
90
|
+
readonly vector?: number;
|
|
91
|
+
};
|
|
92
|
+
readonly rrfK?: number;
|
|
93
|
+
readonly vectorK?: number;
|
|
94
|
+
readonly recencyWeight?: number;
|
|
95
|
+
readonly confidenceWeight?: number;
|
|
96
|
+
};
|
|
64
97
|
}
|
|
65
98
|
export interface CapabilityMarkerContext {
|
|
66
99
|
readonly routeManifest: RouteManifest;
|
|
@@ -88,6 +121,8 @@ export interface DawnToolDefinition {
|
|
|
88
121
|
readonly middleware?: Readonly<Record<string, unknown>>;
|
|
89
122
|
readonly signal: AbortSignal;
|
|
90
123
|
readonly fs?: WorkspaceFs;
|
|
124
|
+
readonly threadId?: string;
|
|
125
|
+
readonly params?: Readonly<Record<string, string>>;
|
|
91
126
|
}) => Promise<unknown> | unknown;
|
|
92
127
|
readonly schema?: unknown;
|
|
93
128
|
}
|
|
@@ -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,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,
|
|
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
|
@@ -9,10 +9,10 @@ export { createSubagentsMarker } from "./capabilities/built-in/subagents.js";
|
|
|
9
9
|
export { createWorkspaceMarker } from "./capabilities/built-in/workspace.js";
|
|
10
10
|
export { BUILT_IN_TOOL_NAMES } from "./capabilities/built-in-tool-names.js";
|
|
11
11
|
export type { MemorySupersedeDetail } from "./capabilities/permission-gate.js";
|
|
12
|
-
export { gateMemorySupersede, gateToolOp, wrapToolWithApproval, } from "./capabilities/permission-gate.js";
|
|
12
|
+
export { gateMemorySupersede, gateToolOp, wrapToolWithApproval, wrapToolWithConstraint, } from "./capabilities/permission-gate.js";
|
|
13
13
|
export type { AppliedContribution, ApplyResult, CapabilityError, CapabilityRegistry, } from "./capabilities/registry.js";
|
|
14
14
|
export { applyCapabilities, createCapabilityRegistry, } from "./capabilities/registry.js";
|
|
15
|
-
export type { CapabilityContribution, CapabilityMarker, CapabilityMarkerContext, DawnToolDefinition, MemoryContext, MemoryRecordLike, MemoryStoreLike, MemoryWritesMode, PromptFragment, StreamTransformer, StreamTransformerInput, StreamTransformerOutput, } from "./capabilities/types.js";
|
|
15
|
+
export type { CapabilityContribution, CapabilityMarker, CapabilityMarkerContext, DawnToolDefinition, Embedder, MemoryContext, MemoryRecordLike, MemoryStoreLike, MemoryWritesMode, PromptFragment, StreamTransformer, StreamTransformerInput, StreamTransformerOutput, } from "./capabilities/types.js";
|
|
16
16
|
export type { CreateWorkspaceFsOptions } from "./capabilities/workspace-fs.js";
|
|
17
17
|
export { createWorkspaceFs } from "./capabilities/workspace-fs.js";
|
|
18
18
|
export { loadDawnConfig } from "./config.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,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,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { createSkillsMarker } from "./capabilities/built-in/skills.js";
|
|
|
6
6
|
export { createSubagentsMarker } from "./capabilities/built-in/subagents.js";
|
|
7
7
|
export { createWorkspaceMarker } from "./capabilities/built-in/workspace.js";
|
|
8
8
|
export { BUILT_IN_TOOL_NAMES } from "./capabilities/built-in-tool-names.js";
|
|
9
|
-
export { gateMemorySupersede, gateToolOp, wrapToolWithApproval, } from "./capabilities/permission-gate.js";
|
|
9
|
+
export { gateMemorySupersede, gateToolOp, wrapToolWithApproval, wrapToolWithConstraint, } from "./capabilities/permission-gate.js";
|
|
10
10
|
export { applyCapabilities, createCapabilityRegistry, } from "./capabilities/registry.js";
|
|
11
11
|
export { createWorkspaceFs } from "./capabilities/workspace-fs.js";
|
|
12
12
|
export { loadDawnConfig } from "./config.js";
|