replicas-mcp 0.2.3 → 0.2.4

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.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-MO4EEYFW.js";
2
+ import "./chunk-Q6JESX2O.js";
3
3
 
4
4
  // ../node_modules/.bun/bowser@2.14.1/node_modules/bowser/src/constants.js
5
5
  var BROWSER_ALIASES_MAP = {
@@ -1383,7 +1383,7 @@ var HttpProtocol = class extends SerdeContext {
1383
1383
  });
1384
1384
  }
1385
1385
  async loadEventStreamCapability() {
1386
- const { EventStreamSerde } = await import("./event-streams-3PLTDEYP.js");
1386
+ const { EventStreamSerde } = await import("./event-streams-D47TMH7D.js");
1387
1387
  return new EventStreamSerde({
1388
1388
  marshaller: this.getEventStreamMarshaller(),
1389
1389
  serializer: this.serializer,
@@ -3,7 +3,7 @@ import {
3
3
  ProtocolLib,
4
4
  SerdeContextConfig,
5
5
  UnionSerde
6
- } from "./chunk-67ORAF4B.js";
6
+ } from "./chunk-KEOQGGM5.js";
7
7
  import {
8
8
  HttpBindingProtocol,
9
9
  HttpInterceptingShapeDeserializer,
@@ -11,7 +11,7 @@ import {
11
11
  NormalizedSchema,
12
12
  collectBody,
13
13
  determineTimestampFormat
14
- } from "./chunk-2KQN26CJ.js";
14
+ } from "./chunk-3X3IL2A6.js";
15
15
  import {
16
16
  LazyJsonString,
17
17
  NumericValue,
@@ -3,7 +3,7 @@ import {
3
3
  decorateServiceException,
4
4
  normalizeProvider as normalizeProvider2,
5
5
  setCredentialFeature
6
- } from "./chunk-2TPRCPOE.js";
6
+ } from "./chunk-NWBPSHNL.js";
7
7
  import {
8
8
  HttpRequest,
9
9
  HttpResponse,
@@ -14,7 +14,7 @@ import {
14
14
  getSmithyContext,
15
15
  normalizeProvider,
16
16
  toEndpointV1
17
- } from "./chunk-2KQN26CJ.js";
17
+ } from "./chunk-3X3IL2A6.js";
18
18
  import {
19
19
  fromHex,
20
20
  fromUtf8,
@@ -14,7 +14,7 @@ import {
14
14
  loadConfig,
15
15
  normalizeProvider,
16
16
  toEndpointV1
17
- } from "./chunk-2KQN26CJ.js";
17
+ } from "./chunk-3X3IL2A6.js";
18
18
  import {
19
19
  parseRfc7231DateTime,
20
20
  v4
@@ -12,7 +12,11 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
12
12
  throw Error('Dynamic require of "' + x + '" is not supported');
13
13
  });
14
14
  var __commonJS = (cb, mod) => function __require2() {
15
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
15
+ try {
16
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
17
+ } catch (e) {
18
+ throw mod = 0, e;
19
+ }
16
20
  };
17
21
  var __copyProps = (to, from, except, desc) => {
18
22
  if (from && typeof from === "object" || typeof from === "function") {
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  HttpResponse,
4
4
  buildQueryString
5
- } from "./chunk-2KQN26CJ.js";
5
+ } from "./chunk-3X3IL2A6.js";
6
6
 
7
7
  // ../node_modules/.bun/@smithy+node-http-handler@4.7.7/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js
8
8
  function buildAbortError(abortSignal) {
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  NodeHttpHandler
4
- } from "./chunk-YPGSID6T.js";
4
+ } from "./chunk-QIOBV22I.js";
5
5
  import {
6
6
  setCredentialFeature
7
- } from "./chunk-2TPRCPOE.js";
7
+ } from "./chunk-NWBPSHNL.js";
8
8
  import {
9
9
  CredentialsProviderError,
10
10
  HttpRequest
11
- } from "./chunk-2KQN26CJ.js";
11
+ } from "./chunk-3X3IL2A6.js";
12
12
  import {
13
13
  parseRfc3339DateTime,
14
14
  sdkStreamMixin
15
15
  } from "./chunk-C6IOMGXW.js";
16
- import "./chunk-MO4EEYFW.js";
16
+ import "./chunk-Q6JESX2O.js";
17
17
 
18
18
  // ../node_modules/.bun/@aws-sdk+credential-provider-http@3.972.46/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js
19
19
  import fs from "fs/promises";
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  setCredentialFeature
4
- } from "./chunk-2TPRCPOE.js";
4
+ } from "./chunk-NWBPSHNL.js";
5
5
  import {
6
6
  CredentialsProviderError,
7
7
  externalDataInterceptor
8
- } from "./chunk-2KQN26CJ.js";
8
+ } from "./chunk-3X3IL2A6.js";
9
9
  import "./chunk-C6IOMGXW.js";
10
- import "./chunk-MO4EEYFW.js";
10
+ import "./chunk-Q6JESX2O.js";
11
11
 
12
12
  // ../node_modules/.bun/@aws-sdk+credential-provider-web-identity@3.972.49/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js
13
13
  import { readFileSync } from "fs";
@@ -18,7 +18,7 @@ var fromWebToken = (init) => async (awsIdentityProperties) => {
18
18
  const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;
19
19
  let { roleAssumerWithWebIdentity } = init;
20
20
  if (!roleAssumerWithWebIdentity) {
21
- const { getDefaultRoleAssumerWithWebIdentity } = await import("./sts-5SKYP3PH.js");
21
+ const { getDefaultRoleAssumerWithWebIdentity } = await import("./sts-WSDR725H.js");
22
22
  roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({
23
23
  ...init.clientConfig,
24
24
  credentialProviderLogger: init.logger,
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  setCredentialFeature
4
- } from "./chunk-2TPRCPOE.js";
4
+ } from "./chunk-NWBPSHNL.js";
5
5
  import {
6
6
  CredentialsProviderError
7
- } from "./chunk-2KQN26CJ.js";
7
+ } from "./chunk-3X3IL2A6.js";
8
8
  import "./chunk-C6IOMGXW.js";
9
- import "./chunk-MO4EEYFW.js";
9
+ import "./chunk-Q6JESX2O.js";
10
10
 
11
11
  // ../node_modules/.bun/@aws-sdk+credential-provider-env@3.972.44/node_modules/@aws-sdk/credential-provider-env/dist-es/fromEnv.js
12
12
  var ENV_KEY = "AWS_ACCESS_KEY_ID";
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  setCredentialFeature
4
- } from "./chunk-2TPRCPOE.js";
4
+ } from "./chunk-NWBPSHNL.js";
5
5
  import {
6
6
  CredentialsProviderError,
7
7
  externalDataInterceptor,
8
8
  getProfileName,
9
9
  parseKnownFiles
10
- } from "./chunk-2KQN26CJ.js";
10
+ } from "./chunk-3X3IL2A6.js";
11
11
  import "./chunk-C6IOMGXW.js";
12
- import "./chunk-MO4EEYFW.js";
12
+ import "./chunk-Q6JESX2O.js";
13
13
 
14
14
  // ../node_modules/.bun/@aws-sdk+credential-provider-process@3.972.44/node_modules/@aws-sdk/credential-provider-process/dist-es/resolveProcessCredentials.js
15
15
  import { exec } from "child_process";
@@ -4,9 +4,9 @@ import {
4
4
  ProviderError,
5
5
  loadConfig,
6
6
  parseUrl
7
- } from "./chunk-2KQN26CJ.js";
7
+ } from "./chunk-3X3IL2A6.js";
8
8
  import "./chunk-C6IOMGXW.js";
9
- import "./chunk-MO4EEYFW.js";
9
+ import "./chunk-Q6JESX2O.js";
10
10
 
11
11
  // ../node_modules/.bun/@smithy+credential-provider-imds@4.3.8/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js
12
12
  var isImdsCredentials = (arg) => Boolean(arg) && typeof arg === "object" && typeof arg.AccessKeyId === "string" && typeof arg.SecretAccessKey === "string" && typeof arg.Token === "string" && typeof arg.Expiration === "string";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  setCredentialFeature
4
- } from "./chunk-2TPRCPOE.js";
4
+ } from "./chunk-NWBPSHNL.js";
5
5
  import {
6
6
  CredentialsProviderError,
7
7
  TokenProviderError,
@@ -10,9 +10,9 @@ import {
10
10
  getSSOTokenFromFile,
11
11
  loadSsoSessionData,
12
12
  parseKnownFiles
13
- } from "./chunk-2KQN26CJ.js";
13
+ } from "./chunk-3X3IL2A6.js";
14
14
  import "./chunk-C6IOMGXW.js";
15
- import "./chunk-MO4EEYFW.js";
15
+ import "./chunk-Q6JESX2O.js";
16
16
 
17
17
  // ../node_modules/.bun/@aws-sdk+credential-provider-sso@3.972.49/node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js
18
18
  var isSsoProfile = (arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string");
@@ -23,7 +23,7 @@ var REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the
23
23
 
24
24
  // ../node_modules/.bun/@aws-sdk+token-providers@3.1063.0/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js
25
25
  var getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {
26
- const { SSOOIDCClient } = await import("./sso-oidc-GJQTR2P3.js");
26
+ const { SSOOIDCClient } = await import("./sso-oidc-7AKRONOU.js");
27
27
  const coalesce = (prop) => init.clientConfig?.[prop] ?? init.parentClientConfig?.[prop] ?? callerClientConfig?.[prop];
28
28
  const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {
29
29
  region: ssoRegion ?? init.clientConfig?.region,
@@ -35,7 +35,7 @@ var getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {
35
35
 
36
36
  // ../node_modules/.bun/@aws-sdk+token-providers@3.1063.0/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js
37
37
  var getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}, callerClientConfig) => {
38
- const { CreateTokenCommand } = await import("./sso-oidc-GJQTR2P3.js");
38
+ const { CreateTokenCommand } = await import("./sso-oidc-7AKRONOU.js");
39
39
  const ssoOidcClient = await getSsoOidcClient(ssoRegion, init, callerClientConfig);
40
40
  return ssoOidcClient.send(new CreateTokenCommand({
41
41
  clientId: ssoToken.clientId,
@@ -180,7 +180,7 @@ var resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoR
180
180
  });
181
181
  }
182
182
  const { accessToken } = token;
183
- const { SSOClient, GetRoleCredentialsCommand } = await import("./loadSso-EFZHEVVK.js");
183
+ const { SSOClient, GetRoleCredentialsCommand } = await import("./loadSso-4NJATGLO.js");
184
184
  const sso = ssoClient || new SSOClient(Object.assign({}, clientConfig ?? {}, {
185
185
  logger: clientConfig?.logger ?? callerClientConfig?.logger ?? parentClientConfig?.logger,
186
186
  region: clientConfig?.region ?? ssoRegion,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  setCredentialFeature
4
- } from "./chunk-2TPRCPOE.js";
4
+ } from "./chunk-NWBPSHNL.js";
5
5
  import {
6
6
  CredentialsProviderError,
7
7
  HttpRequest,
@@ -9,27 +9,27 @@ import {
9
9
  getProfileName,
10
10
  parseKnownFiles,
11
11
  readFile
12
- } from "./chunk-2KQN26CJ.js";
12
+ } from "./chunk-3X3IL2A6.js";
13
13
  import "./chunk-C6IOMGXW.js";
14
- import "./chunk-MO4EEYFW.js";
14
+ import "./chunk-Q6JESX2O.js";
15
15
 
16
16
  // ../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.50/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveCredentialSource.js
17
17
  var resolveCredentialSource = (credentialSource, profileName, logger) => {
18
18
  const sourceProvidersMap = {
19
19
  EcsContainer: async (options) => {
20
- const { fromHttp } = await import("./dist-es-7SO54G6Q.js");
21
- const { fromContainerMetadata } = await import("./dist-es-UUUR3KKD.js");
20
+ const { fromHttp } = await import("./dist-es-3DLRX4SC.js");
21
+ const { fromContainerMetadata } = await import("./dist-es-MAMFGWZS.js");
22
22
  logger?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer");
23
23
  return async () => chain(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);
24
24
  },
25
25
  Ec2InstanceMetadata: async (options) => {
26
26
  logger?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");
27
- const { fromInstanceMetadata } = await import("./dist-es-UUUR3KKD.js");
27
+ const { fromInstanceMetadata } = await import("./dist-es-MAMFGWZS.js");
28
28
  return async () => fromInstanceMetadata(options)().then(setNamedProvider);
29
29
  },
30
30
  Environment: async (options) => {
31
31
  logger?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");
32
- const { fromEnv } = await import("./dist-es-RAHG6NR3.js");
32
+ const { fromEnv } = await import("./dist-es-B6XNMCQ4.js");
33
33
  return async () => fromEnv(options)().then(setNamedProvider);
34
34
  }
35
35
  };
@@ -64,7 +64,7 @@ var resolveAssumeRoleCredentials = async (profileName, profiles, options, caller
64
64
  const profileData = profiles[profileName];
65
65
  const { source_profile, region } = profileData;
66
66
  if (!options.roleAssumer) {
67
- const { getDefaultRoleAssumer } = await import("./sts-5SKYP3PH.js");
67
+ const { getDefaultRoleAssumer } = await import("./sts-WSDR725H.js");
68
68
  options.roleAssumer = getDefaultRoleAssumer({
69
69
  ...options.clientConfig,
70
70
  credentialProviderLogger: options.logger,
@@ -150,7 +150,7 @@ var LoginCredentialsFetcher = class _LoginCredentialsFetcher {
150
150
  return this.profileData.login_session;
151
151
  }
152
152
  async refresh(token) {
153
- const { SigninClient, CreateOAuth2TokenCommand } = await import("./signin-VWN2NRES.js");
153
+ const { SigninClient, CreateOAuth2TokenCommand } = await import("./signin-HB5KQSHQ.js");
154
154
  const { logger, userAgentAppId } = this.callerClientConfig ?? {};
155
155
  const isH2 = (requestHandler2) => {
156
156
  return requestHandler2?.metadata?.handlerProtocol === "h2";
@@ -393,14 +393,14 @@ var resolveLoginCredentials = async (profileName, options, callerClientConfig) =
393
393
 
394
394
  // ../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.50/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProcessCredentials.js
395
395
  var isProcessProfile = (arg) => Boolean(arg) && typeof arg === "object" && typeof arg.credential_process === "string";
396
- var resolveProcessCredentials = async (options, profile) => import("./dist-es-ULKA5ONB.js").then(({ fromProcess }) => fromProcess({
396
+ var resolveProcessCredentials = async (options, profile) => import("./dist-es-KLEKEXIP.js").then(({ fromProcess }) => fromProcess({
397
397
  ...options,
398
398
  profile
399
399
  })().then((creds) => setCredentialFeature(creds, "CREDENTIALS_PROFILE_PROCESS", "v")));
400
400
 
401
401
  // ../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.50/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveSsoCredentials.js
402
402
  var resolveSsoCredentials = async (profile, profileData, options = {}, callerClientConfig) => {
403
- const { fromSSO } = await import("./dist-es-7BMXPGZZ.js");
403
+ const { fromSSO } = await import("./dist-es-V7ZJXG3C.js");
404
404
  return fromSSO({
405
405
  profile,
406
406
  logger: options.logger,
@@ -434,7 +434,7 @@ var resolveStaticCredentials = async (profile, options) => {
434
434
 
435
435
  // ../node_modules/.bun/@aws-sdk+credential-provider-ini@3.972.50/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveWebIdentityCredentials.js
436
436
  var isWebIdentityProfile = (arg) => Boolean(arg) && typeof arg === "object" && typeof arg.web_identity_token_file === "string" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1;
437
- var resolveWebIdentityCredentials = async (profile, options, callerClientConfig) => import("./dist-es-IW3K6GSR.js").then(({ fromTokenFile }) => fromTokenFile({
437
+ var resolveWebIdentityCredentials = async (profile, options, callerClientConfig) => import("./dist-es-7DMTLQRJ.js").then(({ fromTokenFile }) => fromTokenFile({
438
438
  webIdentityTokenFile: profile.web_identity_token_file,
439
439
  roleArn: profile.role_arn,
440
440
  roleSessionName: profile.role_session_name,
@@ -5,7 +5,7 @@ import {
5
5
  toHex,
6
6
  toUtf8
7
7
  } from "./chunk-C6IOMGXW.js";
8
- import "./chunk-MO4EEYFW.js";
8
+ import "./chunk-Q6JESX2O.js";
9
9
 
10
10
  // ../node_modules/.bun/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
11
11
  function __awaiter(thisArg, _arguments, P, generator) {
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  __commonJS,
4
4
  __require,
5
5
  __toESM
6
- } from "./chunk-MO4EEYFW.js";
6
+ } from "./chunk-Q6JESX2O.js";
7
7
 
8
8
  // ../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/identity.js
9
9
  var require_identity = __commonJS({
@@ -7343,6 +7343,22 @@ function isRecord(value) {
7343
7343
  }
7344
7344
 
7345
7345
  // ../shared/src/event.ts
7346
+ var CLAUDE_PARTIAL_MESSAGE_EVENT_TYPE = "claude-partial-message";
7347
+ function coerceClaudePartialMessagePayload(payload) {
7348
+ const streamId = payload.streamId;
7349
+ if (typeof streamId !== "string" || !streamId) return null;
7350
+ const parentToolUseId = payload.parent_tool_use_id;
7351
+ const text = typeof payload.text === "string" && payload.text ? payload.text : void 0;
7352
+ const thinking = typeof payload.thinking === "string" && payload.thinking ? payload.thinking : void 0;
7353
+ if (!text && !thinking) return null;
7354
+ return {
7355
+ streamId,
7356
+ parent_tool_use_id: typeof parentToolUseId === "string" ? parentToolUseId : null,
7357
+ ...text ? { text } : {},
7358
+ ...thinking ? { thinking } : {},
7359
+ status: payload.status === "completed" ? "completed" : "in_progress"
7360
+ };
7361
+ }
7346
7362
  var USER_MESSAGE_ID_PAYLOAD_KEY = "replicasMessageId";
7347
7363
  var CODEX_ASP_ITEM_ID_PAYLOAD_KEY = "codexAspItemId";
7348
7364
  var CODEX_QUOTA_STATUS_EVENT_TYPE = "codex-quota-status";
@@ -7568,7 +7584,7 @@ replicas computer screenshot /tmp/loaded.png
7568
7584
  \`\`\`
7569
7585
 
7570
7586
  ### Coordinates from screenshots
7571
- The display is 1920\xD71080. Screenshot pixels map 1:1 to click coordinates - if your Read tool shows a button at pixel (520, 700), click \`replicas computer click 520 700\`. **No translation needed.** Modern image-reading models often imagine the screenshot is at a different resolution; trust the \`xdpyinfo\` value (\`replicas computer status\` shows the real size).
7587
+ The display is 1920\xD71080 by default. Screenshot pixels map 1:1 to click coordinates - if your Read tool shows a button at pixel (520, 700), click \`replicas computer click 520 700\`. **No translation needed.** Modern image-reading models often imagine the screenshot is at a different resolution; trust the \`xdpyinfo\` value (\`replicas computer status\` shows the real size).
7572
7588
 
7573
7589
  ### Letting the user watch
7574
7590
  The Desktop tab is already live in the dashboard - the user can open it any time. If you're communicating with the user somewhere else (Slack, PR comment, etc.), grab the URL with \`replicas computer info\` and share it inline so they can watch you work.
@@ -7791,8 +7807,66 @@ var GITHUB_ABILITY = {
7791
7807
  referenceFile: { name: "GITHUB.md", content: REFERENCE3 }
7792
7808
  };
7793
7809
 
7810
+ // ../shared/src/default-skills/replicas-agent/abilities/gitlab.ts
7811
+ var SECTION4 = `### GitLab
7812
+ Workspace repos hosted on GitLab use pre-configured git credentials \u2014 push, pull, and open merge requests with plain \`git\`.
7813
+
7814
+ **Reference:** \`references/GITLAB.md\`
7815
+
7816
+ Use this when:
7817
+ - A repo's remote is on gitlab.com or a self-managed GitLab instance
7818
+ - You need to open or update a merge request`;
7819
+ var REFERENCE4 = `# GitLab Integration
7820
+
7821
+ This guide covers how to work with GitLab-hosted repositories from within your Replicas workspace.
7822
+
7823
+ ## Prerequisites
7824
+
7825
+ Git credentials for the workspace's GitLab hosts are pre-configured in \`~/.git-credentials\` and refreshed automatically. Plain \`git fetch\` / \`git pull\` / \`git push\` over HTTPS work with no additional setup.
7826
+
7827
+ - Never ask the user for a GitLab token or PAT \u2014 credentials are already wired. If a push fails with an authentication error, report it to the user instead of working around it.
7828
+ - There is no \`glab\` CLI in the workspace, and \`gh\` only works for GitHub remotes. Check a repo's host with \`git remote get-url origin\` before choosing the GitHub or GitLab workflow.
7829
+
7830
+ ## Merge Requests
7831
+
7832
+ Create a merge request directly from a push using push options:
7833
+
7834
+ \`\`\`bash
7835
+ git push -o merge_request.create -o merge_request.target=<default-branch> origin HEAD
7836
+ \`\`\`
7837
+
7838
+ Useful options:
7839
+
7840
+ \`\`\`bash
7841
+ -o merge_request.title="Title"
7842
+ -o merge_request.description="Description"
7843
+ -o merge_request.draft # open as draft
7844
+ -o merge_request.remove_source_branch # delete branch on merge
7845
+ \`\`\`
7846
+
7847
+ GitLab prints the MR URL in the push output \u2014 include it in your reply to the user.
7848
+
7849
+ ## GitLab API (advanced)
7850
+
7851
+ For operations with no git equivalent (commenting on MRs, reading pipelines), call the REST API with the workspace credential:
7852
+
7853
+ \`\`\`bash
7854
+ TOKEN=$(grep -m1 '://oauth2:' ~/.git-credentials | sed -E 's#https://oauth2:([^@]+)@.*#\\1#')
7855
+ curl -s -H "Authorization: Bearer $TOKEN" "https://gitlab.com/api/v4/projects/<url-encoded-path>/merge_requests"
7856
+ \`\`\`
7857
+
7858
+ Use the repo's own host in the API base URL for self-managed instances.
7859
+ `;
7860
+ var GITLAB_ABILITY = {
7861
+ label: "GitLab",
7862
+ description: "Pre-configured git credentials for GitLab repos; merge requests via push options.",
7863
+ bullet: "- Interacting with GitLab (pushing to GitLab repos, opening merge requests)",
7864
+ section: SECTION4,
7865
+ referenceFile: { name: "GITLAB.md", content: REFERENCE4 }
7866
+ };
7867
+
7794
7868
  // ../shared/src/default-skills/replicas-agent/abilities/google.ts
7795
- var SECTION4 = `### Google Workspace (Docs, Sheets, Forms, Drive)
7869
+ var SECTION5 = `### Google Workspace (Docs, Sheets, Forms, Drive)
7796
7870
  Create and edit Google Docs, Sheets, and Forms via the Replicas gateway. Files are owned by Replicas \u2014 the integration cannot access pre-existing Google content created outside of it.
7797
7871
 
7798
7872
  **Reference:** \`references/GOOGLE.md\`
@@ -7801,7 +7875,7 @@ Use this when:
7801
7875
  - You need to create or edit a Google Doc, Sheet, or Form
7802
7876
  - You need to share, rename, move, or delete a Replicas-created Google file
7803
7877
  - You need to read responses from a Replicas-created Google Form`;
7804
- var REFERENCE4 = `# Google Workspace (Docs, Sheets, Forms, Drive)
7878
+ var REFERENCE5 = `# Google Workspace (Docs, Sheets, Forms, Drive)
7805
7879
 
7806
7880
  This guide covers how to create and edit Google Docs, Sheets, and Forms \u2014 plus do basic Drive file operations \u2014 from inside a Replicas workspace, using the monolith as a gateway to Google's APIs.
7807
7881
 
@@ -8062,12 +8136,12 @@ var GOOGLE_ABILITY = {
8062
8136
  label: "Google Workspace",
8063
8137
  description: "Create / edit Docs, Sheets, Forms, and Drive files via the Replicas gateway.",
8064
8138
  bullet: "- Interacting with Google Workspace (creating and editing Docs, Sheets, and Forms, sharing files, reading form responses, etc.)",
8065
- section: SECTION4,
8066
- referenceFile: { name: "GOOGLE.md", content: REFERENCE4 }
8139
+ section: SECTION5,
8140
+ referenceFile: { name: "GOOGLE.md", content: REFERENCE5 }
8067
8141
  };
8068
8142
 
8069
8143
  // ../shared/src/default-skills/replicas-agent/abilities/linear.ts
8070
- var SECTION5 = `### Linear
8144
+ var SECTION6 = `### Linear
8071
8145
  Fetch issues, update state, add comments, and search via the Linear GraphQL API.
8072
8146
 
8073
8147
  **Reference:** \`references/LINEAR.md\`
@@ -8076,7 +8150,7 @@ Use this when:
8076
8150
  - You encounter a Linear issue link and need to understand the task
8077
8151
  - You need to update an issue's state (e.g. mark as done)
8078
8152
  - You need to comment on or search for Linear issues`;
8079
- var REFERENCE5 = `# Linear Integration
8153
+ var REFERENCE6 = `# Linear Integration
8080
8154
 
8081
8155
  This guide covers how to interact with Linear from within your Replicas workspace.
8082
8156
 
@@ -8151,12 +8225,12 @@ var LINEAR_ABILITY = {
8151
8225
  label: "Linear",
8152
8226
  description: "Fetch issues, post comments, update states via the Linear GraphQL API.",
8153
8227
  bullet: "- Interacting with Linear (fetching issues, updating state, commenting, etc.)",
8154
- section: SECTION5,
8155
- referenceFile: { name: "LINEAR.md", content: REFERENCE5 }
8228
+ section: SECTION6,
8229
+ referenceFile: { name: "LINEAR.md", content: REFERENCE6 }
8156
8230
  };
8157
8231
 
8158
8232
  // ../shared/src/default-skills/replicas-agent/abilities/media.ts
8159
- var SECTION6 = `### Media
8233
+ var SECTION7 = `### Media
8160
8234
  Share screenshots, screen recordings, generated diagrams, and audio clips inline in the Replicas chat and natively embedded in external messages.
8161
8235
 
8162
8236
  **Reference:** \`references/MEDIA.md\`
@@ -8165,7 +8239,7 @@ Use this when:
8165
8239
  - You produce a screenshot, recording, generated image, or audio clip the user should see
8166
8240
  - You record video output (browser automation, screen capture) \u2014 including the recommended aspect ratio and FPS
8167
8241
  - You need to embed media in a Slack/Linear/GitHub message AND keep a referenceable copy in the Replicas dashboard`;
8168
- var REFERENCE6 = `# Media (Screenshots, Recordings, Audio)
8242
+ var REFERENCE7 = `# Media (Screenshots, Recordings, Audio)
8169
8243
 
8170
8244
  This guide covers how to share screenshots, screen recordings, generated diagrams, and audio clips \u2014 both inline in the Replicas chat and natively embedded in external surfaces (Slack, Linear, GitHub).
8171
8245
 
@@ -8416,12 +8490,12 @@ var MEDIA_ABILITY = {
8416
8490
  label: "Media",
8417
8491
  description: "Share screenshots, recordings, generated images, and audio clips.",
8418
8492
  bullet: "- Producing or showing the user any media \u2014 screenshots, screen recordings, generated images or diagrams, audio clips \u2014 including in your Replicas chat reply, PR descriptions/comments, and other external platforms",
8419
- section: SECTION6,
8420
- referenceFile: { name: "MEDIA.md", content: REFERENCE6 }
8493
+ section: SECTION7,
8494
+ referenceFile: { name: "MEDIA.md", content: REFERENCE7 }
8421
8495
  };
8422
8496
 
8423
8497
  // ../shared/src/default-skills/replicas-agent/abilities/previews.ts
8424
- var SECTION7 = `### Previews
8498
+ var SECTION8 = `### Previews
8425
8499
  Expose locally running services (web apps, APIs, databases) as public preview URLs so humans can interact with them directly.
8426
8500
 
8427
8501
  **Reference:** \`references/PREVIEWS.md\`
@@ -8430,7 +8504,7 @@ Use this when:
8430
8504
  - You need to start a service that a human should view or interact with
8431
8505
  - The task involves UI work that benefits from human review
8432
8506
  - You are verifying frontend/backend integrations visually`;
8433
- var REFERENCE7 = `# Preview URLs
8507
+ var REFERENCE8 = `# Preview URLs
8434
8508
 
8435
8509
  When you run services on ports \u2014 such as a web app, API server, or database \u2014 humans may want to interact with them directly. You can expose your locally running services as public preview URLs.
8436
8510
 
@@ -8512,12 +8586,12 @@ var PREVIEWS_ABILITY = {
8512
8586
  label: "Previews",
8513
8587
  description: "Expose locally running services on public preview URLs for humans.",
8514
8588
  bullet: "- Creating preview URLs for locally running services",
8515
- section: SECTION7,
8516
- referenceFile: { name: "PREVIEWS.md", content: REFERENCE7 }
8589
+ section: SECTION8,
8590
+ referenceFile: { name: "PREVIEWS.md", content: REFERENCE8 }
8517
8591
  };
8518
8592
 
8519
8593
  // ../shared/src/default-skills/replicas-agent/abilities/replicas.ts
8520
- var SECTION8 = `### Replicas (in-workspace CLI)
8594
+ var SECTION9 = `### Replicas (in-workspace CLI)
8521
8595
  Take action *with* Replicas itself \u2014 manage automations, environments (variables, files), repos, and \`replicas.json\` config \u2014 using the pre-installed, pre-authenticated \`replicas\` CLI.
8522
8596
 
8523
8597
  **Reference:** \`references/REPLICAS.md\`
@@ -8527,7 +8601,7 @@ Use this when:
8527
8601
  - The user asks you to manage environments, environment variables, or environment files
8528
8602
  - The user asks "what envs / repos / automations do I have?"
8529
8603
  - The user asks you to scaffold a \`replicas.json\` / \`replicas.yaml\` in a repo`;
8530
- var REFERENCE8 = `# Replicas (in-workspace CLI)
8604
+ var REFERENCE9 = `# Replicas (in-workspace CLI)
8531
8605
 
8532
8606
  This guide covers how to take action *with* Replicas itself from inside a Replicas workspace \u2014 managing automations, environments (and their variables/files), repos, previews, and the user's \`replicas.json\` config \u2014 using the pre-installed \`replicas\` CLI.
8533
8607
 
@@ -8721,13 +8795,13 @@ var REPLICAS_ABILITY = {
8721
8795
  description: "Teach the agent about Replicas itself \u2014 automations, environments, the in-workspace CLI.",
8722
8796
  // No bullet — help_instructions covers the `replicas` CLI surface in detail.
8723
8797
  bullet: "",
8724
- section: SECTION8,
8725
- referenceFile: { name: "REPLICAS.md", content: REFERENCE8 },
8798
+ section: SECTION9,
8799
+ referenceFile: { name: "REPLICAS.md", content: REFERENCE9 },
8726
8800
  locked: true
8727
8801
  };
8728
8802
 
8729
8803
  // ../shared/src/default-skills/replicas-agent/abilities/slack.ts
8730
- var SECTION9 = `### Slack
8804
+ var SECTION10 = `### Slack
8731
8805
  Send messages, read threads, search conversations, and upload files via the Slack Web API.
8732
8806
 
8733
8807
  **Reference:** \`references/SLACK.md\`
@@ -8737,7 +8811,7 @@ Use this when:
8737
8811
  - You need to read or fetch a Slack conversation
8738
8812
  - You encounter a Slack message link and need to retrieve its content
8739
8813
  - The task asks you to notify, update, or communicate via Slack`;
8740
- var REFERENCE9 = `# Slack Integration
8814
+ var REFERENCE10 = `# Slack Integration
8741
8815
 
8742
8816
  This guide covers how to interact with Slack from within your Replicas workspace.
8743
8817
 
@@ -8838,8 +8912,8 @@ var SLACK_ABILITY = {
8838
8912
  label: "Slack",
8839
8913
  description: "Send messages, read threads, search conversations, upload files.",
8840
8914
  bullet: "- Interacting with Slack (sending messages, reading threads, etc.)",
8841
- section: SECTION9,
8842
- referenceFile: { name: "SLACK.md", content: REFERENCE9 }
8915
+ section: SECTION10,
8916
+ referenceFile: { name: "SLACK.md", content: REFERENCE10 }
8843
8917
  };
8844
8918
 
8845
8919
  // ../shared/src/default-skills/replicas-agent/registry.ts
@@ -8848,6 +8922,7 @@ var REPLICAS_AGENT_ABILITY_REGISTRY = {
8848
8922
  computer: COMPUTER_ABILITY,
8849
8923
  docker: DOCKER_ABILITY,
8850
8924
  github: GITHUB_ABILITY,
8925
+ gitlab: GITLAB_ABILITY,
8851
8926
  google: GOOGLE_ABILITY,
8852
8927
  linear: LINEAR_ABILITY,
8853
8928
  media: MEDIA_ABILITY,
@@ -8881,28 +8956,20 @@ var HOOK_EXEC_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
8881
8956
  // ../shared/src/engine/types.ts
8882
8957
  var CLAUDE_OPUS_1M_MODEL = "opus[1m]";
8883
8958
  var LEGACY_CLAUDE_OPUS_1M_MODEL = "opus-1m";
8884
- var CLAUDE_FABLE_5_MODEL = "claude-fable-5";
8885
8959
  var DEFAULT_CODEX_MODEL = "gpt-5.5";
8886
8960
  var MODEL_LABELS = {
8887
8961
  sonnet: "Sonnet 4.5",
8888
8962
  opus: "Opus 4.8",
8889
8963
  [CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
8890
8964
  [LEGACY_CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
8891
- [CLAUDE_FABLE_5_MODEL]: "Fable 5",
8892
8965
  haiku: "Haiku 4.5",
8893
8966
  [DEFAULT_CODEX_MODEL]: "GPT-5.5",
8894
8967
  "gpt-5.4": "GPT-5.4",
8895
8968
  "gpt-5.4-mini": "GPT-5.4 Mini",
8896
8969
  "gpt-5.3-codex": "GPT-5.3 Codex",
8897
- "gpt-5.3-codex-spark": "GPT-5.3 Codex Spark",
8898
- "gpt-5.2-codex": "GPT-5.2 Codex",
8899
- "gpt-5.2": "GPT-5.2",
8900
- "gpt-5.1-codex-max": "GPT-5.1 Codex Max",
8901
- "gpt-5.1-codex": "GPT-5.1 Codex",
8902
- "gpt-5.1": "GPT-5.1",
8903
- "gpt-5-codex": "GPT-5 Codex",
8904
- "gpt-5": "GPT-5"
8970
+ "gpt-5.2": "GPT-5.2"
8905
8971
  };
8972
+ var MAX_CANVAS_FILE_BYTES = 5 * 1024 * 1024;
8906
8973
 
8907
8974
  // ../shared/src/routes/workspaces.ts
8908
8975
  var WORKSPACE_FILE_UPLOAD_MAX_SIZE_BYTES = 20 * 1024 * 1024;
@@ -9393,6 +9460,8 @@ function parseClaudeEvents(events, parentToolUseId) {
9393
9460
  });
9394
9461
  const toolCallMap = /* @__PURE__ */ new Map();
9395
9462
  const taskMessageMap = /* @__PURE__ */ new Map();
9463
+ const partialIndexes = /* @__PURE__ */ new Map();
9464
+ const completedPartialStreamIds = /* @__PURE__ */ new Set();
9396
9465
  const taskAccumulator = new TaskAccumulator();
9397
9466
  const taskSnapshot = () => taskAccumulator.getTasks().map((task) => ({
9398
9467
  text: task.subject,
@@ -9400,6 +9469,34 @@ function parseClaudeEvents(events, parentToolUseId) {
9400
9469
  itemStatus: task.status
9401
9470
  }));
9402
9471
  filteredEvents.forEach((event) => {
9472
+ if (event.type === CLAUDE_PARTIAL_MESSAGE_EVENT_TYPE) {
9473
+ const payload = coerceClaudePartialMessagePayload(event.payload);
9474
+ if (!payload) return;
9475
+ const existing = partialIndexes.get(payload.streamId) ?? {};
9476
+ if (payload.thinking) {
9477
+ const reasoningMessage = {
9478
+ id: `reasoning-partial:${payload.streamId}`,
9479
+ type: "reasoning",
9480
+ content: payload.thinking,
9481
+ status: payload.status,
9482
+ timestamp: event.timestamp
9483
+ };
9484
+ if (existing.reasoning !== void 0) messages[existing.reasoning] = reasoningMessage;
9485
+ else existing.reasoning = messages.push(reasoningMessage) - 1;
9486
+ }
9487
+ if (payload.text) {
9488
+ const agentMessage = {
9489
+ id: `agent-partial:${payload.streamId}`,
9490
+ type: "agent",
9491
+ content: payload.text,
9492
+ timestamp: event.timestamp
9493
+ };
9494
+ if (existing.agent !== void 0) messages[existing.agent] = agentMessage;
9495
+ else existing.agent = messages.push(agentMessage) - 1;
9496
+ }
9497
+ partialIndexes.set(payload.streamId, existing);
9498
+ return;
9499
+ }
9403
9500
  if (event.type === "claude-user") {
9404
9501
  const content = normalizeContentBlocks(event.payload.message?.content);
9405
9502
  const toolResult = content.find((c) => c.type === "tool_result");
@@ -9435,6 +9532,10 @@ function parseClaudeEvents(events, parentToolUseId) {
9435
9532
  }
9436
9533
  }
9437
9534
  if (event.type === "claude-assistant") {
9535
+ const messageId = event.payload.message?.id;
9536
+ if (typeof messageId === "string" && messageId) {
9537
+ completedPartialStreamIds.add(messageId);
9538
+ }
9438
9539
  const contentBlocks = normalizeContentBlocks(event.payload.message?.content);
9439
9540
  contentBlocks.forEach((block) => {
9440
9541
  if (block.type === "text" && block.text) {
@@ -9724,7 +9825,11 @@ function parseClaudeEvents(events, parentToolUseId) {
9724
9825
  }
9725
9826
  }
9726
9827
  });
9727
- return messages;
9828
+ if (partialIndexes.size === 0 || completedPartialStreamIds.size === 0) return messages;
9829
+ return messages.filter((message) => {
9830
+ const prefix = ["reasoning-partial:", "agent-partial:"].find((p) => message.id.startsWith(p));
9831
+ return !prefix || !completedPartialStreamIds.has(message.id.slice(prefix.length));
9832
+ });
9728
9833
  }
9729
9834
 
9730
9835
  // ../shared/src/display-message/parsers/codex-asp-parser.ts
@@ -9779,7 +9884,7 @@ function result(data, isError = false) {
9779
9884
  }
9780
9885
  var server = new McpServer({
9781
9886
  name: "replicas-mcp",
9782
- version: "0.2.3"
9887
+ version: "0.2.4"
9783
9888
  });
9784
9889
  var registerTool = server.registerTool.bind(server);
9785
9890
  registerTool(
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  AwsRestJsonProtocol
4
- } from "./chunk-PTKAHAQW.js";
4
+ } from "./chunk-FIMT2XWG.js";
5
5
  import {
6
6
  AwsSdkSigV4Signer,
7
7
  DefaultIdentityProviderConfig,
@@ -13,10 +13,10 @@ import {
13
13
  package_default,
14
14
  resolveAwsSdkSigV4Config,
15
15
  streamCollector
16
- } from "./chunk-67ORAF4B.js";
16
+ } from "./chunk-KEOQGGM5.js";
17
17
  import {
18
18
  NodeHttpHandler
19
- } from "./chunk-YPGSID6T.js";
19
+ } from "./chunk-QIOBV22I.js";
20
20
  import {
21
21
  BinaryDecisionDiagram,
22
22
  Client,
@@ -49,7 +49,7 @@ import {
49
49
  resolveHostHeaderConfig,
50
50
  resolveRetryConfig,
51
51
  resolveUserAgentConfig
52
- } from "./chunk-2TPRCPOE.js";
52
+ } from "./chunk-NWBPSHNL.js";
53
53
  import {
54
54
  NODE_REGION_CONFIG_FILE_OPTIONS,
55
55
  NODE_REGION_CONFIG_OPTIONS,
@@ -65,7 +65,7 @@ import {
65
65
  resolveDefaultsModeConfig,
66
66
  resolveHttpHandlerRuntimeConfig,
67
67
  resolveRegionConfig
68
- } from "./chunk-2KQN26CJ.js";
68
+ } from "./chunk-3X3IL2A6.js";
69
69
  import {
70
70
  Hash,
71
71
  calculateBodyLength,
@@ -74,7 +74,7 @@ import {
74
74
  toBase64,
75
75
  toUtf8
76
76
  } from "./chunk-C6IOMGXW.js";
77
- import "./chunk-MO4EEYFW.js";
77
+ import "./chunk-Q6JESX2O.js";
78
78
 
79
79
  // ../node_modules/.bun/@aws-sdk+nested-clients@3.997.17/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/auth/httpAuthSchemeProvider.js
80
80
  var defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  AwsRestJsonProtocol
4
- } from "./chunk-PTKAHAQW.js";
4
+ } from "./chunk-FIMT2XWG.js";
5
5
  import {
6
6
  AwsSdkSigV4Signer,
7
7
  DefaultIdentityProviderConfig,
@@ -13,10 +13,10 @@ import {
13
13
  package_default,
14
14
  resolveAwsSdkSigV4Config,
15
15
  streamCollector
16
- } from "./chunk-67ORAF4B.js";
16
+ } from "./chunk-KEOQGGM5.js";
17
17
  import {
18
18
  NodeHttpHandler
19
- } from "./chunk-YPGSID6T.js";
19
+ } from "./chunk-QIOBV22I.js";
20
20
  import {
21
21
  BinaryDecisionDiagram,
22
22
  Client,
@@ -50,7 +50,7 @@ import {
50
50
  resolveHostHeaderConfig,
51
51
  resolveRetryConfig,
52
52
  resolveUserAgentConfig
53
- } from "./chunk-2TPRCPOE.js";
53
+ } from "./chunk-NWBPSHNL.js";
54
54
  import {
55
55
  NODE_REGION_CONFIG_FILE_OPTIONS,
56
56
  NODE_REGION_CONFIG_OPTIONS,
@@ -66,7 +66,7 @@ import {
66
66
  resolveDefaultsModeConfig,
67
67
  resolveHttpHandlerRuntimeConfig,
68
68
  resolveRegionConfig
69
- } from "./chunk-2KQN26CJ.js";
69
+ } from "./chunk-3X3IL2A6.js";
70
70
  import {
71
71
  Hash,
72
72
  calculateBodyLength,
@@ -75,7 +75,7 @@ import {
75
75
  toBase64,
76
76
  toUtf8
77
77
  } from "./chunk-C6IOMGXW.js";
78
- import "./chunk-MO4EEYFW.js";
78
+ import "./chunk-Q6JESX2O.js";
79
79
 
80
80
  // ../node_modules/.bun/@aws-sdk+nested-clients@3.997.17/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/auth/httpAuthSchemeProvider.js
81
81
  var defaultSigninHttpAuthSchemeParametersProvider = async (config, context, input) => {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  AwsRestJsonProtocol
4
- } from "./chunk-PTKAHAQW.js";
4
+ } from "./chunk-FIMT2XWG.js";
5
5
  import {
6
6
  AwsSdkSigV4Signer,
7
7
  DefaultIdentityProviderConfig,
@@ -13,10 +13,10 @@ import {
13
13
  package_default,
14
14
  resolveAwsSdkSigV4Config,
15
15
  streamCollector
16
- } from "./chunk-67ORAF4B.js";
16
+ } from "./chunk-KEOQGGM5.js";
17
17
  import {
18
18
  NodeHttpHandler
19
- } from "./chunk-YPGSID6T.js";
19
+ } from "./chunk-QIOBV22I.js";
20
20
  import {
21
21
  BinaryDecisionDiagram,
22
22
  Client,
@@ -50,7 +50,7 @@ import {
50
50
  resolveHostHeaderConfig,
51
51
  resolveRetryConfig,
52
52
  resolveUserAgentConfig
53
- } from "./chunk-2TPRCPOE.js";
53
+ } from "./chunk-NWBPSHNL.js";
54
54
  import {
55
55
  NODE_REGION_CONFIG_FILE_OPTIONS,
56
56
  NODE_REGION_CONFIG_OPTIONS,
@@ -66,7 +66,7 @@ import {
66
66
  resolveDefaultsModeConfig,
67
67
  resolveHttpHandlerRuntimeConfig,
68
68
  resolveRegionConfig
69
- } from "./chunk-2KQN26CJ.js";
69
+ } from "./chunk-3X3IL2A6.js";
70
70
  import {
71
71
  Hash,
72
72
  calculateBodyLength,
@@ -75,7 +75,7 @@ import {
75
75
  toBase64,
76
76
  toUtf8
77
77
  } from "./chunk-C6IOMGXW.js";
78
- import "./chunk-MO4EEYFW.js";
78
+ import "./chunk-Q6JESX2O.js";
79
79
 
80
80
  // ../node_modules/.bun/@aws-sdk+nested-clients@3.997.17/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthSchemeProvider.js
81
81
  var defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => {
@@ -17,10 +17,10 @@ import {
17
17
  resolveAwsSdkSigV4AConfig,
18
18
  resolveAwsSdkSigV4Config,
19
19
  streamCollector
20
- } from "./chunk-67ORAF4B.js";
20
+ } from "./chunk-KEOQGGM5.js";
21
21
  import {
22
22
  NodeHttpHandler
23
- } from "./chunk-YPGSID6T.js";
23
+ } from "./chunk-QIOBV22I.js";
24
24
  import {
25
25
  BinaryDecisionDiagram,
26
26
  Client,
@@ -58,7 +58,7 @@ import {
58
58
  resolveUserAgentConfig,
59
59
  setCredentialFeature,
60
60
  stsRegionDefaultResolver
61
- } from "./chunk-2TPRCPOE.js";
61
+ } from "./chunk-NWBPSHNL.js";
62
62
  import {
63
63
  FromStringShapeDeserializer,
64
64
  NODE_REGION_CONFIG_FILE_OPTIONS,
@@ -81,7 +81,7 @@ import {
81
81
  resolveDefaultsModeConfig,
82
82
  resolveHttpHandlerRuntimeConfig,
83
83
  resolveRegionConfig
84
- } from "./chunk-2KQN26CJ.js";
84
+ } from "./chunk-3X3IL2A6.js";
85
85
  import {
86
86
  Hash,
87
87
  NumericValue,
@@ -93,7 +93,7 @@ import {
93
93
  toBase64,
94
94
  toUtf8
95
95
  } from "./chunk-C6IOMGXW.js";
96
- import "./chunk-MO4EEYFW.js";
96
+ import "./chunk-Q6JESX2O.js";
97
97
 
98
98
  // ../node_modules/.bun/@smithy+signature-v4@5.4.6/node_modules/@smithy/signature-v4/dist-es/signature-v4a-container.js
99
99
  var signatureV4aContainer = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-mcp",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "license": "UNLICENSED",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -57,7 +57,7 @@ type RegisterToolFn = (
57
57
 
58
58
  const server = new McpServer({
59
59
  name: 'replicas-mcp',
60
- version: '0.2.3',
60
+ version: '0.2.4',
61
61
  });
62
62
 
63
63
  const registerTool = server.registerTool.bind(server) as RegisterToolFn;