@duvoai/cli 1.76.0 → 1.76.1
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/bin/duvo.js +48 -27
- package/package.json +1 -1
package/dist/bin/duvo.js
CHANGED
|
@@ -5110,8 +5110,17 @@ function buildModelAliasesForProvider(provider) {
|
|
|
5110
5110
|
__name(buildModelAliasesForProvider, "buildModelAliasesForProvider");
|
|
5111
5111
|
__name2(buildModelAliasesForProvider, "buildModelAliasesForProvider");
|
|
5112
5112
|
function buildModelAllowlistForProvider(provider) {
|
|
5113
|
+
if (provider === "default") {
|
|
5114
|
+
return [];
|
|
5115
|
+
}
|
|
5113
5116
|
const aliases = buildModelAliasesForProvider(provider);
|
|
5114
|
-
return [
|
|
5117
|
+
return [
|
|
5118
|
+
.../* @__PURE__ */ new Set([
|
|
5119
|
+
...Object.keys(aliases),
|
|
5120
|
+
...Object.values(aliases),
|
|
5121
|
+
...OSS_MODEL_IDS
|
|
5122
|
+
])
|
|
5123
|
+
];
|
|
5115
5124
|
}
|
|
5116
5125
|
__name(buildModelAllowlistForProvider, "buildModelAllowlistForProvider");
|
|
5117
5126
|
__name2(buildModelAllowlistForProvider, "buildModelAllowlistForProvider");
|
|
@@ -18111,8 +18120,17 @@ function buildModelAliasesForProvider2(provider) {
|
|
|
18111
18120
|
__name(buildModelAliasesForProvider2, "buildModelAliasesForProvider");
|
|
18112
18121
|
__name3(buildModelAliasesForProvider2, "buildModelAliasesForProvider");
|
|
18113
18122
|
function buildModelAllowlistForProvider2(provider) {
|
|
18123
|
+
if (provider === "default") {
|
|
18124
|
+
return [];
|
|
18125
|
+
}
|
|
18114
18126
|
const aliases = buildModelAliasesForProvider2(provider);
|
|
18115
|
-
return [
|
|
18127
|
+
return [
|
|
18128
|
+
.../* @__PURE__ */ new Set([
|
|
18129
|
+
...Object.keys(aliases),
|
|
18130
|
+
...Object.values(aliases),
|
|
18131
|
+
...OSS_MODEL_IDS2
|
|
18132
|
+
])
|
|
18133
|
+
];
|
|
18116
18134
|
}
|
|
18117
18135
|
__name(buildModelAllowlistForProvider2, "buildModelAllowlistForProvider");
|
|
18118
18136
|
__name3(buildModelAllowlistForProvider2, "buildModelAllowlistForProvider");
|
|
@@ -27713,12 +27731,32 @@ var CLOUD_LOGGING_SEVERITY = {
|
|
|
27713
27731
|
info: "INFO",
|
|
27714
27732
|
debug: "DEBUG"
|
|
27715
27733
|
};
|
|
27716
|
-
function
|
|
27734
|
+
function collectSearchableIdentifiers(extras) {
|
|
27735
|
+
const identifiers = {};
|
|
27736
|
+
for (const key of SEARCHABLE_KEYS) {
|
|
27737
|
+
const value = extras[key];
|
|
27738
|
+
if (value === void 0 || value === null) {
|
|
27739
|
+
continue;
|
|
27740
|
+
}
|
|
27741
|
+
identifiers[key.replace(/([A-Z])/g, "_$1").toLowerCase()] = String(value);
|
|
27742
|
+
}
|
|
27743
|
+
return identifiers;
|
|
27744
|
+
}
|
|
27745
|
+
__name(collectSearchableIdentifiers, "collectSearchableIdentifiers");
|
|
27746
|
+
__name3(collectSearchableIdentifiers, "collectSearchableIdentifiers");
|
|
27747
|
+
function writeErrorClassLogLine(severity, errorClass, message, identifiers) {
|
|
27717
27748
|
const line = JSON.stringify({
|
|
27718
27749
|
severity: CLOUD_LOGGING_SEVERITY[severity],
|
|
27719
27750
|
event: REPORTED_ERROR_LOG_EVENT,
|
|
27720
27751
|
error_class: errorClass,
|
|
27721
|
-
message
|
|
27752
|
+
message,
|
|
27753
|
+
// Whose failure this was. Without these the line answers "something broke"
|
|
27754
|
+
// and nothing else: a Teams bot delivery failure read as
|
|
27755
|
+
// `{error_class: "unclassified", event: "reported_error"}` could not be tied
|
|
27756
|
+
// to a tenant, team or agent, and attributing four of them took a timestamp
|
|
27757
|
+
// join against the database. Same keys Sentry already tags, so the set is
|
|
27758
|
+
// bounded and aggregatable by construction.
|
|
27759
|
+
...identifiers
|
|
27722
27760
|
});
|
|
27723
27761
|
if (severity === "warning") {
|
|
27724
27762
|
console.warn(line);
|
|
@@ -27737,19 +27775,17 @@ function makeSentryReporter(sentry) {
|
|
|
27737
27775
|
} else {
|
|
27738
27776
|
console.error(errorWithStack, extras);
|
|
27739
27777
|
}
|
|
27778
|
+
const identifiers = collectSearchableIdentifiers(extras);
|
|
27740
27779
|
writeErrorClassLogLine(
|
|
27741
27780
|
severity,
|
|
27742
27781
|
errorClass ?? UNCLASSIFIED_ERROR_CLASS,
|
|
27743
|
-
errorWithStack.message
|
|
27782
|
+
errorWithStack.message,
|
|
27783
|
+
identifiers
|
|
27744
27784
|
);
|
|
27745
27785
|
try {
|
|
27746
27786
|
sentry.withScope((scope) => {
|
|
27747
|
-
for (const
|
|
27748
|
-
|
|
27749
|
-
if (value !== void 0 && value !== null) {
|
|
27750
|
-
const tagKey = key.replace(/([A-Z])/g, "_$1").toLowerCase();
|
|
27751
|
-
scope.setTag(tagKey, String(value));
|
|
27752
|
-
}
|
|
27787
|
+
for (const [tagKey, value] of Object.entries(identifiers)) {
|
|
27788
|
+
scope.setTag(tagKey, value);
|
|
27753
27789
|
}
|
|
27754
27790
|
if (errorClass) {
|
|
27755
27791
|
scope.setTag("error_class", errorClass);
|
|
@@ -38094,11 +38130,6 @@ var FEATURE_FLAG_CATALOGUE = {
|
|
|
38094
38130
|
defaultValue: true,
|
|
38095
38131
|
description: "Kill switch for the live BambooHR credential probe that the connection create and update routes run before storing a BambooHR Company Subdomain and API Key. On by default: a wrong subdomain or key is rejected in the connection form instead of failing the first Run. Turn off (global override) if BambooHR changes the probed endpoint or starts refusing the probe, so setup keeps working without a deploy; local checks (subdomain format, required fields) still apply when off."
|
|
38096
38132
|
},
|
|
38097
|
-
BUILDER_ADVANCED_CONFIG: {
|
|
38098
|
-
key: "builder_advanced_config",
|
|
38099
|
-
defaultValue: false,
|
|
38100
|
-
description: "Shows the Advanced configuration editor in the agent builder, allowing raw JSON editing of the agent configuration."
|
|
38101
|
-
},
|
|
38102
38133
|
BUILDER_BROWSER_LOGIN_NUDGE: {
|
|
38103
38134
|
key: "builder_browser_login_nudge",
|
|
38104
38135
|
defaultValue: false,
|
|
@@ -38134,11 +38165,6 @@ var FEATURE_FLAG_CATALOGUE = {
|
|
|
38134
38165
|
defaultValue: false,
|
|
38135
38166
|
description: "Enables Clarity's self-serve funnel: the /start/clarity signup link, Clarity provisioning for a signup that arrives through it, and the process-mapping onboarding flow itself (company profile, job title, goal, one catalogue process, then a voice interview producing a current-state map). /start/clarity is the only way into that flow: it mints the caller their own Clarity organization and onboards them once, and every later visit opens that organization's landscape instead."
|
|
38136
38167
|
},
|
|
38137
|
-
CLARITY_NOTETAKER: {
|
|
38138
|
-
key: "clarity_notetaker",
|
|
38139
|
-
defaultValue: false,
|
|
38140
|
-
description: "Enables the Clarity meeting notetaker (Recall.ai bot). When disabled, the 'Meeting Notetaker' option is hidden in the Add Content menu and the POST /clarity/processes/:id/captures/meeting invite route returns 404; the Recall webhook callback is unaffected. Off-by-default for staged rollout."
|
|
38141
|
-
},
|
|
38142
38168
|
CLARITY_PROCESS_GUIDANCE_AUTHORITATIVE: {
|
|
38143
38169
|
key: "clarity_process_guidance_authoritative",
|
|
38144
38170
|
defaultValue: false,
|
|
@@ -38343,11 +38369,6 @@ var FEATURE_FLAG_CATALOGUE = {
|
|
|
38343
38369
|
key: "supervised_mode",
|
|
38344
38370
|
defaultValue: false,
|
|
38345
38371
|
description: "Per-team opt-in for Supervised mode \u2014 running an agent under a custom `PreToolUse` classifier hook that rules on every tool call before it executes (`permissionMode` stays `bypassPermissions`; the SDK's own auto mode is not used). When on, the builder's config menu (three-dots next to the composer) shows the Permission mode section \u2014 'Bypass permissions' vs 'Auto mode', the user-facing name for supervised mode \u2014 and build configs may persist `options.supervisedMode: true` (classifier asks route to the Requests center; per-tool-call verdicts render on run tool-call cards). When off (default), the section is hidden and saving a config with supervisedMode enabled is rejected at the build-config routes. Execution honors the frozen RunConfig regardless, so flipping the flag off does not break in-flight runs."
|
|
38346
|
-
},
|
|
38347
|
-
SUPPORT_ESCALATION: {
|
|
38348
|
-
key: "support_escalation",
|
|
38349
|
-
defaultValue: false,
|
|
38350
|
-
description: "Enables Ask Duvo support escalation \u2014 the chat drafts a user-reviewed escalation that files a Customer ticket in Duvo's own Intercom workspace. When disabled, the duvoChat escalation tool refuses and the escalation decide endpoints return 404. Off-by-default for staged rollout."
|
|
38351
38372
|
}
|
|
38352
38373
|
};
|
|
38353
38374
|
var FEATURE_FLAGS = Object.fromEntries(
|
|
@@ -70093,7 +70114,7 @@ __name(isStandaloneBinary, "isStandaloneBinary");
|
|
|
70093
70114
|
import { createRequire } from "node:module";
|
|
70094
70115
|
function getPackageMeta() {
|
|
70095
70116
|
if (true) {
|
|
70096
|
-
return { name: "@duvoai/cli", version: "1.76.
|
|
70117
|
+
return { name: "@duvoai/cli", version: "1.76.1" };
|
|
70097
70118
|
}
|
|
70098
70119
|
const require2 = createRequire(import.meta.url);
|
|
70099
70120
|
const raw = require2("../../package.json");
|