replicas-engine 0.1.475 → 0.1.477
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.
- package/dist/src/index.js +13 -14
- package/package.json +1 -1
package/dist/src/index.js
CHANGED
|
@@ -582,7 +582,7 @@ var WORKSPACE_SIZES = ["small", "large"];
|
|
|
582
582
|
var INVALID_WORKSPACE_SIZE_ERROR = `Invalid size: must be one of ${WORKSPACE_SIZES.join(", ")}`;
|
|
583
583
|
|
|
584
584
|
// ../shared/src/e2b.ts
|
|
585
|
-
var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-07-
|
|
585
|
+
var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-07-22-v2";
|
|
586
586
|
|
|
587
587
|
// ../shared/src/runtime-env.ts
|
|
588
588
|
function shellQuotePosix(value) {
|
|
@@ -1776,7 +1776,7 @@ Pass one or more file paths. Uploading several files in a single invocation is p
|
|
|
1776
1776
|
For each file, the CLI prints two lines:
|
|
1777
1777
|
|
|
1778
1778
|
1. \`\` \u2014 the chat embed (renders inline in Replicas chat **only** \u2014 see below).
|
|
1779
|
-
2. \`View in Replicas: <deep-link>\` \u2014 a per-file dashboard URL of the form \`https://tryreplicas.com/workspaces/<workspace-id>?
|
|
1779
|
+
2. \`View in Replicas: <deep-link>\` \u2014 a per-file dashboard URL of the form \`https://tryreplicas.com/workspaces/<workspace-id>?media=<media-id>\` that opens directly to that specific file.
|
|
1780
1780
|
|
|
1781
1781
|
Match each "View in Replicas" line to the embed line directly above it \u2014 that's the deep link for that file.
|
|
1782
1782
|
|
|
@@ -1794,7 +1794,7 @@ This prints an additional \`Forge embed\` Markdown line backed by an opt-in publ
|
|
|
1794
1794
|
|---|---|---|
|
|
1795
1795
|
| \`https://api.tryreplicas.com/v1/media/<id>\` (inside \`\`) | Authenticated API redirect to a presigned blob \u2014 requires the Replicas chat session | **Only** in the Replicas chat reply. Nowhere else. |
|
|
1796
1796
|
| \`https://api.tryreplicas.com/v1/media/public/<id>/<token>\` | Opt-in public bearer URL printed by \`--share\` | GitHub image embeds only. |
|
|
1797
|
-
| \`https://tryreplicas.com/workspaces/<workspace-id>?
|
|
1797
|
+
| \`https://tryreplicas.com/workspaces/<workspace-id>?media=<media-id>\` | Public dashboard deep link that opens the media file in the workspace | Everywhere external \u2014 Slack, GitHub, Linear, PR bodies, comments, emails. |
|
|
1798
1798
|
|
|
1799
1799
|
### NEVER link the API redirect URL outside the Replicas chat reply
|
|
1800
1800
|
|
|
@@ -1812,14 +1812,12 @@ This rule has no exceptions:
|
|
|
1812
1812
|
When you reference an uploaded file from anywhere outside the Replicas chat reply, the link must be the dashboard form:
|
|
1813
1813
|
|
|
1814
1814
|
\`\`\`
|
|
1815
|
-
https://tryreplicas.com/workspaces/<workspace-id>?
|
|
1815
|
+
https://tryreplicas.com/workspaces/<workspace-id>?media=<media-id>
|
|
1816
1816
|
\`\`\`
|
|
1817
1817
|
|
|
1818
|
-
|
|
1819
|
-
- \`mode=media\` opens the media tab in the dashboard.
|
|
1820
|
-
- \`media=<media-id>\` scrolls to and opens that specific file.
|
|
1818
|
+
The \`media=<media-id>\` query param opens that specific file in the workspace.
|
|
1821
1819
|
|
|
1822
|
-
|
|
1820
|
+
When you have a specific file in mind, never link the bare workspace URL without the \`media=<id>\` param.
|
|
1823
1821
|
|
|
1824
1822
|
Always render as a markdown / mrkdwn hyperlink labeled **View in Replicas** \u2014 never paste a raw URL.
|
|
1825
1823
|
|
|
@@ -1827,14 +1825,14 @@ Always render as a markdown / mrkdwn hyperlink labeled **View in Replicas** \u20
|
|
|
1827
1825
|
|
|
1828
1826
|
Include each markdown embed line **verbatim** where you want that file to render inline. The chat substitutes each one with an embedded image, video, or audio player. Multiple embeds can appear in a single reply.
|
|
1829
1827
|
|
|
1830
|
-
After (or alongside) the embeds, include a \`[View in Replicas](<deep-link>)\` hyperlink for each file using the per-file dashboard URL from the CLI. This lets the user
|
|
1828
|
+
After (or alongside) the embeds, include a \`[View in Replicas](<deep-link>)\` hyperlink for each file using the per-file dashboard URL from the CLI. This lets the user open the specific item in the workspace.
|
|
1831
1829
|
|
|
1832
1830
|
## On external platforms \u2014 upload natively AND link the dashboard
|
|
1833
1831
|
|
|
1834
1832
|
Sharing media externally is a **two-step requirement** for every file:
|
|
1835
1833
|
|
|
1836
1834
|
1. **Upload the raw bytes natively to that platform** so the recipient sees the media embedded inline in the message itself.
|
|
1837
|
-
2. **Link the Replicas dashboard deep link** (\`?
|
|
1835
|
+
2. **Link the Replicas dashboard deep link** (\`?media=<id>\` form) so the user can jump straight to the file in the workspace.
|
|
1838
1836
|
|
|
1839
1837
|
A link alone is not enough. A native upload alone is not enough. Do both.
|
|
1840
1838
|
|
|
@@ -1874,7 +1872,7 @@ curl -s -X POST "https://slack.com/api/files.completeUploadExternal" \\
|
|
|
1874
1872
|
\\"files\\": [{\\"id\\": \\"$FILE_ID\\", \\"title\\": \\"Screenshot\\"}],
|
|
1875
1873
|
\\"channel_id\\": \\"CHANNEL_ID\\",
|
|
1876
1874
|
\\"thread_ts\\": \\"THREAD_TS\\",
|
|
1877
|
-
\\"initial_comment\\": \\"<https://tryreplicas.com/workspaces/<workspace-id>?
|
|
1875
|
+
\\"initial_comment\\": \\"<https://tryreplicas.com/workspaces/<workspace-id>?media=<media-id>|View in Replicas>\\"
|
|
1878
1876
|
}"
|
|
1879
1877
|
\`\`\`
|
|
1880
1878
|
|
|
@@ -1934,7 +1932,7 @@ curl -s -X PUT "$UPLOAD_URL" \\
|
|
|
1934
1932
|
--data-binary @"$FILE"
|
|
1935
1933
|
|
|
1936
1934
|
# 3. Reference assetUrl inline in the comment body, alongside the dashboard link.
|
|
1937
|
-
BODY=$(printf '\\n\\n[View in Replicas](https://tryreplicas.com/workspaces/%s?
|
|
1935
|
+
BODY=$(printf '\\n\\n[View in Replicas](https://tryreplicas.com/workspaces/%s?media=%s)' \\
|
|
1938
1936
|
"$ASSET_URL" "$WORKSPACE_ID" "$MEDIA_ID")
|
|
1939
1937
|
|
|
1940
1938
|
jq -n \\
|
|
@@ -9813,7 +9811,7 @@ var DEFAULT_CODEX_ARGS = ["app-server", "--listen", "stdio://"];
|
|
|
9813
9811
|
var MIN_CODEX_CLI_VERSION = "0.144.6";
|
|
9814
9812
|
var CODEX_UPGRADE_TIMEOUT_MS = 12e4;
|
|
9815
9813
|
var codexCliVersionEnsured = null;
|
|
9816
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
9814
|
+
var ENGINE_PACKAGE_VERSION = "0.1.477";
|
|
9817
9815
|
var INITIALIZE_METHOD = "initialize";
|
|
9818
9816
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
9819
9817
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
|
@@ -14665,7 +14663,8 @@ var ChatService = class {
|
|
|
14665
14663
|
chat.acceptedUserEvents.delete(messageId);
|
|
14666
14664
|
}
|
|
14667
14665
|
}
|
|
14668
|
-
const
|
|
14666
|
+
const queuedMessageIds = new Set(chat.provider.getQueue().map((message) => message.id));
|
|
14667
|
+
const acceptedEvents = [...chat.acceptedUserEvents.entries()].filter(([messageId]) => messageId === chat.activeMessageId || !chat.hasActiveTurn && chat.pendingMessageIds[0] === messageId && !queuedMessageIds.has(messageId)).map(([, acceptedEvent]) => acceptedEvent).filter((acceptedEvent) => !acceptedEventInCodexTranscript(acceptedEvent, history.codexAspTranscript) && !history.events.some((event) => isSameAcceptedUserEvent(event, acceptedEvent)));
|
|
14669
14668
|
const events = [...history.events, ...acceptedEvents].sort((a, b) => getEventTimestampMs(a) - getEventTimestampMs(b));
|
|
14670
14669
|
return paginateChatHistory({
|
|
14671
14670
|
thread_id: history.thread_id,
|