@cogenta/agents 0.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/dist/agents/define.d.ts +9 -0
- package/dist/agents/define.d.ts.map +1 -0
- package/dist/agents/define.js +25 -0
- package/dist/agents/define.js.map +1 -0
- package/dist/agents/registry.d.ts +29 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +50 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/types.d.ts +36 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/audit/types.d.ts +23 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +2 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/audit/with-audit.d.ts +34 -0
- package/dist/audit/with-audit.d.ts.map +1 -0
- package/dist/audit/with-audit.js +65 -0
- package/dist/audit/with-audit.js.map +1 -0
- package/dist/autonomy/approval-queue.d.ts +13 -0
- package/dist/autonomy/approval-queue.d.ts.map +1 -0
- package/dist/autonomy/approval-queue.js +56 -0
- package/dist/autonomy/approval-queue.js.map +1 -0
- package/dist/autonomy/types.d.ts +36 -0
- package/dist/autonomy/types.d.ts.map +1 -0
- package/dist/autonomy/types.js +2 -0
- package/dist/autonomy/types.js.map +1 -0
- package/dist/autonomy/with-autonomy.d.ts +25 -0
- package/dist/autonomy/with-autonomy.d.ts.map +1 -0
- package/dist/autonomy/with-autonomy.js +77 -0
- package/dist/autonomy/with-autonomy.js.map +1 -0
- package/dist/budget/kill-switch.d.ts +14 -0
- package/dist/budget/kill-switch.d.ts.map +1 -0
- package/dist/budget/kill-switch.js +20 -0
- package/dist/budget/kill-switch.js.map +1 -0
- package/dist/budget/tracker.d.ts +15 -0
- package/dist/budget/tracker.d.ts.map +1 -0
- package/dist/budget/tracker.js +68 -0
- package/dist/budget/tracker.js.map +1 -0
- package/dist/budget/types.d.ts +35 -0
- package/dist/budget/types.d.ts.map +1 -0
- package/dist/budget/types.js +2 -0
- package/dist/budget/types.js.map +1 -0
- package/dist/eval/assert-threshold.d.ts +15 -0
- package/dist/eval/assert-threshold.d.ts.map +1 -0
- package/dist/eval/assert-threshold.js +27 -0
- package/dist/eval/assert-threshold.js.map +1 -0
- package/dist/eval/compare-prompt-versions.d.ts +17 -0
- package/dist/eval/compare-prompt-versions.d.ts.map +1 -0
- package/dist/eval/compare-prompt-versions.js +20 -0
- package/dist/eval/compare-prompt-versions.js.map +1 -0
- package/dist/eval/run-suite.d.ts +4 -0
- package/dist/eval/run-suite.d.ts.map +1 -0
- package/dist/eval/run-suite.js +18 -0
- package/dist/eval/run-suite.js.map +1 -0
- package/dist/eval/scorers.d.ts +13 -0
- package/dist/eval/scorers.d.ts.map +1 -0
- package/dist/eval/scorers.js +33 -0
- package/dist/eval/scorers.js.map +1 -0
- package/dist/eval/types.d.ts +27 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +2 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/identity/constitution.d.ts +17 -0
- package/dist/identity/constitution.d.ts.map +1 -0
- package/dist/identity/constitution.js +33 -0
- package/dist/identity/constitution.js.map +1 -0
- package/dist/identity/context.d.ts +49 -0
- package/dist/identity/context.d.ts.map +1 -0
- package/dist/identity/context.js +67 -0
- package/dist/identity/context.js.map +1 -0
- package/dist/index.d.ts +99 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/file-store.d.ts +6 -0
- package/dist/memory/file-store.d.ts.map +1 -0
- package/dist/memory/file-store.js +94 -0
- package/dist/memory/file-store.js.map +1 -0
- package/dist/memory/from-approval.d.ts +20 -0
- package/dist/memory/from-approval.d.ts.map +1 -0
- package/dist/memory/from-approval.js +38 -0
- package/dist/memory/from-approval.js.map +1 -0
- package/dist/memory/memory-store.d.ts +4 -0
- package/dist/memory/memory-store.d.ts.map +1 -0
- package/dist/memory/memory-store.js +55 -0
- package/dist/memory/memory-store.js.map +1 -0
- package/dist/memory/types.d.ts +67 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +2 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/privacy/assert-provider-allowed.d.ts +10 -0
- package/dist/privacy/assert-provider-allowed.d.ts.map +1 -0
- package/dist/privacy/assert-provider-allowed.js +20 -0
- package/dist/privacy/assert-provider-allowed.js.map +1 -0
- package/dist/privacy/redact-fields.d.ts +11 -0
- package/dist/privacy/redact-fields.d.ts.map +1 -0
- package/dist/privacy/redact-fields.js +26 -0
- package/dist/privacy/redact-fields.js.map +1 -0
- package/dist/privacy/redact-text.d.ts +4 -0
- package/dist/privacy/redact-text.d.ts.map +1 -0
- package/dist/privacy/redact-text.js +26 -0
- package/dist/privacy/redact-text.js.map +1 -0
- package/dist/privacy/types.d.ts +23 -0
- package/dist/privacy/types.d.ts.map +1 -0
- package/dist/privacy/types.js +2 -0
- package/dist/privacy/types.js.map +1 -0
- package/dist/providers/anthropic.d.ts +57 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +130 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/google.d.ts +63 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +144 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/openai.d.ts +56 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +143 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/registry.d.ts +31 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +35 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/types.d.ts +63 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +10 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/rag/chunking/chunk-document.d.ts +13 -0
- package/dist/rag/chunking/chunk-document.d.ts.map +1 -0
- package/dist/rag/chunking/chunk-document.js +51 -0
- package/dist/rag/chunking/chunk-document.js.map +1 -0
- package/dist/rag/chunking/incremental.d.ts +19 -0
- package/dist/rag/chunking/incremental.d.ts.map +1 -0
- package/dist/rag/chunking/incremental.js +24 -0
- package/dist/rag/chunking/incremental.js.map +1 -0
- package/dist/rag/chunking/types.d.ts +34 -0
- package/dist/rag/chunking/types.d.ts.map +1 -0
- package/dist/rag/chunking/types.js +2 -0
- package/dist/rag/chunking/types.js.map +1 -0
- package/dist/rag/embeddings/hashing-provider.d.ts +22 -0
- package/dist/rag/embeddings/hashing-provider.d.ts.map +1 -0
- package/dist/rag/embeddings/hashing-provider.js +53 -0
- package/dist/rag/embeddings/hashing-provider.js.map +1 -0
- package/dist/rag/embeddings/types.d.ts +16 -0
- package/dist/rag/embeddings/types.d.ts.map +1 -0
- package/dist/rag/embeddings/types.js +2 -0
- package/dist/rag/embeddings/types.js.map +1 -0
- package/dist/rag/index/bm25.d.ts +4 -0
- package/dist/rag/index/bm25.d.ts.map +1 -0
- package/dist/rag/index/bm25.js +38 -0
- package/dist/rag/index/bm25.js.map +1 -0
- package/dist/rag/index/memory-index.d.ts +12 -0
- package/dist/rag/index/memory-index.d.ts.map +1 -0
- package/dist/rag/index/memory-index.js +44 -0
- package/dist/rag/index/memory-index.js.map +1 -0
- package/dist/rag/index/rrf.d.ts +9 -0
- package/dist/rag/index/rrf.d.ts.map +1 -0
- package/dist/rag/index/rrf.js +20 -0
- package/dist/rag/index/rrf.js.map +1 -0
- package/dist/rag/index/types.d.ts +48 -0
- package/dist/rag/index/types.d.ts.map +1 -0
- package/dist/rag/index/types.js +2 -0
- package/dist/rag/index/types.js.map +1 -0
- package/dist/rag/index/vector-rank.d.ts +4 -0
- package/dist/rag/index/vector-rank.d.ts.map +1 -0
- package/dist/rag/index/vector-rank.js +27 -0
- package/dist/rag/index/vector-rank.js.map +1 -0
- package/dist/reversibility/diff.d.ts +17 -0
- package/dist/reversibility/diff.d.ts.map +1 -0
- package/dist/reversibility/diff.js +39 -0
- package/dist/reversibility/diff.js.map +1 -0
- package/dist/reversibility/receipt-store.d.ts +9 -0
- package/dist/reversibility/receipt-store.d.ts.map +1 -0
- package/dist/reversibility/receipt-store.js +34 -0
- package/dist/reversibility/receipt-store.js.map +1 -0
- package/dist/reversibility/revert.d.ts +18 -0
- package/dist/reversibility/revert.d.ts.map +1 -0
- package/dist/reversibility/revert.js +38 -0
- package/dist/reversibility/revert.js.map +1 -0
- package/dist/reversibility/types.d.ts +25 -0
- package/dist/reversibility/types.d.ts.map +1 -0
- package/dist/reversibility/types.js +2 -0
- package/dist/reversibility/types.js.map +1 -0
- package/dist/reversibility/with-receipts.d.ts +19 -0
- package/dist/reversibility/with-receipts.d.ts.map +1 -0
- package/dist/reversibility/with-receipts.js +35 -0
- package/dist/reversibility/with-receipts.js.map +1 -0
- package/dist/runtime/loop.d.ts +11 -0
- package/dist/runtime/loop.d.ts.map +1 -0
- package/dist/runtime/loop.js +116 -0
- package/dist/runtime/loop.js.map +1 -0
- package/dist/runtime/repetition.d.ts +16 -0
- package/dist/runtime/repetition.d.ts.map +1 -0
- package/dist/runtime/repetition.js +38 -0
- package/dist/runtime/repetition.js.map +1 -0
- package/dist/runtime/retry.d.ts +22 -0
- package/dist/runtime/retry.d.ts.map +1 -0
- package/dist/runtime/retry.js +69 -0
- package/dist/runtime/retry.js.map +1 -0
- package/dist/runtime/types.d.ts +78 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +2 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/sandbox/types.d.ts +20 -0
- package/dist/sandbox/types.d.ts.map +1 -0
- package/dist/sandbox/types.js +2 -0
- package/dist/sandbox/types.js.map +1 -0
- package/dist/sandbox/with-sandbox.d.ts +26 -0
- package/dist/sandbox/with-sandbox.d.ts.map +1 -0
- package/dist/sandbox/with-sandbox.js +41 -0
- package/dist/sandbox/with-sandbox.js.map +1 -0
- package/dist/skills/file-store.d.ts +13 -0
- package/dist/skills/file-store.d.ts.map +1 -0
- package/dist/skills/file-store.js +73 -0
- package/dist/skills/file-store.js.map +1 -0
- package/dist/skills/frontmatter.d.ts +11 -0
- package/dist/skills/frontmatter.d.ts.map +1 -0
- package/dist/skills/frontmatter.js +46 -0
- package/dist/skills/frontmatter.js.map +1 -0
- package/dist/skills/types.d.ts +19 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +2 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/skin/generate.d.ts +22 -0
- package/dist/skin/generate.d.ts.map +1 -0
- package/dist/skin/generate.js +144 -0
- package/dist/skin/generate.js.map +1 -0
- package/dist/subagents/run-subagent.d.ts +10 -0
- package/dist/subagents/run-subagent.d.ts.map +1 -0
- package/dist/subagents/run-subagent.js +24 -0
- package/dist/subagents/run-subagent.js.map +1 -0
- package/dist/subagents/types.d.ts +13 -0
- package/dist/subagents/types.d.ts.map +1 -0
- package/dist/subagents/types.js +2 -0
- package/dist/subagents/types.js.map +1 -0
- package/dist/subagents/validate.d.ts +8 -0
- package/dist/subagents/validate.d.ts.map +1 -0
- package/dist/subagents/validate.js +32 -0
- package/dist/subagents/validate.js.map +1 -0
- package/dist/tools/core/agent-delegate.d.ts +34 -0
- package/dist/tools/core/agent-delegate.d.ts.map +1 -0
- package/dist/tools/core/agent-delegate.js +41 -0
- package/dist/tools/core/agent-delegate.js.map +1 -0
- package/dist/tools/core/content.d.ts +81 -0
- package/dist/tools/core/content.d.ts.map +1 -0
- package/dist/tools/core/content.js +121 -0
- package/dist/tools/core/content.js.map +1 -0
- package/dist/tools/core/http-fetch.d.ts +33 -0
- package/dist/tools/core/http-fetch.d.ts.map +1 -0
- package/dist/tools/core/http-fetch.js +63 -0
- package/dist/tools/core/http-fetch.js.map +1 -0
- package/dist/tools/core/media.d.ts +38 -0
- package/dist/tools/core/media.d.ts.map +1 -0
- package/dist/tools/core/media.js +93 -0
- package/dist/tools/core/media.js.map +1 -0
- package/dist/tools/core/site-config.d.ts +19 -0
- package/dist/tools/core/site-config.d.ts.map +1 -0
- package/dist/tools/core/site-config.js +37 -0
- package/dist/tools/core/site-config.js.map +1 -0
- package/dist/tools/define.d.ts +12 -0
- package/dist/tools/define.d.ts.map +1 -0
- package/dist/tools/define.js +28 -0
- package/dist/tools/define.js.map +1 -0
- package/dist/tools/manifest.d.ts +19 -0
- package/dist/tools/manifest.d.ts.map +1 -0
- package/dist/tools/manifest.js +70 -0
- package/dist/tools/manifest.js.map +1 -0
- package/dist/tools/registry.d.ts +8 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +20 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +51 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/trace/capture.d.ts +19 -0
- package/dist/trace/capture.d.ts.map +1 -0
- package/dist/trace/capture.js +31 -0
- package/dist/trace/capture.js.map +1 -0
- package/dist/trace/file-store.d.ts +12 -0
- package/dist/trace/file-store.d.ts.map +1 -0
- package/dist/trace/file-store.js +78 -0
- package/dist/trace/file-store.js.map +1 -0
- package/dist/trace/memory-store.d.ts +9 -0
- package/dist/trace/memory-store.d.ts.map +1 -0
- package/dist/trace/memory-store.js +36 -0
- package/dist/trace/memory-store.js.map +1 -0
- package/dist/trace/types.d.ts +37 -0
- package/dist/trace/types.d.ts.map +1 -0
- package/dist/trace/types.js +2 -0
- package/dist/trace/types.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
export type ToolCost = 'low' | 'medium' | 'high';
|
|
3
|
+
export interface ToolLogger {
|
|
4
|
+
info(message: string, fields?: Readonly<Record<string, unknown>>): void;
|
|
5
|
+
warn(message: string, fields?: Readonly<Record<string, unknown>>): void;
|
|
6
|
+
error(message: string, fields?: Readonly<Record<string, unknown>>): void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* What `execute`/`revert` receive — Contract C's `ctx.site`, `ctx.actor`,
|
|
10
|
+
* `ctx.logger` (`ctx.db` and other resource clients are added by task 5's
|
|
11
|
+
* concrete core tools, which are the first to actually need one; this stays
|
|
12
|
+
* the minimal shape every tool can rely on regardless of what it does).
|
|
13
|
+
*/
|
|
14
|
+
export interface ToolContext {
|
|
15
|
+
/** Mirrors `ResolvedConfig.site` (`@cogenta/core`'s config resolver) — the same shape, read-only from a tool's perspective. */
|
|
16
|
+
readonly site: {
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly url?: string;
|
|
19
|
+
readonly locales: readonly string[];
|
|
20
|
+
readonly defaultLocale: string;
|
|
21
|
+
};
|
|
22
|
+
readonly actor: {
|
|
23
|
+
readonly id: string | null;
|
|
24
|
+
readonly roles: readonly string[];
|
|
25
|
+
};
|
|
26
|
+
readonly logger: ToolLogger;
|
|
27
|
+
/** The run's cancellation signal — set per call by the manifest, never by the tool definition itself. */
|
|
28
|
+
readonly signal: AbortSignal;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Contract C (`tools@1.0`, ADR-0020), reproduced as a type — this shape is
|
|
32
|
+
* frozen and any change to it is a major version with a migration note, not
|
|
33
|
+
* a routine edit.
|
|
34
|
+
*/
|
|
35
|
+
export interface ToolDefinition<Input = unknown, Output = unknown> {
|
|
36
|
+
readonly name: string;
|
|
37
|
+
readonly version: string;
|
|
38
|
+
readonly description: string;
|
|
39
|
+
readonly input: z.ZodType<Input>;
|
|
40
|
+
readonly output: z.ZodType<Output>;
|
|
41
|
+
readonly permissions: readonly string[];
|
|
42
|
+
readonly sideEffects: boolean;
|
|
43
|
+
readonly reversible: boolean;
|
|
44
|
+
readonly cost: ToolCost;
|
|
45
|
+
readonly rateLimit?: {
|
|
46
|
+
readonly perHour: number;
|
|
47
|
+
};
|
|
48
|
+
execute(input: Input, ctx: ToolContext): Promise<Output>;
|
|
49
|
+
revert?(receipt: Output, ctx: ToolContext): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEhD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAA;IACvE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAA;IACvE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAA;CACzE;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,+HAA+H;IAC/H,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;QACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;KAC/B,CAAA;IACD,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;IACjF,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,yGAAyG;IACzG,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxD,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RunResult } from '../runtime/types.js';
|
|
2
|
+
import type { TraceStore } from './types.js';
|
|
3
|
+
export interface CaptureTraceOptions {
|
|
4
|
+
readonly agentName: string;
|
|
5
|
+
readonly store: TraceStore;
|
|
6
|
+
/** Fraction of runs actually persisted, `0..1` (default `1` — capture everything). The sampling half of "rétention et échantillonnage configurables dès le départ". */
|
|
7
|
+
readonly sampleRate?: number;
|
|
8
|
+
readonly random?: () => number;
|
|
9
|
+
readonly now?: () => number;
|
|
10
|
+
readonly newId?: () => string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Wraps a call to `runAgentLoop` (or anything returning a `RunResult`) and,
|
|
14
|
+
* unless sampling skips it, persists the run as a `Trace`. The run's own
|
|
15
|
+
* result is always returned unchanged — capture is an observer, never a
|
|
16
|
+
* condition for the run succeeding or failing.
|
|
17
|
+
*/
|
|
18
|
+
export declare function captureTrace(run: () => Promise<RunResult>, options: CaptureTraceOptions): Promise<RunResult>;
|
|
19
|
+
//# sourceMappingURL=capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/trace/capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,uKAAuK;IACvK,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CAC9B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAC7B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,SAAS,CAAC,CAyBpB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { newId } from '@cogenta/core';
|
|
2
|
+
/**
|
|
3
|
+
* Wraps a call to `runAgentLoop` (or anything returning a `RunResult`) and,
|
|
4
|
+
* unless sampling skips it, persists the run as a `Trace`. The run's own
|
|
5
|
+
* result is always returned unchanged — capture is an observer, never a
|
|
6
|
+
* condition for the run succeeding or failing.
|
|
7
|
+
*/
|
|
8
|
+
export async function captureTrace(run, options) {
|
|
9
|
+
const now = options.now ?? Date.now;
|
|
10
|
+
const random = options.random ?? Math.random;
|
|
11
|
+
const sampleRate = options.sampleRate ?? 1;
|
|
12
|
+
const generateId = options.newId ?? newId;
|
|
13
|
+
const startedAt = now();
|
|
14
|
+
const result = await run();
|
|
15
|
+
const finishedAt = now();
|
|
16
|
+
if (random() < sampleRate) {
|
|
17
|
+
const trace = {
|
|
18
|
+
id: generateId(),
|
|
19
|
+
agentName: options.agentName,
|
|
20
|
+
startedAt: new Date(startedAt).toISOString(),
|
|
21
|
+
finishedAt: new Date(finishedAt).toISOString(),
|
|
22
|
+
stopReason: result.stopReason,
|
|
23
|
+
usage: result.usage,
|
|
24
|
+
steps: result.steps,
|
|
25
|
+
messages: result.messages,
|
|
26
|
+
};
|
|
27
|
+
await options.store.save(trace);
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/trace/capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAcrC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAA6B,EAC7B,OAA4B;IAE5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAA;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAA;IAEzC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAA;IACvB,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;IAC1B,MAAM,UAAU,GAAG,GAAG,EAAE,CAAA;IAExB,IAAI,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAU;YACnB,EAAE,EAAE,UAAU,EAAE;YAChB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YAC5C,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YAC9C,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAA;QACD,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TraceStore } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Durable without any external service — one JSON file per trace under
|
|
4
|
+
* `options.dir`, the same "real but local" tier `sqlite`/local storage
|
|
5
|
+
* already use elsewhere in this project (rule R1). Not meant for high
|
|
6
|
+
* concurrency or large-scale querying: this is a debugging/replay archive,
|
|
7
|
+
* not a database.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createFileTraceStore(options: {
|
|
10
|
+
readonly dir: string;
|
|
11
|
+
}): TraceStore;
|
|
12
|
+
//# sourceMappingURL=file-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-store.d.ts","sourceRoot":"","sources":["../../src/trace/file-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAA;AAQ/D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CA0DlF"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { mkdir, readdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { CogentaError } from '@cogenta/core';
|
|
4
|
+
const DEFAULT_LIST_LIMIT = 100;
|
|
5
|
+
function fileFor(dir, id) {
|
|
6
|
+
return join(dir, `${id}.json`);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Durable without any external service — one JSON file per trace under
|
|
10
|
+
* `options.dir`, the same "real but local" tier `sqlite`/local storage
|
|
11
|
+
* already use elsewhere in this project (rule R1). Not meant for high
|
|
12
|
+
* concurrency or large-scale querying: this is a debugging/replay archive,
|
|
13
|
+
* not a database.
|
|
14
|
+
*/
|
|
15
|
+
export function createFileTraceStore(options) {
|
|
16
|
+
const ready = mkdir(options.dir, { recursive: true });
|
|
17
|
+
async function readTrace(path) {
|
|
18
|
+
try {
|
|
19
|
+
const raw = await readFile(path, 'utf8');
|
|
20
|
+
return JSON.parse(raw);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error.code === 'ENOENT')
|
|
24
|
+
return null;
|
|
25
|
+
throw new CogentaError({
|
|
26
|
+
code: 'INTERNAL',
|
|
27
|
+
message: `Could not read trace file "${path}".`,
|
|
28
|
+
hint: 'The file may be corrupted; consider removing it.',
|
|
29
|
+
cause: error,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
async save(trace) {
|
|
35
|
+
await ready;
|
|
36
|
+
await writeFile(fileFor(options.dir, trace.id), JSON.stringify(trace), 'utf8');
|
|
37
|
+
},
|
|
38
|
+
async get(id) {
|
|
39
|
+
await ready;
|
|
40
|
+
return readTrace(fileFor(options.dir, id));
|
|
41
|
+
},
|
|
42
|
+
async list(query = {}) {
|
|
43
|
+
await ready;
|
|
44
|
+
const filenames = await readdir(options.dir).catch(() => []);
|
|
45
|
+
const traces = [];
|
|
46
|
+
for (const filename of filenames) {
|
|
47
|
+
if (!filename.endsWith('.json'))
|
|
48
|
+
continue;
|
|
49
|
+
const trace = await readTrace(join(options.dir, filename));
|
|
50
|
+
if (trace === null)
|
|
51
|
+
continue;
|
|
52
|
+
if (query.agentName !== undefined && trace.agentName !== query.agentName)
|
|
53
|
+
continue;
|
|
54
|
+
traces.push(trace);
|
|
55
|
+
}
|
|
56
|
+
traces.sort((a, b) => b.startedAt.localeCompare(a.startedAt));
|
|
57
|
+
return traces.slice(0, query.limit ?? DEFAULT_LIST_LIMIT);
|
|
58
|
+
},
|
|
59
|
+
async prune(olderThanMs, now = Date.now) {
|
|
60
|
+
await ready;
|
|
61
|
+
const cutoff = now() - olderThanMs;
|
|
62
|
+
const filenames = await readdir(options.dir).catch(() => []);
|
|
63
|
+
let removed = 0;
|
|
64
|
+
for (const filename of filenames) {
|
|
65
|
+
if (!filename.endsWith('.json'))
|
|
66
|
+
continue;
|
|
67
|
+
const path = join(options.dir, filename);
|
|
68
|
+
const trace = await readTrace(path);
|
|
69
|
+
if (trace !== null && new Date(trace.startedAt).getTime() < cutoff) {
|
|
70
|
+
await rm(path);
|
|
71
|
+
removed += 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return removed;
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=file-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-store.js","sourceRoot":"","sources":["../../src/trace/file-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TraceStore } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* The always-available tier (rule R1's "at least one implementation with no
|
|
4
|
+
* external service") — every process has memory, nothing to configure.
|
|
5
|
+
* Traces do not survive a restart, which is exactly why `createFileTraceStore`
|
|
6
|
+
* exists for anything that needs them to.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createMemoryTraceStore(): TraceStore;
|
|
9
|
+
//# sourceMappingURL=memory-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/trace/memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAA;AAI/D;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CA4BnD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const DEFAULT_LIST_LIMIT = 100;
|
|
2
|
+
/**
|
|
3
|
+
* The always-available tier (rule R1's "at least one implementation with no
|
|
4
|
+
* external service") — every process has memory, nothing to configure.
|
|
5
|
+
* Traces do not survive a restart, which is exactly why `createFileTraceStore`
|
|
6
|
+
* exists for anything that needs them to.
|
|
7
|
+
*/
|
|
8
|
+
export function createMemoryTraceStore() {
|
|
9
|
+
const traces = new Map();
|
|
10
|
+
return {
|
|
11
|
+
async save(trace) {
|
|
12
|
+
traces.set(trace.id, trace);
|
|
13
|
+
},
|
|
14
|
+
async get(id) {
|
|
15
|
+
return traces.get(id) ?? null;
|
|
16
|
+
},
|
|
17
|
+
async list(query = {}) {
|
|
18
|
+
const all = [...traces.values()]
|
|
19
|
+
.filter((trace) => query.agentName === undefined || trace.agentName === query.agentName)
|
|
20
|
+
.sort((a, b) => b.startedAt.localeCompare(a.startedAt));
|
|
21
|
+
return all.slice(0, query.limit ?? DEFAULT_LIST_LIMIT);
|
|
22
|
+
},
|
|
23
|
+
async prune(olderThanMs, now = Date.now) {
|
|
24
|
+
const cutoff = now() - olderThanMs;
|
|
25
|
+
let removed = 0;
|
|
26
|
+
for (const trace of traces.values()) {
|
|
27
|
+
if (new Date(trace.startedAt).getTime() < cutoff) {
|
|
28
|
+
traces.delete(trace.id);
|
|
29
|
+
removed += 1;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return removed;
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=memory-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/trace/memory-store.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;IAEvC,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,KAAK;YACd,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAC7B,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACV,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAe,EAAE;YAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;iBAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;iBACvF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;YACzD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAA;QACxD,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG;YACrC,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,WAAW,CAAA;YAClC,IAAI,OAAO,GAAG,CAAC,CAAA;YACf,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;oBACjD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;oBACvB,OAAO,IAAI,CAAC,CAAA;gBACd,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ChatMessage, TokenUsage } from '../providers/types.js';
|
|
2
|
+
import type { RunStopReason, StepRecord } from '../runtime/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* L4 task 7: a full record of one agent run, enough to inspect what
|
|
5
|
+
* happened and, later, to replay it (task 20's evaluation harness). Nothing
|
|
6
|
+
* here is new data — `runAgentLoop`'s own `RunResult` already carries every
|
|
7
|
+
* step, message, and usage figure; a trace is that result, timestamped and
|
|
8
|
+
* given an id worth storing.
|
|
9
|
+
*/
|
|
10
|
+
export interface Trace {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly agentName: string;
|
|
13
|
+
readonly startedAt: string;
|
|
14
|
+
readonly finishedAt: string;
|
|
15
|
+
readonly stopReason: RunStopReason;
|
|
16
|
+
readonly usage: TokenUsage;
|
|
17
|
+
readonly steps: readonly StepRecord[];
|
|
18
|
+
readonly messages: readonly ChatMessage[];
|
|
19
|
+
}
|
|
20
|
+
export interface TraceQuery {
|
|
21
|
+
readonly agentName?: string;
|
|
22
|
+
/** Most recent first; caps how many `list` returns (default implementation-defined, but never unbounded). */
|
|
23
|
+
readonly limit?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface TraceStore {
|
|
26
|
+
save(trace: Trace): Promise<void>;
|
|
27
|
+
get(id: string): Promise<Trace | null>;
|
|
28
|
+
list(query?: TraceQuery): Promise<readonly Trace[]>;
|
|
29
|
+
/**
|
|
30
|
+
* The retention half of "rétention et échantillonnage configurables dès
|
|
31
|
+
* le départ" (L4's own pitfalls list, on trace volume) — removes every
|
|
32
|
+
* trace whose `startedAt` is older than `olderThanMs` ago, returns how
|
|
33
|
+
* many were removed.
|
|
34
|
+
*/
|
|
35
|
+
prune(olderThanMs: number, now?: () => number): Promise<number>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/trace/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEpE;;;;;;GAMG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,6GAA6G;IAC7G,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAA;IACnD;;;;;OAKG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAChE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/trace/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cogenta/agents",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "The agentic runtime: LLM provider abstraction, tool-calling, execution loop, permissions, memory, budgets, audit.",
|
|
5
|
+
"license": "MPL-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=22.11.0"
|
|
19
|
+
},
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public",
|
|
22
|
+
"provenance": true
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/cogenta-cms/cogenta.git",
|
|
27
|
+
"directory": "packages/agents"
|
|
28
|
+
},
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsc -p tsconfig.json",
|
|
31
|
+
"typecheck": "tsc -p tsconfig.typecheck.json",
|
|
32
|
+
"test": "vitest run --passWithNoTests",
|
|
33
|
+
"test:integration": "vitest run --config vitest.integration.config.ts --passWithNoTests"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@cogenta/core": "workspace:*",
|
|
37
|
+
"@cogenta/render": "workspace:*",
|
|
38
|
+
"zod": "catalog:"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"typescript": "catalog:",
|
|
42
|
+
"vitest": "catalog:"
|
|
43
|
+
}
|
|
44
|
+
}
|