@introspection-ai/recipes 0.34.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/inspect.d.ts +7 -0
  2. package/dist/inspect.d.ts.map +1 -1
  3. package/dist/inspect.js.map +1 -1
  4. package/dist/mcp/catalog.d.ts.map +1 -1
  5. package/dist/mcp/catalog.js +9 -2
  6. package/dist/mcp/catalog.js.map +1 -1
  7. package/dist/mcp/index.d.ts +14 -2
  8. package/dist/mcp/index.d.ts.map +1 -1
  9. package/dist/mcp/index.js +36 -5
  10. package/dist/mcp/index.js.map +1 -1
  11. package/dist/mcp/tools.d.ts +8 -0
  12. package/dist/mcp/tools.d.ts.map +1 -1
  13. package/dist/mcp/tools.js +15 -3
  14. package/dist/mcp/tools.js.map +1 -1
  15. package/dist/mcp-chunks/{auth-command-SDTBVC2R.js → auth-command-GMMLBU24.js} +23 -23
  16. package/dist/mcp-chunks/call-arguments-WSURHOLV.js +16 -0
  17. package/dist/mcp-chunks/{call-command-WOZT2DLX.js → call-command-2VF6IKAZ.js} +33 -33
  18. package/dist/mcp-chunks/{chunk-WQBESOWG.js → chunk-22WCLO4D.js} +7 -6
  19. package/dist/mcp-chunks/{chunk-2IO3FXZJ.js → chunk-2JTXIMGE.js} +1 -1
  20. package/dist/mcp-chunks/{chunk-SVCKS5MW.js → chunk-347GOMV4.js} +5 -5
  21. package/dist/mcp-chunks/{chunk-IR5SMKTP.js → chunk-35LLRCRA.js} +303 -128
  22. package/dist/mcp-chunks/{chunk-EIXFNLU6.js → chunk-3AAF3FSI.js} +1 -1
  23. package/dist/mcp-chunks/{chunk-TKZA4MPW.js → chunk-4PN2J74H.js} +4 -4
  24. package/dist/mcp-chunks/{chunk-FWWPRZ37.js → chunk-4U4BUXQD.js} +16 -16
  25. package/dist/mcp-chunks/{chunk-XDARNDP3.js → chunk-5OO6WVPL.js} +1 -1
  26. package/dist/mcp-chunks/{chunk-4IXQQER3.js → chunk-5UK2JLTN.js} +5 -5
  27. package/dist/mcp-chunks/{chunk-M7VINGHY.js → chunk-6TIU2CDB.js} +7 -7
  28. package/dist/mcp-chunks/{chunk-VRTH73R5.js → chunk-6XC5JJWD.js} +73 -36
  29. package/dist/mcp-chunks/{chunk-OURSGEZX.js → chunk-7BVYBZ4J.js} +8 -8
  30. package/dist/mcp-chunks/{chunk-HM26TIPK.js → chunk-7IVXKYTI.js} +42 -22
  31. package/dist/mcp-chunks/{chunk-CO4CYU5W.js → chunk-ANNJGB6F.js} +62 -32
  32. package/dist/mcp-chunks/{chunk-33YQLJYL.js → chunk-BIVX2WFX.js} +3 -3
  33. package/dist/mcp-chunks/{chunk-JRU5LZJQ.js → chunk-C4TJGC4F.js} +1 -1
  34. package/dist/mcp-chunks/{chunk-7X3JHUMH.js → chunk-CN5KSNWG.js} +1 -1
  35. package/dist/mcp-chunks/{chunk-UXI26V4F.js → chunk-D2SZ7KRY.js} +1 -1
  36. package/dist/mcp-chunks/{chunk-VWNF5PIF.js → chunk-D65GOMYV.js} +2 -2
  37. package/dist/mcp-chunks/{chunk-27XDYSXJ.js → chunk-DBNBEWRX.js} +4 -1
  38. package/dist/mcp-chunks/{chunk-P3S4OJPI.js → chunk-DUBQHYW4.js} +9 -9
  39. package/dist/mcp-chunks/{chunk-FMYP6JXX.js → chunk-ENBJFQ6H.js} +1 -1
  40. package/dist/mcp-chunks/{chunk-YTO7DITJ.js → chunk-FLUF2FRN.js} +3 -3
  41. package/dist/mcp-chunks/{chunk-IJTZ2ZRM.js → chunk-HFHIY5TO.js} +4 -4
  42. package/dist/mcp-chunks/{chunk-35JUFDQI.js → chunk-HI6VG5LR.js} +2 -2
  43. package/dist/mcp-chunks/{chunk-7OQUF6V6.js → chunk-IHOU2BEL.js} +2 -2
  44. package/dist/mcp-chunks/{chunk-7CI6DKEP.js → chunk-IMXPLUKE.js} +20 -20
  45. package/dist/mcp-chunks/{chunk-UHXTAPEC.js → chunk-LISNXOIQ.js} +1 -1
  46. package/dist/mcp-chunks/{chunk-ASFI5AJK.js → chunk-LRGMFF5S.js} +7 -7
  47. package/dist/mcp-chunks/{chunk-ALLS7CUV.js → chunk-LUVLTUKR.js} +1 -1
  48. package/dist/mcp-chunks/{chunk-SONMFI3S.js → chunk-LZUKBEQZ.js} +12 -12
  49. package/dist/mcp-chunks/{chunk-FQAJT6U2.js → chunk-O2C3HXGS.js} +1 -1
  50. package/dist/mcp-chunks/{chunk-EIF7GALA.js → chunk-OI3RTQXY.js} +1 -1
  51. package/dist/mcp-chunks/{chunk-CRX2G22W.js → chunk-OSTHIELS.js} +1 -1
  52. package/dist/mcp-chunks/{chunk-R636HUNL.js → chunk-P5YLK5G2.js} +17 -12
  53. package/dist/mcp-chunks/{chunk-YGRORKGT.js → chunk-QDFL757K.js} +99 -74
  54. package/dist/mcp-chunks/{chunk-DUJ5WAHC.js → chunk-QNZGFUKC.js} +2 -2
  55. package/dist/mcp-chunks/{chunk-GJ7DWMRT.js → chunk-R4OYHQ4V.js} +1 -1
  56. package/dist/mcp-chunks/{chunk-7ZZZ7MR2.js → chunk-RHXZKYM7.js} +1 -1
  57. package/dist/mcp-chunks/{chunk-POYT6GCW.js → chunk-RKQC2EE6.js} +2 -2
  58. package/dist/mcp-chunks/{chunk-43QNQO5C.js → chunk-RZZO3ZD4.js} +4 -4
  59. package/dist/mcp-chunks/{chunk-FUKRLUU7.js → chunk-SS7V7GVT.js} +4 -4
  60. package/dist/mcp-chunks/{chunk-FVZKQMZS.js → chunk-TYL2NVXI.js} +2 -2
  61. package/dist/mcp-chunks/{chunk-TDBM2UIR.js → chunk-U5QZHPCC.js} +10 -1
  62. package/dist/mcp-chunks/{chunk-6XBQDCGX.js → chunk-UQUM7ICD.js} +36 -17
  63. package/dist/mcp-chunks/{chunk-JQCSGX6E.js → chunk-VWPKJFK4.js} +2 -5
  64. package/dist/mcp-chunks/{chunk-AHDUZPNI.js → chunk-WXNGATQ7.js} +1 -1
  65. package/dist/mcp-chunks/{chunk-VCPUZFU7.js → chunk-YFCNRWLV.js} +2 -2
  66. package/dist/mcp-chunks/{chunk-IWXEOLJL.js → chunk-YPSODIQX.js} +18 -18
  67. package/dist/mcp-chunks/{chunk-CMDB57MS.js → chunk-YWFQPA4D.js} +2 -2
  68. package/dist/mcp-chunks/{chunk-YM7ZVYI2.js → chunk-ZI5XYM4C.js} +23 -7
  69. package/dist/mcp-chunks/{chunk-UYG7PAN2.js → chunk-ZJWZY54X.js} +2 -2
  70. package/dist/mcp-chunks/{chunk-ZLV5S5UP.js → chunk-ZXIF7MKN.js} +2 -2
  71. package/dist/mcp-chunks/{cli-67GWFF4R.js → cli-4OQD3H4N.js} +77 -70
  72. package/dist/mcp-chunks/client-LXKCCVMT.js +31 -0
  73. package/dist/mcp-chunks/{config-command-3IKIRWMW.js → config-command-72TCIWPV.js} +63 -36
  74. package/dist/mcp-chunks/daemon-command-QHS3ACBM.js +31 -0
  75. package/dist/mcp-chunks/{dist-YL3LFKVP.js → dist-74UCKZK5.js} +95 -69
  76. package/dist/mcp-chunks/{emit-ts-command-YWKROLL2.js → emit-ts-command-KD4ON2SE.js} +34 -22
  77. package/dist/mcp-chunks/{generate-cli-runner-CZEVY2Y7.js → generate-cli-runner-HWGI6HPL.js} +55 -49
  78. package/dist/mcp-chunks/generated-daemon-runtime-7ORS5KBR.js +31 -0
  79. package/dist/mcp-chunks/{inspect-cli-command-5Y2LORK5.js → inspect-cli-command-FT5JSB7V.js} +9 -9
  80. package/dist/mcp-chunks/{launch-43TA3HYF.js → launch-AHLKP2VM.js} +1 -1
  81. package/dist/mcp-chunks/{lifecycle-BY2ILXTB.js → lifecycle-BJDITFWN.js} +1 -1
  82. package/dist/mcp-chunks/{list-command-7RU7NNAV.js → list-command-YKF7RN6Y.js} +30 -30
  83. package/dist/mcp-chunks/{output-utils-2R3SA6KR.js → output-utils-LYB5IJRD.js} +3 -3
  84. package/dist/mcp-chunks/{prompt-CH6TK0bC-GKQOEUY4.js → prompt-CH6TK0bC-B3USYOND.js} +1 -1
  85. package/dist/mcp-chunks/{record-command-ROIRRNFS.js → record-command-MJW3Z5E5.js} +5 -5
  86. package/dist/mcp-chunks/{replay-command-Y2MYVQTL.js → replay-command-5ZHBUOLE.js} +6 -6
  87. package/dist/mcp-chunks/{resource-command-VUV7AYYQ.js → resource-command-L4I24AX5.js} +9 -9
  88. package/dist/mcp-chunks/{result-utils-5U7NVXDZ.js → result-utils-5WRI66KV.js} +3 -3
  89. package/dist/mcp-chunks/runtime-IKWDQLZF.js +38 -0
  90. package/dist/mcp-chunks/{runtime-wrapper-3BVFTSWJ.js → runtime-wrapper-WFMNIHD5.js} +3 -3
  91. package/dist/mcp-chunks/{serve-command-BXLQWHFW.js → serve-command-KNCSJUXS.js} +185 -78
  92. package/dist/mcp-chunks/{timeouts-6GL2F44N.js → timeouts-2ZHGSB3R.js} +3 -3
  93. package/dist/mcp-chunks/{vault-command-JCMW3DQA.js → vault-command-7EDL45AA.js} +4 -4
  94. package/dist/mcp-chunks/{webapi-UMWFGMQV.js → webapi-NNCZGUMZ.js} +46 -46
  95. package/dist/mcp-daemon.js +27 -27
  96. package/dist/mcp-run-worker.js +27 -27
  97. package/dist/pi-extension.d.ts.map +1 -1
  98. package/dist/pi-extension.js +8 -1
  99. package/dist/pi-extension.js.map +1 -1
  100. package/dist/recipe/package.d.ts +5 -0
  101. package/dist/recipe/package.d.ts.map +1 -1
  102. package/dist/recipe/package.js +7 -1
  103. package/dist/recipe/package.js.map +1 -1
  104. package/dist/session.d.ts +6 -0
  105. package/dist/session.d.ts.map +1 -1
  106. package/dist/session.js +2 -1
  107. package/dist/session.js.map +1 -1
  108. package/docs/host-api.md +4 -1
  109. package/docs/mcp-configuration.md +15 -0
  110. package/docs/recipe-format.md +3 -1
  111. package/docs/slack.md +6 -0
  112. package/package.json +10 -10
  113. package/dist/mcp-chunks/call-arguments-ER7NWEPS.js +0 -16
  114. package/dist/mcp-chunks/client-MQMNAYYW.js +0 -31
  115. package/dist/mcp-chunks/daemon-command-OMOZ5MP7.js +0 -31
  116. package/dist/mcp-chunks/generated-daemon-runtime-SRFULTIT.js +0 -31
  117. package/dist/mcp-chunks/runtime-Q4SCCOQE.js +0 -38
@@ -48,6 +48,21 @@ including tools a server may add later; patterns such as `search_*` are invalid.
48
48
  `"required": true` must resolve to a bound endpoint at session materialization
49
49
  or the session fails closed rather than starting without the capability.
50
50
 
51
+ In `mode: tools`, a required server must also be discovered when the session
52
+ starts. A session skips that check for a server only when both of these hold:
53
+
54
+ - the server's declaration sets `"discovery": "defer"` (default `"require"`),
55
+ so the Recipe chooses which servers may be skipped and an unmarked one is
56
+ always checked;
57
+ - the host passes `mcpDiscovery: "defer"` because it boots the session only to
58
+ prepare it, such as building and caching its workspace. The declaration is
59
+ part of the Recipe, so every session sees it; this condition keeps a session
60
+ that does work, including one that checks the Recipe by calling its tools,
61
+ from skipping the server.
62
+
63
+ Mark a server that cannot answer where the Recipe is prepared, such as a
64
+ stand-in reachable only from where tasks run.
65
+
51
66
  ## 2. Choose an agent mode and narrow access
52
67
 
53
68
  An agent selects a subset of the package-permitted servers and tools. It cannot
@@ -303,7 +303,9 @@ or closing a run interrupts or closes the runs beneath it.
303
303
  The `pi.mcp` package block declares capability servers and package-level tool
304
304
  policy. Agent `mcp` blocks narrow those declarations. Credentials and concrete
305
305
  endpoint bindings MUST NOT be required in distributable Recipe source. A host
306
- MUST reject an unbound required server before the session begins.
306
+ MUST reject an unbound required server before the session begins. A host
307
+ preparing a session that does no work MAY start it without the discovered
308
+ catalog of a required server declared `"discovery": "defer"`.
307
309
 
308
310
  See [MCP configuration](mcp-configuration.md) for the complete authored and
309
311
  binding grammar.
package/docs/slack.md CHANGED
@@ -84,6 +84,12 @@ allowed path, and adds the bot token before the request leaves for Slack.
84
84
  The adapter refuses to send a task locator when the provider proxy URL is
85
85
  missing. It never falls back to sending the locator to Slack.
86
86
 
87
+ A proxy-native runtime (`INTROSPECTION_EGRESS_PROXY_NATIVE=1`, or a cloud task
88
+ with no `INTROSPECTION_EGRESS_URL`) calls `https://slack.com/api` directly
89
+ through `HTTPS_PROXY`. The egress terminates TLS for Slack and replaces the
90
+ request's `Authorization` with the bot token, so the adapter sends a fixed
91
+ stand-in token and never the locator.
92
+
87
93
  After `channels reply` or `channels send` succeeds in cloud, the adapter posts
88
94
  the `connector_posted` task event to the Data Plane. Cloud checks the agent
89
95
  session, current run, and destination before recording follow-up routing.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@introspection-ai/recipes",
3
- "version": "0.34.0",
3
+ "version": "0.36.0",
4
4
  "description": "The open format for vertical agents, built on Pi.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -84,7 +84,7 @@
84
84
  "@introspection-sdk/introspection-pi": "^0.35.0",
85
85
  "@opentelemetry/api": "^1.9.1",
86
86
  "ajv": "^8.20.0",
87
- "mcporter": "0.14.2",
87
+ "mcporter": "0.15.0",
88
88
  "yaml": "^2.9.0"
89
89
  },
90
90
  "peerDependencies": {
@@ -95,10 +95,10 @@
95
95
  "typebox": "*"
96
96
  },
97
97
  "devDependencies": {
98
- "@earendil-works/pi-agent-core": "1.1.0",
99
- "@earendil-works/pi-ai": "1.1.0",
100
- "@earendil-works/pi-coding-agent": "1.1.0",
101
- "@earendil-works/pi-tui": "1.1.0",
98
+ "@earendil-works/pi-agent-core": "1.3.0",
99
+ "@earendil-works/pi-ai": "1.3.0",
100
+ "@earendil-works/pi-coding-agent": "1.3.0",
101
+ "@earendil-works/pi-tui": "1.3.0",
102
102
  "@types/node": "^26.1.2",
103
103
  "esbuild": "^0.28.1",
104
104
  "typebox": "^1.0.56",
@@ -106,10 +106,10 @@
106
106
  "vitest": "^5.0.1"
107
107
  },
108
108
  "optionalDependencies": {
109
- "@introspection-ai/mcp-client-linux-x64": "0.34.0",
110
- "@introspection-ai/mcp-client-linux-arm64": "0.34.0",
111
- "@introspection-ai/mcp-client-darwin-arm64": "0.34.0",
112
- "@introspection-ai/mcp-client-darwin-x64": "0.34.0"
109
+ "@introspection-ai/mcp-client-linux-x64": "0.36.0",
110
+ "@introspection-ai/mcp-client-linux-arm64": "0.36.0",
111
+ "@introspection-ai/mcp-client-darwin-arm64": "0.36.0",
112
+ "@introspection-ai/mcp-client-darwin-x64": "0.36.0"
113
113
  },
114
114
  "scripts": {
115
115
  "build": "pnpm build:ts && pnpm build:native",
@@ -1,16 +0,0 @@
1
- import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
- import {
3
- parseCallArguments
4
- } from "./chunk-CO4CYU5W.js";
5
- import "./chunk-ALLS7CUV.js";
6
- import "./chunk-VWNF5PIF.js";
7
- import "./chunk-HM26TIPK.js";
8
- import "./chunk-UHXTAPEC.js";
9
- import "./chunk-27XDYSXJ.js";
10
- import "./chunk-P3S4OJPI.js";
11
- import "./chunk-T4MQCFIK.js";
12
- import "./chunk-JQCSGX6E.js";
13
- import "./chunk-LRKZP7DJ.js";
14
- export {
15
- parseCallArguments
16
- };
@@ -1,31 +0,0 @@
1
- import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
- import {
3
- DaemonClient,
4
- resolveDaemonPaths
5
- } from "./chunk-VRTH73R5.js";
6
- import "./chunk-YGRORKGT.js";
7
- import "./chunk-GJ7DWMRT.js";
8
- import "./chunk-7ZZZ7MR2.js";
9
- import "./chunk-FVZKQMZS.js";
10
- import "./chunk-SONMFI3S.js";
11
- import "./chunk-OURSGEZX.js";
12
- import "./chunk-M7VINGHY.js";
13
- import "./chunk-JRU5LZJQ.js";
14
- import "./chunk-2IO3FXZJ.js";
15
- import "./chunk-IWXEOLJL.js";
16
- import "./chunk-P3S4OJPI.js";
17
- import "./chunk-FWWPRZ37.js";
18
- import "./chunk-XDARNDP3.js";
19
- import "./chunk-7OQUF6V6.js";
20
- import "./chunk-43QNQO5C.js";
21
- import "./chunk-ZLV5S5UP.js";
22
- import "./chunk-T4MQCFIK.js";
23
- import "./chunk-JQCSGX6E.js";
24
- import "./chunk-EIXFNLU6.js";
25
- import "./chunk-35JUFDQI.js";
26
- import "./chunk-IR5SMKTP.js";
27
- import "./chunk-LRKZP7DJ.js";
28
- export {
29
- DaemonClient,
30
- resolveDaemonPaths
31
- };
@@ -1,31 +0,0 @@
1
- import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
- import {
3
- handleDaemonCli
4
- } from "./chunk-R636HUNL.js";
5
- import "./chunk-FQAJT6U2.js";
6
- import "./chunk-VRTH73R5.js";
7
- import "./chunk-YGRORKGT.js";
8
- import "./chunk-GJ7DWMRT.js";
9
- import "./chunk-7ZZZ7MR2.js";
10
- import "./chunk-FVZKQMZS.js";
11
- import "./chunk-SONMFI3S.js";
12
- import "./chunk-OURSGEZX.js";
13
- import "./chunk-M7VINGHY.js";
14
- import "./chunk-JRU5LZJQ.js";
15
- import "./chunk-2IO3FXZJ.js";
16
- import "./chunk-IWXEOLJL.js";
17
- import "./chunk-P3S4OJPI.js";
18
- import "./chunk-FWWPRZ37.js";
19
- import "./chunk-XDARNDP3.js";
20
- import "./chunk-7OQUF6V6.js";
21
- import "./chunk-43QNQO5C.js";
22
- import "./chunk-ZLV5S5UP.js";
23
- import "./chunk-T4MQCFIK.js";
24
- import "./chunk-JQCSGX6E.js";
25
- import "./chunk-EIXFNLU6.js";
26
- import "./chunk-35JUFDQI.js";
27
- import "./chunk-IR5SMKTP.js";
28
- import "./chunk-LRKZP7DJ.js";
29
- export {
30
- handleDaemonCli
31
- };
@@ -1,31 +0,0 @@
1
- import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
- import {
3
- createGeneratedKeepAliveRuntime
4
- } from "./chunk-FUKRLUU7.js";
5
- import "./chunk-YTO7DITJ.js";
6
- import "./chunk-VRTH73R5.js";
7
- import "./chunk-YGRORKGT.js";
8
- import "./chunk-GJ7DWMRT.js";
9
- import "./chunk-7ZZZ7MR2.js";
10
- import "./chunk-FVZKQMZS.js";
11
- import "./chunk-SONMFI3S.js";
12
- import "./chunk-OURSGEZX.js";
13
- import "./chunk-M7VINGHY.js";
14
- import "./chunk-JRU5LZJQ.js";
15
- import "./chunk-2IO3FXZJ.js";
16
- import "./chunk-IWXEOLJL.js";
17
- import "./chunk-P3S4OJPI.js";
18
- import "./chunk-FWWPRZ37.js";
19
- import "./chunk-XDARNDP3.js";
20
- import "./chunk-7OQUF6V6.js";
21
- import "./chunk-43QNQO5C.js";
22
- import "./chunk-ZLV5S5UP.js";
23
- import "./chunk-T4MQCFIK.js";
24
- import "./chunk-JQCSGX6E.js";
25
- import "./chunk-EIXFNLU6.js";
26
- import "./chunk-35JUFDQI.js";
27
- import "./chunk-IR5SMKTP.js";
28
- import "./chunk-LRKZP7DJ.js";
29
- export {
30
- createGeneratedKeepAliveRuntime
31
- };
@@ -1,38 +0,0 @@
1
- import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
- import {
3
- callOnce,
4
- createRuntime
5
- } from "./chunk-YGRORKGT.js";
6
- import "./chunk-GJ7DWMRT.js";
7
- import "./chunk-7ZZZ7MR2.js";
8
- import "./chunk-FVZKQMZS.js";
9
- import "./chunk-SONMFI3S.js";
10
- import "./chunk-OURSGEZX.js";
11
- import "./chunk-M7VINGHY.js";
12
- import "./chunk-JRU5LZJQ.js";
13
- import "./chunk-2IO3FXZJ.js";
14
- import {
15
- MCPORTER_VERSION
16
- } from "./chunk-IWXEOLJL.js";
17
- import "./chunk-P3S4OJPI.js";
18
- import "./chunk-FWWPRZ37.js";
19
- import "./chunk-XDARNDP3.js";
20
- import {
21
- readJsonFile,
22
- writeJsonFile
23
- } from "./chunk-7OQUF6V6.js";
24
- import "./chunk-43QNQO5C.js";
25
- import "./chunk-ZLV5S5UP.js";
26
- import "./chunk-T4MQCFIK.js";
27
- import "./chunk-JQCSGX6E.js";
28
- import "./chunk-EIXFNLU6.js";
29
- import "./chunk-35JUFDQI.js";
30
- import "./chunk-IR5SMKTP.js";
31
- import "./chunk-LRKZP7DJ.js";
32
- export {
33
- MCPORTER_VERSION,
34
- callOnce,
35
- createRuntime,
36
- readJsonFile,
37
- writeJsonFile
38
- };