@ctxprotocol/sdk 0.9.0 → 0.11.0
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 +25 -9
- package/dist/client/index.cjs +136 -8
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +35 -629
- package/dist/client/index.d.ts +35 -629
- package/dist/client/index.js +135 -9
- package/dist/client/index.js.map +1 -1
- package/dist/contrib/search/index.cjs +703 -0
- package/dist/contrib/search/index.cjs.map +1 -0
- package/dist/contrib/search/index.d.cts +33 -0
- package/dist/contrib/search/index.d.ts +33 -0
- package/dist/contrib/search/index.js +690 -0
- package/dist/contrib/search/index.js.map +1 -0
- package/dist/index.cjs +135 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +135 -9
- package/dist/index.js.map +1 -1
- package/dist/types-DRbq-FA6.d.cts +1180 -0
- package/dist/types-DRbq-FA6.d.ts +1180 -0
- package/package.json +11 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/contrib/search/types.ts","../../../src/contrib/search/core.ts","../../../src/contrib/search/trace.ts","../../../src/contrib/search/validation.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export const CONTRIBUTOR_SEARCH_METADATA_VERSION =\n \"ctx-contributor-search/v1\" as const;\nexport const CONTRIBUTOR_SEARCH_VALIDATION_VERSION =\n \"ctx-contributor-search-validation/v1\" as const;\n\nexport type ContributorSearchOutcome =\n | \"selected\"\n | \"shortlist_only\"\n | \"capability_miss\";\n\nexport type ContributorSearchConfidence = \"high\" | \"medium\" | \"low\";\n\nexport type ContributorSearchDegradedOutcomePolicy =\n | \"return_shortlist\"\n | \"allow_low_confidence_selected\";\n\nexport type ContributorSearchDegradedReasonCode =\n | \"judge_disabled\"\n | \"judge_missing\"\n | \"judge_timeout\"\n | \"judge_budget_exceeded\"\n | \"judge_invalid_output\"\n | \"judge_error\"\n | \"validator_rejected\"\n | \"ambiguous_shortlist\"\n | \"no_viable_candidates\";\n\nexport type ContributorSearchValidationCaseKind =\n | \"named_regression\"\n | \"generic_overlap\"\n | \"still_ambiguous\"\n | \"capability_miss\";\n\nexport type ContributorSearchValidatorStatus =\n | \"accepted\"\n | \"rejected\"\n | \"not_run\";\n\nexport interface SearchIntent {\n intentId: string;\n rawRequest: string;\n query: string;\n clause: string | null;\n metadata?: Record<string, unknown>;\n}\n\nexport interface SearchCandidateProvenance {\n source: string;\n query: string;\n rank: number | null;\n fetchedAt: string | null;\n metadata?: Record<string, unknown>;\n}\n\nexport interface SearchCandidate {\n candidateId: string;\n title: string;\n description?: string | null;\n rawIds?: Record<string, string>;\n rankFeatures?: Record<string, boolean | number | string | null>;\n provenance: SearchCandidateProvenance[];\n metadata?: Record<string, unknown>;\n}\n\nexport interface SearchShortlist {\n maxSize: number;\n candidates: SearchCandidate[];\n}\n\nexport interface ContributorSearchConfig {\n provider?: string | null;\n model?: string | null;\n timeoutMs?: number | null;\n budgetUsd?: string | null;\n disableJudge?: boolean;\n degradedOutcomePolicy?: ContributorSearchDegradedOutcomePolicy;\n maxShortlistSize?: number;\n}\n\nexport interface ContributorSearchResolvedConfig {\n provider: string | null;\n model: string | null;\n timeoutMs: number | null;\n budgetUsd: string | null;\n disableJudge: boolean;\n degradedOutcomePolicy: ContributorSearchDegradedOutcomePolicy;\n maxShortlistSize: number;\n}\n\nexport interface ContributorSearchJudgeUsage {\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n costUsd?: string | null;\n latencyMs?: number | null;\n}\n\nexport interface ContributorSearchJudgeInput {\n rawRequest: string;\n intents: SearchIntent[];\n shortlist: SearchShortlist;\n instructions?: string;\n policy: ContributorSearchResolvedConfig;\n}\n\nexport interface ContributorSearchJudgeContext {\n provider: string | null;\n model: string | null;\n timeoutMs: number | null;\n budgetUsd: string | null;\n traceLabel: string | null;\n}\n\nexport interface ContributorSearchJudgeResult {\n primaryCandidateId: string | null;\n relatedCandidateIds: string[];\n rejectedCandidateIds: string[];\n confidence: ContributorSearchConfidence;\n reason: string;\n usage?: ContributorSearchJudgeUsage;\n}\n\nexport interface ContributorSearchJudge {\n evaluate(\n input: ContributorSearchJudgeInput,\n context: ContributorSearchJudgeContext\n ): Promise<ContributorSearchJudgeResult>;\n}\n\nexport interface ContributorSearchDegradedOutcome {\n reasonCode: ContributorSearchDegradedReasonCode;\n message: string;\n}\n\nexport interface ContributorSearchMetadataSource {\n source: string;\n query: string;\n candidateCount: number;\n}\n\nexport interface ContributorSearchJudgeSnapshot {\n provider: string | null;\n model: string | null;\n timeoutMs: number | null;\n budgetUsd: string | null;\n disabled: boolean;\n applied: boolean;\n usage: ContributorSearchJudgeUsage | null;\n}\n\nexport interface ContributorSearchTraceSummary {\n usedDeterministicFallback: boolean;\n validatorStatus: ContributorSearchValidatorStatus;\n validatorReasonCode: string | null;\n validatorReason: string | null;\n}\n\nexport interface ContributorSearchMetadata {\n version: typeof CONTRIBUTOR_SEARCH_METADATA_VERSION;\n outcome: ContributorSearchOutcome;\n confidence: ContributorSearchConfidence;\n selectedCandidateId: string | null;\n shortlistCandidateIds: string[];\n relatedCandidateIds: string[];\n rejectedCandidateIds: string[];\n candidateCount: number;\n shortlistCount: number;\n intentQueries: string[];\n degraded: ContributorSearchDegradedOutcome | null;\n judge: ContributorSearchJudgeSnapshot;\n provenance: ContributorSearchMetadataSource[];\n trace: ContributorSearchTraceSummary;\n}\n\nexport interface ContributorSearchTraceRecord {\n toolId: string | null;\n toolName: string | null;\n timestampMs: number | null;\n searchMetadata: ContributorSearchMetadata;\n}\n\nexport interface ContributorSearchResolution {\n outcome: ContributorSearchOutcome;\n selectedCandidate: SearchCandidate | null;\n shortlist: SearchCandidate[];\n relatedCandidates: SearchCandidate[];\n rejectedCandidates: SearchCandidate[];\n confidence: ContributorSearchConfidence;\n reason: string;\n degraded: ContributorSearchDegradedOutcome | null;\n searchMetadata: ContributorSearchMetadata;\n}\n\nexport interface ContributorSearchValidationExpectation {\n outcome: ContributorSearchOutcome;\n selectedCandidateId?: string | null;\n degradedReasonCode?: ContributorSearchDegradedReasonCode | null;\n}\n\nexport interface ContributorSearchValidationArtifact {\n version: typeof CONTRIBUTOR_SEARCH_VALIDATION_VERSION;\n generatedAt: string;\n caseId: string;\n caseKind: ContributorSearchValidationCaseKind;\n rawRequest: string;\n intents: SearchIntent[];\n candidates: SearchCandidate[];\n resolution: {\n outcome: ContributorSearchOutcome;\n selectedCandidateId: string | null;\n shortlistCandidateIds: string[];\n relatedCandidateIds: string[];\n rejectedCandidateIds: string[];\n confidence: ContributorSearchConfidence;\n reason: string;\n degradedReasonCode: ContributorSearchDegradedReasonCode | null;\n };\n searchMetadata: ContributorSearchMetadata;\n expectation?: ContributorSearchValidationExpectation;\n}\n\nexport interface ResolveContributorSearchParams {\n rawRequest: string;\n intents: SearchIntent[];\n candidates: SearchCandidate[];\n judge?: ContributorSearchJudge;\n helperConfig?: ContributorSearchConfig;\n contributorConfig?: ContributorSearchConfig;\n overrides?: ContributorSearchConfig;\n instructions?: string;\n isCandidateValid?: (candidate: SearchCandidate) => boolean;\n traceLabel?: string | null;\n}\n\nexport class ContributorSearchBudgetExceededError extends Error {\n constructor(message = \"Contributor search budget exceeded\") {\n super(message);\n this.name = \"ContributorSearchBudgetExceededError\";\n }\n}\n","import {\n ContributorSearchBudgetExceededError,\n CONTRIBUTOR_SEARCH_METADATA_VERSION,\n type ContributorSearchConfig,\n type ContributorSearchConfidence,\n type ContributorSearchDegradedOutcome,\n type ContributorSearchDegradedReasonCode,\n type ContributorSearchJudge,\n type ContributorSearchJudgeContext,\n type ContributorSearchJudgeInput,\n type ContributorSearchJudgeSnapshot,\n type ContributorSearchJudgeUsage,\n type ContributorSearchMetadata,\n type ContributorSearchMetadataSource,\n type ContributorSearchResolution,\n type ContributorSearchResolvedConfig,\n type ContributorSearchTraceSummary,\n type ContributorSearchValidatorStatus,\n type ResolveContributorSearchParams,\n type SearchCandidate,\n type SearchCandidateProvenance,\n type SearchIntent,\n type SearchShortlist,\n} from \"./types.js\";\n\nconst DEFAULT_MAX_SHORTLIST_SIZE = 8;\nconst DEFAULT_DEGRADED_OUTCOME_POLICY = \"return_shortlist\";\nconst MAX_METADATA_PROVENANCE_ENTRIES = 8;\nconst MAX_METADATA_INTENT_QUERIES = 6;\nconst MAX_REASON_LENGTH = 240;\n\nclass ContributorSearchTimeoutError extends Error {\n constructor(message = \"Contributor search judge timed out\") {\n super(message);\n this.name = \"ContributorSearchTimeoutError\";\n }\n}\n\ntype JudgeValidationOutcome =\n | {\n ok: true;\n selectedCandidate: SearchCandidate | null;\n relatedCandidates: SearchCandidate[];\n rejectedCandidates: SearchCandidate[];\n }\n | {\n ok: false;\n reasonCode: \"judge_invalid_output\" | \"validator_rejected\";\n reason: string;\n };\n\nfunction normalizeString(value: string | null | undefined): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction uniqueStrings(values: readonly string[]): string[] {\n const deduped = new Set<string>();\n for (const value of values) {\n const normalized = normalizeString(value);\n if (!normalized) {\n continue;\n }\n deduped.add(normalized);\n }\n return [...deduped];\n}\n\nfunction truncateReason(reason: string): string {\n return reason.length <= MAX_REASON_LENGTH\n ? reason\n : `${reason.slice(0, MAX_REASON_LENGTH)}...`;\n}\n\nfunction candidateProvenanceKey(provenance: SearchCandidateProvenance): string {\n return [\n provenance.source,\n provenance.query,\n provenance.rank ?? \"\",\n provenance.fetchedAt ?? \"\",\n JSON.stringify(provenance.metadata ?? {}),\n ].join(\"::\");\n}\n\nfunction mergeProvenance(\n first: readonly SearchCandidateProvenance[],\n second: readonly SearchCandidateProvenance[]\n): SearchCandidateProvenance[] {\n const merged = new Map<string, SearchCandidateProvenance>();\n for (const provenance of [...first, ...second]) {\n merged.set(candidateProvenanceKey(provenance), provenance);\n }\n return [...merged.values()];\n}\n\nfunction mergeCandidates(\n first: SearchCandidate,\n second: SearchCandidate\n): SearchCandidate {\n return {\n ...first,\n description: first.description ?? second.description ?? null,\n rawIds: {\n ...(second.rawIds ?? {}),\n ...(first.rawIds ?? {}),\n },\n rankFeatures: {\n ...(second.rankFeatures ?? {}),\n ...(first.rankFeatures ?? {}),\n },\n provenance: mergeProvenance(first.provenance, second.provenance),\n metadata: {\n ...(second.metadata ?? {}),\n ...(first.metadata ?? {}),\n },\n };\n}\n\nfunction isCandidateSelectable(\n candidate: SearchCandidate,\n validateCandidate: (candidate: SearchCandidate) => boolean\n): boolean {\n return validateCandidate(candidate);\n}\n\nfunction summarizeProvenance(\n candidates: readonly SearchCandidate[]\n): ContributorSearchMetadataSource[] {\n const grouped = new Map<\n string,\n {\n source: string;\n query: string;\n candidateIds: Set<string>;\n }\n >();\n\n for (const candidate of candidates) {\n for (const provenance of candidate.provenance) {\n const key = `${provenance.source}::${provenance.query}`;\n const existing = grouped.get(key);\n if (existing) {\n existing.candidateIds.add(candidate.candidateId);\n continue;\n }\n grouped.set(key, {\n source: provenance.source,\n query: provenance.query,\n candidateIds: new Set([candidate.candidateId]),\n });\n }\n }\n\n return [...grouped.values()]\n .map((entry) => ({\n source: entry.source,\n query: entry.query,\n candidateCount: entry.candidateIds.size,\n }))\n .slice(0, MAX_METADATA_PROVENANCE_ENTRIES);\n}\n\nfunction buildJudgeSnapshot(params: {\n config: ContributorSearchResolvedConfig;\n applied: boolean;\n usage: ContributorSearchJudgeUsage | null;\n}): ContributorSearchJudgeSnapshot {\n return {\n provider: params.config.provider,\n model: params.config.model,\n timeoutMs: params.config.timeoutMs,\n budgetUsd: params.config.budgetUsd,\n disabled: params.config.disableJudge,\n applied: params.applied,\n usage: params.usage,\n };\n}\n\nfunction buildTraceSummary(params: {\n usedDeterministicFallback: boolean;\n validatorStatus: ContributorSearchValidatorStatus;\n validatorReasonCode: string | null;\n validatorReason: string | null;\n}): ContributorSearchTraceSummary {\n return {\n usedDeterministicFallback: params.usedDeterministicFallback,\n validatorStatus: params.validatorStatus,\n validatorReasonCode: params.validatorReasonCode,\n validatorReason: params.validatorReason,\n };\n}\n\nfunction buildSearchMetadata(params: {\n intents: readonly SearchIntent[];\n candidates: readonly SearchCandidate[];\n shortlist: readonly SearchCandidate[];\n selectedCandidate: SearchCandidate | null;\n relatedCandidates: readonly SearchCandidate[];\n rejectedCandidates: readonly SearchCandidate[];\n outcome: ContributorSearchResolution[\"outcome\"];\n confidence: ContributorSearchConfidence;\n degraded: ContributorSearchDegradedOutcome | null;\n judgeSnapshot: ContributorSearchJudgeSnapshot;\n trace: ContributorSearchTraceSummary;\n}): ContributorSearchMetadata {\n const intentQueries = uniqueStrings(params.intents.map((intent) => intent.query))\n .slice(0, MAX_METADATA_INTENT_QUERIES);\n\n return {\n version: CONTRIBUTOR_SEARCH_METADATA_VERSION,\n outcome: params.outcome,\n confidence: params.confidence,\n selectedCandidateId: params.selectedCandidate?.candidateId ?? null,\n shortlistCandidateIds: params.shortlist.map((candidate) => candidate.candidateId),\n relatedCandidateIds: params.relatedCandidates.map(\n (candidate) => candidate.candidateId\n ),\n rejectedCandidateIds: params.rejectedCandidates.map(\n (candidate) => candidate.candidateId\n ),\n candidateCount: params.candidates.length,\n shortlistCount: params.shortlist.length,\n intentQueries,\n degraded: params.degraded,\n judge: params.judgeSnapshot,\n provenance: summarizeProvenance(params.candidates),\n trace: params.trace,\n };\n}\n\nfunction buildResolution(params: {\n intents: readonly SearchIntent[];\n candidates: readonly SearchCandidate[];\n shortlist: readonly SearchCandidate[];\n selectedCandidate: SearchCandidate | null;\n relatedCandidates: readonly SearchCandidate[];\n rejectedCandidates: readonly SearchCandidate[];\n outcome: ContributorSearchResolution[\"outcome\"];\n confidence: ContributorSearchConfidence;\n reason: string;\n degraded: ContributorSearchDegradedOutcome | null;\n judgeSnapshot: ContributorSearchJudgeSnapshot;\n trace: ContributorSearchTraceSummary;\n}): ContributorSearchResolution {\n const searchMetadata = buildSearchMetadata({\n intents: params.intents,\n candidates: params.candidates,\n shortlist: params.shortlist,\n selectedCandidate: params.selectedCandidate,\n relatedCandidates: params.relatedCandidates,\n rejectedCandidates: params.rejectedCandidates,\n outcome: params.outcome,\n confidence: params.confidence,\n degraded: params.degraded,\n judgeSnapshot: params.judgeSnapshot,\n trace: params.trace,\n });\n\n return {\n outcome: params.outcome,\n selectedCandidate: params.selectedCandidate,\n shortlist: [...params.shortlist],\n relatedCandidates: [...params.relatedCandidates],\n rejectedCandidates: [...params.rejectedCandidates],\n confidence: params.confidence,\n reason: truncateReason(params.reason),\n degraded: params.degraded,\n searchMetadata,\n };\n}\n\nfunction dedupeCandidateIds(ids: readonly string[]): {\n ids: string[];\n hadDuplicates: boolean;\n} {\n const deduped: string[] = [];\n const seen = new Set<string>();\n let hadDuplicates = false;\n\n for (const id of ids) {\n const normalized = normalizeString(id);\n if (!normalized) {\n continue;\n }\n if (seen.has(normalized)) {\n hadDuplicates = true;\n continue;\n }\n seen.add(normalized);\n deduped.push(normalized);\n }\n\n return {\n ids: deduped,\n hadDuplicates,\n };\n}\n\nfunction validateJudgeSelection(params: {\n shortlist: readonly SearchCandidate[];\n primaryCandidateId: string | null;\n relatedCandidateIds: readonly string[];\n rejectedCandidateIds: readonly string[];\n validateCandidate: (candidate: SearchCandidate) => boolean;\n}): JudgeValidationOutcome {\n const shortlistById = new Map<string, SearchCandidate>();\n for (const candidate of params.shortlist) {\n shortlistById.set(candidate.candidateId, candidate);\n }\n\n const normalizedPrimaryCandidateId = normalizeString(params.primaryCandidateId);\n const relatedCandidateIds = dedupeCandidateIds(params.relatedCandidateIds);\n const rejectedCandidateIds = dedupeCandidateIds(params.rejectedCandidateIds);\n\n if (\n relatedCandidateIds.hadDuplicates ||\n rejectedCandidateIds.hadDuplicates\n ) {\n return {\n ok: false,\n reasonCode: \"judge_invalid_output\",\n reason: \"Judge returned duplicate candidate ids within a bucket.\",\n };\n }\n\n const referencedIds = new Set<string>();\n if (normalizedPrimaryCandidateId) {\n referencedIds.add(normalizedPrimaryCandidateId);\n }\n for (const id of [...relatedCandidateIds.ids, ...rejectedCandidateIds.ids]) {\n if (referencedIds.has(id)) {\n return {\n ok: false,\n reasonCode: \"validator_rejected\",\n reason: \"Judge referenced the same candidate across multiple buckets.\",\n };\n }\n referencedIds.add(id);\n }\n\n if (\n normalizedPrimaryCandidateId &&\n !shortlistById.has(normalizedPrimaryCandidateId)\n ) {\n return {\n ok: false,\n reasonCode: \"validator_rejected\",\n reason: \"Judge selected a candidate outside the bounded shortlist.\",\n };\n }\n\n for (const id of [...relatedCandidateIds.ids, ...rejectedCandidateIds.ids]) {\n if (!shortlistById.has(id)) {\n return {\n ok: false,\n reasonCode: \"validator_rejected\",\n reason: \"Judge referenced a candidate outside the bounded shortlist.\",\n };\n }\n }\n\n const selectedCandidate = normalizedPrimaryCandidateId\n ? shortlistById.get(normalizedPrimaryCandidateId) ?? null\n : null;\n\n if (\n selectedCandidate &&\n !isCandidateSelectable(selectedCandidate, params.validateCandidate)\n ) {\n return {\n ok: false,\n reasonCode: \"validator_rejected\",\n reason:\n \"Judge selected a candidate that failed deterministic contributor validation.\",\n };\n }\n\n return {\n ok: true,\n selectedCandidate,\n relatedCandidates: relatedCandidateIds.ids\n .map((id) => shortlistById.get(id))\n .filter((candidate): candidate is SearchCandidate => Boolean(candidate)),\n rejectedCandidates: rejectedCandidateIds.ids\n .map((id) => shortlistById.get(id))\n .filter((candidate): candidate is SearchCandidate => Boolean(candidate)),\n };\n}\n\nasync function evaluateJudge(params: {\n judge: ContributorSearchJudge;\n input: ContributorSearchJudgeInput;\n context: ContributorSearchJudgeContext;\n timeoutMs: number | null;\n}): Promise<ReturnType<ContributorSearchJudge[\"evaluate\"]>> {\n if (!params.timeoutMs || params.timeoutMs <= 0) {\n return params.judge.evaluate(params.input, params.context);\n }\n\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n try {\n return await Promise.race([\n params.judge.evaluate(params.input, params.context),\n new Promise<never>((_, reject) => {\n timeoutId = setTimeout(() => {\n reject(new ContributorSearchTimeoutError());\n }, params.timeoutMs ?? 0);\n }),\n ]);\n } finally {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n}\n\nfunction buildFallbackResolution(params: {\n intents: readonly SearchIntent[];\n candidates: readonly SearchCandidate[];\n validShortlist: readonly SearchCandidate[];\n reasonCode: ContributorSearchDegradedReasonCode;\n reason: string;\n config: ContributorSearchResolvedConfig;\n judgeApplied: boolean;\n judgeUsage: ContributorSearchJudgeUsage | null;\n validatorStatus: ContributorSearchValidatorStatus;\n validatorReasonCode: string | null;\n validatorReason: string | null;\n}): ContributorSearchResolution {\n if (params.validShortlist.length === 0) {\n return buildResolution({\n intents: params.intents,\n candidates: params.candidates,\n shortlist: [],\n selectedCandidate: null,\n relatedCandidates: [],\n rejectedCandidates: [],\n outcome: \"capability_miss\",\n confidence: \"low\",\n reason: params.reason,\n degraded: {\n reasonCode: \"no_viable_candidates\",\n message: truncateReason(params.reason),\n },\n judgeSnapshot: buildJudgeSnapshot({\n config: params.config,\n applied: params.judgeApplied,\n usage: params.judgeUsage,\n }),\n trace: buildTraceSummary({\n usedDeterministicFallback: true,\n validatorStatus: params.validatorStatus,\n validatorReasonCode: params.validatorReasonCode,\n validatorReason: params.validatorReason,\n }),\n });\n }\n\n if (\n params.validShortlist.length === 1 &&\n params.config.degradedOutcomePolicy === \"allow_low_confidence_selected\"\n ) {\n return buildResolution({\n intents: params.intents,\n candidates: params.candidates,\n shortlist: params.validShortlist,\n selectedCandidate: params.validShortlist[0] ?? null,\n relatedCandidates: [],\n rejectedCandidates: [],\n outcome: \"selected\",\n confidence: \"low\",\n reason: params.reason,\n degraded: {\n reasonCode: params.reasonCode,\n message: truncateReason(params.reason),\n },\n judgeSnapshot: buildJudgeSnapshot({\n config: params.config,\n applied: params.judgeApplied,\n usage: params.judgeUsage,\n }),\n trace: buildTraceSummary({\n usedDeterministicFallback: true,\n validatorStatus: params.validatorStatus,\n validatorReasonCode: params.validatorReasonCode,\n validatorReason: params.validatorReason,\n }),\n });\n }\n\n return buildResolution({\n intents: params.intents,\n candidates: params.candidates,\n shortlist: params.validShortlist,\n selectedCandidate: null,\n relatedCandidates: [],\n rejectedCandidates: [],\n outcome: \"shortlist_only\",\n confidence: \"low\",\n reason: params.reason,\n degraded: {\n reasonCode: params.reasonCode,\n message: truncateReason(params.reason),\n },\n judgeSnapshot: buildJudgeSnapshot({\n config: params.config,\n applied: params.judgeApplied,\n usage: params.judgeUsage,\n }),\n trace: buildTraceSummary({\n usedDeterministicFallback: true,\n validatorStatus: params.validatorStatus,\n validatorReasonCode: params.validatorReasonCode,\n validatorReason: params.validatorReason,\n }),\n });\n}\n\nexport function createSearchIntent(params: {\n rawRequest: string;\n query: string;\n intentId?: string;\n clause?: string | null;\n metadata?: Record<string, unknown>;\n}): SearchIntent {\n const normalizedQuery = normalizeString(params.query) ?? params.rawRequest.trim();\n const fallbackIntentId = normalizedQuery\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .slice(0, 80);\n\n return {\n intentId: (params.intentId ?? fallbackIntentId) || \"search-intent\",\n rawRequest: params.rawRequest.trim(),\n query: normalizedQuery,\n clause: normalizeString(params.clause),\n ...(params.metadata ? { metadata: params.metadata } : {}),\n };\n}\n\nexport function dedupeSearchCandidates(\n candidates: readonly SearchCandidate[]\n): SearchCandidate[] {\n const deduped = new Map<string, SearchCandidate>();\n for (const candidate of candidates) {\n const normalizedCandidateId = normalizeString(candidate.candidateId);\n if (!normalizedCandidateId) {\n continue;\n }\n const normalizedCandidate: SearchCandidate = {\n ...candidate,\n candidateId: normalizedCandidateId,\n title: candidate.title.trim(),\n description: normalizeString(candidate.description),\n rawIds: candidate.rawIds ?? {},\n rankFeatures: candidate.rankFeatures ?? {},\n provenance: candidate.provenance ?? [],\n metadata: candidate.metadata ?? {},\n };\n const existing = deduped.get(normalizedCandidateId);\n deduped.set(\n normalizedCandidateId,\n existing\n ? mergeCandidates(existing, normalizedCandidate)\n : normalizedCandidate\n );\n }\n return [...deduped.values()];\n}\n\nexport function buildSearchShortlist(\n candidates: readonly SearchCandidate[],\n maxShortlistSize = DEFAULT_MAX_SHORTLIST_SIZE\n): SearchShortlist {\n const cappedSize = Math.max(1, Math.floor(maxShortlistSize));\n return {\n maxSize: cappedSize,\n candidates: dedupeSearchCandidates(candidates).slice(0, cappedSize),\n };\n}\n\nexport function mergeContributorSearchConfig(\n ...configs: ReadonlyArray<ContributorSearchConfig | undefined>\n): ContributorSearchResolvedConfig {\n const resolved: ContributorSearchResolvedConfig = {\n provider: null,\n model: null,\n timeoutMs: null,\n budgetUsd: null,\n disableJudge: false,\n degradedOutcomePolicy: DEFAULT_DEGRADED_OUTCOME_POLICY,\n maxShortlistSize: DEFAULT_MAX_SHORTLIST_SIZE,\n };\n\n for (const config of configs) {\n if (!config) {\n continue;\n }\n if (\"provider\" in config) {\n resolved.provider = normalizeString(config.provider);\n }\n if (\"model\" in config) {\n resolved.model = normalizeString(config.model);\n }\n if (\"timeoutMs\" in config) {\n resolved.timeoutMs =\n typeof config.timeoutMs === \"number\" && Number.isFinite(config.timeoutMs)\n ? Math.max(0, Math.floor(config.timeoutMs))\n : null;\n }\n if (\"budgetUsd\" in config) {\n resolved.budgetUsd = normalizeString(config.budgetUsd);\n }\n if (\"disableJudge\" in config && typeof config.disableJudge === \"boolean\") {\n resolved.disableJudge = config.disableJudge;\n }\n if (\n config.degradedOutcomePolicy === \"return_shortlist\" ||\n config.degradedOutcomePolicy === \"allow_low_confidence_selected\"\n ) {\n resolved.degradedOutcomePolicy = config.degradedOutcomePolicy;\n }\n if (\n typeof config.maxShortlistSize === \"number\" &&\n Number.isFinite(config.maxShortlistSize)\n ) {\n resolved.maxShortlistSize = Math.max(1, Math.floor(config.maxShortlistSize));\n }\n }\n\n return resolved;\n}\n\nexport function attachContributorSearchMetadata<T extends Record<string, unknown>>(\n data: T,\n resolution: ContributorSearchResolution\n): T & { searchMetadata: ContributorSearchMetadata } {\n return {\n ...data,\n searchMetadata: resolution.searchMetadata,\n };\n}\n\nexport async function resolveContributorSearch(\n params: ResolveContributorSearchParams\n): Promise<ContributorSearchResolution> {\n const config = mergeContributorSearchConfig(\n params.helperConfig,\n params.contributorConfig,\n params.overrides\n );\n const candidates = dedupeSearchCandidates(params.candidates);\n const shortlist = buildSearchShortlist(candidates, config.maxShortlistSize).candidates;\n const validateCandidate = params.isCandidateValid ?? (() => true);\n const validShortlist = shortlist.filter((candidate) =>\n isCandidateSelectable(candidate, validateCandidate)\n );\n const judge = params.judge;\n\n if (shortlist.length === 0) {\n return buildFallbackResolution({\n intents: params.intents,\n candidates,\n validShortlist,\n reasonCode: \"no_viable_candidates\",\n reason:\n \"No viable candidates survived deterministic gathering before judging.\",\n config,\n judgeApplied: false,\n judgeUsage: null,\n validatorStatus: \"not_run\",\n validatorReasonCode: null,\n validatorReason: null,\n });\n }\n\n if (config.disableJudge || !judge) {\n return buildFallbackResolution({\n intents: params.intents,\n candidates,\n validShortlist,\n reasonCode: !judge ? \"judge_missing\" : \"judge_disabled\",\n reason: !judge\n ? \"No contributor search judge was configured for this resolution.\"\n : \"Contributor search judge was disabled for this resolution.\",\n config,\n judgeApplied: false,\n judgeUsage: null,\n validatorStatus: \"not_run\",\n validatorReasonCode: null,\n validatorReason: null,\n });\n }\n\n const judgeInput: ContributorSearchJudgeInput = {\n rawRequest: params.rawRequest,\n intents: params.intents,\n shortlist: {\n maxSize: config.maxShortlistSize,\n candidates: shortlist,\n },\n ...(params.instructions ? { instructions: params.instructions } : {}),\n policy: config,\n };\n const judgeContext: ContributorSearchJudgeContext = {\n provider: config.provider,\n model: config.model,\n timeoutMs: config.timeoutMs,\n budgetUsd: config.budgetUsd,\n traceLabel: params.traceLabel ?? null,\n };\n\n let judgeUsage: ContributorSearchJudgeUsage | null = null;\n try {\n const judgeResult = await evaluateJudge({\n judge,\n input: judgeInput,\n context: judgeContext,\n timeoutMs: config.timeoutMs,\n });\n judgeUsage = judgeResult.usage ?? null;\n\n const validation = validateJudgeSelection({\n shortlist,\n primaryCandidateId: judgeResult.primaryCandidateId,\n relatedCandidateIds: judgeResult.relatedCandidateIds,\n rejectedCandidateIds: judgeResult.rejectedCandidateIds,\n validateCandidate,\n });\n\n if (!validation.ok) {\n return buildFallbackResolution({\n intents: params.intents,\n candidates,\n validShortlist,\n reasonCode: validation.reasonCode,\n reason: validation.reason,\n config,\n judgeApplied: true,\n judgeUsage,\n validatorStatus: \"rejected\",\n validatorReasonCode: validation.reasonCode,\n validatorReason: validation.reason,\n });\n }\n\n if (!validation.selectedCandidate) {\n return buildFallbackResolution({\n intents: params.intents,\n candidates,\n validShortlist,\n reasonCode: \"ambiguous_shortlist\",\n reason:\n normalizeString(judgeResult.reason) ??\n \"Judge declined to select a single grounded candidate.\",\n config,\n judgeApplied: true,\n judgeUsage,\n validatorStatus: \"accepted\",\n validatorReasonCode: null,\n validatorReason: null,\n });\n }\n\n return buildResolution({\n intents: params.intents,\n candidates,\n shortlist,\n selectedCandidate: validation.selectedCandidate,\n relatedCandidates: validation.relatedCandidates,\n rejectedCandidates: validation.rejectedCandidates,\n outcome: \"selected\",\n confidence: judgeResult.confidence,\n reason: normalizeString(judgeResult.reason) ?? \"Judge selected a candidate.\",\n degraded: null,\n judgeSnapshot: buildJudgeSnapshot({\n config,\n applied: true,\n usage: judgeUsage,\n }),\n trace: buildTraceSummary({\n usedDeterministicFallback: false,\n validatorStatus: \"accepted\",\n validatorReasonCode: null,\n validatorReason: null,\n }),\n });\n } catch (error) {\n const reasonCode: ContributorSearchDegradedReasonCode =\n error instanceof ContributorSearchBudgetExceededError\n ? \"judge_budget_exceeded\"\n : error instanceof ContributorSearchTimeoutError\n ? \"judge_timeout\"\n : \"judge_error\";\n const reason =\n error instanceof Error\n ? error.message\n : \"Contributor search judge failed with a non-Error value.\";\n\n return buildFallbackResolution({\n intents: params.intents,\n candidates,\n validShortlist,\n reasonCode,\n reason,\n config,\n judgeApplied: true,\n judgeUsage,\n validatorStatus: \"not_run\",\n validatorReasonCode: null,\n validatorReason: null,\n });\n }\n}\n","import type { QueryDeveloperTrace } from \"../../client/types.js\";\nimport {\n CONTRIBUTOR_SEARCH_METADATA_VERSION,\n type ContributorSearchMetadata,\n type ContributorSearchTraceRecord,\n} from \"./types.js\";\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isStringArray(value: unknown): value is string[] {\n return (\n Array.isArray(value) &&\n value.every((item) => typeof item === \"string\")\n );\n}\n\nfunction isContributorSearchMetadata(\n value: unknown\n): value is ContributorSearchMetadata {\n if (!isRecord(value)) {\n return false;\n }\n\n return (\n value.version === CONTRIBUTOR_SEARCH_METADATA_VERSION &&\n (value.outcome === \"selected\" ||\n value.outcome === \"shortlist_only\" ||\n value.outcome === \"capability_miss\") &&\n (value.confidence === \"high\" ||\n value.confidence === \"medium\" ||\n value.confidence === \"low\") &&\n (value.selectedCandidateId === null ||\n typeof value.selectedCandidateId === \"string\") &&\n isStringArray(value.shortlistCandidateIds) &&\n isStringArray(value.relatedCandidateIds) &&\n isStringArray(value.rejectedCandidateIds) &&\n typeof value.candidateCount === \"number\" &&\n typeof value.shortlistCount === \"number\" &&\n isStringArray(value.intentQueries) &&\n isRecord(value.judge) &&\n Array.isArray(value.provenance) &&\n isRecord(value.trace)\n );\n}\n\nfunction extractMetadataFromUnknown(\n value: unknown\n): ContributorSearchMetadata | null {\n if (isContributorSearchMetadata(value)) {\n return value;\n }\n\n if (!isRecord(value)) {\n return null;\n }\n\n const nestedSearchMetadata = value.searchMetadata;\n if (isContributorSearchMetadata(nestedSearchMetadata)) {\n return nestedSearchMetadata;\n }\n\n return null;\n}\n\nfunction isContributorSearchTraceRecord(\n value: unknown\n): value is ContributorSearchTraceRecord {\n if (!isRecord(value)) {\n return false;\n }\n\n return (\n (value.toolId === null || typeof value.toolId === \"string\") &&\n (value.toolName === null || typeof value.toolName === \"string\") &&\n (value.timestampMs === null || typeof value.timestampMs === \"number\") &&\n isContributorSearchMetadata(value.searchMetadata)\n );\n}\n\nexport function extractContributorSearchMetadata(\n result: unknown\n): ContributorSearchMetadata | null {\n return extractMetadataFromUnknown(result);\n}\n\nexport function extractContributorSearchesFromDeveloperTrace(\n trace: QueryDeveloperTrace | undefined\n): ContributorSearchTraceRecord[] {\n const diagnostics = trace?.diagnostics;\n if (\n diagnostics &&\n \"contributorSearches\" in diagnostics &&\n Array.isArray(diagnostics.contributorSearches)\n ) {\n return diagnostics.contributorSearches.filter(\n isContributorSearchTraceRecord\n );\n }\n\n const extracted: ContributorSearchTraceRecord[] = [];\n for (const step of trace?.timeline ?? []) {\n const metadata = step.metadata;\n if (!isRecord(metadata)) {\n continue;\n }\n\n const directMetadata = extractMetadataFromUnknown(metadata.contributorSearch);\n const resultMetadata = extractMetadataFromUnknown(metadata.result);\n const searchMetadata = directMetadata ?? resultMetadata;\n if (!searchMetadata) {\n continue;\n }\n\n extracted.push({\n toolId: step.tool?.id ?? null,\n toolName: step.tool?.name ?? null,\n timestampMs:\n typeof step.timestampMs === \"number\" ? step.timestampMs : null,\n searchMetadata,\n });\n }\n\n return extracted;\n}\n","import {\n CONTRIBUTOR_SEARCH_VALIDATION_VERSION,\n type ContributorSearchValidationArtifact,\n type ContributorSearchValidationCaseKind,\n type ContributorSearchValidationExpectation,\n type ContributorSearchResolution,\n type SearchCandidate,\n type SearchIntent,\n} from \"./types.js\";\n\nexport function buildContributorSearchValidationArtifact(params: {\n caseId: string;\n caseKind: ContributorSearchValidationCaseKind;\n rawRequest: string;\n intents: SearchIntent[];\n candidates: SearchCandidate[];\n resolution: ContributorSearchResolution;\n expectation?: ContributorSearchValidationExpectation;\n generatedAt?: string;\n}): ContributorSearchValidationArtifact {\n return {\n version: CONTRIBUTOR_SEARCH_VALIDATION_VERSION,\n generatedAt: params.generatedAt ?? new Date().toISOString(),\n caseId: params.caseId,\n caseKind: params.caseKind,\n rawRequest: params.rawRequest,\n intents: params.intents,\n candidates: params.candidates,\n resolution: {\n outcome: params.resolution.outcome,\n selectedCandidateId:\n params.resolution.selectedCandidate?.candidateId ?? null,\n shortlistCandidateIds: params.resolution.shortlist.map(\n (candidate) => candidate.candidateId\n ),\n relatedCandidateIds: params.resolution.relatedCandidates.map(\n (candidate) => candidate.candidateId\n ),\n rejectedCandidateIds: params.resolution.rejectedCandidates.map(\n (candidate) => candidate.candidateId\n ),\n confidence: params.resolution.confidence,\n reason: params.resolution.reason,\n degradedReasonCode: params.resolution.degraded?.reasonCode ?? null,\n },\n searchMetadata: params.resolution.searchMetadata,\n ...(params.expectation ? { expectation: params.expectation } : {}),\n };\n}\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
var jose = require('jose');
|
|
4
4
|
|
|
5
5
|
// src/client/types.ts
|
|
6
|
+
var ALLOWED_TOOL_CATEGORIES = [
|
|
7
|
+
"Crypto & DeFi",
|
|
8
|
+
"Financial Markets",
|
|
9
|
+
"Business & Sales",
|
|
10
|
+
"Marketing & SEO",
|
|
11
|
+
"Legal & Regulatory",
|
|
12
|
+
"Real World",
|
|
13
|
+
"Developer Tools",
|
|
14
|
+
"Research & Academia",
|
|
15
|
+
"Utility",
|
|
16
|
+
"Other"
|
|
17
|
+
];
|
|
6
18
|
var ContextError = class _ContextError extends Error {
|
|
7
19
|
constructor(message, code, statusCode, helpUrl) {
|
|
8
20
|
super(message);
|
|
@@ -14,6 +26,57 @@ var ContextError = class _ContextError extends Error {
|
|
|
14
26
|
}
|
|
15
27
|
};
|
|
16
28
|
|
|
29
|
+
// src/client/resources/developer.ts
|
|
30
|
+
var Developer = class {
|
|
31
|
+
constructor(client) {
|
|
32
|
+
this.client = client;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Update a tool listing's metadata (name, description, category).
|
|
36
|
+
*
|
|
37
|
+
* Requires an API key belonging to the tool's owner.
|
|
38
|
+
*
|
|
39
|
+
* @param toolId - The UUID of the tool to update
|
|
40
|
+
* @param updates - Fields to update (at least one required)
|
|
41
|
+
* @returns The updated tool metadata
|
|
42
|
+
*
|
|
43
|
+
* @throws {ContextError} If authentication fails or the caller does not own the tool
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const updated = await client.developer.updateTool("tool-uuid", {
|
|
48
|
+
* description: "Updated description with better showcase prompts",
|
|
49
|
+
* category: "crypto",
|
|
50
|
+
* });
|
|
51
|
+
* console.log(updated.updatedAt);
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
async updateTool(toolId, updates) {
|
|
55
|
+
if (!toolId) {
|
|
56
|
+
throw new ContextError("toolId is required");
|
|
57
|
+
}
|
|
58
|
+
if (updates.name === void 0 && updates.description === void 0 && updates.category === void 0) {
|
|
59
|
+
throw new ContextError(
|
|
60
|
+
"At least one field required: name, description, or category"
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
if (updates.category !== void 0 && updates.category !== null && !ALLOWED_TOOL_CATEGORIES.includes(updates.category)) {
|
|
64
|
+
throw new ContextError(
|
|
65
|
+
`category must be one of: ${ALLOWED_TOOL_CATEGORIES.join(", ")}`
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
const encodedToolId = encodeURIComponent(toolId);
|
|
69
|
+
return this.client._fetch(
|
|
70
|
+
`/api/v1/tools/${encodedToolId}`,
|
|
71
|
+
{
|
|
72
|
+
method: "PATCH",
|
|
73
|
+
body: JSON.stringify(updates)
|
|
74
|
+
},
|
|
75
|
+
{ retry: false }
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
17
80
|
// src/client/resources/discovery.ts
|
|
18
81
|
var Discovery = class {
|
|
19
82
|
constructor(client) {
|
|
@@ -238,6 +301,47 @@ var Query = class {
|
|
|
238
301
|
constructor(client) {
|
|
239
302
|
this.client = client;
|
|
240
303
|
}
|
|
304
|
+
normalizeResult(result) {
|
|
305
|
+
const candidate = result;
|
|
306
|
+
if (candidate.outcomeType === "clarification_required" && "clarification" in candidate && candidate.clarification) {
|
|
307
|
+
return candidate;
|
|
308
|
+
}
|
|
309
|
+
if (candidate.outcomeType === "capability_miss" && "capabilityMiss" in candidate && candidate.capabilityMiss) {
|
|
310
|
+
return candidate;
|
|
311
|
+
}
|
|
312
|
+
return {
|
|
313
|
+
...candidate,
|
|
314
|
+
outcomeType: "answer"
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
buildPolicyErrorEvent(params) {
|
|
318
|
+
if (params.clarificationPolicy !== "error") {
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
if (params.result.outcomeType === "clarification_required") {
|
|
322
|
+
return {
|
|
323
|
+
type: "error",
|
|
324
|
+
error: params.result.response,
|
|
325
|
+
code: "clarification_required",
|
|
326
|
+
reasonCode: "clarification_required",
|
|
327
|
+
outcomeType: "clarification_required",
|
|
328
|
+
clarification: params.result.clarification,
|
|
329
|
+
querySession: params.result.querySession
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
if (params.result.outcomeType === "capability_miss") {
|
|
333
|
+
return {
|
|
334
|
+
type: "error",
|
|
335
|
+
error: params.result.response,
|
|
336
|
+
code: "capability_miss",
|
|
337
|
+
reasonCode: "capability_miss",
|
|
338
|
+
outcomeType: "capability_miss",
|
|
339
|
+
capabilityMiss: params.result.capabilityMiss,
|
|
340
|
+
querySession: params.result.querySession
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
return void 0;
|
|
344
|
+
}
|
|
241
345
|
buildSyntheticTraceFromRunResult(params) {
|
|
242
346
|
const timeline = params.toolsUsed.map((tool, index) => ({
|
|
243
347
|
stepType: "tool-call",
|
|
@@ -380,6 +484,7 @@ var Query = class {
|
|
|
380
484
|
async run(options) {
|
|
381
485
|
const opts = typeof options === "string" ? { query: options } : options;
|
|
382
486
|
let terminalError;
|
|
487
|
+
let finalResult;
|
|
383
488
|
for await (const event of this.stream(opts)) {
|
|
384
489
|
if (event.type === "error") {
|
|
385
490
|
terminalError = {
|
|
@@ -391,9 +496,12 @@ var Query = class {
|
|
|
391
496
|
continue;
|
|
392
497
|
}
|
|
393
498
|
if (event.type === "done") {
|
|
394
|
-
|
|
499
|
+
finalResult = event.result;
|
|
395
500
|
}
|
|
396
501
|
}
|
|
502
|
+
if (finalResult) {
|
|
503
|
+
return finalResult;
|
|
504
|
+
}
|
|
397
505
|
if (terminalError) {
|
|
398
506
|
throw new ContextError(terminalError.error, terminalError.code);
|
|
399
507
|
}
|
|
@@ -445,7 +553,11 @@ var Query = class {
|
|
|
445
553
|
body: JSON.stringify({
|
|
446
554
|
query: opts.query,
|
|
447
555
|
tools: opts.tools,
|
|
448
|
-
|
|
556
|
+
resumeFrom: opts.resumeFrom,
|
|
557
|
+
forkFrom: opts.forkFrom,
|
|
558
|
+
clarificationPolicy: opts.clarificationPolicy,
|
|
559
|
+
answerModelId: opts.answerModelId,
|
|
560
|
+
responseShape: opts.responseShape,
|
|
449
561
|
includeData: opts.includeData,
|
|
450
562
|
includeDataUrl: opts.includeDataUrl,
|
|
451
563
|
includeDeveloperTrace: opts.includeDeveloperTrace,
|
|
@@ -483,22 +595,31 @@ var Query = class {
|
|
|
483
595
|
return event;
|
|
484
596
|
}
|
|
485
597
|
if (event.type === "done") {
|
|
598
|
+
const normalizedResult = this.normalizeResult(event.result);
|
|
486
599
|
let mergedTrace = this.mergeDeveloperTrace(
|
|
487
600
|
aggregatedTrace,
|
|
488
|
-
|
|
601
|
+
normalizedResult.developerTrace
|
|
489
602
|
);
|
|
490
603
|
if (!mergedTrace && opts.includeDeveloperTrace) {
|
|
491
604
|
mergedTrace = statusTimeline.length > 0 ? this.buildSyntheticTraceFromStreamStatus({
|
|
492
605
|
statusTimeline,
|
|
493
|
-
toolsUsed:
|
|
494
|
-
durationMs:
|
|
606
|
+
toolsUsed: normalizedResult.toolsUsed,
|
|
607
|
+
durationMs: normalizedResult.durationMs
|
|
495
608
|
}) : this.buildSyntheticTraceFromRunResult({
|
|
496
|
-
toolsUsed:
|
|
497
|
-
durationMs:
|
|
609
|
+
toolsUsed: normalizedResult.toolsUsed,
|
|
610
|
+
durationMs: normalizedResult.durationMs
|
|
498
611
|
});
|
|
499
612
|
}
|
|
500
613
|
if (mergedTrace) {
|
|
501
|
-
|
|
614
|
+
normalizedResult.developerTrace = mergedTrace;
|
|
615
|
+
}
|
|
616
|
+
event.result = normalizedResult;
|
|
617
|
+
const policyErrorEvent = this.buildPolicyErrorEvent({
|
|
618
|
+
result: normalizedResult,
|
|
619
|
+
clarificationPolicy: opts.clarificationPolicy
|
|
620
|
+
});
|
|
621
|
+
if (policyErrorEvent) {
|
|
622
|
+
return policyErrorEvent;
|
|
502
623
|
}
|
|
503
624
|
}
|
|
504
625
|
return event;
|
|
@@ -553,6 +674,10 @@ var ContextClient = class {
|
|
|
553
674
|
requestTimeoutMs;
|
|
554
675
|
streamTimeoutMs;
|
|
555
676
|
_closed = false;
|
|
677
|
+
/**
|
|
678
|
+
* Developer resource for managing tool listings (contributor/developer concerns).
|
|
679
|
+
*/
|
|
680
|
+
developer;
|
|
556
681
|
/**
|
|
557
682
|
* Discovery resource for searching tools
|
|
558
683
|
*/
|
|
@@ -594,6 +719,7 @@ var ContextClient = class {
|
|
|
594
719
|
this.baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, "");
|
|
595
720
|
this.requestTimeoutMs = requestTimeoutMs;
|
|
596
721
|
this.streamTimeoutMs = streamTimeoutMs;
|
|
722
|
+
this.developer = new Developer(this);
|
|
597
723
|
this.discovery = new Discovery(this);
|
|
598
724
|
this.tools = new Tools(this);
|
|
599
725
|
this.query = new Query(this);
|
|
@@ -917,6 +1043,7 @@ function wrapHandshakeResponse(action) {
|
|
|
917
1043
|
exports.CONTEXT_REQUIREMENTS_KEY = CONTEXT_REQUIREMENTS_KEY;
|
|
918
1044
|
exports.ContextClient = ContextClient;
|
|
919
1045
|
exports.ContextError = ContextError;
|
|
1046
|
+
exports.Developer = Developer;
|
|
920
1047
|
exports.Discovery = Discovery;
|
|
921
1048
|
exports.META_CONTEXT_REQUIREMENTS_KEY = META_CONTEXT_REQUIREMENTS_KEY;
|
|
922
1049
|
exports.Query = Query;
|