@agent-native/core 0.101.6 → 0.101.10
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/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +28 -0
- package/corpus/core/docs/content/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/ar-SA/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/de-DE/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/es-ES/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/fr-FR/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/hi-IN/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/ja-JP/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/ko-KR/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/pt-BR/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/zh-CN/deployment.mdx +9 -7
- package/corpus/core/docs/content/locales/zh-TW/deployment.mdx +9 -7
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/artifact-response.ts +255 -12
- package/corpus/core/src/agent/thread-data-builder.ts +84 -11
- package/corpus/core/src/client/review/ReviewCommentComposer.tsx +9 -1
- package/corpus/core/src/client/review/ReviewThreadPanel.tsx +17 -2
- package/corpus/core/src/client/settings/SettingsPanel.tsx +41 -21
- package/corpus/core/src/client/settings/useBuilderStatus.ts +28 -9
- package/corpus/core/src/client/setup-connections/BuilderConnectCard.tsx +2 -7
- package/corpus/core/src/integrations/a2a-continuation-processor.ts +99 -7
- package/corpus/core/src/integrations/adapters/discord.ts +3 -1
- package/corpus/core/src/integrations/adapters/email.ts +4 -1
- package/corpus/core/src/integrations/adapters/google-docs.ts +4 -1
- package/corpus/core/src/integrations/adapters/microsoft-teams.ts +3 -1
- package/corpus/core/src/integrations/adapters/slack.ts +38 -9
- package/corpus/core/src/integrations/adapters/telegram.ts +32 -10
- package/corpus/core/src/integrations/adapters/whatsapp.ts +5 -1
- package/corpus/core/src/integrations/index.ts +1 -0
- package/corpus/core/src/integrations/types.ts +9 -2
- package/corpus/core/src/integrations/webhook-handler.ts +69 -45
- package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +1 -0
- package/corpus/core/src/server/auth.ts +25 -1
- package/corpus/core/src/server/builder-browser.ts +353 -1
- package/corpus/core/src/server/core-routes-plugin.ts +601 -223
- package/corpus/templates/calendar/app/components/calendar/DayView.tsx +80 -1
- package/corpus/templates/calendar/app/components/calendar/EventCard.tsx +28 -3
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +5 -1
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +30 -3
- package/corpus/templates/calendar/app/components/calendar/OutOfOfficeEvent.tsx +196 -0
- package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +115 -1
- package/corpus/templates/calendar/app/lib/out-of-office.ts +45 -0
- package/corpus/templates/calendar/changelog/2026-07-14-out-of-office-blocks-now-sit-behind-meetings-and-event-stack.md +6 -0
- package/corpus/templates/content/.agents/skills/content/SKILL.md +31 -0
- package/corpus/templates/content/.agents/skills/document-editing/SKILL.md +35 -21
- package/corpus/templates/content/AGENTS.md +32 -9
- package/corpus/templates/content/actions/_builder-cms-intent-lookup.ts +87 -0
- package/corpus/templates/content/actions/_builder-cms-read-client.ts +173 -25
- package/corpus/templates/content/actions/_builder-cms-source-adapter.ts +1 -0
- package/corpus/templates/content/actions/_builder-cms-write-adapter.ts +427 -18
- package/corpus/templates/content/actions/_builder-cms-write-client.ts +17 -73
- package/corpus/templates/content/actions/_builder-cms-write-settings.ts +27 -7
- package/corpus/templates/content/actions/_builder-source-execution-claim.ts +124 -0
- package/corpus/templates/content/actions/_builder-source-execution-preservation.ts +21 -0
- package/corpus/templates/content/actions/_builder-source-timings.ts +57 -0
- package/corpus/templates/content/actions/_database-source-utils.ts +1071 -170
- package/corpus/templates/content/actions/_database-utils.ts +104 -13
- package/corpus/templates/content/actions/_local-file-documents.ts +53 -1
- package/corpus/templates/content/actions/_preview-document-draft.ts +31 -0
- package/corpus/templates/content/actions/_property-utils.ts +7 -1
- package/corpus/templates/content/actions/cancel-prepared-builder-source-update.ts +309 -0
- package/corpus/templates/content/actions/configure-document-property.ts +11 -0
- package/corpus/templates/content/actions/create-content-database.ts +11 -0
- package/corpus/templates/content/actions/create-document.ts +9 -0
- package/corpus/templates/content/actions/create-inline-content-database.ts +3 -0
- package/corpus/templates/content/actions/execute-builder-source-batch.ts +120 -49
- package/corpus/templates/content/actions/execute-builder-source-execution.ts +608 -264
- package/corpus/templates/content/actions/export-content-source.ts +1 -0
- package/corpus/templates/content/actions/get-content-database.ts +13 -1
- package/corpus/templates/content/actions/get-document.ts +12 -2
- package/corpus/templates/content/actions/get-preview-document-draft.ts +26 -0
- package/corpus/templates/content/actions/import-content-source.ts +6 -0
- package/corpus/templates/content/actions/list-documents.ts +3 -0
- package/corpus/templates/content/actions/materialize-builder-required-fields.ts +550 -0
- package/corpus/templates/content/actions/prepare-builder-source-execution.ts +112 -65
- package/corpus/templates/content/actions/prepare-builder-source-review.ts +463 -170
- package/corpus/templates/content/actions/preview-builder-source-review.ts +99 -0
- package/corpus/templates/content/actions/pull-document.ts +2 -0
- package/corpus/templates/content/actions/search-documents.ts +5 -1
- package/corpus/templates/content/actions/set-content-database-source-write-mode.ts +2 -2
- package/corpus/templates/content/actions/update-document.ts +16 -1
- package/corpus/templates/content/actions/update-preview-document-draft.ts +153 -0
- package/corpus/templates/content/actions/view-screen.ts +15 -2
- package/corpus/templates/content/app/components/editor/DescriptionField.tsx +121 -0
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +14 -0
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +250 -49
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +57 -5
- package/corpus/templates/content/app/components/editor/body-hydration.ts +27 -0
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +2414 -589
- package/corpus/templates/content/app/components/editor/database/settings.tsx +13 -10
- package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +358 -75
- package/corpus/templates/content/app/components/editor/previewDocumentSaveController.ts +124 -29
- package/corpus/templates/content/app/components/editor/previewDocumentSaveRegistry.ts +2 -0
- package/corpus/templates/content/app/global.css +18 -1
- package/corpus/templates/content/app/hooks/use-content-database.ts +68 -0
- package/corpus/templates/content/app/hooks/use-documents.ts +53 -4
- package/corpus/templates/content/app/i18n/zh-TW.ts +30 -0
- package/corpus/templates/content/app/i18n-data.ts +339 -0
- package/corpus/templates/content/changelog/2026-07-10-builder-backed-preview-edits-are-preserved-when-article-bodi.md +6 -0
- package/corpus/templates/content/changelog/2026-07-10-builder-cms-sources-can-now-be-enabled-for-guarded-staged-or.md +6 -0
- package/corpus/templates/content/changelog/2026-07-13-builder-connection-setup-is-now-available-directly-from-conn.md +6 -0
- package/corpus/templates/content/changelog/2026-07-13-builder-reviews-now-hide-already-applied-writes-detect-nativ.md +6 -0
- package/corpus/templates/content/changelog/2026-07-13-required-builder-publishing-fields-can-now-be-added-directly.md +6 -0
- package/corpus/templates/content/changelog/2026-07-13-you-can-now-cancel-a-prepared-builder-update-safely-before-i.md +6 -0
- package/corpus/templates/content/changelog/2026-07-14-builder-account-connection-now-remains-available-when-branch.md +6 -0
- package/corpus/templates/content/changelog/2026-07-14-builder-backed-articles-now-preserve-fifth-and-sixth-level-h.md +6 -0
- package/corpus/templates/content/changelog/2026-07-14-builder-sources-now-review-and-publish-rich-article-updates-.md +6 -0
- package/corpus/templates/content/changelog/2026-07-14-builder-writes-now-stop-retries-when-reconciliation-is-needed.md +6 -0
- package/corpus/templates/content/changelog/2026-07-14-file-and-media-links-now-validate-before-saving.md +6 -0
- package/corpus/templates/content/changelog/2026-07-14-pages-and-databases-can-describe-themselves-with-guidance-fo.md +6 -0
- package/corpus/templates/content/changelog/2026-07-14-slack-follow-ups-now-retain-created-content-identity-and-per.md +6 -0
- package/corpus/templates/content/parity/matrix.md +27 -25
- package/corpus/templates/content/parity/matrix.ts +50 -2
- package/corpus/templates/content/server/db/schema.ts +51 -0
- package/corpus/templates/content/server/lib/document-context.ts +76 -0
- package/corpus/templates/content/server/lib/public-documents.ts +3 -0
- package/corpus/templates/content/server/plugins/auth.ts +1 -0
- package/corpus/templates/content/server/plugins/db.ts +59 -0
- package/corpus/templates/content/server/routes/api/document-agent-context.json.get.ts +5 -0
- package/corpus/templates/content/shared/api.ts +87 -1
- package/corpus/templates/content/shared/builder-mdx.ts +705 -15
- package/corpus/templates/content/shared/content-source.ts +7 -0
- package/corpus/templates/content/shared/nfm.ts +3 -3
- package/corpus/templates/content/shared/properties.ts +2 -0
- package/corpus/templates/design/app/components/design/ReadOnlyDesignBanner.tsx +52 -7
- package/corpus/templates/design/app/components/design/ReviewCommentsPanel.tsx +36 -4
- package/corpus/templates/design/app/components/visual-editor/ReviewCanvasPins.tsx +4 -1
- package/corpus/templates/design/app/i18n/ar-SA.ts +1 -0
- package/corpus/templates/design/app/i18n/de-DE.ts +1 -0
- package/corpus/templates/design/app/i18n/en-US.ts +1 -0
- package/corpus/templates/design/app/i18n/es-ES.ts +1 -0
- package/corpus/templates/design/app/i18n/fr-FR.ts +1 -0
- package/corpus/templates/design/app/i18n/hi-IN.ts +1 -0
- package/corpus/templates/design/app/i18n/ja-JP.ts +1 -0
- package/corpus/templates/design/app/i18n/ko-KR.ts +1 -0
- package/corpus/templates/design/app/i18n/pt-BR.ts +1 -0
- package/corpus/templates/design/app/i18n/zh-CN.ts +1 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +1 -0
- package/corpus/templates/design/app/pages/design-editor/selection-state.ts +8 -0
- package/corpus/templates/design/app/pages/design-editor/tool-state.ts +11 -0
- package/corpus/templates/design/changelog/2026-07-14-reviewers-can-now-pin-comments-from-the-canvas-toolbar-targe.md +6 -0
- package/corpus/templates/design/changelog/2026-07-15-viewer-comment-controls-now-sit-inside-the-read-only-notice-.md +6 -0
- package/corpus/templates/design/shared/review-anchor.ts +48 -0
- package/corpus/templates/plan/server/plan-mdx.ts +53 -7
- package/dist/a2a/artifact-response.d.ts +15 -0
- package/dist/a2a/artifact-response.d.ts.map +1 -1
- package/dist/a2a/artifact-response.js +204 -5
- package/dist/a2a/artifact-response.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts +6 -0
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +71 -8
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/client/review/ReviewCommentComposer.d.ts +2 -1
- package/dist/client/review/ReviewCommentComposer.d.ts.map +1 -1
- package/dist/client/review/ReviewCommentComposer.js +3 -3
- package/dist/client/review/ReviewCommentComposer.js.map +1 -1
- package/dist/client/review/ReviewThreadPanel.d.ts +9 -1
- package/dist/client/review/ReviewThreadPanel.d.ts.map +1 -1
- package/dist/client/review/ReviewThreadPanel.js +6 -4
- package/dist/client/review/ReviewThreadPanel.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts +3 -0
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +11 -4
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.d.ts +8 -4
- package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
- package/dist/client/settings/useBuilderStatus.js +19 -6
- package/dist/client/settings/useBuilderStatus.js.map +1 -1
- package/dist/client/setup-connections/BuilderConnectCard.d.ts.map +1 -1
- package/dist/client/setup-connections/BuilderConnectCard.js +2 -5
- package/dist/client/setup-connections/BuilderConnectCard.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/integrations/a2a-continuation-processor.d.ts.map +1 -1
- package/dist/integrations/a2a-continuation-processor.js +72 -6
- package/dist/integrations/a2a-continuation-processor.js.map +1 -1
- package/dist/integrations/adapters/discord.d.ts.map +1 -1
- package/dist/integrations/adapters/discord.js +1 -0
- package/dist/integrations/adapters/discord.js.map +1 -1
- package/dist/integrations/adapters/email.d.ts.map +1 -1
- package/dist/integrations/adapters/email.js +2 -0
- package/dist/integrations/adapters/email.js.map +1 -1
- package/dist/integrations/adapters/google-docs.d.ts.map +1 -1
- package/dist/integrations/adapters/google-docs.js +2 -0
- package/dist/integrations/adapters/google-docs.js.map +1 -1
- package/dist/integrations/adapters/microsoft-teams.d.ts.map +1 -1
- package/dist/integrations/adapters/microsoft-teams.js +1 -0
- package/dist/integrations/adapters/microsoft-teams.js.map +1 -1
- package/dist/integrations/adapters/slack.d.ts.map +1 -1
- package/dist/integrations/adapters/slack.js +21 -6
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/adapters/telegram.d.ts.map +1 -1
- package/dist/integrations/adapters/telegram.js +11 -2
- package/dist/integrations/adapters/telegram.js.map +1 -1
- package/dist/integrations/adapters/whatsapp.d.ts.map +1 -1
- package/dist/integrations/adapters/whatsapp.js +3 -0
- package/dist/integrations/adapters/whatsapp.js.map +1 -1
- package/dist/integrations/index.d.ts +1 -1
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/types.d.ts +8 -2
- package/dist/integrations/types.d.ts.map +1 -1
- package/dist/integrations/types.js.map +1 -1
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +40 -43
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/observability/routes.d.ts +5 -5
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.js +1 -0
- package/dist/server/agent-chat/action-filters-a2a.js.map +1 -1
- package/dist/server/auth.d.ts +1 -0
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +19 -2
- package/dist/server/auth.js.map +1 -1
- package/dist/server/builder-browser.d.ts +78 -0
- package/dist/server/builder-browser.d.ts.map +1 -1
- package/dist/server/builder-browser.js +246 -1
- package/dist/server/builder-browser.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts +41 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +260 -14
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/docs/content/deployment.mdx +9 -7
- package/docs/content/locales/ar-SA/deployment.mdx +9 -7
- package/docs/content/locales/de-DE/deployment.mdx +9 -7
- package/docs/content/locales/es-ES/deployment.mdx +9 -7
- package/docs/content/locales/fr-FR/deployment.mdx +9 -7
- package/docs/content/locales/hi-IN/deployment.mdx +9 -7
- package/docs/content/locales/ja-JP/deployment.mdx +9 -7
- package/docs/content/locales/ko-KR/deployment.mdx +9 -7
- package/docs/content/locales/pt-BR/deployment.mdx +9 -7
- package/docs/content/locales/zh-CN/deployment.mdx +9 -7
- package/docs/content/locales/zh-TW/deployment.mdx +9 -7
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { appendA2AArtifactLinks, } from "../a2a/artifact-response.js";
|
|
1
|
+
import { appendA2AArtifactLinks, extractA2AArtifactIdentities, } from "../a2a/artifact-response.js";
|
|
2
2
|
import { collectFinalResponseTextFromAgentEvents } from "../a2a/response-text.js";
|
|
3
3
|
import { formatLlmCredentialErrorMessage, isLlmCredentialError, } from "../agent/engine/credential-errors.js";
|
|
4
4
|
import { getConfiguredEngineNameForRequest, getStoredModelForEngine, normalizeModelForEngine, resolveEngine, } from "../agent/engine/index.js";
|
|
@@ -7,7 +7,7 @@ import { PROVIDER_TO_ENV } from "../agent/engine/provider-env-vars.js";
|
|
|
7
7
|
import { runAgentLoop, actionsToEngineTools, filterInitialEngineTools, getOwnerActiveApiKey, getOwnerApiKey, engineToProvider, } from "../agent/production-agent.js";
|
|
8
8
|
import { startRun } from "../agent/run-manager.js";
|
|
9
9
|
import { buildCurrentTimeUserContext, buildRuntimeContextPrompt, } from "../agent/runtime-context.js";
|
|
10
|
-
import { buildAssistantMessage, extractThreadMeta, } from "../agent/thread-data-builder.js";
|
|
10
|
+
import { buildAssistantMessage, extractThreadMeta, threadDataToEngineMessages, } from "../agent/thread-data-builder.js";
|
|
11
11
|
import { attachToolSearch } from "../agent/tool-search.js";
|
|
12
12
|
import { createThread, getThread } from "../chat-threads/store.js";
|
|
13
13
|
import { updateThreadData } from "../chat-threads/store.js";
|
|
@@ -478,35 +478,7 @@ async function processIncomingMessage(incoming, options, opts = {}) {
|
|
|
478
478
|
}
|
|
479
479
|
const existingMessages = [];
|
|
480
480
|
if (thread?.threadData) {
|
|
481
|
-
|
|
482
|
-
const data = JSON.parse(thread.threadData);
|
|
483
|
-
if (Array.isArray(data.messages)) {
|
|
484
|
-
for (const msg of data.messages) {
|
|
485
|
-
const m = msg.message ?? msg;
|
|
486
|
-
const textContent = typeof m.content === "string"
|
|
487
|
-
? m.content
|
|
488
|
-
: Array.isArray(m.content)
|
|
489
|
-
? m.content
|
|
490
|
-
.filter((c) => c.type === "text")
|
|
491
|
-
.map((c) => c.text)
|
|
492
|
-
.join("\n")
|
|
493
|
-
: "";
|
|
494
|
-
if (m.role === "user") {
|
|
495
|
-
existingMessages.push({
|
|
496
|
-
role: "user",
|
|
497
|
-
content: [{ type: "text", text: textContent }],
|
|
498
|
-
});
|
|
499
|
-
}
|
|
500
|
-
else if (m.role === "assistant") {
|
|
501
|
-
existingMessages.push({
|
|
502
|
-
role: "assistant",
|
|
503
|
-
content: [{ type: "text", text: textContent }],
|
|
504
|
-
});
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
catch { }
|
|
481
|
+
existingMessages.push(...threadDataToEngineMessages(thread.threadData));
|
|
510
482
|
}
|
|
511
483
|
// Add the new user message. Include verified platform identity as lightweight
|
|
512
484
|
// context so app-specific agents can attribute requests without guessing.
|
|
@@ -713,45 +685,60 @@ async function processIncomingMessage(incoming, options, opts = {}) {
|
|
|
713
685
|
// preview card.
|
|
714
686
|
const baseUrl = process.env.APP_URL || process.env.URL || "";
|
|
715
687
|
const appBaseUrl = baseUrl ? withConfiguredAppBasePath(baseUrl) : "";
|
|
688
|
+
const toolResults = collectToolResultSummaries(completedRun);
|
|
716
689
|
if (!suppressPlatformReply) {
|
|
717
|
-
responseText = appendA2AArtifactLinks(responseText,
|
|
690
|
+
responseText = appendA2AArtifactLinks(responseText, toolResults, {
|
|
691
|
+
baseUrl: appBaseUrl || undefined,
|
|
692
|
+
});
|
|
718
693
|
}
|
|
719
694
|
const threadDeepLinkUrl = appBaseUrl && threadId
|
|
720
695
|
? `${appBaseUrl}/chat/${encodeURIComponent(threadId)}`
|
|
721
696
|
: undefined;
|
|
722
697
|
// Format and send back to platform — update the "thinking…"
|
|
723
698
|
// placeholder in place if the adapter supplied one.
|
|
699
|
+
let deliveredResponse;
|
|
724
700
|
if (!suppressPlatformReply) {
|
|
725
701
|
const outgoing = adapter.formatAgentResponse(responseText, {
|
|
726
702
|
threadDeepLinkUrl,
|
|
727
703
|
});
|
|
728
|
-
let
|
|
704
|
+
let deliveryReceipt;
|
|
729
705
|
if (queuedA2AContinuation && progress?.ref) {
|
|
730
706
|
// Post substantive parent results as a normal thread reply while
|
|
731
707
|
// the one continuation that claimed this resumable stream keeps
|
|
732
708
|
// it open for its eventual terminal result.
|
|
733
|
-
await adapter.sendResponse(outgoing, incoming, {
|
|
709
|
+
deliveryReceipt = await adapter.sendResponse(outgoing, incoming, {
|
|
734
710
|
placeholderRef: opts.placeholderRef,
|
|
735
711
|
});
|
|
736
|
-
delivered = true;
|
|
737
712
|
}
|
|
738
713
|
else if (progress) {
|
|
739
714
|
try {
|
|
740
|
-
await progress.complete(outgoing);
|
|
741
|
-
delivered = true;
|
|
715
|
+
deliveryReceipt = await progress.complete(outgoing);
|
|
742
716
|
}
|
|
743
717
|
catch {
|
|
744
|
-
await adapter.sendResponse(outgoing, incoming, {
|
|
718
|
+
deliveryReceipt = await adapter.sendResponse(outgoing, incoming, {
|
|
745
719
|
placeholderRef: opts.placeholderRef,
|
|
746
720
|
});
|
|
747
|
-
delivered = true;
|
|
748
721
|
}
|
|
749
722
|
}
|
|
750
723
|
else {
|
|
751
|
-
await adapter.sendResponse(outgoing, incoming, {
|
|
724
|
+
deliveryReceipt = await adapter.sendResponse(outgoing, incoming, {
|
|
752
725
|
placeholderRef: opts.placeholderRef,
|
|
753
726
|
});
|
|
754
|
-
|
|
727
|
+
}
|
|
728
|
+
const delivered = deliveryReceipt?.status === "delivered";
|
|
729
|
+
if (!delivered) {
|
|
730
|
+
throw new Error(`${incoming.platform} response completed without delivery proof`);
|
|
731
|
+
}
|
|
732
|
+
if (delivered) {
|
|
733
|
+
deliveredResponse = {
|
|
734
|
+
platform: incoming.platform,
|
|
735
|
+
status: "delivered",
|
|
736
|
+
text: outgoing.text,
|
|
737
|
+
deliveredAt: new Date().toISOString(),
|
|
738
|
+
...(deliveryReceipt?.messageRefs?.length
|
|
739
|
+
? { messageRefs: deliveryReceipt.messageRefs }
|
|
740
|
+
: {}),
|
|
741
|
+
};
|
|
755
742
|
}
|
|
756
743
|
if (slackInputRequest && delivered && incoming.senderId) {
|
|
757
744
|
await setIntegrationAwaitingInput({
|
|
@@ -792,7 +779,7 @@ async function processIncomingMessage(incoming, options, opts = {}) {
|
|
|
792
779
|
}
|
|
793
780
|
}
|
|
794
781
|
// Persist thread data
|
|
795
|
-
await persistThreadData(threadId, incoming.text, completedRun, thread);
|
|
782
|
+
await persistThreadData(threadId, incoming.text, completedRun, thread, deliveredResponse, toolResults);
|
|
796
783
|
await recordIntegrationUsage({
|
|
797
784
|
usage,
|
|
798
785
|
ownerEmail,
|
|
@@ -1124,7 +1111,7 @@ function hasSubstantiveA2APartialAnswer(text) {
|
|
|
1124
1111
|
* Persist the user message and agent response to the thread data,
|
|
1125
1112
|
* so the conversation history is available in the web UI too.
|
|
1126
1113
|
*/
|
|
1127
|
-
async function persistThreadData(threadId, userText, completedRun, thread) {
|
|
1114
|
+
async function persistThreadData(threadId, userText, completedRun, thread, deliveredResponse, toolResults = []) {
|
|
1128
1115
|
try {
|
|
1129
1116
|
let repo;
|
|
1130
1117
|
try {
|
|
@@ -1144,6 +1131,16 @@ async function persistThreadData(threadId, userText, completedRun, thread) {
|
|
|
1144
1131
|
};
|
|
1145
1132
|
// Build assistant message from run events
|
|
1146
1133
|
const assistantMsg = buildAssistantMessage(completedRun.events ?? [], completedRun.runId);
|
|
1134
|
+
if (assistantMsg) {
|
|
1135
|
+
assistantMsg.metadata.integrationDeliveryAttempted = true;
|
|
1136
|
+
if (deliveredResponse) {
|
|
1137
|
+
assistantMsg.metadata.integrationDelivery = deliveredResponse;
|
|
1138
|
+
const artifactIdentities = extractA2AArtifactIdentities(toolResults);
|
|
1139
|
+
if (artifactIdentities.length > 0) {
|
|
1140
|
+
assistantMsg.metadata.integrationArtifacts = artifactIdentities;
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1147
1144
|
repo.messages.push(userMsg);
|
|
1148
1145
|
if (assistantMsg) {
|
|
1149
1146
|
repo.messages.push(assistantMsg);
|