@agent-native/core 0.101.5 → 0.101.7
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/README.md +1 -1
- package/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +12 -0
- package/corpus/core/docs/content/locales/ar-SA/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/locales/de-DE/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.mdx +2 -2
- package/corpus/core/docs/content/pure-agent-apps.mdx +58 -14
- 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/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/templates/analytics/AGENTS.md +6 -0
- package/corpus/templates/analytics/README.md +1 -1
- package/corpus/templates/analytics/actions/data-source-status.ts +19 -1
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +5 -1
- package/corpus/templates/analytics/app/routes/_index.tsx +2 -2
- package/corpus/templates/analytics/changelog/2026-07-14-analytics-chat-guides-you-to-connect-a-data-source-with-a-di.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-14-analytics-landing-pages-now-clearly-position-the-app-as-an-o.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-15-daily-dashboard-emails-now-include-the-complete-dashboard-sc.md +6 -0
- package/corpus/templates/analytics/server/jobs/dashboard-report.ts +8 -1
- package/corpus/templates/analytics/server/lib/dashboard-report.ts +64 -12
- package/corpus/templates/analytics/server/lib/real-data-actions.ts +15 -3
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +364 -4
- package/corpus/templates/clips/app/components/dictate/vocabulary-section.tsx +1 -0
- package/corpus/templates/clips/app/components/library/folder-tree.tsx +12 -9
- package/corpus/templates/clips/app/components/library/library-layout.tsx +19 -16
- package/corpus/templates/clips/app/routes/_app.spaces._index.tsx +13 -9
- package/corpus/templates/clips/changelog/2026-07-15-folders-and-sidebar-links-are-clickable-again-immediately-af.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-15-hovering-a-truncated-folder-name-now-shows-the-full-name.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-15-space-creation-controls-are-now-shown-only-to-organization-a.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-15-vocabulary-terms-can-now-be-deleted-from-the-dictation-dicti.md +6 -0
- package/corpus/templates/clips/desktop/src/styles.css +23 -1
- package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +49 -7
- package/corpus/templates/clips/server/lib/recordings.ts +5 -2
- 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 +29 -7
- package/corpus/templates/content/actions/_database-source-utils.ts +30 -16
- package/corpus/templates/content/actions/_database-utils.ts +15 -1
- package/corpus/templates/content/actions/_local-file-documents.ts +53 -1
- package/corpus/templates/content/actions/_property-utils.ts +7 -1
- 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/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/import-content-source.ts +6 -0
- package/corpus/templates/content/actions/list-documents.ts +3 -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/update-document.ts +16 -1
- 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 +223 -34
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +56 -8
- package/corpus/templates/content/app/i18n/zh-TW.ts +5 -0
- package/corpus/templates/content/app/i18n-data.ts +52 -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/server/db/schema.ts +4 -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/db.ts +6 -0
- package/corpus/templates/content/server/routes/api/document-agent-context.json.get.ts +5 -0
- package/corpus/templates/content/shared/api.ts +17 -0
- package/corpus/templates/content/shared/content-source.ts +7 -0
- package/corpus/templates/content/shared/properties.ts +2 -0
- 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/collab/struct-routes.d.ts +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/progress/routes.d.ts +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/handlers.d.ts +2 -2
- 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/agent-engine-api-key-route.d.ts +1 -1
- package/docs/content/locales/ar-SA/pure-agent-apps.mdx +2 -2
- package/docs/content/locales/de-DE/pure-agent-apps.mdx +2 -2
- package/docs/content/locales/es-ES/pure-agent-apps.mdx +2 -2
- package/docs/content/locales/fr-FR/pure-agent-apps.mdx +2 -2
- package/docs/content/locales/hi-IN/pure-agent-apps.mdx +2 -2
- package/docs/content/locales/ja-JP/pure-agent-apps.mdx +2 -2
- package/docs/content/locales/ko-KR/pure-agent-apps.mdx +2 -2
- package/docs/content/locales/pt-BR/pure-agent-apps.mdx +2 -2
- package/docs/content/locales/zh-CN/pure-agent-apps.mdx +2 -2
- package/docs/content/locales/zh-TW/pure-agent-apps.mdx +2 -2
- package/docs/content/pure-agent-apps.mdx +58 -14
- package/package.json +3 -3
|
@@ -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);
|