@bike4mind/cli 0.21.0 → 0.22.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/dist/{AgentHistoryStore-ucv6xXVT.mjs → AgentHistoryStore-7zQUOxkA.mjs} +1090 -200
- package/dist/{ApiClient-Ut1MXtOs.mjs → ApiClient-XdY9O3nz.mjs} +2 -2
- package/dist/{ConfigStore-CoY0l0gr.mjs → ConfigStore-8_0WsN5r.mjs} +210 -22
- package/dist/{buildAgent-jZhBReAr.mjs → buildAgent-CvPRH2n-.mjs} +2 -2
- package/dist/commands/acpCommand.mjs +4 -4
- package/dist/commands/apiCommand.mjs +1 -1
- package/dist/commands/doctorCommand.mjs +1 -1
- package/dist/commands/envCommand.mjs +1 -1
- package/dist/commands/headlessCommand.mjs +3 -3
- package/dist/commands/mcpCommand.mjs +3 -3
- package/dist/commands/pluginCommand.mjs +1 -1
- package/dist/commands/updateCommand.mjs +1 -1
- package/dist/index.mjs +5 -5
- package/dist/{package-CfIETbXd.mjs → package-OZdXqn0e.mjs} +1 -1
- package/dist/{serve-C9UDR5px.mjs → serve-CEqSZwl6.mjs} +2 -2
- package/package.json +8 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { n as logger, t as ConfigStore } from "./ConfigStore-
|
|
3
|
-
import { t as version } from "./package-
|
|
2
|
+
import { n as logger, t as ConfigStore } from "./ConfigStore-8_0WsN5r.mjs";
|
|
3
|
+
import { t as version } from "./package-OZdXqn0e.mjs";
|
|
4
4
|
import axios, { isAxiosError } from "axios";
|
|
5
5
|
//#region src/auth/OAuthClient.ts
|
|
6
6
|
/**
|
|
@@ -416,6 +416,7 @@ let ApiKeyType = /* @__PURE__ */ function(ApiKeyType) {
|
|
|
416
416
|
ApiKeyType["ollama"] = "ollama";
|
|
417
417
|
ApiKeyType["xai"] = "xai";
|
|
418
418
|
ApiKeyType["kimi"] = "kimi";
|
|
419
|
+
ApiKeyType["deepseek"] = "deepseek";
|
|
419
420
|
ApiKeyType["voyageai"] = "voyageai";
|
|
420
421
|
return ApiKeyType;
|
|
421
422
|
}({});
|
|
@@ -489,6 +490,16 @@ const FallbackInfoSchema = z$1.object({
|
|
|
489
490
|
primaryModelName: z$1.string(),
|
|
490
491
|
fallbackModel: z$1.string(),
|
|
491
492
|
fallbackModelName: z$1.string(),
|
|
493
|
+
/**
|
|
494
|
+
* Backend of each side, so the badge can name the provider path without
|
|
495
|
+
* inferring it from the id - a bare `deepseek-*` slug is the direct API on a
|
|
496
|
+
* hosted deployment and an Ollama pull on a self-hosted one. Optional and
|
|
497
|
+
* loosely typed: these payloads are persisted in browser storage, so a record
|
|
498
|
+
* written by an older build has neither field and an unknown backend name from
|
|
499
|
+
* a newer one must not fail the parse.
|
|
500
|
+
*/
|
|
501
|
+
primaryModelBackend: z$1.string().optional(),
|
|
502
|
+
fallbackModelBackend: z$1.string().optional(),
|
|
492
503
|
timestamp: z$1.number()
|
|
493
504
|
});
|
|
494
505
|
const ArtifactMetadataSchema = z$1.object({
|
|
@@ -895,6 +906,7 @@ let ModelBackend = /* @__PURE__ */ function(ModelBackend) {
|
|
|
895
906
|
ModelBackend["BFL"] = "bfl";
|
|
896
907
|
ModelBackend["XAI"] = "xai";
|
|
897
908
|
ModelBackend["Kimi"] = "kimi";
|
|
909
|
+
ModelBackend["DeepSeek"] = "deepseek";
|
|
898
910
|
ModelBackend["VoyageAI"] = "voyageai";
|
|
899
911
|
ModelBackend["AWS"] = "aws";
|
|
900
912
|
ModelBackend["LocalImage"] = "local-image";
|
|
@@ -1093,6 +1105,7 @@ let ChatModels = /* @__PURE__ */ function(ChatModels) {
|
|
|
1093
1105
|
ChatModels["KIMI_K2_5"] = "kimi-k2.5";
|
|
1094
1106
|
ChatModels["KIMI_K2_5_BEDROCK"] = "moonshotai.kimi-k2.5";
|
|
1095
1107
|
ChatModels["KIMI_K2_THINKING_BEDROCK"] = "moonshot.kimi-k2-thinking";
|
|
1108
|
+
ChatModels["DEEPSEEK_FLASH"] = "deepseek-flash";
|
|
1096
1109
|
return ChatModels;
|
|
1097
1110
|
}({});
|
|
1098
1111
|
const CHAT_MODELS = Object.values(ChatModels);
|
|
@@ -1227,7 +1240,8 @@ const NO_TEMPERATURE_MODELS = /* @__PURE__ */ new Set([
|
|
|
1227
1240
|
"kimi-k2.7-code",
|
|
1228
1241
|
"kimi-k2.7-code-highspeed",
|
|
1229
1242
|
"kimi-k2.6",
|
|
1230
|
-
"kimi-k2.5"
|
|
1243
|
+
"kimi-k2.5",
|
|
1244
|
+
"deepseek-flash"
|
|
1231
1245
|
]);
|
|
1232
1246
|
/**
|
|
1233
1247
|
* Models whose safety classifiers can decline a request with `stop_reason: 'refusal'`
|
|
@@ -1716,6 +1730,7 @@ const ADAPTER_FAMILIES = [
|
|
|
1716
1730
|
"gemini",
|
|
1717
1731
|
"xai",
|
|
1718
1732
|
"kimi",
|
|
1733
|
+
"deepseek",
|
|
1719
1734
|
"ollama",
|
|
1720
1735
|
"bfl",
|
|
1721
1736
|
"local-image",
|
|
@@ -1966,6 +1981,7 @@ const MODEL_INFO_FIELD_GROUP_OF = {
|
|
|
1966
1981
|
supportsImageVariation: "modalities",
|
|
1967
1982
|
supportsSafetyTolerance: "modalities",
|
|
1968
1983
|
deprecationDate: "lifecycle",
|
|
1984
|
+
replacedBy: "lifecycle",
|
|
1969
1985
|
adapterFamily: "dispatch",
|
|
1970
1986
|
dispatchProfile: "dispatch",
|
|
1971
1987
|
description: "presentation",
|
|
@@ -2089,6 +2105,8 @@ z$1.object({
|
|
|
2089
2105
|
}).optional(),
|
|
2090
2106
|
/** Optional: a state row written before Phase 4 has none, and must keep parsing. */
|
|
2091
2107
|
suggestion: ModelLifecycleSuggestion.optional(),
|
|
2108
|
+
/** Dispatch probes spent on this model, so one that always fails stops taking a budget slot. */
|
|
2109
|
+
probeAttempts: z$1.number().int().nonnegative().optional(),
|
|
2092
2110
|
createdAt: z$1.date(),
|
|
2093
2111
|
updatedAt: z$1.date()
|
|
2094
2112
|
});
|
|
@@ -3130,6 +3148,7 @@ function toModelInfo(record) {
|
|
|
3130
3148
|
disabled,
|
|
3131
3149
|
disabledReason: record.disabledReason ?? record.autoDisabledReason ?? (retired ? "retired by the provider" : void 0),
|
|
3132
3150
|
deprecationDate: record.lifecycle?.deprecationDate,
|
|
3151
|
+
replacedBy: record.lifecycle?.replacedBy,
|
|
3133
3152
|
trainingCutoff: record.trainingCutoff,
|
|
3134
3153
|
releaseDate: record.releaseDate,
|
|
3135
3154
|
logoFile: record.logoFile,
|
|
@@ -3162,6 +3181,7 @@ const VENDOR_BY_BACKEND = {
|
|
|
3162
3181
|
["gemini"]: "google",
|
|
3163
3182
|
["xai"]: "xai",
|
|
3164
3183
|
["kimi"]: "moonshotai",
|
|
3184
|
+
["deepseek"]: "deepseek",
|
|
3165
3185
|
["bfl"]: "black-forest-labs",
|
|
3166
3186
|
["aws"]: "amazon",
|
|
3167
3187
|
["voyageai"]: "voyageai",
|
|
@@ -3230,10 +3250,13 @@ function toModelRecord(info) {
|
|
|
3230
3250
|
supportsTools: info.supportsTools,
|
|
3231
3251
|
supportsImageVariation: info.supportsImageVariation,
|
|
3232
3252
|
supportsSafetyTolerance: info.supportsSafetyTolerance,
|
|
3233
|
-
lifecycle:
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3253
|
+
lifecycle: {
|
|
3254
|
+
...info.deprecationDate ? {
|
|
3255
|
+
status: "deprecated",
|
|
3256
|
+
deprecationDate: info.deprecationDate
|
|
3257
|
+
} : { status: "active" },
|
|
3258
|
+
...info.replacedBy ? { replacedBy: info.replacedBy } : {}
|
|
3259
|
+
},
|
|
3237
3260
|
description: info.description,
|
|
3238
3261
|
logoFile: info.logoFile,
|
|
3239
3262
|
rank: info.rank,
|
|
@@ -4016,6 +4039,7 @@ const QuestExportProgressAction = z$1.object({
|
|
|
4016
4039
|
downloadUrl: z$1.string().optional(),
|
|
4017
4040
|
filename: z$1.string().optional(),
|
|
4018
4041
|
errorMessage: z$1.string().optional(),
|
|
4042
|
+
droppedQuestCount: z$1.number().optional(),
|
|
4019
4043
|
clientId: z$1.string().optional()
|
|
4020
4044
|
});
|
|
4021
4045
|
const SpiderProgressUpdateAction = z$1.object({
|
|
@@ -6634,12 +6658,23 @@ let OllamaEmbeddingModel = /* @__PURE__ */ function(OllamaEmbeddingModel) {
|
|
|
6634
6658
|
return OllamaEmbeddingModel;
|
|
6635
6659
|
}({});
|
|
6636
6660
|
/**
|
|
6637
|
-
* The default embedding model
|
|
6638
|
-
*
|
|
6639
|
-
*
|
|
6640
|
-
*
|
|
6641
|
-
*
|
|
6642
|
-
*
|
|
6661
|
+
* The default embedding model this deployment advertises - the `defaultEmbeddingModel` admin-setting
|
|
6662
|
+
* default and the query-embedding fallback, so an operator who never opens admin settings still gets
|
|
6663
|
+
* a sensible model rather than an unconfigured one.
|
|
6664
|
+
*
|
|
6665
|
+
* Deliberately answers from the ENVIRONMENT only, and deliberately does NOT try to answer "can this
|
|
6666
|
+
* deployment actually reach that model". It cannot: on a hosted stage an SST secret arrives as a
|
|
6667
|
+
* linked Resource, never as process.env (see apps/client/server/modelDiscovery/adapters.ts), so an
|
|
6668
|
+
* absent OPENAI_API_KEY here means "unknown", not "no key" - it is absent on production too. This
|
|
6669
|
+
* function is also bundled into the browser via settingsMap, where every env read is undefined, so
|
|
6670
|
+
* any answer it gives must be one that is safe as a stage-neutral constant.
|
|
6671
|
+
*
|
|
6672
|
+
* Reachability is therefore decided where the resolved credentials are actually in hand, by
|
|
6673
|
+
* `resolveEmbeddingWithKeylessFallback` (fab-pipeline) - that is what lets a keyless cloud stage
|
|
6674
|
+
* embed on Bedrock without changing what any other stage advertises.
|
|
6675
|
+
*
|
|
6676
|
+
* The one arm that IS env-decidable: a self-host running Ollama has its base URL in real process.env
|
|
6677
|
+
* on both server and (absent) client, and no cloud credential can arrive by any other route.
|
|
6643
6678
|
*/
|
|
6644
6679
|
function defaultEmbeddingModelForEnv() {
|
|
6645
6680
|
const selfHost = process.env.B4M_SELF_HOST === "true";
|
|
@@ -6648,6 +6683,45 @@ function defaultEmbeddingModelForEnv() {
|
|
|
6648
6683
|
if (selfHost && hasOllama && !hasCloudEmbeddingKey) return "qwen3-embedding:0.6b";
|
|
6649
6684
|
return "text-embedding-ada-002";
|
|
6650
6685
|
}
|
|
6686
|
+
/**
|
|
6687
|
+
* True when this deployment can embed with no provider API key at all: a cloud stage reaches
|
|
6688
|
+
* Bedrock through its task/execution role's AWS credentials.
|
|
6689
|
+
*
|
|
6690
|
+
* Requires POSITIVE evidence of an execution role rather than merely "not self-host". A plain
|
|
6691
|
+
* `next dev` session and a CI job both leave B4M_SELF_HOST unset while holding no AWS credentials
|
|
6692
|
+
* at all, so an absence test would send them to the Bedrock SDK for an opaque `CredentialsProvider
|
|
6693
|
+
* Error` in place of the actionable OPENAI_KEY_MISSING_MESSAGE naming the key to set - the same
|
|
6694
|
+
* actionable-to-opaque trade this fallback exists to avoid, just in a different keyless place.
|
|
6695
|
+
*
|
|
6696
|
+
* BOTH runtimes must be covered, and they carry different markers. The Lambdas (vectorize
|
|
6697
|
+
* subscriber, the crons, the Next API routes) get AWS_LAMBDA_FUNCTION_NAME; ChatCompletion is a
|
|
6698
|
+
* Fargate service (infra/chatCompletion.ts) and gets the ECS task-role URI instead. Since
|
|
6699
|
+
* knowledgeBaseSearch runs inside that container, keying on the Lambda marker alone would leave
|
|
6700
|
+
* chat knowledge-base search failing on exactly the keyless stages this fallback is for.
|
|
6701
|
+
*
|
|
6702
|
+
* SST_RESOURCE_App is the third arm and the one this repo can prove: SST sets it on anything it
|
|
6703
|
+
* links, Lambda and Service alike (infra/chatCompletion.ts:129 and infra/agentExecutor.ts:54 both
|
|
6704
|
+
* note that linking alone exposes SST_RESOURCE_*). It covers the Fargate task whether or not the
|
|
6705
|
+
* ECS credential URI is present, and it is absent from a plain `next dev` and from CI, which is
|
|
6706
|
+
* the case that matters. `sst dev` does set it - correctly, since that session runs against real
|
|
6707
|
+
* AWS credentials.
|
|
6708
|
+
*
|
|
6709
|
+
* Self-host is excluded outright because it has no such role - its keyless path is the local
|
|
6710
|
+
* Ollama embedder (`isLocalEmbedderAvailable` in toolAvailability.ts), not Bedrock.
|
|
6711
|
+
*
|
|
6712
|
+
* Answers "is Bedrock reachable here", NOT "should we use it" - a keyed stage is keyless-capable
|
|
6713
|
+
* too, so this must only ever be asked ALONGSIDE a resolved credential table that came back empty.
|
|
6714
|
+
* `resolveEmbeddingWithKeylessFallback` is where the two questions are paired for callers free to
|
|
6715
|
+
* choose the model, and is what such a caller should use instead of asking this directly. The
|
|
6716
|
+
* direct callers are the ones that additionally need the answer BEFORE resolving, to decide
|
|
6717
|
+
* policy: toolAvailability reports whether embedding-backed tools are usable at all, and
|
|
6718
|
+
* data-lakes/semantic-search decides whether a substitution is permitted for this request before
|
|
6719
|
+
* it knows whether one is needed. Both still pair it with the table.
|
|
6720
|
+
*/
|
|
6721
|
+
function hasKeylessCloudEmbedder() {
|
|
6722
|
+
if (process.env.B4M_SELF_HOST === "true") return false;
|
|
6723
|
+
return !!(process.env.AWS_LAMBDA_FUNCTION_NAME || process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI || process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI || process.env.SST_RESOURCE_App);
|
|
6724
|
+
}
|
|
6651
6725
|
z$1.union([
|
|
6652
6726
|
z$1.enum(OpenAIEmbeddingModel),
|
|
6653
6727
|
z$1.enum(VoyageAIEmbeddingModel),
|
|
@@ -6655,6 +6729,18 @@ z$1.union([
|
|
|
6655
6729
|
z$1.enum(OllamaEmbeddingModel)
|
|
6656
6730
|
]);
|
|
6657
6731
|
/**
|
|
6732
|
+
* The measured per-space floors, rendered for an admin-facing description (e.g. "75 for
|
|
6733
|
+
* text-embedding-ada-002, 35 for text-embedding-3-small").
|
|
6734
|
+
*
|
|
6735
|
+
* Rendered rather than written out in prose because these numbers are expected to move - 35 is
|
|
6736
|
+
* provisional until it is re-derived against a production lake - and a description that restates
|
|
6737
|
+
* the table is a wrong number shown to operators the moment it drifts, with nothing failing.
|
|
6738
|
+
*/
|
|
6739
|
+
const forcedRetrievalFloorsBySpaceSummary = Object.entries({
|
|
6740
|
+
["text-embedding-ada-002"]: 75,
|
|
6741
|
+
["text-embedding-3-small"]: 35
|
|
6742
|
+
}).map(([space, pct]) => `${pct} for ${space}`).join(", ");
|
|
6743
|
+
/**
|
|
6658
6744
|
* Default text for the artifact-emission system prompt. Single source of truth used BOTH as the
|
|
6659
6745
|
* `ArtifactEmissionPrompt` admin setting's default AND as the runtime fallback in
|
|
6660
6746
|
* ChatCompletionProcess - so an unset/empty/cleared DB value reverts to this and never bricks
|
|
@@ -6847,6 +6933,7 @@ z$1.enum([
|
|
|
6847
6933
|
"geminiDemoKey",
|
|
6848
6934
|
"xaiApiKey",
|
|
6849
6935
|
"moonshotApiKey",
|
|
6936
|
+
"deepseekApiKey",
|
|
6850
6937
|
"voyageApiKey",
|
|
6851
6938
|
"FirecrawlApiKey",
|
|
6852
6939
|
"FirecrawlApiUrl",
|
|
@@ -6981,6 +7068,7 @@ z$1.enum([
|
|
|
6981
7068
|
"defaultEmbeddingModel",
|
|
6982
7069
|
"dataLakeSearchMaxFiles",
|
|
6983
7070
|
"dataLakeSearchMaxChunks",
|
|
7071
|
+
"dataLakeSearchMaxChunksPerFile",
|
|
6984
7072
|
"forcedRetrievalCharBudget",
|
|
6985
7073
|
"lakeMemoryRecallK",
|
|
6986
7074
|
"kbSearchDefaultResults",
|
|
@@ -7070,6 +7158,7 @@ z$1.enum([
|
|
|
7070
7158
|
"modelDiscoveryAllowEgress",
|
|
7071
7159
|
"modelDiscoveryPriceBandPct",
|
|
7072
7160
|
"modelDiscoveryAutoRemap",
|
|
7161
|
+
"modelDiscoveryProbeNewModels",
|
|
7073
7162
|
"prReportRepo",
|
|
7074
7163
|
"prReportIdentityMap",
|
|
7075
7164
|
"prReportWebhookUrl",
|
|
@@ -7841,6 +7930,10 @@ const API_SERVICE_GROUPS = {
|
|
|
7841
7930
|
{
|
|
7842
7931
|
key: "forcedRetrievalMinSimilarityPct",
|
|
7843
7932
|
order: 10
|
|
7933
|
+
},
|
|
7934
|
+
{
|
|
7935
|
+
key: "dataLakeSearchMaxChunksPerFile",
|
|
7936
|
+
order: 11
|
|
7844
7937
|
}
|
|
7845
7938
|
]
|
|
7846
7939
|
},
|
|
@@ -7948,6 +8041,16 @@ const API_SERVICE_GROUPS = {
|
|
|
7948
8041
|
order: 1
|
|
7949
8042
|
}]
|
|
7950
8043
|
},
|
|
8044
|
+
DEEPSEEK: {
|
|
8045
|
+
id: "deepseekAPIService",
|
|
8046
|
+
name: "DeepSeek Service",
|
|
8047
|
+
description: "DeepSeek API integration settings",
|
|
8048
|
+
icon: "AutoAwesome",
|
|
8049
|
+
settings: [{
|
|
8050
|
+
key: "deepseekApiKey",
|
|
8051
|
+
order: 1
|
|
8052
|
+
}]
|
|
8053
|
+
},
|
|
7951
8054
|
ANTHROPIC: {
|
|
7952
8055
|
id: "anthropicAPIService",
|
|
7953
8056
|
name: "Anthropic Service",
|
|
@@ -8647,6 +8750,10 @@ const API_SERVICE_GROUPS = {
|
|
|
8647
8750
|
{
|
|
8648
8751
|
key: "modelDiscoveryAutoRemap",
|
|
8649
8752
|
order: 6
|
|
8753
|
+
},
|
|
8754
|
+
{
|
|
8755
|
+
key: "modelDiscoveryProbeNewModels",
|
|
8756
|
+
order: 7
|
|
8650
8757
|
}
|
|
8651
8758
|
]
|
|
8652
8759
|
},
|
|
@@ -8732,6 +8839,16 @@ const settingsMap = {
|
|
|
8732
8839
|
group: API_SERVICE_GROUPS.MOONSHOT.id,
|
|
8733
8840
|
order: 1
|
|
8734
8841
|
}),
|
|
8842
|
+
deepseekApiKey: makeStringSetting({
|
|
8843
|
+
key: "deepseekApiKey",
|
|
8844
|
+
name: "DeepSeek API Key",
|
|
8845
|
+
defaultValue: "",
|
|
8846
|
+
description: "The global API Key for DeepSeek.",
|
|
8847
|
+
isSensitive: true,
|
|
8848
|
+
category: "AI",
|
|
8849
|
+
group: API_SERVICE_GROUPS.DEEPSEEK.id,
|
|
8850
|
+
order: 1
|
|
8851
|
+
}),
|
|
8735
8852
|
voyageApiKey: makeStringSetting({
|
|
8736
8853
|
key: "voyageApiKey",
|
|
8737
8854
|
name: "Voyage API Key",
|
|
@@ -10033,7 +10150,7 @@ const settingsMap = {
|
|
|
10033
10150
|
userReadable: true,
|
|
10034
10151
|
name: "Default Embedding Model",
|
|
10035
10152
|
defaultValue: defaultEmbeddingModelForEnv(),
|
|
10036
|
-
description: "The default embedding model to use",
|
|
10153
|
+
description: "The default embedding model to use. Changing it changes the SCALE of every similarity score in the system, so relevance floors do not carry across: a floor tuned for one model can sit above the entire range of another and reject everything. The server handles this for you on the floors it ships, applying the value measured for whichever model your documents are actually embedded with - but if you have set Forced Retrieval Absolute Floor by hand, re-measure it after changing this. Existing documents keep their old vectors and are only comparable to a query embedded the same way, so a change here needs a re-embed to take full effect; until then each set of documents is searched with the model it was indexed under.",
|
|
10037
10154
|
category: "AI",
|
|
10038
10155
|
group: API_SERVICE_GROUPS.EMBEDDING.id,
|
|
10039
10156
|
options: [
|
|
@@ -10065,6 +10182,17 @@ const settingsMap = {
|
|
|
10065
10182
|
order: 3,
|
|
10066
10183
|
scope: { settableAt: ["organization", "owner"] }
|
|
10067
10184
|
}),
|
|
10185
|
+
dataLakeSearchMaxChunksPerFile: makeNumberSetting({
|
|
10186
|
+
key: "dataLakeSearchMaxChunksPerFile",
|
|
10187
|
+
name: "Data Lake Search Max Chunks Per Document",
|
|
10188
|
+
defaultValue: 0,
|
|
10189
|
+
min: 0,
|
|
10190
|
+
description: "Most chunks from any ONE source document a data-lake semantic search may return in its top-K. A diversity guard for CONTESTED slots: where several documents answer the question, it stops the best-scoring one from taking slots the others could have filled. It is NOT a fix for severe crowding - the cap redistributes only among the candidates retrieval already returned, so a document that supplies enough of the top-scoring chunks to fill that pool on its own is one the cap cannot change at all. On a corpus of book-length documents, expect enabling this to change little beyond widening the vector-search request. 0 (default) disables the cap, byte-identical to behavior before this setting existed. The cap never SHRINKS a result set - once the spread-out picks are in, any slots still open are backfilled with the highest-scoring chunks the cap held back, so a lake whose only match is one document still returns a full top-K. A value at or above the result count is also a no-op, since nothing can ever be held back. Below it, each retrieval stream's candidate pool is widened to a fixed multiple of the result count so the cap has a spread to choose from. The scanned corpus itself does not grow (that is bounded separately), but the vector-search backends are asked for that many more matches, and a larger in-memory ranking pool costs some CPU. 2-3 is the useful range; 1 serves one passage per document, which suits a corpus of many short documents and starves a question whose answer spans one long one. The chat knowledge-base path ranks more passages than it serves, so it applies the cap a second time at the count it actually serves - otherwise the spread-out picks, which are by definition the lowest-scoring ones admitted, would land in the passages that path discards.",
|
|
10191
|
+
category: "AI",
|
|
10192
|
+
group: API_SERVICE_GROUPS.EMBEDDING.id,
|
|
10193
|
+
order: 11,
|
|
10194
|
+
scope: { settableAt: ["organization", "owner"] }
|
|
10195
|
+
}),
|
|
10068
10196
|
forcedRetrievalCharBudget: makeNumberSetting({
|
|
10069
10197
|
key: "forcedRetrievalCharBudget",
|
|
10070
10198
|
name: "Forced Retrieval Char Budget",
|
|
@@ -10145,7 +10273,7 @@ const settingsMap = {
|
|
|
10145
10273
|
min: 1,
|
|
10146
10274
|
max: 100,
|
|
10147
10275
|
int: true,
|
|
10148
|
-
description:
|
|
10276
|
+
description: `Absolute minimum cosine similarity, as a percent, a chunk must clear to be injected on a Data-Lake-mode turn. This is a sanity floor for genuinely unrelated content, NOT the ranking gate - the relative floor above does the ranking. LEAVE IT AT 75 UNLESS YOU HAVE MEASURED YOUR OWN CORPUS: a raw cosine means nothing outside the embedding model it was fitted to, so while this reads 75 the server ignores it and applies the floor measured for whichever model your documents are actually embedded with (${forcedRetrievalFloorsBySpaceSummary}, and no absolute floor at all for a model nobody has measured - the relative floor still applies). Set any other value and the server uses exactly that, in every space, which is yours to get right: 75 against text-embedding-3-small sits above that band entirely and returns nothing on every query. Where this floor lands inside your band decides a lot - on one measured corpus 74 / 75 / 76 swung recall 91% / 65% / 40% - and the same 75 that is a cliff on one lake rejects nothing at all on another. Re-measure after changing the embedding model; the sweep tool is packages/scripts/retrieval/forcedFloorSweep.ts.`,
|
|
10149
10277
|
category: "AI",
|
|
10150
10278
|
group: API_SERVICE_GROUPS.EMBEDDING.id,
|
|
10151
10279
|
order: 10,
|
|
@@ -10997,6 +11125,15 @@ const settingsMap = {
|
|
|
10997
11125
|
group: API_SERVICE_GROUPS.MODEL_DISCOVERY.id,
|
|
10998
11126
|
order: 6
|
|
10999
11127
|
}),
|
|
11128
|
+
modelDiscoveryProbeNewModels: makeBooleanSetting({
|
|
11129
|
+
key: "modelDiscoveryProbeNewModels",
|
|
11130
|
+
name: "Probe New Models for Dispatch",
|
|
11131
|
+
defaultValue: true,
|
|
11132
|
+
description: "Lets a write-mode run spend a forced one-tool call on a newly discovered OpenAI model to verify which token parameter and tool transport it takes, and turn its tools on. Off leaves every new OpenAI model with tools withheld until an operator writes the dispatch profile by hand.",
|
|
11133
|
+
category: "AI",
|
|
11134
|
+
group: API_SERVICE_GROUPS.MODEL_DISCOVERY.id,
|
|
11135
|
+
order: 7
|
|
11136
|
+
}),
|
|
11000
11137
|
prReportRepo: makeStringSetting({
|
|
11001
11138
|
key: "prReportRepo",
|
|
11002
11139
|
name: "PR Report Repository",
|
|
@@ -11089,7 +11226,8 @@ const ModelTelemetrySchema = z$1.object({
|
|
|
11089
11226
|
"google",
|
|
11090
11227
|
"xai",
|
|
11091
11228
|
"ollama",
|
|
11092
|
-
"moonshot"
|
|
11229
|
+
"moonshot",
|
|
11230
|
+
"deepseek"
|
|
11093
11231
|
]),
|
|
11094
11232
|
fallbackUsed: z$1.boolean(),
|
|
11095
11233
|
fallbackReason: z$1.string().optional(),
|
|
@@ -11769,6 +11907,31 @@ const RetrievalSummarySchema = z$1.object({
|
|
|
11769
11907
|
/** Lakes resolved at the moment retrieval ran, stamped point-in-time (not read live from the session). */
|
|
11770
11908
|
dataLakeTags: z$1.array(z$1.string()),
|
|
11771
11909
|
/**
|
|
11910
|
+
* The lake scope the turn's retrieval surfaces WOULD have searched, resolved at the seed site
|
|
11911
|
+
* whether or not any of them ran: the caller's accessible lakes narrowed to the session
|
|
11912
|
+
* (narrowLakeAccessToSession), or empty where the corpus is personal and the lake arms are
|
|
11913
|
+
* suppressed. `dataLakeTags` is the other half of the pair and answers a different question -
|
|
11914
|
+
* which lakes retrieval ACTUALLY used - so on a turn where retrieval never ran that one is empty
|
|
11915
|
+
* while this one still names whatever was in scope.
|
|
11916
|
+
*
|
|
11917
|
+
* EXISTS FOR THE OFFLINE REPLAY. `answerability` is reconstructed after the fact, and without a
|
|
11918
|
+
* recorded scope the replay had to rebuild one from the session's `retrievalTags` as they stand
|
|
11919
|
+
* at replay time - a session whose lake selection had since changed was replayed against a
|
|
11920
|
+
* corpus its turn never had, with nothing to flag it. Recording it here removes that drift for
|
|
11921
|
+
* every turn seeded after this landed; `probedAt` still discloses the content drift, which no
|
|
11922
|
+
* amount of recording can fix.
|
|
11923
|
+
*
|
|
11924
|
+
* Absence means NOT RECORDED (a turn predating this, or one whose `retrieval` was written only
|
|
11925
|
+
* by a surface rather than by the seed) - never "no lakes in scope", which is present-and-empty.
|
|
11926
|
+
* The replay must keep those apart: probing an unrecorded turn would mean inventing a scope,
|
|
11927
|
+
* which is the approximation this field exists to end.
|
|
11928
|
+
*
|
|
11929
|
+
* Only the seed writes it, so mergeRetrievalSummary carries it first-writer-wins rather than
|
|
11930
|
+
* unioning: a later surface write asserting a narrower scope must not be able to widen the
|
|
11931
|
+
* recorded one, and a union across the two would mean neither.
|
|
11932
|
+
*/
|
|
11933
|
+
lakeScope: z$1.array(z$1.string()).optional(),
|
|
11934
|
+
/**
|
|
11772
11935
|
* Ids of the lakes whose `systemPrompt` was injected this turn (getAccessibleDataLakePrompts),
|
|
11773
11936
|
* across every injection site (forced retrieval and the model-driven knowledge tools). NOT the
|
|
11774
11937
|
* prompt text itself - that already reaches the model in the completion, and copying it here
|
|
@@ -11880,15 +12043,15 @@ const RetrievalSummarySchema = z$1.object({
|
|
|
11880
12043
|
* (ChatCompletionFeatures' forced path, which has no ANN index) to exactly the turns that pay
|
|
11881
12044
|
* nothing for retrieval today. The measurement is not worth that latency on live traffic.
|
|
11882
12045
|
*
|
|
11883
|
-
* BEING A RECONSTRUCTION, IT CARRIES
|
|
12046
|
+
* BEING A RECONSTRUCTION, IT CARRIES DRIFTS THE OTHER FIELDS DO NOT:
|
|
11884
12047
|
* 1. Corpus CONTENT moves. A document added or reindexed between the turn and the replay is
|
|
11885
12048
|
* scored as though it had been there. `probedAt` discloses the gap; a replay run long after
|
|
11886
12049
|
* the window is weak evidence, not strong.
|
|
11887
|
-
* 2. Corpus SCOPE
|
|
11888
|
-
*
|
|
11889
|
-
*
|
|
11890
|
-
*
|
|
11891
|
-
*
|
|
12050
|
+
* 2. Corpus SCOPE no longer drifts: the seed records the turn's resolved scope in `lakeScope`
|
|
12051
|
+
* and the replay probes that, so a session whose lake selection has since changed is still
|
|
12052
|
+
* scored against the lakes its turn actually had. The cost is coverage rather than accuracy -
|
|
12053
|
+
* a turn with no recorded scope is skipped instead of approximated, so every turn predating
|
|
12054
|
+
* the field is outside the measurement.
|
|
11892
12055
|
* 3. The QUESTION can move out from under it. The probe is keyed to the quest, not to the
|
|
11893
12056
|
* prompt text it scored, so a turn whose prompt is later rewritten in place keeps a probe
|
|
11894
12057
|
* describing the question it used to ask. mergeRetrievalSummary preserves the probe across
|
|
@@ -11935,7 +12098,32 @@ const RetrievalSummarySchema = z$1.object({
|
|
|
11935
12098
|
* non-empty value does not prove the admission is what made the injection possible. Absent means no
|
|
11936
12099
|
* admitted id was among this turn's injections, including every turn on a session with none.
|
|
11937
12100
|
*/
|
|
11938
|
-
preauthorizedLakeIdsUsed: z$1.array(z$1.string()).optional()
|
|
12101
|
+
preauthorizedLakeIdsUsed: z$1.array(z$1.string()).optional(),
|
|
12102
|
+
/**
|
|
12103
|
+
* Which of this turn's injected lake prompt ids the caller holds an owner/curator GRANT on - the
|
|
12104
|
+
* per-arm sibling of `preauthorizedLakeIdsUsed`, and the reason both exist: `injectedLakePromptIds`
|
|
12105
|
+
* records THAT a lake's systemPrompt entered the turn, these two record WHICH ARM admitted it.
|
|
12106
|
+
* A subset of injectedLakePromptIds, never a superset. Derived at both injection sites via
|
|
12107
|
+
* grantedLakeIdsUsedFor.
|
|
12108
|
+
*
|
|
12109
|
+
* THE ARM WORTH NAMING SEPARATELY: the grant arm (#2495) is the only one that can cross an org
|
|
12110
|
+
* boundary - `grantLakeAccess` can hand a CURATOR grant to an arbitrary cross-tenant user, and
|
|
12111
|
+
* that grant carries injection trust. The creator and org arms cannot reach past one org, and a
|
|
12112
|
+
* reader grant is excluded permanently, so a lake listed here is the case an operator auditing
|
|
12113
|
+
* cross-tenant prompt influence is actually looking for.
|
|
12114
|
+
*
|
|
12115
|
+
* MEMBERSHIP, NOT CAUSATION, the same caveat the field above carries: a granted lake its holder
|
|
12116
|
+
* could already reach (they created it, or they are in its org) injects through the ordinary
|
|
12117
|
+
* trust arm and is listed here anyway, so a non-empty value does not prove the grant is what
|
|
12118
|
+
* made the injection possible. The two fields OVERLAP for that reason - a lake can appear in
|
|
12119
|
+
* both - so they are not a partition of injectedLakePromptIds and must not be counted as one.
|
|
12120
|
+
*
|
|
12121
|
+
* Absent means no injected id was grant-reached, including every turn where the grant read
|
|
12122
|
+
* FAILED (it is fail-quiet by design - telemetry must not drop the injection it records), so
|
|
12123
|
+
* absence is weaker evidence than presence. Date-bound any rollup: turns predating this field
|
|
12124
|
+
* carry nothing, and no backfill is possible - a past turn's grant rows have moved on.
|
|
12125
|
+
*/
|
|
12126
|
+
grantedLakeIdsUsed: z$1.array(z$1.string()).optional()
|
|
11939
12127
|
});
|
|
11940
12128
|
/**
|
|
11941
12129
|
* Why a grounded turn's library scan stopped short of the whole library.
|
|
@@ -16541,4 +16729,4 @@ var ConfigStore = class {
|
|
|
16541
16729
|
}
|
|
16542
16730
|
};
|
|
16543
16731
|
//#endregion
|
|
16544
|
-
export { SupportedFabFileMimeTypes as $,
|
|
16732
|
+
export { SupportedFabFileMimeTypes as $, selfClaimedActorKindSchema as $t, HTTPError as A, isPlaceholderApiKey as At, OPENAI_GPT_IMAGE_1_IMAGE_SIZES as B, reservationOutputTokens as Bt, DEFAULT_MUSIC_MODEL_ID as C, isGPTImageModel as Ct, FIXED_TEMPERATURE_MODELS as D, isMediaModelType as Dt, FIELD_GROUP_OF as E, isImageServeable as Et, MODEL_INFO_FIELD_GROUP_OF as F, isUserInitiatedAbort as Ft, PermissionDeniedError as G, toModelRecord as Gt, OllamaEmbeddingModel as H, secureParameters as Ht, McpServerName as I, isZodError as It, REFUSAL_FALLBACK_MODELS as J, withRetry as Jt, REASONING_EFFORT_INCOMPATIBLE_WITH_TOOLS_MODELS as K, usdToCredits as Kt, ModelBackend as L, mapMimeTypeToArtifactType as Lt, IMAGE_SIZE_CONSTRAINTS as M, isRetryableError as Mt, ImageModels as N, isSupportedFabFileMimeType as Nt, FORMAT_PROMPT_TEMPLATE as O, isModelAccessible as Ot, InternalServerError as P, isUnlimitedHistory as Pt, SpeechToTextModels as Q, actorKindSchema as Qt, NO_TEMPERATURE_MODELS as R, obfuscateApiKey as Rt, CorruptedFileError as S, isGPTImage2Model as St, DEGENERATE_FINISH_REASON as T, isImageAttachment as Tt, OpenAIEmbeddingModel as U, settingsMap as Ut, OPENAI_GPT_IMAGE_2_IMAGE_SIZES as V, resolveHistoryFetchLimit as Vt, PROMPT_TEXT_MAX as W, toModelInfo as Wt, REVIEW_GATE_STATUS_VALUES as X, actorColorIndex as Xt, RESPONSES_API_TOOL_MODELS as Y, ACTOR_COLOR_SLOTS as Yt, SUBQUEST_STATUS_VALUES as Z, actorKindMarker as Zt, BadRequestError as _, isAudioMimeType as _t, getCreditsUrl as a, VideoModels as at, CREDIT_DEDUCT_TRANSACTION_TYPES as b, isEarlyStop as bt, requireApiUrl as c, applyModelPriceCatalog as ct, AGENT_QUEST_MANIFEST as d, defaultEmbeddingModelForEnv as dt, buildRateLimitLogEntry as en, TTS_MAX_INPUT_CHARS as et, AGENT_QUEST_MCP_URI as f, getMcpProviderMetadata as ft, BFL_SAFETY_TOLERANCE as g, hasUsableLimits as gt, BEDROCK_NO_PROMPT_CACHING_MODELS as h, hasKeylessCloudEmbedder as ht, LOCAL_DEV_URL as i, VIDEO_SIZE_CONSTRAINTS as it, HttpStatus as j, isRenderableModelType as jt, ForbiddenError as k, isModelDeprecated as kt, resolveApiEndpoint as l, calculateRetryDelay as lt, ApiKeyType as m, getRetryAfterMs as mt, logger as n, isNearLimit as nn, UnauthorizedError as nt, getEnvironmentName as o, VoyageAIEmbeddingModel as ot, ARTIFACT_ATTRS_PATTERN as p, getQuestErrorCode as pt, REASONING_SUPPORTED_MODELS as q, usdToCreditsStochastic as qt, ApiEndpointUnconfiguredError as r, parseRateLimitHeaders as rn, UnprocessableEntityError as rt, parseApiUrl as s, WORK_ITEM_STATUSES as st, ConfigStore as t, extractSnippetMeta as tn, TooManyRequestsError as tt, AGENT_QUEST_ID as u, dayjsConfig_default as ut, BedrockEmbeddingModel as v, isChunkRebuildPending as vt, DEFAULT_UNKNOWN_CONTEXT_WINDOW as w, isGeminiModelId as wt, ChatModels as x, isFieldGroup as xt, CONTEXT_WINDOW_SAFETY_BUFFER_TOKENS as y, isChunkStalledFile as yt, NotFoundError as z, parseEmbeddingRateLimitHeaders as zt };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { F as loadContextFiles, J as setWebSocketToolExecutor, L as generateCliTools, M as ReActAgent, X as buildSystemPrompt, Y as getPlanModeFilePath, a as McpManager, i as AgentStore, l as OllamaBackend, n as BackgroundAgentManager, o as createSseBackend, r as SubagentOrchestrator, s as ServerLlmBackend, t as AgentHistoryStore } from "./AgentHistoryStore-
|
|
3
|
-
import { n as logger } from "./ConfigStore-
|
|
2
|
+
import { F as loadContextFiles, J as setWebSocketToolExecutor, L as generateCliTools, M as ReActAgent, X as buildSystemPrompt, Y as getPlanModeFilePath, a as McpManager, i as AgentStore, l as OllamaBackend, n as BackgroundAgentManager, o as createSseBackend, r as SubagentOrchestrator, s as ServerLlmBackend, t as AgentHistoryStore } from "./AgentHistoryStore-7zQUOxkA.mjs";
|
|
3
|
+
import { n as logger } from "./ConfigStore-8_0WsN5r.mjs";
|
|
4
4
|
import { z as z$1 } from "zod";
|
|
5
5
|
import WebSocket from "ws";
|
|
6
6
|
//#region src/llm/NotifyingLlmBackend.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as RemoteSkillSource, A as FallbackLlmBackend, C as createWriteTodosTool, D as createResumeAgentTool, E as createCoordinateTaskTool, I as PermissionManager, J as setWebSocketToolExecutor, O as createBackgroundAgentTools, Q as isReadOnlyTool, S as createTodoStore, et as CustomCommandStore, k as createAgentDelegateTool, nt as SessionStore, tt as CheckpointStore, w as createSkillTool, x as createFindDefinitionTool, y as createGetFileStructureTool } from "../AgentHistoryStore-
|
|
3
|
-
import { c as requireApiUrl, n as logger, t as ConfigStore } from "../ConfigStore-
|
|
4
|
-
import { t as ApiClient } from "../ApiClient-
|
|
5
|
-
import { a as createToolSearchTool, i as buildLlmBackend, n as buildSupportingStores, o as deferredToolRegistry, r as buildSandbox, s as NotifyingLlmBackend, t as buildAgent } from "../buildAgent-
|
|
2
|
+
import { $ as RemoteSkillSource, A as FallbackLlmBackend, C as createWriteTodosTool, D as createResumeAgentTool, E as createCoordinateTaskTool, I as PermissionManager, J as setWebSocketToolExecutor, O as createBackgroundAgentTools, Q as isReadOnlyTool, S as createTodoStore, et as CustomCommandStore, k as createAgentDelegateTool, nt as SessionStore, tt as CheckpointStore, w as createSkillTool, x as createFindDefinitionTool, y as createGetFileStructureTool } from "../AgentHistoryStore-7zQUOxkA.mjs";
|
|
3
|
+
import { c as requireApiUrl, n as logger, t as ConfigStore } from "../ConfigStore-8_0WsN5r.mjs";
|
|
4
|
+
import { t as ApiClient } from "../ApiClient-XdY9O3nz.mjs";
|
|
5
|
+
import { a as createToolSearchTool, i as buildLlmBackend, n as buildSupportingStores, o as deferredToolRegistry, r as buildSandbox, s as NotifyingLlmBackend, t as buildAgent } from "../buildAgent-CvPRH2n-.mjs";
|
|
6
6
|
import { randomUUID } from "crypto";
|
|
7
7
|
import { existsSync, realpathSync, statSync } from "fs";
|
|
8
8
|
import { isAbsolute } from "path";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { l as resolveApiEndpoint, s as parseApiUrl, t as ConfigStore } from "../ConfigStore-
|
|
2
|
+
import { l as resolveApiEndpoint, s as parseApiUrl, t as ConfigStore } from "../ConfigStore-8_0WsN5r.mjs";
|
|
3
3
|
//#region src/commands/apiCommand.ts
|
|
4
4
|
/**
|
|
5
5
|
* External API config command (--api-url / --reset-api)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { t as version } from "../package-
|
|
2
|
+
import { t as version } from "../package-OZdXqn0e.mjs";
|
|
3
3
|
import { a as fetchLatestVersion, c as isNpmPrefixWritable, i as compareSemver } from "../updateChecker-CQW8bxo6.mjs";
|
|
4
4
|
import { t as checkRipgrep } from "../ripgrepCheck-BmkyTK2i.mjs";
|
|
5
5
|
import { execSync } from "child_process";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as RemoteSkillSource, A as FallbackLlmBackend, B as classifyCommandRisk, C as createWriteTodosTool, D as createResumeAgentTool, E as createCoordinateTaskTool, F as loadContextFiles, I as PermissionManager, J as setWebSocketToolExecutor, L as generateCliTools, M as ReActAgent, O as createBackgroundAgentTools, Q as isReadOnlyTool, S as createTodoStore, X as buildSystemPrompt, a as McpManager, b as createWorkItemTools, et as CustomCommandStore, i as AgentStore, k as createAgentDelegateTool, n as BackgroundAgentManager, nt as SessionStore, o as createSseBackend, r as SubagentOrchestrator, t as AgentHistoryStore, tt as CheckpointStore, w as createSkillTool, x as createFindDefinitionTool, y as createGetFileStructureTool, z as SHELL_LIKE_TOOL_COMMAND_FIELDS } from "../AgentHistoryStore-
|
|
3
|
-
import { c as requireApiUrl, n as logger, t as ConfigStore } from "../ConfigStore-
|
|
4
|
-
import { t as ApiClient } from "../ApiClient-
|
|
2
|
+
import { $ as RemoteSkillSource, A as FallbackLlmBackend, B as classifyCommandRisk, C as createWriteTodosTool, D as createResumeAgentTool, E as createCoordinateTaskTool, F as loadContextFiles, I as PermissionManager, J as setWebSocketToolExecutor, L as generateCliTools, M as ReActAgent, O as createBackgroundAgentTools, Q as isReadOnlyTool, S as createTodoStore, X as buildSystemPrompt, a as McpManager, b as createWorkItemTools, et as CustomCommandStore, i as AgentStore, k as createAgentDelegateTool, n as BackgroundAgentManager, nt as SessionStore, o as createSseBackend, r as SubagentOrchestrator, t as AgentHistoryStore, tt as CheckpointStore, w as createSkillTool, x as createFindDefinitionTool, y as createGetFileStructureTool, z as SHELL_LIKE_TOOL_COMMAND_FIELDS } from "../AgentHistoryStore-7zQUOxkA.mjs";
|
|
3
|
+
import { c as requireApiUrl, n as logger, t as ConfigStore } from "../ConfigStore-8_0WsN5r.mjs";
|
|
4
|
+
import { t as ApiClient } from "../ApiClient-XdY9O3nz.mjs";
|
|
5
5
|
import { t as DEFAULT_SANDBOX_CONFIG } from "../types-LyRNHOiS.mjs";
|
|
6
6
|
import { r as reconstructTurnBlocks, t as WorkItemsClient } from "../WorkItemsClient-Cow6nXx7.mjs";
|
|
7
7
|
import { t as createSandboxRuntime } from "../SandboxRuntimeAdapter-ChGlxSGQ.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { t as ConfigStore } from "../ConfigStore-
|
|
3
|
-
import { t as version } from "../package-
|
|
2
|
+
import { t as ConfigStore } from "../ConfigStore-8_0WsN5r.mjs";
|
|
3
|
+
import { t as version } from "../package-OZdXqn0e.mjs";
|
|
4
4
|
//#region src/commands/mcpCommand.ts
|
|
5
5
|
/**
|
|
6
6
|
* External MCP commands (b4m mcp list, b4m mcp add, etc.)
|
|
@@ -70,7 +70,7 @@ async function handleMcpCommand(subcommand, argv) {
|
|
|
70
70
|
await handleDisable(config, argv.name, configStore);
|
|
71
71
|
break;
|
|
72
72
|
case "serve": {
|
|
73
|
-
const { handleMcpServeCommand } = await import("../serve-
|
|
73
|
+
const { handleMcpServeCommand } = await import("../serve-CEqSZwl6.mjs");
|
|
74
74
|
await handleMcpServeCommand({
|
|
75
75
|
http: Boolean(argv.http),
|
|
76
76
|
port: typeof argv.port === "number" ? argv.port : void 0,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { n as getDefaultPluginsDir, r as isFeatureEnabled, t as PluginStore } from "../PluginStore-DwvOJ-G3.mjs";
|
|
3
|
-
import { t as ConfigStore } from "../ConfigStore-
|
|
3
|
+
import { t as ConfigStore } from "../ConfigStore-8_0WsN5r.mjs";
|
|
4
4
|
import { execFileSync } from "child_process";
|
|
5
5
|
import { promises } from "fs";
|
|
6
6
|
import path from "path";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { t as version } from "../package-
|
|
2
|
+
import { t as version } from "../package-OZdXqn0e.mjs";
|
|
3
3
|
import { c as isNpmPrefixWritable, l as setAutoUpdatePreference, n as REEXEC_GUARD_ENV, o as forceCheckForUpdate, r as checkForUpdate, s as getAutoUpdatePreference, t as INSTALL_CMD, u as shouldAttemptAutoUpdate } from "../updateChecker-CQW8bxo6.mjs";
|
|
4
4
|
import { t as checkRipgrep } from "../ripgrepCheck-BmkyTK2i.mjs";
|
|
5
5
|
import { execSync, spawnSync } from "child_process";
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as RemoteSkillSource, A as FallbackLlmBackend, C as createWriteTodosTool, D as createResumeAgentTool, E as createCoordinateTaskTool, G as DEFAULT_THOROUGHNESS, H as DEFAULT_AGENT_MODEL, I as PermissionManager, J as setWebSocketToolExecutor, K as clearFeatureModuleTools, N as findIterationBoundary, O as createBackgroundAgentTools, P as extractCompactInstructions, Q as isReadOnlyTool, R as getProcessHooks, S as createTodoStore, T as parseAgentConfig, U as DEFAULT_MAX_ITERATIONS, V as ALWAYS_DENIED_FOR_AGENTS, W as DEFAULT_RETRY_CONFIG, X as buildSystemPrompt, Y as getPlanModeFilePath, Z as buildSkillsPromptSection, _ as createDecisionStore, at as searchCommands, b as createWorkItemTools, c as isTransientNetworkError, ct as searchFiles, d as createReviewGateTool, et as CustomCommandStore, f as formatReviewGatesOutput, ft as MAX_PASTE_SIZE, g as createDecisionLogTool, h as formatBlockersOutput, it as processFileReferences, j as substituteArguments, k as createAgentDelegateTool, lt as warmFileCache, m as createBlockerTools, nt as SessionStore, ot as mergeCommands, p as createBlockerStore, q as registerFeatureModuleTools, rt as hasFileReferences, st as formatFileSize, tt as CheckpointStore, u as createReviewGateStore, ut as COMPACTION_SUMMARY_MARKER, v as formatDecisionsOutput, w as createSkillTool, x as createFindDefinitionTool, y as createGetFileStructureTool } from "./AgentHistoryStore-
|
|
2
|
+
import { $ as RemoteSkillSource, A as FallbackLlmBackend, C as createWriteTodosTool, D as createResumeAgentTool, E as createCoordinateTaskTool, G as DEFAULT_THOROUGHNESS, H as DEFAULT_AGENT_MODEL, I as PermissionManager, J as setWebSocketToolExecutor, K as clearFeatureModuleTools, N as findIterationBoundary, O as createBackgroundAgentTools, P as extractCompactInstructions, Q as isReadOnlyTool, R as getProcessHooks, S as createTodoStore, T as parseAgentConfig, U as DEFAULT_MAX_ITERATIONS, V as ALWAYS_DENIED_FOR_AGENTS, W as DEFAULT_RETRY_CONFIG, X as buildSystemPrompt, Y as getPlanModeFilePath, Z as buildSkillsPromptSection, _ as createDecisionStore, at as searchCommands, b as createWorkItemTools, c as isTransientNetworkError, ct as searchFiles, d as createReviewGateTool, et as CustomCommandStore, f as formatReviewGatesOutput, ft as MAX_PASTE_SIZE, g as createDecisionLogTool, h as formatBlockersOutput, it as processFileReferences, j as substituteArguments, k as createAgentDelegateTool, lt as warmFileCache, m as createBlockerTools, nt as SessionStore, ot as mergeCommands, p as createBlockerStore, q as registerFeatureModuleTools, rt as hasFileReferences, st as formatFileSize, tt as CheckpointStore, u as createReviewGateStore, ut as COMPACTION_SUMMARY_MARKER, v as formatDecisionsOutput, w as createSkillTool, x as createFindDefinitionTool, y as createGetFileStructureTool } from "./AgentHistoryStore-7zQUOxkA.mjs";
|
|
3
3
|
import { a as selectLiveSubagentTokens, i as selectLiveSubagentCredits, n as selectActiveBackgroundShells, o as useCliStore, r as selectCompletedBackgroundShells, t as selectActiveBackgroundAgents } from "./store-CvjTpQPs.mjs";
|
|
4
4
|
import { r as isFeatureEnabled, t as PluginStore } from "./PluginStore-DwvOJ-G3.mjs";
|
|
5
|
-
import {
|
|
5
|
+
import { $t as selfClaimedActorKindSchema, Qt as actorKindSchema, X as REVIEW_GATE_STATUS_VALUES, Xt as actorColorIndex, Yt as ACTOR_COLOR_SLOTS, Z as SUBQUEST_STATUS_VALUES, Zt as actorKindMarker, a as getCreditsUrl, b as CREDIT_DEDUCT_TRANSACTION_TYPES, bt as isEarlyStop, c as requireApiUrl, i as LOCAL_DEV_URL, l as resolveApiEndpoint, n as logger, o as getEnvironmentName, r as ApiEndpointUnconfiguredError, s as parseApiUrl, t as ConfigStore, x as ChatModels } from "./ConfigStore-8_0WsN5r.mjs";
|
|
6
6
|
import { t as getShellSessionManager } from "./ShellSessionManager-6o8KZzl1-vrbPAUTq.mjs";
|
|
7
|
-
import { n as OAuthClient, t as ApiClient } from "./ApiClient-
|
|
7
|
+
import { n as OAuthClient, t as ApiClient } from "./ApiClient-XdY9O3nz.mjs";
|
|
8
8
|
import { i as getTokenCounter, n as ConversationContext, r as reconstructTurnBlocks, t as WorkItemsClient } from "./WorkItemsClient-Cow6nXx7.mjs";
|
|
9
|
-
import { a as createToolSearchTool, i as buildLlmBackend, n as buildSupportingStores, o as deferredToolRegistry, r as buildSandbox, s as NotifyingLlmBackend, t as buildAgent } from "./buildAgent-
|
|
10
|
-
import { t as version } from "./package-
|
|
9
|
+
import { a as createToolSearchTool, i as buildLlmBackend, n as buildSupportingStores, o as deferredToolRegistry, r as buildSandbox, s as NotifyingLlmBackend, t as buildAgent } from "./buildAgent-CvPRH2n-.mjs";
|
|
10
|
+
import { t as version } from "./package-OZdXqn0e.mjs";
|
|
11
11
|
import { r as checkForUpdate } from "./updateChecker-CQW8bxo6.mjs";
|
|
12
12
|
import React, { useCallback, useEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
|
|
13
13
|
import { Box, Static, Text, render, useApp, useInput, usePaste, useStdout } from "ink";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { W as PROMPT_TEXT_MAX, c as requireApiUrl, d as AGENT_QUEST_MANIFEST, f as AGENT_QUEST_MCP_URI, n as logger, s as parseApiUrl, t as ConfigStore, u as AGENT_QUEST_ID } from "./ConfigStore-
|
|
3
|
-
import { t as ApiClient } from "./ApiClient-
|
|
2
|
+
import { W as PROMPT_TEXT_MAX, c as requireApiUrl, d as AGENT_QUEST_MANIFEST, f as AGENT_QUEST_MCP_URI, n as logger, s as parseApiUrl, t as ConfigStore, u as AGENT_QUEST_ID } from "./ConfigStore-8_0WsN5r.mjs";
|
|
3
|
+
import { t as ApiClient } from "./ApiClient-XdY9O3nz.mjs";
|
|
4
4
|
import { z as z$1 } from "zod";
|
|
5
5
|
import { isAxiosError } from "axios";
|
|
6
6
|
import { Writable } from "node:stream";
|