@happyvertical/smrt-core 0.51.29 → 0.51.31
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/agents/schema-paths.md +9 -0
- package/dist/class.d.ts +24 -0
- package/dist/class.d.ts.map +1 -1
- package/dist/class.js +55 -0
- package/dist/class.js.map +1 -1
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +5 -1
- package/dist/collection.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/decisions.d.ts +74 -0
- package/dist/decisions.d.ts.map +1 -0
- package/dist/decisions.js +8 -0
- package/dist/decisions.js.map +1 -0
- package/dist/generators/custom-action.d.ts.map +1 -1
- package/dist/generators/custom-action.js +2 -1
- package/dist/generators/custom-action.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/manifest/static-manifest.d.ts.map +1 -1
- package/dist/manifest/static-manifest.js +17 -1
- package/dist/manifest/static-manifest.js.map +1 -1
- package/dist/manifest/store.js +1 -1
- package/dist/manifest/store.js.map +1 -1
- package/dist/manifest.json +20 -1
- package/dist/migrations/differ.d.ts +43 -1
- package/dist/migrations/differ.d.ts.map +1 -1
- package/dist/migrations/differ.js +69 -0
- package/dist/migrations/differ.js.map +1 -1
- package/dist/object.d.ts +11 -0
- package/dist/object.d.ts.map +1 -1
- package/dist/object.js +107 -2
- package/dist/object.js.map +1 -1
- package/dist/registry/shared-state.js +1 -1
- package/dist/schema/bounded-concurrency.d.ts +31 -0
- package/dist/schema/bounded-concurrency.d.ts.map +1 -0
- package/dist/schema/bounded-concurrency.js +43 -0
- package/dist/schema/bounded-concurrency.js.map +1 -0
- package/dist/schema/foreign-key-orphan-report.d.ts +21 -0
- package/dist/schema/foreign-key-orphan-report.d.ts.map +1 -1
- package/dist/schema/foreign-key-orphan-report.js +90 -55
- package/dist/schema/foreign-key-orphan-report.js.map +1 -1
- package/dist/smrt-knowledge.json +15 -5
- package/package.json +10 -10
package/dist/object.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AITextCompletionOptions, AITool } from '@happyvertical/ai';
|
|
2
2
|
import { SmrtClassOptions, SmrtClass } from './class';
|
|
3
3
|
import { DatabaseErrorClassification } from './db-errors';
|
|
4
|
+
import { EvaluateOptions, EvaluationResult } from './decisions';
|
|
4
5
|
import { GenerateEmbeddingsOptions } from './embeddings/types';
|
|
5
6
|
import { ToolCall, ToolCallResult } from './tools/tool-executor';
|
|
6
7
|
/** Optional optimistic-concurrency guard for persisted-object saves. */
|
|
@@ -934,6 +935,16 @@ export declare class SmrtObject extends SmrtClass {
|
|
|
934
935
|
* @see {@link do} for open-ended instructions instead of boolean checks
|
|
935
936
|
*/
|
|
936
937
|
is(criteria: string, options?: AiOperationOptions): Promise<any>;
|
|
938
|
+
/**
|
|
939
|
+
* Evaluate criteria with an optional typed-decision provider and return the
|
|
940
|
+
* detailed route result. No configured decision provider uses the existing
|
|
941
|
+
* generative route, but its response is strict because this is a new API.
|
|
942
|
+
*
|
|
943
|
+
* Registered tools always select the generative route: typed decisions do
|
|
944
|
+
* not implement tool calling and SMRT must never silently discard tools.
|
|
945
|
+
*/
|
|
946
|
+
evaluate(criteria: string, options?: EvaluateOptions): Promise<EvaluationResult>;
|
|
947
|
+
private evaluateWithGenerativeClient;
|
|
937
948
|
/**
|
|
938
949
|
* Performs a freeform operation on this object using AI instructions.
|
|
939
950
|
*
|
package/dist/object.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAYzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAOpC,OAAO,EAGL,KAAK,2BAA2B,EACjC,MAAM,aAAa,CAAC;AAWrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AA0BpE,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"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"}
|
package/dist/object.js
CHANGED
|
@@ -10,6 +10,7 @@ import { CHANGE_FEED_WAS_PERSISTED_KEY, recordInstanceChange } from "./change-fe
|
|
|
10
10
|
import { SmrtClass } from "./class.js";
|
|
11
11
|
import { EmbeddingProvider } from "./embeddings/provider.js";
|
|
12
12
|
import { EmbeddingStorage } from "./embeddings/storage.js";
|
|
13
|
+
import { assertFiniteUnitInterval } from "./decisions.js";
|
|
13
14
|
import { ContentHasher } from "./embeddings/hash.js";
|
|
14
15
|
import { getBoxedPrimitiveKind, isRawJSON } from "./plain-json.js";
|
|
15
16
|
import { isBatchSafeValidator } from "./registry/validator.js";
|
|
@@ -39,6 +40,9 @@ function isDuckDbHugeInt(value) {
|
|
|
39
40
|
return Boolean(value && typeof value === "object" && "hugeint" in value && (typeof value.hugeint === "number" || typeof value.hugeint === "bigint"));
|
|
40
41
|
}
|
|
41
42
|
var PLAIN_JSON_OMITTED = Symbol("plain-json-omitted");
|
|
43
|
+
function asDecisionRecord(value) {
|
|
44
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
45
|
+
}
|
|
42
46
|
/**
|
|
43
47
|
* Materialize the values JSON.stringify() would emit without first encoding
|
|
44
48
|
* them into a string. This keeps toPlainObject() suitable for SvelteKit while
|
|
@@ -1945,10 +1949,20 @@ var SmrtObject = class SmrtObject extends SmrtClass {
|
|
|
1945
1949
|
* @see {@link do} for open-ended instructions instead of boolean checks
|
|
1946
1950
|
*/
|
|
1947
1951
|
async is(criteria, options = {}) {
|
|
1952
|
+
const tools = this.getAvailableTools();
|
|
1953
|
+
const hasConfiguredDecisions = this.options.decisions !== void 0 || this.getDecisionConfig() !== void 0;
|
|
1954
|
+
if (tools.length === 0 && await this.getDecisionClient()) return (await this.evaluate(criteria, {
|
|
1955
|
+
...options,
|
|
1956
|
+
generativeModel: options.model
|
|
1957
|
+
})).result;
|
|
1948
1958
|
const ai = await this.getAiClient();
|
|
1949
|
-
const { maxDataLength, includeData, ...
|
|
1959
|
+
const { maxDataLength, includeData, ...legacyAiOptions } = options ?? {};
|
|
1960
|
+
let aiOptions = legacyAiOptions;
|
|
1961
|
+
if (tools.length > 0 && hasConfiguredDecisions) {
|
|
1962
|
+
const { threshold: _threshold, uncertaintyFallback: _uncertaintyFallback, generativeModel: _generativeModel, ...generationOptions } = aiOptions;
|
|
1963
|
+
aiOptions = generationOptions;
|
|
1964
|
+
}
|
|
1950
1965
|
const prompt = `${this.buildAiContentSection(includeData, maxDataLength)}--- Beginning of criteria ---\n${criteria}\n--- End of criteria ---\nDoes the content meet all the given criteria? Reply with a json object with a single boolean 'result' property`;
|
|
1951
|
-
const tools = this.getAvailableTools();
|
|
1952
1966
|
const message = await ai.message(prompt, {
|
|
1953
1967
|
...aiOptions,
|
|
1954
1968
|
responseFormat: { type: "json_object" },
|
|
@@ -1962,6 +1976,97 @@ var SmrtObject = class SmrtObject extends SmrtClass {
|
|
|
1962
1976
|
}
|
|
1963
1977
|
}
|
|
1964
1978
|
/**
|
|
1979
|
+
* Evaluate criteria with an optional typed-decision provider and return the
|
|
1980
|
+
* detailed route result. No configured decision provider uses the existing
|
|
1981
|
+
* generative route, but its response is strict because this is a new API.
|
|
1982
|
+
*
|
|
1983
|
+
* Registered tools always select the generative route: typed decisions do
|
|
1984
|
+
* not implement tool calling and SMRT must never silently discard tools.
|
|
1985
|
+
*/
|
|
1986
|
+
async evaluate(criteria, options = {}) {
|
|
1987
|
+
if (this.getAvailableTools().length > 0) return this.evaluateWithGenerativeClient(criteria, options);
|
|
1988
|
+
const decision = await this.getDecisionClient();
|
|
1989
|
+
const config = this.getDecisionConfig();
|
|
1990
|
+
const threshold = options.threshold ?? config?.threshold ?? .5;
|
|
1991
|
+
assertFiniteUnitInterval(threshold, "Decision threshold");
|
|
1992
|
+
const configuredFallback = options.uncertaintyFallback === false ? void 0 : options.uncertaintyFallback ?? config?.uncertaintyFallback;
|
|
1993
|
+
if (configuredFallback) assertFiniteUnitInterval(configuredFallback.band, "Decision uncertainty fallback band");
|
|
1994
|
+
if (!decision) return this.evaluateWithGenerativeClient(criteria, options);
|
|
1995
|
+
if ((await decision.getCapabilities?.())?.decisions !== true || typeof decision.decide !== "function") throw new Error("The configured decision client does not support typed decisions.");
|
|
1996
|
+
const result = asDecisionRecord(await decision.decide({
|
|
1997
|
+
state: options.includeData === false ? {} : { content: this.serializeForAiPrompt(options.maxDataLength) },
|
|
1998
|
+
questions: { result: {
|
|
1999
|
+
type: "predicate",
|
|
2000
|
+
instructions: criteria
|
|
2001
|
+
} }
|
|
2002
|
+
}, {
|
|
2003
|
+
model: options.model,
|
|
2004
|
+
signal: options.signal,
|
|
2005
|
+
timeout: options.timeout,
|
|
2006
|
+
usageTags: {
|
|
2007
|
+
operation: "decision",
|
|
2008
|
+
className: this._className
|
|
2009
|
+
}
|
|
2010
|
+
}));
|
|
2011
|
+
const answer = asDecisionRecord(asDecisionRecord(result?.answers)?.result);
|
|
2012
|
+
if (answer?.type !== "predicate") throw new Error("Decision provider returned no predicate result.");
|
|
2013
|
+
const probability = answer.probability;
|
|
2014
|
+
assertFiniteUnitInterval(probability, "Decision probability");
|
|
2015
|
+
const provenance = asDecisionRecord(result?.provenance);
|
|
2016
|
+
if (!provenance || typeof provenance.provider !== "string" || typeof provenance.model !== "string") throw new Error("Decision provider returned invalid provenance.");
|
|
2017
|
+
await this.recordAiUsageEvent({
|
|
2018
|
+
provider: provenance.provider,
|
|
2019
|
+
model: provenance.model,
|
|
2020
|
+
operation: "decision",
|
|
2021
|
+
usage: result?.usage,
|
|
2022
|
+
tags: { operation: "decision" }
|
|
2023
|
+
}, provenance);
|
|
2024
|
+
const lowerUncertaintyBound = configuredFallback === void 0 ? void 0 : Math.max(0, threshold - configuredFallback.band);
|
|
2025
|
+
const upperUncertaintyBound = configuredFallback === void 0 ? void 0 : Math.min(1, threshold + configuredFallback.band);
|
|
2026
|
+
if (lowerUncertaintyBound !== void 0 && upperUncertaintyBound !== void 0 && probability >= lowerUncertaintyBound && probability <= upperUncertaintyBound) return {
|
|
2027
|
+
...await this.evaluateWithGenerativeClient(criteria, options),
|
|
2028
|
+
fallback: "generative",
|
|
2029
|
+
initialDecision: {
|
|
2030
|
+
probability,
|
|
2031
|
+
provenance: {
|
|
2032
|
+
provider: provenance.provider,
|
|
2033
|
+
model: provenance.model
|
|
2034
|
+
},
|
|
2035
|
+
usage: result?.usage
|
|
2036
|
+
}
|
|
2037
|
+
};
|
|
2038
|
+
return {
|
|
2039
|
+
result: probability >= threshold,
|
|
2040
|
+
probability,
|
|
2041
|
+
provenance: {
|
|
2042
|
+
provider: provenance.provider,
|
|
2043
|
+
model: provenance.model
|
|
2044
|
+
},
|
|
2045
|
+
usage: result?.usage,
|
|
2046
|
+
route: "decision"
|
|
2047
|
+
};
|
|
2048
|
+
}
|
|
2049
|
+
async evaluateWithGenerativeClient(criteria, options) {
|
|
2050
|
+
const ai = await this.getAiClient();
|
|
2051
|
+
const { maxDataLength, includeData, threshold, uncertaintyFallback, model: _decisionModel, generativeModel, ...aiOptions } = options;
|
|
2052
|
+
const prompt = `${this.buildAiContentSection(includeData, maxDataLength)}--- Beginning of criteria ---\n${criteria}\n--- End of criteria ---\nDoes the content meet all the given criteria? Reply with a json object with a single boolean 'result' property`;
|
|
2053
|
+
const tools = this.getAvailableTools();
|
|
2054
|
+
const message = await ai.message(prompt, {
|
|
2055
|
+
...aiOptions,
|
|
2056
|
+
...generativeModel ? { model: generativeModel } : {},
|
|
2057
|
+
responseFormat: { type: "json_object" },
|
|
2058
|
+
tools: tools.length > 0 ? tools : void 0
|
|
2059
|
+
});
|
|
2060
|
+
try {
|
|
2061
|
+
const { result } = JSON.parse(message);
|
|
2062
|
+
if (result === true || result === false) return {
|
|
2063
|
+
result,
|
|
2064
|
+
route: "generative"
|
|
2065
|
+
};
|
|
2066
|
+
} catch (_error) {}
|
|
2067
|
+
throw new Error("Unexpected answer from generative evaluation.");
|
|
2068
|
+
}
|
|
2069
|
+
/**
|
|
1965
2070
|
* Performs a freeform operation on this object using AI instructions.
|
|
1966
2071
|
*
|
|
1967
2072
|
* Injects the object's own public field data (via {@link toPublicJSON}, so
|