@aeye/core 0.3.8 → 0.4.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.
@@ -0,0 +1,178 @@
1
+ # @aeye/core — Type model & utilities
2
+
3
+ The shared, provider-agnostic type model (`src/types.ts`) plus helper functions (`src/common.ts`) and Node resource helpers (`src/to.ts`). All re-exported from `@aeye/core`.
4
+
5
+ ## Component interface
6
+
7
+ Every primitive implements `Component`:
8
+
9
+ ```typescript
10
+ interface Component<TContext = {}, TMetadata = {}, TName extends string = string,
11
+ TInput extends object = {}, TOutput = string,
12
+ TRefs extends Tuple<ComponentCompatible<TContext, TMetadata>> = []> {
13
+ kind: string; // 'prompt' | 'tool' | 'agent' (or custom)
14
+ name: TName;
15
+ description: string;
16
+ refs: TRefs;
17
+ run(...[input, ctx]: OptionalParams<[TInput, Context<...>]>): TOutput;
18
+ applicable(...[ctx]): Promise<boolean>;
19
+ metadata(): TMetadata;
20
+ metadata(input?, ctx?): TMetadata | Promise<TMetadata>;
21
+ }
22
+ ```
23
+
24
+ Useful generic helpers exported alongside it: `AnyComponent`, `ComponentCompatible<C,M>`, `ComponentTuple`, and extractors `ComponentContext<C>`, `ComponentMetadata<C>`, `ComponentInput<C>`, `ComponentOutput<C>`, `ComponentRefs<C>`, `ComponentsAll<C>` (transitive refs), `Names<T>`. Type plumbing: `Tuple<T>` (`[] | [T, ...T[]]`), `Simplify`, `Extend`, `Plus`, `RequiredKeys`, `OptionalParams` (makes trailing params optional when they have no required keys — why `run()`/`get()` can be called with no args).
25
+
26
+ ## Context
27
+
28
+ `Context<TContext, TMetadata>` = your `TContext` intersected with core execution fields:
29
+
30
+ ```typescript
31
+ type Context<TContext, TMetadata> = TContext & {
32
+ messages?: Message[];
33
+ execute?: Executor<TContext, TMetadata>;
34
+ stream?: Streamer<TContext, TMetadata>;
35
+ signal?: AbortSignal;
36
+ estimateUsage?: (message: Message) => Usage | undefined;
37
+ maxOutputTokens?: number; // reserve tokens for the model's output
38
+ contextWindow?: number; // override window size for trimming
39
+ outputRetries?: number; // default 2
40
+ forgetRetries?: number; // context-trim retries, default 1
41
+ toolRetries?: number; // default 2
42
+ instance?: Instance<any>; // current execution instance
43
+ runner?: Runner; // override how components execute (see withEvents)
44
+ toolCallId?: string; // set by the prompt loop before a tool's call()
45
+ };
46
+ ```
47
+
48
+ `Executor` / `Streamer` are the functions you must supply to actually run a prompt:
49
+
50
+ ```typescript
51
+ type Executor<TContext, TMetadata> =
52
+ (request: Request, context, metadata?, signal?: AbortSignal) => Promise<Response>;
53
+
54
+ type Streamer<TContext, TMetadata> =
55
+ (request: Request, context, metadata?, signal?: AbortSignal) => AsyncGenerator<Chunk, Response>;
56
+ ```
57
+
58
+ ## Messages & content
59
+
60
+ ```typescript
61
+ type MessageRole = 'system' | 'user' | 'assistant' | 'tool';
62
+
63
+ interface Message {
64
+ role: MessageRole;
65
+ content: string | MessageContent[];
66
+ tokens?: number; // used for automatic context trimming
67
+ name?: string;
68
+ toolCallId?: string; // role: 'tool' — links result to a ToolCall
69
+ toolCalls?: ToolCall[]; // role: 'assistant' — model wants to call tools
70
+ refusal?: string;
71
+ reasoning?: Reasoning;
72
+ cache?: Record<string, any>;
73
+ }
74
+
75
+ interface MessageContent { // type: 'text' | 'image' | 'file' | 'audio'
76
+ type: MessageContentType;
77
+ content: Resource; // string | URL | Blob | Uint8Array | stream | ...
78
+ format?: string; // 'png', 'mp3', 'pdf', ...
79
+ }
80
+
81
+ interface ToolCall { id: string; name: string; arguments: string; } // arguments = JSON string
82
+ interface ToolDefinition {
83
+ name: string; description?: string;
84
+ parameters: z.ZodType<object>; // raw Zod; strictify applied lazily by provider
85
+ strict?: boolean | number;
86
+ descriptor?: string; // FormatDescriptor id chosen at request build time
87
+ }
88
+ ```
89
+
90
+ ## Request & Response
91
+
92
+ ```typescript
93
+ interface Request extends BaseRequest { // BaseRequest: { model?: ModelInput; extra?: ... }
94
+ name?: string;
95
+ messages: Message[];
96
+ temperature?: number; // 0.0–2.0
97
+ maxTokens?: number;
98
+ topP?: number; // 0.0–1.0
99
+ frequencyPenalty?: number; // -2.0–2.0
100
+ presencePenalty?: number; // -2.0–2.0
101
+ stop?: string | string[];
102
+ logProbabilities?: boolean;
103
+ logitBias?: Record<string, number>;
104
+ tools?: ToolDefinition[];
105
+ toolsOneAtATime?: boolean;
106
+ toolChoice?: ToolChoice; // 'auto' | 'none' | 'required' | { tool: string }
107
+ responseFormat?: ResponseFormat;// 'text' | 'json' | { type: ZodType, strict, descriptor? }
108
+ reason?: { effort?: 'low'|'medium'|'high'; maxTokens?: number };
109
+ cacheKey?: string;
110
+ userKey?: string;
111
+ }
112
+
113
+ interface Response extends BaseResponse { // BaseResponse: { usage?, model, extra? }
114
+ content: string;
115
+ toolCalls?: ToolCall[];
116
+ finishReason: FinishReason; // 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'refusal'
117
+ refusal?: string;
118
+ reasoning?: Reasoning;
119
+ }
120
+
121
+ interface Chunk extends BaseChunk { // streaming delta
122
+ content?: string;
123
+ toolCallNamed?: ToolCall; // name fully received
124
+ toolCallArguments?: ToolCall; // args streaming
125
+ toolCall?: ToolCall; // fully received
126
+ finishReason?: FinishReason;
127
+ refusal?: string;
128
+ reasoning?: Reasoning;
129
+ }
130
+ ```
131
+
132
+ ## Usage
133
+
134
+ `Usage` mirrors model pricing for cost tracking — per-modality token counts (`text`, `audio`, `image`, `reasoning`, `embeddings`) plus an optional `cost` in dollars. See `src/types.ts` for the full shape.
135
+
136
+ ## Instances & Events (lifecycle tracking)
137
+
138
+ ```typescript
139
+ type InstanceStatus = 'pending' | 'running' | 'completed' | 'failed' | 'interrupted';
140
+
141
+ interface Instance<C extends AnyComponent> {
142
+ parent?: Instance<AnyComponent>;
143
+ id: string; component: C; context; input; status: InstanceStatus;
144
+ started?; running?; completed?; // timestamps (ms)
145
+ error?; output?; children?: Instance<...>[];
146
+ }
147
+
148
+ interface Events<TRoot extends AnyComponent> {
149
+ onStatus?: (node: Instance<...>) => void;
150
+ onChild?: (node, child) => void;
151
+ onPromptEvent?: (instance, event: PromptEvent<...>) => void;
152
+ }
153
+ ```
154
+
155
+ A `Runner` wraps every component execution. Use `withEvents(events)` to build one:
156
+
157
+ ```typescript
158
+ import { withEvents } from '@aeye/core';
159
+
160
+ const runner = withEvents({
161
+ onStatus: (i) => console.log(`${i.component.name}: ${i.status}`),
162
+ onPromptEvent: (_i, e) => { if (e.type === 'usage') console.log('tokens', e.usage); },
163
+ });
164
+
165
+ await prompt.get('result', { text: 'hi' }, { execute, messages: [], runner });
166
+ ```
167
+
168
+ ## `common.ts` utilities
169
+
170
+ - `resolveFn(fn, reprocess?)` — normalizes a `Fn<R, A>` (value | promise | function) into `(...args) => Promise<R>`. The pattern behind every `schema`/`config`/`input`/`*Fn` field.
171
+ - Usage helpers: `accumulateUsage(target, add)`, `getInputTokens`, `getOutputTokens`, `getTotalTokens`, `accumulateReasoning`, `getReasoningText`.
172
+ - Conversion helpers: `getModel(input)`, `getResponseFromChunks(chunks, model?)`, `getChunksFromResponse(response)`.
173
+ - Async helpers: `isPromise`, `isAsyncGenerator`, `isSettled`, `resolve`, `yieldAll`, `consumeAll`.
174
+ - `Fn<R, A>`, `FnResult`, `FnArgs`, `FnResolved`, `Resolved<T>` type helpers.
175
+
176
+ ## `to.ts` resource helpers (Node only — excluded from the browser build)
177
+
178
+ `getResourceFormat`, `toURL`, `toBase64`, `toText`, `toStream`, `toReadableStream`, `toFile` — convert a `Resource` (string, URL, Blob, Uint8Array, stream, file path, …) to the form a provider needs. Import these only in Node contexts; the browser entry omits them.
package/aeye-core.md ADDED
@@ -0,0 +1,88 @@
1
+ # @aeye/core
2
+
3
+ **Purpose:** Type-safe, composable primitives for building AI applications — `Prompt`, `Tool`, and `Agent` components, plus the shared type model (messages, requests, responses, usage) and a Zod→JSON-Schema layer that handles per-provider strict-mode dialects.
4
+
5
+ `@aeye/core` defines the *primitives and contracts*. It does **not** talk to any LLM provider itself. To actually run a prompt you supply an `execute` and/or `stream` function on the context — usually produced by `@aeye/ai` via `ai.buildCoreContext()`, or your own.
6
+
7
+ ## When to use it
8
+
9
+ - You want provider-agnostic AI components (prompts, tools, agents) with full TypeScript inference.
10
+ - You need structured outputs validated by Zod, with automatic re-prompting on validation failure.
11
+ - You need native tool/function calling with configurable execution (sequential / parallel / immediate), retries, and iteration limits.
12
+ - You need a single Zod schema to emit correct JSON Schema for OpenAI / Anthropic / Google strict modes.
13
+ - You are building a provider package or runtime (e.g. `@aeye/ai`) on top of the shared `Request`/`Response`/`Message` model.
14
+
15
+ If you just want to call models against configured providers with model selection and cost tracking, use `@aeye/ai` (which depends on this package).
16
+
17
+ ## Installation & import
18
+
19
+ ```bash
20
+ npm install @aeye/core zod handlebars
21
+ ```
22
+
23
+ ```typescript
24
+ import { Prompt, Tool, Agent, withEvents } from '@aeye/core';
25
+ import z from 'zod';
26
+ ```
27
+
28
+ - Single entry point: `@aeye/core` (no subpath exports).
29
+ - There is a separate **browser** build (`./dist/browser.js`, auto-selected via the `browser` export condition) that excludes the Node-only resource helpers in `to.ts` (which depend on `fs`/`path`/`stream`). Everything else (`types`, `common`, `schema`, `tool`, `prompt`, `agent`) is available in both.
30
+ - `peerDependencies` in practice: `zod` (^4) and `handlebars` (^4) are runtime deps used for schemas and prompt templates.
31
+
32
+ ## Core concepts (read these first)
33
+
34
+ - **Component** — the common interface implemented by `Prompt`, `Tool`, and `Agent`: `{ kind, name, description, refs, run(), applicable(), metadata() }`.
35
+ - **`TContext` / `Context<TContext, TMetadata>`** — your app data (user, db, etc.) merged with core execution fields (`execute`, `stream`, `messages`, `signal`, retry counts, `runner`, …). Threaded through every call.
36
+ - **`TMetadata`** — execution settings (model, requirements) carried alongside the context.
37
+ - **Refs** — components a Tool/Agent depends on, passed positionally to `call`. Enables a typed component graph.
38
+ - **Strict mode / FormatDescriptor** — one Zod schema, many provider JSON-Schema dialects.
39
+
40
+ ## Documentation index
41
+
42
+ | File | Covers |
43
+ |------|--------|
44
+ | [`aeye-core-types.md`](./aeye-core-types.md) | The shared type model: `Component`, `Context`, `Message`, `Request`, `Response`, `Chunk`, `Usage`, `Executor`/`Streamer`, `Instance`/`Events`, plus `common.ts` utilities and `withEvents`. |
45
+ | [`aeye-core-prompts.md`](./aeye-core-prompts.md) | `Prompt` class, `PromptInput`, the `get()` modes, `PromptEvent` stream, tool execution, retries, reconfig, suspend/resume. |
46
+ | [`aeye-core-tools.md`](./aeye-core-tools.md) | `Tool` and `Agent` classes, `ToolInput`/`AgentInput`, `call`/`validate`/`applicable`, context-aware schemas, `ToolInterrupt`/`PromptSuspend`. |
47
+ | [`aeye-core-schema.md`](./aeye-core-schema.md) | Strict mode: `FormatDescriptor`, `toJSONSchema`, `strictify`, `registerDescriptor`, the built-in descriptors, `SchemaBudget`, `analyzeSchema`. |
48
+
49
+ ## 60-second example
50
+
51
+ ```typescript
52
+ import { Prompt } from '@aeye/core';
53
+ import z from 'zod';
54
+
55
+ const summarizer = new Prompt({
56
+ name: 'summarize',
57
+ description: 'Summarizes text concisely',
58
+ content: 'Summarize the following text:\n\n{{text}}',
59
+ input: (input: { text: string }) => ({ text: input.text }),
60
+ schema: z.object({
61
+ summary: z.string().describe('A concise summary'),
62
+ keyPoints: z.array(z.string()).describe('Main points'),
63
+ }),
64
+ });
65
+
66
+ // `ctx` must carry an `execute` (and/or `stream`) function + messages.
67
+ const result = await summarizer.get(
68
+ 'result',
69
+ { text: 'Long article text...' },
70
+ { execute: yourAIExecutor, messages: [] },
71
+ );
72
+
73
+ console.log(result?.summary, result?.keyPoints);
74
+ ```
75
+
76
+ ## How it integrates with other @aeye packages
77
+
78
+ - **`@aeye/ai`** is the runtime. `await ai.buildCoreContext(requiredCtx)` returns a `Context` populated with `execute`, `stream`, and `estimateUsage`, ready to pass to any component's `run()`/`get()`. `ai.run(component, input, ctx)` builds the context and runs the component for you. `@aeye/ai` is also what enforces strict-mode model selection from the descriptors defined here.
79
+ - **Provider packages** implement against `Request`/`Response`/`Chunk`/`Message` from this package and choose a `FormatDescriptor` per request (pinning its `id` on `request.responseFormat.descriptor` / `ToolDefinition.descriptor`).
80
+
81
+ ## Key gotchas
82
+
83
+ - **`@aeye/core` cannot call a model on its own.** Without `execute`/`stream` on the context, a `Prompt` produces nothing. Tools and Agents run fine standalone via `.run()`.
84
+ - **`Prompt.get(mode, input?, ctx?)`** — modes `'result'` / `'tools'` return a `Promise`; `'stream'` / `'streamTools'` / `'streamContent'` return an `AsyncGenerator`. Default mode is `'result'`.
85
+ - **`schema` and many fields accept a function** `(input, ctx) => ...` for context-dependent behavior. Returning `false` from a Prompt `schema` disables structured output (plain text).
86
+ - **`strict` defaults to `1`** (prefer strict, allow lenient fallback), *not* `true`. Use `strict: true` only when strict is non-negotiable (it filters model selection in `@aeye/ai`).
87
+ - **Tool results are auto-paired** by default (`toolsComplete: true`) so providers don't reject unpaired `tool_calls`. `PromptSuspend` is the deliberate exception used for human-in-the-loop.
88
+ - The README at `packages/core/README.md` is the canonical narrative reference; full per-module API reference lives in `packages/docs/reference/core/`.
package/dist/common.d.ts CHANGED
@@ -173,4 +173,40 @@ export declare function getChunksFromResponse(response: Response): Chunk[];
173
173
  * @param events
174
174
  * @returns
175
175
  */ export declare function withEvents<TRoot extends AnyComponent>(events: Events<TRoot>): Runner;
176
+ /**
177
+ * Extract the outermost balanced JSON object (`{…}`) from arbitrary model
178
+ * text. Robust to markdown code fences (```json … ```), surrounding prose,
179
+ * and braces that appear inside string literals — it scans from the first
180
+ * `{`, tracks string-literal state (respecting backslash escapes), and returns
181
+ * the slice up to the matching close brace at depth 0.
182
+ *
183
+ * Behavior is IDENTICAL to a clean `JSON.stringify`-d object (returns it
184
+ * verbatim). Falls back to the slice from the first `{` to end when the braces
185
+ * never balance, and to `''` when there is no `{` at all (so `JSON.parse('')`
186
+ * surfaces the same error downstream).
187
+ *
188
+ * Exported for direct unit testing.
189
+ */
190
+ export declare function extractJSONObject(text: string): string;
191
+ /**
192
+ * Best-effort repair for a provider that JSON-encodes a top-level object/array
193
+ * field as a STRING (Claude / Anthropic tool args have been observed doing this,
194
+ * sometimes double-encoding AND corrupting the inner content mid-stream). Walks
195
+ * the top-level entries of `raw`; any string value that starts with `{`/`[` is
196
+ * `JSON.parse`-d back into place.
197
+ *
198
+ * Returns the repaired object, the list of fields that parsed cleanly
199
+ * (`fields`), and the list of fields that LOOKED string-encoded whether or not
200
+ * their inner JSON parsed (`attempted`) — so the caller can distinguish "no
201
+ * encoded fields at all" (`undefined`) from "encoded but malformed inner JSON"
202
+ * (`attempted.length > 0`, `fields.length === 0`).
203
+ *
204
+ * Intentionally top-level only — descending deeper risks "repairing" legitimate
205
+ * JSON-shaped strings inside content fields.
206
+ */
207
+ export declare function repairStringEncodedFields(raw: unknown): {
208
+ value: Record<string, unknown>;
209
+ fields: string[];
210
+ attempted: string[];
211
+ } | undefined;
176
212
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
package/dist/common.js CHANGED
@@ -540,4 +540,105 @@ export function withEvents(events) {
540
540
  };
541
541
  return runner;
542
542
  }
543
+ // ════════════════════════════════════════════════════════════════════════════
544
+ // JSON extraction / repair — shared model-output utilities used by both the
545
+ // Prompt (structured output-parse + prompt-text schema-delivery fallback) and
546
+ // the Tool (tool-call argument validation). Kept here so there is one home for
547
+ // the "turn a model's messy reply into parseable JSON" logic.
548
+ // ════════════════════════════════════════════════════════════════════════════
549
+ /**
550
+ * Extract the outermost balanced JSON object (`{…}`) from arbitrary model
551
+ * text. Robust to markdown code fences (```json … ```), surrounding prose,
552
+ * and braces that appear inside string literals — it scans from the first
553
+ * `{`, tracks string-literal state (respecting backslash escapes), and returns
554
+ * the slice up to the matching close brace at depth 0.
555
+ *
556
+ * Behavior is IDENTICAL to a clean `JSON.stringify`-d object (returns it
557
+ * verbatim). Falls back to the slice from the first `{` to end when the braces
558
+ * never balance, and to `''` when there is no `{` at all (so `JSON.parse('')`
559
+ * surfaces the same error downstream).
560
+ *
561
+ * Exported for direct unit testing.
562
+ */
563
+ export function extractJSONObject(text) {
564
+ const start = text.indexOf('{');
565
+ if (start === -1)
566
+ return '';
567
+ let depth = 0;
568
+ let inString = false;
569
+ let escaped = false;
570
+ for (let i = start; i < text.length; i++) {
571
+ const ch = text[i];
572
+ if (inString) {
573
+ if (escaped) {
574
+ escaped = false;
575
+ }
576
+ else if (ch === '\\') {
577
+ escaped = true;
578
+ }
579
+ else if (ch === '"') {
580
+ inString = false;
581
+ }
582
+ continue;
583
+ }
584
+ if (ch === '"') {
585
+ inString = true;
586
+ }
587
+ else if (ch === '{') {
588
+ depth++;
589
+ }
590
+ else if (ch === '}') {
591
+ depth--;
592
+ if (depth === 0) {
593
+ return text.slice(start, i + 1);
594
+ }
595
+ }
596
+ }
597
+ // Unbalanced — return best-effort from the first brace so JSON.parse can
598
+ // report a precise error.
599
+ return text.slice(start);
600
+ }
601
+ /**
602
+ * Best-effort repair for a provider that JSON-encodes a top-level object/array
603
+ * field as a STRING (Claude / Anthropic tool args have been observed doing this,
604
+ * sometimes double-encoding AND corrupting the inner content mid-stream). Walks
605
+ * the top-level entries of `raw`; any string value that starts with `{`/`[` is
606
+ * `JSON.parse`-d back into place.
607
+ *
608
+ * Returns the repaired object, the list of fields that parsed cleanly
609
+ * (`fields`), and the list of fields that LOOKED string-encoded whether or not
610
+ * their inner JSON parsed (`attempted`) — so the caller can distinguish "no
611
+ * encoded fields at all" (`undefined`) from "encoded but malformed inner JSON"
612
+ * (`attempted.length > 0`, `fields.length === 0`).
613
+ *
614
+ * Intentionally top-level only — descending deeper risks "repairing" legitimate
615
+ * JSON-shaped strings inside content fields.
616
+ */
617
+ export function repairStringEncodedFields(raw) {
618
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
619
+ return undefined;
620
+ const src = raw;
621
+ const repaired = { ...src };
622
+ const fields = [];
623
+ const attempted = [];
624
+ for (const [key, value] of Object.entries(src)) {
625
+ if (typeof value !== 'string')
626
+ continue;
627
+ const head = value.trimStart()[0];
628
+ if (head !== '{' && head !== '[')
629
+ continue;
630
+ // Field LOOKS string-encoded — track it whether parse succeeds or not.
631
+ // Failed inner-parse is its own diagnostic signal (model double-encoded AND
632
+ // the inner content is malformed), distinct from "no encoded fields seen".
633
+ attempted.push(key);
634
+ try {
635
+ repaired[key] = JSON.parse(value);
636
+ fields.push(key);
637
+ }
638
+ catch { /* malformed inner JSON — keep tracking the attempt */ }
639
+ }
640
+ if (attempted.length === 0)
641
+ return undefined;
642
+ return { value: repaired, fields, attempted };
643
+ }
543
644
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}