@amerged/ohmyhost-mcp 0.1.35 → 0.1.37

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.
@@ -30,7 +30,7 @@ import {
30
30
  serverIdentityOf,
31
31
  setNegotiatedProtocolVersion,
32
32
  validateEnvelopeMeta
33
- } from "./chunk-CVTJZFHD.js";
33
+ } from "./chunk-CHAFMFTK.js";
34
34
 
35
35
  // node_modules/.pnpm/ignore@7.0.12/node_modules/ignore/index.js
36
36
  var require_ignore = __commonJS({
@@ -57,8 +57,8 @@ var require_ignore = __commonJS({
57
57
  TMP_KEY_IGNORE = /* @__PURE__ */ Symbol.for("node-ignore");
58
58
  }
59
59
  var KEY_IGNORE = TMP_KEY_IGNORE;
60
- var define2 = (object3, key, value) => {
61
- Object.defineProperty(object3, key, { value });
60
+ var define2 = (object4, key, value) => {
61
+ Object.defineProperty(object4, key, { value });
62
62
  return value;
63
63
  };
64
64
  var RETURN_FALSE = () => false;
@@ -1959,13 +1959,13 @@ var require_for_each = __commonJS({
1959
1959
  }
1960
1960
  }
1961
1961
  };
1962
- var forEachObject = function forEachObject2(object3, iterator, receiver) {
1963
- for (var k in object3) {
1964
- if (hasOwnProperty.call(object3, k)) {
1962
+ var forEachObject = function forEachObject2(object4, iterator, receiver) {
1963
+ for (var k in object4) {
1964
+ if (hasOwnProperty.call(object4, k)) {
1965
1965
  if (receiver == null) {
1966
- iterator(object3[k], k, object3);
1966
+ iterator(object4[k], k, object4);
1967
1967
  } else {
1968
- iterator.call(receiver, object3[k], k, object3);
1968
+ iterator.call(receiver, object4[k], k, object4);
1969
1969
  }
1970
1970
  }
1971
1971
  }
@@ -7241,7 +7241,7 @@ var require_ignore2 = __commonJS({
7241
7241
  TMP_KEY_IGNORE = /* @__PURE__ */ Symbol.for("node-ignore");
7242
7242
  }
7243
7243
  var KEY_IGNORE = TMP_KEY_IGNORE;
7244
- var define2 = (object3, key, value) => Object.defineProperty(object3, key, { value });
7244
+ var define2 = (object4, key, value) => Object.defineProperty(object4, key, { value });
7245
7245
  var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g;
7246
7246
  var RETURN_FALSE = () => false;
7247
7247
  var sanitizeRange = (range) => range.replace(
@@ -9862,15 +9862,15 @@ If you're a developer and you believe this is a bug in isomorphic-git, please fi
9862
9862
  * @param {Uint8Array} params.object - The raw object data to wrap.
9863
9863
  * @returns {Uint8Array} The wrapped Git object as a single buffer.
9864
9864
  */
9865
- static wrap({ type, object: object3 }) {
9866
- const header = `${type} ${object3.length}\0`;
9865
+ static wrap({ type, object: object4 }) {
9866
+ const header = `${type} ${object4.length}\0`;
9867
9867
  const headerLen = header.length;
9868
- const totalLength = headerLen + object3.length;
9868
+ const totalLength = headerLen + object4.length;
9869
9869
  const wrappedObject = new Uint8Array(totalLength);
9870
9870
  for (let i = 0; i < headerLen; i++) {
9871
9871
  wrappedObject[i] = header.charCodeAt(i);
9872
9872
  }
9873
- wrappedObject.set(object3, headerLen);
9873
+ wrappedObject.set(object4, headerLen);
9874
9874
  return wrappedObject;
9875
9875
  }
9876
9876
  /**
@@ -10361,9 +10361,9 @@ If you're a developer and you believe this is a bug in isomorphic-git, please fi
10361
10361
  try {
10362
10362
  p.readDepth = 0;
10363
10363
  p.externalReadDepth = 0;
10364
- const { type, object: object3 } = await p.readSlice({ start: offset });
10364
+ const { type, object: object4 } = await p.readSlice({ start: offset });
10365
10365
  objectsByDepth[p.readDepth] += 1;
10366
- const oid = await shasum(GitObject.wrap({ type, object: object3 }));
10366
+ const oid = await shasum(GitObject.wrap({ type, object: object4 }));
10367
10367
  o.oid = oid;
10368
10368
  hashes.push(oid);
10369
10369
  offsets.set(oid, offset);
@@ -10463,7 +10463,7 @@ If you're a developer and you believe this is a bug in isomorphic-git, please fi
10463
10463
  length = otherVarIntDecode(reader, lastFour);
10464
10464
  }
10465
10465
  let base = null;
10466
- let object3 = null;
10466
+ let object4 = null;
10467
10467
  if (type === "ofs_delta") {
10468
10468
  const offset = decodeVarInt(reader);
10469
10469
  const baseOffset = start - offset;
@@ -10474,19 +10474,19 @@ If you're a developer and you believe this is a bug in isomorphic-git, please fi
10474
10474
  ({ object: base, type } = await this.read({ oid }));
10475
10475
  }
10476
10476
  const buffer = raw.slice(reader.tell());
10477
- object3 = Buffer.from(await inflate(buffer));
10478
- if (object3.byteLength !== length) {
10477
+ object4 = Buffer.from(await inflate(buffer));
10478
+ if (object4.byteLength !== length) {
10479
10479
  throw new InternalError(
10480
- `Packfile told us object would have length ${length} but it had length ${object3.byteLength}`
10480
+ `Packfile told us object would have length ${length} but it had length ${object4.byteLength}`
10481
10481
  );
10482
10482
  }
10483
10483
  if (base) {
10484
- object3 = Buffer.from(applyDelta(object3, base));
10484
+ object4 = Buffer.from(applyDelta(object4, base));
10485
10485
  }
10486
10486
  if (this.readDepth > 3) {
10487
- this.offsetCache[start] = { type, object: object3 };
10487
+ this.offsetCache[start] = { type, object: object4 };
10488
10488
  }
10489
- return { type, format: "content", object: object3 };
10489
+ return { type, format: "content", object: object4 };
10490
10490
  }
10491
10491
  };
10492
10492
  var PackfileCache = /* @__PURE__ */ Symbol("PackfileCache");
@@ -10636,9 +10636,9 @@ If you're a developer and you believe this is a bug in isomorphic-git, please fi
10636
10636
  `SHA check failed! Expected ${oid}, computed ${sha}`
10637
10637
  );
10638
10638
  }
10639
- const { object: object3, type } = GitObject.unwrap(result.object);
10639
+ const { object: object4, type } = GitObject.unwrap(result.object);
10640
10640
  result.type = type;
10641
- result.object = object3;
10641
+ result.object = object4;
10642
10642
  result.format = "content";
10643
10643
  return result;
10644
10644
  }
@@ -11330,19 +11330,19 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
11330
11330
  if (oid === "4b825dc642cb6eb9a060e54bf8d69288fbee4904") {
11331
11331
  return { tree: GitTree.from([]), oid };
11332
11332
  }
11333
- const { type, object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid });
11333
+ const { type, object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid });
11334
11334
  if (type === "tag") {
11335
- oid = GitAnnotatedTag.from(object3).parse().object;
11335
+ oid = GitAnnotatedTag.from(object4).parse().object;
11336
11336
  return resolveTree({ fs: fs3, cache, gitdir, oid });
11337
11337
  }
11338
11338
  if (type === "commit") {
11339
- oid = GitCommit.from(object3).parse().tree;
11339
+ oid = GitCommit.from(object4).parse().tree;
11340
11340
  return resolveTree({ fs: fs3, cache, gitdir, oid });
11341
11341
  }
11342
11342
  if (type !== "tree") {
11343
11343
  throw new ObjectTypeError(oid, type, "tree");
11344
11344
  }
11345
- return { tree: GitTree.from(object3), oid };
11345
+ return { tree: GitTree.from(object4), oid };
11346
11346
  }
11347
11347
  var GitWalkerRepo = class {
11348
11348
  constructor({ fs: fs3, gitdir, ref, cache }) {
@@ -11405,11 +11405,11 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
11405
11405
  if (obj.type !== "tree") {
11406
11406
  return null;
11407
11407
  }
11408
- const { type, object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid });
11408
+ const { type, object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid });
11409
11409
  if (type !== obj.type) {
11410
11410
  throw new ObjectTypeError(oid, type, obj.type);
11411
11411
  }
11412
- const tree = GitTree.from(object3);
11412
+ const tree = GitTree.from(object4);
11413
11413
  for (const entry2 of tree) {
11414
11414
  map.set(join5(filepath, entry2.path), entry2);
11415
11415
  }
@@ -11439,11 +11439,11 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
11439
11439
  const { fs: fs3, cache, gitdir } = this;
11440
11440
  const obj = map.get(entry._fullpath);
11441
11441
  const oid = obj.oid;
11442
- const { type, object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid });
11442
+ const { type, object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid });
11443
11443
  if (type !== "blob") {
11444
11444
  entry._content = void 0;
11445
11445
  } else {
11446
- entry._content = new Uint8Array(object3);
11446
+ entry._content = new Uint8Array(object4);
11447
11447
  }
11448
11448
  }
11449
11449
  return entry._content;
@@ -12223,7 +12223,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12223
12223
  return ignoredStatus;
12224
12224
  }
12225
12225
  };
12226
- async function writeObjectLoose({ fs: fs3, gitdir, object: object3, format, oid }) {
12226
+ async function writeObjectLoose({ fs: fs3, gitdir, object: object4, format, oid }) {
12227
12227
  if (format !== "deflated") {
12228
12228
  throw new InternalError(
12229
12229
  "GitObjectStoreLoose expects objects to write to be in deflated format"
@@ -12231,7 +12231,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12231
12231
  }
12232
12232
  const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`;
12233
12233
  const filepath = `${gitdir}/${source}`;
12234
- if (!await fs3.exists(filepath)) await fs3.write(filepath, object3);
12234
+ if (!await fs3.exists(filepath)) await fs3.write(filepath, object4);
12235
12235
  }
12236
12236
  var supportsCompressionStream = null;
12237
12237
  async function deflate(buffer) {
@@ -12260,20 +12260,20 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12260
12260
  fs: fs3,
12261
12261
  gitdir,
12262
12262
  type,
12263
- object: object3,
12263
+ object: object4,
12264
12264
  format = "content",
12265
12265
  oid = void 0,
12266
12266
  dryRun = false
12267
12267
  }) {
12268
12268
  if (format !== "deflated") {
12269
12269
  if (format !== "wrapped") {
12270
- object3 = GitObject.wrap({ type, object: object3 });
12270
+ object4 = GitObject.wrap({ type, object: object4 });
12271
12271
  }
12272
- oid = await shasum(object3);
12273
- object3 = Buffer.from(await deflate(object3));
12272
+ oid = await shasum(object4);
12273
+ object4 = Buffer.from(await deflate(object4));
12274
12274
  }
12275
12275
  if (!dryRun) {
12276
- await writeObjectLoose({ fs: fs3, gitdir, object: object3, format: "deflated", oid });
12276
+ await writeObjectLoose({ fs: fs3, gitdir, object: object4, format: "deflated", oid });
12277
12277
  }
12278
12278
  return oid;
12279
12279
  }
@@ -12382,9 +12382,9 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12382
12382
  }
12383
12383
  }
12384
12384
  } else {
12385
- const object3 = stats.isSymbolicLink() ? await fs3.readlink(join5(dir, currentFilepath)).then(posixifyPathBuffer) : await fs3.read(join5(dir, currentFilepath), { autocrlf });
12386
- if (object3 === null) throw new NotFoundError(currentFilepath);
12387
- const oid = await _writeObject({ fs: fs3, gitdir, type: "blob", object: object3 });
12385
+ const object4 = stats.isSymbolicLink() ? await fs3.readlink(join5(dir, currentFilepath)).then(posixifyPathBuffer) : await fs3.read(join5(dir, currentFilepath), { autocrlf });
12386
+ if (object4 === null) throw new NotFoundError(currentFilepath);
12387
+ const oid = await _writeObject({ fs: fs3, gitdir, type: "blob", object: object4 });
12388
12388
  index2.insert({ filepath: currentFilepath, stats, oid });
12389
12389
  }
12390
12390
  });
@@ -12464,15 +12464,15 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12464
12464
  return normalizedCommitter;
12465
12465
  }
12466
12466
  async function resolveCommit({ fs: fs3, cache, gitdir, oid }) {
12467
- const { type, object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid });
12467
+ const { type, object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid });
12468
12468
  if (type === "tag") {
12469
- oid = GitAnnotatedTag.from(object3).parse().object;
12469
+ oid = GitAnnotatedTag.from(object4).parse().object;
12470
12470
  return resolveCommit({ fs: fs3, cache, gitdir, oid });
12471
12471
  }
12472
12472
  if (type !== "commit") {
12473
12473
  throw new ObjectTypeError(oid, type, "commit");
12474
12474
  }
12475
- return { commit: GitCommit.from(object3), oid };
12475
+ return { commit: GitCommit.from(object4), oid };
12476
12476
  }
12477
12477
  async function _readCommit({ fs: fs3, cache, gitdir, oid }) {
12478
12478
  const { commit: commit3, oid: commitOid } = await resolveCommit({
@@ -12693,7 +12693,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12693
12693
  if (pathArray.length === 0) {
12694
12694
  return entry;
12695
12695
  } else {
12696
- const { type, object: object3 } = await _readObject({
12696
+ const { type, object: object4 } = await _readObject({
12697
12697
  fs: fs3,
12698
12698
  cache,
12699
12699
  gitdir,
@@ -12702,7 +12702,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12702
12702
  if (type !== "tree") {
12703
12703
  throw new ObjectTypeError(oid, type, "tree", filepath);
12704
12704
  }
12705
- tree = GitTree.from(object3);
12705
+ tree = GitTree.from(object4);
12706
12706
  return _resolveFilepath({
12707
12707
  fs: fs3,
12708
12708
  cache,
@@ -12735,12 +12735,12 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12735
12735
  return result;
12736
12736
  }
12737
12737
  async function _writeTree({ fs: fs3, gitdir, tree }) {
12738
- const object3 = GitTree.from(tree).toObject();
12738
+ const object4 = GitTree.from(tree).toObject();
12739
12739
  const oid = await _writeObject({
12740
12740
  fs: fs3,
12741
12741
  gitdir,
12742
12742
  type: "tree",
12743
- object: object3,
12743
+ object: object4,
12744
12744
  format: "content"
12745
12745
  });
12746
12746
  return oid;
@@ -12921,7 +12921,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12921
12921
  tagger,
12922
12922
  message = ref,
12923
12923
  gpgsig,
12924
- object: object3,
12924
+ object: object4,
12925
12925
  signingKey,
12926
12926
  force = false
12927
12927
  }) {
@@ -12932,7 +12932,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12932
12932
  const oid = await GitRefManager.resolve({
12933
12933
  fs: fs3,
12934
12934
  gitdir,
12935
- ref: object3 || "HEAD"
12935
+ ref: object4 || "HEAD"
12936
12936
  });
12937
12937
  const { type } = await _readObject({ fs: fs3, cache, gitdir, oid });
12938
12938
  let tagObject = GitAnnotatedTag.from({
@@ -12963,7 +12963,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12963
12963
  tagger: _tagger,
12964
12964
  message = ref,
12965
12965
  gpgsig,
12966
- object: object3,
12966
+ object: object4,
12967
12967
  signingKey,
12968
12968
  force = false,
12969
12969
  cache = {}
@@ -12992,7 +12992,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
12992
12992
  tagger,
12993
12993
  message,
12994
12994
  gpgsig,
12995
- object: object3,
12995
+ object: object4,
12996
12996
  signingKey,
12997
12997
  force
12998
12998
  });
@@ -13005,7 +13005,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
13005
13005
  fs: fs3,
13006
13006
  gitdir,
13007
13007
  ref,
13008
- object: object3,
13008
+ object: object4,
13009
13009
  checkout: checkout2 = false,
13010
13010
  force = false
13011
13011
  }) {
@@ -13021,7 +13021,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
13021
13021
  }
13022
13022
  let oid;
13023
13023
  try {
13024
- oid = await GitRefManager.resolve({ fs: fs3, gitdir, ref: object3 || "HEAD" });
13024
+ oid = await GitRefManager.resolve({ fs: fs3, gitdir, ref: object4 || "HEAD" });
13025
13025
  } catch (e) {
13026
13026
  }
13027
13027
  if (oid) {
@@ -13041,7 +13041,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
13041
13041
  dir,
13042
13042
  gitdir = join5(dir, ".git"),
13043
13043
  ref,
13044
- object: object3,
13044
+ object: object4,
13045
13045
  checkout: checkout2 = false,
13046
13046
  force = false
13047
13047
  }) {
@@ -13055,7 +13055,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
13055
13055
  fs: fsp,
13056
13056
  gitdir: updatedGitdir,
13057
13057
  ref,
13058
- object: object3,
13058
+ object: object4,
13059
13059
  checkout: checkout2,
13060
13060
  force
13061
13061
  });
@@ -13292,7 +13292,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
13292
13292
  const filepath = `${dir}/${fullpath}`;
13293
13293
  if (method !== "create-index" && method !== "mkdir-index") {
13294
13294
  await assertNoSymlinkInLeadingPath(fs3, dir, fullpath);
13295
- const { object: object3 } = await _readObject({
13295
+ const { object: object4 } = await _readObject({
13296
13296
  fs: fs3,
13297
13297
  cache,
13298
13298
  gitdir,
@@ -13302,11 +13302,11 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
13302
13302
  await fs3.rm(filepath);
13303
13303
  }
13304
13304
  if (mode === 33188) {
13305
- await fs3.write(filepath, object3);
13305
+ await fs3.write(filepath, object4);
13306
13306
  } else if (mode === 33261) {
13307
- await fs3.write(filepath, object3, { mode: 511 });
13307
+ await fs3.write(filepath, object4, { mode: 511 });
13308
13308
  } else if (mode === 40960) {
13309
- await fs3.writelink(filepath, object3);
13309
+ await fs3.writelink(filepath, object4);
13310
13310
  } else {
13311
13311
  throw new InternalError(
13312
13312
  `Invalid mode 0o${mode.toString(
@@ -13643,16 +13643,16 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
13643
13643
  const filepath = `${dir}/${fullpath}`;
13644
13644
  if (method !== "create-index" && method !== "mkdir-index") {
13645
13645
  await assertNoSymlinkInLeadingPath(fs3, dir, fullpath);
13646
- const { object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid });
13646
+ const { object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid });
13647
13647
  if (chmod2) {
13648
13648
  await fs3.rm(filepath);
13649
13649
  }
13650
13650
  if (mode === 33188) {
13651
- await fs3.write(filepath, object3);
13651
+ await fs3.write(filepath, object4);
13652
13652
  } else if (mode === 33261) {
13653
- await fs3.write(filepath, object3, { mode: 511 });
13653
+ await fs3.write(filepath, object4, { mode: 511 });
13654
13654
  } else if (mode === 40960) {
13655
- await fs3.writelink(filepath, object3);
13655
+ await fs3.writelink(filepath, object4);
13656
13656
  } else {
13657
13657
  throw new InternalError(
13658
13658
  `Invalid mode 0o${mode.toString(8)} detected in blob ${oid}`
@@ -13951,12 +13951,12 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
13951
13951
  return;
13952
13952
  if (entries.length > 0 || parent.path === "." && entries.length === 0) {
13953
13953
  const tree = new GitTree(entries);
13954
- const object3 = tree.toObject();
13954
+ const object4 = tree.toObject();
13955
13955
  const oid = await _writeObject({
13956
13956
  fs: fs3,
13957
13957
  gitdir,
13958
13958
  type: "tree",
13959
- object: object3,
13959
+ object: object4,
13960
13960
  dryRun
13961
13961
  });
13962
13962
  parent.oid = oid;
@@ -14065,9 +14065,9 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
14065
14065
  let retOid = objContent ? oid : void 0;
14066
14066
  if (!objContent) {
14067
14067
  await acquireLock(currentFilepath, async () => {
14068
- const object3 = stats.isSymbolicLink() ? await fs3.readlink(currentFilepath).then(posixifyPathBuffer) : await fs3.read(currentFilepath);
14069
- if (object3 === null) throw new NotFoundError(currentFilepath);
14070
- retOid = await _writeObject({ fs: fs3, gitdir, type: "blob", object: object3 });
14068
+ const object4 = stats.isSymbolicLink() ? await fs3.readlink(currentFilepath).then(posixifyPathBuffer) : await fs3.read(currentFilepath);
14069
+ if (object4 === null) throw new NotFoundError(currentFilepath);
14070
+ retOid = await _writeObject({ fs: fs3, gitdir, type: "blob", object: object4 });
14071
14071
  });
14072
14072
  }
14073
14073
  return retOid;
@@ -14253,7 +14253,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
14253
14253
  (removedDir) => currentFilepath.startsWith(removedDir)
14254
14254
  )) {
14255
14255
  await assertNoSymlinkInLeadingPath(fs3, dir, op.filepath);
14256
- const { object: object3 } = await _readObject({
14256
+ const { object: object4 } = await _readObject({
14257
14257
  fs: fs3,
14258
14258
  cache: {},
14259
14259
  gitdir,
@@ -14262,7 +14262,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
14262
14262
  if (await fs3.exists(currentFilepath)) {
14263
14263
  await fs3.rm(currentFilepath);
14264
14264
  }
14265
- await fs3.write(currentFilepath, object3);
14265
+ await fs3.write(currentFilepath, object4);
14266
14266
  }
14267
14267
  break;
14268
14268
  }
@@ -15469,8 +15469,8 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
15469
15469
  for (const oid2 of response.shallows) {
15470
15470
  if (!oids.has(oid2)) {
15471
15471
  try {
15472
- const { object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid: oid2 });
15473
- const commit3 = new GitCommit(object3);
15472
+ const { object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid: oid2 });
15473
+ const commit3 = new GitCommit(object4);
15474
15474
  const hasParents = await Promise.all(
15475
15475
  commit3.headers().parent.map((oid3) => hasObject({ fs: fs3, cache, gitdir, oid: oid3 }))
15476
15476
  );
@@ -16040,11 +16040,11 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
16040
16040
  const shallows = await GitShallowManager.read({ fs: fs3, gitdir });
16041
16041
  const readParents = async (oid) => {
16042
16042
  if (parents.has(oid)) return parents.get(oid);
16043
- const { object: object3, type } = await _readObject({ fs: fs3, cache, gitdir, oid });
16043
+ const { object: object4, type } = await _readObject({ fs: fs3, cache, gitdir, oid });
16044
16044
  if (type !== "commit") {
16045
16045
  throw new ObjectTypeError(oid, type, "commit");
16046
16046
  }
16047
- const commit3 = GitCommit.from(object3);
16047
+ const commit3 = GitCommit.from(object4);
16048
16048
  const { parent } = commit3.parseHeaders();
16049
16049
  const result = shallows.has(oid) ? [] : parent;
16050
16050
  parents.set(oid, result);
@@ -16634,31 +16634,31 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
16634
16634
  }
16635
16635
  async function hashObject({
16636
16636
  type,
16637
- object: object3,
16637
+ object: object4,
16638
16638
  format = "content",
16639
16639
  oid = void 0
16640
16640
  }) {
16641
16641
  if (format !== "deflated") {
16642
16642
  if (format !== "wrapped") {
16643
- object3 = GitObject.wrap({ type, object: object3 });
16643
+ object4 = GitObject.wrap({ type, object: object4 });
16644
16644
  }
16645
- oid = await shasum(object3);
16645
+ oid = await shasum(object4);
16646
16646
  }
16647
- return { oid, object: object3 };
16647
+ return { oid, object: object4 };
16648
16648
  }
16649
- async function hashBlob({ object: object3 }) {
16649
+ async function hashBlob({ object: object4 }) {
16650
16650
  try {
16651
- assertParameter("object", object3);
16652
- if (typeof object3 === "string") {
16653
- object3 = Buffer.from(object3, "utf8");
16654
- } else if (!(object3 instanceof Uint8Array)) {
16655
- object3 = new Uint8Array(object3);
16651
+ assertParameter("object", object4);
16652
+ if (typeof object4 === "string") {
16653
+ object4 = Buffer.from(object4, "utf8");
16654
+ } else if (!(object4 instanceof Uint8Array)) {
16655
+ object4 = new Uint8Array(object4);
16656
16656
  }
16657
16657
  const type = "blob";
16658
16658
  const { oid, object: _object } = await hashObject({
16659
16659
  type,
16660
16660
  format: "content",
16661
- object: object3
16661
+ object: object4
16662
16662
  });
16663
16663
  return { oid, type, object: _object, format: "wrapped" };
16664
16664
  } catch (err) {
@@ -16771,7 +16771,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
16771
16771
  throw new MaxDepthError(depth);
16772
16772
  }
16773
16773
  const oid2 = queue.shift();
16774
- const { type, object: object3 } = await _readObject({
16774
+ const { type, object: object4 } = await _readObject({
16775
16775
  fs: fs3,
16776
16776
  cache,
16777
16777
  gitdir,
@@ -16780,7 +16780,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
16780
16780
  if (type !== "commit") {
16781
16781
  throw new ObjectTypeError(oid2, type, "commit");
16782
16782
  }
16783
- const commit3 = GitCommit.from(object3).parse();
16783
+ const commit3 = GitCommit.from(object4).parse();
16784
16784
  for (const parent of commit3.parent) {
16785
16785
  if (parent === ancestor) return true;
16786
16786
  }
@@ -17171,12 +17171,12 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
17171
17171
  cache,
17172
17172
  gitdir,
17173
17173
  oid: entry.oid
17174
- }).then(function({ object: object3 }) {
17174
+ }).then(function({ object: object4 }) {
17175
17175
  return _resolveFileId({
17176
17176
  fs: fs3,
17177
17177
  cache,
17178
17178
  gitdir,
17179
- tree: GitTree.from(object3),
17179
+ tree: GitTree.from(object4),
17180
17180
  fileId,
17181
17181
  oid,
17182
17182
  filepaths,
@@ -17480,9 +17480,9 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
17480
17480
  outputStream.push(buff);
17481
17481
  hash.update(buff);
17482
17482
  }
17483
- async function writeObject2({ stype, object: object3 }) {
17483
+ async function writeObject2({ stype, object: object4 }) {
17484
17484
  const type = types[stype];
17485
- let length = object3.length;
17485
+ let length = object4.length;
17486
17486
  let multibyte = length > 15 ? 128 : 0;
17487
17487
  const lastFour = length & 15;
17488
17488
  length = length >>> 4;
@@ -17494,14 +17494,14 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
17494
17494
  write(padHex(2, byte), "hex");
17495
17495
  length = length >>> 7;
17496
17496
  }
17497
- write(Buffer.from(await deflate(object3)));
17497
+ write(Buffer.from(await deflate(object4)));
17498
17498
  }
17499
17499
  write("PACK");
17500
17500
  write("00000002", "hex");
17501
17501
  write(padHex(8, oids.length), "hex");
17502
17502
  for (const oid of oids) {
17503
- const { type, object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid });
17504
- await writeObject2({ write, object: object3, stype: type });
17503
+ const { type, object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid });
17504
+ await writeObject2({ write, object: object4, stype: type });
17505
17505
  }
17506
17506
  const digest2 = hash.digest();
17507
17507
  outputStream.push(digest2);
@@ -17646,9 +17646,9 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
17646
17646
  const visited = /* @__PURE__ */ new Set();
17647
17647
  async function walk2(oid) {
17648
17648
  visited.add(oid);
17649
- const { type, object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid });
17649
+ const { type, object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid });
17650
17650
  if (type === "tag") {
17651
- const tag2 = GitAnnotatedTag.from(object3);
17651
+ const tag2 = GitAnnotatedTag.from(object4);
17652
17652
  const commit3 = tag2.headers().object;
17653
17653
  return walk2(commit3);
17654
17654
  }
@@ -17656,7 +17656,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
17656
17656
  throw new ObjectTypeError(oid, type, "commit");
17657
17657
  }
17658
17658
  if (!shallows.has(oid)) {
17659
- const commit3 = GitCommit.from(object3);
17659
+ const commit3 = GitCommit.from(object4);
17660
17660
  const parents = commit3.headers().parent;
17661
17661
  for (oid of parents) {
17662
17662
  if (!finishingSet.has(oid) && !visited.has(oid)) {
@@ -17681,17 +17681,17 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
17681
17681
  async function walk2(oid) {
17682
17682
  if (visited.has(oid)) return;
17683
17683
  visited.add(oid);
17684
- const { type, object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid });
17684
+ const { type, object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid });
17685
17685
  if (type === "tag") {
17686
- const tag2 = GitAnnotatedTag.from(object3);
17686
+ const tag2 = GitAnnotatedTag.from(object4);
17687
17687
  const obj = tag2.headers().object;
17688
17688
  await walk2(obj);
17689
17689
  } else if (type === "commit") {
17690
- const commit3 = GitCommit.from(object3);
17690
+ const commit3 = GitCommit.from(object4);
17691
17691
  const tree = commit3.headers().tree;
17692
17692
  await walk2(tree);
17693
17693
  } else if (type === "tree") {
17694
- const tree = GitTree.from(object3);
17694
+ const tree = GitTree.from(object4);
17695
17695
  for (const entry of tree) {
17696
17696
  if (entry.type === "blob") {
17697
17697
  visited.add(entry.oid);
@@ -18022,15 +18022,15 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
18022
18022
  }
18023
18023
  }
18024
18024
  async function resolveBlob({ fs: fs3, cache, gitdir, oid }) {
18025
- const { type, object: object3 } = await _readObject({ fs: fs3, cache, gitdir, oid });
18025
+ const { type, object: object4 } = await _readObject({ fs: fs3, cache, gitdir, oid });
18026
18026
  if (type === "tag") {
18027
- oid = GitAnnotatedTag.from(object3).parse().object;
18027
+ oid = GitAnnotatedTag.from(object4).parse().object;
18028
18028
  return resolveBlob({ fs: fs3, cache, gitdir, oid });
18029
18029
  }
18030
18030
  if (type !== "blob") {
18031
18031
  throw new ObjectTypeError(oid, type, "blob");
18032
18032
  }
18033
- return { oid, blob: new Uint8Array(object3) };
18033
+ return { oid, blob: new Uint8Array(object4) };
18034
18034
  }
18035
18035
  async function _readBlob({
18036
18036
  fs: fs3,
@@ -18215,7 +18215,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
18215
18215
  }
18216
18216
  }
18217
18217
  async function _readTag({ fs: fs3, cache, gitdir, oid }) {
18218
- const { type, object: object3 } = await _readObject({
18218
+ const { type, object: object4 } = await _readObject({
18219
18219
  fs: fs3,
18220
18220
  cache,
18221
18221
  gitdir,
@@ -18225,7 +18225,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
18225
18225
  if (type !== "tag") {
18226
18226
  throw new ObjectTypeError(oid, type, "tag");
18227
18227
  }
18228
- const tag2 = GitAnnotatedTag.from(object3);
18228
+ const tag2 = GitAnnotatedTag.from(object4);
18229
18229
  const result = {
18230
18230
  oid,
18231
18231
  tag: tag2.parse(),
@@ -18474,8 +18474,8 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
18474
18474
  throw err;
18475
18475
  }
18476
18476
  }
18477
- async function hashObject$1({ gitdir, type, object: object3 }) {
18478
- return shasum(GitObject.wrap({ type, object: object3 }));
18477
+ async function hashObject$1({ gitdir, type, object: object4 }) {
18478
+ return shasum(GitObject.wrap({ type, object: object4 }));
18479
18479
  }
18480
18480
  async function resetIndex({
18481
18481
  fs: _fs,
@@ -18527,12 +18527,12 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
18527
18527
  gid: 0,
18528
18528
  size: 0
18529
18529
  };
18530
- const object3 = dir && await fs3.read(join5(dir, filepath));
18531
- if (object3) {
18530
+ const object4 = dir && await fs3.read(join5(dir, filepath));
18531
+ if (object4) {
18532
18532
  workdirOid = await hashObject$1({
18533
18533
  gitdir: updatedGitdir,
18534
18534
  type: "blob",
18535
- object: object3
18535
+ object: object4
18536
18536
  });
18537
18537
  if (oid === workdirOid) {
18538
18538
  stats = await fs3.lstat(join5(dir, filepath));
@@ -18604,12 +18604,12 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
18604
18604
  }
18605
18605
  }
18606
18606
  async function _writeCommit({ fs: fs3, gitdir, commit: commit3 }) {
18607
- const object3 = GitCommit.from(commit3).toObject();
18607
+ const object4 = GitCommit.from(commit3).toObject();
18608
18608
  const oid = await _writeObject({
18609
18609
  fs: fs3,
18610
18610
  gitdir,
18611
18611
  type: "commit",
18612
- object: object3,
18612
+ object: object4,
18613
18613
  format: "content"
18614
18614
  });
18615
18615
  return oid;
@@ -19094,11 +19094,11 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19094
19094
  } else {
19095
19095
  const config = await GitConfigManager.get({ fs: fs3, gitdir: updatedGitdir });
19096
19096
  const autocrlf = await config.get("core.autocrlf");
19097
- const object3 = await fs3.read(join5(dir, filepath), { autocrlf });
19097
+ const object4 = await fs3.read(join5(dir, filepath), { autocrlf });
19098
19098
  const workdirOid = await hashObject$1({
19099
19099
  gitdir: updatedGitdir,
19100
19100
  type: "blob",
19101
- object: object3
19101
+ object: object4
19102
19102
  });
19103
19103
  if (refresh && I && indexEntry.oid === workdirOid) {
19104
19104
  if (stats.size !== -1) {
@@ -19149,14 +19149,14 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19149
19149
  if (path2.length === 0) {
19150
19150
  return entry.oid;
19151
19151
  }
19152
- const { type, object: object3 } = await _readObject({
19152
+ const { type, object: object4 } = await _readObject({
19153
19153
  fs: fs3,
19154
19154
  cache,
19155
19155
  gitdir: updatedGitdir,
19156
19156
  oid: entry.oid
19157
19157
  });
19158
19158
  if (type === "tree") {
19159
- const tree2 = GitTree.from(object3);
19159
+ const tree2 = GitTree.from(object4);
19160
19160
  return getOidAtPath({ fs: fs3, cache, gitdir: updatedGitdir, tree: tree2, path: path2 });
19161
19161
  }
19162
19162
  if (type === "blob") {
@@ -19260,7 +19260,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19260
19260
  dir,
19261
19261
  gitdir = join5(dir, ".git"),
19262
19262
  ref,
19263
- object: object3,
19263
+ object: object4,
19264
19264
  force = false
19265
19265
  }) {
19266
19266
  try {
@@ -19276,7 +19276,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19276
19276
  const value = await GitRefManager.resolve({
19277
19277
  fs: fs3,
19278
19278
  gitdir: updatedGitdir,
19279
- ref: object3 || "HEAD"
19279
+ ref: object4 || "HEAD"
19280
19280
  });
19281
19281
  if (!force && await GitRefManager.exists({ fs: fs3, gitdir: updatedGitdir, ref })) {
19282
19282
  throw new AlreadyExistsError("tag", ref);
@@ -19349,13 +19349,13 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19349
19349
  let stats;
19350
19350
  if (!oid) {
19351
19351
  stats = fileStats;
19352
- const object3 = stats.isSymbolicLink() ? await fs3.readlink(join5(dir, filepath)) : await fs3.read(join5(dir, filepath));
19352
+ const object4 = stats.isSymbolicLink() ? await fs3.readlink(join5(dir, filepath)) : await fs3.read(join5(dir, filepath));
19353
19353
  oid = await _writeObject({
19354
19354
  fs: fs3,
19355
19355
  gitdir: updatedGitdir,
19356
19356
  type: "blob",
19357
19357
  format: "content",
19358
- object: object3
19358
+ object: object4
19359
19359
  });
19360
19360
  } else {
19361
19361
  stats = {
@@ -19467,7 +19467,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19467
19467
  dir,
19468
19468
  gitdir = join5(dir, ".git"),
19469
19469
  type,
19470
- object: object3,
19470
+ object: object4,
19471
19471
  format = "parsed",
19472
19472
  oid,
19473
19473
  encoding = void 0
@@ -19478,16 +19478,16 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19478
19478
  if (format === "parsed") {
19479
19479
  switch (type) {
19480
19480
  case "commit":
19481
- object3 = GitCommit.from(object3).toObject();
19481
+ object4 = GitCommit.from(object4).toObject();
19482
19482
  break;
19483
19483
  case "tree":
19484
- object3 = GitTree.from(object3).toObject();
19484
+ object4 = GitTree.from(object4).toObject();
19485
19485
  break;
19486
19486
  case "blob":
19487
- object3 = Buffer.from(object3, encoding);
19487
+ object4 = Buffer.from(object4, encoding);
19488
19488
  break;
19489
19489
  case "tag":
19490
- object3 = GitAnnotatedTag.from(object3).toObject();
19490
+ object4 = GitAnnotatedTag.from(object4).toObject();
19491
19491
  break;
19492
19492
  default:
19493
19493
  throw new ObjectTypeError(oid || "", type, "blob|commit|tag|tree");
@@ -19498,7 +19498,7 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19498
19498
  fs: fs3,
19499
19499
  gitdir: updatedGitdir,
19500
19500
  type,
19501
- object: object3,
19501
+ object: object4,
19502
19502
  oid,
19503
19503
  format
19504
19504
  });
@@ -19556,12 +19556,12 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19556
19556
  }
19557
19557
  }
19558
19558
  async function _writeTag({ fs: fs3, gitdir, tag: tag2 }) {
19559
- const object3 = GitAnnotatedTag.from(tag2).toObject();
19559
+ const object4 = GitAnnotatedTag.from(tag2).toObject();
19560
19560
  const oid = await _writeObject({
19561
19561
  fs: fs3,
19562
19562
  gitdir,
19563
19563
  type: "tag",
19564
- object: object3,
19564
+ object: object4,
19565
19565
  format: "content"
19566
19566
  });
19567
19567
  return oid;
@@ -19748,7 +19748,8 @@ ${obj.gpgsig ? obj.gpgsig : ""}`;
19748
19748
  }
19749
19749
  });
19750
19750
 
19751
- // node_modules/.pnpm/@modelcontextprotocol+server@2.0.0/node_modules/@modelcontextprotocol/server/dist/stdio.mjs
19751
+ // node_modules/.pnpm/@modelcontextprotocol+server@2.3.0/node_modules/@modelcontextprotocol/server/dist/stdio.mjs
19752
+ var swallowsErrorsAfterClose = /* @__PURE__ */ Symbol("swallowsErrorsAfterClose");
19752
19753
  var StdioServerTransport = class {
19753
19754
  _readBuffer;
19754
19755
  _started = false;
@@ -19775,18 +19776,27 @@ var StdioServerTransport = class {
19775
19776
  this.onerror?.(error);
19776
19777
  };
19777
19778
  _onstdouterror = (error) => {
19779
+ if (this._closed) return;
19778
19780
  this.onerror?.(error);
19779
19781
  this.close().catch(() => {
19780
19782
  });
19781
19783
  };
19784
+ _onstdinclose = () => {
19785
+ this.close().catch(() => {
19786
+ });
19787
+ };
19782
19788
  /**
19783
19789
  * Starts listening for messages on `stdin`.
19784
19790
  */
19785
19791
  async start() {
19786
19792
  if (this._started) throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");
19787
19793
  this._started = true;
19794
+ for (const listener of this._stdout.listeners("error")) if (listener[swallowsErrorsAfterClose]) this._stdout.off("error", listener);
19795
+ if (this._stdin.readableEnded || this._stdin.destroyed) setImmediate(this._onstdinclose);
19788
19796
  this._stdin.on("data", this._ondata);
19789
19797
  this._stdin.on("error", this._onerror);
19798
+ this._stdin.on("end", this._onstdinclose);
19799
+ this._stdin.on("close", this._onstdinclose);
19790
19800
  this._stdout.on("error", this._onstdouterror);
19791
19801
  }
19792
19802
  processReadBuffer() {
@@ -19803,7 +19813,9 @@ var StdioServerTransport = class {
19803
19813
  this._closed = true;
19804
19814
  this._stdin.off("data", this._ondata);
19805
19815
  this._stdin.off("error", this._onerror);
19806
- this._stdout.off("error", this._onstdouterror);
19816
+ this._stdin.off("end", this._onstdinclose);
19817
+ this._stdin.off("close", this._onstdinclose);
19818
+ this._onstdouterror[swallowsErrorsAfterClose] = true;
19807
19819
  if (this._stdin.listenerCount("data") === 0) this._stdin.pause();
19808
19820
  this._readBuffer.clear();
19809
19821
  this.onclose?.();
@@ -19855,8 +19867,8 @@ var StdioConnectionChannel = class {
19855
19867
  }
19856
19868
  async send(message, options) {
19857
19869
  if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {
19858
- const { id: id3 } = message;
19859
- if (id3 !== void 0) this._settle(id3);
19870
+ const { id: id4 } = message;
19871
+ if (id4 !== void 0) this._settle(id4);
19860
19872
  }
19861
19873
  if (this._closed) return;
19862
19874
  if (this._outboundIntercept?.(message) === "handled") return;
@@ -19909,8 +19921,8 @@ var StdioConnectionChannel = class {
19909
19921
  this.onclose?.();
19910
19922
  }
19911
19923
  }
19912
- _settle(id3) {
19913
- this._pendingRequests.delete(id3);
19924
+ _settle(id4) {
19925
+ this._pendingRequests.delete(id4);
19914
19926
  if (this._pendingRequests.size === 0) this._releaseDrainWaiters();
19915
19927
  }
19916
19928
  _releaseDrainWaiters() {
@@ -19966,9 +19978,9 @@ function serveStdio(factory, options = {}) {
19966
19978
  } catch {
19967
19979
  }
19968
19980
  };
19969
- const writeErrorResponse = (id3, code, message, data) => wire.send({
19981
+ const writeErrorResponse = (id4, code, message, data) => wire.send({
19970
19982
  jsonrpc: "2.0",
19971
- id: id3,
19983
+ id: id4,
19972
19984
  error: {
19973
19985
  code,
19974
19986
  message,
@@ -20080,6 +20092,7 @@ function serveStdio(factory, options = {}) {
20080
20092
  return;
20081
20093
  }
20082
20094
  if (state.era === "modern" && await tryServeListen(message)) return;
20095
+ if (isTornDown()) return;
20083
20096
  state.instance.channel.deliver(message);
20084
20097
  return;
20085
20098
  }
@@ -20146,6 +20159,7 @@ function serveStdio(factory, options = {}) {
20146
20159
  };
20147
20160
  }
20148
20161
  if (await tryServeListen(message)) return;
20162
+ if (isTornDown()) return;
20149
20163
  state.instance.channel.deliver(message, { classification: opening.classification });
20150
20164
  return;
20151
20165
  case "legacy": {
@@ -20739,6 +20753,10 @@ var failures = {
20739
20753
  "The organization does not have sufficient available credits for this operation.",
20740
20754
  "Ask the organization owner to top up credits, then create a new deployment plan. Preserve existing data; do not buy a second subscription or repeatedly reconcile this terminal operation."
20741
20755
  ],
20756
+ project_budget_exceeded: [
20757
+ "The project's Stop budget prevents this deployment.",
20758
+ "This project's Stop budget for the current UTC month was reached; no build started. Read 'ohmyhost budget get --project ULID --json'. Ask the organization Owner to change the limit or mode only if they want to allow more spending; otherwise wait for the next UTC month. Then plan and deploy again or send a new push. Replaying this terminal operation cannot start a build."
20759
+ ],
20742
20760
  paid_plan_required: [
20743
20761
  "Transactional mail requires an active Paid plan for this organization.",
20744
20762
  "Ask the organization Owner to activate Paid through billing checkout; top-ups and signup credits do not activate it. Then plan the same deployment or promotion again. If the app should send no mail, instead set mail.enabled to false in ohmyhost.yaml, save or push the corrected version and plan its commit. Replaying this operation cannot enable mail. Do not reset the database."
@@ -22031,13 +22049,13 @@ var PROBLEM_POLICY = {
22031
22049
  mail_domain_conflict: {
22032
22050
  status: 409,
22033
22051
  retryable: false,
22034
- action: "Use the sender domain already configured for this project, or retire it with 'ohmyhost mail domain delete' (repeat while the removal is pending) and then set up the new domain; a domain registered to another project cannot be set up.",
22052
+ action: "Read the workspace sender resource and project binding. Reuse requires explicit domain-use authority, target-project editing and a current verified application identity with the same registrable main domain. Read the current revision before changing settings. Detach a shared project binding explicitly; legacy domain deletion cannot retire a resource used by another project.",
22035
22053
  title: "Mail domain conflict"
22036
22054
  },
22037
22055
  mail_domain_required: {
22038
22056
  status: 409,
22039
22057
  retryable: false,
22040
- action: "This app declares mail.enabled. Configure the project's own sender domain with 'ohmyhost mail setup' using its Prod environment ID, or set mail.enabled to false if the app sends no mail, then plan again.",
22058
+ action: "This app declares mail.enabled. Configure a sender with 'ohmyhost mail setup' or explicitly attach an authorized workspace sender using the project's Prod environment ID. Reuse first requires proof of the intended application hostname with the same registrable main domain; declare and verify that identity before mail-gated deployment. Then plan again.",
22041
22059
  title: "Mail domain required"
22042
22060
  },
22043
22061
  storage_jurisdiction_conflict: {
@@ -22475,16 +22493,16 @@ var parseOperation = (value) => {
22475
22493
  "reconciliation",
22476
22494
  "progress"
22477
22495
  ]);
22478
- const id3 = input["id"];
22496
+ const id4 = input["id"];
22479
22497
  const state = input["state"];
22480
22498
  const createdAt = input["created_at"];
22481
22499
  const updatedAt = input["updated_at"];
22482
22500
  const result = input["result"];
22483
22501
  const blockingOperationId = input["blocking_operation_id"];
22484
22502
  const deploymentId = input["deployment_id"];
22485
- if (blockingOperationId !== void 0 && (state !== "queued" || !isUlid(blockingOperationId) || blockingOperationId === id3) || deploymentId !== void 0 && !isUlid(deploymentId))
22503
+ if (blockingOperationId !== void 0 && (state !== "queued" || !isUlid(blockingOperationId) || blockingOperationId === id4) || deploymentId !== void 0 && !isUlid(deploymentId))
22486
22504
  throw new ResponseContractError();
22487
- if (!isUlid(id3) || !isOperationState(state) || !isIsoInstant(createdAt) || !isIsoInstant(updatedAt) || result !== void 0 && !isRecord(result)) {
22505
+ if (!isUlid(id4) || !isOperationState(state) || !isIsoInstant(createdAt) || !isIsoInstant(updatedAt) || result !== void 0 && !isRecord(result)) {
22488
22506
  throw new ResponseContractError();
22489
22507
  }
22490
22508
  let progress;
@@ -22524,7 +22542,7 @@ var parseOperation = (value) => {
22524
22542
  throw new ResponseContractError();
22525
22543
  }
22526
22544
  return {
22527
- id: id3,
22545
+ id: id4,
22528
22546
  state,
22529
22547
  created_at: createdAt,
22530
22548
  updated_at: updatedAt,
@@ -23257,7 +23275,7 @@ function exact3(v, keys) {
23257
23275
  // apps/product-cli/package.json
23258
23276
  var package_default2 = {
23259
23277
  name: "@ohmyhost/product-cli",
23260
- version: "0.1.35",
23278
+ version: "0.1.37",
23261
23279
  private: true,
23262
23280
  ohmyhost: {
23263
23281
  deployment: "production",
@@ -23631,12 +23649,12 @@ function assertBillingTaxIssue(value) {
23631
23649
  }
23632
23650
  var ulid4 = /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/u;
23633
23651
  var timestamp5 = (v) => typeof v === "string" && Number.isFinite(Date.parse(v)) && new Date(v).toISOString() === v;
23634
- function stripeUrl(value, host) {
23652
+ function stripeUrl(value, host2) {
23635
23653
  if (typeof value !== "string" || value.length > 8192)
23636
23654
  return false;
23637
23655
  try {
23638
23656
  const u = new URL(value);
23639
- return u.protocol === "https:" && u.hostname === host && !u.username && !u.password && !u.port;
23657
+ return u.protocol === "https:" && u.hostname === host2 && !u.username && !u.password && !u.port;
23640
23658
  } catch {
23641
23659
  return false;
23642
23660
  }
@@ -24073,9 +24091,9 @@ var selectProfileForOrganization = (profiles, request) => {
24073
24091
  if (inOrganization.length > 1)
24074
24092
  return { outcome: "ambiguous", candidates: inOrganization };
24075
24093
  const unscoped = candidates.filter((profile) => profile.organizationId === null);
24076
- const [member] = inOrganization;
24077
- if (member !== void 0)
24078
- return { outcome: "selected", profile: member };
24094
+ const [member2] = inOrganization;
24095
+ if (member2 !== void 0)
24096
+ return { outcome: "selected", profile: member2 };
24079
24097
  const [open4] = unscoped;
24080
24098
  if (unscoped.length === 1 && open4 !== void 0)
24081
24099
  return { outcome: "selected", profile: open4 };
@@ -24406,6 +24424,23 @@ var HELP_USAGE = Object.freeze({
24406
24424
  "function runs": "ohmyhost function runs --project ULID --environment ENVIRONMENT_ULID [--limit 1-100] --json",
24407
24425
  "secret set": `printf '%s' "$SECRET_VALUE" | ohmyhost secret set NAME --project ULID --environment ENVIRONMENT_ULID --idempotency-key KEY [--profile-user USER_ID --profile-organization ULID | --token-user USER_ID --token-organization ULID] --stdin [--wait] --json (with --profile-user and --profile-organization the saved login that runs it must belong to that user and organization; with --token-user and --token-organization it runs only with an OHMYHOST_TOKEN of that user and organization, never with a saved login)`,
24408
24426
  "secret delete": "ohmyhost secret delete NAME --project ULID --environment ENVIRONMENT_ULID --idempotency-key KEY [--wait] --json",
24427
+ "mail workspace list": "ohmyhost mail workspace list --organization ULID --json",
24428
+ "mail workspace create": "ohmyhost mail workspace create --organization ULID --domain DOMAIN --sending true --idempotency-key KEY --json",
24429
+ "mail workspace status": "ohmyhost mail workspace status --organization ULID --mail-domain ULID --json",
24430
+ "mail workspace retire": "ohmyhost mail workspace retire --organization ULID --mail-domain ULID --expected-revision N --idempotency-key KEY --yes --json",
24431
+ "mail workspace dns-authorize": "ohmyhost mail workspace dns-authorize --organization ULID --mail-domain ULID --expected-revision N --zone DOMAIN --idempotency-key KEY --json",
24432
+ "mail workspace dns-revoke": "ohmyhost mail workspace dns-revoke --organization ULID --mail-domain ULID --expected-revision N --idempotency-key KEY --yes --json",
24433
+ "mail workspace dns-status": "ohmyhost mail workspace dns-status --organization ULID --mail-domain ULID --json",
24434
+ "mail binding get": "ohmyhost mail binding get --project ULID --environment PROD_ULID --json",
24435
+ "mail binding set": "ohmyhost mail binding set --project ULID --environment PROD_ULID --mail-domain ULID --sending true --sender-addresses contact@mail.example.com,contracts@mail.example.com --default-from contracts@mail.example.com [--reply-to owner@example.com] --expected-revision N --idempotency-key KEY --json",
24436
+ "mail binding detach": "ohmyhost mail binding detach --project ULID --environment PROD_ULID --expected-revision N --idempotency-key KEY --yes --json",
24437
+ "mail identity get": "ohmyhost mail identity get --project ULID --json",
24438
+ "mail identity declare": "ohmyhost mail identity declare --project ULID --hostname sign.example.com --idempotency-key KEY --json",
24439
+ "mail identity verify": "ohmyhost mail identity verify --project ULID --expected-revision N --idempotency-key KEY --json",
24440
+ "mail identity revoke": "ohmyhost mail identity revoke --project ULID --expected-revision N --idempotency-key KEY --yes --json",
24441
+ "mail identity authorize": "ohmyhost mail identity authorize --project ULID --expected-revision N --zone example.com --idempotency-key KEY --json",
24442
+ "mail identity authorization-revoke": "ohmyhost mail identity authorization-revoke --project ULID --expected-revision N --idempotency-key KEY --yes --json",
24443
+ "mail identity authorization-status": "ohmyhost mail identity authorization-status --project ULID --json",
24409
24444
  "mail setup": "ohmyhost mail setup --project ULID --environment ULID --domain DOMAIN --sending true --receiving false --idempotency-key KEY --json",
24410
24445
  "mail status": "ohmyhost mail status --project ULID --environment ULID --json",
24411
24446
  "mail webhook set": "ohmyhost mail webhook set --project ULID --environment ULID --url HTTPS_URL --idempotency-key KEY --json",
@@ -25011,27 +25046,27 @@ var Interceptors = class {
25011
25046
  clear() {
25012
25047
  this.fns = [];
25013
25048
  }
25014
- eject(id3) {
25015
- const index = this.getInterceptorIndex(id3);
25049
+ eject(id4) {
25050
+ const index = this.getInterceptorIndex(id4);
25016
25051
  if (this.fns[index]) {
25017
25052
  this.fns[index] = null;
25018
25053
  }
25019
25054
  }
25020
- exists(id3) {
25021
- const index = this.getInterceptorIndex(id3);
25055
+ exists(id4) {
25056
+ const index = this.getInterceptorIndex(id4);
25022
25057
  return Boolean(this.fns[index]);
25023
25058
  }
25024
- getInterceptorIndex(id3) {
25025
- if (typeof id3 === "number") {
25026
- return this.fns[id3] ? id3 : -1;
25059
+ getInterceptorIndex(id4) {
25060
+ if (typeof id4 === "number") {
25061
+ return this.fns[id4] ? id4 : -1;
25027
25062
  }
25028
- return this.fns.indexOf(id3);
25063
+ return this.fns.indexOf(id4);
25029
25064
  }
25030
- update(id3, fn) {
25031
- const index = this.getInterceptorIndex(id3);
25065
+ update(id4, fn) {
25066
+ const index = this.getInterceptorIndex(id4);
25032
25067
  if (this.fns[index]) {
25033
25068
  this.fns[index] = fn;
25034
- return id3;
25069
+ return id4;
25035
25070
  }
25036
25071
  return false;
25037
25072
  }
@@ -25266,113 +25301,106 @@ var createClient = (config = {}) => {
25266
25301
  var client = createClient(createConfig({ throwOnError: true }));
25267
25302
 
25268
25303
  // packages/sdk-ts/dist/generated/sdk.gen.js
25269
- var getAccountProfile = (options) => (options?.client ?? client).get({
25270
- responseStyle: "data",
25271
- security: [{ scheme: "bearer", type: "http" }],
25272
- url: "/v1/me/profile",
25273
- ...options
25274
- });
25275
- var connectGithubOrganization = (parameters, options) => {
25304
+ var listWorkspaceMailDomains = (parameters, options) => {
25276
25305
  const params = buildClientParams([parameters], [
25277
25306
  {
25278
25307
  args: [
25279
25308
  { in: "headers", key: "X-Request-Id" },
25280
- { in: "headers", key: "Idempotency-Key" },
25281
- { in: "path", key: "organization_id" },
25282
- { key: "connectGithubOrganizationRequest", map: "body" }
25309
+ { in: "path", key: "organization_id" }
25283
25310
  ]
25284
25311
  }
25285
25312
  ]);
25286
- return (options?.client ?? client).post({
25313
+ return (options?.client ?? client).get({
25287
25314
  responseStyle: "data",
25288
25315
  security: [{ scheme: "bearer", type: "http" }],
25289
- url: "/v1/organizations/{organization_id}/github:connect",
25316
+ url: "/v1/organizations/{organization_id}/mail-domains",
25290
25317
  ...options,
25291
- ...params,
25292
- headers: {
25293
- "Content-Type": "application/json",
25294
- ...options?.headers,
25295
- ...params.headers
25296
- }
25318
+ ...params
25297
25319
  });
25298
25320
  };
25299
- var getGithubOrganizationConnection = (parameters, options) => {
25321
+ var createWorkspaceMailDomain = (parameters, options) => {
25300
25322
  const params = buildClientParams([parameters], [
25301
25323
  {
25302
25324
  args: [
25303
25325
  { in: "headers", key: "X-Request-Id" },
25304
- { in: "path", key: "organization_id" }
25326
+ { in: "headers", key: "Idempotency-Key" },
25327
+ { in: "path", key: "organization_id" },
25328
+ { key: "createWorkspaceMailDomainRequest", map: "body" }
25305
25329
  ]
25306
25330
  }
25307
25331
  ]);
25308
- return (options?.client ?? client).get({
25332
+ return (options?.client ?? client).post({
25309
25333
  responseStyle: "data",
25310
25334
  security: [{ scheme: "bearer", type: "http" }],
25311
- url: "/v1/organizations/{organization_id}/github",
25335
+ url: "/v1/organizations/{organization_id}/mail-domains",
25312
25336
  ...options,
25313
- ...params
25337
+ ...params,
25338
+ headers: {
25339
+ "Content-Type": "application/json",
25340
+ ...options?.headers,
25341
+ ...params.headers
25342
+ }
25314
25343
  });
25315
25344
  };
25316
- var getOrganizationReferral = (parameters, options) => {
25345
+ var retireWorkspaceMailDomain = (parameters, options) => {
25317
25346
  const params = buildClientParams([parameters], [
25318
25347
  {
25319
25348
  args: [
25320
25349
  { in: "headers", key: "X-Request-Id" },
25321
- { in: "path", key: "organization_id" }
25350
+ { in: "headers", key: "Idempotency-Key" },
25351
+ { in: "path", key: "organization_id" },
25352
+ { in: "path", key: "mail_domain_id" },
25353
+ { key: "mailRevisionRequest", map: "body" }
25322
25354
  ]
25323
25355
  }
25324
25356
  ]);
25325
- return (options?.client ?? client).get({
25326
- responseStyle: "data",
25327
- security: [{ scheme: "bearer", type: "http" }],
25328
- url: "/v1/organizations/{organization_id}/referral",
25329
- ...options,
25330
- ...params
25331
- });
25332
- };
25333
- var getOrganizationAccount = (parameters, options) => {
25334
- const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "organization_id" }] }]);
25335
- return (options?.client ?? client).get({
25357
+ return (options?.client ?? client).delete({
25336
25358
  responseStyle: "data",
25337
25359
  security: [{ scheme: "bearer", type: "http" }],
25338
- url: "/v1/organizations/{organization_id}/account",
25360
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}",
25339
25361
  ...options,
25340
- ...params
25362
+ ...params,
25363
+ headers: {
25364
+ "Content-Type": "application/json",
25365
+ ...options?.headers,
25366
+ ...params.headers
25367
+ }
25341
25368
  });
25342
25369
  };
25343
- var listUserApiKeys = (parameters, options) => {
25370
+ var getWorkspaceMailDomain = (parameters, options) => {
25344
25371
  const params = buildClientParams([parameters], [
25345
25372
  {
25346
25373
  args: [
25347
25374
  { in: "headers", key: "X-Request-Id" },
25348
25375
  { in: "path", key: "organization_id" },
25349
- { in: "query", key: "after" }
25376
+ { in: "path", key: "mail_domain_id" }
25350
25377
  ]
25351
25378
  }
25352
25379
  ]);
25353
25380
  return (options?.client ?? client).get({
25354
25381
  responseStyle: "data",
25355
25382
  security: [{ scheme: "bearer", type: "http" }],
25356
- url: "/v1/organizations/{organization_id}/user-api-keys",
25383
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}",
25357
25384
  ...options,
25358
25385
  ...params
25359
25386
  });
25360
25387
  };
25361
- var createUserApiKey = (parameters, options) => {
25388
+ var revokeWorkspaceMailDomainDnsAuthorization = (parameters, options) => {
25362
25389
  const params = buildClientParams([parameters], [
25363
25390
  {
25364
25391
  args: [
25365
25392
  { in: "headers", key: "X-Request-Id" },
25366
25393
  { in: "headers", key: "Idempotency-Key" },
25367
25394
  { in: "path", key: "organization_id" },
25368
- { in: "body", key: "name" }
25395
+ { in: "path", key: "mail_domain_id" },
25396
+ { key: "mailRevisionRequest", map: "body" }
25369
25397
  ]
25370
25398
  }
25371
25399
  ]);
25372
- return (options?.client ?? client).post({
25400
+ return (options?.client ?? client).delete({
25373
25401
  responseStyle: "data",
25374
25402
  security: [{ scheme: "bearer", type: "http" }],
25375
- url: "/v1/organizations/{organization_id}/user-api-keys",
25403
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}/dns-authorization",
25376
25404
  ...options,
25377
25405
  ...params,
25378
25406
  headers: {
@@ -25382,38 +25410,40 @@ var createUserApiKey = (parameters, options) => {
25382
25410
  }
25383
25411
  });
25384
25412
  };
25385
- var revokeUserApiKey = (parameters, options) => {
25413
+ var getWorkspaceMailDomainDnsAuthorization = (parameters, options) => {
25386
25414
  const params = buildClientParams([parameters], [
25387
25415
  {
25388
25416
  args: [
25389
25417
  { in: "headers", key: "X-Request-Id" },
25390
25418
  { in: "path", key: "organization_id" },
25391
- { in: "path", key: "key_id" }
25419
+ { in: "path", key: "mail_domain_id" }
25392
25420
  ]
25393
25421
  }
25394
25422
  ]);
25395
- return (options?.client ?? client).delete({
25423
+ return (options?.client ?? client).get({
25396
25424
  responseStyle: "data",
25397
25425
  security: [{ scheme: "bearer", type: "http" }],
25398
- url: "/v1/organizations/{organization_id}/user-api-keys/{key_id}",
25426
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}/dns-authorization",
25399
25427
  ...options,
25400
25428
  ...params
25401
25429
  });
25402
25430
  };
25403
- var submitFeedback = (parameters, options) => {
25431
+ var authorizeWorkspaceMailDomainDns = (parameters, options) => {
25404
25432
  const params = buildClientParams([parameters], [
25405
25433
  {
25406
25434
  args: [
25407
25435
  { in: "headers", key: "X-Request-Id" },
25408
25436
  { in: "headers", key: "Idempotency-Key" },
25409
- { key: "feedbackSubmission", map: "body" }
25437
+ { in: "path", key: "organization_id" },
25438
+ { in: "path", key: "mail_domain_id" },
25439
+ { key: "sharedMailDnsAuthorizationRequest", map: "body" }
25410
25440
  ]
25411
25441
  }
25412
25442
  ]);
25413
25443
  return (options?.client ?? client).post({
25414
25444
  responseStyle: "data",
25415
25445
  security: [{ scheme: "bearer", type: "http" }],
25416
- url: "/v1/feedback",
25446
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}/dns-authorization",
25417
25447
  ...options,
25418
25448
  ...params,
25419
25449
  headers: {
@@ -25423,48 +25453,65 @@ var submitFeedback = (parameters, options) => {
25423
25453
  }
25424
25454
  });
25425
25455
  };
25426
- var getFeedback = (parameters, options) => {
25456
+ var detachProjectMailDomainBinding = (parameters, options) => {
25427
25457
  const params = buildClientParams([parameters], [
25428
25458
  {
25429
25459
  args: [
25430
25460
  { in: "headers", key: "X-Request-Id" },
25431
- { in: "path", key: "feedback_id" },
25432
- { in: "query", key: "cursor" }
25461
+ { in: "headers", key: "Idempotency-Key" },
25462
+ { in: "path", key: "project_id" },
25463
+ { in: "path", key: "environment_id" },
25464
+ { key: "mailRevisionRequest", map: "body" }
25433
25465
  ]
25434
25466
  }
25435
25467
  ]);
25436
- return (options?.client ?? client).get({
25468
+ return (options?.client ?? client).delete({
25437
25469
  responseStyle: "data",
25438
25470
  security: [{ scheme: "bearer", type: "http" }],
25439
- url: "/v1/feedback/{feedback_id}",
25471
+ url: "/v1/projects/{project_id}/environments/{environment_id}/mail-domain-binding",
25440
25472
  ...options,
25441
- ...params
25473
+ ...params,
25474
+ headers: {
25475
+ "Content-Type": "application/json",
25476
+ ...options?.headers,
25477
+ ...params.headers
25478
+ }
25442
25479
  });
25443
25480
  };
25444
- var getCurrentIdentity = (parameters, options) => {
25445
- const params = buildClientParams([parameters], [{ args: [{ in: "headers", key: "X-Request-Id" }] }]);
25481
+ var getProjectMailDomainBinding = (parameters, options) => {
25482
+ const params = buildClientParams([parameters], [
25483
+ {
25484
+ args: [
25485
+ { in: "headers", key: "X-Request-Id" },
25486
+ { in: "path", key: "project_id" },
25487
+ { in: "path", key: "environment_id" }
25488
+ ]
25489
+ }
25490
+ ]);
25446
25491
  return (options?.client ?? client).get({
25447
25492
  responseStyle: "data",
25448
25493
  security: [{ scheme: "bearer", type: "http" }],
25449
- url: "/v1/me",
25494
+ url: "/v1/projects/{project_id}/environments/{environment_id}/mail-domain-binding",
25450
25495
  ...options,
25451
25496
  ...params
25452
25497
  });
25453
25498
  };
25454
- var createOrganization = (parameters, options) => {
25499
+ var putProjectMailDomainBinding = (parameters, options) => {
25455
25500
  const params = buildClientParams([parameters], [
25456
25501
  {
25457
25502
  args: [
25458
25503
  { in: "headers", key: "X-Request-Id" },
25459
25504
  { in: "headers", key: "Idempotency-Key" },
25460
- { key: "createOrganizationRequest", map: "body" }
25505
+ { in: "path", key: "project_id" },
25506
+ { in: "path", key: "environment_id" },
25507
+ { key: "projectMailDomainBindingRequest", map: "body" }
25461
25508
  ]
25462
25509
  }
25463
25510
  ]);
25464
- return (options?.client ?? client).post({
25511
+ return (options?.client ?? client).put({
25465
25512
  responseStyle: "data",
25466
25513
  security: [{ scheme: "bearer", type: "http" }],
25467
- url: "/v1/organizations",
25514
+ url: "/v1/projects/{project_id}/environments/{environment_id}/mail-domain-binding",
25468
25515
  ...options,
25469
25516
  ...params,
25470
25517
  headers: {
@@ -25474,22 +25521,21 @@ var createOrganization = (parameters, options) => {
25474
25521
  }
25475
25522
  });
25476
25523
  };
25477
- var createBillingCheckout = (parameters, options) => {
25524
+ var revokeApplicationDomainIdentity = (parameters, options) => {
25478
25525
  const params = buildClientParams([parameters], [
25479
25526
  {
25480
25527
  args: [
25481
25528
  { in: "headers", key: "X-Request-Id" },
25482
25529
  { in: "headers", key: "Idempotency-Key" },
25483
- { in: "path", key: "organization_id" },
25484
- { in: "body", key: "offer" },
25485
- { in: "body", key: "packs" }
25530
+ { in: "path", key: "project_id" },
25531
+ { key: "mailRevisionRequest", map: "body" }
25486
25532
  ]
25487
25533
  }
25488
25534
  ]);
25489
- return (options?.client ?? client).post({
25535
+ return (options?.client ?? client).delete({
25490
25536
  responseStyle: "data",
25491
25537
  security: [{ scheme: "bearer", type: "http" }],
25492
- url: "/v1/organizations/{organization_id}/billing/checkouts",
25538
+ url: "/v1/projects/{project_id}/application-domain-identity",
25493
25539
  ...options,
25494
25540
  ...params,
25495
25541
  headers: {
@@ -25499,38 +25545,38 @@ var createBillingCheckout = (parameters, options) => {
25499
25545
  }
25500
25546
  });
25501
25547
  };
25502
- var getBillingCheckout = (parameters, options) => {
25548
+ var getApplicationDomainIdentity = (parameters, options) => {
25503
25549
  const params = buildClientParams([parameters], [
25504
25550
  {
25505
25551
  args: [
25506
25552
  { in: "headers", key: "X-Request-Id" },
25507
- { in: "path", key: "organization_id" },
25508
- { in: "path", key: "checkout_id" }
25553
+ { in: "path", key: "project_id" }
25509
25554
  ]
25510
25555
  }
25511
25556
  ]);
25512
25557
  return (options?.client ?? client).get({
25513
25558
  responseStyle: "data",
25514
25559
  security: [{ scheme: "bearer", type: "http" }],
25515
- url: "/v1/organizations/{organization_id}/billing/checkouts/{checkout_id}",
25560
+ url: "/v1/projects/{project_id}/application-domain-identity",
25516
25561
  ...options,
25517
25562
  ...params
25518
25563
  });
25519
25564
  };
25520
- var createBillingPortal = (parameters, options) => {
25565
+ var declareApplicationDomainIdentity = (parameters, options) => {
25521
25566
  const params = buildClientParams([parameters], [
25522
25567
  {
25523
25568
  args: [
25524
25569
  { in: "headers", key: "X-Request-Id" },
25525
- { in: "path", key: "organization_id" },
25526
- { key: "body", map: "body" }
25570
+ { in: "headers", key: "Idempotency-Key" },
25571
+ { in: "path", key: "project_id" },
25572
+ { key: "applicationDomainIdentityRequest", map: "body" }
25527
25573
  ]
25528
25574
  }
25529
25575
  ]);
25530
- return (options?.client ?? client).post({
25576
+ return (options?.client ?? client).put({
25531
25577
  responseStyle: "data",
25532
25578
  security: [{ scheme: "bearer", type: "http" }],
25533
- url: "/v1/organizations/{organization_id}/billing/portal",
25579
+ url: "/v1/projects/{project_id}/application-domain-identity",
25534
25580
  ...options,
25535
25581
  ...params,
25536
25582
  headers: {
@@ -25540,41 +25586,45 @@ var createBillingPortal = (parameters, options) => {
25540
25586
  }
25541
25587
  });
25542
25588
  };
25543
- var getBillingRecharge = (parameters, options) => {
25589
+ var verifyApplicationDomainIdentity = (parameters, options) => {
25544
25590
  const params = buildClientParams([parameters], [
25545
25591
  {
25546
25592
  args: [
25547
25593
  { in: "headers", key: "X-Request-Id" },
25548
- { in: "path", key: "organization_id" }
25594
+ { in: "headers", key: "Idempotency-Key" },
25595
+ { in: "path", key: "project_id" },
25596
+ { key: "mailRevisionRequest", map: "body" }
25549
25597
  ]
25550
25598
  }
25551
25599
  ]);
25552
- return (options?.client ?? client).get({
25600
+ return (options?.client ?? client).post({
25553
25601
  responseStyle: "data",
25554
25602
  security: [{ scheme: "bearer", type: "http" }],
25555
- url: "/v1/organizations/{organization_id}/billing/recharge",
25603
+ url: "/v1/projects/{project_id}/application-domain-identity/verify",
25556
25604
  ...options,
25557
- ...params
25605
+ ...params,
25606
+ headers: {
25607
+ "Content-Type": "application/json",
25608
+ ...options?.headers,
25609
+ ...params.headers
25610
+ }
25558
25611
  });
25559
25612
  };
25560
- var configureBillingRecharge = (parameters, options) => {
25613
+ var revokeApplicationDomainIdentityDnsAuthorization = (parameters, options) => {
25561
25614
  const params = buildClientParams([parameters], [
25562
25615
  {
25563
25616
  args: [
25564
25617
  { in: "headers", key: "X-Request-Id" },
25565
25618
  { in: "headers", key: "Idempotency-Key" },
25566
- { in: "path", key: "organization_id" },
25567
- { in: "body", key: "enabled" },
25568
- { in: "body", key: "monthly_limit_minor" },
25569
- { in: "body", key: "consent" },
25570
- { in: "body", key: "revision" }
25619
+ { in: "path", key: "project_id" },
25620
+ { key: "mailRevisionRequest", map: "body" }
25571
25621
  ]
25572
25622
  }
25573
25623
  ]);
25574
- return (options?.client ?? client).put({
25624
+ return (options?.client ?? client).delete({
25575
25625
  responseStyle: "data",
25576
25626
  security: [{ scheme: "bearer", type: "http" }],
25577
- url: "/v1/organizations/{organization_id}/billing/recharge",
25627
+ url: "/v1/projects/{project_id}/application-domain-identity/dns-authorization",
25578
25628
  ...options,
25579
25629
  ...params,
25580
25630
  headers: {
@@ -25584,57 +25634,68 @@ var configureBillingRecharge = (parameters, options) => {
25584
25634
  }
25585
25635
  });
25586
25636
  };
25587
- var getOrganizationCredits = (parameters, options) => {
25637
+ var getApplicationDomainIdentityDnsAuthorization = (parameters, options) => {
25588
25638
  const params = buildClientParams([parameters], [
25589
25639
  {
25590
25640
  args: [
25591
25641
  { in: "headers", key: "X-Request-Id" },
25592
- { in: "path", key: "organization_id" }
25642
+ { in: "path", key: "project_id" }
25593
25643
  ]
25594
25644
  }
25595
25645
  ]);
25596
25646
  return (options?.client ?? client).get({
25597
25647
  responseStyle: "data",
25598
25648
  security: [{ scheme: "bearer", type: "http" }],
25599
- url: "/v1/organizations/{organization_id}/credits",
25649
+ url: "/v1/projects/{project_id}/application-domain-identity/dns-authorization",
25600
25650
  ...options,
25601
25651
  ...params
25602
25652
  });
25603
25653
  };
25604
- var getOrganizationCreditUsage = (parameters, options) => {
25654
+ var authorizeApplicationDomainIdentityDns = (parameters, options) => {
25605
25655
  const params = buildClientParams([parameters], [
25606
25656
  {
25607
25657
  args: [
25608
25658
  { in: "headers", key: "X-Request-Id" },
25609
- { in: "path", key: "organization_id" },
25610
- { in: "query", key: "month" },
25611
- { in: "query", key: "cursor" }
25659
+ { in: "headers", key: "Idempotency-Key" },
25660
+ { in: "path", key: "project_id" },
25661
+ { key: "sharedMailDnsAuthorizationRequest", map: "body" }
25612
25662
  ]
25613
25663
  }
25614
25664
  ]);
25615
- return (options?.client ?? client).get({
25665
+ return (options?.client ?? client).post({
25616
25666
  responseStyle: "data",
25617
25667
  security: [{ scheme: "bearer", type: "http" }],
25618
- url: "/v1/organizations/{organization_id}/credit-usage",
25668
+ url: "/v1/projects/{project_id}/application-domain-identity/dns-authorization",
25619
25669
  ...options,
25620
- ...params
25670
+ ...params,
25671
+ headers: {
25672
+ "Content-Type": "application/json",
25673
+ ...options?.headers,
25674
+ ...params.headers
25675
+ }
25621
25676
  });
25622
25677
  };
25623
- var createProjectExport = (parameters, options) => {
25678
+ var getAccountProfile = (options) => (options?.client ?? client).get({
25679
+ responseStyle: "data",
25680
+ security: [{ scheme: "bearer", type: "http" }],
25681
+ url: "/v1/me/profile",
25682
+ ...options
25683
+ });
25684
+ var connectGithubOrganization = (parameters, options) => {
25624
25685
  const params = buildClientParams([parameters], [
25625
25686
  {
25626
25687
  args: [
25627
25688
  { in: "headers", key: "X-Request-Id" },
25628
25689
  { in: "headers", key: "Idempotency-Key" },
25629
- { in: "path", key: "project_id" },
25630
- { in: "body", key: "password" }
25690
+ { in: "path", key: "organization_id" },
25691
+ { key: "connectGithubOrganizationRequest", map: "body" }
25631
25692
  ]
25632
25693
  }
25633
25694
  ]);
25634
25695
  return (options?.client ?? client).post({
25635
25696
  responseStyle: "data",
25636
25697
  security: [{ scheme: "bearer", type: "http" }],
25637
- url: "/v1/projects/{project_id}/exports",
25698
+ url: "/v1/organizations/{organization_id}/github:connect",
25638
25699
  ...options,
25639
25700
  ...params,
25640
25701
  headers: {
@@ -25644,97 +25705,83 @@ var createProjectExport = (parameters, options) => {
25644
25705
  }
25645
25706
  });
25646
25707
  };
25647
- var getProjectExport = (parameters, options) => {
25708
+ var getGithubOrganizationConnection = (parameters, options) => {
25648
25709
  const params = buildClientParams([parameters], [
25649
25710
  {
25650
25711
  args: [
25651
25712
  { in: "headers", key: "X-Request-Id" },
25652
- { in: "path", key: "project_id" },
25653
- { in: "path", key: "export_id" }
25713
+ { in: "path", key: "organization_id" }
25654
25714
  ]
25655
25715
  }
25656
25716
  ]);
25657
25717
  return (options?.client ?? client).get({
25658
25718
  responseStyle: "data",
25659
25719
  security: [{ scheme: "bearer", type: "http" }],
25660
- url: "/v1/projects/{project_id}/exports/{export_id}",
25720
+ url: "/v1/organizations/{organization_id}/github",
25661
25721
  ...options,
25662
25722
  ...params
25663
25723
  });
25664
25724
  };
25665
- var getProjectCreditBudget = (parameters, options) => {
25725
+ var getOrganizationReferral = (parameters, options) => {
25666
25726
  const params = buildClientParams([parameters], [
25667
25727
  {
25668
25728
  args: [
25669
25729
  { in: "headers", key: "X-Request-Id" },
25670
- { in: "path", key: "project_id" }
25730
+ { in: "path", key: "organization_id" }
25671
25731
  ]
25672
25732
  }
25673
25733
  ]);
25674
25734
  return (options?.client ?? client).get({
25675
25735
  responseStyle: "data",
25676
25736
  security: [{ scheme: "bearer", type: "http" }],
25677
- url: "/v1/projects/{project_id}/credit-budget",
25737
+ url: "/v1/organizations/{organization_id}/referral",
25678
25738
  ...options,
25679
25739
  ...params
25680
25740
  });
25681
25741
  };
25682
- var setProjectCreditBudget = (parameters, options) => {
25683
- const params = buildClientParams([parameters], [
25684
- {
25685
- args: [
25686
- { in: "headers", key: "X-Request-Id" },
25687
- { in: "headers", key: "Idempotency-Key" },
25688
- { in: "path", key: "project_id" },
25689
- { key: "setProjectCreditBudgetRequest", map: "body" }
25690
- ]
25691
- }
25692
- ]);
25693
- return (options?.client ?? client).put({
25742
+ var getOrganizationAccount = (parameters, options) => {
25743
+ const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "organization_id" }] }]);
25744
+ return (options?.client ?? client).get({
25694
25745
  responseStyle: "data",
25695
25746
  security: [{ scheme: "bearer", type: "http" }],
25696
- url: "/v1/projects/{project_id}/credit-budget",
25747
+ url: "/v1/organizations/{organization_id}/account",
25697
25748
  ...options,
25698
- ...params,
25699
- headers: {
25700
- "Content-Type": "application/json",
25701
- ...options?.headers,
25702
- ...params.headers
25703
- }
25749
+ ...params
25704
25750
  });
25705
25751
  };
25706
- var listProjects = (parameters, options) => {
25752
+ var listUserApiKeys = (parameters, options) => {
25707
25753
  const params = buildClientParams([parameters], [
25708
25754
  {
25709
25755
  args: [
25710
25756
  { in: "headers", key: "X-Request-Id" },
25711
- { in: "query", key: "cursor" },
25712
- { in: "query", key: "limit" }
25757
+ { in: "path", key: "organization_id" },
25758
+ { in: "query", key: "after" }
25713
25759
  ]
25714
25760
  }
25715
25761
  ]);
25716
25762
  return (options?.client ?? client).get({
25717
25763
  responseStyle: "data",
25718
25764
  security: [{ scheme: "bearer", type: "http" }],
25719
- url: "/v1/projects",
25765
+ url: "/v1/organizations/{organization_id}/user-api-keys",
25720
25766
  ...options,
25721
25767
  ...params
25722
25768
  });
25723
25769
  };
25724
- var createProject = (parameters, options) => {
25770
+ var createUserApiKey = (parameters, options) => {
25725
25771
  const params = buildClientParams([parameters], [
25726
25772
  {
25727
25773
  args: [
25728
25774
  { in: "headers", key: "X-Request-Id" },
25729
25775
  { in: "headers", key: "Idempotency-Key" },
25730
- { key: "createProjectRequest", map: "body" }
25776
+ { in: "path", key: "organization_id" },
25777
+ { in: "body", key: "name" }
25731
25778
  ]
25732
25779
  }
25733
25780
  ]);
25734
25781
  return (options?.client ?? client).post({
25735
25782
  responseStyle: "data",
25736
25783
  security: [{ scheme: "bearer", type: "http" }],
25737
- url: "/v1/projects",
25784
+ url: "/v1/organizations/{organization_id}/user-api-keys",
25738
25785
  ...options,
25739
25786
  ...params,
25740
25787
  headers: {
@@ -25744,22 +25791,384 @@ var createProject = (parameters, options) => {
25744
25791
  }
25745
25792
  });
25746
25793
  };
25747
- var deleteProject = (parameters, options) => {
25794
+ var revokeUserApiKey = (parameters, options) => {
25748
25795
  const params = buildClientParams([parameters], [
25749
25796
  {
25750
25797
  args: [
25751
25798
  { in: "headers", key: "X-Request-Id" },
25752
- { in: "headers", key: "Idempotency-Key" },
25753
- { in: "headers", key: "If-Match" },
25754
- { in: "headers", key: "X-Confirmation-Token" },
25755
- { in: "path", key: "project_id" }
25799
+ { in: "path", key: "organization_id" },
25800
+ { in: "path", key: "key_id" }
25756
25801
  ]
25757
25802
  }
25758
25803
  ]);
25759
25804
  return (options?.client ?? client).delete({
25760
25805
  responseStyle: "data",
25761
25806
  security: [{ scheme: "bearer", type: "http" }],
25762
- url: "/v1/projects/{project_id}",
25807
+ url: "/v1/organizations/{organization_id}/user-api-keys/{key_id}",
25808
+ ...options,
25809
+ ...params
25810
+ });
25811
+ };
25812
+ var submitFeedback = (parameters, options) => {
25813
+ const params = buildClientParams([parameters], [
25814
+ {
25815
+ args: [
25816
+ { in: "headers", key: "X-Request-Id" },
25817
+ { in: "headers", key: "Idempotency-Key" },
25818
+ { key: "feedbackSubmission", map: "body" }
25819
+ ]
25820
+ }
25821
+ ]);
25822
+ return (options?.client ?? client).post({
25823
+ responseStyle: "data",
25824
+ security: [{ scheme: "bearer", type: "http" }],
25825
+ url: "/v1/feedback",
25826
+ ...options,
25827
+ ...params,
25828
+ headers: {
25829
+ "Content-Type": "application/json",
25830
+ ...options?.headers,
25831
+ ...params.headers
25832
+ }
25833
+ });
25834
+ };
25835
+ var getFeedback = (parameters, options) => {
25836
+ const params = buildClientParams([parameters], [
25837
+ {
25838
+ args: [
25839
+ { in: "headers", key: "X-Request-Id" },
25840
+ { in: "path", key: "feedback_id" },
25841
+ { in: "query", key: "cursor" }
25842
+ ]
25843
+ }
25844
+ ]);
25845
+ return (options?.client ?? client).get({
25846
+ responseStyle: "data",
25847
+ security: [{ scheme: "bearer", type: "http" }],
25848
+ url: "/v1/feedback/{feedback_id}",
25849
+ ...options,
25850
+ ...params
25851
+ });
25852
+ };
25853
+ var getCurrentIdentity = (parameters, options) => {
25854
+ const params = buildClientParams([parameters], [{ args: [{ in: "headers", key: "X-Request-Id" }] }]);
25855
+ return (options?.client ?? client).get({
25856
+ responseStyle: "data",
25857
+ security: [{ scheme: "bearer", type: "http" }],
25858
+ url: "/v1/me",
25859
+ ...options,
25860
+ ...params
25861
+ });
25862
+ };
25863
+ var createOrganization = (parameters, options) => {
25864
+ const params = buildClientParams([parameters], [
25865
+ {
25866
+ args: [
25867
+ { in: "headers", key: "X-Request-Id" },
25868
+ { in: "headers", key: "Idempotency-Key" },
25869
+ { key: "createOrganizationRequest", map: "body" }
25870
+ ]
25871
+ }
25872
+ ]);
25873
+ return (options?.client ?? client).post({
25874
+ responseStyle: "data",
25875
+ security: [{ scheme: "bearer", type: "http" }],
25876
+ url: "/v1/organizations",
25877
+ ...options,
25878
+ ...params,
25879
+ headers: {
25880
+ "Content-Type": "application/json",
25881
+ ...options?.headers,
25882
+ ...params.headers
25883
+ }
25884
+ });
25885
+ };
25886
+ var createBillingCheckout = (parameters, options) => {
25887
+ const params = buildClientParams([parameters], [
25888
+ {
25889
+ args: [
25890
+ { in: "headers", key: "X-Request-Id" },
25891
+ { in: "headers", key: "Idempotency-Key" },
25892
+ { in: "path", key: "organization_id" },
25893
+ { in: "body", key: "offer" },
25894
+ { in: "body", key: "packs" }
25895
+ ]
25896
+ }
25897
+ ]);
25898
+ return (options?.client ?? client).post({
25899
+ responseStyle: "data",
25900
+ security: [{ scheme: "bearer", type: "http" }],
25901
+ url: "/v1/organizations/{organization_id}/billing/checkouts",
25902
+ ...options,
25903
+ ...params,
25904
+ headers: {
25905
+ "Content-Type": "application/json",
25906
+ ...options?.headers,
25907
+ ...params.headers
25908
+ }
25909
+ });
25910
+ };
25911
+ var getBillingCheckout = (parameters, options) => {
25912
+ const params = buildClientParams([parameters], [
25913
+ {
25914
+ args: [
25915
+ { in: "headers", key: "X-Request-Id" },
25916
+ { in: "path", key: "organization_id" },
25917
+ { in: "path", key: "checkout_id" }
25918
+ ]
25919
+ }
25920
+ ]);
25921
+ return (options?.client ?? client).get({
25922
+ responseStyle: "data",
25923
+ security: [{ scheme: "bearer", type: "http" }],
25924
+ url: "/v1/organizations/{organization_id}/billing/checkouts/{checkout_id}",
25925
+ ...options,
25926
+ ...params
25927
+ });
25928
+ };
25929
+ var createBillingPortal = (parameters, options) => {
25930
+ const params = buildClientParams([parameters], [
25931
+ {
25932
+ args: [
25933
+ { in: "headers", key: "X-Request-Id" },
25934
+ { in: "path", key: "organization_id" },
25935
+ { key: "body", map: "body" }
25936
+ ]
25937
+ }
25938
+ ]);
25939
+ return (options?.client ?? client).post({
25940
+ responseStyle: "data",
25941
+ security: [{ scheme: "bearer", type: "http" }],
25942
+ url: "/v1/organizations/{organization_id}/billing/portal",
25943
+ ...options,
25944
+ ...params,
25945
+ headers: {
25946
+ "Content-Type": "application/json",
25947
+ ...options?.headers,
25948
+ ...params.headers
25949
+ }
25950
+ });
25951
+ };
25952
+ var getBillingRecharge = (parameters, options) => {
25953
+ const params = buildClientParams([parameters], [
25954
+ {
25955
+ args: [
25956
+ { in: "headers", key: "X-Request-Id" },
25957
+ { in: "path", key: "organization_id" }
25958
+ ]
25959
+ }
25960
+ ]);
25961
+ return (options?.client ?? client).get({
25962
+ responseStyle: "data",
25963
+ security: [{ scheme: "bearer", type: "http" }],
25964
+ url: "/v1/organizations/{organization_id}/billing/recharge",
25965
+ ...options,
25966
+ ...params
25967
+ });
25968
+ };
25969
+ var configureBillingRecharge = (parameters, options) => {
25970
+ const params = buildClientParams([parameters], [
25971
+ {
25972
+ args: [
25973
+ { in: "headers", key: "X-Request-Id" },
25974
+ { in: "headers", key: "Idempotency-Key" },
25975
+ { in: "path", key: "organization_id" },
25976
+ { in: "body", key: "enabled" },
25977
+ { in: "body", key: "monthly_limit_minor" },
25978
+ { in: "body", key: "consent" },
25979
+ { in: "body", key: "revision" }
25980
+ ]
25981
+ }
25982
+ ]);
25983
+ return (options?.client ?? client).put({
25984
+ responseStyle: "data",
25985
+ security: [{ scheme: "bearer", type: "http" }],
25986
+ url: "/v1/organizations/{organization_id}/billing/recharge",
25987
+ ...options,
25988
+ ...params,
25989
+ headers: {
25990
+ "Content-Type": "application/json",
25991
+ ...options?.headers,
25992
+ ...params.headers
25993
+ }
25994
+ });
25995
+ };
25996
+ var getOrganizationCredits = (parameters, options) => {
25997
+ const params = buildClientParams([parameters], [
25998
+ {
25999
+ args: [
26000
+ { in: "headers", key: "X-Request-Id" },
26001
+ { in: "path", key: "organization_id" }
26002
+ ]
26003
+ }
26004
+ ]);
26005
+ return (options?.client ?? client).get({
26006
+ responseStyle: "data",
26007
+ security: [{ scheme: "bearer", type: "http" }],
26008
+ url: "/v1/organizations/{organization_id}/credits",
26009
+ ...options,
26010
+ ...params
26011
+ });
26012
+ };
26013
+ var getOrganizationCreditUsage = (parameters, options) => {
26014
+ const params = buildClientParams([parameters], [
26015
+ {
26016
+ args: [
26017
+ { in: "headers", key: "X-Request-Id" },
26018
+ { in: "path", key: "organization_id" },
26019
+ { in: "query", key: "month" },
26020
+ { in: "query", key: "cursor" }
26021
+ ]
26022
+ }
26023
+ ]);
26024
+ return (options?.client ?? client).get({
26025
+ responseStyle: "data",
26026
+ security: [{ scheme: "bearer", type: "http" }],
26027
+ url: "/v1/organizations/{organization_id}/credit-usage",
26028
+ ...options,
26029
+ ...params
26030
+ });
26031
+ };
26032
+ var createProjectExport = (parameters, options) => {
26033
+ const params = buildClientParams([parameters], [
26034
+ {
26035
+ args: [
26036
+ { in: "headers", key: "X-Request-Id" },
26037
+ { in: "headers", key: "Idempotency-Key" },
26038
+ { in: "path", key: "project_id" },
26039
+ { in: "body", key: "password" }
26040
+ ]
26041
+ }
26042
+ ]);
26043
+ return (options?.client ?? client).post({
26044
+ responseStyle: "data",
26045
+ security: [{ scheme: "bearer", type: "http" }],
26046
+ url: "/v1/projects/{project_id}/exports",
26047
+ ...options,
26048
+ ...params,
26049
+ headers: {
26050
+ "Content-Type": "application/json",
26051
+ ...options?.headers,
26052
+ ...params.headers
26053
+ }
26054
+ });
26055
+ };
26056
+ var getProjectExport = (parameters, options) => {
26057
+ const params = buildClientParams([parameters], [
26058
+ {
26059
+ args: [
26060
+ { in: "headers", key: "X-Request-Id" },
26061
+ { in: "path", key: "project_id" },
26062
+ { in: "path", key: "export_id" }
26063
+ ]
26064
+ }
26065
+ ]);
26066
+ return (options?.client ?? client).get({
26067
+ responseStyle: "data",
26068
+ security: [{ scheme: "bearer", type: "http" }],
26069
+ url: "/v1/projects/{project_id}/exports/{export_id}",
26070
+ ...options,
26071
+ ...params
26072
+ });
26073
+ };
26074
+ var getProjectCreditBudget = (parameters, options) => {
26075
+ const params = buildClientParams([parameters], [
26076
+ {
26077
+ args: [
26078
+ { in: "headers", key: "X-Request-Id" },
26079
+ { in: "path", key: "project_id" }
26080
+ ]
26081
+ }
26082
+ ]);
26083
+ return (options?.client ?? client).get({
26084
+ responseStyle: "data",
26085
+ security: [{ scheme: "bearer", type: "http" }],
26086
+ url: "/v1/projects/{project_id}/credit-budget",
26087
+ ...options,
26088
+ ...params
26089
+ });
26090
+ };
26091
+ var setProjectCreditBudget = (parameters, options) => {
26092
+ const params = buildClientParams([parameters], [
26093
+ {
26094
+ args: [
26095
+ { in: "headers", key: "X-Request-Id" },
26096
+ { in: "headers", key: "Idempotency-Key" },
26097
+ { in: "path", key: "project_id" },
26098
+ { key: "setProjectCreditBudgetRequest", map: "body" }
26099
+ ]
26100
+ }
26101
+ ]);
26102
+ return (options?.client ?? client).put({
26103
+ responseStyle: "data",
26104
+ security: [{ scheme: "bearer", type: "http" }],
26105
+ url: "/v1/projects/{project_id}/credit-budget",
26106
+ ...options,
26107
+ ...params,
26108
+ headers: {
26109
+ "Content-Type": "application/json",
26110
+ ...options?.headers,
26111
+ ...params.headers
26112
+ }
26113
+ });
26114
+ };
26115
+ var listProjects = (parameters, options) => {
26116
+ const params = buildClientParams([parameters], [
26117
+ {
26118
+ args: [
26119
+ { in: "headers", key: "X-Request-Id" },
26120
+ { in: "query", key: "cursor" },
26121
+ { in: "query", key: "limit" }
26122
+ ]
26123
+ }
26124
+ ]);
26125
+ return (options?.client ?? client).get({
26126
+ responseStyle: "data",
26127
+ security: [{ scheme: "bearer", type: "http" }],
26128
+ url: "/v1/projects",
26129
+ ...options,
26130
+ ...params
26131
+ });
26132
+ };
26133
+ var createProject = (parameters, options) => {
26134
+ const params = buildClientParams([parameters], [
26135
+ {
26136
+ args: [
26137
+ { in: "headers", key: "X-Request-Id" },
26138
+ { in: "headers", key: "Idempotency-Key" },
26139
+ { key: "createProjectRequest", map: "body" }
26140
+ ]
26141
+ }
26142
+ ]);
26143
+ return (options?.client ?? client).post({
26144
+ responseStyle: "data",
26145
+ security: [{ scheme: "bearer", type: "http" }],
26146
+ url: "/v1/projects",
26147
+ ...options,
26148
+ ...params,
26149
+ headers: {
26150
+ "Content-Type": "application/json",
26151
+ ...options?.headers,
26152
+ ...params.headers
26153
+ }
26154
+ });
26155
+ };
26156
+ var deleteProject = (parameters, options) => {
26157
+ const params = buildClientParams([parameters], [
26158
+ {
26159
+ args: [
26160
+ { in: "headers", key: "X-Request-Id" },
26161
+ { in: "headers", key: "Idempotency-Key" },
26162
+ { in: "headers", key: "If-Match" },
26163
+ { in: "headers", key: "X-Confirmation-Token" },
26164
+ { in: "path", key: "project_id" }
26165
+ ]
26166
+ }
26167
+ ]);
26168
+ return (options?.client ?? client).delete({
26169
+ responseStyle: "data",
26170
+ security: [{ scheme: "bearer", type: "http" }],
26171
+ url: "/v1/projects/{project_id}",
25763
26172
  ...options,
25764
26173
  ...params
25765
26174
  });
@@ -27422,6 +27831,320 @@ async function executeManagedMail(client2, input) {
27422
27831
  return result;
27423
27832
  }
27424
27833
 
27834
+ // packages/sdk-ts/dist/generated/shared-mail-response.js
27835
+ var ULID4 = /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/u;
27836
+ var HOST = /^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$/u;
27837
+ function assertSharedMailResponse(value, input) {
27838
+ const v = object3(value);
27839
+ if (input.action === "domains_list") {
27840
+ exact5(v, ["items"]);
27841
+ if (!Array.isArray(v["items"]) || v["items"].length > 100)
27842
+ invalid6();
27843
+ for (const item of v["items"])
27844
+ assertSharedMailResponse(item, {
27845
+ ...input,
27846
+ action: "domain_get",
27847
+ mailDomainId: String(object3(item)["domain_id"])
27848
+ });
27849
+ return;
27850
+ }
27851
+ if (["domain_get", "domain_create", "domain_retire"].includes(input.action)) {
27852
+ exact5(v, [
27853
+ "domain_id",
27854
+ "organization_id",
27855
+ "domain",
27856
+ "registrable_domain",
27857
+ "revision",
27858
+ "status",
27859
+ "sending",
27860
+ "receiving",
27861
+ "configured_at",
27862
+ "observed_at",
27863
+ "dns_records",
27864
+ "bindings_count"
27865
+ ]);
27866
+ id3(v["domain_id"]);
27867
+ id3(v["organization_id"]);
27868
+ if (!("organizationId" in input) || v["organization_id"] !== input.organizationId || "mailDomainId" in input && v["domain_id"] !== input.mailDomainId)
27869
+ invalid6();
27870
+ host(v["domain"]);
27871
+ host(v["registrable_domain"]);
27872
+ positive(v["revision"]);
27873
+ member(v["status"], ["active", "retiring", "retired"]);
27874
+ for (const k of ["sending", "receiving"])
27875
+ member(v[k], ["disabled", "pending", "ready", "failed"]);
27876
+ time2(v["configured_at"]);
27877
+ if (v["observed_at"] !== null)
27878
+ time2(v["observed_at"]);
27879
+ if (!Number.isSafeInteger(v["bindings_count"]) || Number(v["bindings_count"]) < 0)
27880
+ invalid6();
27881
+ if (!Array.isArray(v["dns_records"]))
27882
+ invalid6();
27883
+ for (const entry of v["dns_records"]) {
27884
+ const r = object3(entry);
27885
+ exact5(r, ["type", "name", "value", "purpose", "status"], ["priority"]);
27886
+ member(r["type"], ["TXT", "MX", "CNAME"]);
27887
+ for (const k of ["name", "value", "purpose", "status"])
27888
+ if (typeof r[k] !== "string" || /[\r\n\0]/u.test(r[k]))
27889
+ invalid6();
27890
+ if (r["priority"] !== void 0 && (!Number.isSafeInteger(r["priority"]) || Number(r["priority"]) < 0 || Number(r["priority"]) > 65535))
27891
+ invalid6();
27892
+ if (r["type"] === "MX" && r["priority"] === void 0)
27893
+ invalid6();
27894
+ }
27895
+ return;
27896
+ }
27897
+ if (["binding_get", "binding_set", "binding_detach"].includes(input.action)) {
27898
+ exact5(v, [
27899
+ "mail_domain_id",
27900
+ "organization_id",
27901
+ "project_id",
27902
+ "environment_id",
27903
+ "revision",
27904
+ "sending",
27905
+ "sender_addresses",
27906
+ "default_from",
27907
+ "default_reply_to",
27908
+ "legacy",
27909
+ "status",
27910
+ "application_domain_identity"
27911
+ ]);
27912
+ for (const k of ["mail_domain_id", "organization_id", "project_id", "environment_id"])
27913
+ id3(v[k]);
27914
+ if (!("projectId" in input) || !("environmentId" in input) || v["project_id"] !== input.projectId || v["environment_id"] !== input.environmentId || "mailDomainId" in input && v["mail_domain_id"] !== input.mailDomainId)
27915
+ invalid6();
27916
+ positive(v["revision"]);
27917
+ for (const k of ["sending", "legacy"])
27918
+ if (typeof v[k] !== "boolean")
27919
+ invalid6();
27920
+ member(v["status"], ["active", "detached", "suspended"]);
27921
+ if (!Array.isArray(v["sender_addresses"]) || v["sender_addresses"].length > 32 || new Set(v["sender_addresses"]).size !== v["sender_addresses"].length)
27922
+ invalid6();
27923
+ for (const a of v["sender_addresses"])
27924
+ mailbox(a);
27925
+ for (const k of ["default_from", "default_reply_to"])
27926
+ if (v[k] !== null)
27927
+ mailbox(v[k]);
27928
+ if (!v["legacy"] && (!v["sender_addresses"].includes(v["default_from"]) || v["sender_addresses"].length === 0))
27929
+ invalid6();
27930
+ if (v["application_domain_identity"] !== null) {
27931
+ const identity = object3(v["application_domain_identity"]);
27932
+ exact5(identity, ["hostname", "registrable_domain", "revision", "status"]);
27933
+ host(identity["hostname"]);
27934
+ host(identity["registrable_domain"]);
27935
+ positive(identity["revision"]);
27936
+ member(identity["status"], ["pending", "verified", "expired", "revoked"]);
27937
+ }
27938
+ return;
27939
+ }
27940
+ if (["identity_get", "identity_declare", "identity_verify", "identity_revoke"].includes(input.action)) {
27941
+ exact5(v, [
27942
+ "organization_id",
27943
+ "project_id",
27944
+ "hostname",
27945
+ "registrable_domain",
27946
+ "status",
27947
+ "revision",
27948
+ "challenge",
27949
+ "verified_at",
27950
+ "expires_at"
27951
+ ]);
27952
+ id3(v["organization_id"]);
27953
+ id3(v["project_id"]);
27954
+ if (!("projectId" in input) || v["project_id"] !== input.projectId)
27955
+ invalid6();
27956
+ host(v["hostname"]);
27957
+ host(v["registrable_domain"]);
27958
+ positive(v["revision"]);
27959
+ member(v["status"], ["pending", "verified", "expired", "revoked"]);
27960
+ const challenge = object3(v["challenge"]);
27961
+ exact5(challenge, ["type", "name", "value"]);
27962
+ if (challenge["type"] !== "TXT" || typeof challenge["name"] !== "string" || challenge["name"] !== `_omh-project.${v["hostname"]}` || typeof challenge["value"] !== "string" || challenge["value"].length < 16 || challenge["value"].length > 255 || /[\r\n\0]/u.test(challenge["value"]))
27963
+ invalid6();
27964
+ if (v["verified_at"] !== null)
27965
+ time2(v["verified_at"]);
27966
+ time2(v["expires_at"]);
27967
+ return;
27968
+ }
27969
+ if (input.action === "domain_dns_authorize" || input.action === "identity_authorize") {
27970
+ exact5(v, ["authorization_id", "authorization_url", "expires_at"]);
27971
+ id3(v["authorization_id"]);
27972
+ time2(v["expires_at"]);
27973
+ if (typeof v["authorization_url"] !== "string" || !/^https:\/\/dash\.cloudflare\.com\/oauth2\/auth\?/u.test(v["authorization_url"]))
27974
+ invalid6();
27975
+ return;
27976
+ }
27977
+ exact5(v, ["status", "zone", "scopes", "expires_at"]);
27978
+ member(v["status"], ["not_authorized", "pending", "authorized", "expired", "revoked"]);
27979
+ if (!Array.isArray(v["scopes"]) || v["scopes"].length > 2 || new Set(v["scopes"]).size !== v["scopes"].length || v["scopes"].some((s) => s !== "dns.write" && s !== "zone.read"))
27980
+ invalid6();
27981
+ if (v["zone"] !== null)
27982
+ host(v["zone"]);
27983
+ if (v["expires_at"] !== null)
27984
+ time2(v["expires_at"]);
27985
+ if (v["status"] === "not_authorized" && (v["zone"] !== null || v["expires_at"] !== null || v["scopes"].length))
27986
+ invalid6();
27987
+ }
27988
+ function object3(v) {
27989
+ if (v === null || typeof v !== "object" || Array.isArray(v))
27990
+ invalid6();
27991
+ return v;
27992
+ }
27993
+ function exact5(v, required, optional = []) {
27994
+ if (required.some((k) => !(k in v)) || Object.keys(v).some((k) => !required.includes(k) && !optional.includes(k)))
27995
+ invalid6();
27996
+ }
27997
+ function member(v, values) {
27998
+ if (typeof v !== "string" || !values.includes(v))
27999
+ invalid6();
28000
+ }
28001
+ function id3(v) {
28002
+ if (typeof v !== "string" || !ULID4.test(v))
28003
+ invalid6();
28004
+ }
28005
+ function host(v) {
28006
+ if (typeof v !== "string" || !HOST.test(v))
28007
+ invalid6();
28008
+ }
28009
+ function positive(v) {
28010
+ if (!Number.isSafeInteger(v) || Number(v) < 1)
28011
+ invalid6();
28012
+ }
28013
+ function time2(v) {
28014
+ if (typeof v !== "string" || !Number.isFinite(Date.parse(v)) || new Date(v).toISOString() !== v)
28015
+ invalid6();
28016
+ }
28017
+ function mailbox(v) {
28018
+ if (typeof v !== "string" || v.length > 254 || !/^[A-Za-z0-9.!#$%&'*+\-/=?^_`{|}~]+@[a-z0-9.-]+\.[a-z]{2,63}$/u.test(v) || v.startsWith(".") || v.includes("..") || v.includes(".@"))
28019
+ invalid6();
28020
+ }
28021
+ function invalid6() {
28022
+ throw new TypeError("Shared mail response contract invalid");
28023
+ }
28024
+
28025
+ // packages/sdk-ts/dist/shared-mail.js
28026
+ async function executeSharedMail(client2, input) {
28027
+ const options = { client: client2 };
28028
+ let result;
28029
+ switch (input.action) {
28030
+ case "domains_list":
28031
+ result = await listWorkspaceMailDomains({ organization_id: input.organizationId }, options);
28032
+ break;
28033
+ case "domain_create":
28034
+ result = await createWorkspaceMailDomain({
28035
+ organization_id: input.organizationId,
28036
+ "Idempotency-Key": input.idempotencyKey,
28037
+ createWorkspaceMailDomainRequest: { domain: input.domain, sending: input.sending }
28038
+ }, options);
28039
+ break;
28040
+ case "domain_get":
28041
+ result = await getWorkspaceMailDomain({ organization_id: input.organizationId, mail_domain_id: input.mailDomainId }, options);
28042
+ break;
28043
+ case "domain_retire":
28044
+ result = await retireWorkspaceMailDomain({
28045
+ organization_id: input.organizationId,
28046
+ mail_domain_id: input.mailDomainId,
28047
+ "Idempotency-Key": input.idempotencyKey,
28048
+ mailRevisionRequest: { expected_revision: input.expectedRevision }
28049
+ }, options);
28050
+ break;
28051
+ case "domain_dns_authorize":
28052
+ result = await authorizeWorkspaceMailDomainDns({
28053
+ organization_id: input.organizationId,
28054
+ mail_domain_id: input.mailDomainId,
28055
+ "Idempotency-Key": input.idempotencyKey,
28056
+ sharedMailDnsAuthorizationRequest: {
28057
+ expected_revision: input.expectedRevision,
28058
+ zone: input.zone
28059
+ }
28060
+ }, options);
28061
+ break;
28062
+ case "domain_dns_revoke":
28063
+ result = await revokeWorkspaceMailDomainDnsAuthorization({
28064
+ organization_id: input.organizationId,
28065
+ mail_domain_id: input.mailDomainId,
28066
+ "Idempotency-Key": input.idempotencyKey,
28067
+ mailRevisionRequest: { expected_revision: input.expectedRevision }
28068
+ }, options);
28069
+ break;
28070
+ case "identity_authorization_revoke":
28071
+ result = await revokeApplicationDomainIdentityDnsAuthorization({
28072
+ project_id: input.projectId,
28073
+ "Idempotency-Key": input.idempotencyKey,
28074
+ mailRevisionRequest: { expected_revision: input.expectedRevision }
28075
+ }, options);
28076
+ break;
28077
+ case "domain_dns_status":
28078
+ result = await getWorkspaceMailDomainDnsAuthorization({ organization_id: input.organizationId, mail_domain_id: input.mailDomainId }, options);
28079
+ break;
28080
+ case "binding_get":
28081
+ result = await getProjectMailDomainBinding({ project_id: input.projectId, environment_id: input.environmentId }, options);
28082
+ break;
28083
+ case "binding_set":
28084
+ result = await putProjectMailDomainBinding({
28085
+ project_id: input.projectId,
28086
+ environment_id: input.environmentId,
28087
+ "Idempotency-Key": input.idempotencyKey,
28088
+ projectMailDomainBindingRequest: {
28089
+ mail_domain_id: input.mailDomainId,
28090
+ sending: input.sending,
28091
+ sender_addresses: [...input.senderAddresses],
28092
+ default_from: input.defaultFrom,
28093
+ default_reply_to: input.defaultReplyTo,
28094
+ expected_revision: input.expectedRevision
28095
+ }
28096
+ }, options);
28097
+ break;
28098
+ case "binding_detach":
28099
+ result = await detachProjectMailDomainBinding({
28100
+ project_id: input.projectId,
28101
+ environment_id: input.environmentId,
28102
+ "Idempotency-Key": input.idempotencyKey,
28103
+ mailRevisionRequest: { expected_revision: input.expectedRevision }
28104
+ }, options);
28105
+ break;
28106
+ case "identity_get":
28107
+ result = await getApplicationDomainIdentity({ project_id: input.projectId }, options);
28108
+ break;
28109
+ case "identity_declare":
28110
+ result = await declareApplicationDomainIdentity({
28111
+ project_id: input.projectId,
28112
+ "Idempotency-Key": input.idempotencyKey,
28113
+ applicationDomainIdentityRequest: { hostname: input.hostname }
28114
+ }, options);
28115
+ break;
28116
+ case "identity_verify":
28117
+ result = await verifyApplicationDomainIdentity({
28118
+ project_id: input.projectId,
28119
+ "Idempotency-Key": input.idempotencyKey,
28120
+ mailRevisionRequest: { expected_revision: input.expectedRevision }
28121
+ }, options);
28122
+ break;
28123
+ case "identity_revoke":
28124
+ result = await revokeApplicationDomainIdentity({
28125
+ project_id: input.projectId,
28126
+ "Idempotency-Key": input.idempotencyKey,
28127
+ mailRevisionRequest: { expected_revision: input.expectedRevision }
28128
+ }, options);
28129
+ break;
28130
+ case "identity_authorize":
28131
+ result = await authorizeApplicationDomainIdentityDns({
28132
+ project_id: input.projectId,
28133
+ "Idempotency-Key": input.idempotencyKey,
28134
+ sharedMailDnsAuthorizationRequest: {
28135
+ expected_revision: input.expectedRevision,
28136
+ zone: input.zone
28137
+ }
28138
+ }, options);
28139
+ break;
28140
+ case "identity_authorization_status":
28141
+ result = await getApplicationDomainIdentityDnsAuthorization({ project_id: input.projectId }, options);
28142
+ break;
28143
+ }
28144
+ assertSharedMailResponse(result, input);
28145
+ return result;
28146
+ }
28147
+
27425
28148
  // packages/workos-auth-contracts/dist/device-flow.js
27426
28149
  var WORKOS_AUTHKIT_DEVICE_TOKEN_ENDPOINT = "https://api.workos.com/user_management/authenticate";
27427
28150
  var allowedDeviceTokenFields = /* @__PURE__ */ new Set([
@@ -27992,6 +28715,9 @@ var GeneratedSdkProductApi = class {
27992
28715
  secret_name: input.name
27993
28716
  }, { client: this.#client });
27994
28717
  }
28718
+ sharedMail(input) {
28719
+ return executeSharedMail(this.#client, input);
28720
+ }
27995
28721
  managedMail(input) {
27996
28722
  return executeManagedMail(this.#client, input);
27997
28723
  }
@@ -28872,6 +29598,9 @@ var GeneratedSdkLocalMcpClient = class {
28872
29598
  operation_id: input.operationId
28873
29599
  }, { client: this.#client });
28874
29600
  }
29601
+ sharedMail(input) {
29602
+ return executeSharedMail(this.#client, input);
29603
+ }
28875
29604
  managedMail(input) {
28876
29605
  return executeManagedMail(this.#client, input);
28877
29606
  }
@@ -29076,13 +29805,13 @@ function normalizeSourceChanges(value) {
29076
29805
  const body = record6(value);
29077
29806
  const changes = body["changes"];
29078
29807
  if (!Array.isArray(changes) || changes.length < 1 || changes.length > MANAGED_SOURCE_LIMITS.files)
29079
- invalid6();
29808
+ invalid7();
29080
29809
  let textBytes = 0;
29081
29810
  const normalized = changes.map((change) => {
29082
29811
  const entry = record6(change);
29083
29812
  const hasText = Object.hasOwn(entry, "content_text");
29084
29813
  if (hasText === Object.hasOwn(entry, "content_base64"))
29085
- invalid6();
29814
+ invalid7();
29086
29815
  const result = {
29087
29816
  ...entry,
29088
29817
  executable: Object.hasOwn(entry, "executable") ? entry["executable"] : false
@@ -29090,13 +29819,13 @@ function normalizeSourceChanges(value) {
29090
29819
  if (hasText) {
29091
29820
  const text = entry["content_text"];
29092
29821
  if (typeof text !== "string" || text.length > MANAGED_SOURCE_LIMITS.fileBytes)
29093
- invalid6();
29822
+ invalid7();
29094
29823
  const bytes = new TextEncoder().encode(text);
29095
29824
  if (bytes.byteLength > MANAGED_SOURCE_LIMITS.fileBytes || new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes) !== text)
29096
- invalid6();
29825
+ invalid7();
29097
29826
  textBytes += bytes.byteLength;
29098
29827
  if (textBytes > MANAGED_SOURCE_LIMITS.uploadBytes)
29099
- invalid6();
29828
+ invalid7();
29100
29829
  result["content_base64"] = encodeBase64(bytes);
29101
29830
  delete result["content_text"];
29102
29831
  }
@@ -29106,7 +29835,7 @@ function normalizeSourceChanges(value) {
29106
29835
  }
29107
29836
  function formatMcpSourceFileResponse(value, format = "text") {
29108
29837
  if (format !== "text" && format !== "base64")
29109
- invalid6();
29838
+ invalid7();
29110
29839
  assertManagedSourceResponse("files", value);
29111
29840
  const response = value;
29112
29841
  if (format === "base64" || !("file" in response))
@@ -29140,10 +29869,10 @@ function encodeBase64(bytes) {
29140
29869
  }
29141
29870
  function record6(value) {
29142
29871
  if (typeof value !== "object" || value === null || Array.isArray(value))
29143
- invalid6();
29872
+ invalid7();
29144
29873
  return value;
29145
29874
  }
29146
- function invalid6() {
29875
+ function invalid7() {
29147
29876
  throw new TypeError("MCP source content is invalid");
29148
29877
  }
29149
29878
 
@@ -29620,6 +30349,236 @@ function createLocalOhmyhostMcpServer(dependencies) {
29620
30349
  operationId: input.operation_id,
29621
30350
  idempotencyKey: input.idempotency_key
29622
30351
  })), mutationAnnotations());
30352
+ registerProductTool(server, dependencies, "workspace_mail_domain_dns_revoke", "Revoke the selected workspace sender DNS grant at its current revision with explicit confirmation. This does not retire the sender or remove existing DNS records.", external_exports.object({
30353
+ organization_id: identifier2,
30354
+ mail_domain_id: identifier2,
30355
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30356
+ idempotency_key: idempotencyKey,
30357
+ confirmed: external_exports.literal(true)
30358
+ }).strict(), async (client2, input) => {
30359
+ if (!client2.sharedMail)
30360
+ throw new Error("Shared mail unavailable");
30361
+ return client2.sharedMail({
30362
+ action: "domain_dns_revoke",
30363
+ organizationId: input.organization_id,
30364
+ mailDomainId: input.mail_domain_id,
30365
+ expectedRevision: input.expected_revision,
30366
+ idempotencyKey: input.idempotency_key
30367
+ });
30368
+ }, mutationAnnotations());
30369
+ registerProductTool(server, dependencies, "application_domain_identity_authorization_revoke", "Revoke the current application identity DNS grant with explicit confirmation. The application hostname and its verified proof remain unchanged; no website routing or DNS records are removed.", external_exports.object({
30370
+ project_id: identifier2,
30371
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30372
+ idempotency_key: idempotencyKey,
30373
+ confirmed: external_exports.literal(true)
30374
+ }).strict(), async (client2, input) => {
30375
+ if (!client2.sharedMail)
30376
+ throw new Error("Shared mail unavailable");
30377
+ return client2.sharedMail({
30378
+ action: "identity_authorization_revoke",
30379
+ projectId: input.project_id,
30380
+ expectedRevision: input.expected_revision,
30381
+ idempotencyKey: input.idempotency_key
30382
+ });
30383
+ }, mutationAnnotations());
30384
+ registerProductTool(server, dependencies, "workspace_mail_domains_list", "List only workspace sender domains this account and connected client may read. Project edit consent alone grants no sender-domain access.", external_exports.object({ organization_id: identifier2 }).strict(), async (client2, input) => {
30385
+ if (!client2.sharedMail)
30386
+ throw new Error("Shared mail unavailable");
30387
+ return client2.sharedMail({ action: "domains_list", organizationId: input.organization_id });
30388
+ });
30389
+ registerProductTool(server, dependencies, "workspace_mail_domain_create", "Create one workspace-owned transactional sender domain. Requires explicit workspace mail administration. This creates no mailbox and preserves existing MX records.", external_exports.object({
30390
+ organization_id: identifier2,
30391
+ domain: external_exports.string().min(1).max(253),
30392
+ sending: external_exports.literal(true),
30393
+ idempotency_key: idempotencyKey
30394
+ }).strict(), async (client2, input) => {
30395
+ if (!client2.sharedMail)
30396
+ throw new Error("Shared mail unavailable");
30397
+ return client2.sharedMail({
30398
+ action: "domain_create",
30399
+ organizationId: input.organization_id,
30400
+ domain: input.domain,
30401
+ sending: input.sending,
30402
+ idempotencyKey: input.idempotency_key
30403
+ });
30404
+ }, mutationAnnotations());
30405
+ registerProductTool(server, dependencies, "workspace_mail_domain_get", "Read sender verification, lifecycle, revision and DNS records for one authorized workspace resource.", external_exports.object({ organization_id: identifier2, mail_domain_id: identifier2 }).strict(), async (client2, input) => {
30406
+ if (!client2.sharedMail)
30407
+ throw new Error("Shared mail unavailable");
30408
+ return client2.sharedMail({
30409
+ action: "domain_get",
30410
+ organizationId: input.organization_id,
30411
+ mailDomainId: input.mail_domain_id
30412
+ });
30413
+ });
30414
+ registerProductTool(server, dependencies, "workspace_mail_domain_retire", "Retire an explicitly selected workspace sender only after every send and inbound reference is detached and provider effects settle. Requires current revision and explicit confirmation. Retain the same request key after uncertainty.", external_exports.object({
30415
+ organization_id: identifier2,
30416
+ mail_domain_id: identifier2,
30417
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30418
+ idempotency_key: idempotencyKey,
30419
+ confirmed: external_exports.literal(true)
30420
+ }).strict(), async (client2, input) => {
30421
+ if (!client2.sharedMail)
30422
+ throw new Error("Shared mail unavailable");
30423
+ return client2.sharedMail({
30424
+ action: "domain_retire",
30425
+ organizationId: input.organization_id,
30426
+ mailDomainId: input.mail_domain_id,
30427
+ expectedRevision: input.expected_revision,
30428
+ idempotencyKey: input.idempotency_key
30429
+ });
30430
+ }, mutationAnnotations());
30431
+ registerProductTool(server, dependencies, "workspace_mail_domain_dns_authorize", "Request human Cloudflare consent for this selected workspace sender, zone and revision. No provider credentials are accepted. Open the returned link for the human; never approve it automatically.", external_exports.object({
30432
+ organization_id: identifier2,
30433
+ mail_domain_id: identifier2,
30434
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30435
+ zone: external_exports.string().min(1).max(253),
30436
+ idempotency_key: idempotencyKey
30437
+ }).strict(), async (client2, input) => {
30438
+ if (!client2.sharedMail)
30439
+ throw new Error("Shared mail unavailable");
30440
+ return client2.sharedMail({
30441
+ action: "domain_dns_authorize",
30442
+ organizationId: input.organization_id,
30443
+ mailDomainId: input.mail_domain_id,
30444
+ expectedRevision: input.expected_revision,
30445
+ zone: input.zone,
30446
+ idempotencyKey: input.idempotency_key
30447
+ });
30448
+ }, mutationAnnotations());
30449
+ registerProductTool(server, dependencies, "workspace_mail_domain_dns_status", "Read exact workspace sender DNS authorization status. An existing verified resource needs no new DNS grant merely to attach a same-domain project.", external_exports.object({ organization_id: identifier2, mail_domain_id: identifier2 }).strict(), async (client2, input) => {
30450
+ if (!client2.sharedMail)
30451
+ throw new Error("Shared mail unavailable");
30452
+ return client2.sharedMail({
30453
+ action: "domain_dns_status",
30454
+ organizationId: input.organization_id,
30455
+ mailDomainId: input.mail_domain_id
30456
+ });
30457
+ });
30458
+ registerProductTool(server, dependencies, "mail_binding_get", "Read the Prod sender binding and per-project From addresses, default From and default Reply-To. Dev uses this logical project sender identity.", external_exports.object({ project_id: identifier2, environment_id: identifier2 }).strict(), async (client2, input) => {
30459
+ if (!client2.sharedMail)
30460
+ throw new Error("Shared mail unavailable");
30461
+ return client2.sharedMail({
30462
+ action: "binding_get",
30463
+ projectId: input.project_id,
30464
+ environmentId: input.environment_id
30465
+ });
30466
+ });
30467
+ registerProductTool(server, dependencies, "mail_binding_set", "Attach a verified workspace sender or update its project settings. Requires target project edit and explicit sender use permission. The verified application and sender must share the registrable main domain. Set exact From addresses; no per-prefix DNS is needed. Reply-To may name an external existing mailbox and a per-message value overrides the default. Attaching changes no sender DNS and grants no receiving access.", external_exports.object({
30468
+ project_id: identifier2,
30469
+ environment_id: identifier2,
30470
+ mail_domain_id: identifier2,
30471
+ sending: external_exports.boolean(),
30472
+ sender_addresses: external_exports.array(external_exports.email().max(320)).min(1).max(32),
30473
+ default_from: external_exports.email().max(320),
30474
+ default_reply_to: external_exports.email().max(320).nullable(),
30475
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30476
+ idempotency_key: idempotencyKey
30477
+ }).strict(), async (client2, input) => {
30478
+ if (!client2.sharedMail)
30479
+ throw new Error("Shared mail unavailable");
30480
+ return client2.sharedMail({
30481
+ action: "binding_set",
30482
+ projectId: input.project_id,
30483
+ environmentId: input.environment_id,
30484
+ mailDomainId: input.mail_domain_id,
30485
+ sending: input.sending,
30486
+ senderAddresses: input.sender_addresses,
30487
+ defaultFrom: input.default_from,
30488
+ defaultReplyTo: input.default_reply_to,
30489
+ expectedRevision: input.expected_revision,
30490
+ idempotencyKey: input.idempotency_key
30491
+ });
30492
+ }, mutationAnnotations());
30493
+ registerProductTool(server, dependencies, "mail_binding_detach", "Detach only this project send binding with current revision and explicit confirmation. Sibling senders, provider verification and the exclusive inbound owner remain intact.", external_exports.object({
30494
+ project_id: identifier2,
30495
+ environment_id: identifier2,
30496
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30497
+ idempotency_key: idempotencyKey,
30498
+ confirmed: external_exports.literal(true)
30499
+ }).strict(), async (client2, input) => {
30500
+ if (!client2.sharedMail)
30501
+ throw new Error("Shared mail unavailable");
30502
+ return client2.sharedMail({
30503
+ action: "binding_detach",
30504
+ projectId: input.project_id,
30505
+ environmentId: input.environment_id,
30506
+ expectedRevision: input.expected_revision,
30507
+ idempotencyKey: input.idempotency_key
30508
+ });
30509
+ }, mutationAnnotations());
30510
+ registerProductTool(server, dependencies, "application_domain_identity_get", "Read the project intended application hostname, current revision and ownership proof. An awaiting deployment declaration or technical OMH hostname alone is not verified customer-domain identity.", external_exports.object({ project_id: identifier2 }).strict(), async (client2, input) => {
30511
+ if (!client2.sharedMail)
30512
+ throw new Error("Shared mail unavailable");
30513
+ return client2.sharedMail({ action: "identity_get", projectId: input.project_id });
30514
+ });
30515
+ registerProductTool(server, dependencies, "application_domain_identity_declare", "Declare the intended customer application hostname before deployment. Returns a project-bound TXT ownership challenge. This does not route website traffic or prove ownership; verify the challenge before attaching a shared sender.", external_exports.object({
30516
+ project_id: identifier2,
30517
+ hostname: external_exports.string().min(1).max(253),
30518
+ idempotency_key: idempotencyKey
30519
+ }).strict(), async (client2, input) => {
30520
+ if (!client2.sharedMail)
30521
+ throw new Error("Shared mail unavailable");
30522
+ return client2.sharedMail({
30523
+ action: "identity_declare",
30524
+ projectId: input.project_id,
30525
+ hostname: input.hostname,
30526
+ idempotencyKey: input.idempotency_key
30527
+ });
30528
+ }, mutationAnnotations());
30529
+ registerProductTool(server, dependencies, "application_domain_identity_verify", "Verify the exact current project and hostname TXT challenge independently of deployment. Read the resulting proof before attaching a same-main-domain workspace sender.", external_exports.object({
30530
+ project_id: identifier2,
30531
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30532
+ idempotency_key: idempotencyKey
30533
+ }).strict(), async (client2, input) => {
30534
+ if (!client2.sharedMail)
30535
+ throw new Error("Shared mail unavailable");
30536
+ return client2.sharedMail({
30537
+ action: "identity_verify",
30538
+ projectId: input.project_id,
30539
+ expectedRevision: input.expected_revision,
30540
+ idempotencyKey: input.idempotency_key
30541
+ });
30542
+ }, mutationAnnotations());
30543
+ registerProductTool(server, dependencies, "application_domain_identity_revoke", "Revoke only the selected current application-domain proof with explicit confirmation. This does not delete or retarget the website. Sender reuse requires a current eligible identity.", external_exports.object({
30544
+ project_id: identifier2,
30545
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30546
+ idempotency_key: idempotencyKey,
30547
+ confirmed: external_exports.literal(true)
30548
+ }).strict(), async (client2, input) => {
30549
+ if (!client2.sharedMail)
30550
+ throw new Error("Shared mail unavailable");
30551
+ return client2.sharedMail({
30552
+ action: "identity_revoke",
30553
+ projectId: input.project_id,
30554
+ expectedRevision: input.expected_revision,
30555
+ idempotencyKey: input.idempotency_key
30556
+ });
30557
+ }, mutationAnnotations());
30558
+ registerProductTool(server, dependencies, "application_domain_identity_authorize", "Request exact-purpose Cloudflare consent to write this project hostname ownership challenge at the current revision. Open the private authorization URL for the human; never approve it automatically. Manual DNS remains available.", external_exports.object({
30559
+ project_id: identifier2,
30560
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30561
+ zone: external_exports.string().min(1).max(253),
30562
+ idempotency_key: idempotencyKey
30563
+ }).strict(), async (client2, input) => {
30564
+ if (!client2.sharedMail)
30565
+ throw new Error("Shared mail unavailable");
30566
+ return client2.sharedMail({
30567
+ action: "identity_authorize",
30568
+ projectId: input.project_id,
30569
+ expectedRevision: input.expected_revision,
30570
+ zone: input.zone,
30571
+ idempotencyKey: input.idempotency_key
30572
+ });
30573
+ }, mutationAnnotations());
30574
+ registerProductTool(server, dependencies, "application_domain_identity_authorization_status", "Read the selected project application-domain identity DNS authorization status. Zone visibility or consent alone is not ownership proof; run verification.", external_exports.object({ project_id: identifier2 }).strict(), async (client2, input) => {
30575
+ if (!client2.sharedMail)
30576
+ throw new Error("Shared mail unavailable");
30577
+ return client2.sharedMail({
30578
+ action: "identity_authorization_status",
30579
+ projectId: input.project_id
30580
+ });
30581
+ });
29623
30582
  registerProductTool(server, dependencies, "mail_setup", "Configure the customer's one production mail domain using the project Prod environment ID, only when the customer wants mail or the app declares mail.enabled; hosting needs no mail domain and none is registered automatically. The Dev and Prod application URLs do not create separate mail domains. Ask whether they want sending and receiving. Configure sending first; receiving requires mail_webhook_set, application signature verification and mail_webhook_verify. Preserve existing mailbox MX records. No Resend account or key is needed.", external_exports.object({
29624
30583
  project_id: identifier2,
29625
30584
  environment_id: identifier2,
@@ -29983,7 +30942,7 @@ function registerManagedSourceTools(server, dependencies) {
29983
30942
  projectId: input.project_id,
29984
30943
  operationId: input.operation_id,
29985
30944
  api: port(client2),
29986
- getOperation: (id3) => client2.getOperation(id3)
30945
+ getOperation: (id4) => client2.getOperation(id4)
29987
30946
  });
29988
30947
  }, mutationAnnotations());
29989
30948
  registerProductTool(server, dependencies, "source_upload", "Observe the exact managed snapshot upload after an uncertain response. sealed and committed uploads must not be uploaded again; commit_sha identifies the saved version.", external_exports.object({ project_id: identifier2, operation_id: identifier2 }), (client2, input) => port(client2).getUpload({ projectId: input.project_id, operationId: input.operation_id }));