@warlock.js/ai 4.5.0 → 4.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/cjs/index.cjs +20 -1
- package/cjs/{src-DFibP2FQ.cjs → src-Bmajk4Qg.cjs} +1 -1
- package/cjs/{src-C02yzsLs.cjs → src-OZyDYHxm.cjs} +2789 -691
- package/cjs/src-OZyDYHxm.cjs.map +1 -0
- package/esm/agent/agent-config.type.d.mts +29 -0
- package/esm/agent/agent-config.type.d.mts.map +1 -1
- package/esm/agent/agent.d.mts.map +1 -1
- package/esm/agent/agent.mjs +126 -7
- package/esm/agent/agent.mjs.map +1 -1
- package/esm/agent/signature.mjs +57 -0
- package/esm/agent/signature.mjs.map +1 -0
- package/esm/agent/snapshot.mjs +101 -0
- package/esm/agent/snapshot.mjs.map +1 -0
- package/esm/ai-openai/src/image.mjs +5 -0
- package/esm/ai-openai/src/index.mjs +3 -0
- package/esm/ai-openai/src/sdk.mjs +3 -0
- package/esm/ai-openai/src/speech.mjs +5 -0
- package/esm/ai-openai/src/transcription.mjs +6 -0
- package/esm/ai-openai/src/utils/index.mjs +1 -0
- package/esm/ai-openai/src/utils/to-openai-messages.mjs +3 -0
- package/esm/ai.d.mts +45 -0
- package/esm/ai.d.mts.map +1 -1
- package/esm/ai.mjs +37 -1
- package/esm/ai.mjs.map +1 -1
- package/esm/contracts/agent/agent-options.type.d.mts +22 -2
- package/esm/contracts/agent/agent-options.type.d.mts.map +1 -1
- package/esm/contracts/agent/agent-snapshot.type.d.mts +90 -0
- package/esm/contracts/agent/agent-snapshot.type.d.mts.map +1 -0
- package/esm/contracts/agent/agent.contract.d.mts +29 -1
- package/esm/contracts/agent/agent.contract.d.mts.map +1 -1
- package/esm/contracts/agent/index.d.mts +2 -1
- package/esm/contracts/image-model.contract.d.mts +156 -0
- package/esm/contracts/image-model.contract.d.mts.map +1 -0
- package/esm/contracts/index.d.mts +8 -3
- package/esm/contracts/planner/index.d.mts +3 -2
- package/esm/contracts/planner/planner-config.type.d.mts +30 -0
- package/esm/contracts/planner/planner-config.type.d.mts.map +1 -1
- package/esm/contracts/planner/planner-execute-options.type.d.mts +13 -1
- package/esm/contracts/planner/planner-execute-options.type.d.mts.map +1 -1
- package/esm/contracts/planner/planner-snapshot.type.d.mts +77 -0
- package/esm/contracts/planner/planner-snapshot.type.d.mts.map +1 -0
- package/esm/contracts/planner/planner.contract.d.mts +21 -1
- package/esm/contracts/planner/planner.contract.d.mts.map +1 -1
- package/esm/contracts/result/base-report.type.d.mts +1 -1
- package/esm/contracts/result/base-report.type.d.mts.map +1 -1
- package/esm/contracts/result/base-report.type.mjs.map +1 -1
- package/esm/contracts/sdk-adapter.contract.d.mts +37 -0
- package/esm/contracts/sdk-adapter.contract.d.mts.map +1 -1
- package/esm/contracts/speech-model.contract.d.mts +97 -0
- package/esm/contracts/speech-model.contract.d.mts.map +1 -0
- package/esm/contracts/transcription-model.contract.d.mts +101 -0
- package/esm/contracts/transcription-model.contract.d.mts.map +1 -0
- package/esm/errors/agent-drift-error.d.mts +32 -0
- package/esm/errors/agent-drift-error.d.mts.map +1 -0
- package/esm/errors/agent-drift-error.mjs +31 -0
- package/esm/errors/agent-drift-error.mjs.map +1 -0
- package/esm/errors/error-code.type.d.mts +1 -1
- package/esm/errors/index.d.mts +2 -0
- package/esm/errors/index.mjs +2 -0
- package/esm/errors/planner-drift-error.d.mts +34 -0
- package/esm/errors/planner-drift-error.d.mts.map +1 -0
- package/esm/errors/planner-drift-error.mjs +33 -0
- package/esm/errors/planner-drift-error.mjs.map +1 -0
- package/esm/image/image-cost.d.mts +32 -0
- package/esm/image/image-cost.d.mts.map +1 -0
- package/esm/image/image-cost.mjs +55 -0
- package/esm/image/image-cost.mjs.map +1 -0
- package/esm/image/image.d.mts +92 -0
- package/esm/image/image.d.mts.map +1 -0
- package/esm/image/image.mjs +113 -0
- package/esm/image/image.mjs.map +1 -0
- package/esm/image/index.mjs +4 -0
- package/esm/index.d.mts +26 -4
- package/esm/index.mjs +20 -1
- package/esm/mock/index.d.mts +3 -0
- package/esm/mock/index.mjs +3 -0
- package/esm/mock/mock-config.type.d.mts +22 -0
- package/esm/mock/mock-config.type.d.mts.map +1 -1
- package/esm/mock/mock-image-model.d.mts +41 -0
- package/esm/mock/mock-image-model.d.mts.map +1 -0
- package/esm/mock/mock-image-model.mjs +52 -0
- package/esm/mock/mock-image-model.mjs.map +1 -0
- package/esm/mock/mock-sdk.d.mts +7 -1
- package/esm/mock/mock-sdk.d.mts.map +1 -1
- package/esm/mock/mock-sdk.mjs +27 -0
- package/esm/mock/mock-sdk.mjs.map +1 -1
- package/esm/mock/mock-speech-model.d.mts +31 -0
- package/esm/mock/mock-speech-model.d.mts.map +1 -0
- package/esm/mock/mock-speech-model.mjs +39 -0
- package/esm/mock/mock-speech-model.mjs.map +1 -0
- package/esm/mock/mock-transcription-model.d.mts +32 -0
- package/esm/mock/mock-transcription-model.d.mts.map +1 -0
- package/esm/mock/mock-transcription-model.mjs +36 -0
- package/esm/mock/mock-transcription-model.mjs.map +1 -0
- package/esm/planner/planner-run.d.mts +8 -0
- package/esm/planner/planner-run.d.mts.map +1 -1
- package/esm/planner/planner-run.mjs +161 -6
- package/esm/planner/planner-run.mjs.map +1 -1
- package/esm/planner/planner.d.mts.map +1 -1
- package/esm/planner/planner.mjs +25 -1
- package/esm/planner/planner.mjs.map +1 -1
- package/esm/planner/snapshot.mjs +95 -0
- package/esm/planner/snapshot.mjs.map +1 -0
- package/esm/rag/index.d.mts +7 -0
- package/esm/rag/index.mjs +7 -0
- package/esm/rag/loaders/errors.d.mts +19 -0
- package/esm/rag/loaders/errors.d.mts.map +1 -0
- package/esm/rag/loaders/errors.mjs +25 -0
- package/esm/rag/loaders/errors.mjs.map +1 -0
- package/esm/rag/loaders/index.mjs +7 -0
- package/esm/rag/loaders/load-html.d.mts +26 -0
- package/esm/rag/loaders/load-html.d.mts.map +1 -0
- package/esm/rag/loaders/load-html.mjs +138 -0
- package/esm/rag/loaders/load-html.mjs.map +1 -0
- package/esm/rag/loaders/load-pdf.d.mts +38 -0
- package/esm/rag/loaders/load-pdf.d.mts.map +1 -0
- package/esm/rag/loaders/load-pdf.mjs +150 -0
- package/esm/rag/loaders/load-pdf.mjs.map +1 -0
- package/esm/rag/loaders/load-text.d.mts +47 -0
- package/esm/rag/loaders/load-text.d.mts.map +1 -0
- package/esm/rag/loaders/load-text.mjs +60 -0
- package/esm/rag/loaders/load-text.mjs.map +1 -0
- package/esm/rag/loaders/load-web.d.mts +42 -0
- package/esm/rag/loaders/load-web.d.mts.map +1 -0
- package/esm/rag/loaders/load-web.mjs +89 -0
- package/esm/rag/loaders/load-web.mjs.map +1 -0
- package/esm/rag/loaders/loader.type.d.mts +89 -0
- package/esm/rag/loaders/loader.type.d.mts.map +1 -0
- package/esm/rag/store/pg-vector-store.d.mts +139 -0
- package/esm/rag/store/pg-vector-store.d.mts.map +1 -0
- package/esm/rag/store/pg-vector-store.mjs +328 -0
- package/esm/rag/store/pg-vector-store.mjs.map +1 -0
- package/esm/speech/index.mjs +3 -0
- package/esm/speech/speech.d.mts +65 -0
- package/esm/speech/speech.d.mts.map +1 -0
- package/esm/speech/speech.mjs +123 -0
- package/esm/speech/speech.mjs.map +1 -0
- package/esm/supervisor/entries.mjs +2 -2
- package/esm/supervisor/entries.mjs.map +1 -1
- package/esm/transcribe/audio-input.d.mts +47 -0
- package/esm/transcribe/audio-input.d.mts.map +1 -0
- package/esm/transcribe/audio-input.mjs +84 -0
- package/esm/transcribe/audio-input.mjs.map +1 -0
- package/esm/transcribe/index.mjs +4 -0
- package/esm/transcribe/transcribe.d.mts +64 -0
- package/esm/transcribe/transcribe.d.mts.map +1 -0
- package/esm/transcribe/transcribe.mjs +128 -0
- package/esm/transcribe/transcribe.mjs.map +1 -0
- package/llms-full.txt +753 -0
- package/llms.txt +5 -0
- package/package.json +3 -3
- package/skills/README.md +4 -0
- package/skills/durable-agent-runs/SKILL.md +135 -0
- package/skills/generate-images/SKILL.md +138 -0
- package/skills/generate-speech/SKILL.md +139 -0
- package/skills/rag-loaders-and-stores/SKILL.md +164 -0
- package/skills/transcribe-audio/SKILL.md +157 -0
- package/cjs/src-C02yzsLs.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,20 @@ All notable changes to `@warlock.js/ai` are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). `@warlock.js/*` packages are released in lockstep — every package shares the same version number, so a version below may list only the changes that affected this package.
|
|
6
6
|
|
|
7
|
+
## 4.6.0
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`ai.image(params)`** — image generation, the first verb of the output-modality track (Theme I). Wraps an `ImageModelContract` in the uniform never-throws `{ data, error, usage, report }` envelope, with cost-truth (per-token for `gpt-image`, per-image for DALL·E / Imagen) folded into the same `Usage.cost` rollup and a `type: "image"` report routed to observers. Ships on the OpenAI + Google adapters.
|
|
12
|
+
- **`SDKAdapterContract.image?(config)`** — the image-model capability seam, mirroring `embedder?()`. Adds `ImageModelContract`, `GeneratedImage` (discriminated `base64` | `url`), `ImageModelPricing`, and `ImageGenerationOptions`.
|
|
13
|
+
- **`MockSDK().image(...)` + `MockImageModel`** — deterministic image doubles (scriptable responses, recorded calls, pricing) for tests.
|
|
14
|
+
- **`ai.speech(params)` + `ai.transcribe(params)`** — text-to-speech and speech-to-text, the audio verbs of the modality track. Same uniform never-throws envelope + cost-truth (per-character / per-minute / per-token). New `SpeechModelContract` / `TranscriptionModelContract` on `SDKAdapterContract.speech?()` / `transcribe?()`, plus `MockSpeechModel` / `MockTranscriptionModel`.
|
|
15
|
+
- **`ai.audioFromFile(path)` / `ai.audioFromBuffer(bytes, mediaType)` / `ai.audioMediaTypeForFilename(name)`** — non-AI utilities that package audio (WhatsApp `.ogg`/`.opus`, iOS `.m4a`, …) into the `AudioInput` shape `ai.transcribe` consumes.
|
|
16
|
+
- **`ai.rag.pgVectorStore({ client })`** — a Postgres + pgvector vector store satisfying `VectorStoreContract` (upsert / query / removeNamespace), with an `ensureSchema()` DDL helper and a lazy `pg` optional peer.
|
|
17
|
+
- **`ai.rag.loadText` / `loadHtml` / `loadWeb` / `loadPdf`** — document loaders producing `RagDocument`s for `.index()`. `loadWeb` is SSRF-safe (routes through `guardedFetch` / `OutboundPolicy`); `loadPdf` uses a lazy `pdf-parse` optional peer.
|
|
18
|
+
- **Durable mid-run crash-resume** — opt-in `durable: { store, deleteOnComplete? }` on `ai.agent` / `ai.planner` with a stable `runId` + `agent.resume(runId)` / `planner.resume(runId)`. Per-trip (agent) / per-node (planner) checkpoints reuse `ai.snapshot.{memory,pg,redis}`; drift detection via `AgentDriftError` / `PlannerDriftError` (bypass with `{ force: true }`); completed work never re-runs its tools and usage is never double-counted.
|
|
19
|
+
- **`ai.rag.*` namespace** now also carries `chunk`, `cacheVectorStore`, `pgVectorStore`, `loadText`/`loadHtml`/`loadWeb`/`loadPdf`, `bm25Rank`, `reciprocalRankFusion`, `hybridRank`, `multiQuery` (previously standalone-only exports), for `ai.*`-namespace consistency.
|
|
20
|
+
|
|
7
21
|
## 4.5.0 - 2026-07-01
|
|
8
22
|
|
|
9
23
|
### Added
|
package/cjs/index.cjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_src = require('./src-
|
|
2
|
+
const require_src = require('./src-OZyDYHxm.cjs');
|
|
3
3
|
const require_matcher_logic = require('./matcher-logic-SBnzYohQ.cjs');
|
|
4
4
|
|
|
5
5
|
exports.AIError = require_src.AIError;
|
|
6
6
|
exports.AgentCancelledError = require_src.AgentCancelledError;
|
|
7
|
+
exports.AgentDriftError = require_src.AgentDriftError;
|
|
7
8
|
exports.AgentExecutionError = require_src.AgentExecutionError;
|
|
8
9
|
exports.AgentMaxTripsError = require_src.AgentMaxTripsError;
|
|
9
10
|
exports.ApprovalRejectedError = require_src.ApprovalRejectedError;
|
|
@@ -20,9 +21,12 @@ exports.InvalidRequestError = require_src.InvalidRequestError;
|
|
|
20
21
|
exports.JUDGE_DEFAULT_REPAIR_ATTEMPTS = require_src.JUDGE_DEFAULT_REPAIR_ATTEMPTS;
|
|
21
22
|
exports.MaxIterationsError = require_src.MaxIterationsError;
|
|
22
23
|
exports.MaxStepsExceededError = require_src.MaxStepsExceededError;
|
|
24
|
+
exports.MockImageModel = require_src.MockImageModel;
|
|
23
25
|
exports.MockModel = require_src.MockModel;
|
|
24
26
|
exports.MockSDK = require_src.MockSDK;
|
|
25
27
|
exports.MockSkillsStore = require_src.MockSkillsStore;
|
|
28
|
+
exports.MockSpeechModel = require_src.MockSpeechModel;
|
|
29
|
+
exports.MockTranscriptionModel = require_src.MockTranscriptionModel;
|
|
26
30
|
exports.OPENAI_INSTALL_INSTRUCTIONS = require_src.OPENAI_INSTALL_INSTRUCTIONS;
|
|
27
31
|
exports.OrchestratorCancelledError = require_src.OrchestratorCancelledError;
|
|
28
32
|
exports.OrchestratorConfigError = require_src.OrchestratorConfigError;
|
|
@@ -31,8 +35,10 @@ exports.OrchestratorEmitter = require_src.OrchestratorEmitter;
|
|
|
31
35
|
exports.OrchestratorExecution = require_src.OrchestratorExecution;
|
|
32
36
|
exports.OrchestratorFailedError = require_src.OrchestratorFailedError;
|
|
33
37
|
exports.OutboundPolicyError = require_src.OutboundPolicyError;
|
|
38
|
+
exports.PDF_PARSE_INSTALL_INSTRUCTIONS = require_src.PDF_PARSE_INSTALL_INSTRUCTIONS;
|
|
34
39
|
exports.Persona = require_src.Persona;
|
|
35
40
|
exports.PlannerCancelledError = require_src.PlannerCancelledError;
|
|
41
|
+
exports.PlannerDriftError = require_src.PlannerDriftError;
|
|
36
42
|
exports.PlannerFailedError = require_src.PlannerFailedError;
|
|
37
43
|
exports.PlannerPlanInvalidError = require_src.PlannerPlanInvalidError;
|
|
38
44
|
exports.PromptNotFoundError = require_src.PromptNotFoundError;
|
|
@@ -65,6 +71,9 @@ exports.agent = require_src.agent;
|
|
|
65
71
|
exports.ai = require_src.ai;
|
|
66
72
|
exports.approximateTokenCount = require_src.approximateTokenCount;
|
|
67
73
|
exports.assertUrlAllowed = require_src.assertUrlAllowed;
|
|
74
|
+
exports.audioFromBuffer = require_src.audioFromBuffer;
|
|
75
|
+
exports.audioFromFile = require_src.audioFromFile;
|
|
76
|
+
exports.audioMediaTypeForFilename = require_src.audioMediaTypeForFilename;
|
|
68
77
|
exports.batch = require_src.batch;
|
|
69
78
|
exports.bm25Rank = require_src.bm25Rank;
|
|
70
79
|
exports.budget = require_src.budget;
|
|
@@ -80,6 +89,7 @@ exports.chunk = require_src.chunk;
|
|
|
80
89
|
exports.collectStreamObject = require_src.collectStreamObject;
|
|
81
90
|
exports.composeMiddleware = require_src.composeMiddleware;
|
|
82
91
|
exports.computeCost = require_src.computeCost;
|
|
92
|
+
exports.computeImageCost = require_src.computeImageCost;
|
|
83
93
|
exports.computeOrchestratorSignature = require_src.computeOrchestratorSignature;
|
|
84
94
|
exports.computePlannerSignature = require_src.computeSignature$1;
|
|
85
95
|
exports.computeSignature = require_src.computeSignature;
|
|
@@ -118,6 +128,7 @@ exports.guardrail = require_src.guardrail;
|
|
|
118
128
|
exports.hashRequest = require_src.hashRequest;
|
|
119
129
|
exports.humanApproval = require_src.humanApproval;
|
|
120
130
|
exports.hybridRank = require_src.hybridRank;
|
|
131
|
+
exports.image = require_src.image;
|
|
121
132
|
exports.inProcessSessionLock = require_src.inProcessSessionLock;
|
|
122
133
|
exports.injectOrchestratorMemories = require_src.injectMemories;
|
|
123
134
|
exports.injection = require_src.injection;
|
|
@@ -131,9 +142,13 @@ exports.isPrivateOrReservedIp = require_src.isPrivateOrReservedIp;
|
|
|
131
142
|
exports.judge = require_src.judge;
|
|
132
143
|
exports.keywordReranker = require_src.keywordReranker;
|
|
133
144
|
exports.llmReranker = require_src.llmReranker;
|
|
145
|
+
exports.loadHtml = require_src.loadHtml;
|
|
146
|
+
exports.loadPdf = require_src.loadPdf;
|
|
134
147
|
exports.loadRecord = require_src.loadRecord;
|
|
135
148
|
exports.loadSkillTool = require_src.loadSkillTool;
|
|
136
149
|
exports.loadSupervisorSnapshotForResume = require_src.loadSnapshotForResume;
|
|
150
|
+
exports.loadText = require_src.loadText;
|
|
151
|
+
exports.loadWeb = require_src.loadWeb;
|
|
137
152
|
exports.matchConverge = require_matcher_logic.matchConverge;
|
|
138
153
|
exports.matchOutputShape = require_matcher_logic.matchOutputShape;
|
|
139
154
|
exports.matchPassStep = require_matcher_logic.matchPassStep;
|
|
@@ -157,6 +172,7 @@ exports.parsePartialJson = require_src.parsePartialJson;
|
|
|
157
172
|
exports.parseTags = require_src.parseTags;
|
|
158
173
|
exports.persistSupervisorSnapshot = require_src.persistSupervisorSnapshot;
|
|
159
174
|
exports.persona = require_src.persona;
|
|
175
|
+
exports.pgVectorStore = require_src.pgVectorStore;
|
|
160
176
|
exports.pii = require_src.pii;
|
|
161
177
|
exports.planSchema = require_src.planSchema;
|
|
162
178
|
exports.planner = require_src.planner;
|
|
@@ -208,6 +224,7 @@ exports.snapshotMemory = require_src.memory;
|
|
|
208
224
|
exports.snapshotPg = require_src.pg;
|
|
209
225
|
exports.snapshotRedis = require_src.redis;
|
|
210
226
|
exports.spawnSubAgent = require_src.spawnSubAgent;
|
|
227
|
+
exports.speech = require_src.speech;
|
|
211
228
|
exports.stampReportLineage = require_src.stampReportLineage;
|
|
212
229
|
exports.step = require_src.step;
|
|
213
230
|
exports.storeSource = require_src.storeSource;
|
|
@@ -222,8 +239,10 @@ exports.toJSON = require_src.toJSON;
|
|
|
222
239
|
exports.toJUnit = require_src.toJUnit;
|
|
223
240
|
exports.tool = require_src.tool;
|
|
224
241
|
exports.topic = require_src.topic;
|
|
242
|
+
exports.transcribe = require_src.transcribe;
|
|
225
243
|
exports.urlSource = require_src.urlSource;
|
|
226
244
|
exports.vcr = require_src.vcr;
|
|
245
|
+
exports.vectorLiteral = require_src.vectorLiteral;
|
|
227
246
|
exports.withRunFrame = require_src.withRunFrame;
|
|
228
247
|
exports.withoutRunFrame = require_src.withoutRunFrame;
|
|
229
248
|
exports.workflow = require_src.workflow;
|
|
@@ -25,6 +25,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
}) : target, mod));
|
|
26
26
|
|
|
27
27
|
//#endregion
|
|
28
|
-
require('./src-
|
|
28
|
+
require('./src-OZyDYHxm.cjs');
|
|
29
29
|
let _warlock_js_logger = require("@warlock.js/logger");
|
|
30
30
|
require("openai");
|