@tangle-network/agent-app 0.43.63 → 0.43.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/assistant/index.d.ts +4 -4
  2. package/dist/assistant/index.js +5 -5
  3. package/dist/{attachment-validation-tPRp-PP1.d.ts → attachment-validation-B2FFna9E.d.ts} +1 -1
  4. package/dist/chat-routes/index.d.ts +5 -5
  5. package/dist/chat-routes/index.js +5 -5
  6. package/dist/chat-store/index.d.ts +4 -4
  7. package/dist/chat-store/index.js +3 -3
  8. package/dist/{chunk-7YW6EBDX.js → chunk-3JUTOVUH.js} +2 -2
  9. package/dist/{chunk-YKOM4ZLQ.js → chunk-3ZK5IJSW.js} +1 -1
  10. package/dist/chunk-3ZK5IJSW.js.map +1 -0
  11. package/dist/{chunk-BG52UKNN.js → chunk-5EPIPT4V.js} +2 -2
  12. package/dist/{chunk-K3LIPKFV.js → chunk-6GQ5DKFK.js} +2 -2
  13. package/dist/{chunk-BPSV5AA2.js → chunk-FMDMI25K.js} +2 -2
  14. package/dist/{chunk-DTSPS2HV.js → chunk-X3N2H6JE.js} +2 -2
  15. package/dist/{chunk-C3NSB66C.js → chunk-YTSEDJWA.js} +59 -10
  16. package/dist/chunk-YTSEDJWA.js.map +1 -0
  17. package/dist/{contract-TjB68uqA.d.ts → contract-B3h7peV3.d.ts} +30 -5
  18. package/dist/durable-chat/index.d.ts +1 -1
  19. package/dist/durable-chat/index.js +2 -2
  20. package/dist/index.d.ts +3 -3
  21. package/dist/index.js +5 -5
  22. package/dist/interactions/index.d.ts +2 -2
  23. package/dist/interactions/index.js +2 -2
  24. package/dist/{parts-n9XUon0a.d.ts → parts-Bg8qcDvB.d.ts} +1 -1
  25. package/dist/stream/index.d.ts +3 -3
  26. package/dist/stream/index.js +2 -2
  27. package/dist/{stream-normalizer-BlCP_Cdd.d.ts → stream-normalizer-QYUl4vnl.d.ts} +1 -1
  28. package/dist/web-react/index.d.ts +53 -8
  29. package/dist/web-react/index.js +7 -5
  30. package/package.json +1 -1
  31. package/dist/chunk-C3NSB66C.js.map +0 -1
  32. package/dist/chunk-YKOM4ZLQ.js.map +0 -1
  33. /package/dist/{chunk-7YW6EBDX.js.map → chunk-3JUTOVUH.js.map} +0 -0
  34. /package/dist/{chunk-BG52UKNN.js.map → chunk-5EPIPT4V.js.map} +0 -0
  35. /package/dist/{chunk-K3LIPKFV.js.map → chunk-6GQ5DKFK.js.map} +0 -0
  36. /package/dist/{chunk-BPSV5AA2.js.map → chunk-FMDMI25K.js.map} +0 -0
  37. /package/dist/{chunk-DTSPS2HV.js.map → chunk-X3N2H6JE.js.map} +0 -0
@@ -18,11 +18,36 @@ type ChatSelectField = Extract<InteractionField, {
18
18
  }> & {
19
19
  allowCustom?: boolean;
20
20
  };
21
- /** Resolve a chat interaction field excluding select types or including chat select fields */
21
+ /**
22
+ * A field the user types free text into, which may declare the longest answer
23
+ * its answer route will accept — so a card can stop the typing rather than let
24
+ * the route reject it.
25
+ *
26
+ * Both `text` and `secret`, which is why this is not `ChatTextField`: unlike
27
+ * `ChatSelectField`, it does not name a single `type` literal. They render
28
+ * differently (a textarea vs a password input) and are grouped only by the one
29
+ * property that matters here — an answer whose length can run past what the
30
+ * route takes.
31
+ *
32
+ * Carried the same way as `allowCustom`: the schema may not define it, so it
33
+ * rides on the wire/persisted type and survives because `parseInteractionRequest`
34
+ * returns the raw payload. A product that SYNTHESISES an interaction (rather than
35
+ * parsing one off the wire) sets it directly from whatever bound its own route
36
+ * validates against.
37
+ */
38
+ type ChatFreeTextField = Extract<InteractionField, {
39
+ type: 'text' | 'secret';
40
+ }> & {
41
+ maxLength?: number;
42
+ };
43
+ /** An `InteractionField` widened where a card needs a flag the pinned schema may
44
+ * not define: `allowCustom` on a select, `maxLength` on a free-text field. Every
45
+ * other kind passes through unchanged. */
22
46
  type ChatInteractionField = Exclude<InteractionField, {
23
- type: 'select';
24
- }> | ChatSelectField;
25
- /** `InteractionRequest` whose select fields may carry `allowCustom`. */
47
+ type: 'select' | 'text' | 'secret';
48
+ }> | ChatSelectField | ChatFreeTextField;
49
+ /** `InteractionRequest` whose fields carry those widenings — a select that may
50
+ * grant `allowCustom`, a free-text field that may declare `maxLength`. */
26
51
  type InteractionRequestWire = Omit<InteractionRequest, 'answerSpec'> & {
27
52
  answerSpec: {
28
53
  fields: ChatInteractionField[];
@@ -157,4 +182,4 @@ declare function stampInteractionAnswers(parts: Array<Record<string, unknown>>,
157
182
  * Returns null (caller logs) when the part is not one of ours. */
158
183
  declare function persistedPartToInteraction(part: Record<string, unknown>): ChatInteraction | null;
159
184
 
160
- export { noticePartKey as A, parseInteractionAnswers as B, type ChatInteraction as C, parseInteractionCancel as D, parseInteractionRequest as E, persistedPartToInteraction as F, questionInteractionContentSignature as G, stampInteractionAnswers as H, INTERACTION_CANCEL_EVENT as I, type NoticeKind as N, type ParseInteractionAnswersResult as P, type ChatInteractionField as a, type ChatInteractionStatus as b, type ChatSelectField as c, type ComposerAnswerDelivery as d, INTERACTION_EVENT as e, INTERACTION_RESOLVED_EVENT as f, type InteractionAnswerValue as g, type InteractionAnswers as h, type InteractionCancelData as i, type InteractionPersistedPart as j, type InteractionRequestWire as k, type NoticePersistedPart as l, type ParseInteractionResult as m, canTransitionInteractionStatus as n, cancelStatusFor as o, composerAnswerData as p, composerAnswerDeliveries as q, dedupeQuestionInteractionsByContent as r, fieldAcceptsFreeText as s, interactionFromWireRequest as t, interactionPartKey as u, interactionToPersistedPart as v, isRenderableInteractionKind as w, isSafeInteractionFieldKey as x, isTerminalInteractionStatus as y, noticePart as z };
185
+ export { noticePart as A, noticePartKey as B, type ChatFreeTextField as C, parseInteractionAnswers as D, parseInteractionCancel as E, parseInteractionRequest as F, persistedPartToInteraction as G, questionInteractionContentSignature as H, INTERACTION_CANCEL_EVENT as I, stampInteractionAnswers as J, type NoticeKind as N, type ParseInteractionAnswersResult as P, type ChatInteraction as a, type ChatInteractionField as b, type ChatInteractionStatus as c, type ChatSelectField as d, type ComposerAnswerDelivery as e, INTERACTION_EVENT as f, INTERACTION_RESOLVED_EVENT as g, type InteractionAnswerValue as h, type InteractionAnswers as i, type InteractionCancelData as j, type InteractionPersistedPart as k, type InteractionRequestWire as l, type NoticePersistedPart as m, type ParseInteractionResult as n, canTransitionInteractionStatus as o, cancelStatusFor as p, composerAnswerData as q, composerAnswerDeliveries as r, dedupeQuestionInteractionsByContent as s, fieldAcceptsFreeText as t, interactionFromWireRequest as u, interactionPartKey as v, interactionToPersistedPart as w, isRenderableInteractionKind as x, isSafeInteractionFieldKey as y, isTerminalInteractionStatus as z };
@@ -1,4 +1,4 @@
1
- import { C as ChatInteraction, g as InteractionAnswerValue, k as InteractionRequestWire, i as InteractionCancelData, j as InteractionPersistedPart } from '../contract-TjB68uqA.js';
1
+ import { a as ChatInteraction, h as InteractionAnswerValue, l as InteractionRequestWire, j as InteractionCancelData, k as InteractionPersistedPart } from '../contract-B3h7peV3.js';
2
2
  import { ChatPlan } from '../plans/index.js';
3
3
  import { DurableInteractionRouteArgs, DurableInteractionRoutePersistence } from '../interactions/index.js';
4
4
  import '@tangle-network/agent-interface';
@@ -25,8 +25,8 @@ import {
25
25
  recordDurableInteractionCancel,
26
26
  stablePlanReceipt,
27
27
  upsertDurableInteractionAsk
28
- } from "../chunk-K3LIPKFV.js";
29
- import "../chunk-YKOM4ZLQ.js";
28
+ } from "../chunk-6GQ5DKFK.js";
29
+ import "../chunk-3ZK5IJSW.js";
30
30
  import "../chunk-YJMCRXQQ.js";
31
31
  export {
32
32
  DurableChatConflictError,
package/dist/index.d.ts CHANGED
@@ -17,13 +17,13 @@ export { KeyCrypto, KeyProvisioner, PlanLimit, PlatformBalanceInfo, PlatformBala
17
17
  export { HttpHeadProbeConfig, PreflightProbe, PreflightProbeResult, PreflightProbeVerdict, PreflightReport, RouterChatProbeConfig, SandboxAuthProbeConfig, formatPreflightReport, httpHeadProbe, routerChatProbe, runPreflight, sandboxAuthProbe } from './preflight/index.js';
18
18
  export { ObjectBody, ObjectKeyParts, ObjectStore, PutObjectOptions, R2LikeBucket, R2LikeObjectBody, R2LikeObjectHead, SignObjectUrlArgs, VerifyObjectUrlResult, assertSafeKeySegment, createProxiedArtifactRoute, createR2ObjectStore, objectKey, signObjectUrl, verifyObjectUrl } from './object-store/index.js';
19
19
  export { B as BULK_DELETE_MAX_THREADS, C as ChatStoreInputError, t as threadTitleFromMessage } from './core-7qIM7svy.js';
20
- export { C as ChatAttachmentKind, a as ChatAttachmentPart, b as ChatFilePart, c as ChatImagePart, d as ChatInteractionPart, e as ChatMentionKind, f as ChatMentionPart, g as ChatMessagePart, h as ChatNoticePart, i as ChatPartTime, j as ChatPlanPart, k as ChatReasoningPart, l as ChatStepFinishPart, m as ChatStepStartPart, n as ChatSubtaskPart, o as ChatTextPart, p as ChatToolPart, q as ChatToolState, r as ChatToolStatus, s as ChatUsageTokens, D as DEFAULT_ATTACHMENT_PROMPT_HEADER, S as StorableHarnessPartKind, t as attachmentInputToPart, u as attachmentKindForMime, v as attachmentPartsFromMessageParts, w as buildAttachmentPromptBlock, x as historyContentWithAttachments, y as isChatAttachmentPart, z as isChatInteractionPart, A as isChatMentionPart, B as isChatPlanPart, E as isChatStepFinishPart, F as isChatTextPart, G as isChatToolPart, H as mentionInputToPart, I as mentionPartsFromMessageParts, J as toChatMessageParts } from './parts-n9XUon0a.js';
20
+ export { C as ChatAttachmentKind, a as ChatAttachmentPart, b as ChatFilePart, c as ChatImagePart, d as ChatInteractionPart, e as ChatMentionKind, f as ChatMentionPart, g as ChatMessagePart, h as ChatNoticePart, i as ChatPartTime, j as ChatPlanPart, k as ChatReasoningPart, l as ChatStepFinishPart, m as ChatStepStartPart, n as ChatSubtaskPart, o as ChatTextPart, p as ChatToolPart, q as ChatToolState, r as ChatToolStatus, s as ChatUsageTokens, D as DEFAULT_ATTACHMENT_PROMPT_HEADER, S as StorableHarnessPartKind, t as attachmentInputToPart, u as attachmentKindForMime, v as attachmentPartsFromMessageParts, w as buildAttachmentPromptBlock, x as historyContentWithAttachments, y as isChatAttachmentPart, z as isChatInteractionPart, A as isChatMentionPart, B as isChatPlanPart, E as isChatStepFinishPart, F as isChatTextPart, G as isChatToolPart, H as mentionInputToPart, I as mentionPartsFromMessageParts, J as toChatMessageParts } from './parts-Bg8qcDvB.js';
21
21
  export { DeriveKeyOptions, createFieldCrypto, decodeHexKey, decryptAesGcm, decryptBytes, decryptWithKey, deriveKey, encryptAesGcm, encryptBytes, encryptWithKey } from './crypto/index.js';
22
- export { J as JsonRecord, M as MISSING_TOOL_TERMINAL_ERROR, a as MISSING_TOOL_TERMINAL_REASON, S as StreamEvent, b as asRecord, c as asString, d as attachmentPartKey, e as collapseRedundantTextParts, f as draftAssistantParts, g as encodeEvent, h as finalizeAssistantParts, i as finalizePendingInteractionParts, j as getPartKey, m as mergePersistedPart, n as normalizePersistedPart, k as normalizeTime, l as normalizeToolEvent, r as resolveToolId, o as resolveToolName, t as terminalizeDanglingAssistantToolUpdates, p as terminalizeDanglingToolPart, q as terminalizeDanglingToolParts } from './stream-normalizer-BlCP_Cdd.js';
22
+ export { J as JsonRecord, M as MISSING_TOOL_TERMINAL_ERROR, a as MISSING_TOOL_TERMINAL_REASON, S as StreamEvent, b as asRecord, c as asString, d as attachmentPartKey, e as collapseRedundantTextParts, f as draftAssistantParts, g as encodeEvent, h as finalizeAssistantParts, i as finalizePendingInteractionParts, j as getPartKey, m as mergePersistedPart, n as normalizePersistedPart, k as normalizeTime, l as normalizeToolEvent, r as resolveToolId, o as resolveToolName, t as terminalizeDanglingAssistantToolUpdates, p as terminalizeDanglingToolPart, q as terminalizeDanglingToolParts } from './stream-normalizer-QYUl4vnl.js';
23
23
  export { PersistedChatMessageForTurn, ResolvedChatTurn, buildUserTextParts, messageHasTurnId, normalizeClientTurnId, resolveChatTurn } from './stream/index.js';
24
24
  export { B as BufferedTurnEvent, a as BufferedTurnOptions, b as BufferedTurnTap, D as D1LikeForTurns, P as PumpBufferedTurnOptions, R as ReplayTurnEventsOptions, T as TURN_EVENTS_MIGRATION_SQL, c as TURN_STATUS_SCOPE_MIGRATION_SQL, d as TurnEventStore, e as TurnStatus, f as coalesceChatStreamEvents, g as coalesceDeltas, h as createBufferedTurnTap, i as createD1TurnEventStore, j as createMemoryTurnEventStore, p as pumpBufferedTurn, r as replayTurnEvents } from './turn-buffer-DGnAPKwa.js';
25
25
  export { HubExecClient, HubExecClientOptions, HubExecErrorCode, HubExecResult, HubInvokeDeps, HubInvokeInput, HubInvokeOutcome, ParsedIntegrationAction, invokeIntegrationHub, resolveIntegrationAction } from './integrations/index.js';
26
- export { C as ChatInteraction, a as ChatInteractionField, b as ChatInteractionStatus, c as ChatSelectField, d as ComposerAnswerDelivery, I as INTERACTION_CANCEL_EVENT, e as INTERACTION_EVENT, f as INTERACTION_RESOLVED_EVENT, g as InteractionAnswerValue, h as InteractionAnswers, i as InteractionCancelData, j as InteractionPersistedPart, k as InteractionRequestWire, N as NoticeKind, l as NoticePersistedPart, P as ParseInteractionAnswersResult, m as ParseInteractionResult, n as canTransitionInteractionStatus, o as cancelStatusFor, p as composerAnswerData, q as composerAnswerDeliveries, r as dedupeQuestionInteractionsByContent, s as fieldAcceptsFreeText, t as interactionFromWireRequest, u as interactionPartKey, v as interactionToPersistedPart, w as isRenderableInteractionKind, x as isSafeInteractionFieldKey, y as isTerminalInteractionStatus, z as noticePart, A as noticePartKey, B as parseInteractionAnswers, D as parseInteractionCancel, E as parseInteractionRequest, F as persistedPartToInteraction, G as questionInteractionContentSignature, H as stampInteractionAnswers } from './contract-TjB68uqA.js';
26
+ export { C as ChatFreeTextField, a as ChatInteraction, b as ChatInteractionField, c as ChatInteractionStatus, d as ChatSelectField, e as ComposerAnswerDelivery, I as INTERACTION_CANCEL_EVENT, f as INTERACTION_EVENT, g as INTERACTION_RESOLVED_EVENT, h as InteractionAnswerValue, i as InteractionAnswers, j as InteractionCancelData, k as InteractionPersistedPart, l as InteractionRequestWire, N as NoticeKind, m as NoticePersistedPart, P as ParseInteractionAnswersResult, n as ParseInteractionResult, o as canTransitionInteractionStatus, p as cancelStatusFor, q as composerAnswerData, r as composerAnswerDeliveries, s as dedupeQuestionInteractionsByContent, t as fieldAcceptsFreeText, u as interactionFromWireRequest, v as interactionPartKey, w as interactionToPersistedPart, x as isRenderableInteractionKind, y as isSafeInteractionFieldKey, z as isTerminalInteractionStatus, A as noticePart, B as noticePartKey, D as parseInteractionAnswers, E as parseInteractionCancel, F as parseInteractionRequest, G as persistedPartToInteraction, H as questionInteractionContentSignature, J as stampInteractionAnswers } from './contract-B3h7peV3.js';
27
27
  export { BeforeInteractionAnswerArgs, DurableInteractionRouteArgs, DurableInteractionRoutePersistence, InteractionAnswerBodyValidation, InteractionAnswerRoute, InteractionAnswerRouteOptions, InteractionClientOutcome, InteractionConnectionResolution, InteractionRouteLogger, ResolveInteractionConnectionArgs, SidecarInteractionsConnection, SidecarInteractionsError, SidecarInteractionsResult, createInteractionAnswerRoute, listSessionInteractions, mapInteractionRespondFailure, respondToSessionInteraction, validateInteractionAnswerBody } from './interactions/index.js';
28
28
  export { ChatPlan, ChatPlanPersistedPart, ChatPlanStatus, PLAN_SUBMITTED_EVENT, ParsePlanSubmittedResult, canTransitionPlanStatus, parsePlanSubmittedEvent, persistedPartToPlan, planFollowUpTurnId, planPartKey, planRevisionKey, planToPersistedPart } from './plans/index.js';
29
29
  export { CreateDurableInteractionRoutePersistenceOptions, DurableAnswerIntentJournal, DurableAnswerIntentRecord, DurableAnswerIntentState, DurableChatConflictError, DurableChatError, DurableChatErrorCode, DurableChatEventProjection, DurableChatGoneError, DurableChatScope, DurableChatStateStore, DurableChatUnavailableError, DurableFollowUpReceipt, DurableInteractionAcknowledgement, DurableInteractionGuarantee, DurableInteractionProjection, DurableInteractionProjectionAdapter, DurableInteractionSettlement, DurableInteractionSettlementFactoryOptions, DurableInteractionSettlementOptions, DurablePlanAuthority, DurablePlanAuthorityCurrentResult, DurablePlanAuthorityDecision, DurablePlanAuthorityResult, DurablePlanAuthorization, DurablePlanCommandJournal, DurablePlanCommandKey, DurablePlanCommandRecord, DurablePlanCommandState, DurablePlanDecision, DurablePlanEffectRecord, DurablePlanProjection, DurablePlanRouteAuthorizeArgs, DurablePlanRouteOptions, DurablePlanRoutes, DurablePlanStateStore, DurablePlanStore, InMemoryDurableChatStateStore, InMemoryDurableChatStore, PreparedDurableInteractionAnswer, applyDurableInteractionAnswer, applyDurableInteractionAsk, applyDurableInteractionCancel, createDurableChatEventProjection, createDurableChatScope, createDurableInteractionProjectionAdapter, createDurableInteractionRoutePersistence, createDurableInteractionSettlement, createDurablePlanRoutes, createInMemoryDurableChatStateStore, durableChatScopeKey, durableInteractionIntentKey, normalizePlanDecision, planAuthorityIdempotencyKey, planCommandKey, planEffectKey, recordDurableInteractionAnswer, recordDurableInteractionCancel, stablePlanReceipt, upsertDurableInteractionAsk } from './durable-chat/index.js';
package/dist/index.js CHANGED
@@ -76,7 +76,7 @@ import {
76
76
  recordDurableInteractionCancel,
77
77
  stablePlanReceipt,
78
78
  upsertDurableInteractionAsk
79
- } from "./chunk-K3LIPKFV.js";
79
+ } from "./chunk-6GQ5DKFK.js";
80
80
  import {
81
81
  DEFAULT_MISSION_STEP_KINDS,
82
82
  MISSION_CONTROL_CHANNEL_ID,
@@ -182,7 +182,7 @@ import {
182
182
  mapInteractionRespondFailure,
183
183
  respondToSessionInteraction,
184
184
  validateInteractionAnswerBody
185
- } from "./chunk-7YW6EBDX.js";
185
+ } from "./chunk-3JUTOVUH.js";
186
186
  import {
187
187
  DEFAULT_ATTACHMENT_PROMPT_HEADER,
188
188
  attachmentInputToPart,
@@ -200,7 +200,7 @@ import {
200
200
  mentionInputToPart,
201
201
  mentionPartsFromMessageParts,
202
202
  toChatMessageParts
203
- } from "./chunk-DTSPS2HV.js";
203
+ } from "./chunk-X3N2H6JE.js";
204
204
  import {
205
205
  MISSING_TOOL_TERMINAL_ERROR,
206
206
  MISSING_TOOL_TERMINAL_REASON,
@@ -222,7 +222,7 @@ import {
222
222
  terminalizeDanglingAssistantToolUpdates,
223
223
  terminalizeDanglingToolPart,
224
224
  terminalizeDanglingToolParts
225
- } from "./chunk-BG52UKNN.js";
225
+ } from "./chunk-5EPIPT4V.js";
226
226
  import {
227
227
  INTERACTION_CANCEL_EVENT,
228
228
  INTERACTION_EVENT,
@@ -247,7 +247,7 @@ import {
247
247
  persistedPartToInteraction,
248
248
  questionInteractionContentSignature,
249
249
  stampInteractionAnswers
250
- } from "./chunk-YKOM4ZLQ.js";
250
+ } from "./chunk-3ZK5IJSW.js";
251
251
  import {
252
252
  PLAN_SUBMITTED_EVENT,
253
253
  canTransitionPlanStatus,
@@ -1,5 +1,5 @@
1
- import { k as InteractionRequestWire } from '../contract-TjB68uqA.js';
2
- export { C as ChatInteraction, a as ChatInteractionField, b as ChatInteractionStatus, c as ChatSelectField, d as ComposerAnswerDelivery, I as INTERACTION_CANCEL_EVENT, e as INTERACTION_EVENT, f as INTERACTION_RESOLVED_EVENT, g as InteractionAnswerValue, h as InteractionAnswers, i as InteractionCancelData, j as InteractionPersistedPart, N as NoticeKind, l as NoticePersistedPart, P as ParseInteractionAnswersResult, m as ParseInteractionResult, n as canTransitionInteractionStatus, o as cancelStatusFor, p as composerAnswerData, q as composerAnswerDeliveries, r as dedupeQuestionInteractionsByContent, s as fieldAcceptsFreeText, t as interactionFromWireRequest, u as interactionPartKey, v as interactionToPersistedPart, w as isRenderableInteractionKind, x as isSafeInteractionFieldKey, y as isTerminalInteractionStatus, z as noticePart, A as noticePartKey, B as parseInteractionAnswers, D as parseInteractionCancel, E as parseInteractionRequest, F as persistedPartToInteraction, G as questionInteractionContentSignature, H as stampInteractionAnswers } from '../contract-TjB68uqA.js';
1
+ import { l as InteractionRequestWire } from '../contract-B3h7peV3.js';
2
+ export { C as ChatFreeTextField, a as ChatInteraction, b as ChatInteractionField, c as ChatInteractionStatus, d as ChatSelectField, e as ComposerAnswerDelivery, I as INTERACTION_CANCEL_EVENT, f as INTERACTION_EVENT, g as INTERACTION_RESOLVED_EVENT, h as InteractionAnswerValue, i as InteractionAnswers, j as InteractionCancelData, k as InteractionPersistedPart, N as NoticeKind, m as NoticePersistedPart, P as ParseInteractionAnswersResult, n as ParseInteractionResult, o as canTransitionInteractionStatus, p as cancelStatusFor, q as composerAnswerData, r as composerAnswerDeliveries, s as dedupeQuestionInteractionsByContent, t as fieldAcceptsFreeText, u as interactionFromWireRequest, v as interactionPartKey, w as interactionToPersistedPart, x as isRenderableInteractionKind, y as isSafeInteractionFieldKey, z as isTerminalInteractionStatus, A as noticePart, B as noticePartKey, D as parseInteractionAnswers, E as parseInteractionCancel, F as parseInteractionRequest, G as persistedPartToInteraction, H as questionInteractionContentSignature, J as stampInteractionAnswers } from '../contract-B3h7peV3.js';
3
3
  import { InteractionOutcome, InteractionData } from '@tangle-network/agent-interface';
4
4
  export { InteractionData, InteractionOutcome, InteractionRequest } from '@tangle-network/agent-interface';
5
5
 
@@ -5,7 +5,7 @@ import {
5
5
  mapInteractionRespondFailure,
6
6
  respondToSessionInteraction,
7
7
  validateInteractionAnswerBody
8
- } from "../chunk-7YW6EBDX.js";
8
+ } from "../chunk-3JUTOVUH.js";
9
9
  import {
10
10
  INTERACTION_CANCEL_EVENT,
11
11
  INTERACTION_EVENT,
@@ -30,7 +30,7 @@ import {
30
30
  persistedPartToInteraction,
31
31
  questionInteractionContentSignature,
32
32
  stampInteractionAnswers
33
- } from "../chunk-YKOM4ZLQ.js";
33
+ } from "../chunk-3ZK5IJSW.js";
34
34
  export {
35
35
  INTERACTION_CANCEL_EVENT,
36
36
  INTERACTION_EVENT,
@@ -1,5 +1,5 @@
1
1
  import { Part } from '@tangle-network/agent-interface';
2
- import { a as ChatInteractionField, b as ChatInteractionStatus, h as InteractionAnswers, N as NoticeKind } from './contract-TjB68uqA.js';
2
+ import { b as ChatInteractionField, c as ChatInteractionStatus, i as InteractionAnswers, N as NoticeKind } from './contract-B3h7peV3.js';
3
3
  import { ChatPlanPersistedPart } from './plans/index.js';
4
4
 
5
5
  /**
@@ -1,7 +1,7 @@
1
- import { J as JsonRecord } from '../stream-normalizer-BlCP_Cdd.js';
2
- export { M as MISSING_TOOL_TERMINAL_ERROR, a as MISSING_TOOL_TERMINAL_REASON, S as StreamEvent, b as asRecord, c as asString, d as attachmentPartKey, e as collapseRedundantTextParts, f as draftAssistantParts, g as encodeEvent, h as finalizeAssistantParts, i as finalizePendingInteractionParts, j as getPartKey, m as mergePersistedPart, n as normalizePersistedPart, k as normalizeTime, l as normalizeToolEvent, r as resolveToolId, o as resolveToolName, t as terminalizeDanglingAssistantToolUpdates, p as terminalizeDanglingToolPart, q as terminalizeDanglingToolParts } from '../stream-normalizer-BlCP_Cdd.js';
1
+ import { J as JsonRecord } from '../stream-normalizer-QYUl4vnl.js';
2
+ export { M as MISSING_TOOL_TERMINAL_ERROR, a as MISSING_TOOL_TERMINAL_REASON, S as StreamEvent, b as asRecord, c as asString, d as attachmentPartKey, e as collapseRedundantTextParts, f as draftAssistantParts, g as encodeEvent, h as finalizeAssistantParts, i as finalizePendingInteractionParts, j as getPartKey, m as mergePersistedPart, n as normalizePersistedPart, k as normalizeTime, l as normalizeToolEvent, r as resolveToolId, o as resolveToolName, t as terminalizeDanglingAssistantToolUpdates, p as terminalizeDanglingToolPart, q as terminalizeDanglingToolParts } from '../stream-normalizer-QYUl4vnl.js';
3
3
  export { B as BufferedTurnEvent, a as BufferedTurnOptions, b as BufferedTurnTap, D as D1LikeForTurns, P as PumpBufferedTurnOptions, R as ReplayTurnEventsOptions, T as TURN_EVENTS_MIGRATION_SQL, c as TURN_STATUS_SCOPE_MIGRATION_SQL, d as TurnEventStore, e as TurnStatus, f as coalesceChatStreamEvents, g as coalesceDeltas, h as createBufferedTurnTap, i as createD1TurnEventStore, j as createMemoryTurnEventStore, p as pumpBufferedTurn, r as replayTurnEvents } from '../turn-buffer-DGnAPKwa.js';
4
- import '../contract-TjB68uqA.js';
4
+ import '../contract-B3h7peV3.js';
5
5
  import '@tangle-network/agent-interface';
6
6
 
7
7
  /** Define the structure of a chat message stored for a specific conversation turn */
@@ -34,8 +34,8 @@ import {
34
34
  terminalizeDanglingAssistantToolUpdates,
35
35
  terminalizeDanglingToolPart,
36
36
  terminalizeDanglingToolParts
37
- } from "../chunk-BG52UKNN.js";
38
- import "../chunk-YKOM4ZLQ.js";
37
+ } from "../chunk-5EPIPT4V.js";
38
+ import "../chunk-3ZK5IJSW.js";
39
39
  import "../chunk-YJMCRXQQ.js";
40
40
  export {
41
41
  MISSING_TOOL_TERMINAL_ERROR,
@@ -1,4 +1,4 @@
1
- import { b as ChatInteractionStatus } from './contract-TjB68uqA.js';
1
+ import { c as ChatInteractionStatus } from './contract-B3h7peV3.js';
2
2
 
3
3
  /** Represent a JSON-compatible object with string keys and values of any type */
4
4
  type JsonRecord = Record<string, unknown>;
@@ -1,19 +1,19 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { a as ChatInteractionField, h as InteractionAnswers, b as ChatInteractionStatus, C as ChatInteraction, i as InteractionCancelData, c as ChatSelectField, k as InteractionRequestWire } from '../contract-TjB68uqA.js';
4
- export { d as ComposerAnswerDelivery, I as INTERACTION_CANCEL_EVENT, e as INTERACTION_EVENT, f as INTERACTION_RESOLVED_EVENT, g as InteractionAnswerValue, j as InteractionPersistedPart, N as NoticeKind, l as NoticePersistedPart, P as ParseInteractionAnswersResult, m as ParseInteractionResult, n as canTransitionInteractionStatus, o as cancelStatusFor, p as composerAnswerData, q as composerAnswerDeliveries, r as dedupeQuestionInteractionsByContent, s as fieldAcceptsFreeText, t as interactionFromWireRequest, u as interactionPartKey, v as interactionToPersistedPart, w as isRenderableInteractionKind, x as isSafeInteractionFieldKey, y as isTerminalInteractionStatus, z as noticePart, A as noticePartKey, B as parseInteractionAnswers, D as parseInteractionCancel, E as parseInteractionRequest, F as persistedPartToInteraction, G as questionInteractionContentSignature, H as stampInteractionAnswers } from '../contract-TjB68uqA.js';
3
+ import { b as ChatInteractionField, i as InteractionAnswers, c as ChatInteractionStatus, a as ChatInteraction, j as InteractionCancelData, d as ChatSelectField, l as InteractionRequestWire } from '../contract-B3h7peV3.js';
4
+ export { C as ChatFreeTextField, e as ComposerAnswerDelivery, I as INTERACTION_CANCEL_EVENT, f as INTERACTION_EVENT, g as INTERACTION_RESOLVED_EVENT, h as InteractionAnswerValue, k as InteractionPersistedPart, N as NoticeKind, m as NoticePersistedPart, P as ParseInteractionAnswersResult, n as ParseInteractionResult, o as canTransitionInteractionStatus, p as cancelStatusFor, q as composerAnswerData, r as composerAnswerDeliveries, s as dedupeQuestionInteractionsByContent, t as fieldAcceptsFreeText, u as interactionFromWireRequest, v as interactionPartKey, w as interactionToPersistedPart, x as isRenderableInteractionKind, y as isSafeInteractionFieldKey, z as isTerminalInteractionStatus, A as noticePart, B as noticePartKey, D as parseInteractionAnswers, E as parseInteractionCancel, F as parseInteractionRequest, G as persistedPartToInteraction, H as questionInteractionContentSignature, J as stampInteractionAnswers } from '../contract-B3h7peV3.js';
5
5
  import { ChatPlan } from '../plans/index.js';
6
6
  import { InteractionData } from '@tangle-network/agent-interface';
7
7
  export { InteractionData, InteractionOutcome, InteractionRequest } from '@tangle-network/agent-interface';
8
- import { K as FileMention, f as ChatMentionPart, a as ChatAttachmentPart, C as ChatAttachmentKind, O as ChatAttachmentInput } from '../parts-n9XUon0a.js';
9
- export { e as ChatMentionKind, N as ChatTurnFilePartInput, M as ChatTurnPartInput, L as ChatTurnRequestPayload, R as DISPATCH_MAX_MEDIA_PARTS, T as DISPATCH_MAX_PARTS, U as DISPATCH_REQUEST_MAX_BYTES, V as DISPATCH_STRUCTURAL_RESERVE_BYTES, Z as ProducerErrorEvent, _ as ProducerNoticeEvent, $ as ProducerPassthroughEvent, a0 as ProducerPassthroughEventType, a1 as ProducerReasoningEvent, a2 as ProducerTextEvent, a3 as ProducerToolCallEvent, a4 as ProducerToolResultEvent, a5 as ProducerUsageEvent, a6 as ProducerWireEvent, t as attachmentInputToPart, u as attachmentKindForMime, v as attachmentPartsFromMessageParts, a9 as base64WireLen, aa as buildMentionPromptBlock, ab as chatTurnRequestInit, ac as fileMentionsToParts, y as isChatAttachmentPart, ae as mediaTypeForMentionPath, H as mentionInputToPart, af as mentionKindForPath, I as mentionPartsFromMessageParts } from '../parts-n9XUon0a.js';
8
+ import { K as FileMention, f as ChatMentionPart, a as ChatAttachmentPart, C as ChatAttachmentKind, O as ChatAttachmentInput } from '../parts-Bg8qcDvB.js';
9
+ export { e as ChatMentionKind, N as ChatTurnFilePartInput, M as ChatTurnPartInput, L as ChatTurnRequestPayload, R as DISPATCH_MAX_MEDIA_PARTS, T as DISPATCH_MAX_PARTS, U as DISPATCH_REQUEST_MAX_BYTES, V as DISPATCH_STRUCTURAL_RESERVE_BYTES, Z as ProducerErrorEvent, _ as ProducerNoticeEvent, $ as ProducerPassthroughEvent, a0 as ProducerPassthroughEventType, a1 as ProducerReasoningEvent, a2 as ProducerTextEvent, a3 as ProducerToolCallEvent, a4 as ProducerToolResultEvent, a5 as ProducerUsageEvent, a6 as ProducerWireEvent, t as attachmentInputToPart, u as attachmentKindForMime, v as attachmentPartsFromMessageParts, a9 as base64WireLen, aa as buildMentionPromptBlock, ab as chatTurnRequestInit, ac as fileMentionsToParts, y as isChatAttachmentPart, ae as mediaTypeForMentionPath, H as mentionInputToPart, af as mentionKindForPath, I as mentionPartsFromMessageParts } from '../parts-Bg8qcDvB.js';
10
10
  import { S as StepAgentActivity } from '../agent-activity-C8ZG0F0M.js';
11
11
  import { a as FlowTrace } from '../flow-types-CqomVAUN.js';
12
12
  export { S as SandboxTerminalConnection, a as SandboxTerminalConnectionResponse, U as UseSandboxTerminalConnectionOptions, b as UseSandboxTerminalConnectionResult, t as tabTerminalConnectionId, u as useSandboxTerminalConnection } from '../sandbox-terminal-ChNEdHF8.js';
13
13
  import { CatalogModel } from '../catalog/index.js';
14
14
  import { Harness } from '../harness/index.js';
15
- export { a as ATTACHMENT_ACCEPT, e as FileIndexReadyResponse, f as FileIndexResponse, g as FileIndexWarmingResponse } from '../attachment-validation-tPRp-PP1.js';
16
- export { d as attachmentPartKey } from '../stream-normalizer-BlCP_Cdd.js';
15
+ export { a as ATTACHMENT_ACCEPT, e as FileIndexReadyResponse, f as FileIndexResponse, g as FileIndexWarmingResponse } from '../attachment-validation-B2FFna9E.js';
16
+ export { d as attachmentPartKey } from '../stream-normalizer-QYUl4vnl.js';
17
17
 
18
18
  /** Represent durable plan decisions as either approved or rejected */
19
19
  type DurablePlanDecision = 'approved' | 'rejected';
@@ -174,6 +174,23 @@ interface InteractionAnswerSubmitterOptions {
174
174
  timeoutMs?: number;
175
175
  fetchImpl?: typeof fetch;
176
176
  }
177
+ /**
178
+ * Runs a host-supplied submitter under the CARD's own deadline, and always
179
+ * resolves.
180
+ *
181
+ * `createInteractionAnswerSubmitter` aborts its own fetch, but a product may
182
+ * pass any `SubmitInteractionAnswer` — commonly one wrapping an untimed
183
+ * `fetch`. The deadline cannot live only in the submitter, because what gets
184
+ * stuck is the card: its in-flight guard is cleared by the awaited promise
185
+ * settling, so a submitter that never settles leaves that guard set for the
186
+ * life of the instance — "Submitting…" forever, and no answer can be sent
187
+ * again. A submitter with its own shorter timeout simply wins the race.
188
+ *
189
+ * Rejection is normalized too: a submitter that throws would otherwise escape
190
+ * the click handler as an unhandled rejection, leaving the user with a card
191
+ * that silently did nothing. It becomes a visible, retryable message instead.
192
+ */
193
+ declare function settleInteractionSubmit(run: () => Promise<InteractionSubmitResult>, timeoutMs?: number): Promise<InteractionSubmitResult>;
177
194
  /**
178
195
  * Builds the `SubmitInteractionAnswer` the cards consume: POSTs
179
196
  * `{ ...routingFields, id, outcome, data? }` with an abortable timeout and
@@ -435,9 +452,37 @@ interface InteractionQuestionCardProps {
435
452
  * turn. Return/resolve `false` when the send was rejected so the card stays
436
453
  * retryable. Omit to hide the late-answer affordance entirely. */
437
454
  onLateAnswer?: (message: string) => boolean | void | Promise<boolean | void>;
455
+ /** Overrides the kind badge ("Question"). */
456
+ kindLabel?: string;
457
+ /** Overrides the header note ("The agent asked for input"). Set it whenever an
458
+ * agent is not the one asking — a host that parks on a human at the graph
459
+ * level is not an agent's mid-run question, and a card that claims otherwise
460
+ * misreports why the work stopped. */
461
+ sourceNote?: string;
462
+ /** What happens if nobody answers, rendered beside the submit action.
463
+ *
464
+ * The caller owns both the clock and the copy: this card holds no timer, so a
465
+ * deadline that counts down re-renders on the caller's cadence rather than
466
+ * driving one of its own — and the consequence of silence ("the default is
467
+ * taken", "the run fails") is the host's policy to state, not this card's to
468
+ * infer. */
469
+ timeoutNote?: ReactNode;
470
+ /** Renders `body` as markdown. Omitted, `body` renders as plain text — so a
471
+ * host that passes authored markdown without this shows its syntax raw.
472
+ *
473
+ * `body` ONLY. `title` and every `field.label` stay plain strings: a label is
474
+ * also the input's accessible name (`aria-label`), which has to be text, and
475
+ * rendering one as nodes would either break that or silently disagree with
476
+ * what a screen reader announces. Put prose in `body`.
477
+ *
478
+ * `interaction.body` is untrusted: it arrives off the wire, written by an
479
+ * agent or whoever authored the ask. This card never injects HTML, but a
480
+ * renderer that does is an XSS sink — so return React elements, and sanitize
481
+ * (DOMPurify or equivalent) if you must produce HTML. */
482
+ renderMarkdown?: (markdown: string) => ReactNode;
438
483
  className?: string;
439
484
  }
440
- declare function InteractionQuestionCard({ interaction, canWrite, submitAnswer, onResolved, onLateAnswer, className, }: InteractionQuestionCardProps): react.JSX.Element;
485
+ declare function InteractionQuestionCard({ interaction, canWrite, submitAnswer, onResolved, onLateAnswer, kindLabel, sourceNote, timeoutNote, renderMarkdown, className, }: InteractionQuestionCardProps): react.JSX.Element;
441
486
 
442
487
  interface InteractionPlanCardProps {
443
488
  interaction: ChatInteraction;
@@ -1332,4 +1377,4 @@ declare function useThinkingSeconds(active: boolean): number;
1332
1377
  */
1333
1378
  declare function ChatMessages({ messages, models, renderMarkdown, renderExtras, durableCards, userLabel, agentLabel, loading, approval, onToolCallClick, toolRenderers, error, onRetry, renderEmpty, emptyState, header, resolveAttachmentUrl, }: ChatMessagesProps): react.JSX.Element;
1334
1379
 
1335
- export { type ActivityTone, type AgentActivityPage, AgentActivityPanel, type AgentActivityPanelProps, type AgentActivityRecord, AgentSessionControls, type AgentSessionControlsProps, type AttachmentFileResult, CatalogModel, ChatAttachmentInput, ChatAttachmentKind, ChatAttachmentPart, ChatComposer, type ChatComposerProps, type ChatEmptyDoor, ChatEmptyState, type ChatEmptyStateProps, ChatInteraction, ChatInteractionField, type ChatInteractionRestoreMode, ChatInteractionStatus, ChatMentionPart, type ChatMessageMetrics, type ChatMessageSegment, ChatMessages, type ChatMessagesProps, ChatSelectField, type ChatStreamCallbacks, type ChatStreamToolCall, type ChatStreamToolResult, type ChatToolCallInfo, type ChatUiMessage, type ComposerFile, type ComposerFilePart, type ComposerMentionProp, type ConsumeChatStreamResult, DEFAULT_EFFORT_LEVELS, DEFAULT_MENTION_EMPTY_TEXT, DEFAULT_MENTION_LIMIT, type DurableChatCard, DurableChatCards, type DurableChatCardsProps, type DurableInteractionAnswerSubmitterOptions, DurablePlanCard, type DurablePlanCardProps, DurablePlanClientError, type DurablePlanCurrentInput, type DurablePlanDecision, type DurablePlanDecisionClient, type DurablePlanDecisionClientOptions, type DurablePlanDecisionInput, type DurablePlanDecisionResult, type DurablePlanFollowUpReceipt, type EffortLevel, EffortPicker, type EffortPickerProps, type FieldValues, FileMention, FlowWaterfall, type FlowWaterfallProps, INDEX_REFRESH_AFTER_MS, INTERACTION_SUBMIT_TIMEOUT_MESSAGE, INTERACTION_SUBMIT_TIMEOUT_MS, InteractionActionButton, type InteractionAnswerSubmission, type InteractionAnswerSubmitterOptions, InteractionAnswers, type InteractionAttemptStore, InteractionBadge, type InteractionBadgeVariant, InteractionCancelData, InteractionPlanCard, type InteractionPlanCardProps, InteractionQuestionCard, type InteractionQuestionCardProps, InteractionRequestWire, type InteractionSubmitResult, type MentionItem, type MentionTextSegment, MessageAttachments, type MessageAttachmentsProps, MissionActivityLane, type MissionActivityLaneProps, ModelPicker, type ModelPickerProps, type ProposalApprovalHandlers, ProviderLogo, type ProviderLogoProps, QuestionOptionList, type QuestionOptionListProps, type RestoreChatInteractionsOptions, RunDrillIn, type RunDrillInProps, SeatPaywall, type SeatPaywallProps, type SmoothRevealOptions, type StreamChatOptions, type SubmitInteractionAnswer, type ToolDetailRenderers, type ToolRunRecord, type ToolRunStep, type UseChatInteractionsOptions, type UseChatInteractionsResult, type UseComposerAttachmentsOptions, type UseComposerAttachmentsResult, type UseDurablePlanFlowOptions, type UseDurablePlanFlowResult, type UseFileMentionsOptions, type UseFileMentionsResult, type WaterfallRow, __resetAttachmentFileCacheForTests, activityTone, buildAnswerData, cancelChatInteraction, consumeChatStream, createDurableInteractionAnswerSubmitter, createDurablePlanDecisionClient, createInteractionAnswerSubmitter, createMemoryInteractionAttemptStore, createSessionInteractionAttemptStore, dispatchChatStreamLine, durableChatCardsFromParts, fieldAnswer, fieldValuesFromAnswers, formatActivityCost, formatActivityDuration, formatModelCost, formatTokensPerSecond, hasSecretField, hydrateChatInteractions, interactionStatusLabels, interactionSubmissionSignature, interactionTerminalNotes, isLateAnswerableStatus, lateAnswerMessage, loadAttachmentFile, mergeActivityPages, nextRevealCount, pendingApprovalOf, rankFileMentions, resolveChatInteraction, responseErrorMessage, restoreChatInteractions, segmentMentionContent, streamChatTurn, terminalizePendingChatInteractions, triggerAttachmentDownload, upsertChatInteraction, useChatInteractions, useComposerAttachments, useDurablePlanFlow, useFileMentions, usePending, usePopover, useSmoothText, useThinkingSeconds, waterfallLayout };
1380
+ export { type ActivityTone, type AgentActivityPage, AgentActivityPanel, type AgentActivityPanelProps, type AgentActivityRecord, AgentSessionControls, type AgentSessionControlsProps, type AttachmentFileResult, CatalogModel, ChatAttachmentInput, ChatAttachmentKind, ChatAttachmentPart, ChatComposer, type ChatComposerProps, type ChatEmptyDoor, ChatEmptyState, type ChatEmptyStateProps, ChatInteraction, ChatInteractionField, type ChatInteractionRestoreMode, ChatInteractionStatus, ChatMentionPart, type ChatMessageMetrics, type ChatMessageSegment, ChatMessages, type ChatMessagesProps, ChatSelectField, type ChatStreamCallbacks, type ChatStreamToolCall, type ChatStreamToolResult, type ChatToolCallInfo, type ChatUiMessage, type ComposerFile, type ComposerFilePart, type ComposerMentionProp, type ConsumeChatStreamResult, DEFAULT_EFFORT_LEVELS, DEFAULT_MENTION_EMPTY_TEXT, DEFAULT_MENTION_LIMIT, type DurableChatCard, DurableChatCards, type DurableChatCardsProps, type DurableInteractionAnswerSubmitterOptions, DurablePlanCard, type DurablePlanCardProps, DurablePlanClientError, type DurablePlanCurrentInput, type DurablePlanDecision, type DurablePlanDecisionClient, type DurablePlanDecisionClientOptions, type DurablePlanDecisionInput, type DurablePlanDecisionResult, type DurablePlanFollowUpReceipt, type EffortLevel, EffortPicker, type EffortPickerProps, type FieldValues, FileMention, FlowWaterfall, type FlowWaterfallProps, INDEX_REFRESH_AFTER_MS, INTERACTION_SUBMIT_TIMEOUT_MESSAGE, INTERACTION_SUBMIT_TIMEOUT_MS, InteractionActionButton, type InteractionAnswerSubmission, type InteractionAnswerSubmitterOptions, InteractionAnswers, type InteractionAttemptStore, InteractionBadge, type InteractionBadgeVariant, InteractionCancelData, InteractionPlanCard, type InteractionPlanCardProps, InteractionQuestionCard, type InteractionQuestionCardProps, InteractionRequestWire, type InteractionSubmitResult, type MentionItem, type MentionTextSegment, MessageAttachments, type MessageAttachmentsProps, MissionActivityLane, type MissionActivityLaneProps, ModelPicker, type ModelPickerProps, type ProposalApprovalHandlers, ProviderLogo, type ProviderLogoProps, QuestionOptionList, type QuestionOptionListProps, type RestoreChatInteractionsOptions, RunDrillIn, type RunDrillInProps, SeatPaywall, type SeatPaywallProps, type SmoothRevealOptions, type StreamChatOptions, type SubmitInteractionAnswer, type ToolDetailRenderers, type ToolRunRecord, type ToolRunStep, type UseChatInteractionsOptions, type UseChatInteractionsResult, type UseComposerAttachmentsOptions, type UseComposerAttachmentsResult, type UseDurablePlanFlowOptions, type UseDurablePlanFlowResult, type UseFileMentionsOptions, type UseFileMentionsResult, type WaterfallRow, __resetAttachmentFileCacheForTests, activityTone, buildAnswerData, cancelChatInteraction, consumeChatStream, createDurableInteractionAnswerSubmitter, createDurablePlanDecisionClient, createInteractionAnswerSubmitter, createMemoryInteractionAttemptStore, createSessionInteractionAttemptStore, dispatchChatStreamLine, durableChatCardsFromParts, fieldAnswer, fieldValuesFromAnswers, formatActivityCost, formatActivityDuration, formatModelCost, formatTokensPerSecond, hasSecretField, hydrateChatInteractions, interactionStatusLabels, interactionSubmissionSignature, interactionTerminalNotes, isLateAnswerableStatus, lateAnswerMessage, loadAttachmentFile, mergeActivityPages, nextRevealCount, pendingApprovalOf, rankFileMentions, resolveChatInteraction, responseErrorMessage, restoreChatInteractions, segmentMentionContent, settleInteractionSubmit, streamChatTurn, terminalizePendingChatInteractions, triggerAttachmentDownload, upsertChatInteraction, useChatInteractions, useComposerAttachments, useDurablePlanFlow, useFileMentions, usePending, usePopover, useSmoothText, useThinkingSeconds, waterfallLayout };
@@ -60,6 +60,7 @@ import {
60
60
  responseErrorMessage,
61
61
  restoreChatInteractions,
62
62
  segmentMentionContent,
63
+ settleInteractionSubmit,
63
64
  streamChatTurn,
64
65
  terminalizePendingChatInteractions,
65
66
  triggerAttachmentDownload,
@@ -73,14 +74,14 @@ import {
73
74
  useSmoothText,
74
75
  useThinkingSeconds,
75
76
  waterfallLayout
76
- } from "../chunk-C3NSB66C.js";
77
+ } from "../chunk-YTSEDJWA.js";
77
78
  import {
78
79
  tabTerminalConnectionId,
79
80
  useSandboxTerminalConnection
80
81
  } from "../chunk-HCOROIRT.js";
81
82
  import {
82
83
  ATTACHMENT_ACCEPT
83
- } from "../chunk-BPSV5AA2.js";
84
+ } from "../chunk-FMDMI25K.js";
84
85
  import "../chunk-FBVLEGEG.js";
85
86
  import {
86
87
  DISPATCH_MAX_MEDIA_PARTS,
@@ -99,10 +100,10 @@ import {
99
100
  mentionInputToPart,
100
101
  mentionKindForPath,
101
102
  mentionPartsFromMessageParts
102
- } from "../chunk-DTSPS2HV.js";
103
+ } from "../chunk-X3N2H6JE.js";
103
104
  import {
104
105
  attachmentPartKey
105
- } from "../chunk-BG52UKNN.js";
106
+ } from "../chunk-5EPIPT4V.js";
106
107
  import {
107
108
  INTERACTION_CANCEL_EVENT,
108
109
  INTERACTION_EVENT,
@@ -127,7 +128,7 @@ import {
127
128
  persistedPartToInteraction,
128
129
  questionInteractionContentSignature,
129
130
  stampInteractionAnswers
130
- } from "../chunk-YKOM4ZLQ.js";
131
+ } from "../chunk-3ZK5IJSW.js";
131
132
  import "../chunk-YJMCRXQQ.js";
132
133
  import "../chunk-CQZSAR77.js";
133
134
  export {
@@ -232,6 +233,7 @@ export {
232
233
  responseErrorMessage,
233
234
  restoreChatInteractions,
234
235
  segmentMentionContent,
236
+ settleInteractionSubmit,
235
237
  stampInteractionAnswers,
236
238
  streamChatTurn,
237
239
  tabTerminalConnectionId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/agent-app",
3
- "version": "0.43.63",
3
+ "version": "0.43.65",
4
4
  "packageManager": "pnpm@10.33.4",
5
5
  "description": "Application-shell framework for Tangle agent products: a bounded tool loop, the structured agent→app tool side channel, integration-hub client, per-workspace billing, and crypto — composed over the Tangle agent substrate through typed seams.",
6
6
  "keywords": [