@pfoundation/ocadvisor 26.9.0 → 26.9.2
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 +420 -43
- 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 +19 -0
- package/dist/benchmarkConfig.d.ts.map +1 -0
- package/dist/benchmarkConfig.js +58 -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 +57 -0
- package/dist/benchmarkMatch.d.ts.map +1 -0
- package/dist/benchmarkMatch.js +236 -0
- package/dist/benchmarkMatch.js.map +1 -0
- package/dist/benchmarkStore.d.ts +44 -0
- package/dist/benchmarkStore.d.ts.map +1 -0
- package/dist/benchmarkStore.js +308 -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 +377 -0
- package/dist/cli.js.map +1 -0
- package/dist/data/artificialAnalysis.mappings.json +197 -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 +152 -7
- package/dist/ocAdvisor.d.ts.map +1 -1
- package/dist/ocAdvisor.js +681 -54
- package/dist/ocAdvisor.js.map +1 -1
- package/dist/typesafeGate.d.ts +89 -0
- package/dist/typesafeGate.d.ts.map +1 -0
- package/dist/typesafeGate.js +463 -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 +9 -3
|
@@ -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,9 +1,22 @@
|
|
|
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;
|
|
4
11
|
variant: string | undefined;
|
|
5
12
|
timeoutMs: number;
|
|
6
13
|
maxTranscriptChars: number;
|
|
14
|
+
agentEffort: string[] | null;
|
|
15
|
+
disabledForModels: string[];
|
|
16
|
+
benchmarks: BenchmarkPathOptions;
|
|
17
|
+
typesafeSource: NormalizedTypeSafeOptions;
|
|
18
|
+
typesafe: TypeSafeConfig;
|
|
19
|
+
typesafeSettings: TypeSafeSettings | null;
|
|
7
20
|
}
|
|
8
21
|
declare const DEFAULT_ADVISOR_CONFIG: AdvisorConfig;
|
|
9
22
|
declare function parseModelRef(ref: string): {
|
|
@@ -12,11 +25,81 @@ declare function parseModelRef(ref: string): {
|
|
|
12
25
|
variant?: string;
|
|
13
26
|
};
|
|
14
27
|
declare function resolveAdvisorConfig(options?: Record<string, unknown> | null, env?: Record<string, string | undefined>): AdvisorConfig;
|
|
15
|
-
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
|
|
16
|
-
declare
|
|
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";
|
|
29
|
+
declare function buildToolDescription(config?: AdvisorConfig): string;
|
|
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.";
|
|
17
31
|
declare const ADVISOR_TRIGGERS: readonly ["before_approach", "stuck", "pre_complete", "followup", "other"];
|
|
18
32
|
type AdvisorTrigger = (typeof ADVISOR_TRIGGERS)[number];
|
|
19
|
-
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
|
+
}
|
|
61
|
+
declare function buildAdvisorInputSchema(config?: AdvisorConfig): {
|
|
62
|
+
type: string;
|
|
63
|
+
properties: {
|
|
64
|
+
mode: {
|
|
65
|
+
type: string;
|
|
66
|
+
enum: string[];
|
|
67
|
+
description: string;
|
|
68
|
+
};
|
|
69
|
+
trigger: {
|
|
70
|
+
type: string;
|
|
71
|
+
enum: string[];
|
|
72
|
+
description: string;
|
|
73
|
+
};
|
|
74
|
+
question: {
|
|
75
|
+
type: string;
|
|
76
|
+
description: string;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
} | {
|
|
80
|
+
properties: {
|
|
81
|
+
effort: {
|
|
82
|
+
type: string;
|
|
83
|
+
enum: string[];
|
|
84
|
+
description: string;
|
|
85
|
+
};
|
|
86
|
+
mode: {
|
|
87
|
+
type: string;
|
|
88
|
+
enum: string[];
|
|
89
|
+
description: string;
|
|
90
|
+
};
|
|
91
|
+
trigger: {
|
|
92
|
+
type: string;
|
|
93
|
+
enum: string[];
|
|
94
|
+
description: string;
|
|
95
|
+
};
|
|
96
|
+
question: {
|
|
97
|
+
type: string;
|
|
98
|
+
description: string;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
type: string;
|
|
102
|
+
};
|
|
20
103
|
interface V2PluginContext {
|
|
21
104
|
tool?: {
|
|
22
105
|
transform?: Function;
|
|
@@ -38,6 +121,13 @@ interface V2PluginContext {
|
|
|
38
121
|
list?: Function;
|
|
39
122
|
};
|
|
40
123
|
};
|
|
124
|
+
model?: {
|
|
125
|
+
list?: Function;
|
|
126
|
+
};
|
|
127
|
+
provider?: {
|
|
128
|
+
get?: Function;
|
|
129
|
+
list?: Function;
|
|
130
|
+
};
|
|
41
131
|
integration?: {
|
|
42
132
|
connection?: {
|
|
43
133
|
active?: Function;
|
|
@@ -47,6 +137,24 @@ interface V2PluginContext {
|
|
|
47
137
|
get?: Function;
|
|
48
138
|
set?: Function;
|
|
49
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
|
+
};
|
|
50
158
|
}
|
|
51
159
|
declare function isFableModel(model: {
|
|
52
160
|
providerID?: string;
|
|
@@ -54,9 +162,23 @@ declare function isFableModel(model: {
|
|
|
54
162
|
id?: string;
|
|
55
163
|
modelID?: string;
|
|
56
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;
|
|
57
176
|
declare function inferTrigger(mode: string | undefined, trigger: string | undefined): AdvisorTrigger;
|
|
177
|
+
declare function resolveRequestedEffort(config: AdvisorConfig, value: unknown): string | undefined;
|
|
58
178
|
declare function classifyAdvisorError(message: string): string;
|
|
59
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;
|
|
60
182
|
declare function buildAdvisorPrompt(systemPrompt: string, transcript: string, question: string | undefined, priorNote: string | null): string;
|
|
61
183
|
declare function unwrapData<T>(value: T | {
|
|
62
184
|
data: T;
|
|
@@ -77,7 +199,8 @@ declare function isProviderUsable(provider: {
|
|
|
77
199
|
activation?: string;
|
|
78
200
|
} | null | undefined): boolean;
|
|
79
201
|
declare function findAdvisorModel(models: CatalogModelRef[] | null | undefined, config?: AdvisorConfig): CatalogModelRef | null;
|
|
80
|
-
declare function resolveAdvisorVariant(model: CatalogModelRef | null | undefined, config?: AdvisorConfig): string | undefined;
|
|
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[];
|
|
81
204
|
declare function hasAdvisorConnection(connection: unknown): boolean;
|
|
82
205
|
type AdvisorSupport = {
|
|
83
206
|
supported: true;
|
|
@@ -86,9 +209,31 @@ type AdvisorSupport = {
|
|
|
86
209
|
supported: false;
|
|
87
210
|
reason: string;
|
|
88
211
|
};
|
|
89
|
-
declare function checkAdvisorSupport(runtime: V2PluginContext, config?: AdvisorConfig): Promise<AdvisorSupport>;
|
|
212
|
+
declare function checkAdvisorSupport(runtime: V2PluginContext, config?: AdvisorConfig, requestedVariant?: string): Promise<AdvisorSupport>;
|
|
90
213
|
declare function resetAdvisorSessionCache(): void;
|
|
91
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>;
|
|
92
237
|
export declare function setupOcAdvisorV2(ctx: V2PluginContext): Promise<(() => void) | void>;
|
|
93
238
|
declare const plugin: {
|
|
94
239
|
id: string;
|
|
@@ -99,6 +244,6 @@ export declare const OcAdvisorPluginV2: {
|
|
|
99
244
|
setup: typeof setupOcAdvisorV2;
|
|
100
245
|
};
|
|
101
246
|
export default plugin;
|
|
102
|
-
export { ADVISOR_TRIGGERS, CHECKPOINT_INSTRUCTION, DEFAULT_ADVISOR_CONFIG, TOOL_DESCRIPTION, buildAdvisorPrompt, checkAdvisorSupport, classifyAdvisorError, ensureAdvisorSession, extractGeneratedText, findAdvisorModel, hasAdvisorConnection, inferTrigger, isAdvisorToolName, isFableModel, isProviderUsable, parseModelRef, resolveAdvisorConfig, resolveAdvisorVariant, resetAdvisorSessionCache, unwrapData, withTimeout, };
|
|
103
|
-
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, };
|
|
104
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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"}
|