@canonry/canonry 7.72.1 → 7.73.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/assets/assets/{AgentSetupPage-D39M9CRK.js → AgentSetupPage-D7YVdPWO.js} +1 -1
- package/assets/assets/{AuditHistoryPanel-BS-iFyHX.js → AuditHistoryPanel-yrgfS5B_.js} +1 -1
- package/assets/assets/{BacklinksPage-BW2bEGF4.js → BacklinksPage-DJM6z03g.js} +1 -1
- package/assets/assets/{HistoryPage-Dh6o2iVd.js → HistoryPage-CNvAVJ1S.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-DL9cbtVz.js → MeasurementPropertyPage-BVVYhOxR.js} +1 -1
- package/assets/assets/{ProjectPage-DXh97uDN.js → ProjectPage-CPRD8kR9.js} +1 -1
- package/assets/assets/{RunsPage-BM4ETLsm.js → RunsPage-Ck33dcjz.js} +1 -1
- package/assets/assets/{SettingsPage-DpJTB2-Q.js → SettingsPage-CS_t4Dai.js} +1 -1
- package/assets/assets/{SiteHealthSection-CmlMQ17V.js → SiteHealthSection-BurKnHpn.js} +2 -2
- package/assets/assets/ToneBadge-Df8oiKsQ.js +60 -0
- package/assets/assets/{TrafficPage-ClH3Dxnm.js → TrafficPage-DAiY698E.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-DE-NyNGz.js → TrafficSourceDetailPage-clJSX2rr.js} +1 -1
- package/assets/assets/{account-context-BwV6ox8O.js → account-context-DDEhuoP2.js} +1 -1
- package/assets/assets/{card-DhkoBNyY.js → card-DbR-lBY3.js} +1 -1
- package/assets/assets/{extract-error-message-dNDtiSBo.js → extract-error-message-7_Vm2DQF.js} +1 -1
- package/assets/assets/{format-helpers-Bt4tx-f3.js → format-helpers-vtahpXTQ.js} +1 -1
- package/assets/assets/{index-MbApCekj.js → index-BIhCeXvc.js} +4 -4
- package/assets/assets/{query-client-D-zMw63p.js → query-client-TlFXYJ9o.js} +1 -1
- package/assets/assets/{react-query-EdiRRB2q.js → react-query-C5Mv8xfD.js} +1 -1
- package/assets/assets/{react-sigma_core.esm.min-Bidr1Gxk.js → react-sigma_core.esm.min-DmggJ7YC.js} +1 -1
- package/assets/assets/{service-BUi8JgGI.js → service-CLFURPuM.js} +1 -1
- package/assets/index.html +7 -7
- package/dist/{ads-FFUUMS4J.js → ads-TX5622SS.js} +3 -3
- package/dist/{agent-LCD2VG7C.js → agent-AIOQL66U.js} +7 -7
- package/dist/{agent-ask-OBHTCYFR.js → agent-ask-A6GIJTBX.js} +3 -3
- package/dist/{agent-conversations-VMZ4NFIX.js → agent-conversations-LHWLKOPQ.js} +3 -3
- package/dist/{agent-memory-UPFJFNWC.js → agent-memory-F54BPEYN.js} +3 -3
- package/dist/{agent-providers-4GOWLBZK.js → agent-providers-L74KZOSG.js} +3 -3
- package/dist/{agent-transcript-RGXIVZUP.js → agent-transcript-IH65H755.js} +3 -3
- package/dist/{analytics-FBK4XV5P.js → analytics-YWCY2KSY.js} +3 -3
- package/dist/{apply-Y2DVE3YB.js → apply-BLUUYG2N.js} +3 -3
- package/dist/{backfill-7SGCPH6J.js → backfill-6WO5CH6Z.js} +9 -9
- package/dist/{backlinks-YWHFC7DZ.js → backlinks-NC7AUGTK.js} +3 -3
- package/dist/{bing-7BP3DWPK.js → bing-WQUEYHVC.js} +3 -3
- package/dist/{bootstrap-Z7QSKVPL.js → bootstrap-AXZV4BBC.js} +10 -10
- package/dist/{cdp-OL6RENO3.js → cdp-DUG5PMUD.js} +7 -7
- package/dist/{chunk-J523Y7X2.js → chunk-2Y6MSB4J.js} +1 -1
- package/dist/{chunk-YFITKHCV.js → chunk-3ANSG6YT.js} +345 -337
- package/dist/{chunk-GA2EHZTI.js → chunk-3WPTMLQI.js} +22 -6
- package/dist/{chunk-QDN3FL2A.js → chunk-3YIKSZHN.js} +2 -1
- package/dist/{chunk-H4HNXCDF.js → chunk-4B6DE7BB.js} +2 -2
- package/dist/{chunk-UWBJWKDQ.js → chunk-4JMTDLFV.js} +2 -2
- package/dist/{chunk-QKMGGM4B.js → chunk-5PA7SJ2M.js} +8 -271
- package/dist/{chunk-JO73L677.js → chunk-6ATKY252.js} +2 -2
- package/dist/{chunk-XR6ZVMYK.js → chunk-6W5AR4IW.js} +1 -1
- package/dist/{chunk-IZMT4WLZ.js → chunk-6YW24AUN.js} +2 -2
- package/dist/chunk-AZQNJX3T.js +269 -0
- package/dist/{chunk-TUVG7BIF.js → chunk-B6R223HQ.js} +8 -8
- package/dist/{chunk-6MYHGP46.js → chunk-DLVGMRM5.js} +1 -1
- package/dist/{chunk-P3UGNR2Y.js → chunk-ETVM3T7K.js} +5 -5
- package/dist/{chunk-IV6VZ63E.js → chunk-F5D4GPZQ.js} +18 -14
- package/dist/{chunk-WJ2JU32O.js → chunk-GNBATQS3.js} +23 -6
- package/dist/{chunk-TEDY3MHN.js → chunk-GUFKUPKZ.js} +3 -3
- package/dist/{chunk-BADJCT6U.js → chunk-GWDMWKM6.js} +1 -1
- package/dist/{chunk-PPM6Z7CM.js → chunk-HEL6DKDN.js} +1 -1
- package/dist/{chunk-DFCKSJQI.js → chunk-HGMTGC34.js} +4 -4
- package/dist/{chunk-GPTRCOKV.js → chunk-HIGBV77K.js} +259 -95
- package/dist/{chunk-NZZWJCKS.js → chunk-HJHFW455.js} +3 -3
- package/dist/{chunk-JE5QURTR.js → chunk-HKV4UWG5.js} +1 -1
- package/dist/{chunk-DRGCVTYH.js → chunk-JPM3VC6A.js} +1 -1
- package/dist/{chunk-TOX6HAQJ.js → chunk-JQNVNB63.js} +3 -3
- package/dist/{chunk-3AG3LPZX.js → chunk-MRSNLKSM.js} +1 -1
- package/dist/{chunk-O7WOCTBD.js → chunk-PAIYFNNY.js} +71 -3
- package/dist/{chunk-MJYO6UK2.js → chunk-PRSQ4R47.js} +2 -2
- package/dist/{chunk-JEBY6MS6.js → chunk-QS6RIP37.js} +1 -1
- package/dist/{chunk-4LTL5RNY.js → chunk-S77W2XSI.js} +4 -4
- package/dist/{chunk-YXAKL5HM.js → chunk-SF5JLMLG.js} +6791 -6777
- package/dist/{chunk-Q25JQANW.js → chunk-T5PWWDMJ.js} +17 -2
- package/dist/{chunk-ATT3ZCSS.js → chunk-WH2M2MQF.js} +38 -16
- package/dist/{chunk-7KOAP47B.js → chunk-WLWOGBLJ.js} +363 -248
- package/dist/{chunk-BZZDFIY2.js → chunk-XDQJOZKJ.js} +1 -1
- package/dist/{citations-RVSC67GE.js → citations-FUZ6DGP5.js} +3 -3
- package/dist/{cli-catalog-NEZE5QU5.js → cli-catalog-BXHG544D.js} +3 -3
- package/dist/{cli-commands-HGCYU4MQ.js → cli-commands-GMOR67F5.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-BX3M3OYS.js → competitor-QDCH7PLT.js} +3 -3
- package/dist/{content-PKJMVMHJ.js → content-JX2CPIPR.js} +3 -3
- package/dist/{dashboard-SVHZBVM6.js → dashboard-OOWMLMKV.js} +6 -6
- package/dist/{demo-HYDPECCK.js → demo-GKSMSKOY.js} +1 -1
- package/dist/{demo-server-KEOO7WFO.js → demo-server-UQO4XKHN.js} +12 -11
- package/dist/{discover-JDP44ZHX.js → discover-YQSVQRUV.js} +3 -3
- package/dist/{discover-eval-6ORCVYYR.js → discover-eval-FN5RL6QI.js} +3 -3
- package/dist/{doctor-TVZRMBSS.js → doctor-YHJLAEJJ.js} +3 -3
- package/dist/{evidence-FNIAFBBG.js → evidence-KUPZMBIK.js} +3 -3
- package/dist/{export-cmd-HQNF2SSD.js → export-cmd-YSEPTUUF.js} +3 -3
- package/dist/{ga-PIO5OXMK.js → ga-WNS7Q7TF.js} +3 -3
- package/dist/{gbp-3R5FME43.js → gbp-5NYFK4TW.js} +3 -3
- package/dist/{google-BYZREX2O.js → google-T4CF4WCI.js} +4 -4
- package/dist/{google-marketing-SPQ2GW6X.js → google-marketing-IXPMUBXZ.js} +1 -1
- package/dist/{health-cmd-HH5RYMSV.js → health-cmd-2W37CF6J.js} +3 -3
- package/dist/{history-Q35NLLMJ.js → history-PA3O6ZHX.js} +3 -3
- package/dist/index.d.ts +248 -71
- package/dist/index.js +25 -24
- package/dist/{init-TV4ZKAAW.js → init-I3P7FINF.js} +12 -11
- package/dist/{insights-SH73B4PD.js → insights-O5PUVHTW.js} +3 -3
- package/dist/intelligence-service-EJQQNO65.js +16 -0
- package/dist/{journeys-SIV7HPW7.js → journeys-GU34O3HE.js} +3 -3
- package/dist/{keys-O656YWSW.js → keys-RXBFRNUS.js} +3 -3
- package/dist/{keyword-FZ2N4EW7.js → keyword-MASR36DK.js} +3 -3
- package/dist/{logs-2NPN7HBI.js → logs-OTA7MV4P.js} +3 -3
- package/dist/mcp-ZQYN2NET.js +19 -0
- package/dist/mcp.js +20 -14
- package/dist/{measurement-plan-JQKVSJRL.js → measurement-plan-ZGVO36TN.js} +5 -5
- package/dist/{notify-VTAYBHC6.js → notify-KS5CR3S2.js} +3 -3
- package/dist/{organic-evidence-HPXXEPOW.js → organic-evidence-CTH52AC5.js} +3 -3
- package/dist/{overview-FSBNDYZJ.js → overview-IRCIDE5H.js} +4 -4
- package/dist/{project-MAPPXURS.js → project-H5XPI5CT.js} +3 -3
- package/dist/{query-R6DLPIPJ.js → query-2R6EZG5T.js} +3 -3
- package/dist/{research-FXKOEUQB.js → research-OA3UQAV3.js} +3 -3
- package/dist/{results-export-X2PUM63S.js → results-export-XUXU3WMX.js} +3 -3
- package/dist/{run-6ENTG4IO.js → run-7IIOB6AS.js} +4 -4
- package/dist/{schedule-DMMVRT7P.js → schedule-DUTPZB5C.js} +3 -3
- package/dist/{search-FHI6APT7.js → search-TWUJD7KH.js} +3 -3
- package/dist/{serve-76BGQFPW.js → serve-BYHHULUU.js} +26 -25
- package/dist/{session-JBTIV7SS.js → session-M5XSTGPI.js} +13 -12
- package/dist/{settings-FMB4QED4.js → settings-GQXU5M3H.js} +3 -3
- package/dist/{skills-HBIMHSOI.js → skills-F6AXQHTO.js} +2 -2
- package/dist/{snapshot-RBA2EL7R.js → snapshot-QFKUO4QK.js} +3 -3
- package/dist/{src-BXXGJOQB.js → src-52USCS7O.js} +4 -2
- package/dist/{status-ATFDFAVG.js → status-42LPR7YH.js} +4 -4
- package/dist/{technical-aeo-JWQTGCTB.js → technical-aeo-SUILL4MY.js} +3 -3
- package/dist/{telemetry-6QFGJL2I.js → telemetry-RITB7YZH.js} +4 -4
- package/dist/{tools-4VRHKUBE.js → tools-DGWJOLNS.js} +11 -11
- package/dist/{traffic-5R7M4CK5.js → traffic-3YC3HUNT.js} +5 -5
- package/dist/{users-24TIUYJY.js → users-BST5DQ5R.js} +3 -3
- package/dist/{visibility-stats-YLQPPBJJ.js → visibility-stats-NCNP4AL2.js} +3 -3
- package/dist/{wordpress-7VDPHMUZ.js → wordpress-4HQDLQVE.js} +3 -3
- package/package.json +10 -6
- package/assets/assets/ToneBadge-CmvL5mFG.js +0 -60
- package/dist/intelligence-service-YNHDEY4M.js +0 -15
- package/dist/mcp-RHQY3DV6.js +0 -14
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
resolveCliAccess,
|
|
4
4
|
resolveCliAccessForInvocation,
|
|
5
5
|
windowOptions
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3YIKSZHN.js";
|
|
7
7
|
import {
|
|
8
8
|
emitJsonl
|
|
9
9
|
} from "./chunk-Z7IUAJOF.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from "./chunk-HGMYEDAQ.js";
|
|
15
15
|
import {
|
|
16
16
|
OperationAccesses
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-SF5JLMLG.js";
|
|
18
18
|
|
|
19
19
|
// src/cli-catalog.ts
|
|
20
20
|
import { createRequire } from "module";
|
|
@@ -111,7 +111,7 @@ async function dispatchRegisteredCommand(args, fallbackFormat, specs) {
|
|
|
111
111
|
const accessValue = accessFilterFromArgs(argsWithoutHelp);
|
|
112
112
|
validateAccessFilter(accessValue);
|
|
113
113
|
if (fallbackFormat !== "text") {
|
|
114
|
-
const { printCliCatalog: printCliCatalog2 } = await import("./cli-catalog-
|
|
114
|
+
const { printCliCatalog: printCliCatalog2 } = await import("./cli-catalog-BXHG544D.js");
|
|
115
115
|
const group2 = argsWithoutHelp.find((arg) => !arg.startsWith("--"));
|
|
116
116
|
printCliCatalog2(specs, fallbackFormat, group2, accessValue);
|
|
117
117
|
return true;
|
|
@@ -2,18 +2,18 @@ import {
|
|
|
2
2
|
configExists,
|
|
3
3
|
loadConfigRaw,
|
|
4
4
|
saveConfigPatch
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HKV4UWG5.js";
|
|
6
6
|
import {
|
|
7
7
|
BUNDLED_SKILL_NAMES,
|
|
8
8
|
installSkills
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-HEL6DKDN.js";
|
|
10
10
|
import {
|
|
11
11
|
PACKAGE_VERSION
|
|
12
12
|
} from "./chunk-AOJU5LKX.js";
|
|
13
13
|
import {
|
|
14
14
|
SKILL_MANIFEST_FILENAME,
|
|
15
15
|
SkillsClients
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-SF5JLMLG.js";
|
|
17
17
|
|
|
18
18
|
// src/skills-autosync.ts
|
|
19
19
|
import fs from "fs";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
measurementDraftUpsertGroupRequestSchema,
|
|
24
24
|
measurementDraftUpsertMarketRequestSchema,
|
|
25
25
|
measurementDraftUpsertTargetRequestSchema
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-SF5JLMLG.js";
|
|
27
27
|
|
|
28
28
|
// src/measurement-draft-actions.ts
|
|
29
29
|
import { z } from "zod";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
templateLinkRatio,
|
|
21
21
|
templateLinkUbiquityAvailable,
|
|
22
22
|
validationError
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-SF5JLMLG.js";
|
|
24
24
|
import {
|
|
25
25
|
__export
|
|
26
26
|
} from "./chunk-MLKGABMK.js";
|
|
@@ -125,6 +125,7 @@ __export(schema_exports, {
|
|
|
125
125
|
notifications: () => notifications,
|
|
126
126
|
oauthAuthorizationCodes: () => oauthAuthorizationCodes,
|
|
127
127
|
oauthClients: () => oauthClients,
|
|
128
|
+
oauthGrants: () => oauthGrants,
|
|
128
129
|
oauthTokens: () => oauthTokens,
|
|
129
130
|
projects: () => projects,
|
|
130
131
|
providerBatchRequests: () => providerBatchRequests,
|
|
@@ -858,12 +859,15 @@ var apiKeys = sqliteTable2("api_keys", {
|
|
|
858
859
|
projectId: text2("project_id").references(() => projects.id, { onDelete: "cascade" }),
|
|
859
860
|
/** Internal delegated session identity, never accepted by the key-create API. */
|
|
860
861
|
delegatedUserId: text2("delegated_user_id").references(() => users.id, { onDelete: "cascade" }),
|
|
862
|
+
/** Authorization that minted this internal MCP credential. */
|
|
863
|
+
delegatedOAuthGrantId: text2("delegated_oauth_grant_id").references(() => oauthGrants.id, { onDelete: "cascade" }),
|
|
861
864
|
createdAt: text2("created_at").notNull(),
|
|
862
865
|
lastUsedAt: text2("last_used_at"),
|
|
863
866
|
revokedAt: text2("revoked_at")
|
|
864
867
|
}, (table) => [
|
|
865
868
|
index2("idx_api_keys_prefix").on(table.keyPrefix),
|
|
866
|
-
index2("idx_api_keys_project").on(table.projectId)
|
|
869
|
+
index2("idx_api_keys_project").on(table.projectId),
|
|
870
|
+
index2("idx_api_keys_oauth_grant").on(table.delegatedOAuthGrantId)
|
|
867
871
|
]);
|
|
868
872
|
var users = sqliteTable2("users", {
|
|
869
873
|
id: text2("id").primaryKey(),
|
|
@@ -901,7 +905,7 @@ var oauthClients = sqliteTable2("oauth_clients", {
|
|
|
901
905
|
id: text2("id").primaryKey(),
|
|
902
906
|
name: text2("name").notNull(),
|
|
903
907
|
/**
|
|
904
|
-
*
|
|
908
|
+
* SHA-256 digest, or NULL for a public client that authenticates by PKCE
|
|
905
909
|
* alone. Never the secret: a client secret is a bearer credential, and a
|
|
906
910
|
* copied database file must not be a working client.
|
|
907
911
|
*/
|
|
@@ -920,6 +924,18 @@ var oauthClients = sqliteTable2("oauth_clients", {
|
|
|
920
924
|
createdAt: text2("created_at").notNull(),
|
|
921
925
|
revokedAt: text2("revoked_at")
|
|
922
926
|
});
|
|
927
|
+
var oauthGrants = sqliteTable2("oauth_grants", {
|
|
928
|
+
id: text2("id").primaryKey(),
|
|
929
|
+
clientId: text2("client_id").notNull().references(() => oauthClients.id, { onDelete: "cascade" }),
|
|
930
|
+
userId: text2("user_id").notNull().references(() => users.id, { onDelete: "cascade" }),
|
|
931
|
+
resource: text2("resource"),
|
|
932
|
+
scope: text2("scope"),
|
|
933
|
+
createdAt: text2("created_at").notNull(),
|
|
934
|
+
revokedAt: text2("revoked_at")
|
|
935
|
+
}, (table) => [
|
|
936
|
+
index2("idx_oauth_grants_client").on(table.clientId),
|
|
937
|
+
index2("idx_oauth_grants_user").on(table.userId)
|
|
938
|
+
]);
|
|
923
939
|
var oauthAuthorizationCodes = sqliteTable2("oauth_authorization_codes", {
|
|
924
940
|
/** SHA-256 of the code. The code itself is 256 bits of randomness. */
|
|
925
941
|
codeHash: text2("code_hash").primaryKey(),
|
|
@@ -943,6 +959,8 @@ var oauthAuthorizationCodes = sqliteTable2("oauth_authorization_codes", {
|
|
|
943
959
|
var oauthTokens = sqliteTable2("oauth_tokens", {
|
|
944
960
|
tokenHash: text2("token_hash").primaryKey(),
|
|
945
961
|
kind: text2("kind").$type().notNull(),
|
|
962
|
+
/** Nullable only for an older binary writing after this migration. */
|
|
963
|
+
grantId: text2("grant_id").references(() => oauthGrants.id, { onDelete: "cascade" }),
|
|
946
964
|
clientId: text2("client_id").notNull().references(() => oauthClients.id, { onDelete: "cascade" }),
|
|
947
965
|
userId: text2("user_id").notNull().references(() => users.id, { onDelete: "cascade" }),
|
|
948
966
|
/** Audience. Enforced on every resource request. */
|
|
@@ -952,6 +970,7 @@ var oauthTokens = sqliteTable2("oauth_tokens", {
|
|
|
952
970
|
revokedAt: text2("revoked_at"),
|
|
953
971
|
createdAt: text2("created_at").notNull()
|
|
954
972
|
}, (table) => [
|
|
973
|
+
index2("idx_oauth_tokens_grant").on(table.grantId),
|
|
955
974
|
index2("idx_oauth_tokens_user").on(table.userId),
|
|
956
975
|
index2("idx_oauth_tokens_expires").on(table.expiresAt)
|
|
957
976
|
]);
|
|
@@ -8284,6 +8303,54 @@ var MIGRATION_VERSIONS = [
|
|
|
8284
8303
|
statements: [
|
|
8285
8304
|
`ALTER TABLE site_crawl_attempts ADD COLUMN url_versions_skipped INTEGER NOT NULL DEFAULT 0`
|
|
8286
8305
|
]
|
|
8306
|
+
},
|
|
8307
|
+
{
|
|
8308
|
+
version: 199,
|
|
8309
|
+
name: "oauth-authorization-grants",
|
|
8310
|
+
statements: [
|
|
8311
|
+
`CREATE TABLE IF NOT EXISTS oauth_grants (
|
|
8312
|
+
id TEXT PRIMARY KEY,
|
|
8313
|
+
client_id TEXT NOT NULL REFERENCES oauth_clients(id) ON DELETE CASCADE,
|
|
8314
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
8315
|
+
resource TEXT,
|
|
8316
|
+
scope TEXT,
|
|
8317
|
+
created_at TEXT NOT NULL,
|
|
8318
|
+
revoked_at TEXT
|
|
8319
|
+
)`,
|
|
8320
|
+
`CREATE INDEX IF NOT EXISTS idx_oauth_grants_client ON oauth_grants(client_id)`,
|
|
8321
|
+
`CREATE INDEX IF NOT EXISTS idx_oauth_grants_user ON oauth_grants(user_id)`,
|
|
8322
|
+
`ALTER TABLE oauth_tokens ADD COLUMN grant_id TEXT REFERENCES oauth_grants(id) ON DELETE CASCADE`,
|
|
8323
|
+
`ALTER TABLE api_keys ADD COLUMN delegated_oauth_grant_id TEXT REFERENCES oauth_grants(id) ON DELETE CASCADE`,
|
|
8324
|
+
`CREATE INDEX IF NOT EXISTS idx_oauth_tokens_grant ON oauth_tokens(grant_id)`,
|
|
8325
|
+
`CREATE INDEX IF NOT EXISTS idx_api_keys_oauth_grant ON api_keys(delegated_oauth_grant_id)`,
|
|
8326
|
+
// Credentials whose account or client was removed with foreign keys off
|
|
8327
|
+
// are already unusable. Drop them before enforcing the new grant FKs.
|
|
8328
|
+
`DELETE FROM oauth_tokens WHERE NOT EXISTS (SELECT 1 FROM oauth_clients WHERE id = oauth_tokens.client_id)
|
|
8329
|
+
OR NOT EXISTS (SELECT 1 FROM users WHERE id = oauth_tokens.user_id)`,
|
|
8330
|
+
// Historical rotations carry no lineage. Preserve access while grouping
|
|
8331
|
+
// only the same client, person, audience and consented scope for revocation.
|
|
8332
|
+
`INSERT OR IGNORE INTO oauth_grants (id, client_id, user_id, resource, scope, created_at)
|
|
8333
|
+
SELECT 'legacy:' || MIN(token_hash), client_id, user_id, resource, scope, MIN(created_at)
|
|
8334
|
+
FROM oauth_tokens WHERE grant_id IS NULL
|
|
8335
|
+
AND EXISTS (SELECT 1 FROM oauth_clients WHERE id = oauth_tokens.client_id)
|
|
8336
|
+
AND EXISTS (SELECT 1 FROM users WHERE id = oauth_tokens.user_id)
|
|
8337
|
+
GROUP BY client_id, user_id, resource, scope`,
|
|
8338
|
+
`UPDATE oauth_tokens SET grant_id = (
|
|
8339
|
+
SELECT id FROM oauth_grants g
|
|
8340
|
+
WHERE g.id LIKE 'legacy:%' AND g.client_id = oauth_tokens.client_id
|
|
8341
|
+
AND g.user_id = oauth_tokens.user_id AND g.resource IS oauth_tokens.resource AND g.scope IS oauth_tokens.scope
|
|
8342
|
+
) WHERE grant_id IS NULL`,
|
|
8343
|
+
// Old MCP keys lack a grant link and cannot be assigned safely. Match
|
|
8344
|
+
// the bound constructor and the older reserved namespace without user
|
|
8345
|
+
// linkage. A manually named key in that namespace also requires reissue.
|
|
8346
|
+
`DELETE FROM dashboard_sessions WHERE api_key_id IN (
|
|
8347
|
+
SELECT id FROM api_keys WHERE (delegated_user_id IS NOT NULL AND name = 'mcp-session:' || delegated_user_id)
|
|
8348
|
+
OR (delegated_user_id IS NULL AND name GLOB 'mcp-session:*')
|
|
8349
|
+
)`,
|
|
8350
|
+
`UPDATE api_keys SET revoked_at = COALESCE(revoked_at, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
|
|
8351
|
+
WHERE (delegated_user_id IS NOT NULL AND name = 'mcp-session:' || delegated_user_id)
|
|
8352
|
+
OR (delegated_user_id IS NULL AND name GLOB 'mcp-session:*')`
|
|
8353
|
+
]
|
|
8287
8354
|
}
|
|
8288
8355
|
];
|
|
8289
8356
|
var AERO_LEDGER_REBUILDS = [
|
|
@@ -9727,6 +9794,7 @@ export {
|
|
|
9727
9794
|
userSessions,
|
|
9728
9795
|
dashboardSessions,
|
|
9729
9796
|
oauthClients,
|
|
9797
|
+
oauthGrants,
|
|
9730
9798
|
oauthAuthorizationCodes,
|
|
9731
9799
|
oauthTokens,
|
|
9732
9800
|
schedules,
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
loadConfig,
|
|
6
6
|
loadConfigRaw,
|
|
7
7
|
saveConfigPatch
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-HKV4UWG5.js";
|
|
9
9
|
import {
|
|
10
10
|
CANONRY_NPM_PACKAGE_URL,
|
|
11
11
|
compareSemver,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
updateCheckEnvOptOut,
|
|
19
19
|
upgradeCaveatFor,
|
|
20
20
|
upgradeCommandFor
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-SF5JLMLG.js";
|
|
22
22
|
|
|
23
23
|
// src/runtime-context.ts
|
|
24
24
|
function cliRuntimeContext(env = process.env, stdio = process) {
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
bucketCliCommandDuration,
|
|
3
3
|
isTelemetryEnabled,
|
|
4
4
|
trackEvent
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-PRSQ4R47.js";
|
|
6
6
|
import {
|
|
7
7
|
getConfigDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-HKV4UWG5.js";
|
|
9
9
|
import {
|
|
10
10
|
currentOutcomeAttribution
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-GWDMWKM6.js";
|
|
12
12
|
import {
|
|
13
13
|
AGENT_NONE,
|
|
14
14
|
OutcomeSurfaces,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
integrationConnectionPropertiesSchema,
|
|
20
20
|
normalizeAgentSlug,
|
|
21
21
|
usageSurfaceSchema
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-SF5JLMLG.js";
|
|
23
23
|
|
|
24
24
|
// src/outcome-telemetry.ts
|
|
25
25
|
import fs from "fs";
|