@integrity-labs/agt-cli 0.28.1115 → 0.28.1116
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 +5 -5
- package/dist/{chunk-MKAOLKYE.js → chunk-5LXKP254.js} +4 -4
- package/dist/{chunk-I332Y7ZA.js → chunk-DC6EMGAO.js} +89 -1
- package/dist/{chunk-I332Y7ZA.js.map → chunk-DC6EMGAO.js.map} +1 -1
- package/dist/{chunk-YTCFFKTS.js → chunk-ZOHDIHUT.js} +2 -2
- package/dist/{claude-pair-runtime-LC2KGTRK.js → claude-pair-runtime-TSVIAG22.js} +2 -2
- package/dist/lib/manager-worker.js +16 -16
- package/dist/mcp/direct-chat-channel.js +32 -0
- package/dist/mcp/index.js +32 -0
- package/dist/mcp/origami.js +32 -0
- package/dist/mcp/slack-channel.js +32 -0
- package/dist/mcp/telegram-channel.js +32 -0
- package/dist/{persistent-session-DMGOR6L5.js → persistent-session-MFXGWRIB.js} +3 -3
- package/dist/{responsiveness-probe-JYYAJNID.js → responsiveness-probe-QUCL4YYS.js} +3 -3
- package/dist/{session-auth-dead-75QVSVYA.js → session-auth-dead-3ATVXZ5X.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-MKAOLKYE.js.map → chunk-5LXKP254.js.map} +0 -0
- /package/dist/{chunk-YTCFFKTS.js.map → chunk-ZOHDIHUT.js.map} +0 -0
- /package/dist/{claude-pair-runtime-LC2KGTRK.js.map → claude-pair-runtime-TSVIAG22.js.map} +0 -0
- /package/dist/{persistent-session-DMGOR6L5.js.map → persistent-session-MFXGWRIB.js.map} +0 -0
- /package/dist/{responsiveness-probe-JYYAJNID.js.map → responsiveness-probe-QUCL4YYS.js.map} +0 -0
- /package/dist/{session-auth-dead-75QVSVYA.js.map → session-auth-dead-3ATVXZ5X.js.map} +0 -0
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
rotateDailySession,
|
|
25
25
|
sessionFileExists,
|
|
26
26
|
todayLocalIso
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-DC6EMGAO.js";
|
|
28
28
|
import {
|
|
29
29
|
classifyUnanswerablePane,
|
|
30
30
|
findUsageLimitResetHint,
|
|
@@ -6113,4 +6113,4 @@ export {
|
|
|
6113
6113
|
stopAllSessionsAndWait,
|
|
6114
6114
|
getProjectDir
|
|
6115
6115
|
};
|
|
6116
|
-
//# sourceMappingURL=chunk-
|
|
6116
|
+
//# sourceMappingURL=chunk-ZOHDIHUT.js.map
|
|
@@ -266,7 +266,7 @@ async function spawnPairSession(session) {
|
|
|
266
266
|
return { ok: true };
|
|
267
267
|
} catch {
|
|
268
268
|
}
|
|
269
|
-
const { resolveClaudeBinary } = await import("./persistent-session-
|
|
269
|
+
const { resolveClaudeBinary } = await import("./persistent-session-MFXGWRIB.js");
|
|
270
270
|
const claudeBin = resolveClaudeBinary();
|
|
271
271
|
const pairEnv = {
|
|
272
272
|
...process.env,
|
|
@@ -734,4 +734,4 @@ export {
|
|
|
734
734
|
startClaudePair,
|
|
735
735
|
submitClaudePairCode
|
|
736
736
|
};
|
|
737
|
-
//# sourceMappingURL=claude-pair-runtime-
|
|
737
|
+
//# sourceMappingURL=claude-pair-runtime-TSVIAG22.js.map
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
safeWriteJsonAtomic,
|
|
69
69
|
setConfigHash,
|
|
70
70
|
tripClass
|
|
71
|
-
} from "../chunk-
|
|
71
|
+
} from "../chunk-5LXKP254.js";
|
|
72
72
|
import {
|
|
73
73
|
getProjectDir as getProjectDir2,
|
|
74
74
|
getReadyTasks,
|
|
@@ -155,7 +155,7 @@ import {
|
|
|
155
155
|
webFetchBaselineValue,
|
|
156
156
|
webFetchRestartNeeded,
|
|
157
157
|
writeEgressAllowlist
|
|
158
|
-
} from "../chunk-
|
|
158
|
+
} from "../chunk-ZOHDIHUT.js";
|
|
159
159
|
import {
|
|
160
160
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
161
161
|
AnchorSessionClient,
|
|
@@ -265,7 +265,7 @@ import {
|
|
|
265
265
|
subagentActivityAgeSeconds,
|
|
266
266
|
sumTranscriptUsageInWindow,
|
|
267
267
|
transcriptActivityAgeSeconds
|
|
268
|
-
} from "../chunk-
|
|
268
|
+
} from "../chunk-DC6EMGAO.js";
|
|
269
269
|
import {
|
|
270
270
|
classifyUnanswerablePane,
|
|
271
271
|
paneRemedy
|
|
@@ -14143,7 +14143,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
14143
14143
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
14144
14144
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
14145
14145
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
14146
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
14146
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-QUCL4YYS.js");
|
|
14147
14147
|
const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
|
|
14148
14148
|
if (newest === null) return null;
|
|
14149
14149
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -14901,7 +14901,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
14901
14901
|
var lastVersionCheckAt = 0;
|
|
14902
14902
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
14903
14903
|
var lastResponsivenessProbeAt = 0;
|
|
14904
|
-
var agtCliVersion = true ? "0.28.
|
|
14904
|
+
var agtCliVersion = true ? "0.28.1116" : "dev";
|
|
14905
14905
|
function resolveBrewPath(execFileSync3) {
|
|
14906
14906
|
try {
|
|
14907
14907
|
const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -16518,7 +16518,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
16518
16518
|
if (codeNames.length === 0) return;
|
|
16519
16519
|
void (async () => {
|
|
16520
16520
|
try {
|
|
16521
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
16521
|
+
const { collectDiagnostics } = await import("../persistent-session-MFXGWRIB.js");
|
|
16522
16522
|
await api.post("/host/heartbeat", {
|
|
16523
16523
|
host_id: hostId,
|
|
16524
16524
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
|
|
@@ -16660,7 +16660,7 @@ async function pollCycleInner() {
|
|
|
16660
16660
|
}
|
|
16661
16661
|
try {
|
|
16662
16662
|
const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
|
|
16663
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
16663
|
+
const { collectDiagnostics } = await import("../persistent-session-MFXGWRIB.js");
|
|
16664
16664
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
16665
16665
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor) : void 0;
|
|
16666
16666
|
let tailscaleHostname;
|
|
@@ -16868,7 +16868,7 @@ async function pollCycleInner() {
|
|
|
16868
16868
|
collectPanelessActivityProbes,
|
|
16869
16869
|
getResponsivenessIntervalMs,
|
|
16870
16870
|
occupancyQualificationClassifications
|
|
16871
|
-
} = await import("../responsiveness-probe-
|
|
16871
|
+
} = await import("../responsiveness-probe-QUCL4YYS.js");
|
|
16872
16872
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
16873
16873
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
16874
16874
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -16985,7 +16985,7 @@ async function pollCycleInner() {
|
|
|
16985
16985
|
collectResponsivenessProbes,
|
|
16986
16986
|
livePendingInboundOldestAgeSeconds,
|
|
16987
16987
|
parkPendingInbound
|
|
16988
|
-
} = await import("../responsiveness-probe-
|
|
16988
|
+
} = await import("../responsiveness-probe-QUCL4YYS.js");
|
|
16989
16989
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
|
|
16990
16990
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
16991
16991
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -17271,7 +17271,7 @@ async function pollCycleInner() {
|
|
|
17271
17271
|
}
|
|
17272
17272
|
}
|
|
17273
17273
|
);
|
|
17274
|
-
const { parkPendingInbound } = await import("../responsiveness-probe-
|
|
17274
|
+
const { parkPendingInbound } = await import("../responsiveness-probe-QUCL4YYS.js");
|
|
17275
17275
|
const { parked, deadLettered } = parkPendingInbound(codeName, new Date(fatalNowMs));
|
|
17276
17276
|
paneFatalStreak.delete(codeName);
|
|
17277
17277
|
paneFatalRestarts.set(codeName, [...history, fatalNowMs]);
|
|
@@ -17302,7 +17302,7 @@ async function pollCycleInner() {
|
|
|
17302
17302
|
TRANSCRIPT_MOUNT_ESCALATION_REFRESH_MS,
|
|
17303
17303
|
bindSourceEscalations
|
|
17304
17304
|
} = await import("../transcript-mount-health-OHE6IVJV.js");
|
|
17305
|
-
const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-
|
|
17305
|
+
const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-MFXGWRIB.js");
|
|
17306
17306
|
const mountConfig = resolveTranscriptMountConfig();
|
|
17307
17307
|
const liveAgents = agentState.persistentSessionAgents;
|
|
17308
17308
|
for (const tracked of [
|
|
@@ -17467,7 +17467,7 @@ async function pollCycleInner() {
|
|
|
17467
17467
|
}
|
|
17468
17468
|
try {
|
|
17469
17469
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
|
|
17470
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
17470
|
+
const { probeSessionAuth } = await import("../session-auth-dead-3ATVXZ5X.js");
|
|
17471
17471
|
const observations = [];
|
|
17472
17472
|
const pendingCacheCommits = [];
|
|
17473
17473
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -22055,7 +22055,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
22055
22055
|
try {
|
|
22056
22056
|
const freshId = rotateSessionForWedge(codeName);
|
|
22057
22057
|
consecutiveWedgeCycles.delete(codeName);
|
|
22058
|
-
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-
|
|
22058
|
+
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-QUCL4YYS.js");
|
|
22059
22059
|
const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
|
|
22060
22060
|
const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
|
|
22061
22061
|
const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
|
|
@@ -22098,7 +22098,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
22098
22098
|
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}`));
|
|
22099
22099
|
void (async () => {
|
|
22100
22100
|
try {
|
|
22101
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
22101
|
+
const { collectDiagnostics } = await import("../persistent-session-MFXGWRIB.js");
|
|
22102
22102
|
await api.post("/host/heartbeat", {
|
|
22103
22103
|
host_id: hostId,
|
|
22104
22104
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
|
|
@@ -22149,7 +22149,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
22149
22149
|
}
|
|
22150
22150
|
try {
|
|
22151
22151
|
const hostId = await getHostId();
|
|
22152
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
22152
|
+
const { collectDiagnostics } = await import("../persistent-session-MFXGWRIB.js");
|
|
22153
22153
|
await api.post("/host/heartbeat", {
|
|
22154
22154
|
host_id: hostId,
|
|
22155
22155
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
|
|
@@ -22822,7 +22822,7 @@ async function processClaudePairSessions(agents) {
|
|
|
22822
22822
|
// cannot take it for itself — by the time it runs, the write it is looking
|
|
22823
22823
|
// for may already have happened.
|
|
22824
22824
|
snapshotPairConfig
|
|
22825
|
-
} = await import("../claude-pair-runtime-
|
|
22825
|
+
} = await import("../claude-pair-runtime-TSVIAG22.js");
|
|
22826
22826
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
22827
22827
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
22828
22828
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -33316,6 +33316,38 @@ var OAUTH_PROVIDERS = {
|
|
|
33316
33316
|
extraAuthorizeParams: {},
|
|
33317
33317
|
clientAuthMethod: "body",
|
|
33318
33318
|
userInfoUrl: "https://api.linkedin.com/v2/userinfo"
|
|
33319
|
+
},
|
|
33320
|
+
// CS-2039: Google Business Profile, native OAuth + brokered REST (the
|
|
33321
|
+
// linkedin-ads shape). Confidential Google client with refresh tokens, the
|
|
33322
|
+
// same model as google-workspace; OAUTH_GOOGLE_BUSINESS_PROFILE_CLIENT_ID /
|
|
33323
|
+
// _SECRET may be the SAME Google OAuth client as google-workspace (the
|
|
33324
|
+
// redirect URI `/integrations/oauth/callback` is shared by every provider).
|
|
33325
|
+
//
|
|
33326
|
+
// `business.manage` is the ONLY Business Profile scope Google offers: there
|
|
33327
|
+
// is no read-only variant, so read-only is enforced by the broker exposing
|
|
33328
|
+
// read tools only (google-business-profile-shared.ts), not by consent.
|
|
33329
|
+
// That is also why `readOnlyScopes` is omitted rather than set equal.
|
|
33330
|
+
//
|
|
33331
|
+
// THE GATE THAT IS NOT CODE: every Business Profile API sits at a quota of
|
|
33332
|
+
// 0 requests/minute per Google Cloud project until Google approves that
|
|
33333
|
+
// project's "Application for Basic API Access". Until then every call 429s.
|
|
33334
|
+
// See docs/runbooks/google-business-profile-dogfood.md.
|
|
33335
|
+
//
|
|
33336
|
+
// No userInfoUrl: the userinfo endpoint needs `openid`/`email`, which are
|
|
33337
|
+
// deliberately not requested, so the callback's best-effort label falls
|
|
33338
|
+
// back to a plain "Connected".
|
|
33339
|
+
"google-business-profile": {
|
|
33340
|
+
definitionId: "google-business-profile",
|
|
33341
|
+
authorizeUrl: "https://accounts.google.com/o/oauth2/v2/auth",
|
|
33342
|
+
tokenUrl: "https://oauth2.googleapis.com/token",
|
|
33343
|
+
revokeUrl: "https://oauth2.googleapis.com/revoke",
|
|
33344
|
+
defaultScopes: ["https://www.googleapis.com/auth/business.manage"],
|
|
33345
|
+
supportsRefresh: true,
|
|
33346
|
+
extraAuthorizeParams: {
|
|
33347
|
+
access_type: "offline",
|
|
33348
|
+
prompt: "consent"
|
|
33349
|
+
},
|
|
33350
|
+
clientAuthMethod: "body"
|
|
33319
33351
|
}
|
|
33320
33352
|
};
|
|
33321
33353
|
OAUTH_PROVIDERS["xero-control-plane"] = {
|
package/dist/mcp/index.js
CHANGED
|
@@ -25801,6 +25801,38 @@ var OAUTH_PROVIDERS = {
|
|
|
25801
25801
|
extraAuthorizeParams: {},
|
|
25802
25802
|
clientAuthMethod: "body",
|
|
25803
25803
|
userInfoUrl: "https://api.linkedin.com/v2/userinfo"
|
|
25804
|
+
},
|
|
25805
|
+
// CS-2039: Google Business Profile, native OAuth + brokered REST (the
|
|
25806
|
+
// linkedin-ads shape). Confidential Google client with refresh tokens, the
|
|
25807
|
+
// same model as google-workspace; OAUTH_GOOGLE_BUSINESS_PROFILE_CLIENT_ID /
|
|
25808
|
+
// _SECRET may be the SAME Google OAuth client as google-workspace (the
|
|
25809
|
+
// redirect URI `/integrations/oauth/callback` is shared by every provider).
|
|
25810
|
+
//
|
|
25811
|
+
// `business.manage` is the ONLY Business Profile scope Google offers: there
|
|
25812
|
+
// is no read-only variant, so read-only is enforced by the broker exposing
|
|
25813
|
+
// read tools only (google-business-profile-shared.ts), not by consent.
|
|
25814
|
+
// That is also why `readOnlyScopes` is omitted rather than set equal.
|
|
25815
|
+
//
|
|
25816
|
+
// THE GATE THAT IS NOT CODE: every Business Profile API sits at a quota of
|
|
25817
|
+
// 0 requests/minute per Google Cloud project until Google approves that
|
|
25818
|
+
// project's "Application for Basic API Access". Until then every call 429s.
|
|
25819
|
+
// See docs/runbooks/google-business-profile-dogfood.md.
|
|
25820
|
+
//
|
|
25821
|
+
// No userInfoUrl: the userinfo endpoint needs `openid`/`email`, which are
|
|
25822
|
+
// deliberately not requested, so the callback's best-effort label falls
|
|
25823
|
+
// back to a plain "Connected".
|
|
25824
|
+
"google-business-profile": {
|
|
25825
|
+
definitionId: "google-business-profile",
|
|
25826
|
+
authorizeUrl: "https://accounts.google.com/o/oauth2/v2/auth",
|
|
25827
|
+
tokenUrl: "https://oauth2.googleapis.com/token",
|
|
25828
|
+
revokeUrl: "https://oauth2.googleapis.com/revoke",
|
|
25829
|
+
defaultScopes: ["https://www.googleapis.com/auth/business.manage"],
|
|
25830
|
+
supportsRefresh: true,
|
|
25831
|
+
extraAuthorizeParams: {
|
|
25832
|
+
access_type: "offline",
|
|
25833
|
+
prompt: "consent"
|
|
25834
|
+
},
|
|
25835
|
+
clientAuthMethod: "body"
|
|
25804
25836
|
}
|
|
25805
25837
|
};
|
|
25806
25838
|
OAUTH_PROVIDERS["xero-control-plane"] = {
|
package/dist/mcp/origami.js
CHANGED
|
@@ -39950,6 +39950,38 @@ var OAUTH_PROVIDERS = {
|
|
|
39950
39950
|
extraAuthorizeParams: {},
|
|
39951
39951
|
clientAuthMethod: "body",
|
|
39952
39952
|
userInfoUrl: "https://api.linkedin.com/v2/userinfo"
|
|
39953
|
+
},
|
|
39954
|
+
// CS-2039: Google Business Profile, native OAuth + brokered REST (the
|
|
39955
|
+
// linkedin-ads shape). Confidential Google client with refresh tokens, the
|
|
39956
|
+
// same model as google-workspace; OAUTH_GOOGLE_BUSINESS_PROFILE_CLIENT_ID /
|
|
39957
|
+
// _SECRET may be the SAME Google OAuth client as google-workspace (the
|
|
39958
|
+
// redirect URI `/integrations/oauth/callback` is shared by every provider).
|
|
39959
|
+
//
|
|
39960
|
+
// `business.manage` is the ONLY Business Profile scope Google offers: there
|
|
39961
|
+
// is no read-only variant, so read-only is enforced by the broker exposing
|
|
39962
|
+
// read tools only (google-business-profile-shared.ts), not by consent.
|
|
39963
|
+
// That is also why `readOnlyScopes` is omitted rather than set equal.
|
|
39964
|
+
//
|
|
39965
|
+
// THE GATE THAT IS NOT CODE: every Business Profile API sits at a quota of
|
|
39966
|
+
// 0 requests/minute per Google Cloud project until Google approves that
|
|
39967
|
+
// project's "Application for Basic API Access". Until then every call 429s.
|
|
39968
|
+
// See docs/runbooks/google-business-profile-dogfood.md.
|
|
39969
|
+
//
|
|
39970
|
+
// No userInfoUrl: the userinfo endpoint needs `openid`/`email`, which are
|
|
39971
|
+
// deliberately not requested, so the callback's best-effort label falls
|
|
39972
|
+
// back to a plain "Connected".
|
|
39973
|
+
"google-business-profile": {
|
|
39974
|
+
definitionId: "google-business-profile",
|
|
39975
|
+
authorizeUrl: "https://accounts.google.com/o/oauth2/v2/auth",
|
|
39976
|
+
tokenUrl: "https://oauth2.googleapis.com/token",
|
|
39977
|
+
revokeUrl: "https://oauth2.googleapis.com/revoke",
|
|
39978
|
+
defaultScopes: ["https://www.googleapis.com/auth/business.manage"],
|
|
39979
|
+
supportsRefresh: true,
|
|
39980
|
+
extraAuthorizeParams: {
|
|
39981
|
+
access_type: "offline",
|
|
39982
|
+
prompt: "consent"
|
|
39983
|
+
},
|
|
39984
|
+
clientAuthMethod: "body"
|
|
39953
39985
|
}
|
|
39954
39986
|
};
|
|
39955
39987
|
OAUTH_PROVIDERS["xero-control-plane"] = {
|
|
@@ -34337,6 +34337,38 @@ var OAUTH_PROVIDERS = {
|
|
|
34337
34337
|
extraAuthorizeParams: {},
|
|
34338
34338
|
clientAuthMethod: "body",
|
|
34339
34339
|
userInfoUrl: "https://api.linkedin.com/v2/userinfo"
|
|
34340
|
+
},
|
|
34341
|
+
// CS-2039: Google Business Profile, native OAuth + brokered REST (the
|
|
34342
|
+
// linkedin-ads shape). Confidential Google client with refresh tokens, the
|
|
34343
|
+
// same model as google-workspace; OAUTH_GOOGLE_BUSINESS_PROFILE_CLIENT_ID /
|
|
34344
|
+
// _SECRET may be the SAME Google OAuth client as google-workspace (the
|
|
34345
|
+
// redirect URI `/integrations/oauth/callback` is shared by every provider).
|
|
34346
|
+
//
|
|
34347
|
+
// `business.manage` is the ONLY Business Profile scope Google offers: there
|
|
34348
|
+
// is no read-only variant, so read-only is enforced by the broker exposing
|
|
34349
|
+
// read tools only (google-business-profile-shared.ts), not by consent.
|
|
34350
|
+
// That is also why `readOnlyScopes` is omitted rather than set equal.
|
|
34351
|
+
//
|
|
34352
|
+
// THE GATE THAT IS NOT CODE: every Business Profile API sits at a quota of
|
|
34353
|
+
// 0 requests/minute per Google Cloud project until Google approves that
|
|
34354
|
+
// project's "Application for Basic API Access". Until then every call 429s.
|
|
34355
|
+
// See docs/runbooks/google-business-profile-dogfood.md.
|
|
34356
|
+
//
|
|
34357
|
+
// No userInfoUrl: the userinfo endpoint needs `openid`/`email`, which are
|
|
34358
|
+
// deliberately not requested, so the callback's best-effort label falls
|
|
34359
|
+
// back to a plain "Connected".
|
|
34360
|
+
"google-business-profile": {
|
|
34361
|
+
definitionId: "google-business-profile",
|
|
34362
|
+
authorizeUrl: "https://accounts.google.com/o/oauth2/v2/auth",
|
|
34363
|
+
tokenUrl: "https://oauth2.googleapis.com/token",
|
|
34364
|
+
revokeUrl: "https://oauth2.googleapis.com/revoke",
|
|
34365
|
+
defaultScopes: ["https://www.googleapis.com/auth/business.manage"],
|
|
34366
|
+
supportsRefresh: true,
|
|
34367
|
+
extraAuthorizeParams: {
|
|
34368
|
+
access_type: "offline",
|
|
34369
|
+
prompt: "consent"
|
|
34370
|
+
},
|
|
34371
|
+
clientAuthMethod: "body"
|
|
34340
34372
|
}
|
|
34341
34373
|
};
|
|
34342
34374
|
OAUTH_PROVIDERS["xero-control-plane"] = {
|
|
@@ -34529,6 +34529,38 @@ var OAUTH_PROVIDERS = {
|
|
|
34529
34529
|
extraAuthorizeParams: {},
|
|
34530
34530
|
clientAuthMethod: "body",
|
|
34531
34531
|
userInfoUrl: "https://api.linkedin.com/v2/userinfo"
|
|
34532
|
+
},
|
|
34533
|
+
// CS-2039: Google Business Profile, native OAuth + brokered REST (the
|
|
34534
|
+
// linkedin-ads shape). Confidential Google client with refresh tokens, the
|
|
34535
|
+
// same model as google-workspace; OAUTH_GOOGLE_BUSINESS_PROFILE_CLIENT_ID /
|
|
34536
|
+
// _SECRET may be the SAME Google OAuth client as google-workspace (the
|
|
34537
|
+
// redirect URI `/integrations/oauth/callback` is shared by every provider).
|
|
34538
|
+
//
|
|
34539
|
+
// `business.manage` is the ONLY Business Profile scope Google offers: there
|
|
34540
|
+
// is no read-only variant, so read-only is enforced by the broker exposing
|
|
34541
|
+
// read tools only (google-business-profile-shared.ts), not by consent.
|
|
34542
|
+
// That is also why `readOnlyScopes` is omitted rather than set equal.
|
|
34543
|
+
//
|
|
34544
|
+
// THE GATE THAT IS NOT CODE: every Business Profile API sits at a quota of
|
|
34545
|
+
// 0 requests/minute per Google Cloud project until Google approves that
|
|
34546
|
+
// project's "Application for Basic API Access". Until then every call 429s.
|
|
34547
|
+
// See docs/runbooks/google-business-profile-dogfood.md.
|
|
34548
|
+
//
|
|
34549
|
+
// No userInfoUrl: the userinfo endpoint needs `openid`/`email`, which are
|
|
34550
|
+
// deliberately not requested, so the callback's best-effort label falls
|
|
34551
|
+
// back to a plain "Connected".
|
|
34552
|
+
"google-business-profile": {
|
|
34553
|
+
definitionId: "google-business-profile",
|
|
34554
|
+
authorizeUrl: "https://accounts.google.com/o/oauth2/v2/auth",
|
|
34555
|
+
tokenUrl: "https://oauth2.googleapis.com/token",
|
|
34556
|
+
revokeUrl: "https://oauth2.googleapis.com/revoke",
|
|
34557
|
+
defaultScopes: ["https://www.googleapis.com/auth/business.manage"],
|
|
34558
|
+
supportsRefresh: true,
|
|
34559
|
+
extraAuthorizeParams: {
|
|
34560
|
+
access_type: "offline",
|
|
34561
|
+
prompt: "consent"
|
|
34562
|
+
},
|
|
34563
|
+
clientAuthMethod: "body"
|
|
34532
34564
|
}
|
|
34533
34565
|
};
|
|
34534
34566
|
OAUTH_PROVIDERS["xero-control-plane"] = {
|
|
@@ -68,8 +68,8 @@ import {
|
|
|
68
68
|
writeDirectChatSessionState,
|
|
69
69
|
writeEgressAllowlist,
|
|
70
70
|
writePersistentClaudeWrapper
|
|
71
|
-
} from "./chunk-
|
|
72
|
-
import "./chunk-
|
|
71
|
+
} from "./chunk-ZOHDIHUT.js";
|
|
72
|
+
import "./chunk-DC6EMGAO.js";
|
|
73
73
|
import "./chunk-OCMJ5E6J.js";
|
|
74
74
|
import "./chunk-XWVM4KPK.js";
|
|
75
75
|
import "./chunk-EL5MWGGH.js";
|
|
@@ -145,4 +145,4 @@ export {
|
|
|
145
145
|
writeEgressAllowlist,
|
|
146
146
|
writePersistentClaudeWrapper
|
|
147
147
|
};
|
|
148
|
-
//# sourceMappingURL=persistent-session-
|
|
148
|
+
//# sourceMappingURL=persistent-session-MFXGWRIB.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-ZOHDIHUT.js";
|
|
4
|
+
import "./chunk-DC6EMGAO.js";
|
|
5
5
|
import "./chunk-OCMJ5E6J.js";
|
|
6
6
|
import "./chunk-XWVM4KPK.js";
|
|
7
7
|
import "./chunk-EL5MWGGH.js";
|
|
@@ -802,4 +802,4 @@ export {
|
|
|
802
802
|
readAndResetSlackReplyBindingClassifications,
|
|
803
803
|
readAndResetSlackReplyTargetClassifications
|
|
804
804
|
};
|
|
805
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
805
|
+
//# sourceMappingURL=responsiveness-probe-QUCL4YYS.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DC6EMGAO.js";
|
|
4
4
|
import "./chunk-DGUM43GV.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/session-auth-dead.ts
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
decideSessionAuthState,
|
|
205
205
|
probeSessionAuth
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=session-auth-dead-
|
|
207
|
+
//# sourceMappingURL=session-auth-dead-3ATVXZ5X.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|