@mongrov/analytics 0.8.6 → 0.8.8
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/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -1
- package/dist/core/index.js.map +1 -1
- package/dist/tools/mcp/adapter.d.ts.map +1 -1
- package/dist/tools/mcp/adapter.js +9 -6
- package/dist/tools/mcp/adapter.js.map +1 -1
- package/dist/tools/wrap.d.ts +2 -2
- package/dist/tools/wrap.d.ts.map +1 -1
- package/dist/tools/wrap.js +35 -3
- package/dist/tools/wrap.js.map +1 -1
- package/package.json +3 -3
package/dist/core/index.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export { createSamplingResolver, fallbackSampling, minimumWindowMinutes, SAMPLIN
|
|
|
23
23
|
export type { EffectiveSampling, SamplingResolver, SamplingResolverConfig, } from './sampling';
|
|
24
24
|
export { baselineAggregateFor, BASELINE_MIN_DAYS, BASELINE_WINDOW_DAYS, getBaselineMetricIds, } from './metric_metadata';
|
|
25
25
|
export type { BaselineDailyAggregate, BaselineWindowDays, } from './metric_metadata';
|
|
26
|
-
export { dropViewDdl, generateViewDdl, VIEWED_TABLES, watermarkColumnFor, } from './schemas';
|
|
26
|
+
export { dropViewDdl, generateViewDdl, LOCAL_SCHEMAS, quoteQualifier, TABLE_NAMES, VIEWED_TABLES, watermarkColumnFor, } from './schemas';
|
|
27
27
|
export type { ViewedTable } from './schemas';
|
|
28
28
|
export type { AnalyticsAppender, AnalyticsConfig, AnalyticsEngine, AnalyticsLogger, AnalyticsState, AttachContext, EventBus, FamilyMembersProvider, Insight, InsightKind, InsightSeverity, KVStore, TenantScope, TokenContext, TokenResponse, TokenVendor, Unsubscribe, } from './types';
|
|
29
29
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAG3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjE,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAGvD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAKlD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAKzD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAKvE,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAG3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjE,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAGvD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAKlD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAKzD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAKvE,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAU1B,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,GACnB,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAG5C,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,SAAS,CAAA"}
|
package/dist/core/index.js
CHANGED
|
@@ -33,5 +33,11 @@ export { createSamplingResolver, fallbackSampling, minimumWindowMinutes, SAMPLIN
|
|
|
33
33
|
export { baselineAggregateFor, BASELINE_MIN_DAYS, BASELINE_WINDOW_DAYS, getBaselineMetricIds, } from './metric_metadata';
|
|
34
34
|
// Union views (Sprint 5 §3). Registry/rule/tool SQL targets `v_{table}`,
|
|
35
35
|
// never `local.{table}` or `r2.default.{table}` (principle 19).
|
|
36
|
-
|
|
36
|
+
//
|
|
37
|
+
// LOCAL_SCHEMAS / TABLE_NAMES are public so consumers can validate their own
|
|
38
|
+
// SQL against the real DDL. zivaone_app's registry selected a `value` column
|
|
39
|
+
// from spo2 — the column is `spo2` — and nothing caught it until DuckDB did,
|
|
40
|
+
// on a device. A consumer-side test needs the schema to check against, and
|
|
41
|
+
// reaching into dist/ to get it is worse than exporting it.
|
|
42
|
+
export { dropViewDdl, generateViewDdl, LOCAL_SCHEMAS, quoteQualifier, TABLE_NAMES, VIEWED_TABLES, watermarkColumnFor, } from './schemas';
|
|
37
43
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kCAAkC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAqB;AACrB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAOjE,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAG7C,SAAS;AACT,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAG9D,sEAAsE;AACtE,wEAAwE;AACxE,mDAAmD;AACnD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAG5E,sEAAsE;AACtE,oEAAoE;AACpE,8CAA8C;AAC9C,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AAOxB,2EAA2E;AAC3E,6DAA6D;AAC7D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mBAAmB,CAAA;AAO1B,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAG1C,uEAAuE;AACvE,yEAAyE;AACzE,yCAAyC;AACzC,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AAOnB,mCAAmC;AACnC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAM1B,yEAAyE;AACzE,gEAAgE;AAChE,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,kBAAkB,GACnB,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kCAAkC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAqB;AACrB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAOjE,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAG7C,SAAS;AACT,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAG9D,sEAAsE;AACtE,wEAAwE;AACxE,mDAAmD;AACnD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAG5E,sEAAsE;AACtE,oEAAoE;AACpE,8CAA8C;AAC9C,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AAOxB,2EAA2E;AAC3E,6DAA6D;AAC7D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mBAAmB,CAAA;AAO1B,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAG1C,uEAAuE;AACvE,yEAAyE;AACzE,yCAAyC;AACzC,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AAOnB,mCAAmC;AACnC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAM1B,yEAAyE;AACzE,gEAAgE;AAChE,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,4DAA4D;AAC5D,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,GACnB,MAAM,WAAW,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;QAClC,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;QACzC,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAC,CAAA;CACH;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,EAAE,CA6ClE"}
|
|
@@ -16,15 +16,18 @@
|
|
|
16
16
|
* documented defaults on `detectAnomaly.stddevThreshold` and
|
|
17
17
|
* `getInsights.days`.
|
|
18
18
|
*/
|
|
19
|
-
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
20
19
|
export function toMcpTools(handle) {
|
|
21
20
|
const entries = Object.entries(handle.tools);
|
|
22
21
|
return entries.map(([name, tool]) => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
// `makeTool` now hands the AI SDK a finished JSON Schema (see
|
|
23
|
+
// wrap.ts:toJsonSchema — the SDK's Zod path emits `type: "None"` for
|
|
24
|
+
// zod-4 schemas), so `tool.parameters` is a Schema wrapper carrying
|
|
25
|
+
// `.jsonSchema` rather than a Zod object. Read it straight through
|
|
26
|
+
// instead of converting a second time.
|
|
27
|
+
const rawSchema = {
|
|
28
|
+
...(tool.parameters
|
|
29
|
+
.jsonSchema ?? {}),
|
|
30
|
+
};
|
|
28
31
|
// Strip the top-level $schema marker — MCP clients don't need it,
|
|
29
32
|
// and its presence bloats every list_tools response.
|
|
30
33
|
const { $schema: _drop, ...inputSchema } = rawSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/tools/mcp/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/tools/mcp/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAcH,MAAM,UAAU,UAAU,CAAC,MAA4B;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAGxC,CAAA;IAEH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QAClC,8DAA8D;QAC9D,qEAAqE;QACrE,oEAAoE;QACpE,mEAAmE;QACnE,uCAAuC;QACvC,MAAM,SAAS,GAAG;YAChB,GAAG,CAAE,IAAI,CAAC,UAAkE;iBACzE,UAAU,IAAI,EAAE,CAAC;SACrB,CAAA;QAED,kEAAkE;QAClE,qDAAqD;QACrD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,SAAS,CAAA;QAEpD,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;YAClB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,WAAW;YACX,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,QAAQ,MAAM,CAAC,IAAI,CAAC,qBAAqB;6BAChD,CAAC;wBACF,OAAO,EAAE,IAAI;qBACd,CAAA;gBACH,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAa,EAAE;oBAC7C,UAAU,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE;oBACjC,QAAQ,EAAE,EAAE;iBACb,CAAC,CAAA;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;iBACzD,CAAA;YACH,CAAC;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/tools/wrap.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ export interface MakeToolConfig<Input> {
|
|
|
47
47
|
ctxProvider: () => ToolContext | null;
|
|
48
48
|
clock?: () => number;
|
|
49
49
|
}
|
|
50
|
-
export declare function makeTool<Input>(cfg: MakeToolConfig<Input>): import("ai").Tool<
|
|
51
|
-
execute: (args:
|
|
50
|
+
export declare function makeTool<Input>(cfg: MakeToolConfig<Input>): import("ai").Tool<import("ai").Schema<unknown>, string> & {
|
|
51
|
+
execute: (args: unknown, options: import("ai").ToolExecutionOptions) => PromiseLike<string>;
|
|
52
52
|
};
|
|
53
53
|
//# sourceMappingURL=wrap.d.ts.map
|
package/dist/tools/wrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/tools/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAA;AAOhB,MAAM,WAAW,cAAc,CAAC,KAAK;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,WAAW,EAAE,UAAU,CAAA;IACvB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrB,SAAS,EAAE,eAAe,CAAA;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IACrC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CACrB;
|
|
1
|
+
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/tools/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAA;AAOhB,MAAM,WAAW,cAAc,CAAC,KAAK;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,WAAW,EAAE,UAAU,CAAA;IACvB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrB,SAAS,EAAE,eAAe,CAAA;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IACrC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CACrB;AAmCD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC;;EAuHzD"}
|
package/dist/tools/wrap.js
CHANGED
|
@@ -17,18 +17,50 @@
|
|
|
17
17
|
* current `ToolContext` at invocation time (the factory backs this
|
|
18
18
|
* with a mutable container updated per request).
|
|
19
19
|
*/
|
|
20
|
-
import { tool } from 'ai';
|
|
20
|
+
import { jsonSchema, tool } from 'ai';
|
|
21
21
|
import { applyOutputBudget } from './budget';
|
|
22
22
|
const RATE_LIMIT_MESSAGE = 'Rate limit exceeded. Try again shortly.';
|
|
23
23
|
const AUTHZ_MESSAGE = 'Not authorized to access that user\'s data.';
|
|
24
24
|
const ERROR_MESSAGE = 'Tool call failed.';
|
|
25
25
|
const NO_CONTEXT_MESSAGE = 'Tool call failed: request context not set.';
|
|
26
|
+
/**
|
|
27
|
+
* Convert a Zod schema to plain JSON Schema for the AI SDK.
|
|
28
|
+
*
|
|
29
|
+
* The SDK's `tool({ parameters: zodSchema })` path converts using zod-3
|
|
30
|
+
* internals. Handed a zod-4 schema it emits `type: "None"`, and OpenAI
|
|
31
|
+
* rejects the whole request:
|
|
32
|
+
*
|
|
33
|
+
* AI_APICallError: Invalid schema for function 'getSpO2': schema must be a
|
|
34
|
+
* JSON Schema of 'type: "object"', got 'type: "None"'.
|
|
35
|
+
*
|
|
36
|
+
* Because tools are sent on every request, one bad schema breaks all chat —
|
|
37
|
+
* even a plain "hi" that needs no tool at all.
|
|
38
|
+
*
|
|
39
|
+
* This package supports zod 3 and 4 (`^3.23.8 || ^4.0.0`), so the consumer's
|
|
40
|
+
* version is not ours to pick. Converting here and passing `jsonSchema()`
|
|
41
|
+
* removes the coupling entirely: the SDK gets a finished JSON Schema and
|
|
42
|
+
* never inspects a Zod object.
|
|
43
|
+
*/
|
|
44
|
+
function toJsonSchema(schema) {
|
|
45
|
+
// zod 4 ships its own converter; zod 3 needs the companion package.
|
|
46
|
+
const z4 = schema._zod;
|
|
47
|
+
if (z4 !== undefined) {
|
|
48
|
+
// eslint-disable-next-line ts/no-require-imports
|
|
49
|
+
const zod = require('zod');
|
|
50
|
+
return jsonSchema(zod.toJSONSchema(schema));
|
|
51
|
+
}
|
|
52
|
+
// eslint-disable-next-line ts/no-require-imports
|
|
53
|
+
const { zodToJsonSchema } = require('zod-to-json-schema');
|
|
54
|
+
return jsonSchema(zodToJsonSchema(schema));
|
|
55
|
+
}
|
|
26
56
|
export function makeTool(cfg) {
|
|
27
57
|
const clock = cfg.clock ?? Date.now;
|
|
28
58
|
return tool({
|
|
29
59
|
description: cfg.description,
|
|
30
|
-
parameters: cfg.inputSchema,
|
|
31
|
-
execute: async (
|
|
60
|
+
parameters: toJsonSchema(cfg.inputSchema),
|
|
61
|
+
execute: async (rawInput) => {
|
|
62
|
+
// Validated against the JSON Schema by the SDK before we see it.
|
|
63
|
+
const input = rawInput;
|
|
32
64
|
const startMs = clock();
|
|
33
65
|
const ctx = cfg.ctxProvider();
|
|
34
66
|
// 0. Ctx guard — audit as error, no rate/auth/execute performed.
|
package/dist/tools/wrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/tools/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/tools/wrap.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongrov/analytics",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.8",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"description": "DuckDB + R2 Iceberg local analytics for @mongrov apps",
|
|
6
6
|
"license": "MIT",
|
|
@@ -107,8 +107,8 @@
|
|
|
107
107
|
"typescript": "^5.9.3",
|
|
108
108
|
"vitest": "^2.1.9",
|
|
109
109
|
"zod": "^3.23.8",
|
|
110
|
-
"@mongrov/
|
|
111
|
-
"@mongrov/
|
|
110
|
+
"@mongrov/db": "0.3.0",
|
|
111
|
+
"@mongrov/types": "0.5.1"
|
|
112
112
|
},
|
|
113
113
|
"scripts": {
|
|
114
114
|
"build": "tsc -p tsconfig.build.json",
|