@amerged/ohmyhost-mcp 0.1.36 → 0.1.38

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.
Files changed (32) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_NOTICES.md +3 -3
  3. package/dist/{chunk-LV7JW4C4.js → chunk-Z7AT2PTU.js} +7960 -2431
  4. package/dist/index.js +1 -1
  5. package/dist/stdio-main.js +1279 -320
  6. package/package.json +1 -1
  7. package/src/apps/mcp/package.json +5 -5
  8. package/src/apps/mcp/src/local-client.ts +10 -1
  9. package/src/apps/mcp/src/local-server.ts +367 -1
  10. package/src/apps/product-cli/package.json +2 -2
  11. package/src/apps/product-cli/src/cli.ts +37 -1
  12. package/src/apps/product-cli/src/command.ts +228 -2
  13. package/src/apps/product-cli/src/composition.ts +4 -0
  14. package/src/apps/product-cli/src/product-api.ts +11 -1
  15. package/src/apps/product-cli/src/repository-init.ts +181 -9
  16. package/src/packages/agent-skills/package.json +1 -1
  17. package/src/packages/agent-skills/src/generated-skill-resources.ts +9 -9
  18. package/src/packages/contracts/package.json +6 -1
  19. package/src/packages/contracts/src/framework-admission-corpus.ts +15 -18
  20. package/src/packages/contracts/src/framework-build-script.mjs +10 -3
  21. package/src/packages/contracts/src/index.ts +3 -0
  22. package/src/packages/contracts/src/problem-policy.ts +2 -2
  23. package/src/packages/contracts/src/shared-mail.ts +236 -0
  24. package/src/packages/sdk-ts/package.json +2 -2
  25. package/src/packages/sdk-ts/src/generated/index.ts +112 -0
  26. package/src/packages/sdk-ts/src/generated/sdk.gen.ts +870 -0
  27. package/src/packages/sdk-ts/src/generated/shared-mail-response.ts +238 -0
  28. package/src/packages/sdk-ts/src/generated/types.gen.ts +1207 -0
  29. package/src/packages/sdk-ts/src/index.ts +2 -0
  30. package/src/packages/sdk-ts/src/shared-mail-response.ts +1 -0
  31. package/src/packages/sdk-ts/src/shared-mail.ts +225 -0
  32. package/src/packages/workos-auth-contracts/package.json +1 -1
@@ -30,7 +30,7 @@ import {
30
30
  serverIdentityOf,
31
31
  setNegotiatedProtocolVersion,
32
32
  validateEnvelopeMeta
33
- } from "./chunk-LV7JW4C4.js";
33
+ } from "./chunk-Z7AT2PTU.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": {
@@ -20240,7 +20254,7 @@ var FRAMEWORK_VERSION_POLICY = Object.freeze({
20240
20254
  floors: Object.freeze(["14.4.0"]),
20241
20255
  denied: Object.freeze([])
20242
20256
  }),
20243
- next: Object.freeze({ floors: Object.freeze(["15.5.27", "16.3.8"]), denied: Object.freeze([]) }),
20257
+ next: Object.freeze({ floors: Object.freeze(["16.4.1"]), denied: Object.freeze([]) }),
20244
20258
  vite: Object.freeze({ floors: Object.freeze(["5.4.6"]), denied: Object.freeze([]) }),
20245
20259
  "@tanstack/react-start": Object.freeze({
20246
20260
  floors: Object.freeze(["1.168.60"]),
@@ -22035,13 +22049,13 @@ var PROBLEM_POLICY = {
22035
22049
  mail_domain_conflict: {
22036
22050
  status: 409,
22037
22051
  retryable: false,
22038
- 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.",
22039
22053
  title: "Mail domain conflict"
22040
22054
  },
22041
22055
  mail_domain_required: {
22042
22056
  status: 409,
22043
22057
  retryable: false,
22044
- 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.",
22045
22059
  title: "Mail domain required"
22046
22060
  },
22047
22061
  storage_jurisdiction_conflict: {
@@ -22479,16 +22493,16 @@ var parseOperation = (value) => {
22479
22493
  "reconciliation",
22480
22494
  "progress"
22481
22495
  ]);
22482
- const id3 = input["id"];
22496
+ const id4 = input["id"];
22483
22497
  const state = input["state"];
22484
22498
  const createdAt = input["created_at"];
22485
22499
  const updatedAt = input["updated_at"];
22486
22500
  const result = input["result"];
22487
22501
  const blockingOperationId = input["blocking_operation_id"];
22488
22502
  const deploymentId = input["deployment_id"];
22489
- 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))
22490
22504
  throw new ResponseContractError();
22491
- 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)) {
22492
22506
  throw new ResponseContractError();
22493
22507
  }
22494
22508
  let progress;
@@ -22528,7 +22542,7 @@ var parseOperation = (value) => {
22528
22542
  throw new ResponseContractError();
22529
22543
  }
22530
22544
  return {
22531
- id: id3,
22545
+ id: id4,
22532
22546
  state,
22533
22547
  created_at: createdAt,
22534
22548
  updated_at: updatedAt,
@@ -23261,7 +23275,7 @@ function exact3(v, keys) {
23261
23275
  // apps/product-cli/package.json
23262
23276
  var package_default2 = {
23263
23277
  name: "@ohmyhost/product-cli",
23264
- version: "0.1.36",
23278
+ version: "0.1.38",
23265
23279
  private: true,
23266
23280
  ohmyhost: {
23267
23281
  deployment: "production",
@@ -23293,7 +23307,7 @@ var package_default2 = {
23293
23307
  },
23294
23308
  scripts: {
23295
23309
  build: "tsc --project tsconfig.build.json",
23296
- typecheck: "tsc --project tsconfig.json --noEmit",
23310
+ typecheck: "tsc --project tsconfig.json --noEmit --incremental --tsBuildInfoFile typecheck.tsbuildinfo",
23297
23311
  test: "vitest run --root ../.. apps/product-cli/test"
23298
23312
  },
23299
23313
  dependencies: {
@@ -23635,12 +23649,12 @@ function assertBillingTaxIssue(value) {
23635
23649
  }
23636
23650
  var ulid4 = /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/u;
23637
23651
  var timestamp5 = (v) => typeof v === "string" && Number.isFinite(Date.parse(v)) && new Date(v).toISOString() === v;
23638
- function stripeUrl(value, host) {
23652
+ function stripeUrl(value, host2) {
23639
23653
  if (typeof value !== "string" || value.length > 8192)
23640
23654
  return false;
23641
23655
  try {
23642
23656
  const u = new URL(value);
23643
- 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;
23644
23658
  } catch {
23645
23659
  return false;
23646
23660
  }
@@ -24077,9 +24091,9 @@ var selectProfileForOrganization = (profiles, request) => {
24077
24091
  if (inOrganization.length > 1)
24078
24092
  return { outcome: "ambiguous", candidates: inOrganization };
24079
24093
  const unscoped = candidates.filter((profile) => profile.organizationId === null);
24080
- const [member] = inOrganization;
24081
- if (member !== void 0)
24082
- return { outcome: "selected", profile: member };
24094
+ const [member2] = inOrganization;
24095
+ if (member2 !== void 0)
24096
+ return { outcome: "selected", profile: member2 };
24083
24097
  const [open4] = unscoped;
24084
24098
  if (unscoped.length === 1 && open4 !== void 0)
24085
24099
  return { outcome: "selected", profile: open4 };
@@ -24410,6 +24424,23 @@ var HELP_USAGE = Object.freeze({
24410
24424
  "function runs": "ohmyhost function runs --project ULID --environment ENVIRONMENT_ULID [--limit 1-100] --json",
24411
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)`,
24412
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",
24413
24444
  "mail setup": "ohmyhost mail setup --project ULID --environment ULID --domain DOMAIN --sending true --receiving false --idempotency-key KEY --json",
24414
24445
  "mail status": "ohmyhost mail status --project ULID --environment ULID --json",
24415
24446
  "mail webhook set": "ohmyhost mail webhook set --project ULID --environment ULID --url HTTPS_URL --idempotency-key KEY --json",
@@ -25015,27 +25046,27 @@ var Interceptors = class {
25015
25046
  clear() {
25016
25047
  this.fns = [];
25017
25048
  }
25018
- eject(id3) {
25019
- const index = this.getInterceptorIndex(id3);
25049
+ eject(id4) {
25050
+ const index = this.getInterceptorIndex(id4);
25020
25051
  if (this.fns[index]) {
25021
25052
  this.fns[index] = null;
25022
25053
  }
25023
25054
  }
25024
- exists(id3) {
25025
- const index = this.getInterceptorIndex(id3);
25055
+ exists(id4) {
25056
+ const index = this.getInterceptorIndex(id4);
25026
25057
  return Boolean(this.fns[index]);
25027
25058
  }
25028
- getInterceptorIndex(id3) {
25029
- if (typeof id3 === "number") {
25030
- return this.fns[id3] ? id3 : -1;
25059
+ getInterceptorIndex(id4) {
25060
+ if (typeof id4 === "number") {
25061
+ return this.fns[id4] ? id4 : -1;
25031
25062
  }
25032
- return this.fns.indexOf(id3);
25063
+ return this.fns.indexOf(id4);
25033
25064
  }
25034
- update(id3, fn) {
25035
- const index = this.getInterceptorIndex(id3);
25065
+ update(id4, fn) {
25066
+ const index = this.getInterceptorIndex(id4);
25036
25067
  if (this.fns[index]) {
25037
25068
  this.fns[index] = fn;
25038
- return id3;
25069
+ return id4;
25039
25070
  }
25040
25071
  return false;
25041
25072
  }
@@ -25270,113 +25301,106 @@ var createClient = (config = {}) => {
25270
25301
  var client = createClient(createConfig({ throwOnError: true }));
25271
25302
 
25272
25303
  // packages/sdk-ts/dist/generated/sdk.gen.js
25273
- var getAccountProfile = (options) => (options?.client ?? client).get({
25274
- responseStyle: "data",
25275
- security: [{ scheme: "bearer", type: "http" }],
25276
- url: "/v1/me/profile",
25277
- ...options
25278
- });
25279
- var connectGithubOrganization = (parameters, options) => {
25304
+ var listWorkspaceMailDomains = (parameters, options) => {
25280
25305
  const params = buildClientParams([parameters], [
25281
25306
  {
25282
25307
  args: [
25283
25308
  { in: "headers", key: "X-Request-Id" },
25284
- { in: "headers", key: "Idempotency-Key" },
25285
- { in: "path", key: "organization_id" },
25286
- { key: "connectGithubOrganizationRequest", map: "body" }
25309
+ { in: "path", key: "organization_id" }
25287
25310
  ]
25288
25311
  }
25289
25312
  ]);
25290
- return (options?.client ?? client).post({
25313
+ return (options?.client ?? client).get({
25291
25314
  responseStyle: "data",
25292
25315
  security: [{ scheme: "bearer", type: "http" }],
25293
- url: "/v1/organizations/{organization_id}/github:connect",
25316
+ url: "/v1/organizations/{organization_id}/mail-domains",
25294
25317
  ...options,
25295
- ...params,
25296
- headers: {
25297
- "Content-Type": "application/json",
25298
- ...options?.headers,
25299
- ...params.headers
25300
- }
25318
+ ...params
25301
25319
  });
25302
25320
  };
25303
- var getGithubOrganizationConnection = (parameters, options) => {
25321
+ var createWorkspaceMailDomain = (parameters, options) => {
25304
25322
  const params = buildClientParams([parameters], [
25305
25323
  {
25306
25324
  args: [
25307
25325
  { in: "headers", key: "X-Request-Id" },
25308
- { in: "path", key: "organization_id" }
25326
+ { in: "headers", key: "Idempotency-Key" },
25327
+ { in: "path", key: "organization_id" },
25328
+ { key: "createWorkspaceMailDomainRequest", map: "body" }
25309
25329
  ]
25310
25330
  }
25311
25331
  ]);
25312
- return (options?.client ?? client).get({
25332
+ return (options?.client ?? client).post({
25313
25333
  responseStyle: "data",
25314
25334
  security: [{ scheme: "bearer", type: "http" }],
25315
- url: "/v1/organizations/{organization_id}/github",
25335
+ url: "/v1/organizations/{organization_id}/mail-domains",
25316
25336
  ...options,
25317
- ...params
25337
+ ...params,
25338
+ headers: {
25339
+ "Content-Type": "application/json",
25340
+ ...options?.headers,
25341
+ ...params.headers
25342
+ }
25318
25343
  });
25319
25344
  };
25320
- var getOrganizationReferral = (parameters, options) => {
25345
+ var retireWorkspaceMailDomain = (parameters, options) => {
25321
25346
  const params = buildClientParams([parameters], [
25322
25347
  {
25323
25348
  args: [
25324
25349
  { in: "headers", key: "X-Request-Id" },
25325
- { 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" }
25326
25354
  ]
25327
25355
  }
25328
25356
  ]);
25329
- return (options?.client ?? client).get({
25330
- responseStyle: "data",
25331
- security: [{ scheme: "bearer", type: "http" }],
25332
- url: "/v1/organizations/{organization_id}/referral",
25333
- ...options,
25334
- ...params
25335
- });
25336
- };
25337
- var getOrganizationAccount = (parameters, options) => {
25338
- const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "organization_id" }] }]);
25339
- return (options?.client ?? client).get({
25357
+ return (options?.client ?? client).delete({
25340
25358
  responseStyle: "data",
25341
25359
  security: [{ scheme: "bearer", type: "http" }],
25342
- url: "/v1/organizations/{organization_id}/account",
25360
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}",
25343
25361
  ...options,
25344
- ...params
25362
+ ...params,
25363
+ headers: {
25364
+ "Content-Type": "application/json",
25365
+ ...options?.headers,
25366
+ ...params.headers
25367
+ }
25345
25368
  });
25346
25369
  };
25347
- var listUserApiKeys = (parameters, options) => {
25370
+ var getWorkspaceMailDomain = (parameters, options) => {
25348
25371
  const params = buildClientParams([parameters], [
25349
25372
  {
25350
25373
  args: [
25351
25374
  { in: "headers", key: "X-Request-Id" },
25352
25375
  { in: "path", key: "organization_id" },
25353
- { in: "query", key: "after" }
25376
+ { in: "path", key: "mail_domain_id" }
25354
25377
  ]
25355
25378
  }
25356
25379
  ]);
25357
25380
  return (options?.client ?? client).get({
25358
25381
  responseStyle: "data",
25359
25382
  security: [{ scheme: "bearer", type: "http" }],
25360
- url: "/v1/organizations/{organization_id}/user-api-keys",
25383
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}",
25361
25384
  ...options,
25362
25385
  ...params
25363
25386
  });
25364
25387
  };
25365
- var createUserApiKey = (parameters, options) => {
25388
+ var revokeWorkspaceMailDomainDnsAuthorization = (parameters, options) => {
25366
25389
  const params = buildClientParams([parameters], [
25367
25390
  {
25368
25391
  args: [
25369
25392
  { in: "headers", key: "X-Request-Id" },
25370
25393
  { in: "headers", key: "Idempotency-Key" },
25371
25394
  { in: "path", key: "organization_id" },
25372
- { in: "body", key: "name" }
25395
+ { in: "path", key: "mail_domain_id" },
25396
+ { key: "mailRevisionRequest", map: "body" }
25373
25397
  ]
25374
25398
  }
25375
25399
  ]);
25376
- return (options?.client ?? client).post({
25400
+ return (options?.client ?? client).delete({
25377
25401
  responseStyle: "data",
25378
25402
  security: [{ scheme: "bearer", type: "http" }],
25379
- url: "/v1/organizations/{organization_id}/user-api-keys",
25403
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}/dns-authorization",
25380
25404
  ...options,
25381
25405
  ...params,
25382
25406
  headers: {
@@ -25386,38 +25410,40 @@ var createUserApiKey = (parameters, options) => {
25386
25410
  }
25387
25411
  });
25388
25412
  };
25389
- var revokeUserApiKey = (parameters, options) => {
25413
+ var getWorkspaceMailDomainDnsAuthorization = (parameters, options) => {
25390
25414
  const params = buildClientParams([parameters], [
25391
25415
  {
25392
25416
  args: [
25393
25417
  { in: "headers", key: "X-Request-Id" },
25394
25418
  { in: "path", key: "organization_id" },
25395
- { in: "path", key: "key_id" }
25419
+ { in: "path", key: "mail_domain_id" }
25396
25420
  ]
25397
25421
  }
25398
25422
  ]);
25399
- return (options?.client ?? client).delete({
25423
+ return (options?.client ?? client).get({
25400
25424
  responseStyle: "data",
25401
25425
  security: [{ scheme: "bearer", type: "http" }],
25402
- url: "/v1/organizations/{organization_id}/user-api-keys/{key_id}",
25426
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}/dns-authorization",
25403
25427
  ...options,
25404
25428
  ...params
25405
25429
  });
25406
25430
  };
25407
- var submitFeedback = (parameters, options) => {
25431
+ var authorizeWorkspaceMailDomainDns = (parameters, options) => {
25408
25432
  const params = buildClientParams([parameters], [
25409
25433
  {
25410
25434
  args: [
25411
25435
  { in: "headers", key: "X-Request-Id" },
25412
25436
  { in: "headers", key: "Idempotency-Key" },
25413
- { key: "feedbackSubmission", map: "body" }
25437
+ { in: "path", key: "organization_id" },
25438
+ { in: "path", key: "mail_domain_id" },
25439
+ { key: "sharedMailDnsAuthorizationRequest", map: "body" }
25414
25440
  ]
25415
25441
  }
25416
25442
  ]);
25417
25443
  return (options?.client ?? client).post({
25418
25444
  responseStyle: "data",
25419
25445
  security: [{ scheme: "bearer", type: "http" }],
25420
- url: "/v1/feedback",
25446
+ url: "/v1/organizations/{organization_id}/mail-domains/{mail_domain_id}/dns-authorization",
25421
25447
  ...options,
25422
25448
  ...params,
25423
25449
  headers: {
@@ -25427,48 +25453,65 @@ var submitFeedback = (parameters, options) => {
25427
25453
  }
25428
25454
  });
25429
25455
  };
25430
- var getFeedback = (parameters, options) => {
25456
+ var detachProjectMailDomainBinding = (parameters, options) => {
25431
25457
  const params = buildClientParams([parameters], [
25432
25458
  {
25433
25459
  args: [
25434
25460
  { in: "headers", key: "X-Request-Id" },
25435
- { in: "path", key: "feedback_id" },
25436
- { 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" }
25437
25465
  ]
25438
25466
  }
25439
25467
  ]);
25440
- return (options?.client ?? client).get({
25468
+ return (options?.client ?? client).delete({
25441
25469
  responseStyle: "data",
25442
25470
  security: [{ scheme: "bearer", type: "http" }],
25443
- url: "/v1/feedback/{feedback_id}",
25471
+ url: "/v1/projects/{project_id}/environments/{environment_id}/mail-domain-binding",
25444
25472
  ...options,
25445
- ...params
25473
+ ...params,
25474
+ headers: {
25475
+ "Content-Type": "application/json",
25476
+ ...options?.headers,
25477
+ ...params.headers
25478
+ }
25446
25479
  });
25447
25480
  };
25448
- var getCurrentIdentity = (parameters, options) => {
25449
- 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
+ ]);
25450
25491
  return (options?.client ?? client).get({
25451
25492
  responseStyle: "data",
25452
25493
  security: [{ scheme: "bearer", type: "http" }],
25453
- url: "/v1/me",
25494
+ url: "/v1/projects/{project_id}/environments/{environment_id}/mail-domain-binding",
25454
25495
  ...options,
25455
25496
  ...params
25456
25497
  });
25457
25498
  };
25458
- var createOrganization = (parameters, options) => {
25499
+ var putProjectMailDomainBinding = (parameters, options) => {
25459
25500
  const params = buildClientParams([parameters], [
25460
25501
  {
25461
25502
  args: [
25462
25503
  { in: "headers", key: "X-Request-Id" },
25463
25504
  { in: "headers", key: "Idempotency-Key" },
25464
- { key: "createOrganizationRequest", map: "body" }
25505
+ { in: "path", key: "project_id" },
25506
+ { in: "path", key: "environment_id" },
25507
+ { key: "projectMailDomainBindingRequest", map: "body" }
25465
25508
  ]
25466
25509
  }
25467
25510
  ]);
25468
- return (options?.client ?? client).post({
25511
+ return (options?.client ?? client).put({
25469
25512
  responseStyle: "data",
25470
25513
  security: [{ scheme: "bearer", type: "http" }],
25471
- url: "/v1/organizations",
25514
+ url: "/v1/projects/{project_id}/environments/{environment_id}/mail-domain-binding",
25472
25515
  ...options,
25473
25516
  ...params,
25474
25517
  headers: {
@@ -25478,22 +25521,21 @@ var createOrganization = (parameters, options) => {
25478
25521
  }
25479
25522
  });
25480
25523
  };
25481
- var createBillingCheckout = (parameters, options) => {
25524
+ var revokeApplicationDomainIdentity = (parameters, options) => {
25482
25525
  const params = buildClientParams([parameters], [
25483
25526
  {
25484
25527
  args: [
25485
25528
  { in: "headers", key: "X-Request-Id" },
25486
25529
  { in: "headers", key: "Idempotency-Key" },
25487
- { in: "path", key: "organization_id" },
25488
- { in: "body", key: "offer" },
25489
- { in: "body", key: "packs" }
25530
+ { in: "path", key: "project_id" },
25531
+ { key: "mailRevisionRequest", map: "body" }
25490
25532
  ]
25491
25533
  }
25492
25534
  ]);
25493
- return (options?.client ?? client).post({
25535
+ return (options?.client ?? client).delete({
25494
25536
  responseStyle: "data",
25495
25537
  security: [{ scheme: "bearer", type: "http" }],
25496
- url: "/v1/organizations/{organization_id}/billing/checkouts",
25538
+ url: "/v1/projects/{project_id}/application-domain-identity",
25497
25539
  ...options,
25498
25540
  ...params,
25499
25541
  headers: {
@@ -25503,38 +25545,38 @@ var createBillingCheckout = (parameters, options) => {
25503
25545
  }
25504
25546
  });
25505
25547
  };
25506
- var getBillingCheckout = (parameters, options) => {
25548
+ var getApplicationDomainIdentity = (parameters, options) => {
25507
25549
  const params = buildClientParams([parameters], [
25508
25550
  {
25509
25551
  args: [
25510
25552
  { in: "headers", key: "X-Request-Id" },
25511
- { in: "path", key: "organization_id" },
25512
- { in: "path", key: "checkout_id" }
25553
+ { in: "path", key: "project_id" }
25513
25554
  ]
25514
25555
  }
25515
25556
  ]);
25516
25557
  return (options?.client ?? client).get({
25517
25558
  responseStyle: "data",
25518
25559
  security: [{ scheme: "bearer", type: "http" }],
25519
- url: "/v1/organizations/{organization_id}/billing/checkouts/{checkout_id}",
25560
+ url: "/v1/projects/{project_id}/application-domain-identity",
25520
25561
  ...options,
25521
25562
  ...params
25522
25563
  });
25523
25564
  };
25524
- var createBillingPortal = (parameters, options) => {
25565
+ var declareApplicationDomainIdentity = (parameters, options) => {
25525
25566
  const params = buildClientParams([parameters], [
25526
25567
  {
25527
25568
  args: [
25528
25569
  { in: "headers", key: "X-Request-Id" },
25529
- { in: "path", key: "organization_id" },
25530
- { key: "body", map: "body" }
25570
+ { in: "headers", key: "Idempotency-Key" },
25571
+ { in: "path", key: "project_id" },
25572
+ { key: "applicationDomainIdentityRequest", map: "body" }
25531
25573
  ]
25532
25574
  }
25533
25575
  ]);
25534
- return (options?.client ?? client).post({
25576
+ return (options?.client ?? client).put({
25535
25577
  responseStyle: "data",
25536
25578
  security: [{ scheme: "bearer", type: "http" }],
25537
- url: "/v1/organizations/{organization_id}/billing/portal",
25579
+ url: "/v1/projects/{project_id}/application-domain-identity",
25538
25580
  ...options,
25539
25581
  ...params,
25540
25582
  headers: {
@@ -25544,41 +25586,45 @@ var createBillingPortal = (parameters, options) => {
25544
25586
  }
25545
25587
  });
25546
25588
  };
25547
- var getBillingRecharge = (parameters, options) => {
25589
+ var verifyApplicationDomainIdentity = (parameters, options) => {
25548
25590
  const params = buildClientParams([parameters], [
25549
25591
  {
25550
25592
  args: [
25551
25593
  { in: "headers", key: "X-Request-Id" },
25552
- { in: "path", key: "organization_id" }
25594
+ { in: "headers", key: "Idempotency-Key" },
25595
+ { in: "path", key: "project_id" },
25596
+ { key: "mailRevisionRequest", map: "body" }
25553
25597
  ]
25554
25598
  }
25555
25599
  ]);
25556
- return (options?.client ?? client).get({
25600
+ return (options?.client ?? client).post({
25557
25601
  responseStyle: "data",
25558
25602
  security: [{ scheme: "bearer", type: "http" }],
25559
- url: "/v1/organizations/{organization_id}/billing/recharge",
25603
+ url: "/v1/projects/{project_id}/application-domain-identity/verify",
25560
25604
  ...options,
25561
- ...params
25605
+ ...params,
25606
+ headers: {
25607
+ "Content-Type": "application/json",
25608
+ ...options?.headers,
25609
+ ...params.headers
25610
+ }
25562
25611
  });
25563
25612
  };
25564
- var configureBillingRecharge = (parameters, options) => {
25613
+ var revokeApplicationDomainIdentityDnsAuthorization = (parameters, options) => {
25565
25614
  const params = buildClientParams([parameters], [
25566
25615
  {
25567
25616
  args: [
25568
25617
  { in: "headers", key: "X-Request-Id" },
25569
25618
  { in: "headers", key: "Idempotency-Key" },
25570
- { in: "path", key: "organization_id" },
25571
- { in: "body", key: "enabled" },
25572
- { in: "body", key: "monthly_limit_minor" },
25573
- { in: "body", key: "consent" },
25574
- { in: "body", key: "revision" }
25619
+ { in: "path", key: "project_id" },
25620
+ { key: "mailRevisionRequest", map: "body" }
25575
25621
  ]
25576
25622
  }
25577
25623
  ]);
25578
- return (options?.client ?? client).put({
25624
+ return (options?.client ?? client).delete({
25579
25625
  responseStyle: "data",
25580
25626
  security: [{ scheme: "bearer", type: "http" }],
25581
- url: "/v1/organizations/{organization_id}/billing/recharge",
25627
+ url: "/v1/projects/{project_id}/application-domain-identity/dns-authorization",
25582
25628
  ...options,
25583
25629
  ...params,
25584
25630
  headers: {
@@ -25588,57 +25634,68 @@ var configureBillingRecharge = (parameters, options) => {
25588
25634
  }
25589
25635
  });
25590
25636
  };
25591
- var getOrganizationCredits = (parameters, options) => {
25637
+ var getApplicationDomainIdentityDnsAuthorization = (parameters, options) => {
25592
25638
  const params = buildClientParams([parameters], [
25593
25639
  {
25594
25640
  args: [
25595
25641
  { in: "headers", key: "X-Request-Id" },
25596
- { in: "path", key: "organization_id" }
25642
+ { in: "path", key: "project_id" }
25597
25643
  ]
25598
25644
  }
25599
25645
  ]);
25600
25646
  return (options?.client ?? client).get({
25601
25647
  responseStyle: "data",
25602
25648
  security: [{ scheme: "bearer", type: "http" }],
25603
- url: "/v1/organizations/{organization_id}/credits",
25649
+ url: "/v1/projects/{project_id}/application-domain-identity/dns-authorization",
25604
25650
  ...options,
25605
25651
  ...params
25606
25652
  });
25607
25653
  };
25608
- var getOrganizationCreditUsage = (parameters, options) => {
25654
+ var authorizeApplicationDomainIdentityDns = (parameters, options) => {
25609
25655
  const params = buildClientParams([parameters], [
25610
25656
  {
25611
25657
  args: [
25612
25658
  { in: "headers", key: "X-Request-Id" },
25613
- { in: "path", key: "organization_id" },
25614
- { in: "query", key: "month" },
25615
- { in: "query", key: "cursor" }
25659
+ { in: "headers", key: "Idempotency-Key" },
25660
+ { in: "path", key: "project_id" },
25661
+ { key: "sharedMailDnsAuthorizationRequest", map: "body" }
25616
25662
  ]
25617
25663
  }
25618
25664
  ]);
25619
- return (options?.client ?? client).get({
25665
+ return (options?.client ?? client).post({
25620
25666
  responseStyle: "data",
25621
25667
  security: [{ scheme: "bearer", type: "http" }],
25622
- url: "/v1/organizations/{organization_id}/credit-usage",
25668
+ url: "/v1/projects/{project_id}/application-domain-identity/dns-authorization",
25623
25669
  ...options,
25624
- ...params
25670
+ ...params,
25671
+ headers: {
25672
+ "Content-Type": "application/json",
25673
+ ...options?.headers,
25674
+ ...params.headers
25675
+ }
25625
25676
  });
25626
25677
  };
25627
- 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) => {
25628
25685
  const params = buildClientParams([parameters], [
25629
25686
  {
25630
25687
  args: [
25631
25688
  { in: "headers", key: "X-Request-Id" },
25632
25689
  { in: "headers", key: "Idempotency-Key" },
25633
- { in: "path", key: "project_id" },
25634
- { in: "body", key: "password" }
25690
+ { in: "path", key: "organization_id" },
25691
+ { key: "connectGithubOrganizationRequest", map: "body" }
25635
25692
  ]
25636
25693
  }
25637
25694
  ]);
25638
25695
  return (options?.client ?? client).post({
25639
25696
  responseStyle: "data",
25640
25697
  security: [{ scheme: "bearer", type: "http" }],
25641
- url: "/v1/projects/{project_id}/exports",
25698
+ url: "/v1/organizations/{organization_id}/github:connect",
25642
25699
  ...options,
25643
25700
  ...params,
25644
25701
  headers: {
@@ -25648,97 +25705,83 @@ var createProjectExport = (parameters, options) => {
25648
25705
  }
25649
25706
  });
25650
25707
  };
25651
- var getProjectExport = (parameters, options) => {
25708
+ var getGithubOrganizationConnection = (parameters, options) => {
25652
25709
  const params = buildClientParams([parameters], [
25653
25710
  {
25654
25711
  args: [
25655
25712
  { in: "headers", key: "X-Request-Id" },
25656
- { in: "path", key: "project_id" },
25657
- { in: "path", key: "export_id" }
25713
+ { in: "path", key: "organization_id" }
25658
25714
  ]
25659
25715
  }
25660
25716
  ]);
25661
25717
  return (options?.client ?? client).get({
25662
25718
  responseStyle: "data",
25663
25719
  security: [{ scheme: "bearer", type: "http" }],
25664
- url: "/v1/projects/{project_id}/exports/{export_id}",
25720
+ url: "/v1/organizations/{organization_id}/github",
25665
25721
  ...options,
25666
25722
  ...params
25667
25723
  });
25668
25724
  };
25669
- var getProjectCreditBudget = (parameters, options) => {
25725
+ var getOrganizationReferral = (parameters, options) => {
25670
25726
  const params = buildClientParams([parameters], [
25671
25727
  {
25672
25728
  args: [
25673
25729
  { in: "headers", key: "X-Request-Id" },
25674
- { in: "path", key: "project_id" }
25730
+ { in: "path", key: "organization_id" }
25675
25731
  ]
25676
25732
  }
25677
25733
  ]);
25678
25734
  return (options?.client ?? client).get({
25679
25735
  responseStyle: "data",
25680
25736
  security: [{ scheme: "bearer", type: "http" }],
25681
- url: "/v1/projects/{project_id}/credit-budget",
25737
+ url: "/v1/organizations/{organization_id}/referral",
25682
25738
  ...options,
25683
25739
  ...params
25684
25740
  });
25685
25741
  };
25686
- var setProjectCreditBudget = (parameters, options) => {
25687
- const params = buildClientParams([parameters], [
25688
- {
25689
- args: [
25690
- { in: "headers", key: "X-Request-Id" },
25691
- { in: "headers", key: "Idempotency-Key" },
25692
- { in: "path", key: "project_id" },
25693
- { key: "setProjectCreditBudgetRequest", map: "body" }
25694
- ]
25695
- }
25696
- ]);
25697
- 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({
25698
25745
  responseStyle: "data",
25699
25746
  security: [{ scheme: "bearer", type: "http" }],
25700
- url: "/v1/projects/{project_id}/credit-budget",
25747
+ url: "/v1/organizations/{organization_id}/account",
25701
25748
  ...options,
25702
- ...params,
25703
- headers: {
25704
- "Content-Type": "application/json",
25705
- ...options?.headers,
25706
- ...params.headers
25707
- }
25749
+ ...params
25708
25750
  });
25709
25751
  };
25710
- var listProjects = (parameters, options) => {
25752
+ var listUserApiKeys = (parameters, options) => {
25711
25753
  const params = buildClientParams([parameters], [
25712
25754
  {
25713
25755
  args: [
25714
25756
  { in: "headers", key: "X-Request-Id" },
25715
- { in: "query", key: "cursor" },
25716
- { in: "query", key: "limit" }
25757
+ { in: "path", key: "organization_id" },
25758
+ { in: "query", key: "after" }
25717
25759
  ]
25718
25760
  }
25719
25761
  ]);
25720
25762
  return (options?.client ?? client).get({
25721
25763
  responseStyle: "data",
25722
25764
  security: [{ scheme: "bearer", type: "http" }],
25723
- url: "/v1/projects",
25765
+ url: "/v1/organizations/{organization_id}/user-api-keys",
25724
25766
  ...options,
25725
25767
  ...params
25726
25768
  });
25727
25769
  };
25728
- var createProject = (parameters, options) => {
25770
+ var createUserApiKey = (parameters, options) => {
25729
25771
  const params = buildClientParams([parameters], [
25730
25772
  {
25731
25773
  args: [
25732
25774
  { in: "headers", key: "X-Request-Id" },
25733
25775
  { in: "headers", key: "Idempotency-Key" },
25734
- { key: "createProjectRequest", map: "body" }
25776
+ { in: "path", key: "organization_id" },
25777
+ { in: "body", key: "name" }
25735
25778
  ]
25736
25779
  }
25737
25780
  ]);
25738
25781
  return (options?.client ?? client).post({
25739
25782
  responseStyle: "data",
25740
25783
  security: [{ scheme: "bearer", type: "http" }],
25741
- url: "/v1/projects",
25784
+ url: "/v1/organizations/{organization_id}/user-api-keys",
25742
25785
  ...options,
25743
25786
  ...params,
25744
25787
  headers: {
@@ -25748,22 +25791,384 @@ var createProject = (parameters, options) => {
25748
25791
  }
25749
25792
  });
25750
25793
  };
25751
- var deleteProject = (parameters, options) => {
25794
+ var revokeUserApiKey = (parameters, options) => {
25752
25795
  const params = buildClientParams([parameters], [
25753
25796
  {
25754
25797
  args: [
25755
25798
  { in: "headers", key: "X-Request-Id" },
25756
- { in: "headers", key: "Idempotency-Key" },
25757
- { in: "headers", key: "If-Match" },
25758
- { in: "headers", key: "X-Confirmation-Token" },
25759
- { in: "path", key: "project_id" }
25799
+ { in: "path", key: "organization_id" },
25800
+ { in: "path", key: "key_id" }
25760
25801
  ]
25761
25802
  }
25762
25803
  ]);
25763
25804
  return (options?.client ?? client).delete({
25764
25805
  responseStyle: "data",
25765
25806
  security: [{ scheme: "bearer", type: "http" }],
25766
- 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}",
25767
26172
  ...options,
25768
26173
  ...params
25769
26174
  });
@@ -27426,6 +27831,320 @@ async function executeManagedMail(client2, input) {
27426
27831
  return result;
27427
27832
  }
27428
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
+
27429
28148
  // packages/workos-auth-contracts/dist/device-flow.js
27430
28149
  var WORKOS_AUTHKIT_DEVICE_TOKEN_ENDPOINT = "https://api.workos.com/user_management/authenticate";
27431
28150
  var allowedDeviceTokenFields = /* @__PURE__ */ new Set([
@@ -27996,6 +28715,9 @@ var GeneratedSdkProductApi = class {
27996
28715
  secret_name: input.name
27997
28716
  }, { client: this.#client });
27998
28717
  }
28718
+ sharedMail(input) {
28719
+ return executeSharedMail(this.#client, input);
28720
+ }
27999
28721
  managedMail(input) {
28000
28722
  return executeManagedMail(this.#client, input);
28001
28723
  }
@@ -28014,10 +28736,14 @@ var UNNAMED_MODULE_MESSAGES = Object.freeze({
28014
28736
  var STORAGE_RUNTIME_BINDINGS = Object.freeze([
28015
28737
  "OHMYHOST_ENVIRONMENT_ID",
28016
28738
  "OHMYHOST_PROJECT_ID",
28017
- "OHMYHOST_STORAGE_GATEWAY",
28018
28739
  "OHMYHOST_STORAGE_GATEWAY_URL",
28019
28740
  "OHMYHOST_STORAGE_KEY"
28020
28741
  ]);
28742
+ var MAIL_RUNTIME_BINDINGS = Object.freeze([
28743
+ "OHMYHOST_MAIL_GATEWAY_URL",
28744
+ "OHMYHOST_MAIL_KEY",
28745
+ "OHMYHOST_PROJECT_ID"
28746
+ ]);
28021
28747
  var CUSTOMER_RUNTIME_SOURCE = `npm:@amerged/ohmyhost-runtime@${package_default2.version}`;
28022
28748
  var PENDING_CHECKS = Object.freeze({
28023
28749
  installed_version: "compatibility.frameworks lists a version range that no lockfile ohmyho.st reads (package-lock.json v2/v3 or pnpm-lock.yaml v6/v9) resolves. Planning admits it; after the frozen install, the build checks the installed version against the same security minimum.",
@@ -28876,6 +29602,9 @@ var GeneratedSdkLocalMcpClient = class {
28876
29602
  operation_id: input.operationId
28877
29603
  }, { client: this.#client });
28878
29604
  }
29605
+ sharedMail(input) {
29606
+ return executeSharedMail(this.#client, input);
29607
+ }
28879
29608
  managedMail(input) {
28880
29609
  return executeManagedMail(this.#client, input);
28881
29610
  }
@@ -29080,13 +29809,13 @@ function normalizeSourceChanges(value) {
29080
29809
  const body = record6(value);
29081
29810
  const changes = body["changes"];
29082
29811
  if (!Array.isArray(changes) || changes.length < 1 || changes.length > MANAGED_SOURCE_LIMITS.files)
29083
- invalid6();
29812
+ invalid7();
29084
29813
  let textBytes = 0;
29085
29814
  const normalized = changes.map((change) => {
29086
29815
  const entry = record6(change);
29087
29816
  const hasText = Object.hasOwn(entry, "content_text");
29088
29817
  if (hasText === Object.hasOwn(entry, "content_base64"))
29089
- invalid6();
29818
+ invalid7();
29090
29819
  const result = {
29091
29820
  ...entry,
29092
29821
  executable: Object.hasOwn(entry, "executable") ? entry["executable"] : false
@@ -29094,13 +29823,13 @@ function normalizeSourceChanges(value) {
29094
29823
  if (hasText) {
29095
29824
  const text = entry["content_text"];
29096
29825
  if (typeof text !== "string" || text.length > MANAGED_SOURCE_LIMITS.fileBytes)
29097
- invalid6();
29826
+ invalid7();
29098
29827
  const bytes = new TextEncoder().encode(text);
29099
29828
  if (bytes.byteLength > MANAGED_SOURCE_LIMITS.fileBytes || new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes) !== text)
29100
- invalid6();
29829
+ invalid7();
29101
29830
  textBytes += bytes.byteLength;
29102
29831
  if (textBytes > MANAGED_SOURCE_LIMITS.uploadBytes)
29103
- invalid6();
29832
+ invalid7();
29104
29833
  result["content_base64"] = encodeBase64(bytes);
29105
29834
  delete result["content_text"];
29106
29835
  }
@@ -29110,7 +29839,7 @@ function normalizeSourceChanges(value) {
29110
29839
  }
29111
29840
  function formatMcpSourceFileResponse(value, format = "text") {
29112
29841
  if (format !== "text" && format !== "base64")
29113
- invalid6();
29842
+ invalid7();
29114
29843
  assertManagedSourceResponse("files", value);
29115
29844
  const response = value;
29116
29845
  if (format === "base64" || !("file" in response))
@@ -29144,10 +29873,10 @@ function encodeBase64(bytes) {
29144
29873
  }
29145
29874
  function record6(value) {
29146
29875
  if (typeof value !== "object" || value === null || Array.isArray(value))
29147
- invalid6();
29876
+ invalid7();
29148
29877
  return value;
29149
29878
  }
29150
- function invalid6() {
29879
+ function invalid7() {
29151
29880
  throw new TypeError("MCP source content is invalid");
29152
29881
  }
29153
29882
 
@@ -29624,6 +30353,236 @@ function createLocalOhmyhostMcpServer(dependencies) {
29624
30353
  operationId: input.operation_id,
29625
30354
  idempotencyKey: input.idempotency_key
29626
30355
  })), mutationAnnotations());
30356
+ 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({
30357
+ organization_id: identifier2,
30358
+ mail_domain_id: identifier2,
30359
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30360
+ idempotency_key: idempotencyKey,
30361
+ confirmed: external_exports.literal(true)
30362
+ }).strict(), async (client2, input) => {
30363
+ if (!client2.sharedMail)
30364
+ throw new Error("Shared mail unavailable");
30365
+ return client2.sharedMail({
30366
+ action: "domain_dns_revoke",
30367
+ organizationId: input.organization_id,
30368
+ mailDomainId: input.mail_domain_id,
30369
+ expectedRevision: input.expected_revision,
30370
+ idempotencyKey: input.idempotency_key
30371
+ });
30372
+ }, mutationAnnotations());
30373
+ 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({
30374
+ project_id: identifier2,
30375
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30376
+ idempotency_key: idempotencyKey,
30377
+ confirmed: external_exports.literal(true)
30378
+ }).strict(), async (client2, input) => {
30379
+ if (!client2.sharedMail)
30380
+ throw new Error("Shared mail unavailable");
30381
+ return client2.sharedMail({
30382
+ action: "identity_authorization_revoke",
30383
+ projectId: input.project_id,
30384
+ expectedRevision: input.expected_revision,
30385
+ idempotencyKey: input.idempotency_key
30386
+ });
30387
+ }, mutationAnnotations());
30388
+ 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) => {
30389
+ if (!client2.sharedMail)
30390
+ throw new Error("Shared mail unavailable");
30391
+ return client2.sharedMail({ action: "domains_list", organizationId: input.organization_id });
30392
+ });
30393
+ 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({
30394
+ organization_id: identifier2,
30395
+ domain: external_exports.string().min(1).max(253),
30396
+ sending: external_exports.literal(true),
30397
+ idempotency_key: idempotencyKey
30398
+ }).strict(), async (client2, input) => {
30399
+ if (!client2.sharedMail)
30400
+ throw new Error("Shared mail unavailable");
30401
+ return client2.sharedMail({
30402
+ action: "domain_create",
30403
+ organizationId: input.organization_id,
30404
+ domain: input.domain,
30405
+ sending: input.sending,
30406
+ idempotencyKey: input.idempotency_key
30407
+ });
30408
+ }, mutationAnnotations());
30409
+ 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) => {
30410
+ if (!client2.sharedMail)
30411
+ throw new Error("Shared mail unavailable");
30412
+ return client2.sharedMail({
30413
+ action: "domain_get",
30414
+ organizationId: input.organization_id,
30415
+ mailDomainId: input.mail_domain_id
30416
+ });
30417
+ });
30418
+ 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({
30419
+ organization_id: identifier2,
30420
+ mail_domain_id: identifier2,
30421
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30422
+ idempotency_key: idempotencyKey,
30423
+ confirmed: external_exports.literal(true)
30424
+ }).strict(), async (client2, input) => {
30425
+ if (!client2.sharedMail)
30426
+ throw new Error("Shared mail unavailable");
30427
+ return client2.sharedMail({
30428
+ action: "domain_retire",
30429
+ organizationId: input.organization_id,
30430
+ mailDomainId: input.mail_domain_id,
30431
+ expectedRevision: input.expected_revision,
30432
+ idempotencyKey: input.idempotency_key
30433
+ });
30434
+ }, mutationAnnotations());
30435
+ 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({
30436
+ organization_id: identifier2,
30437
+ mail_domain_id: identifier2,
30438
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30439
+ zone: external_exports.string().min(1).max(253),
30440
+ idempotency_key: idempotencyKey
30441
+ }).strict(), async (client2, input) => {
30442
+ if (!client2.sharedMail)
30443
+ throw new Error("Shared mail unavailable");
30444
+ return client2.sharedMail({
30445
+ action: "domain_dns_authorize",
30446
+ organizationId: input.organization_id,
30447
+ mailDomainId: input.mail_domain_id,
30448
+ expectedRevision: input.expected_revision,
30449
+ zone: input.zone,
30450
+ idempotencyKey: input.idempotency_key
30451
+ });
30452
+ }, mutationAnnotations());
30453
+ 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) => {
30454
+ if (!client2.sharedMail)
30455
+ throw new Error("Shared mail unavailable");
30456
+ return client2.sharedMail({
30457
+ action: "domain_dns_status",
30458
+ organizationId: input.organization_id,
30459
+ mailDomainId: input.mail_domain_id
30460
+ });
30461
+ });
30462
+ 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) => {
30463
+ if (!client2.sharedMail)
30464
+ throw new Error("Shared mail unavailable");
30465
+ return client2.sharedMail({
30466
+ action: "binding_get",
30467
+ projectId: input.project_id,
30468
+ environmentId: input.environment_id
30469
+ });
30470
+ });
30471
+ 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({
30472
+ project_id: identifier2,
30473
+ environment_id: identifier2,
30474
+ mail_domain_id: identifier2,
30475
+ sending: external_exports.boolean(),
30476
+ sender_addresses: external_exports.array(external_exports.email().max(320)).min(1).max(32),
30477
+ default_from: external_exports.email().max(320),
30478
+ default_reply_to: external_exports.email().max(320).nullable(),
30479
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30480
+ idempotency_key: idempotencyKey
30481
+ }).strict(), async (client2, input) => {
30482
+ if (!client2.sharedMail)
30483
+ throw new Error("Shared mail unavailable");
30484
+ return client2.sharedMail({
30485
+ action: "binding_set",
30486
+ projectId: input.project_id,
30487
+ environmentId: input.environment_id,
30488
+ mailDomainId: input.mail_domain_id,
30489
+ sending: input.sending,
30490
+ senderAddresses: input.sender_addresses,
30491
+ defaultFrom: input.default_from,
30492
+ defaultReplyTo: input.default_reply_to,
30493
+ expectedRevision: input.expected_revision,
30494
+ idempotencyKey: input.idempotency_key
30495
+ });
30496
+ }, mutationAnnotations());
30497
+ 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({
30498
+ project_id: identifier2,
30499
+ environment_id: identifier2,
30500
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30501
+ idempotency_key: idempotencyKey,
30502
+ confirmed: external_exports.literal(true)
30503
+ }).strict(), async (client2, input) => {
30504
+ if (!client2.sharedMail)
30505
+ throw new Error("Shared mail unavailable");
30506
+ return client2.sharedMail({
30507
+ action: "binding_detach",
30508
+ projectId: input.project_id,
30509
+ environmentId: input.environment_id,
30510
+ expectedRevision: input.expected_revision,
30511
+ idempotencyKey: input.idempotency_key
30512
+ });
30513
+ }, mutationAnnotations());
30514
+ 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) => {
30515
+ if (!client2.sharedMail)
30516
+ throw new Error("Shared mail unavailable");
30517
+ return client2.sharedMail({ action: "identity_get", projectId: input.project_id });
30518
+ });
30519
+ 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({
30520
+ project_id: identifier2,
30521
+ hostname: external_exports.string().min(1).max(253),
30522
+ idempotency_key: idempotencyKey
30523
+ }).strict(), async (client2, input) => {
30524
+ if (!client2.sharedMail)
30525
+ throw new Error("Shared mail unavailable");
30526
+ return client2.sharedMail({
30527
+ action: "identity_declare",
30528
+ projectId: input.project_id,
30529
+ hostname: input.hostname,
30530
+ idempotencyKey: input.idempotency_key
30531
+ });
30532
+ }, mutationAnnotations());
30533
+ 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({
30534
+ project_id: identifier2,
30535
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30536
+ idempotency_key: idempotencyKey
30537
+ }).strict(), async (client2, input) => {
30538
+ if (!client2.sharedMail)
30539
+ throw new Error("Shared mail unavailable");
30540
+ return client2.sharedMail({
30541
+ action: "identity_verify",
30542
+ projectId: input.project_id,
30543
+ expectedRevision: input.expected_revision,
30544
+ idempotencyKey: input.idempotency_key
30545
+ });
30546
+ }, mutationAnnotations());
30547
+ 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({
30548
+ project_id: identifier2,
30549
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30550
+ idempotency_key: idempotencyKey,
30551
+ confirmed: external_exports.literal(true)
30552
+ }).strict(), async (client2, input) => {
30553
+ if (!client2.sharedMail)
30554
+ throw new Error("Shared mail unavailable");
30555
+ return client2.sharedMail({
30556
+ action: "identity_revoke",
30557
+ projectId: input.project_id,
30558
+ expectedRevision: input.expected_revision,
30559
+ idempotencyKey: input.idempotency_key
30560
+ });
30561
+ }, mutationAnnotations());
30562
+ 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({
30563
+ project_id: identifier2,
30564
+ expected_revision: external_exports.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
30565
+ zone: external_exports.string().min(1).max(253),
30566
+ idempotency_key: idempotencyKey
30567
+ }).strict(), async (client2, input) => {
30568
+ if (!client2.sharedMail)
30569
+ throw new Error("Shared mail unavailable");
30570
+ return client2.sharedMail({
30571
+ action: "identity_authorize",
30572
+ projectId: input.project_id,
30573
+ expectedRevision: input.expected_revision,
30574
+ zone: input.zone,
30575
+ idempotencyKey: input.idempotency_key
30576
+ });
30577
+ }, mutationAnnotations());
30578
+ 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) => {
30579
+ if (!client2.sharedMail)
30580
+ throw new Error("Shared mail unavailable");
30581
+ return client2.sharedMail({
30582
+ action: "identity_authorization_status",
30583
+ projectId: input.project_id
30584
+ });
30585
+ });
29627
30586
  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({
29628
30587
  project_id: identifier2,
29629
30588
  environment_id: identifier2,
@@ -29987,7 +30946,7 @@ function registerManagedSourceTools(server, dependencies) {
29987
30946
  projectId: input.project_id,
29988
30947
  operationId: input.operation_id,
29989
30948
  api: port(client2),
29990
- getOperation: (id3) => client2.getOperation(id3)
30949
+ getOperation: (id4) => client2.getOperation(id4)
29991
30950
  });
29992
30951
  }, mutationAnnotations());
29993
30952
  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 }));