@desplega.ai/agent-swarm 1.152.2 → 1.153.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 (224) hide show
  1. package/README.md +1 -1
  2. package/dist/{acp-adapter-pfeje2v5.js → acp-adapter-ahmjxhek.js} +4 -4
  3. package/dist/{actions-0sttc7f5.js → actions-jzrfpkmn.js} +30 -26
  4. package/dist/{anthropic-messages-2y8nktar.js → anthropic-messages-9vqsbznt.js} +112 -84
  5. package/dist/{app-p8teva95.js → app-03na2vwb.js} +9 -6
  6. package/dist/{assistant-r45jnsrt.js → assistant-hfkxvhgt.js} +31 -27
  7. package/dist/{azure-openai-responses-f38x2avq.js → azure-openai-responses-04qwdwfq.js} +27 -13
  8. package/dist/{boot-reembed-je26h5y7.js → boot-reembed-c98xrad3.js} +8 -6
  9. package/dist/{boot-reembed-1qmybsd4.js → boot-reembed-zt3qm9xn.js} +9 -7
  10. package/dist/{boot-scrub-logs-gte3h1mm.js → boot-scrub-logs-jcqd8ksj.js} +6 -4
  11. package/dist/{claude-adapter-csc1mzka.js → claude-adapter-mgryg8g3.js} +17 -15
  12. package/dist/{claude-managed-adapter-dsmkcrjy.js → claude-managed-adapter-ea2aga6w.js} +3 -3
  13. package/dist/{claude-sdk-session-fcd6f078.js → claude-sdk-session-jjf4zss1.js} +17 -15
  14. package/dist/{cli-r2fpe7cx.js → cli-00w2c66p.js} +61 -55
  15. package/dist/{cli-fm4ytsdk.js → cli-0d9nbqxf.js} +1 -1
  16. package/dist/cli-0x5qzvkg.js +4279 -0
  17. package/dist/{cli-d3p82erb.js → cli-18amys3y.js} +9 -9
  18. package/dist/{cli-wbyk465z.js → cli-1hwnb4hc.js} +1 -1
  19. package/dist/{cli-xw7vak96.js → cli-3bcmp015.js} +5 -5
  20. package/dist/cli-3er6gcsn.js +1849 -0
  21. package/dist/{cli-c4eeb5q2.js → cli-5b6b62tz.js} +1 -1
  22. package/dist/{cli-4ahpr4sw.js → cli-5mbmvxnn.js} +5 -5
  23. package/dist/{cli-xy1cchaf.js → cli-5taqtpze.js} +235 -8
  24. package/dist/{cli-fmy65jdn.js → cli-6ks9xf1n.js} +7 -5
  25. package/dist/cli-7g9s78jf.js +2827 -0
  26. package/dist/{cli-jew3jda5.js → cli-7pnz2v6s.js} +2 -2
  27. package/dist/{cli-r84ctdxn.js → cli-83wkg402.js} +2 -2
  28. package/dist/{cli-jvy9qgjs.js → cli-a9scg8sv.js} +4 -4
  29. package/dist/{cli-4yc5d8fk.js → cli-avkd6mqv.js} +50 -0
  30. package/dist/{cli-ht5rs63n.js → cli-b2g6mzjc.js} +15 -6
  31. package/dist/{cli-jbmc0r7r.js → cli-bw0dfwkr.js} +1 -1
  32. package/dist/{cli-8wrympd7.js → cli-bzr0ftht.js} +26 -7
  33. package/dist/{cli-wpv5rgg2.js → cli-cdq08v3r.js} +2 -2
  34. package/dist/cli-cgj4hc12.js +18902 -0
  35. package/dist/cli-d6hk10xx.js +14075 -0
  36. package/dist/{cli-zvgj5zg8.js → cli-djvxhnc4.js} +31 -3324
  37. package/dist/{cli-s25avqg9.js → cli-e781c6f9.js} +1 -0
  38. package/dist/{cli-3bpzj8me.js → cli-eazstkad.js} +2 -2
  39. package/dist/{cli-s2qjdd6z.js → cli-eetrvv91.js} +1 -1
  40. package/dist/cli-h38x0qhg.js +6912 -0
  41. package/dist/{cli-9xvdm3bx.js → cli-h60qfasa.js} +742 -278
  42. package/dist/{pi-mono-adapter-jcqt71cg.js → cli-ja7mrygn.js} +67343 -101083
  43. package/dist/{cli-j8dggbcr.js → cli-k0g1sjzm.js} +23 -31
  44. package/dist/{cli-gphgnvpf.js → cli-m04pt18h.js} +2 -2
  45. package/dist/{cli-rgvp6r2x.js → cli-mcnhgnn1.js} +193 -4
  46. package/dist/{cli-j4nv2wqy.js → cli-mzgyhxbe.js} +10 -4
  47. package/dist/{cli-qn042eh7.js → cli-n0q9b7j4.js} +46 -1870
  48. package/dist/cli-n7h1kqpf.js +29 -0
  49. package/dist/{cli-ckz5t2hb.js → cli-nq0kgyxe.js} +5 -5
  50. package/dist/{cli-z3wkng35.js → cli-qrqhc31j.js} +151 -125
  51. package/dist/{cli-56h18ng2.js → cli-r8tdds6s.js} +1 -1
  52. package/dist/{cli-ch38q5z4.js → cli-rj7de4b2.js} +6788 -2541
  53. package/dist/{cli-qd65dvr6.js → cli-s5s1f2yn.js} +56 -40
  54. package/dist/{cli-kj76p1ez.js → cli-scwq51gn.js} +13 -7
  55. package/dist/{cli-2nnd56zt.js → cli-tdh4hjr2.js} +3 -2
  56. package/dist/{cli-c2mk1kgf.js → cli-v4en75c5.js} +8 -1
  57. package/dist/{cli-b9dd0h3k.js → cli-vw03hg5t.js} +3 -2
  58. package/dist/{cli-zvkq5csn.js → cli-ybpp1srm.js} +6 -6
  59. package/dist/cli-yn0a417a.js +4069 -0
  60. package/dist/{cli-gpqcs935.js → cli-ysc1kbet.js} +2 -2
  61. package/dist/{cli-zfzznn7c.js → cli-ytxs7mn1.js} +26 -2
  62. package/dist/cli-zcsyfw2z.js +3335 -0
  63. package/dist/{cli-4j8k1m4w.js → cli-zt1227k1.js} +1162 -192
  64. package/dist/cli-zy5w9gpt.js +230 -0
  65. package/dist/cli.js +26 -34
  66. package/dist/{codex-adapter-fxmpsabw.js → codex-adapter-8548daap.js} +12 -11
  67. package/dist/{codex-session-runner-rr1e47ea.js → codex-session-runner-2dad8p4x.js} +12 -11
  68. package/dist/{commands-0f5rxz51.js → commands-355dbpa8.js} +6 -4
  69. package/dist/{db-r3jxf3wy.js → db-4jjvwz1s.js} +6 -4
  70. package/dist/{dispatcher-06vph6q4.js → dispatcher-ca590nkz.js} +29 -25
  71. package/dist/dsh-adapter-rgvj6ykp.js +19 -0
  72. package/dist/{e2b-413b8t4v.js → e2b-93x1k0j5.js} +6 -7
  73. package/dist/{google-generative-ai-ndjmj5fa.js → google-generative-ai-xtw7tggr.js} +33 -73
  74. package/dist/{google-vertex-fr665tqs.js → google-vertex-zdqpms6n.js} +38 -68
  75. package/dist/{handlers-0hgtc910.js → handlers-2y6dqpvf.js} +32 -28
  76. package/dist/{hook-9kvrv1er.js → hook-0s8knepr.js} +11 -9
  77. package/dist/{hook-fbfhkat3.js → hook-k0gec254.js} +12 -10
  78. package/dist/{http-xbyx8k5j.js → http-jp2nb4zw.js} +300 -237
  79. package/dist/{index-tfsdxyv6.js → index-0wzg3sp3.js} +39 -24
  80. package/dist/{index-rnyahfn5.js → index-3mq6ce93.js} +29 -25
  81. package/dist/{index-jsw3aynb.js → index-42s7eezq.js} +29 -25
  82. package/dist/{cli-pdz9qde4.js → index-9ch1n761.js} +10 -11
  83. package/dist/{index-gpfn1741.js → index-b56xkbc7.js} +8 -6
  84. package/dist/{index-66xz5e9j.js → index-h5gs261z.js} +521 -9
  85. package/dist/{index-2sp0384z.js → index-kkeftv5h.js} +738 -21
  86. package/dist/{index-sgk50mbg.js → index-s37dbevy.js} +30 -26
  87. package/dist/index-w097eg0x.js +5 -0
  88. package/dist/jiti-loader-b4837mtm.js +34 -0
  89. package/dist/jiti-static-loader-q2g5ds0y.js +31267 -0
  90. package/dist/{keepalive-s3xpr7sw.js → keepalive-9pfw7t02.js} +8 -6
  91. package/dist/{lead-rq4n5r16.js → lead-7vcmcdq4.js} +44 -39
  92. package/dist/{maintenance-f0atj1ab.js → maintenance-x277jbpd.js} +9 -7
  93. package/dist/{mistral-conversations-qhr84ph3.js → mistral-conversations-zx0kn554.js} +24 -18
  94. package/dist/{node-x1g4v0pq.js → node-5qtycf6a.js} +16 -11
  95. package/dist/{oauth-refresh-sweep-q0t3bxre.js → oauth-refresh-sweep-5fwa7th2.js} +7 -5
  96. package/dist/{onboard-br5j1kch.js → onboard-17sv0f51.js} +103 -35
  97. package/dist/{openai-codex-responses-wy6a43wd.js → openai-codex-responses-4vjqzvjp.js} +33 -27
  98. package/dist/{openai-completions-32rdwmze.js → openai-completions-pxsmym7g.js} +52 -64
  99. package/dist/{openai-responses-6xwf7bzg.js → openai-responses-tmn0rqp0.js} +23 -24
  100. package/dist/{opencode-adapter-28axqa09.js → opencode-adapter-qbmv4tpy.js} +6 -6
  101. package/dist/{otel-impl-vdqge2nt.js → otel-impl-srjy4be4.js} +4 -4
  102. package/dist/{pi-messages-b1mbr6gp.js → pi-messages-txpjj39q.js} +3 -3
  103. package/dist/pi-mono-adapter-946a0sdd.js +1316 -0
  104. package/dist/{pricing-refresh-hb3691fd.js → pricing-refresh-vetcm563.js} +8 -6
  105. package/dist/{rbac-roles-jh280k9g.js → rbac-roles-cfzgr6r1.js} +8 -6
  106. package/dist/{rbac-roles-t78xt39b.js → rbac-roles-cmxaddmy.js} +7 -5
  107. package/dist/{render-v2-7p8r2ymg.js → render-v2-f9hzff72.js} +9 -6
  108. package/dist/{seed-pricing-hf889enh.js → seed-pricing-jggk6rsy.js} +7 -5
  109. package/dist/{setup-w6mb03jv.js → setup-8mfceb9t.js} +4 -5
  110. package/dist/virtual-modules-ax661xp0.js +54 -0
  111. package/dist/{work-objects-nt8gy1kj.js → work-objects-vdsdcczj.js} +32 -28
  112. package/dist/{worker-dwy617t0.js → worker-cd0nhyv1.js} +44 -39
  113. package/openapi.json +36 -14
  114. package/package.json +6 -6
  115. package/src/be/automation-preflight.ts +6 -4
  116. package/src/be/extensions/db.ts +35 -4
  117. package/src/be/models-catalog.ts +2 -0
  118. package/src/be/modelsdev-cache.json +213 -0
  119. package/src/be/rbac-audit.ts +2 -0
  120. package/src/be/seed-pricing.ts +3 -1
  121. package/src/be/swarm-config-guard.ts +1 -0
  122. package/src/commands/onboard/compose-generator.ts +6 -1
  123. package/src/commands/onboard/env-generator.ts +6 -1
  124. package/src/commands/onboard/manifest.ts +1 -0
  125. package/src/commands/onboard/steps/integration-slack.tsx +56 -16
  126. package/src/commands/onboard/steps/review.tsx +5 -0
  127. package/src/commands/onboard/types.ts +6 -0
  128. package/src/commands/onboard.tsx +5 -1
  129. package/src/commands/provider-credentials.ts +14 -2
  130. package/src/extensions/lifecycle.ts +15 -21
  131. package/src/http/agents.ts +2 -2
  132. package/src/http/config.ts +1 -1
  133. package/src/http/core.ts +5 -3
  134. package/src/http/extensions.ts +108 -34
  135. package/src/http/status.ts +22 -10
  136. package/src/prompts/base-prompt.ts +15 -7
  137. package/src/providers/claude-managed-models.ts +8 -0
  138. package/src/providers/codex-models.ts +15 -1
  139. package/src/providers/dsh-adapter.ts +248 -0
  140. package/src/providers/index.ts +5 -1
  141. package/src/providers/modelsdev-reasoning.json +50 -0
  142. package/src/rbac/legacy-policy.ts +15 -1
  143. package/src/rbac/types.ts +2 -0
  144. package/src/server.ts +7 -1
  145. package/src/slack/app.ts +32 -10
  146. package/src/slack/config.ts +29 -0
  147. package/src/telemetry.ts +2 -3
  148. package/src/tests/agents-harness-provider.test.ts +19 -0
  149. package/src/tests/agents-list-model-display.test.ts +60 -1
  150. package/src/tests/base-prompt.test.ts +25 -0
  151. package/src/tests/claude-managed-adapter.test.ts +6 -0
  152. package/src/tests/codex-gpt6-release.test.ts +97 -0
  153. package/src/tests/config-api-only-keys.test.ts +9 -0
  154. package/src/tests/context-window.test.ts +1 -0
  155. package/src/tests/dsh-adapter.test.ts +276 -0
  156. package/src/tests/e2e-nightly-report.test.ts +3 -3
  157. package/src/tests/e2e-redact.test.ts +2 -0
  158. package/src/tests/env-flag.test.ts +6 -0
  159. package/src/tests/extensions-db.test.ts +41 -0
  160. package/src/tests/extensions-http.test.ts +148 -4
  161. package/src/tests/extensions-lifecycle.test.ts +18 -0
  162. package/src/tests/extensions-mcp-tools.test.ts +9 -5
  163. package/src/tests/internal-ai/complete-structured.test.ts +32 -9
  164. package/src/tests/internal-ai/credentials.test.ts +4 -4
  165. package/src/tests/internal-ai/models.test.ts +20 -0
  166. package/src/tests/migration-046-budgets.test.ts +2 -0
  167. package/src/tests/model-control.test.ts +2 -2
  168. package/src/tests/onboard-compose.test.ts +14 -0
  169. package/src/tests/onboard-env.test.ts +17 -0
  170. package/src/tests/onboard-manifest.test.ts +12 -0
  171. package/src/tests/opus-5-5-registry.test.ts +48 -0
  172. package/src/tests/pricing-refresh.test.ts +1 -1
  173. package/src/tests/pricing-routes.test.ts +15 -3
  174. package/src/tests/provider-registration.test.ts +5 -2
  175. package/src/tests/rbac-admission-e2e.test.ts +54 -0
  176. package/src/tests/rbac-e2e-helpers.ts +2 -0
  177. package/src/tests/rbac-engine.test.ts +32 -0
  178. package/src/tests/rbac-wire-e2e.test.ts +33 -0
  179. package/src/tests/reasoning-effort.test.ts +8 -0
  180. package/src/tests/reload-config.test.ts +33 -0
  181. package/src/tests/session-costs-model-key-normalize.test.ts +1 -0
  182. package/src/tests/slack-config.test.ts +136 -0
  183. package/src/tests/slack-mode-lifecycle.test.ts +69 -0
  184. package/src/tests/status.test.ts +22 -2
  185. package/src/tests/task-tool-preload-mcp.test.ts +3 -1
  186. package/src/tests/telemetry-init.test.ts +18 -0
  187. package/src/tests/workflow-llm.test.ts +3 -3
  188. package/src/tools/extension-common.ts +4 -0
  189. package/src/tools/extension-install.ts +1 -1
  190. package/src/tools/extension-list.ts +4 -3
  191. package/src/types.ts +17 -8
  192. package/src/utils/context-window.ts +1 -0
  193. package/src/utils/credentials.ts +8 -0
  194. package/src/utils/internal-ai/complete-structured.ts +8 -0
  195. package/src/utils/internal-ai/models.ts +5 -5
  196. package/templates/schedules/daily-status-report/content.md +25 -12
  197. package/templates/schedules/daily-workflow-health-audit/content.md +1 -1
  198. package/templates/skills/swarm-extensions/content.md +9 -5
  199. package/dist/cli-4wppfkcm.js +0 -16384
  200. package/dist/cli-55qrx3q8.js +0 -6041
  201. package/dist/cli-cg4vnyh4.js +0 -305
  202. package/dist/cli-jyetr64j.js +0 -52
  203. package/dist/cli-pp9ax9pa.js +0 -520
  204. package/dist/cli-qa66qaf0.js +0 -6076
  205. package/dist/cli-qghpvca2.js +0 -590
  206. package/dist/cli-rembwgt8.js +0 -861
  207. package/dist/cli-tcvj7j2r.js +0 -1971
  208. package/dist/cli-vfcth11k.js +0 -36
  209. package/dist/cli-w1d1bgkk.js +0 -1422
  210. package/dist/cli-y6x0gqtg.js +0 -5977
  211. package/dist/es5-tj3tn4jj.js +0 -844
  212. package/dist/index-1kq5hw2p.js +0 -467
  213. package/dist/index-1p8wdstt.js +0 -7
  214. package/dist/index-8fdjzb2f.js +0 -100
  215. package/dist/index-bxmwzbgw.js +0 -365
  216. package/dist/index-nzerxd5z.js +0 -7
  217. package/dist/index-pyymnzat.js +0 -1168
  218. package/dist/index-qv6atbab.js +0 -619
  219. package/dist/index-rja32qa7.js +0 -801
  220. package/dist/index-tzg5srfp.js +0 -211
  221. package/dist/index-vhncw983.js +0 -90
  222. package/dist/index-xk036zsk.js +0 -859
  223. package/dist/index-zyazbzcb.js +0 -6
  224. package/dist/{claude-managed-setup-48dwg9bv.js → claude-managed-setup-f5pmsyrp.js} +3 -3
@@ -1,365 +0,0 @@
1
- import {
2
- require_config,
3
- require_protocols
4
- } from "./cli-qa66qaf0.js";
5
- import {
6
- __esm,
7
- __require
8
- } from "./cli-bc05qbss.js";
9
-
10
- // node_modules/@smithy/credential-provider-imds/dist-cjs/index.js
11
- function httpRequest(options) {
12
- return new Promise((resolve, reject) => {
13
- const req = node_http.request({
14
- method: "GET",
15
- ...options,
16
- hostname: options.hostname?.replace(/^\[(.+)\]$/, "$1")
17
- });
18
- req.on("error", (err) => {
19
- reject(Object.assign(new config.ProviderError("Unable to connect to instance metadata service"), err));
20
- req.destroy();
21
- });
22
- req.on("timeout", () => {
23
- reject(new config.ProviderError("TimeoutError from instance metadata service"));
24
- req.destroy();
25
- });
26
- req.on("response", (res) => {
27
- const { statusCode = 400 } = res;
28
- if (statusCode < 200 || 300 <= statusCode) {
29
- reject(Object.assign(new config.ProviderError("Error response received from instance metadata service"), { statusCode }));
30
- req.destroy();
31
- }
32
- const chunks = [];
33
- res.on("data", (chunk) => {
34
- chunks.push(chunk);
35
- });
36
- res.on("end", () => {
37
- resolve(Buffer.concat(chunks));
38
- req.destroy();
39
- });
40
- });
41
- req.end();
42
- });
43
- }
44
- var node_url, config, node_http, protocols, isImdsCredentials = (arg) => Boolean(arg) && typeof arg === "object" && typeof arg.AccessKeyId === "string" && typeof arg.SecretAccessKey === "string" && typeof arg.Token === "string" && typeof arg.Expiration === "string", fromImdsCredentials = (creds) => ({
45
- accessKeyId: creds.AccessKeyId,
46
- secretAccessKey: creds.SecretAccessKey,
47
- sessionToken: creds.Token,
48
- expiration: new Date(creds.Expiration),
49
- ...creds.AccountId && { accountId: creds.AccountId }
50
- }), DEFAULT_TIMEOUT = 1000, DEFAULT_MAX_RETRIES = 0, providerConfigFromInit = ({ maxRetries = DEFAULT_MAX_RETRIES, timeout = DEFAULT_TIMEOUT }) => ({ maxRetries, timeout }), retry = (toRetry, maxRetries) => {
51
- let promise = toRetry();
52
- for (let i = 0;i < maxRetries; i++) {
53
- promise = promise.catch(toRetry);
54
- }
55
- return promise;
56
- }, ENV_CMDS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI", ENV_CMDS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI", ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN", fromContainerMetadata = (init = {}) => {
57
- const { timeout, maxRetries } = providerConfigFromInit(init);
58
- return () => retry(async () => {
59
- const requestOptions = await getCmdsUri({ logger: init.logger });
60
- const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));
61
- if (!isImdsCredentials(credsResponse)) {
62
- throw new config.CredentialsProviderError("Invalid response received from instance metadata service.", {
63
- logger: init.logger
64
- });
65
- }
66
- return fromImdsCredentials(credsResponse);
67
- }, maxRetries);
68
- }, requestFromEcsImds = async (timeout, options) => {
69
- if (process.env[ENV_CMDS_AUTH_TOKEN]) {
70
- options.headers = {
71
- ...options.headers,
72
- Authorization: process.env[ENV_CMDS_AUTH_TOKEN]
73
- };
74
- }
75
- const buffer = await httpRequest({
76
- ...options,
77
- timeout
78
- });
79
- return buffer.toString();
80
- }, CMDS_IP = "169.254.170.2", GREENGRASS_HOSTS, GREENGRASS_PROTOCOLS, getCmdsUri = async ({ logger }) => {
81
- if (process.env[ENV_CMDS_RELATIVE_URI]) {
82
- return {
83
- hostname: CMDS_IP,
84
- path: process.env[ENV_CMDS_RELATIVE_URI]
85
- };
86
- }
87
- if (process.env[ENV_CMDS_FULL_URI]) {
88
- const parsed = node_url.parse(process.env[ENV_CMDS_FULL_URI]);
89
- if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) {
90
- throw new config.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, {
91
- tryNextLink: false,
92
- logger
93
- });
94
- }
95
- if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) {
96
- throw new config.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, {
97
- tryNextLink: false,
98
- logger
99
- });
100
- }
101
- return {
102
- ...parsed,
103
- port: parsed.port ? parseInt(parsed.port, 10) : undefined
104
- };
105
- }
106
- throw new config.CredentialsProviderError("The container metadata credential provider cannot be used unless" + ` the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment` + " variable is set", {
107
- tryNextLink: false,
108
- logger
109
- });
110
- }, InstanceMetadataV1FallbackError, $Endpoint = undefined, ENV_ENDPOINT_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT", CONFIG_ENDPOINT_NAME = "ec2_metadata_service_endpoint", ENDPOINT_CONFIG_OPTIONS, EndpointMode, ENV_ENDPOINT_MODE_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE", CONFIG_ENDPOINT_MODE_NAME = "ec2_metadata_service_endpoint_mode", ENDPOINT_MODE_CONFIG_OPTIONS, getInstanceMetadataEndpoint = async () => protocols.parseUrl(await getFromEndpointConfig() || await getFromEndpointModeConfig()), getFromEndpointConfig = async () => config.loadConfig(ENDPOINT_CONFIG_OPTIONS)(), getFromEndpointModeConfig = async () => {
111
- const endpointMode = await config.loadConfig(ENDPOINT_MODE_CONFIG_OPTIONS)();
112
- switch (endpointMode) {
113
- case EndpointMode.IPv4:
114
- return $Endpoint.IPv4;
115
- case EndpointMode.IPv6:
116
- return $Endpoint.IPv6;
117
- default:
118
- throw new Error(`Unsupported endpoint mode: ${endpointMode}.` + ` Select from ${Object.values(EndpointMode)}`);
119
- }
120
- }, STATIC_STABILITY_REFRESH_INTERVAL_SECONDS, STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS, STATIC_STABILITY_DOC_URL = "https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html", getExtendedInstanceMetadataCredentials = (credentials, logger) => {
121
- const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);
122
- const newExpiration = new Date(Date.now() + refreshInterval * 1000);
123
- logger.warn("Attempting credential expiration extension due to a credential service availability issue. A refresh of these " + `credentials will be attempted after ${new Date(newExpiration)}.
124
- For more information, please visit: ` + STATIC_STABILITY_DOC_URL);
125
- const originalExpiration = credentials.originalExpiration ?? credentials.expiration;
126
- return {
127
- ...credentials,
128
- ...originalExpiration ? { originalExpiration } : {},
129
- expiration: newExpiration
130
- };
131
- }, staticStabilityProvider = (provider, options = {}) => {
132
- const logger = options?.logger || console;
133
- let pastCredentials;
134
- return async () => {
135
- let credentials;
136
- try {
137
- credentials = await provider();
138
- if (credentials.expiration && credentials.expiration.getTime() < Date.now()) {
139
- credentials = getExtendedInstanceMetadataCredentials(credentials, logger);
140
- }
141
- } catch (e) {
142
- if (pastCredentials) {
143
- logger.warn("Credential renew failed: ", e);
144
- credentials = getExtendedInstanceMetadataCredentials(pastCredentials, logger);
145
- } else {
146
- throw e;
147
- }
148
- }
149
- pastCredentials = credentials;
150
- return credentials;
151
- };
152
- }, IMDS_PATH = "/latest/meta-data/iam/security-credentials/", IMDS_TOKEN_PATH = "/latest/api/token", AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED", PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled", X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token", fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger }), getInstanceMetadataProvider = (init = {}) => {
153
- let disableFetchToken = false;
154
- const { logger, profile } = init;
155
- const { timeout, maxRetries } = providerConfigFromInit(init);
156
- const getCredentials = async (maxRetries2, options) => {
157
- const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null;
158
- if (isImdsV1Fallback) {
159
- let fallbackBlockedFromProfile = false;
160
- let fallbackBlockedFromProcessEnv = false;
161
- const configValue = await config.loadConfig({
162
- environmentVariableSelector: (env) => {
163
- const envValue = env[AWS_EC2_METADATA_V1_DISABLED];
164
- fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false";
165
- if (envValue === undefined) {
166
- throw new config.CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init.logger });
167
- }
168
- return fallbackBlockedFromProcessEnv;
169
- },
170
- configFileSelector: (profile2) => {
171
- const profileValue = profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED];
172
- fallbackBlockedFromProfile = !!profileValue && profileValue !== "false";
173
- return fallbackBlockedFromProfile;
174
- },
175
- default: false
176
- }, {
177
- profile
178
- })();
179
- if (init.ec2MetadataV1Disabled || configValue) {
180
- const causes = [];
181
- if (init.ec2MetadataV1Disabled)
182
- causes.push("credential provider initialization (runtime option ec2MetadataV1Disabled)");
183
- if (fallbackBlockedFromProfile)
184
- causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`);
185
- if (fallbackBlockedFromProcessEnv)
186
- causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`);
187
- throw new InstanceMetadataV1FallbackError(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join(", ")}].`);
188
- }
189
- }
190
- const imdsProfile = (await retry(async () => {
191
- let profile2;
192
- try {
193
- profile2 = await getProfile(options);
194
- } catch (err) {
195
- if (err.statusCode === 401) {
196
- disableFetchToken = false;
197
- }
198
- throw err;
199
- }
200
- return profile2;
201
- }, maxRetries2)).trim();
202
- return retry(async () => {
203
- let creds;
204
- try {
205
- creds = await getCredentialsFromProfile(imdsProfile, options, init);
206
- } catch (err) {
207
- if (err.statusCode === 401) {
208
- disableFetchToken = false;
209
- }
210
- throw err;
211
- }
212
- return creds;
213
- }, maxRetries2);
214
- };
215
- return async () => {
216
- const endpoint = await getInstanceMetadataEndpoint();
217
- if (disableFetchToken) {
218
- logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (no token fetch)");
219
- return getCredentials(maxRetries, { ...endpoint, timeout });
220
- } else {
221
- let token;
222
- try {
223
- token = (await getMetadataToken({ ...endpoint, timeout })).toString();
224
- } catch (error) {
225
- if (error?.statusCode === 400) {
226
- throw Object.assign(error, {
227
- message: "EC2 Metadata token request returned error"
228
- });
229
- } else if (error.message === "TimeoutError" || [403, 404, 405].includes(error.statusCode)) {
230
- disableFetchToken = true;
231
- }
232
- logger?.debug("AWS SDK Instance Metadata", "using v1 fallback (initial)");
233
- return getCredentials(maxRetries, { ...endpoint, timeout });
234
- }
235
- return getCredentials(maxRetries, {
236
- ...endpoint,
237
- headers: {
238
- [X_AWS_EC2_METADATA_TOKEN]: token
239
- },
240
- timeout
241
- });
242
- }
243
- };
244
- }, getMetadataToken = async (options) => httpRequest({
245
- ...options,
246
- path: IMDS_TOKEN_PATH,
247
- method: "PUT",
248
- headers: {
249
- "x-aws-ec2-metadata-token-ttl-seconds": "21600"
250
- }
251
- }), getProfile = async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString(), getCredentialsFromProfile = async (profile, options, init) => {
252
- const credentialsResponse = JSON.parse((await httpRequest({
253
- ...options,
254
- path: IMDS_PATH + profile
255
- })).toString());
256
- if (!isImdsCredentials(credentialsResponse)) {
257
- throw new config.CredentialsProviderError("Invalid response received from instance metadata service.", {
258
- logger: init.logger
259
- });
260
- }
261
- return fromImdsCredentials(credentialsResponse);
262
- }, $DEFAULT_MAX_RETRIES, $DEFAULT_TIMEOUT, $ENV_CMDS_AUTH_TOKEN, $ENV_CMDS_FULL_URI, $ENV_CMDS_RELATIVE_URI, $fromContainerMetadata, $fromInstanceMetadata, $getInstanceMetadataEndpoint, $httpRequest, $providerConfigFromInit;
263
- var init_dist_cjs = __esm(() => {
264
- node_url = __require("node:url");
265
- config = require_config();
266
- node_http = __require("node:http");
267
- protocols = require_protocols();
268
- GREENGRASS_HOSTS = {
269
- localhost: true,
270
- "127.0.0.1": true
271
- };
272
- GREENGRASS_PROTOCOLS = {
273
- "http:": true,
274
- "https:": true
275
- };
276
- InstanceMetadataV1FallbackError = class InstanceMetadataV1FallbackError extends config.CredentialsProviderError {
277
- tryNextLink;
278
- name = "InstanceMetadataV1FallbackError";
279
- constructor(message, tryNextLink = true) {
280
- super(message, tryNextLink);
281
- this.tryNextLink = tryNextLink;
282
- Object.setPrototypeOf(this, InstanceMetadataV1FallbackError.prototype);
283
- }
284
- };
285
- (function(Endpoint) {
286
- Endpoint["IPv4"] = "http://169.254.169.254";
287
- Endpoint["IPv6"] = "http://[fd00:ec2::254]";
288
- })($Endpoint || ($Endpoint = {}));
289
- ENDPOINT_CONFIG_OPTIONS = {
290
- environmentVariableSelector: (env) => env[ENV_ENDPOINT_NAME],
291
- configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME],
292
- default: undefined
293
- };
294
- (function(EndpointMode2) {
295
- EndpointMode2["IPv4"] = "IPv4";
296
- EndpointMode2["IPv6"] = "IPv6";
297
- })(EndpointMode || (EndpointMode = {}));
298
- ENDPOINT_MODE_CONFIG_OPTIONS = {
299
- environmentVariableSelector: (env) => env[ENV_ENDPOINT_MODE_NAME],
300
- configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME],
301
- default: EndpointMode.IPv4
302
- };
303
- STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60;
304
- STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60;
305
- $DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES;
306
- $DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;
307
- $ENV_CMDS_AUTH_TOKEN = ENV_CMDS_AUTH_TOKEN;
308
- $ENV_CMDS_FULL_URI = ENV_CMDS_FULL_URI;
309
- $ENV_CMDS_RELATIVE_URI = ENV_CMDS_RELATIVE_URI;
310
- $fromContainerMetadata = fromContainerMetadata;
311
- $fromInstanceMetadata = fromInstanceMetadata;
312
- $getInstanceMetadataEndpoint = getInstanceMetadataEndpoint;
313
- $httpRequest = httpRequest;
314
- $providerConfigFromInit = providerConfigFromInit;
315
- });
316
- init_dist_cjs();
317
-
318
- export {
319
- $DEFAULT_MAX_RETRIES as DEFAULT_MAX_RETRIES,
320
- $DEFAULT_TIMEOUT as DEFAULT_TIMEOUT,
321
- $ENV_CMDS_AUTH_TOKEN as ENV_CMDS_AUTH_TOKEN,
322
- $ENV_CMDS_FULL_URI as ENV_CMDS_FULL_URI,
323
- $ENV_CMDS_RELATIVE_URI as ENV_CMDS_RELATIVE_URI,
324
- $Endpoint as Endpoint,
325
- $fromContainerMetadata as fromContainerMetadata,
326
- $fromInstanceMetadata as fromInstanceMetadata,
327
- $getInstanceMetadataEndpoint as getInstanceMetadataEndpoint,
328
- $httpRequest as httpRequest,
329
- $providerConfigFromInit as providerConfigFromInit
330
- };
331
- export default {
332
- get DEFAULT_MAX_RETRIES() {
333
- return $DEFAULT_MAX_RETRIES;
334
- },
335
- get DEFAULT_TIMEOUT() {
336
- return $DEFAULT_TIMEOUT;
337
- },
338
- get ENV_CMDS_AUTH_TOKEN() {
339
- return $ENV_CMDS_AUTH_TOKEN;
340
- },
341
- get ENV_CMDS_FULL_URI() {
342
- return $ENV_CMDS_FULL_URI;
343
- },
344
- get ENV_CMDS_RELATIVE_URI() {
345
- return $ENV_CMDS_RELATIVE_URI;
346
- },
347
- get Endpoint() {
348
- return $Endpoint;
349
- },
350
- get fromContainerMetadata() {
351
- return $fromContainerMetadata;
352
- },
353
- get fromInstanceMetadata() {
354
- return $fromInstanceMetadata;
355
- },
356
- get getInstanceMetadataEndpoint() {
357
- return $getInstanceMetadataEndpoint;
358
- },
359
- get httpRequest() {
360
- return $httpRequest;
361
- },
362
- get providerConfigFromInit() {
363
- return $providerConfigFromInit;
364
- }
365
- };
@@ -1,7 +0,0 @@
1
- import {
2
- require_dist_cjs
3
- } from "./cli-jyetr64j.js";
4
- import"./cli-tcvj7j2r.js";
5
- import"./cli-qa66qaf0.js";
6
- import"./cli-bc05qbss.js";
7
- export default require_dist_cjs();