apps 0.0.1-beta.1 → 0.0.1-beta.3

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 (58) hide show
  1. package/framework-reference.json +1 -1
  2. package/js/browser-XIPJGLH2.js +65 -0
  3. package/js/{chunk-6YBRWRK3.js → chunk-5MQZEB6Y.js} +16 -4
  4. package/js/chunk-D47C7KG5.js +172 -0
  5. package/js/{chunk-ZTFQHGEB.js → chunk-FDNTX5QJ.js} +1 -3
  6. package/js/{chunk-OHRT55C4.js → chunk-G7ZIRKMK.js} +0 -3
  7. package/js/{chunk-G7IE6BKC.js → chunk-HDTGZWP2.js} +2 -2
  8. package/js/{chunk-KOXMLKTM.js → chunk-J7O55ZV7.js} +20 -148
  9. package/js/{chunk-RBAC33PQ.js → chunk-JN55AYQH.js} +3 -57
  10. package/js/chunk-LGIYBDWA.js +85 -0
  11. package/js/{chunk-IHQ4ML7K.js → chunk-MYYEW3RA.js} +130 -86
  12. package/js/chunk-NQ3OMCA5.js +39 -0
  13. package/js/{chunk-PZ36XMXW.js → chunk-PYUYJRSK.js} +1 -1
  14. package/js/{chunk-X7SFGU4Q.js → chunk-RN2MXB4R.js} +4 -4
  15. package/js/{chunk-4LPG6RCH.js → chunk-T2LAZCAD.js} +4 -24
  16. package/js/{chunk-NCYXZN2G.js → chunk-UVL56Z6E.js} +390 -23
  17. package/js/{chunk-2HHMABB6.js → chunk-WFSQXYUT.js} +46 -10
  18. package/js/{chunk-6IIO4NPI.js → chunk-Z5NMEGJN.js} +1 -1
  19. package/js/client.js +2 -2
  20. package/js/contracts.js +8 -1
  21. package/js/effect.js +8 -7
  22. package/js/es-APDZKREY.js +40968 -0
  23. package/js/graphql.js +10 -9
  24. package/js/host.js +12 -11
  25. package/js/index.js +7 -5
  26. package/js/mcp/effect.js +10 -9
  27. package/js/mcp/stdio.js +10 -9
  28. package/js/mcp.js +12 -11
  29. package/js/openapi.js +776 -41590
  30. package/js/skills/effect.js +1 -2
  31. package/js/skills.js +47 -10
  32. package/js/ui/auth/contracts.js +7 -8
  33. package/js/ui/auth.js +13 -11
  34. package/js/ui/contracts.js +1 -1
  35. package/js/ui/serving.js +3 -2
  36. package/package.json +1 -1
  37. package/runtime.json +1 -1
  38. package/types/app-cache/src/contracts/cache.d.ts +42 -2
  39. package/types/app-cache/src/index.d.ts +59 -1
  40. package/types/apps/src/contracts/cache.d.ts +4 -1
  41. package/types/apps/src/contracts/host.d.ts +8 -672
  42. package/types/apps/src/contracts/openapi.d.ts +6 -0
  43. package/types/apps/src/contracts/protocol-version.d.ts +6 -0
  44. package/types/apps/src/contracts/protocols/1.d.ts +1575 -0
  45. package/types/apps/src/contracts/skills.d.ts +17 -8
  46. package/types/apps/src/contracts/ui-auth.d.ts +6 -14
  47. package/types/apps/src/implementation/cache.d.ts +3 -1
  48. package/types/apps/src/implementation/openapi-compile.d.ts +1 -1
  49. package/types/apps/src/implementation/openapi-document.d.ts +0 -2
  50. package/types/apps/src/implementation/openapi-names.d.ts +18 -0
  51. package/types/apps/src/implementation/openapi-request.d.ts +0 -1
  52. package/types/apps/src/implementation/openapi-source.d.ts +5 -1
  53. package/types/apps/src/implementation/schema.d.ts +0 -5
  54. package/types/apps/src/implementation/swagger-client.d.ts +28 -0
  55. package/types/apps/src/implementation/ui-auth.d.ts +11 -5
  56. package/types/apps/src/skills.d.ts +6 -3
  57. package/types/apps/src/ui-auth.d.ts +2 -2
  58. package/js/chunk-TE4KO4HI.js +0 -47
@@ -1,3 +1,41 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-CZ7CSFO4.js";
4
+
5
+ // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/dist/index.js
6
+ var dist_exports = {};
7
+ __export(dist_exports, {
8
+ Alias: () => Alias,
9
+ CST: () => cst_exports,
10
+ Composer: () => Composer,
11
+ Document: () => Document,
12
+ Lexer: () => Lexer,
13
+ LineCounter: () => LineCounter,
14
+ Pair: () => Pair,
15
+ Parser: () => Parser,
16
+ Scalar: () => Scalar,
17
+ Schema: () => Schema,
18
+ YAMLError: () => YAMLError,
19
+ YAMLMap: () => YAMLMap,
20
+ YAMLParseError: () => YAMLParseError,
21
+ YAMLSeq: () => YAMLSeq,
22
+ YAMLWarning: () => YAMLWarning,
23
+ isAlias: () => isAlias,
24
+ isCollection: () => isCollection,
25
+ isDocument: () => isDocument,
26
+ isMap: () => isMap,
27
+ isNode: () => isNode,
28
+ isPair: () => isPair,
29
+ isScalar: () => isScalar,
30
+ isSeq: () => isSeq,
31
+ parse: () => parse,
32
+ parseAllDocuments: () => parseAllDocuments,
33
+ parseDocument: () => parseDocument,
34
+ stringify: () => stringify3,
35
+ visit: () => visit,
36
+ visitAsync: () => visitAsync
37
+ });
38
+
1
39
  // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/identity.js
2
40
  var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
3
41
  var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
@@ -4632,30 +4670,251 @@ ${end.comment}` : end.comment;
4632
4670
  }
4633
4671
  };
4634
4672
 
4635
- // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/dist/parse/line-counter.js
4636
- var LineCounter = class {
4637
- constructor() {
4638
- this.lineStarts = [];
4639
- this.addNewLine = (offset) => this.lineStarts.push(offset);
4640
- this.linePos = (offset) => {
4641
- let low = 0;
4642
- let high = this.lineStarts.length;
4643
- while (low < high) {
4644
- const mid = low + high >> 1;
4645
- if (this.lineStarts[mid] < offset)
4646
- low = mid + 1;
4647
- else
4648
- high = mid;
4649
- }
4650
- if (this.lineStarts[low] === offset)
4651
- return { line: low + 1, col: 1 };
4652
- if (low === 0)
4653
- return { line: 0, col: offset };
4654
- const start = this.lineStarts[low - 1];
4655
- return { line: low, col: offset - start + 1 };
4673
+ // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/dist/parse/cst.js
4674
+ var cst_exports = {};
4675
+ __export(cst_exports, {
4676
+ BOM: () => BOM,
4677
+ DOCUMENT: () => DOCUMENT,
4678
+ FLOW_END: () => FLOW_END,
4679
+ SCALAR: () => SCALAR2,
4680
+ createScalarToken: () => createScalarToken,
4681
+ isCollection: () => isCollection2,
4682
+ isScalar: () => isScalar2,
4683
+ prettyToken: () => prettyToken,
4684
+ resolveAsScalar: () => resolveAsScalar,
4685
+ setScalarValue: () => setScalarValue,
4686
+ stringify: () => stringify2,
4687
+ tokenType: () => tokenType,
4688
+ visit: () => visit2
4689
+ });
4690
+
4691
+ // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/dist/parse/cst-scalar.js
4692
+ function resolveAsScalar(token, strict = true, onError) {
4693
+ if (token) {
4694
+ const _onError = (pos, code, message) => {
4695
+ const offset = typeof pos === "number" ? pos : Array.isArray(pos) ? pos[0] : pos.offset;
4696
+ if (onError)
4697
+ onError(offset, code, message);
4698
+ else
4699
+ throw new YAMLParseError([offset, offset + 1], code, message);
4656
4700
  };
4701
+ switch (token.type) {
4702
+ case "scalar":
4703
+ case "single-quoted-scalar":
4704
+ case "double-quoted-scalar":
4705
+ return resolveFlowScalar(token, strict, _onError);
4706
+ case "block-scalar":
4707
+ return resolveBlockScalar({ options: { strict } }, token, _onError);
4708
+ }
4657
4709
  }
4658
- };
4710
+ return null;
4711
+ }
4712
+ function createScalarToken(value, context) {
4713
+ const { implicitKey = false, indent, inFlow = false, offset = -1, type = "PLAIN" } = context;
4714
+ const source = stringifyString({ type, value }, {
4715
+ implicitKey,
4716
+ indent: indent > 0 ? " ".repeat(indent) : "",
4717
+ inFlow,
4718
+ options: { blockQuote: true, lineWidth: -1 }
4719
+ });
4720
+ const end = context.end ?? [
4721
+ { type: "newline", offset: -1, indent, source: "\n" }
4722
+ ];
4723
+ switch (source[0]) {
4724
+ case "|":
4725
+ case ">": {
4726
+ const he = source.indexOf("\n");
4727
+ const head = source.substring(0, he);
4728
+ const body = source.substring(he + 1) + "\n";
4729
+ const props = [
4730
+ { type: "block-scalar-header", offset, indent, source: head }
4731
+ ];
4732
+ if (!addEndtoBlockProps(props, end))
4733
+ props.push({ type: "newline", offset: -1, indent, source: "\n" });
4734
+ return { type: "block-scalar", offset, indent, props, source: body };
4735
+ }
4736
+ case '"':
4737
+ return { type: "double-quoted-scalar", offset, indent, source, end };
4738
+ case "'":
4739
+ return { type: "single-quoted-scalar", offset, indent, source, end };
4740
+ default:
4741
+ return { type: "scalar", offset, indent, source, end };
4742
+ }
4743
+ }
4744
+ function setScalarValue(token, value, context = {}) {
4745
+ let { afterKey = false, implicitKey = false, inFlow = false, type } = context;
4746
+ let indent = "indent" in token ? token.indent : null;
4747
+ if (afterKey && typeof indent === "number")
4748
+ indent += 2;
4749
+ if (!type)
4750
+ switch (token.type) {
4751
+ case "single-quoted-scalar":
4752
+ type = "QUOTE_SINGLE";
4753
+ break;
4754
+ case "double-quoted-scalar":
4755
+ type = "QUOTE_DOUBLE";
4756
+ break;
4757
+ case "block-scalar": {
4758
+ const header = token.props[0];
4759
+ if (header.type !== "block-scalar-header")
4760
+ throw new Error("Invalid block scalar header");
4761
+ type = header.source[0] === ">" ? "BLOCK_FOLDED" : "BLOCK_LITERAL";
4762
+ break;
4763
+ }
4764
+ default:
4765
+ type = "PLAIN";
4766
+ }
4767
+ const source = stringifyString({ type, value }, {
4768
+ implicitKey: implicitKey || indent === null,
4769
+ indent: indent !== null && indent > 0 ? " ".repeat(indent) : "",
4770
+ inFlow,
4771
+ options: { blockQuote: true, lineWidth: -1 }
4772
+ });
4773
+ switch (source[0]) {
4774
+ case "|":
4775
+ case ">":
4776
+ setBlockScalarValue(token, source);
4777
+ break;
4778
+ case '"':
4779
+ setFlowScalarValue(token, source, "double-quoted-scalar");
4780
+ break;
4781
+ case "'":
4782
+ setFlowScalarValue(token, source, "single-quoted-scalar");
4783
+ break;
4784
+ default:
4785
+ setFlowScalarValue(token, source, "scalar");
4786
+ }
4787
+ }
4788
+ function setBlockScalarValue(token, source) {
4789
+ const he = source.indexOf("\n");
4790
+ const head = source.substring(0, he);
4791
+ const body = source.substring(he + 1) + "\n";
4792
+ if (token.type === "block-scalar") {
4793
+ const header = token.props[0];
4794
+ if (header.type !== "block-scalar-header")
4795
+ throw new Error("Invalid block scalar header");
4796
+ header.source = head;
4797
+ token.source = body;
4798
+ } else {
4799
+ const { offset } = token;
4800
+ const indent = "indent" in token ? token.indent : -1;
4801
+ const props = [
4802
+ { type: "block-scalar-header", offset, indent, source: head }
4803
+ ];
4804
+ if (!addEndtoBlockProps(props, "end" in token ? token.end : void 0))
4805
+ props.push({ type: "newline", offset: -1, indent, source: "\n" });
4806
+ for (const key of Object.keys(token))
4807
+ if (key !== "type" && key !== "offset")
4808
+ delete token[key];
4809
+ Object.assign(token, { type: "block-scalar", indent, props, source: body });
4810
+ }
4811
+ }
4812
+ function addEndtoBlockProps(props, end) {
4813
+ if (end)
4814
+ for (const st of end)
4815
+ switch (st.type) {
4816
+ case "space":
4817
+ case "comment":
4818
+ props.push(st);
4819
+ break;
4820
+ case "newline":
4821
+ props.push(st);
4822
+ return true;
4823
+ }
4824
+ return false;
4825
+ }
4826
+ function setFlowScalarValue(token, source, type) {
4827
+ switch (token.type) {
4828
+ case "scalar":
4829
+ case "double-quoted-scalar":
4830
+ case "single-quoted-scalar":
4831
+ token.type = type;
4832
+ token.source = source;
4833
+ break;
4834
+ case "block-scalar": {
4835
+ const end = token.props.slice(1);
4836
+ let oa = source.length;
4837
+ if (token.props[0].type === "block-scalar-header")
4838
+ oa -= token.props[0].source.length;
4839
+ for (const tok of end)
4840
+ tok.offset += oa;
4841
+ delete token.props;
4842
+ Object.assign(token, { type, source, end });
4843
+ break;
4844
+ }
4845
+ case "block-map":
4846
+ case "block-seq": {
4847
+ const offset = token.offset + source.length;
4848
+ const nl = { type: "newline", offset, indent: token.indent, source: "\n" };
4849
+ delete token.items;
4850
+ Object.assign(token, { type, source, end: [nl] });
4851
+ break;
4852
+ }
4853
+ default: {
4854
+ const indent = "indent" in token ? token.indent : -1;
4855
+ const end = "end" in token && Array.isArray(token.end) ? token.end.filter((st) => st.type === "space" || st.type === "comment" || st.type === "newline") : [];
4856
+ for (const key of Object.keys(token))
4857
+ if (key !== "type" && key !== "offset")
4858
+ delete token[key];
4859
+ Object.assign(token, { type, indent, source, end });
4860
+ }
4861
+ }
4862
+ }
4863
+
4864
+ // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/dist/parse/cst-stringify.js
4865
+ var stringify2 = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
4866
+ function stringifyToken(token) {
4867
+ switch (token.type) {
4868
+ case "block-scalar": {
4869
+ let res = "";
4870
+ for (const tok of token.props)
4871
+ res += stringifyToken(tok);
4872
+ return res + token.source;
4873
+ }
4874
+ case "block-map":
4875
+ case "block-seq": {
4876
+ let res = "";
4877
+ for (const item of token.items)
4878
+ res += stringifyItem(item);
4879
+ return res;
4880
+ }
4881
+ case "flow-collection": {
4882
+ let res = token.start.source;
4883
+ for (const item of token.items)
4884
+ res += stringifyItem(item);
4885
+ for (const st of token.end)
4886
+ res += st.source;
4887
+ return res;
4888
+ }
4889
+ case "document": {
4890
+ let res = stringifyItem(token);
4891
+ if (token.end)
4892
+ for (const st of token.end)
4893
+ res += st.source;
4894
+ return res;
4895
+ }
4896
+ default: {
4897
+ let res = token.source;
4898
+ if ("end" in token && token.end)
4899
+ for (const st of token.end)
4900
+ res += st.source;
4901
+ return res;
4902
+ }
4903
+ }
4904
+ }
4905
+ function stringifyItem({ start, key, sep, value }) {
4906
+ let res = "";
4907
+ for (const st of start)
4908
+ res += st.source;
4909
+ if (key)
4910
+ res += stringifyToken(key);
4911
+ if (sep)
4912
+ for (const st of sep)
4913
+ res += st.source;
4914
+ if (value)
4915
+ res += stringifyToken(value);
4916
+ return res;
4917
+ }
4659
4918
 
4660
4919
  // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/dist/parse/cst-visit.js
4661
4920
  var BREAK2 = /* @__PURE__ */ Symbol("break visit");
@@ -4718,6 +4977,22 @@ var BOM = "\uFEFF";
4718
4977
  var DOCUMENT = "";
4719
4978
  var FLOW_END = "";
4720
4979
  var SCALAR2 = "";
4980
+ var isCollection2 = (token) => !!token && "items" in token;
4981
+ var isScalar2 = (token) => !!token && (token.type === "scalar" || token.type === "single-quoted-scalar" || token.type === "double-quoted-scalar" || token.type === "block-scalar");
4982
+ function prettyToken(token) {
4983
+ switch (token) {
4984
+ case BOM:
4985
+ return "<BOM>";
4986
+ case DOCUMENT:
4987
+ return "<DOC>";
4988
+ case FLOW_END:
4989
+ return "<FLOW_END>";
4990
+ case SCALAR2:
4991
+ return "<SCALAR>";
4992
+ default:
4993
+ return JSON.stringify(token);
4994
+ }
4995
+ }
4721
4996
  function tokenType(source) {
4722
4997
  switch (source) {
4723
4998
  case BOM:
@@ -5360,6 +5635,31 @@ var Lexer = class {
5360
5635
  }
5361
5636
  };
5362
5637
 
5638
+ // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/dist/parse/line-counter.js
5639
+ var LineCounter = class {
5640
+ constructor() {
5641
+ this.lineStarts = [];
5642
+ this.addNewLine = (offset) => this.lineStarts.push(offset);
5643
+ this.linePos = (offset) => {
5644
+ let low = 0;
5645
+ let high = this.lineStarts.length;
5646
+ while (low < high) {
5647
+ const mid = low + high >> 1;
5648
+ if (this.lineStarts[mid] < offset)
5649
+ low = mid + 1;
5650
+ else
5651
+ high = mid;
5652
+ }
5653
+ if (this.lineStarts[low] === offset)
5654
+ return { line: low + 1, col: 1 };
5655
+ if (low === 0)
5656
+ return { line: 0, col: offset };
5657
+ const start = this.lineStarts[low - 1];
5658
+ return { line: low, col: offset - start + 1 };
5659
+ };
5660
+ }
5661
+ };
5662
+
5363
5663
  // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/dist/parse/parser.js
5364
5664
  function includesToken(list, type) {
5365
5665
  for (let i = 0; i < list.length; ++i)
@@ -6229,6 +6529,20 @@ function parseOptions(options) {
6229
6529
  const lineCounter = options.lineCounter || prettyErrors && new LineCounter() || null;
6230
6530
  return { lineCounter, prettyErrors };
6231
6531
  }
6532
+ function parseAllDocuments(source, options = {}) {
6533
+ const { lineCounter, prettyErrors } = parseOptions(options);
6534
+ const parser = new Parser(lineCounter?.addNewLine);
6535
+ const composer = new Composer(options);
6536
+ const docs = Array.from(composer.compose(parser.parse(source)));
6537
+ if (prettyErrors && lineCounter)
6538
+ for (const doc of docs) {
6539
+ doc.errors.forEach(prettifyError(source, lineCounter));
6540
+ doc.warnings.forEach(prettifyError(source, lineCounter));
6541
+ }
6542
+ if (docs.length > 0)
6543
+ return docs;
6544
+ return Object.assign([], { empty: true }, composer.streamInfo());
6545
+ }
6232
6546
  function parseDocument(source, options = {}) {
6233
6547
  const { lineCounter, prettyErrors } = parseOptions(options);
6234
6548
  const parser = new Parser(lineCounter?.addNewLine);
@@ -6267,8 +6581,61 @@ function parse(src, reviver, options) {
6267
6581
  }
6268
6582
  return doc.toJS(Object.assign({ reviver: _reviver }, options));
6269
6583
  }
6584
+ function stringify3(value, replacer, options) {
6585
+ let _replacer = null;
6586
+ if (typeof replacer === "function" || Array.isArray(replacer)) {
6587
+ _replacer = replacer;
6588
+ } else if (options === void 0 && replacer) {
6589
+ options = replacer;
6590
+ }
6591
+ if (typeof options === "string")
6592
+ options = options.length;
6593
+ if (typeof options === "number") {
6594
+ const indent = Math.round(options);
6595
+ options = indent < 1 ? void 0 : indent > 8 ? { indent: 8 } : { indent };
6596
+ }
6597
+ if (value === void 0) {
6598
+ const { keepUndefined } = options ?? replacer ?? {};
6599
+ if (!keepUndefined)
6600
+ return void 0;
6601
+ }
6602
+ if (isDocument(value) && !_replacer)
6603
+ return value.toString(options);
6604
+ return new Document(value, _replacer, options).toString(options);
6605
+ }
6606
+
6607
+ // ../../node_modules/.bun/yaml@2.9.1/node_modules/yaml/browser/index.js
6608
+ var browser_default = dist_exports;
6270
6609
 
6271
6610
  export {
6611
+ isAlias,
6612
+ isDocument,
6613
+ isMap,
6614
+ isPair,
6615
+ isScalar,
6616
+ isSeq,
6617
+ isCollection,
6618
+ isNode,
6619
+ visit,
6620
+ visitAsync,
6621
+ Alias,
6622
+ Scalar,
6623
+ Pair,
6624
+ YAMLMap,
6625
+ YAMLSeq,
6626
+ Schema,
6627
+ Document,
6628
+ YAMLError,
6629
+ YAMLParseError,
6630
+ YAMLWarning,
6631
+ Composer,
6632
+ cst_exports,
6633
+ Lexer,
6634
+ LineCounter,
6635
+ Parser,
6636
+ parseAllDocuments,
6272
6637
  parseDocument,
6273
- parse
6638
+ parse,
6639
+ stringify3 as stringify,
6640
+ browser_default
6274
6641
  };
@@ -2,7 +2,9 @@ import {
2
2
  ValidationError
3
3
  } from "./chunk-SATWJKN6.js";
4
4
  import {
5
+ Cause_exports,
5
6
  Effect_exports,
7
+ Exit_exports,
6
8
  SchemaGetter_exports,
7
9
  SchemaIssue_exports,
8
10
  SchemaParser_exports,
@@ -1330,24 +1332,58 @@ var compileJsonSchemaDecoder = (document) => Effect_exports.gen(function* () {
1330
1332
  );
1331
1333
  return Object.assign(decoder, { [ImportedJsonSchema]: document });
1332
1334
  });
1333
- var lazyJsonSchemaDecoder = (document) => Effect_exports.gen(function* () {
1335
+ var lazyDecoder = (document) => {
1334
1336
  const read = once(document);
1335
- const compiled = yield* Effect_exports.cached(Effect_exports.suspend(() => compileJsonSchemaDecoder(read())));
1337
+ let compiled;
1338
+ const compile = Effect_exports.suspend(
1339
+ () => compiled ?? compileJsonSchemaDecoder(read()).pipe(
1340
+ // An interrupted compilation is not a result; the next decode compiles again.
1341
+ Effect_exports.onExit(
1342
+ (exit) => Effect_exports.sync(() => {
1343
+ if (Exit_exports.isSuccess(exit) || !Cause_exports.hasInterrupts(exit.cause)) compiled = exit;
1344
+ })
1345
+ )
1346
+ )
1347
+ );
1336
1348
  const decoder = Schema_exports.declareConstructor()(
1337
1349
  [],
1338
- () => (input, _ast, options) => compiled.pipe(
1339
- Effect_exports.mapError(
1340
- () => new SchemaIssue_exports.InvalidValue({ message: "Unsupported JSON Schema" })
1341
- ),
1350
+ () => (input, _ast, options) => compile.pipe(
1351
+ Effect_exports.mapError(() => new SchemaIssue_exports.InvalidValue({ message: "Unsupported JSON Schema" })),
1342
1352
  Effect_exports.flatMap((schema) => SchemaParser_exports.decodeUnknownEffect(schema)(input, options))
1343
1353
  )
1344
1354
  );
1345
1355
  return withLazyJsonSchemaDocument(decoder, read);
1356
+ };
1357
+ var lazyJsonSchemaDecoder = (document) => Effect_exports.sync(() => lazyDecoder(document));
1358
+ var isJsonValue = Schema_exports.is(Schema_exports.Json);
1359
+ var jsonDocument = (input) => {
1360
+ if (typeof input !== "object" || input === null || Array.isArray(input)) return void 0;
1361
+ const keys = Object.keys(input);
1362
+ const values = keys.map((key) => Reflect.get(input, key));
1363
+ if (!isJsonValue(values)) return void 0;
1364
+ const document = {};
1365
+ keys.forEach(
1366
+ (key, index) => Object.defineProperty(document, key, {
1367
+ value: values[index],
1368
+ enumerable: true,
1369
+ writable: true,
1370
+ configurable: true
1371
+ })
1372
+ );
1373
+ return document;
1374
+ };
1375
+ var jsonSchemaDecoder = (input) => Effect_exports.suspend(() => {
1376
+ const document = jsonDocument(input);
1377
+ return document === void 0 ? Effect_exports.fail(new ValidationError()) : lazyJsonSchemaDecoder(() => document);
1346
1378
  });
1347
- var jsonSchemaDecoder = (input) => parse(Schema_exports.Record(Schema_exports.String, Schema_exports.Json), input).pipe(
1348
- Effect_exports.flatMap((document) => lazyJsonSchemaDecoder(() => document))
1349
- );
1350
- var jsonSchema = (input) => wrap(Effect_exports.runSync(jsonSchemaDecoder(input)), false);
1379
+ var jsonSchema = (input) => {
1380
+ const document = jsonDocument(input);
1381
+ if (document === void 0) throw new ValidationError();
1382
+ return wrap(
1383
+ lazyDecoder(() => document),
1384
+ false
1385
+ );
1386
+ };
1351
1387
  var storageFieldOf = (schema) => schema[StorageField];
1352
1388
  var id = (table) => wrap(Schema_exports.NonEmptyString, false, { kind: "id", references: table });
1353
1389
  var userId = () => wrap(Schema_exports.NonEmptyString, false, { kind: "userId" });
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  operationDeclaration
3
- } from "./chunk-PZ36XMXW.js";
3
+ } from "./chunk-PYUYJRSK.js";
4
4
 
5
5
  // src/implementation/protocol-operations.ts
6
6
  var protocolOperations = (operations, kinds = {}) => {
package/js/client.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  UiContext,
5
5
  UiDeploymentChanged,
6
6
  UiFailed
7
- } from "./chunk-OHRT55C4.js";
7
+ } from "./chunk-G7ZIRKMK.js";
8
8
  import {
9
9
  AsyncResult_exports,
10
10
  AtomRegistry_exports,
@@ -28,7 +28,7 @@ import {
28
28
  } from "./chunk-QKHR7BMF.js";
29
29
  import {
30
30
  decoderOf
31
- } from "./chunk-2HHMABB6.js";
31
+ } from "./chunk-WFSQXYUT.js";
32
32
  import {
33
33
  StorageName
34
34
  } from "./chunk-FZJOYIZO.js";
package/js/contracts.js CHANGED
@@ -18,6 +18,7 @@ import {
18
18
  HostEvaluationFailed,
19
19
  HostInputInvalid,
20
20
  HostInspectError,
21
+ HostInvocation,
21
22
  HostOperationFailed,
22
23
  HostOperationNotFound,
23
24
  HostOutputInvalid,
@@ -73,16 +74,19 @@ import {
73
74
  defaultElicitationLimits,
74
75
  defaultMcpClientLimits,
75
76
  defaultWebhookTransportLimits,
77
+ frameworkProtocol,
76
78
  indexCommand,
77
79
  inspectCommand,
78
80
  maxInputProblems,
79
81
  minimumIntervalMilliseconds,
82
+ protocol1,
80
83
  selectTools,
81
84
  skillCatalog,
82
85
  skillsCommand,
83
86
  workflowDurationMillis
84
- } from "./chunk-IHQ4ML7K.js";
87
+ } from "./chunk-MYYEW3RA.js";
85
88
  import "./chunk-BMOIAIVR.js";
89
+ import "./chunk-LGIYBDWA.js";
86
90
  import {
87
91
  AppSkillMetadata,
88
92
  AppSkillName,
@@ -142,6 +146,7 @@ export {
142
146
  HostEvaluationFailed,
143
147
  HostInputInvalid,
144
148
  HostInspectError,
149
+ HostInvocation,
145
150
  HostOperationFailed,
146
151
  HostOperationNotFound,
147
152
  HostOutputInvalid,
@@ -206,10 +211,12 @@ export {
206
211
  defaultElicitationLimits,
207
212
  defaultMcpClientLimits,
208
213
  defaultWebhookTransportLimits,
214
+ frameworkProtocol,
209
215
  indexCommand,
210
216
  inspectCommand,
211
217
  maxInputProblems,
212
218
  minimumIntervalMilliseconds,
219
+ protocol1,
213
220
  selectTools,
214
221
  skillCatalog,
215
222
  skillFormatLimits,
package/js/effect.js CHANGED
@@ -3,17 +3,18 @@ import {
3
3
  ApprovalDecision,
4
4
  createAppHandler,
5
5
  prepareElicitation
6
- } from "./chunk-KOXMLKTM.js";
7
- import "./chunk-ZTFQHGEB.js";
8
- import "./chunk-NCYXZN2G.js";
9
- import "./chunk-RBAC33PQ.js";
6
+ } from "./chunk-J7O55ZV7.js";
7
+ import "./chunk-D47C7KG5.js";
8
+ import "./chunk-FDNTX5QJ.js";
9
+ import "./chunk-JN55AYQH.js";
10
10
  import "./chunk-PLCMJREA.js";
11
- import "./chunk-PZ36XMXW.js";
11
+ import "./chunk-PYUYJRSK.js";
12
12
  import "./chunk-ZJWDMTE3.js";
13
13
  import {
14
14
  ToolAnnotations
15
- } from "./chunk-IHQ4ML7K.js";
15
+ } from "./chunk-MYYEW3RA.js";
16
16
  import "./chunk-BMOIAIVR.js";
17
+ import "./chunk-LGIYBDWA.js";
17
18
  import "./chunk-YEJOQEII.js";
18
19
  import "./chunk-SWPD52J7.js";
19
20
  import "./chunk-W7D7WVSY.js";
@@ -25,7 +26,7 @@ import {
25
26
  decoderOf,
26
27
  jsonSchemaDecoder,
27
28
  wrap
28
- } from "./chunk-2HHMABB6.js";
29
+ } from "./chunk-WFSQXYUT.js";
29
30
  import "./chunk-FZJOYIZO.js";
30
31
  import {
31
32
  HttpUrl,