@integrity-labs/agt-cli 0.28.511 → 0.28.513
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/agt.js +4 -4
- package/dist/{chunk-OQBHTDWK.js → chunk-MDEA3PIS.js} +91 -22
- package/dist/chunk-MDEA3PIS.js.map +1 -0
- package/dist/{chunk-I3DZ3LI5.js → chunk-PZ3RIMNA.js} +18 -15
- package/dist/chunk-PZ3RIMNA.js.map +1 -0
- package/dist/{claude-pair-runtime-AK6RLKSR.js → claude-pair-runtime-C7FJTY3F.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/direct-chat-channel.js +40 -8
- package/dist/mcp/origami.js +53 -10
- package/dist/mcp/slack-channel.js +40 -8
- package/dist/mcp/telegram-channel.js +40 -8
- package/dist/{persistent-session-CMG4VWT6.js → persistent-session-QNYR2ZJA.js} +2 -2
- package/dist/{responsiveness-probe-COMUJVPF.js → responsiveness-probe-X3PAOSNA.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-I3DZ3LI5.js.map +0 -1
- package/dist/chunk-OQBHTDWK.js.map +0 -1
- /package/dist/{claude-pair-runtime-AK6RLKSR.js.map → claude-pair-runtime-C7FJTY3F.js.map} +0 -0
- /package/dist/{persistent-session-CMG4VWT6.js.map → persistent-session-QNYR2ZJA.js.map} +0 -0
- /package/dist/{responsiveness-probe-COMUJVPF.js.map → responsiveness-probe-X3PAOSNA.js.map} +0 -0
|
@@ -100,7 +100,7 @@ async function spawnPairSession(session) {
|
|
|
100
100
|
return { ok: true };
|
|
101
101
|
} catch {
|
|
102
102
|
}
|
|
103
|
-
const { resolveClaudeBinary } = await import("./persistent-session-
|
|
103
|
+
const { resolveClaudeBinary } = await import("./persistent-session-QNYR2ZJA.js");
|
|
104
104
|
const claudeBin = resolveClaudeBinary();
|
|
105
105
|
const pairEnv = {
|
|
106
106
|
...process.env,
|
|
@@ -373,4 +373,4 @@ export {
|
|
|
373
373
|
startClaudePair,
|
|
374
374
|
submitClaudePairCode
|
|
375
375
|
};
|
|
376
|
-
//# sourceMappingURL=claude-pair-runtime-
|
|
376
|
+
//# sourceMappingURL=claude-pair-runtime-C7FJTY3F.js.map
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
safeWriteJsonAtomic,
|
|
54
54
|
setConfigHash,
|
|
55
55
|
tripClass
|
|
56
|
-
} from "../chunk-
|
|
56
|
+
} from "../chunk-PZ3RIMNA.js";
|
|
57
57
|
import {
|
|
58
58
|
getProjectDir as getProjectDir2,
|
|
59
59
|
getReadyTasks,
|
|
@@ -173,7 +173,7 @@ import {
|
|
|
173
173
|
toOpencodeModel,
|
|
174
174
|
transcriptActivityAgeSeconds,
|
|
175
175
|
writeEgressAllowlist
|
|
176
|
-
} from "../chunk-
|
|
176
|
+
} from "../chunk-MDEA3PIS.js";
|
|
177
177
|
import {
|
|
178
178
|
reapOrphanChannelMcps
|
|
179
179
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -10071,7 +10071,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
10071
10071
|
var lastVersionCheckAt = 0;
|
|
10072
10072
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
10073
10073
|
var lastResponsivenessProbeAt = 0;
|
|
10074
|
-
var agtCliVersion = true ? "0.28.
|
|
10074
|
+
var agtCliVersion = true ? "0.28.513" : "dev";
|
|
10075
10075
|
function resolveBrewPath(execFileSync2) {
|
|
10076
10076
|
try {
|
|
10077
10077
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -11278,7 +11278,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
11278
11278
|
if (codeNames.length === 0) return;
|
|
11279
11279
|
void (async () => {
|
|
11280
11280
|
try {
|
|
11281
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11281
|
+
const { collectDiagnostics } = await import("../persistent-session-QNYR2ZJA.js");
|
|
11282
11282
|
await api.post("/host/heartbeat", {
|
|
11283
11283
|
host_id: hostId,
|
|
11284
11284
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -11385,7 +11385,7 @@ async function pollCycle() {
|
|
|
11385
11385
|
}
|
|
11386
11386
|
try {
|
|
11387
11387
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
11388
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11388
|
+
const { collectDiagnostics } = await import("../persistent-session-QNYR2ZJA.js");
|
|
11389
11389
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
11390
11390
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor) : void 0;
|
|
11391
11391
|
let tailscaleHostname;
|
|
@@ -11500,7 +11500,7 @@ async function pollCycle() {
|
|
|
11500
11500
|
collectResponsivenessProbes,
|
|
11501
11501
|
collectPanelessActivityProbes,
|
|
11502
11502
|
getResponsivenessIntervalMs
|
|
11503
|
-
} = await import("../responsiveness-probe-
|
|
11503
|
+
} = await import("../responsiveness-probe-X3PAOSNA.js");
|
|
11504
11504
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
11505
11505
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
11506
11506
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -11564,7 +11564,7 @@ async function pollCycle() {
|
|
|
11564
11564
|
collectResponsivenessProbes,
|
|
11565
11565
|
livePendingInboundOldestAgeSeconds,
|
|
11566
11566
|
parkPendingInbound
|
|
11567
|
-
} = await import("../responsiveness-probe-
|
|
11567
|
+
} = await import("../responsiveness-probe-X3PAOSNA.js");
|
|
11568
11568
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
11569
11569
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
11570
11570
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -15072,7 +15072,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
15072
15072
|
void api.post("/host/restart-ack", { host_id: hostId, agent_id: agentId, restart_requested_at: requestedAt }).catch((err) => log(`[restart-lane] ack failed for '${codeName}': ${err.message}`));
|
|
15073
15073
|
void (async () => {
|
|
15074
15074
|
try {
|
|
15075
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15075
|
+
const { collectDiagnostics } = await import("../persistent-session-QNYR2ZJA.js");
|
|
15076
15076
|
await api.post("/host/heartbeat", {
|
|
15077
15077
|
host_id: hostId,
|
|
15078
15078
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -15122,7 +15122,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
15122
15122
|
}
|
|
15123
15123
|
try {
|
|
15124
15124
|
const hostId = await getHostId();
|
|
15125
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15125
|
+
const { collectDiagnostics } = await import("../persistent-session-QNYR2ZJA.js");
|
|
15126
15126
|
await api.post("/host/heartbeat", {
|
|
15127
15127
|
host_id: hostId,
|
|
15128
15128
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -15640,7 +15640,7 @@ async function processClaudePairSessions(agents) {
|
|
|
15640
15640
|
killPairSession,
|
|
15641
15641
|
pairTmuxSession,
|
|
15642
15642
|
finalizeClaudePairOnboarding
|
|
15643
|
-
} = await import("../claude-pair-runtime-
|
|
15643
|
+
} = await import("../claude-pair-runtime-C7FJTY3F.js");
|
|
15644
15644
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
15645
15645
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
15646
15646
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -30945,6 +30945,11 @@ var integration_metadata_v1_default = {
|
|
|
30945
30945
|
pattern: "^https://",
|
|
30946
30946
|
description: "Absolute HTTPS URL the broker uses as the vendor API root. Required when any tool descriptor relies on http_templater (i.e. whenever `tools[]` is non-empty)."
|
|
30947
30947
|
},
|
|
30948
|
+
auth_scheme: {
|
|
30949
|
+
type: "string",
|
|
30950
|
+
pattern: "^[A-Za-z0-9!#$%&'*+.^_`|~-]+$",
|
|
30951
|
+
description: "Authorization scheme word placed before the credential, e.g. `Key` for Higgsfield's `Authorization: Key KEY_ID:KEY_SECRET` (ENG-8440). Omit for the `Bearer` default. Constrained to a single RFC 7230 token because it is concatenated straight into a header value."
|
|
30952
|
+
},
|
|
30948
30953
|
runtime_scopes: {
|
|
30949
30954
|
type: "object",
|
|
30950
30955
|
description: "Per-runtime-scope support map. Each slot is either null (the integration does not support installs at this scope) or an object describing how token resolution and auth work for that scope.",
|
|
@@ -32939,16 +32944,43 @@ var INTEGRATION_REGISTRY = [
|
|
|
32939
32944
|
id: "higgsfield",
|
|
32940
32945
|
name: "Higgsfield",
|
|
32941
32946
|
category: "media",
|
|
32942
|
-
description: "Generative media \u2014 image
|
|
32943
|
-
//
|
|
32944
|
-
//
|
|
32945
|
-
|
|
32947
|
+
description: "Generative media \u2014 Soul text-to-image with style presets and trained-character consistency, DoP image-to-video with motion presets, and lip-synced talking video. Uses Higgsfield's REST API with your own API key.",
|
|
32948
|
+
// ENG-8440: api_key, NOT the host-brokered MCP this used to be.
|
|
32949
|
+
//
|
|
32950
|
+
// Higgsfield MCP (`https://mcp.higgsfield.ai/mcp`) cannot be completed from
|
|
32951
|
+
// the console, and that is a vendor constraint rather than a gap in our
|
|
32952
|
+
// plumbing. Its `oauth-protected-resource` metadata offers two flows and
|
|
32953
|
+
// names the clients each is for: the redirect flow lists
|
|
32954
|
+
// ["anthropic","claude","claude-ai","claude-code"] and the device-code flow
|
|
32955
|
+
// lists ["openclaw","hermes","memoclaw"]. Our console appears in neither,
|
|
32956
|
+
// and the device authorization server
|
|
32957
|
+
// (`fnf-device-auth.higgsfield.ai/.well-known/oauth-authorization-server`)
|
|
32958
|
+
// still returns 404, so there is no discovery document to probe either.
|
|
32959
|
+
// The only client Higgsfield permits is Claude Code on the agent's own
|
|
32960
|
+
// host, driven by an operator in tmux — no console work removes that step.
|
|
32961
|
+
//
|
|
32962
|
+
// The REST API (`platform.higgsfield.ai`) has none of those constraints: a
|
|
32963
|
+
// static key pair the customer creates in their own Higgsfield account,
|
|
32964
|
+
// sent as `Authorization: Key KEY_ID:KEY_SECRET`. That makes this an
|
|
32965
|
+
// ordinary paste-a-key integration, and it means WE hold the credential —
|
|
32966
|
+
// storable, rotatable, revocable and auditable, none of which was true
|
|
32967
|
+
// under the MCP.
|
|
32968
|
+
//
|
|
32969
|
+
// Bring-your-own-key: generations bill to the customer's own Higgsfield
|
|
32970
|
+
// account, so an install is never metered by Augmented Team.
|
|
32971
|
+
//
|
|
32972
|
+
// NOTE: this entry carries no `remoteMcp`, so it contributes nothing to
|
|
32973
|
+
// `registryRemoteMcpKeys` and cannot prune the `higgsfield` key an older
|
|
32974
|
+
// host already wrote to `.mcp.json`. That pruning is why `'higgsfield'` is
|
|
32975
|
+
// a literal in `integrationDerivedKeys` in the claudecode adapter — do not
|
|
32976
|
+
// drop it while any host may still be carrying the retired MCP entry.
|
|
32977
|
+
supported_auth_types: ["api_key"],
|
|
32946
32978
|
capabilities: [
|
|
32947
|
-
{ id: "higgsfield:generate-image", name: "Generate Image", description: "Create
|
|
32948
|
-
{ id: "higgsfield:generate-video", name: "Generate Video", description: "
|
|
32949
|
-
{ id: "higgsfield:read-
|
|
32979
|
+
{ id: "higgsfield:generate-image", name: "Generate Image", description: "Create stills with Soul \u2014 style presets, plus trained-character consistency for a repeated face or product.", access: "write" },
|
|
32980
|
+
{ id: "higgsfield:generate-video", name: "Generate Video", description: "Animate a still into a short clip with DoP motion presets, or lip-sync a talking video from an image plus audio.", access: "write" },
|
|
32981
|
+
{ id: "higgsfield:read-jobs", name: "Poll Jobs & Presets", description: "Poll asynchronous generations to completion, and list the style and motion presets the generate tools accept.", access: "read" }
|
|
32950
32982
|
],
|
|
32951
|
-
docs_url: "https://higgsfield.ai/
|
|
32983
|
+
docs_url: "https://docs.higgsfield.ai/",
|
|
32952
32984
|
beta: true
|
|
32953
32985
|
},
|
|
32954
32986
|
{
|
package/dist/mcp/origami.js
CHANGED
|
@@ -37100,6 +37100,11 @@ var integration_metadata_v1_default = {
|
|
|
37100
37100
|
pattern: "^https://",
|
|
37101
37101
|
description: "Absolute HTTPS URL the broker uses as the vendor API root. Required when any tool descriptor relies on http_templater (i.e. whenever `tools[]` is non-empty)."
|
|
37102
37102
|
},
|
|
37103
|
+
auth_scheme: {
|
|
37104
|
+
type: "string",
|
|
37105
|
+
pattern: "^[A-Za-z0-9!#$%&'*+.^_`|~-]+$",
|
|
37106
|
+
description: "Authorization scheme word placed before the credential, e.g. `Key` for Higgsfield's `Authorization: Key KEY_ID:KEY_SECRET` (ENG-8440). Omit for the `Bearer` default. Constrained to a single RFC 7230 token because it is concatenated straight into a header value."
|
|
37107
|
+
},
|
|
37103
37108
|
runtime_scopes: {
|
|
37104
37109
|
type: "object",
|
|
37105
37110
|
description: "Per-runtime-scope support map. Each slot is either null (the integration does not support installs at this scope) or an object describing how token resolution and auth work for that scope.",
|
|
@@ -37254,7 +37259,7 @@ var FIXED_SECONDS = {
|
|
|
37254
37259
|
// ../core/dist/integrations/integration-broker/http-templater.js
|
|
37255
37260
|
var PLACEHOLDER_RE = /\{([a-zA-Z_][a-zA-Z0-9_]*)\}/g;
|
|
37256
37261
|
function buildHttpRequest(input) {
|
|
37257
|
-
const { tool, args, baseUrl, bearerToken, requestId, extraHeaders } = input;
|
|
37262
|
+
const { tool, args, baseUrl, bearerToken, authScheme, requestId, extraHeaders } = input;
|
|
37258
37263
|
const { method, path_template, query_template, headers_template, body_template, idempotency_key_header } = tool.http;
|
|
37259
37264
|
const path = templatePath(path_template, args);
|
|
37260
37265
|
const query = query_template ? buildQueryString(query_template, args) : "";
|
|
@@ -37263,7 +37268,7 @@ function buildHttpRequest(input) {
|
|
|
37263
37268
|
Accept: "application/json"
|
|
37264
37269
|
};
|
|
37265
37270
|
if (bearerToken) {
|
|
37266
|
-
headers["Authorization"] =
|
|
37271
|
+
headers["Authorization"] = `${resolveAuthScheme(authScheme)} ${bearerToken}`;
|
|
37267
37272
|
}
|
|
37268
37273
|
if (method !== "GET") {
|
|
37269
37274
|
const headerName = idempotency_key_header ?? "Idempotency-Key";
|
|
@@ -37341,6 +37346,17 @@ function omitKeys(args, keys) {
|
|
|
37341
37346
|
}
|
|
37342
37347
|
return out;
|
|
37343
37348
|
}
|
|
37349
|
+
function resolveAuthScheme(scheme) {
|
|
37350
|
+
if (scheme === void 0)
|
|
37351
|
+
return "Bearer";
|
|
37352
|
+
const trimmed = scheme.trim();
|
|
37353
|
+
if (trimmed === "")
|
|
37354
|
+
return "Bearer";
|
|
37355
|
+
if (!isValidHeaderName(trimmed)) {
|
|
37356
|
+
throw new TemplateError(`invalid auth_scheme: ${trimmed}`);
|
|
37357
|
+
}
|
|
37358
|
+
return trimmed;
|
|
37359
|
+
}
|
|
37344
37360
|
function isValidHeaderName(name) {
|
|
37345
37361
|
return /^[A-Za-z0-9!#$%&'*+.^_`|~-]+$/.test(name);
|
|
37346
37362
|
}
|
|
@@ -39266,16 +39282,43 @@ var INTEGRATION_REGISTRY = [
|
|
|
39266
39282
|
id: "higgsfield",
|
|
39267
39283
|
name: "Higgsfield",
|
|
39268
39284
|
category: "media",
|
|
39269
|
-
description: "Generative media \u2014 image
|
|
39270
|
-
//
|
|
39271
|
-
//
|
|
39272
|
-
|
|
39285
|
+
description: "Generative media \u2014 Soul text-to-image with style presets and trained-character consistency, DoP image-to-video with motion presets, and lip-synced talking video. Uses Higgsfield's REST API with your own API key.",
|
|
39286
|
+
// ENG-8440: api_key, NOT the host-brokered MCP this used to be.
|
|
39287
|
+
//
|
|
39288
|
+
// Higgsfield MCP (`https://mcp.higgsfield.ai/mcp`) cannot be completed from
|
|
39289
|
+
// the console, and that is a vendor constraint rather than a gap in our
|
|
39290
|
+
// plumbing. Its `oauth-protected-resource` metadata offers two flows and
|
|
39291
|
+
// names the clients each is for: the redirect flow lists
|
|
39292
|
+
// ["anthropic","claude","claude-ai","claude-code"] and the device-code flow
|
|
39293
|
+
// lists ["openclaw","hermes","memoclaw"]. Our console appears in neither,
|
|
39294
|
+
// and the device authorization server
|
|
39295
|
+
// (`fnf-device-auth.higgsfield.ai/.well-known/oauth-authorization-server`)
|
|
39296
|
+
// still returns 404, so there is no discovery document to probe either.
|
|
39297
|
+
// The only client Higgsfield permits is Claude Code on the agent's own
|
|
39298
|
+
// host, driven by an operator in tmux — no console work removes that step.
|
|
39299
|
+
//
|
|
39300
|
+
// The REST API (`platform.higgsfield.ai`) has none of those constraints: a
|
|
39301
|
+
// static key pair the customer creates in their own Higgsfield account,
|
|
39302
|
+
// sent as `Authorization: Key KEY_ID:KEY_SECRET`. That makes this an
|
|
39303
|
+
// ordinary paste-a-key integration, and it means WE hold the credential —
|
|
39304
|
+
// storable, rotatable, revocable and auditable, none of which was true
|
|
39305
|
+
// under the MCP.
|
|
39306
|
+
//
|
|
39307
|
+
// Bring-your-own-key: generations bill to the customer's own Higgsfield
|
|
39308
|
+
// account, so an install is never metered by Augmented Team.
|
|
39309
|
+
//
|
|
39310
|
+
// NOTE: this entry carries no `remoteMcp`, so it contributes nothing to
|
|
39311
|
+
// `registryRemoteMcpKeys` and cannot prune the `higgsfield` key an older
|
|
39312
|
+
// host already wrote to `.mcp.json`. That pruning is why `'higgsfield'` is
|
|
39313
|
+
// a literal in `integrationDerivedKeys` in the claudecode adapter — do not
|
|
39314
|
+
// drop it while any host may still be carrying the retired MCP entry.
|
|
39315
|
+
supported_auth_types: ["api_key"],
|
|
39273
39316
|
capabilities: [
|
|
39274
|
-
{ id: "higgsfield:generate-image", name: "Generate Image", description: "Create
|
|
39275
|
-
{ id: "higgsfield:generate-video", name: "Generate Video", description: "
|
|
39276
|
-
{ id: "higgsfield:read-
|
|
39317
|
+
{ id: "higgsfield:generate-image", name: "Generate Image", description: "Create stills with Soul \u2014 style presets, plus trained-character consistency for a repeated face or product.", access: "write" },
|
|
39318
|
+
{ id: "higgsfield:generate-video", name: "Generate Video", description: "Animate a still into a short clip with DoP motion presets, or lip-sync a talking video from an image plus audio.", access: "write" },
|
|
39319
|
+
{ id: "higgsfield:read-jobs", name: "Poll Jobs & Presets", description: "Poll asynchronous generations to completion, and list the style and motion presets the generate tools accept.", access: "read" }
|
|
39277
39320
|
],
|
|
39278
|
-
docs_url: "https://higgsfield.ai/
|
|
39321
|
+
docs_url: "https://docs.higgsfield.ai/",
|
|
39279
39322
|
beta: true
|
|
39280
39323
|
},
|
|
39281
39324
|
{
|
|
@@ -31170,6 +31170,11 @@ var integration_metadata_v1_default = {
|
|
|
31170
31170
|
pattern: "^https://",
|
|
31171
31171
|
description: "Absolute HTTPS URL the broker uses as the vendor API root. Required when any tool descriptor relies on http_templater (i.e. whenever `tools[]` is non-empty)."
|
|
31172
31172
|
},
|
|
31173
|
+
auth_scheme: {
|
|
31174
|
+
type: "string",
|
|
31175
|
+
pattern: "^[A-Za-z0-9!#$%&'*+.^_`|~-]+$",
|
|
31176
|
+
description: "Authorization scheme word placed before the credential, e.g. `Key` for Higgsfield's `Authorization: Key KEY_ID:KEY_SECRET` (ENG-8440). Omit for the `Bearer` default. Constrained to a single RFC 7230 token because it is concatenated straight into a header value."
|
|
31177
|
+
},
|
|
31173
31178
|
runtime_scopes: {
|
|
31174
31179
|
type: "object",
|
|
31175
31180
|
description: "Per-runtime-scope support map. Each slot is either null (the integration does not support installs at this scope) or an object describing how token resolution and auth work for that scope.",
|
|
@@ -33161,16 +33166,43 @@ var INTEGRATION_REGISTRY = [
|
|
|
33161
33166
|
id: "higgsfield",
|
|
33162
33167
|
name: "Higgsfield",
|
|
33163
33168
|
category: "media",
|
|
33164
|
-
description: "Generative media \u2014 image
|
|
33165
|
-
//
|
|
33166
|
-
//
|
|
33167
|
-
|
|
33169
|
+
description: "Generative media \u2014 Soul text-to-image with style presets and trained-character consistency, DoP image-to-video with motion presets, and lip-synced talking video. Uses Higgsfield's REST API with your own API key.",
|
|
33170
|
+
// ENG-8440: api_key, NOT the host-brokered MCP this used to be.
|
|
33171
|
+
//
|
|
33172
|
+
// Higgsfield MCP (`https://mcp.higgsfield.ai/mcp`) cannot be completed from
|
|
33173
|
+
// the console, and that is a vendor constraint rather than a gap in our
|
|
33174
|
+
// plumbing. Its `oauth-protected-resource` metadata offers two flows and
|
|
33175
|
+
// names the clients each is for: the redirect flow lists
|
|
33176
|
+
// ["anthropic","claude","claude-ai","claude-code"] and the device-code flow
|
|
33177
|
+
// lists ["openclaw","hermes","memoclaw"]. Our console appears in neither,
|
|
33178
|
+
// and the device authorization server
|
|
33179
|
+
// (`fnf-device-auth.higgsfield.ai/.well-known/oauth-authorization-server`)
|
|
33180
|
+
// still returns 404, so there is no discovery document to probe either.
|
|
33181
|
+
// The only client Higgsfield permits is Claude Code on the agent's own
|
|
33182
|
+
// host, driven by an operator in tmux — no console work removes that step.
|
|
33183
|
+
//
|
|
33184
|
+
// The REST API (`platform.higgsfield.ai`) has none of those constraints: a
|
|
33185
|
+
// static key pair the customer creates in their own Higgsfield account,
|
|
33186
|
+
// sent as `Authorization: Key KEY_ID:KEY_SECRET`. That makes this an
|
|
33187
|
+
// ordinary paste-a-key integration, and it means WE hold the credential —
|
|
33188
|
+
// storable, rotatable, revocable and auditable, none of which was true
|
|
33189
|
+
// under the MCP.
|
|
33190
|
+
//
|
|
33191
|
+
// Bring-your-own-key: generations bill to the customer's own Higgsfield
|
|
33192
|
+
// account, so an install is never metered by Augmented Team.
|
|
33193
|
+
//
|
|
33194
|
+
// NOTE: this entry carries no `remoteMcp`, so it contributes nothing to
|
|
33195
|
+
// `registryRemoteMcpKeys` and cannot prune the `higgsfield` key an older
|
|
33196
|
+
// host already wrote to `.mcp.json`. That pruning is why `'higgsfield'` is
|
|
33197
|
+
// a literal in `integrationDerivedKeys` in the claudecode adapter — do not
|
|
33198
|
+
// drop it while any host may still be carrying the retired MCP entry.
|
|
33199
|
+
supported_auth_types: ["api_key"],
|
|
33168
33200
|
capabilities: [
|
|
33169
|
-
{ id: "higgsfield:generate-image", name: "Generate Image", description: "Create
|
|
33170
|
-
{ id: "higgsfield:generate-video", name: "Generate Video", description: "
|
|
33171
|
-
{ id: "higgsfield:read-
|
|
33201
|
+
{ id: "higgsfield:generate-image", name: "Generate Image", description: "Create stills with Soul \u2014 style presets, plus trained-character consistency for a repeated face or product.", access: "write" },
|
|
33202
|
+
{ id: "higgsfield:generate-video", name: "Generate Video", description: "Animate a still into a short clip with DoP motion presets, or lip-sync a talking video from an image plus audio.", access: "write" },
|
|
33203
|
+
{ id: "higgsfield:read-jobs", name: "Poll Jobs & Presets", description: "Poll asynchronous generations to completion, and list the style and motion presets the generate tools accept.", access: "read" }
|
|
33172
33204
|
],
|
|
33173
|
-
docs_url: "https://higgsfield.ai/
|
|
33205
|
+
docs_url: "https://docs.higgsfield.ai/",
|
|
33174
33206
|
beta: true
|
|
33175
33207
|
},
|
|
33176
33208
|
{
|
|
@@ -31496,6 +31496,11 @@ var integration_metadata_v1_default = {
|
|
|
31496
31496
|
pattern: "^https://",
|
|
31497
31497
|
description: "Absolute HTTPS URL the broker uses as the vendor API root. Required when any tool descriptor relies on http_templater (i.e. whenever `tools[]` is non-empty)."
|
|
31498
31498
|
},
|
|
31499
|
+
auth_scheme: {
|
|
31500
|
+
type: "string",
|
|
31501
|
+
pattern: "^[A-Za-z0-9!#$%&'*+.^_`|~-]+$",
|
|
31502
|
+
description: "Authorization scheme word placed before the credential, e.g. `Key` for Higgsfield's `Authorization: Key KEY_ID:KEY_SECRET` (ENG-8440). Omit for the `Bearer` default. Constrained to a single RFC 7230 token because it is concatenated straight into a header value."
|
|
31503
|
+
},
|
|
31499
31504
|
runtime_scopes: {
|
|
31500
31505
|
type: "object",
|
|
31501
31506
|
description: "Per-runtime-scope support map. Each slot is either null (the integration does not support installs at this scope) or an object describing how token resolution and auth work for that scope.",
|
|
@@ -33487,16 +33492,43 @@ var INTEGRATION_REGISTRY = [
|
|
|
33487
33492
|
id: "higgsfield",
|
|
33488
33493
|
name: "Higgsfield",
|
|
33489
33494
|
category: "media",
|
|
33490
|
-
description: "Generative media \u2014 image
|
|
33491
|
-
//
|
|
33492
|
-
//
|
|
33493
|
-
|
|
33495
|
+
description: "Generative media \u2014 Soul text-to-image with style presets and trained-character consistency, DoP image-to-video with motion presets, and lip-synced talking video. Uses Higgsfield's REST API with your own API key.",
|
|
33496
|
+
// ENG-8440: api_key, NOT the host-brokered MCP this used to be.
|
|
33497
|
+
//
|
|
33498
|
+
// Higgsfield MCP (`https://mcp.higgsfield.ai/mcp`) cannot be completed from
|
|
33499
|
+
// the console, and that is a vendor constraint rather than a gap in our
|
|
33500
|
+
// plumbing. Its `oauth-protected-resource` metadata offers two flows and
|
|
33501
|
+
// names the clients each is for: the redirect flow lists
|
|
33502
|
+
// ["anthropic","claude","claude-ai","claude-code"] and the device-code flow
|
|
33503
|
+
// lists ["openclaw","hermes","memoclaw"]. Our console appears in neither,
|
|
33504
|
+
// and the device authorization server
|
|
33505
|
+
// (`fnf-device-auth.higgsfield.ai/.well-known/oauth-authorization-server`)
|
|
33506
|
+
// still returns 404, so there is no discovery document to probe either.
|
|
33507
|
+
// The only client Higgsfield permits is Claude Code on the agent's own
|
|
33508
|
+
// host, driven by an operator in tmux — no console work removes that step.
|
|
33509
|
+
//
|
|
33510
|
+
// The REST API (`platform.higgsfield.ai`) has none of those constraints: a
|
|
33511
|
+
// static key pair the customer creates in their own Higgsfield account,
|
|
33512
|
+
// sent as `Authorization: Key KEY_ID:KEY_SECRET`. That makes this an
|
|
33513
|
+
// ordinary paste-a-key integration, and it means WE hold the credential —
|
|
33514
|
+
// storable, rotatable, revocable and auditable, none of which was true
|
|
33515
|
+
// under the MCP.
|
|
33516
|
+
//
|
|
33517
|
+
// Bring-your-own-key: generations bill to the customer's own Higgsfield
|
|
33518
|
+
// account, so an install is never metered by Augmented Team.
|
|
33519
|
+
//
|
|
33520
|
+
// NOTE: this entry carries no `remoteMcp`, so it contributes nothing to
|
|
33521
|
+
// `registryRemoteMcpKeys` and cannot prune the `higgsfield` key an older
|
|
33522
|
+
// host already wrote to `.mcp.json`. That pruning is why `'higgsfield'` is
|
|
33523
|
+
// a literal in `integrationDerivedKeys` in the claudecode adapter — do not
|
|
33524
|
+
// drop it while any host may still be carrying the retired MCP entry.
|
|
33525
|
+
supported_auth_types: ["api_key"],
|
|
33494
33526
|
capabilities: [
|
|
33495
|
-
{ id: "higgsfield:generate-image", name: "Generate Image", description: "Create
|
|
33496
|
-
{ id: "higgsfield:generate-video", name: "Generate Video", description: "
|
|
33497
|
-
{ id: "higgsfield:read-
|
|
33527
|
+
{ id: "higgsfield:generate-image", name: "Generate Image", description: "Create stills with Soul \u2014 style presets, plus trained-character consistency for a repeated face or product.", access: "write" },
|
|
33528
|
+
{ id: "higgsfield:generate-video", name: "Generate Video", description: "Animate a still into a short clip with DoP motion presets, or lip-sync a talking video from an image plus audio.", access: "write" },
|
|
33529
|
+
{ id: "higgsfield:read-jobs", name: "Poll Jobs & Presets", description: "Poll asynchronous generations to completion, and list the style and motion presets the generate tools accept.", access: "read" }
|
|
33498
33530
|
],
|
|
33499
|
-
docs_url: "https://higgsfield.ai/
|
|
33531
|
+
docs_url: "https://docs.higgsfield.ai/",
|
|
33500
33532
|
beta: true
|
|
33501
33533
|
},
|
|
33502
33534
|
{
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
writeDirectChatSessionState,
|
|
38
38
|
writeEgressAllowlist,
|
|
39
39
|
writePersistentClaudeWrapper
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-MDEA3PIS.js";
|
|
41
41
|
import "./chunk-XWVM4KPK.js";
|
|
42
42
|
export {
|
|
43
43
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -79,4 +79,4 @@ export {
|
|
|
79
79
|
writeEgressAllowlist,
|
|
80
80
|
writePersistentClaudeWrapper
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=persistent-session-
|
|
82
|
+
//# sourceMappingURL=persistent-session-QNYR2ZJA.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MDEA3PIS.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -662,4 +662,4 @@ export {
|
|
|
662
662
|
readAndResetSlackReplyBindingClassifications,
|
|
663
663
|
readAndResetSlackReplyTargetClassifications
|
|
664
664
|
};
|
|
665
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
665
|
+
//# sourceMappingURL=responsiveness-probe-X3PAOSNA.js.map
|