@pfoundation/ocadvisor 26.9.1 → 26.9.3
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/README.md +444 -46
- package/dist/artificialAnalysis.d.ts +4 -0
- package/dist/artificialAnalysis.d.ts.map +1 -0
- package/dist/artificialAnalysis.js +77 -0
- package/dist/artificialAnalysis.js.map +1 -0
- package/dist/benchmarkConfig.d.ts +21 -0
- package/dist/benchmarkConfig.d.ts.map +1 -0
- package/dist/benchmarkConfig.js +59 -0
- package/dist/benchmarkConfig.js.map +1 -0
- package/dist/benchmarkEvidence.d.ts +37 -0
- package/dist/benchmarkEvidence.d.ts.map +1 -0
- package/dist/benchmarkEvidence.js +81 -0
- package/dist/benchmarkEvidence.js.map +1 -0
- package/dist/benchmarkMatch.d.ts +58 -0
- package/dist/benchmarkMatch.d.ts.map +1 -0
- package/dist/benchmarkMatch.js +259 -0
- package/dist/benchmarkMatch.js.map +1 -0
- package/dist/benchmarkStore.d.ts +45 -0
- package/dist/benchmarkStore.d.ts.map +1 -0
- package/dist/benchmarkStore.js +309 -0
- package/dist/benchmarkStore.js.map +1 -0
- package/dist/benchmarkTypes.d.ts +48 -0
- package/dist/benchmarkTypes.d.ts.map +1 -0
- package/dist/benchmarkTypes.js +298 -0
- package/dist/benchmarkTypes.js.map +1 -0
- package/dist/benchmarkUpdate.d.ts +33 -0
- package/dist/benchmarkUpdate.d.ts.map +1 -0
- package/dist/benchmarkUpdate.js +327 -0
- package/dist/benchmarkUpdate.js.map +1 -0
- package/dist/cli.d.ts +13 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +397 -0
- package/dist/cli.js.map +1 -0
- package/dist/data/artificialAnalysis.mappings.json +229 -0
- package/dist/data/artificialAnalysis.snapshot.json +17684 -0
- package/dist/modelProfiles.d.ts +45 -0
- package/dist/modelProfiles.d.ts.map +1 -0
- package/dist/modelProfiles.js +141 -0
- package/dist/modelProfiles.js.map +1 -0
- package/dist/ocAdvisor.d.ts +105 -5
- package/dist/ocAdvisor.d.ts.map +1 -1
- package/dist/ocAdvisor.js +534 -45
- package/dist/ocAdvisor.js.map +1 -1
- package/dist/typesafeGate.d.ts +96 -0
- package/dist/typesafeGate.d.ts.map +1 -0
- package/dist/typesafeGate.js +475 -0
- package/dist/typesafeGate.js.map +1 -0
- package/dist/typesafeState.d.ts +94 -0
- package/dist/typesafeState.d.ts.map +1 -0
- package/dist/typesafeState.js +301 -0
- package/dist/typesafeState.js.map +1 -0
- package/package.json +8 -2
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
export type RequesterProvenance = "invocation_message" | "latest_message" | "session_fallback" | "unknown";
|
|
3
|
+
export interface RequesterProfile {
|
|
4
|
+
providerID: string | null;
|
|
5
|
+
modelID: string | null;
|
|
6
|
+
variant: string | null;
|
|
7
|
+
provenance: RequesterProvenance;
|
|
8
|
+
}
|
|
9
|
+
export interface SessionModelRef {
|
|
10
|
+
providerID?: string;
|
|
11
|
+
provider?: string;
|
|
12
|
+
id?: string;
|
|
13
|
+
modelID?: string;
|
|
14
|
+
variant?: string;
|
|
15
|
+
}
|
|
16
|
+
export type AdvisorEffortPolicy = {
|
|
17
|
+
kind: "pinned";
|
|
18
|
+
effort: string;
|
|
19
|
+
} | {
|
|
20
|
+
kind: "candidates";
|
|
21
|
+
candidates: string[];
|
|
22
|
+
fallback: string | null;
|
|
23
|
+
} | {
|
|
24
|
+
kind: "fixed";
|
|
25
|
+
effort: string | null;
|
|
26
|
+
};
|
|
27
|
+
export interface AdvisorProfile {
|
|
28
|
+
providerID: string;
|
|
29
|
+
modelID: string;
|
|
30
|
+
policy: AdvisorEffortPolicy;
|
|
31
|
+
}
|
|
32
|
+
export declare function resolveRequesterProfile(db: InstanceType<typeof Database>, input: {
|
|
33
|
+
sessionId: string;
|
|
34
|
+
messageID?: string | null;
|
|
35
|
+
callID?: string | null;
|
|
36
|
+
sessionModel?: SessionModelRef | null;
|
|
37
|
+
}): RequesterProfile;
|
|
38
|
+
export declare function resolveAdvisorProfile(input: {
|
|
39
|
+
providerID: string;
|
|
40
|
+
modelID: string;
|
|
41
|
+
requestedEffort?: string;
|
|
42
|
+
supportedEfforts: string[];
|
|
43
|
+
defaultEffort?: string | null;
|
|
44
|
+
}): AdvisorProfile;
|
|
45
|
+
//# sourceMappingURL=modelProfiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelProfiles.d.ts","sourceRoot":"","sources":["../src/modelProfiles.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,mBAAmB,GAC7B,oBAAoB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AA+GD,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,EACjC,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACvC,GACA,gBAAgB,CA2BlB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,GAAG,cAAc,CAwBjB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
function clean(value) {
|
|
2
|
+
return typeof value === "string" ? value.trim() : "";
|
|
3
|
+
}
|
|
4
|
+
function parseModelShape(value) {
|
|
5
|
+
if (!value || typeof value !== "object")
|
|
6
|
+
return null;
|
|
7
|
+
const shape = value;
|
|
8
|
+
const providerID = clean(shape.providerID ?? shape.provider);
|
|
9
|
+
const modelID = clean(shape.id ?? shape.modelID);
|
|
10
|
+
if (!providerID || !modelID)
|
|
11
|
+
return null;
|
|
12
|
+
const variant = clean(shape.variant);
|
|
13
|
+
return { providerID, modelID, variant: variant ? variant : null };
|
|
14
|
+
}
|
|
15
|
+
function parseMessageData(raw) {
|
|
16
|
+
try {
|
|
17
|
+
const parsed = JSON.parse(raw);
|
|
18
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
19
|
+
return parsed;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch { }
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
function tableExists(db, name) {
|
|
26
|
+
try {
|
|
27
|
+
const row = db
|
|
28
|
+
.query("SELECT 1 AS ok FROM sqlite_master WHERE type = 'table' AND name = ?")
|
|
29
|
+
.get(name);
|
|
30
|
+
return Boolean(row);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// A call identifier pins the exact tool block when the message carries tool
|
|
37
|
+
// calls; messages without tool blocks (still streaming, older shapes) keep
|
|
38
|
+
// their message-level model either way.
|
|
39
|
+
function callMatchesMessage(data, callID) {
|
|
40
|
+
if (!Array.isArray(data.content))
|
|
41
|
+
return true;
|
|
42
|
+
const toolBlocks = data.content.filter((block) => !!block &&
|
|
43
|
+
typeof block === "object" &&
|
|
44
|
+
!Array.isArray(block) &&
|
|
45
|
+
block.type === "tool");
|
|
46
|
+
if (toolBlocks.length === 0)
|
|
47
|
+
return true;
|
|
48
|
+
return toolBlocks.some((block) => {
|
|
49
|
+
const id = clean(block.id ?? block.callID);
|
|
50
|
+
return id !== "" && id === callID;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function messageModel(db, sessionId, messageID, callID) {
|
|
54
|
+
try {
|
|
55
|
+
const row = db
|
|
56
|
+
.query("SELECT data FROM session_message WHERE id = ? AND session_id = ?")
|
|
57
|
+
.get(messageID, sessionId);
|
|
58
|
+
if (!row)
|
|
59
|
+
return null;
|
|
60
|
+
const data = parseMessageData(row.data);
|
|
61
|
+
if (!data)
|
|
62
|
+
return null;
|
|
63
|
+
if (callID && !callMatchesMessage(data, callID))
|
|
64
|
+
return null;
|
|
65
|
+
return parseModelShape(data.model);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Legacy databases without an id column fall through to the latest
|
|
69
|
+
// message scan below.
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function latestMessageModel(db, sessionId) {
|
|
74
|
+
try {
|
|
75
|
+
const rows = db
|
|
76
|
+
.query("SELECT data FROM session_message WHERE session_id = ? AND type = 'assistant' ORDER BY seq DESC LIMIT 8")
|
|
77
|
+
.all(sessionId);
|
|
78
|
+
for (const row of rows) {
|
|
79
|
+
const data = parseMessageData(row.data);
|
|
80
|
+
if (!data)
|
|
81
|
+
continue;
|
|
82
|
+
const model = parseModelShape(data.model);
|
|
83
|
+
if (model)
|
|
84
|
+
return model;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch { }
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
export function resolveRequesterProfile(db, input) {
|
|
91
|
+
const unknown = {
|
|
92
|
+
providerID: null,
|
|
93
|
+
modelID: null,
|
|
94
|
+
variant: null,
|
|
95
|
+
provenance: "unknown",
|
|
96
|
+
};
|
|
97
|
+
if (!tableExists(db, "session_message")) {
|
|
98
|
+
const fallback = parseModelShape(input.sessionModel ?? null);
|
|
99
|
+
return fallback ? { ...fallback, provenance: "session_fallback" } : unknown;
|
|
100
|
+
}
|
|
101
|
+
const messageID = clean(input.messageID ?? null);
|
|
102
|
+
const callID = clean(input.callID ?? null);
|
|
103
|
+
if (messageID) {
|
|
104
|
+
const direct = messageModel(db, input.sessionId, messageID, callID ? callID : null);
|
|
105
|
+
if (direct)
|
|
106
|
+
return { ...direct, provenance: "invocation_message" };
|
|
107
|
+
}
|
|
108
|
+
const latest = latestMessageModel(db, input.sessionId);
|
|
109
|
+
if (latest)
|
|
110
|
+
return { ...latest, provenance: "latest_message" };
|
|
111
|
+
const fallback = parseModelShape(input.sessionModel ?? null);
|
|
112
|
+
if (fallback)
|
|
113
|
+
return { ...fallback, provenance: "session_fallback" };
|
|
114
|
+
return unknown;
|
|
115
|
+
}
|
|
116
|
+
export function resolveAdvisorProfile(input) {
|
|
117
|
+
if (input.requestedEffort !== undefined) {
|
|
118
|
+
return {
|
|
119
|
+
providerID: input.providerID,
|
|
120
|
+
modelID: input.modelID,
|
|
121
|
+
policy: { kind: "pinned", effort: input.requestedEffort },
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
if (input.supportedEfforts.length > 0) {
|
|
125
|
+
return {
|
|
126
|
+
providerID: input.providerID,
|
|
127
|
+
modelID: input.modelID,
|
|
128
|
+
policy: {
|
|
129
|
+
kind: "candidates",
|
|
130
|
+
candidates: [...input.supportedEfforts],
|
|
131
|
+
fallback: input.defaultEffort ?? null,
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
providerID: input.providerID,
|
|
137
|
+
modelID: input.modelID,
|
|
138
|
+
policy: { kind: "fixed", effort: input.defaultEffort ?? null },
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=modelProfiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelProfiles.js","sourceRoot":"","sources":["../src/modelProfiles.ts"],"names":[],"mappings":"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"}
|
package/dist/ocAdvisor.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import type { BenchmarkPathOptions } from "./benchmarkConfig.js";
|
|
2
|
+
import { type EvidenceBenchmarks, type EvidenceModels } from "./benchmarkEvidence.js";
|
|
3
|
+
import type { MatchStatus } from "./benchmarkMatch.js";
|
|
4
|
+
import { type BenchmarkFileSystem, type BenchmarkView } from "./benchmarkStore.js";
|
|
5
|
+
import { type AdvisorProfile, type RequesterProfile } from "./modelProfiles.js";
|
|
6
|
+
import { type GateClient } from "./typesafeGate.js";
|
|
7
|
+
import { type NormalizedTypeSafeOptions, type TypeSafeConfig, type TypeSafeOptions, type TypeSafeSettings } from "./typesafeState.js";
|
|
1
8
|
interface AdvisorConfig {
|
|
2
9
|
provider: string;
|
|
3
10
|
model: string;
|
|
@@ -5,6 +12,11 @@ interface AdvisorConfig {
|
|
|
5
12
|
timeoutMs: number;
|
|
6
13
|
maxTranscriptChars: number;
|
|
7
14
|
agentEffort: string[] | null;
|
|
15
|
+
disabledForModels: string[];
|
|
16
|
+
benchmarks: BenchmarkPathOptions;
|
|
17
|
+
typesafeSource: NormalizedTypeSafeOptions;
|
|
18
|
+
typesafe: TypeSafeConfig;
|
|
19
|
+
typesafeSettings: TypeSafeSettings | null;
|
|
8
20
|
}
|
|
9
21
|
declare const DEFAULT_ADVISOR_CONFIG: AdvisorConfig;
|
|
10
22
|
declare function parseModelRef(ref: string): {
|
|
@@ -13,12 +25,39 @@ declare function parseModelRef(ref: string): {
|
|
|
13
25
|
variant?: string;
|
|
14
26
|
};
|
|
15
27
|
declare function resolveAdvisorConfig(options?: Record<string, unknown> | null, env?: Record<string, string | undefined>): AdvisorConfig;
|
|
16
|
-
declare const TOOL_DESCRIPTION = "Consult a senior advisor model with your full session transcript \u2014 including parent sessions for subagents \u2014 for high-quality analysis.\n\nUse advisor
|
|
28
|
+
declare const TOOL_DESCRIPTION = "Consult a senior advisor model with your full session transcript \u2014 including parent sessions for subagents \u2014 for high-quality analysis.\n\nUse advisor when an independent perspective could improve the approach, help resolve a problem, or strengthen an implementation review.\n\nOn substantial work, consider consulting before committing to an approach, when progress stalls, or before completing meaningful changes. Additional consultations are welcome as the work evolves \u2014 particularly when new evidence appears, the approach changes, or another concern needs review.\n\nAsk a concrete, focused question. Avoid repeating settled questions without new context. Straightforward tasks usually need no consultation.\n\nRules:\n- Always pass a concrete \"question\" naming the decision or artifact under review.\n- Reconcile an advisor conflict with primary-source evidence via one \"followup\" call stating both sides.\n- Give the advice serious weight. A passing self-test alone is not counter-evidence; primary-source evidence (the file says X) is. Clear factual corrections do not need another confirmation call.\n- When TypeSafe screening is enabled, a clearly unnecessary consultation returns a skip notice instead of advice, and an omitted effort may be chosen for you.\n\nArgs: \"mode\" (general, review, plan, debug), \"trigger\" (before_approach, stuck, pre_complete, followup, other), \"question\" (concrete question focusing the advisor).\n";
|
|
17
29
|
declare function buildToolDescription(config?: AdvisorConfig): string;
|
|
18
|
-
declare const CHECKPOINT_INSTRUCTION = "[advisor]
|
|
30
|
+
declare const CHECKPOINT_INSTRUCTION = "[advisor] Consult advisor when an independent perspective would improve the approach, help resolve a problem, or strengthen review. Use useful checkpoints during substantial work; additional consultations are welcome when evidence, approach, or concerns change. Ask a concrete question and avoid repeating settled questions without new context.";
|
|
19
31
|
declare const ADVISOR_TRIGGERS: readonly ["before_approach", "stuck", "pre_complete", "followup", "other"];
|
|
20
32
|
type AdvisorTrigger = (typeof ADVISOR_TRIGGERS)[number];
|
|
21
|
-
type AdvisorOutcome = "advisor_response" | "skipped_fable" | "error" | "no_transcript" | "no_session";
|
|
33
|
+
type AdvisorOutcome = "advisor_response" | "skipped_fable" | "skipped_model" | "skipped_typesafe" | "error" | "no_transcript" | "no_session";
|
|
34
|
+
interface GateRecord {
|
|
35
|
+
status: "bypass" | "skip" | "proceed" | "fallback" | "cancelled";
|
|
36
|
+
reason: string;
|
|
37
|
+
model: string | null;
|
|
38
|
+
neededProbability: number | null;
|
|
39
|
+
suggestedEffort: string | null;
|
|
40
|
+
effortConfidence: number | null;
|
|
41
|
+
effectiveEffort: string | null;
|
|
42
|
+
effortSource: "caller" | "typesafe" | "config" | null;
|
|
43
|
+
latencyMs: number;
|
|
44
|
+
stateBytes: number;
|
|
45
|
+
truncated: boolean;
|
|
46
|
+
inputTokens: number | null;
|
|
47
|
+
outputTokens: number | null;
|
|
48
|
+
}
|
|
49
|
+
interface BenchmarkMetricsSummary {
|
|
50
|
+
source: "user" | "seed" | "unavailable";
|
|
51
|
+
contentHash: string | null;
|
|
52
|
+
fetchedAt: string | null;
|
|
53
|
+
hashVerified: boolean;
|
|
54
|
+
requester: string | null;
|
|
55
|
+
requesterMatch: MatchStatus | null;
|
|
56
|
+
advisorPolicy: string | null;
|
|
57
|
+
advisorMatch: MatchStatus | null;
|
|
58
|
+
finalEffort: string | null;
|
|
59
|
+
finalMatch: MatchStatus | null;
|
|
60
|
+
}
|
|
22
61
|
declare function buildAdvisorInputSchema(config?: AdvisorConfig): {
|
|
23
62
|
type: string;
|
|
24
63
|
properties: {
|
|
@@ -82,6 +121,13 @@ interface V2PluginContext {
|
|
|
82
121
|
list?: Function;
|
|
83
122
|
};
|
|
84
123
|
};
|
|
124
|
+
model?: {
|
|
125
|
+
list?: Function;
|
|
126
|
+
};
|
|
127
|
+
provider?: {
|
|
128
|
+
get?: Function;
|
|
129
|
+
list?: Function;
|
|
130
|
+
};
|
|
85
131
|
integration?: {
|
|
86
132
|
connection?: {
|
|
87
133
|
active?: Function;
|
|
@@ -91,6 +137,24 @@ interface V2PluginContext {
|
|
|
91
137
|
get?: Function;
|
|
92
138
|
set?: Function;
|
|
93
139
|
};
|
|
140
|
+
__advisorTest?: {
|
|
141
|
+
gateClient?: GateClient;
|
|
142
|
+
gateEnv?: Record<string, string | undefined>;
|
|
143
|
+
gateFetch?: typeof fetch;
|
|
144
|
+
dbPath?: string;
|
|
145
|
+
metricsPath?: string;
|
|
146
|
+
profileSink?: (profiles: {
|
|
147
|
+
requester: RequesterProfile;
|
|
148
|
+
advisor: AdvisorProfile;
|
|
149
|
+
}) => void;
|
|
150
|
+
benchmarkStoreOptions?: {
|
|
151
|
+
env?: Record<string, string | undefined>;
|
|
152
|
+
fs?: BenchmarkFileSystem;
|
|
153
|
+
seedSnapshotPath?: string;
|
|
154
|
+
seedMappingsPath?: string;
|
|
155
|
+
maxBytes?: number;
|
|
156
|
+
};
|
|
157
|
+
};
|
|
94
158
|
}
|
|
95
159
|
declare function isFableModel(model: {
|
|
96
160
|
providerID?: string;
|
|
@@ -98,10 +162,23 @@ declare function isFableModel(model: {
|
|
|
98
162
|
id?: string;
|
|
99
163
|
modelID?: string;
|
|
100
164
|
} | null | undefined): boolean;
|
|
165
|
+
type AdvisorDisabledReason = {
|
|
166
|
+
outcome: "skipped_fable" | "skipped_model";
|
|
167
|
+
message: string;
|
|
168
|
+
};
|
|
169
|
+
declare function advisorDisabledReason(model: {
|
|
170
|
+
providerID?: string;
|
|
171
|
+
provider?: string;
|
|
172
|
+
id?: string;
|
|
173
|
+
modelID?: string;
|
|
174
|
+
variant?: string;
|
|
175
|
+
} | null | undefined, config: AdvisorConfig): AdvisorDisabledReason | null;
|
|
101
176
|
declare function inferTrigger(mode: string | undefined, trigger: string | undefined): AdvisorTrigger;
|
|
102
177
|
declare function resolveRequestedEffort(config: AdvisorConfig, value: unknown): string | undefined;
|
|
103
178
|
declare function classifyAdvisorError(message: string): string;
|
|
104
179
|
declare function isAdvisorToolName(name: unknown): boolean;
|
|
180
|
+
export declare function gateSummary(gate: GateRecord | null | undefined): string | null;
|
|
181
|
+
declare function formatV2Message(type: string, data: Record<string, any>): string | null;
|
|
105
182
|
declare function buildAdvisorPrompt(systemPrompt: string, transcript: string, question: string | undefined, priorNote: string | null): string;
|
|
106
183
|
declare function unwrapData<T>(value: T | {
|
|
107
184
|
data: T;
|
|
@@ -123,6 +200,7 @@ declare function isProviderUsable(provider: {
|
|
|
123
200
|
} | null | undefined): boolean;
|
|
124
201
|
declare function findAdvisorModel(models: CatalogModelRef[] | null | undefined, config?: AdvisorConfig): CatalogModelRef | null;
|
|
125
202
|
declare function resolveAdvisorVariant(model: CatalogModelRef | null | undefined, config?: AdvisorConfig, requestedVariant?: string): string | undefined;
|
|
203
|
+
declare function resolveSupportedEfforts(model: CatalogModelRef | null | undefined, config: AdvisorConfig): string[];
|
|
126
204
|
declare function hasAdvisorConnection(connection: unknown): boolean;
|
|
127
205
|
type AdvisorSupport = {
|
|
128
206
|
supported: true;
|
|
@@ -134,6 +212,28 @@ type AdvisorSupport = {
|
|
|
134
212
|
declare function checkAdvisorSupport(runtime: V2PluginContext, config?: AdvisorConfig, requestedVariant?: string): Promise<AdvisorSupport>;
|
|
135
213
|
declare function resetAdvisorSessionCache(): void;
|
|
136
214
|
declare function ensureAdvisorSession(runtime: V2PluginContext, variant: string | undefined, config?: AdvisorConfig): Promise<string>;
|
|
215
|
+
declare function resetBenchmarkStores(): void;
|
|
216
|
+
interface LoadedBenchmarkEvidence {
|
|
217
|
+
view: BenchmarkView;
|
|
218
|
+
evidence: {
|
|
219
|
+
models: EvidenceModels;
|
|
220
|
+
benchmarks: EvidenceBenchmarks;
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
declare function runAdvisor(opts: {
|
|
224
|
+
runtime: V2PluginContext | null | undefined;
|
|
225
|
+
sessionId?: string;
|
|
226
|
+
mode?: string;
|
|
227
|
+
trigger?: string;
|
|
228
|
+
question?: string;
|
|
229
|
+
effort?: unknown;
|
|
230
|
+
signal?: AbortSignal;
|
|
231
|
+
callerAgent?: string;
|
|
232
|
+
callerDirectory?: string;
|
|
233
|
+
callerMessageID?: string;
|
|
234
|
+
callerCallID?: string;
|
|
235
|
+
config?: AdvisorConfig;
|
|
236
|
+
}): Promise<string>;
|
|
137
237
|
export declare function setupOcAdvisorV2(ctx: V2PluginContext): Promise<(() => void) | void>;
|
|
138
238
|
declare const plugin: {
|
|
139
239
|
id: string;
|
|
@@ -144,6 +244,6 @@ export declare const OcAdvisorPluginV2: {
|
|
|
144
244
|
setup: typeof setupOcAdvisorV2;
|
|
145
245
|
};
|
|
146
246
|
export default plugin;
|
|
147
|
-
export { ADVISOR_TRIGGERS, CHECKPOINT_INSTRUCTION, DEFAULT_ADVISOR_CONFIG, TOOL_DESCRIPTION, buildAdvisorInputSchema, buildAdvisorPrompt, buildToolDescription, checkAdvisorSupport, classifyAdvisorError, ensureAdvisorSession, extractGeneratedText, findAdvisorModel, hasAdvisorConnection, inferTrigger, isAdvisorToolName, isFableModel, isProviderUsable, parseModelRef, resolveAdvisorConfig, resolveAdvisorVariant, resolveRequestedEffort, resetAdvisorSessionCache, unwrapData, withTimeout, };
|
|
148
|
-
export type { AdvisorConfig, AdvisorOutcome, AdvisorTrigger, V2PluginContext };
|
|
247
|
+
export { ADVISOR_TRIGGERS, CHECKPOINT_INSTRUCTION, DEFAULT_ADVISOR_CONFIG, TOOL_DESCRIPTION, buildAdvisorInputSchema, buildAdvisorPrompt, buildToolDescription, checkAdvisorSupport, classifyAdvisorError, ensureAdvisorSession, extractGeneratedText, findAdvisorModel, hasAdvisorConnection, advisorDisabledReason, inferTrigger, isAdvisorToolName, isFableModel, isProviderUsable, parseModelRef, resolveAdvisorConfig, resolveAdvisorVariant, resolveRequestedEffort, resolveSupportedEfforts, resetAdvisorSessionCache, resetBenchmarkStores, unwrapData, withTimeout, formatV2Message, runAdvisor, };
|
|
248
|
+
export type { AdvisorConfig, AdvisorOutcome, AdvisorTrigger, BenchmarkMetricsSummary, LoadedBenchmarkEvidence, V2PluginContext, TypeSafeOptions, };
|
|
149
249
|
//# sourceMappingURL=ocAdvisor.d.ts.map
|
package/dist/ocAdvisor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ocAdvisor.d.ts","sourceRoot":"","sources":["../src/ocAdvisor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ocAdvisor.d.ts","sourceRoot":"","sources":["../src/ocAdvisor.ts"],"names":[],"mappings":"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"}
|