@superdurable/dex-agents 0.4.0 → 0.6.0

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 (144) hide show
  1. package/README.md +616 -55
  2. package/dist/src/agent-approval-display.d.ts +135 -0
  3. package/dist/src/agent-approval-display.js +536 -0
  4. package/dist/src/agent-approval-display.js.map +1 -0
  5. package/dist/src/agent-context-compaction.d.ts +1 -1
  6. package/dist/src/agent-framework-runner.d.ts +160 -12
  7. package/dist/src/agent-framework-runner.js +4 -0
  8. package/dist/src/agent-framework-runner.js.map +1 -1
  9. package/dist/src/agent-local-directory-media-store.d.ts +111 -0
  10. package/dist/src/agent-local-directory-media-store.js +417 -0
  11. package/dist/src/agent-local-directory-media-store.js.map +1 -0
  12. package/dist/src/agent-media.d.ts +279 -0
  13. package/dist/src/agent-media.js +457 -0
  14. package/dist/src/agent-media.js.map +1 -0
  15. package/dist/src/agent-session-codecs.d.ts +5 -1
  16. package/dist/src/agent-session-codecs.js +76 -4
  17. package/dist/src/agent-session-codecs.js.map +1 -1
  18. package/dist/src/agent-session-failure.d.ts +4 -2
  19. package/dist/src/agent-session-failure.js +6 -2
  20. package/dist/src/agent-session-failure.js.map +1 -1
  21. package/dist/src/agent-session-flow-graph.d.ts +46 -0
  22. package/dist/src/agent-session-flow-graph.js +51 -0
  23. package/dist/src/agent-session-flow-graph.js.map +1 -1
  24. package/dist/src/agent-session-flow.d.ts +28 -3
  25. package/dist/src/agent-session-flow.js +21 -1
  26. package/dist/src/agent-session-flow.js.map +1 -1
  27. package/dist/src/agent-session-persistence.d.ts +33 -0
  28. package/dist/src/agent-session-persistence.js +22 -1
  29. package/dist/src/agent-session-persistence.js.map +1 -1
  30. package/dist/src/agent-session-start.d.ts +1 -1
  31. package/dist/src/agent-session-start.js +2 -2
  32. package/dist/src/agent-session-start.js.map +1 -1
  33. package/dist/src/agent-session-steps.d.ts +2 -0
  34. package/dist/src/agent-session-steps.js +74 -5
  35. package/dist/src/agent-session-steps.js.map +1 -1
  36. package/dist/src/agent-session-summary.d.ts +138 -0
  37. package/dist/src/agent-session-summary.js +151 -0
  38. package/dist/src/agent-session-summary.js.map +1 -0
  39. package/dist/src/agent-session-tracer.js +1 -1
  40. package/dist/src/agent-session-tracer.js.map +1 -1
  41. package/dist/src/agent-session-transitions.d.ts +11 -3
  42. package/dist/src/agent-session-transitions.js +58 -6
  43. package/dist/src/agent-session-transitions.js.map +1 -1
  44. package/dist/src/agent-session-values.d.ts +179 -2
  45. package/dist/src/agent-session-values.js.map +1 -1
  46. package/dist/src/agent-session-wait-steps.js +14 -2
  47. package/dist/src/agent-session-wait-steps.js.map +1 -1
  48. package/dist/src/ai-sdk/ai-sdk-model-client.d.ts +15 -3
  49. package/dist/src/ai-sdk/ai-sdk-model-client.js +36 -7
  50. package/dist/src/ai-sdk/ai-sdk-model-client.js.map +1 -1
  51. package/dist/src/ai-sdk/index.d.ts +1 -1
  52. package/dist/src/ai-sdk/index.js +1 -1
  53. package/dist/src/ai-sdk/index.js.map +1 -1
  54. package/dist/src/{stepwise → builtin-loop}/agent-definition.d.ts +120 -5
  55. package/dist/src/builtin-loop/agent-definition.js.map +1 -0
  56. package/dist/src/builtin-loop/builtin-agent-session-flow.d.ts +77 -0
  57. package/dist/src/{stepwise/stepwise-agent-session-flow.js → builtin-loop/builtin-agent-session-flow.js} +19 -9
  58. package/dist/src/builtin-loop/builtin-agent-session-flow.js.map +1 -0
  59. package/dist/src/{stepwise/stepwise-agent-runner.d.ts → builtin-loop/builtin-loop-agent-runner.d.ts} +72 -14
  60. package/dist/src/{stepwise/stepwise-agent-runner.js → builtin-loop/builtin-loop-agent-runner.js} +284 -41
  61. package/dist/src/builtin-loop/builtin-loop-agent-runner.js.map +1 -0
  62. package/dist/src/{stepwise/stepwise-input-items.d.ts → builtin-loop/builtin-loop-input-items.d.ts} +7 -3
  63. package/dist/src/{stepwise/stepwise-input-items.js → builtin-loop/builtin-loop-input-items.js} +57 -10
  64. package/dist/src/builtin-loop/builtin-loop-input-items.js.map +1 -0
  65. package/dist/src/builtin-loop/function-tool.d.ts +282 -0
  66. package/dist/src/{stepwise → builtin-loop}/function-tool.js +63 -3
  67. package/dist/src/builtin-loop/function-tool.js.map +1 -0
  68. package/dist/src/builtin-loop/index.d.ts +8 -0
  69. package/dist/src/builtin-loop/index.js +13 -0
  70. package/dist/src/builtin-loop/index.js.map +1 -0
  71. package/dist/src/builtin-loop/json-schema-validation.js.map +1 -0
  72. package/dist/src/{stepwise → builtin-loop}/model-client.d.ts +36 -7
  73. package/dist/src/builtin-loop/model-client.js.map +1 -0
  74. package/dist/src/{stepwise → builtin-loop}/scripted-model-client.d.ts +8 -5
  75. package/dist/src/{stepwise → builtin-loop}/scripted-model-client.js +8 -5
  76. package/dist/src/builtin-loop/scripted-model-client.js.map +1 -0
  77. package/dist/src/{stepwise → builtin-loop}/tool-source.d.ts +2 -2
  78. package/dist/src/builtin-loop/tool-source.js.map +1 -0
  79. package/dist/src/connectors/connector-input-schema.js +1 -1
  80. package/dist/src/connectors/connector-input-schema.js.map +1 -1
  81. package/dist/src/connectors/connector-step-context.d.ts +19 -2
  82. package/dist/src/connectors/connector-step-context.js +61 -5
  83. package/dist/src/connectors/connector-step-context.js.map +1 -1
  84. package/dist/src/connectors/connector-tool-source.d.ts +63 -14
  85. package/dist/src/connectors/connector-tool-source.js +124 -25
  86. package/dist/src/connectors/connector-tool-source.js.map +1 -1
  87. package/dist/src/index.d.ts +8 -4
  88. package/dist/src/index.js +5 -1
  89. package/dist/src/index.js.map +1 -1
  90. package/dist/src/mcp/index.d.ts +1 -0
  91. package/dist/src/mcp/index.js +1 -0
  92. package/dist/src/mcp/index.js.map +1 -1
  93. package/dist/src/mcp/mcp-dex-conventions.d.ts +57 -0
  94. package/dist/src/mcp/mcp-dex-conventions.js +90 -0
  95. package/dist/src/mcp/mcp-dex-conventions.js.map +1 -0
  96. package/dist/src/mcp/mcp-image-content.d.ts +20 -0
  97. package/dist/src/mcp/mcp-image-content.js +82 -0
  98. package/dist/src/mcp/mcp-image-content.js.map +1 -0
  99. package/dist/src/mcp/mcp-tool-source.d.ts +205 -18
  100. package/dist/src/mcp/mcp-tool-source.js +289 -47
  101. package/dist/src/mcp/mcp-tool-source.js.map +1 -1
  102. package/dist/src/s3/index.d.ts +1 -0
  103. package/dist/src/s3/index.js +9 -0
  104. package/dist/src/s3/index.js.map +1 -0
  105. package/dist/src/s3/s3-media-store.d.ts +138 -0
  106. package/dist/src/s3/s3-media-store.js +255 -0
  107. package/dist/src/s3/s3-media-store.js.map +1 -0
  108. package/dist/src/stepwise/index.d.ts +41 -8
  109. package/dist/src/stepwise/index.js +35 -5
  110. package/dist/src/stepwise/index.js.map +1 -1
  111. package/dist/src/testing/agent-session-test-client.d.ts +6 -3
  112. package/dist/src/testing/agent-session-test-client.js +10 -3
  113. package/dist/src/testing/agent-session-test-client.js.map +1 -1
  114. package/dist/src/testing/private-dex-engine.d.ts +8 -0
  115. package/dist/src/testing/private-dex-engine.js +17 -1
  116. package/dist/src/testing/private-dex-engine.js.map +1 -1
  117. package/dist/src/testing/scripted-model-client.d.ts +1 -1
  118. package/dist/src/testing/scripted-model-client.js +2 -2
  119. package/dist/src/testing/scripted-model-client.js.map +1 -1
  120. package/dist/src/tool-source-router.d.ts +3 -3
  121. package/dist/src/tool-source-router.js +2 -2
  122. package/dist/src/ui-stream/agent-event-json.d.ts +2 -1
  123. package/dist/src/ui-stream/agent-event-json.js +3 -1
  124. package/dist/src/ui-stream/agent-event-json.js.map +1 -1
  125. package/dist/src/ui-stream/agent-ui-messages.d.ts +11 -3
  126. package/dist/src/ui-stream/agent-ui-messages.js +29 -5
  127. package/dist/src/ui-stream/agent-ui-messages.js.map +1 -1
  128. package/package.json +17 -4
  129. package/dist/src/stepwise/agent-definition.js.map +0 -1
  130. package/dist/src/stepwise/function-tool.d.ts +0 -130
  131. package/dist/src/stepwise/function-tool.js.map +0 -1
  132. package/dist/src/stepwise/json-schema-validation.js.map +0 -1
  133. package/dist/src/stepwise/model-client.js.map +0 -1
  134. package/dist/src/stepwise/scripted-model-client.js.map +0 -1
  135. package/dist/src/stepwise/stepwise-agent-runner.js.map +0 -1
  136. package/dist/src/stepwise/stepwise-agent-session-flow.d.ts +0 -35
  137. package/dist/src/stepwise/stepwise-agent-session-flow.js.map +0 -1
  138. package/dist/src/stepwise/stepwise-input-items.js.map +0 -1
  139. package/dist/src/stepwise/tool-source.js.map +0 -1
  140. /package/dist/src/{stepwise → builtin-loop}/agent-definition.js +0 -0
  141. /package/dist/src/{stepwise → builtin-loop}/json-schema-validation.d.ts +0 -0
  142. /package/dist/src/{stepwise → builtin-loop}/json-schema-validation.js +0 -0
  143. /package/dist/src/{stepwise → builtin-loop}/model-client.js +0 -0
  144. /package/dist/src/{stepwise → builtin-loop}/tool-source.js +0 -0
@@ -0,0 +1,138 @@
1
+ import { type Client, type FlowStatus } from "@superdurable/dex";
2
+ /**
3
+ * Most Unicode code points {@link buildSessionTitle} keeps.
4
+ *
5
+ * @since 0.6.0
6
+ */
7
+ export declare const sessionTitleMaxCodePoints = 80;
8
+ /**
9
+ * Page size that {@link listAgentSessions} uses when the caller gives none.
10
+ *
11
+ * @since 0.6.0
12
+ */
13
+ export declare const defaultSessionListPageSize = 50;
14
+ /**
15
+ * The namespace has not registered `text1`, so {@link listAgentSessions} cannot search titles.
16
+ *
17
+ * A Worker registers the index key when its session Flow sets `summaryAttributesIndexed`. List without
18
+ * `titleSearch`, and filter the loaded sessions by ID instead.
19
+ *
20
+ * @since 0.6.0
21
+ */
22
+ export declare class SessionTitleSearchUnavailableError extends Error {
23
+ constructor(options?: ErrorOptions);
24
+ }
25
+ /**
26
+ * One session of a {@link listAgentSessions} page, read from its search entry.
27
+ *
28
+ * `title`, `lastActivityAt`, and `turnCount` are `null` when the session does not have them: its Flow did not set
29
+ * `summaryAttributesIndexed` when it wrote them, or a release before 0.6.0 started it. Such an earlier session gains
30
+ * the last activity time and the turn count when a Worker with the option starts or ends one of its turns. It gains a
31
+ * title only if that turn is its first one. Turning the option off stops new writes, and the values written before
32
+ * stay. Show a missing value as a dash.
33
+ *
34
+ * @since 0.6.0
35
+ */
36
+ export interface AgentSessionSummary {
37
+ /** The session ID, which is the Flow ID. */
38
+ readonly sessionId: string;
39
+ /** The run ID of this Flow run. */
40
+ readonly runId: string;
41
+ /** The Flow status, such as `"running"`. */
42
+ readonly status: FlowStatus;
43
+ /** When the session started. */
44
+ readonly startedAt: Date;
45
+ /** When the session closed, or `undefined` while it runs. */
46
+ readonly closedAt: Date | undefined;
47
+ /** The `AgentSessionTitle` Attribute, or `null`. */
48
+ readonly title: string | null;
49
+ /** The `AgentSessionLastActivityAt` Attribute as a `Date`, or `null`. */
50
+ readonly lastActivityAt: Date | null;
51
+ /** The `AgentSessionTurnCount` Attribute, or `null`. */
52
+ readonly turnCount: number | null;
53
+ }
54
+ /**
55
+ * One page of {@link listAgentSessions}.
56
+ *
57
+ * @since 0.6.0
58
+ */
59
+ export interface AgentSessionSummaryPage {
60
+ /**
61
+ * The sessions of the page, in Dex search order: running sessions first, then the most recently closed, then the
62
+ * most recently started.
63
+ */
64
+ readonly sessions: readonly AgentSessionSummary[];
65
+ /** Pass it to {@link listAgentSessions} for the next page; `""` on the last page. */
66
+ readonly nextPageToken: string;
67
+ }
68
+ /**
69
+ * Which page of which sessions {@link listAgentSessions} returns.
70
+ *
71
+ * @since 0.6.0
72
+ */
73
+ export interface ListAgentSessionsOptions {
74
+ /** Most sessions in the page. Defaults to {@link defaultSessionListPageSize}, 50. */
75
+ readonly pageSize?: number;
76
+ /** {@link AgentSessionSummaryPage.nextPageToken} of the previous page, or `""`, the default, for the first page. */
77
+ readonly nextPageToken?: string;
78
+ /**
79
+ * Words the title must contain, compared without case. Omitted or blank lists every session. A word is a run of
80
+ * letters and digits, and only whole words match: `flaky` finds "Fix the flaky test", `flak` does not. Sessions
81
+ * without a title never match. Pass the same value with each page token.
82
+ */
83
+ readonly titleSearch?: string;
84
+ }
85
+ /**
86
+ * Returns the title a session takes from its first user message.
87
+ *
88
+ * Each run of ASCII spaces, tabs, and line breaks becomes one space, leading and trailing spaces are removed, and the
89
+ * text is cut to its first {@link sessionTitleMaxCodePoints} Unicode code points, without a trailing space. The Python core gives the
90
+ * same title for the same text.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * buildSessionTitle(" Fix the\n flaky test "); // "Fix the flaky test"
95
+ * ```
96
+ *
97
+ * @param firstMessageText - Text of the session's first user message.
98
+ * @returns The title, or `null` when the text has no other character.
99
+ * @since 0.6.0
100
+ */
101
+ export declare function buildSessionTitle(firstMessageText: string): string | null;
102
+ /**
103
+ * Returns one page of the sessions of a session Flow type.
104
+ *
105
+ * It makes one `Client.searchFlows` call. It needs no Worker and reads no snapshot. Dex orders the page; it cannot
106
+ * sort by last activity, so sort the sessions you loaded with {@link sortAgentSessionsByLastActivity}. The title,
107
+ * last activity time, and turn count come from a Flow with `summaryAttributesIndexed`; other sessions list without
108
+ * them.
109
+ *
110
+ * @example
111
+ * ```ts
112
+ * let page = await listAgentSessions(client, flow.getFlowType(), { titleSearch: "refund" });
113
+ * while (page.nextPageToken !== "") {
114
+ * page = await listAgentSessions(client, flow.getFlowType(), { titleSearch: "refund", nextPageToken: page.nextPageToken });
115
+ * }
116
+ * ```
117
+ *
118
+ * @param client - An open Client. Its Registry does not need the session Flow.
119
+ * @param flowType - The session Flow type, such as `flow.getFlowType()`.
120
+ * @param options - The page size, page token, and title search.
121
+ * @returns The page of sessions.
122
+ * @throws {RangeError} When `pageSize` is negative.
123
+ * @throws {SessionTitleSearchUnavailableError} When `titleSearch` is given and the namespace has not registered the
124
+ * index key `text1`.
125
+ * @throws {DexServiceError} When Dex rejects the search for another reason.
126
+ * @since 0.6.0
127
+ */
128
+ export declare function listAgentSessions(client: Client, flowType: string, options?: ListAgentSessionsOptions): Promise<AgentSessionSummaryPage>;
129
+ /**
130
+ * Returns sessions with the most recent activity first.
131
+ *
132
+ * A session without a last activity time sorts by its start time. Sessions with the same time sort by session ID.
133
+ *
134
+ * @param sessions - Sessions from one or more {@link listAgentSessions} pages.
135
+ * @returns A new array, most recent first.
136
+ * @since 0.6.0
137
+ */
138
+ export declare function sortAgentSessionsByLastActivity(sessions: readonly AgentSessionSummary[]): AgentSessionSummary[];
@@ -0,0 +1,151 @@
1
+ // Copyright (c) 2026 Super Durable, Inc.
2
+ //
3
+ // Licensed under the Sustainable Use License 1.0.
4
+ // You may not use this file except in compliance with the License.
5
+ // See the LICENSE file in the repository root.
6
+ //
7
+ // SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
8
+ import { DexServiceError } from "@superdurable/dex";
9
+ import { sessionSummaryIndexKeys } from "./agent-session-persistence.js";
10
+ /**
11
+ * Most Unicode code points {@link buildSessionTitle} keeps.
12
+ *
13
+ * @since 0.6.0
14
+ */
15
+ export const sessionTitleMaxCodePoints = 80;
16
+ /**
17
+ * Page size that {@link listAgentSessions} uses when the caller gives none.
18
+ *
19
+ * @since 0.6.0
20
+ */
21
+ export const defaultSessionListPageSize = 50;
22
+ // gRPC INVALID_ARGUMENT, and the start of the server's text when a query names an unregistered index key.
23
+ const invalidArgumentCode = 3;
24
+ const unknownFieldText = "unknown visibility field";
25
+ // Only ASCII whitespace, so every core collapses exactly the same characters.
26
+ const titleWhitespace = /[ \t\n\r\f\v]+/g;
27
+ /**
28
+ * The namespace has not registered `text1`, so {@link listAgentSessions} cannot search titles.
29
+ *
30
+ * A Worker registers the index key when its session Flow sets `summaryAttributesIndexed`. List without
31
+ * `titleSearch`, and filter the loaded sessions by ID instead.
32
+ *
33
+ * @since 0.6.0
34
+ */
35
+ export class SessionTitleSearchUnavailableError extends Error {
36
+ constructor(options) {
37
+ super("the namespace has not registered the session title index text1; a Worker whose session Flow sets summaryAttributesIndexed registers it", options);
38
+ this.name = "SessionTitleSearchUnavailableError";
39
+ }
40
+ }
41
+ /**
42
+ * Returns the title a session takes from its first user message.
43
+ *
44
+ * Each run of ASCII spaces, tabs, and line breaks becomes one space, leading and trailing spaces are removed, and the
45
+ * text is cut to its first {@link sessionTitleMaxCodePoints} Unicode code points, without a trailing space. The Python core gives the
46
+ * same title for the same text.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * buildSessionTitle(" Fix the\n flaky test "); // "Fix the flaky test"
51
+ * ```
52
+ *
53
+ * @param firstMessageText - Text of the session's first user message.
54
+ * @returns The title, or `null` when the text has no other character.
55
+ * @since 0.6.0
56
+ */
57
+ export function buildSessionTitle(firstMessageText) {
58
+ const collapsed = removeEdgeSpaces(firstMessageText.replace(titleWhitespace, " "));
59
+ const title = removeEdgeSpaces(Array.from(collapsed).slice(0, sessionTitleMaxCodePoints).join(""));
60
+ return title === "" ? null : title;
61
+ }
62
+ /**
63
+ * Returns one page of the sessions of a session Flow type.
64
+ *
65
+ * It makes one `Client.searchFlows` call. It needs no Worker and reads no snapshot. Dex orders the page; it cannot
66
+ * sort by last activity, so sort the sessions you loaded with {@link sortAgentSessionsByLastActivity}. The title,
67
+ * last activity time, and turn count come from a Flow with `summaryAttributesIndexed`; other sessions list without
68
+ * them.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * let page = await listAgentSessions(client, flow.getFlowType(), { titleSearch: "refund" });
73
+ * while (page.nextPageToken !== "") {
74
+ * page = await listAgentSessions(client, flow.getFlowType(), { titleSearch: "refund", nextPageToken: page.nextPageToken });
75
+ * }
76
+ * ```
77
+ *
78
+ * @param client - An open Client. Its Registry does not need the session Flow.
79
+ * @param flowType - The session Flow type, such as `flow.getFlowType()`.
80
+ * @param options - The page size, page token, and title search.
81
+ * @returns The page of sessions.
82
+ * @throws {RangeError} When `pageSize` is negative.
83
+ * @throws {SessionTitleSearchUnavailableError} When `titleSearch` is given and the namespace has not registered the
84
+ * index key `text1`.
85
+ * @throws {DexServiceError} When Dex rejects the search for another reason.
86
+ * @since 0.6.0
87
+ */
88
+ export async function listAgentSessions(client, flowType, options = {}) {
89
+ let query = `FlowType = ${quoteQueryString(flowType)}`;
90
+ const titleSearch = options.titleSearch;
91
+ const isTitleSearch = titleSearch !== undefined && titleSearch.trim() !== "";
92
+ if (isTitleSearch) {
93
+ query += ` AND ${sessionSummaryIndexKeys.title} = ${quoteQueryString(titleSearch)}`;
94
+ }
95
+ let page;
96
+ try {
97
+ page = await client.searchFlows(query, options.pageSize ?? defaultSessionListPageSize, options.nextPageToken ?? "");
98
+ }
99
+ catch (error) {
100
+ if (isTitleSearch &&
101
+ error instanceof DexServiceError &&
102
+ error.code === invalidArgumentCode &&
103
+ error.detail.includes(`${unknownFieldText} "${sessionSummaryIndexKeys.title}"`)) {
104
+ throw new SessionTitleSearchUnavailableError({ cause: error });
105
+ }
106
+ throw error;
107
+ }
108
+ return { sessions: page.flows.map(readSessionSummary), nextPageToken: page.nextPageToken };
109
+ }
110
+ /**
111
+ * Returns sessions with the most recent activity first.
112
+ *
113
+ * A session without a last activity time sorts by its start time. Sessions with the same time sort by session ID.
114
+ *
115
+ * @param sessions - Sessions from one or more {@link listAgentSessions} pages.
116
+ * @returns A new array, most recent first.
117
+ * @since 0.6.0
118
+ */
119
+ export function sortAgentSessionsByLastActivity(sessions) {
120
+ return [...sessions].sort((left, right) => activityTime(right) - activityTime(left) ||
121
+ (left.sessionId < right.sessionId ? -1 : left.sessionId > right.sessionId ? 1 : 0));
122
+ }
123
+ function readSessionSummary(entry) {
124
+ const title = entry.indexedAttributes.get(sessionSummaryIndexKeys.title);
125
+ const lastActivityAt = entry.indexedAttributes.get(sessionSummaryIndexKeys.lastActivityAt);
126
+ const turnCount = entry.indexedAttributes.get(sessionSummaryIndexKeys.turnCount);
127
+ return {
128
+ sessionId: entry.flowId,
129
+ runId: entry.runId,
130
+ status: entry.status,
131
+ startedAt: entry.startedAt,
132
+ closedAt: entry.closedAt,
133
+ title: typeof title === "string" ? title : null,
134
+ lastActivityAt: typeof lastActivityAt === "string" ? parseTime(lastActivityAt) : null,
135
+ turnCount: typeof turnCount === "bigint" ? Number(turnCount) : null,
136
+ };
137
+ }
138
+ function parseTime(text) {
139
+ const time = Date.parse(text);
140
+ return Number.isNaN(time) ? null : new Date(time);
141
+ }
142
+ function activityTime(session) {
143
+ return (session.lastActivityAt ?? session.startedAt).getTime();
144
+ }
145
+ function removeEdgeSpaces(text) {
146
+ return text.replace(/^ +| +$/g, "");
147
+ }
148
+ function quoteQueryString(text) {
149
+ return `"${text.replaceAll("\\", "\\\\").replaceAll('"', '\\"')}"`;
150
+ }
151
+ //# sourceMappingURL=agent-session-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session-summary.js","sourceRoot":"","sources":["../../src/agent-session-summary.ts"],"names":[],"mappings":"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"}
@@ -264,7 +264,7 @@ class RecordingModelCallSpan {
264
264
  this.setUsageAttributes(span, outcome.usage);
265
265
  }
266
266
  let outputMessages;
267
- if (outcome.kind === "completed") {
267
+ if (outcome.kind === "completed" || outcome.kind === "turn_continued") {
268
268
  const producedIndex = firstProducedMessageIndex(outcome.newMessages);
269
269
  span.setAttribute("dex.agent.output_messages.keys", this.appendedMessageKeys.slice(producedIndex));
270
270
  outputMessages = outcome.newMessages.slice(producedIndex).map(chatMessage);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-tracer.js","sourceRoot":"","sources":["../../src/agent-session-tracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session-tracer.js","sourceRoot":"","sources":["../../src/agent-session-tracer.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { type AgentSessionPersistence } from "./agent-session-persistence.js";
7
7
  import { type ModelSpendLimit } from "./agent-session-spend-limit.js";
8
8
  import { type MessageChunkLoads, type ResolvedRunModelLimit } from "./agent-session-step-options.js";
9
9
  import type { AgentSessionTracer } from "./agent-session-tracer.js";
10
- import { type AgentInterrupt, type AgentInterruptKind, type AgentMessage, type AgentMessageChunk, type AgentMessageChunkRange, type AgentMessageIndex, type AgentPlan, type AgentState, type AgentToolCall, type AgentToolCallRecord, type AgentUsage, type AgentUserMessage, type ContextSummary, type SessionSettings, type TurnSessionSettings, type FrameworkMessage, type InteractionMode, type ToolCallCancellationReason, type ToolEffect } from "./agent-session-values.js";
10
+ import { type AgentInterrupt, type AgentInterruptKind, type AgentMessage, type AgentMessageChunk, type AgentMessageChunkRange, type AgentMessageIndex, type AgentMessageOrigin, type AgentPlan, type AgentState, type AgentToolCall, type AgentToolCallRecord, type AgentUsage, type AgentUserMessage, type ContextSummary, type SessionSettings, type TurnSessionSettings, type FrameworkMessage, type InteractionMode, type ToolCallCancellationReason, type ToolEffect } from "./agent-session-values.js";
11
11
  import type { ResolvedAgentTracingOptions } from "./agent-tracing-options.js";
12
12
  export { agentSessionStepTypes } from "./agent-session-step-types.js";
13
13
  /** Most archive chunks one commit writes, so a large 0.1.0 history migrates over several commits. */
@@ -47,6 +47,7 @@ export interface AgentSessionConfig {
47
47
  readonly retainedMessageLimit: number | null;
48
48
  readonly runModelLimit: ResolvedRunModelLimit;
49
49
  readonly spendLimit: ModelSpendLimit | undefined;
50
+ readonly summaryAttributesIndexed: boolean;
50
51
  }
51
52
  /** Shared state reads, writes, and routing used by every session Step. */
52
53
  export declare class AgentSessionTransitions {
@@ -58,6 +59,10 @@ export declare class AgentSessionTransitions {
58
59
  readOptionalAgentState(context: Context): AgentState | null;
59
60
  readAgentState(context: Context): AgentState;
60
61
  writeAgentState(context: Context, state: AgentState): void;
62
+ /** Writes the session's last activity time and turn count. */
63
+ recordSessionActivity(context: Context, turnCount: number): void;
64
+ /** Writes the session's title from its first user message, unless it already has one. */
65
+ recordSessionTitle(context: Context, firstMessageText: string): void;
61
66
  readPendingInterrupts(context: Context): readonly AgentInterrupt[];
62
67
  readOptionalAgentPlan(context: Context): AgentPlan | null;
63
68
  readAgentUsage(context: Context): AgentUsage;
@@ -147,9 +152,10 @@ export declare class AgentSessionTransitions {
147
152
  * straight into a chunk of its own, so the first store writes the largest value it ever needs. In the same
148
153
  * commit it moves the oldest window messages into archive chunks while the window is over its size and
149
154
  * applies retention; it writes `AgentMessageIndex` only when one of them changed it. It requires the whole
150
- * window to be loaded. With `startsTurn`, `TurnReplySequence` records where the turn's replies begin.
155
+ * window to be loaded. With `startsTurn`, `TurnReplySequence` records where the turn's replies begin. A non-null
156
+ * `origin` marks every appended message as written by the session itself.
151
157
  */
152
- appendMessages(context: Context, state: AgentState, turnId: string, frameworkMessages: readonly FrameworkMessage[], startsTurn?: boolean): AgentState;
158
+ appendMessages(context: Context, state: AgentState, turnId: string, frameworkMessages: readonly FrameworkMessage[], startsTurn?: boolean, origin?: AgentMessageOrigin | null): AgentState;
153
159
  /**
154
160
  * Moves the oldest window messages into immutable chunks while the window holds more than its size. A chunk
155
161
  * closes at `messageChunkSize` messages, at `messageChunkMaxBytes` bytes, or before a message stored in its
@@ -165,6 +171,8 @@ export declare class AgentSessionTransitions {
165
171
  applyMessageRetention(context: Context, index: AgentMessageIndex, nextMessageSequence: number, summary: ContextSummary | null): AgentMessageIndex;
166
172
  /** Appends the turn's user messages, in order, opens the next turn, and moves to RunModel. */
167
173
  beginTurn(context: Context, state: AgentState, messages: readonly AgentUserMessage[], stepType: string, interactionMode?: InteractionMode, executedPlan?: AgentPlan, wasPlanDraft?: boolean, sessionSettings?: SessionSettings | null): StepDecision;
174
+ /** Builds the stored item of one user message; the session sets its images itself. */
175
+ private buildStoredUserMessage;
168
176
  /**
169
177
  * Returns the mode of a turn that these user messages start: `planning` when plan mode is enabled and a
170
178
  * message has `planMode` or a `draft` plan exists, else `chat`.
@@ -9,9 +9,11 @@ import { AttributeMapNotLoadedError, StepMovement, StepRef, goTo, goToMany, stri
9
9
  import { agentSessionStepTypes } from "./agent-session-step-types.js";
10
10
  import { isContextCompactionRunner } from "./agent-context-compaction.js";
11
11
  import { StreamAgentEventWriter } from "./agent-event-writer.js";
12
- import { encodeAgentMessage } from "./agent-session-codecs.js";
12
+ import { encodeAgentInterruptDisplay, encodeAgentMessage } from "./agent-session-codecs.js";
13
+ import { validateImageReferences } from "./agent-media.js";
13
14
  import { resolveToolPolicy, } from "./agent-framework-runner.js";
14
15
  import { messageSequenceKey } from "./agent-session-persistence.js";
16
+ import { buildSessionTitle } from "./agent-session-summary.js";
15
17
  import { modelCallRefusedErrorPrefix, withinSpendLimitCallTimeout, } from "./agent-session-spend-limit.js";
16
18
  import { messageStepOptions } from "./agent-session-step-options.js";
17
19
  import { addAgentUsage, buildToolCallNote, emptyAgentUsage, isFinalToolCallStatus, toolCallCancelledBySteeringResult, toolCallCancelledByTurnCancellationResult, turnCancelledNoteHeader, turnSteeredNoteHeader, } from "./agent-session-values.js";
@@ -60,6 +62,25 @@ export class AgentSessionTransitions {
60
62
  writeAgentState(context, state) {
61
63
  this.persistence.agentState.set(context, state);
62
64
  }
65
+ /** Writes the session's last activity time and turn count. */
66
+ recordSessionActivity(context, turnCount) {
67
+ if (!this.config.summaryAttributesIndexed) {
68
+ return;
69
+ }
70
+ // The first attempt's start time comes from Dex and stays the same across retries.
71
+ this.persistence.agentSessionLastActivityAt.set(context, context.firstAttemptAt.toISOString());
72
+ this.persistence.agentSessionTurnCount.set(context, turnCount);
73
+ }
74
+ /** Writes the session's title from its first user message, unless it already has one. */
75
+ recordSessionTitle(context, firstMessageText) {
76
+ if (!this.config.summaryAttributesIndexed) {
77
+ return;
78
+ }
79
+ const title = buildSessionTitle(firstMessageText);
80
+ if (title !== null && this.persistence.agentSessionTitle.get(context) === undefined) {
81
+ this.persistence.agentSessionTitle.set(context, title);
82
+ }
83
+ }
63
84
  readPendingInterrupts(context) {
64
85
  return this.persistence.pendingInterrupts.get(context) ?? [];
65
86
  }
@@ -295,6 +316,7 @@ export class AgentSessionTransitions {
295
316
  question: interrupt.question ?? null,
296
317
  choices: interrupt.choices ?? [],
297
318
  allows_free_text: interrupt.allowsFreeText ?? true,
319
+ display: encodeAgentInterruptDisplay(interrupt.display),
298
320
  });
299
321
  }
300
322
  writeInterruptResolved(context, turnId, resolution) {
@@ -383,6 +405,7 @@ export class AgentSessionTransitions {
383
405
  if (!Array.isArray(messages) || !messages.every(isFrameworkMessage)) {
384
406
  throw new TypeError("buildUnfinishedTurnMessages must return an array of framework messages");
385
407
  }
408
+ messages.forEach((message) => validateImageReferences(message.images ?? []));
386
409
  return messages;
387
410
  }
388
411
  catch (error) {
@@ -404,13 +427,16 @@ export class AgentSessionTransitions {
404
427
  * straight into a chunk of its own, so the first store writes the largest value it ever needs. In the same
405
428
  * commit it moves the oldest window messages into archive chunks while the window is over its size and
406
429
  * applies retention; it writes `AgentMessageIndex` only when one of them changed it. It requires the whole
407
- * window to be loaded. With `startsTurn`, `TurnReplySequence` records where the turn's replies begin.
430
+ * window to be loaded. With `startsTurn`, `TurnReplySequence` records where the turn's replies begin. A non-null
431
+ * `origin` marks every appended message as written by the session itself.
408
432
  */
409
- appendMessages(context, state, turnId, frameworkMessages, startsTurn = false) {
433
+ appendMessages(context, state, turnId, frameworkMessages, startsTurn = false, origin = null) {
410
434
  if (frameworkMessages.length === 0 && !startsTurn) {
411
435
  this.writeAgentState(context, state);
412
436
  return state;
413
437
  }
438
+ // A runner's images fail the Step here, before any message of the commit is written.
439
+ frameworkMessages.forEach((message) => validateImageReferences(message.images ?? []));
414
440
  const activeTurnId = state.activeTurnId;
415
441
  if (!startsTurn && activeTurnId !== null && activeTurnId !== undefined) {
416
442
  const stored = this.persistence.turnReplySequence.get(context);
@@ -439,6 +465,10 @@ export class AgentSessionTransitions {
439
465
  toolOutput: frameworkMessage.toolOutput,
440
466
  frameworkItem: frameworkMessage.frameworkItem,
441
467
  createdAt,
468
+ ...(frameworkMessage.images === undefined || frameworkMessage.images.length === 0
469
+ ? {}
470
+ : { images: frameworkMessage.images }),
471
+ ...(origin === null ? {} : { origin }),
442
472
  };
443
473
  const key = messageSequenceKey(nextMessageSequence);
444
474
  if (messageChunkOverheadBytes + agentMessageBytes(message) > this.config.messageChunkMaxBytes) {
@@ -550,11 +580,12 @@ export class AgentSessionTransitions {
550
580
  }
551
581
  const sequence = state.nextMessageSequence;
552
582
  return this.tracer.traceUserMessageActivation(context, stepType, turnId, messageSequenceKey(sequence), messages.map((message) => message.text).join("\n"), () => {
553
- const userMessages = messages.map((message) => this.runner.buildUserMessage(message.text));
583
+ const userMessages = messages.map((message) => this.buildStoredUserMessage(message));
554
584
  if (userMessages.some((userMessage) => userMessage.role !== "user")) {
555
585
  throw new TypeError("buildUserMessage must return a message with role user");
556
586
  }
557
- const stateWithMessage = this.appendMessages(context, state, turnId, userMessages, true);
587
+ const origin = executedPlan === undefined ? null : "plan_execution";
588
+ const stateWithMessage = this.appendMessages(context, state, turnId, userMessages, true, origin);
558
589
  this.writeAgentState(context, {
559
590
  ...stateWithMessage,
560
591
  status: "running_model",
@@ -562,6 +593,11 @@ export class AgentSessionTransitions {
562
593
  interactionMode,
563
594
  acceptsTurnControl: true,
564
595
  });
596
+ this.recordSessionActivity(context, state.turnCount);
597
+ const firstMessage = messages[0];
598
+ if (state.turnCount === 0 && firstMessage !== undefined) {
599
+ this.recordSessionTitle(context, firstMessage.text);
600
+ }
565
601
  this.writeEvents(context, turnId, (events) => {
566
602
  events.writeEvent("turn_started", { sequence });
567
603
  if (executedPlan !== undefined) {
@@ -574,6 +610,19 @@ export class AgentSessionTransitions {
574
610
  return this.goToRunModel(context);
575
611
  });
576
612
  }
613
+ /** Builds the stored item of one user message; the session sets its images itself. */
614
+ buildStoredUserMessage(message) {
615
+ const images = message.images ?? [];
616
+ if (images.length === 0) {
617
+ const { images: _ignored, ...built } = this.runner.buildUserMessage(message.text);
618
+ return built;
619
+ }
620
+ // A runner redeployed without image support still stores the images, for display.
621
+ const built = this.runner.buildUserMessageWithImages === undefined
622
+ ? this.runner.buildUserMessage(message.text)
623
+ : this.runner.buildUserMessageWithImages(message.text, images);
624
+ return { ...built, images };
625
+ }
577
626
  /**
578
627
  * Returns the mode of a turn that these user messages start: `planning` when plan mode is enabled and a
579
628
  * message has `planMode` or a `draft` plan exists, else `chat`.
@@ -597,9 +646,11 @@ export class AgentSessionTransitions {
597
646
  const isCancelled = transitions.readTurnControlReason(context, turnId) === "turn_cancelled";
598
647
  const storedMessageCount = transitions.countStoredTurnReplies(context, initialState, turnId);
599
648
  let messages = transitions.buildUnfinishedTurnMessages(context, initialState, turnId, toolCalls);
649
+ let noteOrigin = null;
600
650
  if (messages === null) {
601
651
  messages = [];
602
652
  if (toolCalls.length > 0) {
653
+ noteOrigin = isCancelled ? "turn_cancelled_note" : "turn_steered_note";
603
654
  // The records are deleted below; the note keeps the next model from repeating them.
604
655
  const note = transitions.runner.buildUserMessage(buildToolCallNote(isCancelled ? turnCancelledNoteHeader : turnSteeredNoteHeader, toolCalls));
605
656
  if (note.role !== "user") {
@@ -608,7 +659,7 @@ export class AgentSessionTransitions {
608
659
  messages = [note];
609
660
  }
610
661
  }
611
- const stateWithMessages = transitions.appendMessages(context, initialState, turnId, messages);
662
+ const stateWithMessages = transitions.appendMessages(context, initialState, turnId, messages, false, noteOrigin);
612
663
  for (const toolCall of toolCalls) {
613
664
  persistence.agentToolCalls.delete(context, toolCall.toolCallId);
614
665
  }
@@ -622,6 +673,7 @@ export class AgentSessionTransitions {
622
673
  acceptsTurnControl: false,
623
674
  };
624
675
  transitions.writeAgentState(context, endedState);
676
+ transitions.recordSessionActivity(context, endedState.turnCount);
625
677
  const messageCount = storedMessageCount + messages.length;
626
678
  transitions.writeEvents(context, turnId, (events) => isCancelled
627
679
  ? events.writeEvent("turn_cancelled", { message_count: messageCount })