@deepagents/context 4.2.1 → 5.0.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 (150) hide show
  1. package/README.md +37 -12
  2. package/dist/browser.d.ts +6 -2
  3. package/dist/browser.d.ts.map +1 -1
  4. package/dist/browser.js +97 -68
  5. package/dist/browser.js.map +4 -4
  6. package/dist/index.d.ts +1 -9
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +5839 -5496
  9. package/dist/index.js.map +4 -4
  10. package/dist/lib/advisor.d.ts +2 -2
  11. package/dist/lib/agent.d.ts +33 -15
  12. package/dist/lib/agent.d.ts.map +1 -1
  13. package/dist/lib/chain-summary.d.ts +8 -0
  14. package/dist/lib/chain-summary.d.ts.map +1 -1
  15. package/dist/lib/chat.d.ts +2 -2
  16. package/dist/lib/chat.d.ts.map +1 -1
  17. package/dist/lib/engine.d.ts +43 -71
  18. package/dist/lib/engine.d.ts.map +1 -1
  19. package/dist/lib/fragments/message/user.d.ts +2 -213
  20. package/dist/lib/fragments/message/user.d.ts.map +1 -1
  21. package/dist/lib/fragments/reminders/index.d.ts +3 -0
  22. package/dist/lib/fragments/reminders/index.d.ts.map +1 -0
  23. package/dist/lib/{save/reminder-eval.d.ts → fragments/reminders/src/evaluate.d.ts} +3 -3
  24. package/dist/lib/fragments/reminders/src/evaluate.d.ts.map +1 -0
  25. package/dist/lib/fragments/reminders/src/index.d.ts +5 -0
  26. package/dist/lib/fragments/reminders/src/index.d.ts.map +1 -0
  27. package/dist/lib/fragments/reminders/src/predicates/classifier.d.ts.map +1 -0
  28. package/dist/lib/fragments/reminders/{combinators.d.ts → src/predicates/combinators.d.ts} +9 -9
  29. package/dist/lib/fragments/reminders/src/predicates/combinators.d.ts.map +1 -0
  30. package/dist/lib/fragments/reminders/{content-predicates.d.ts → src/predicates/content.d.ts} +2 -2
  31. package/dist/lib/fragments/reminders/src/predicates/content.d.ts.map +1 -0
  32. package/dist/lib/fragments/reminders/src/predicates/index.d.ts +9 -0
  33. package/dist/lib/fragments/reminders/src/predicates/index.d.ts.map +1 -0
  34. package/dist/lib/fragments/reminders/{message-predicates.d.ts → src/predicates/message.d.ts} +3 -7
  35. package/dist/lib/fragments/reminders/src/predicates/message.d.ts.map +1 -0
  36. package/dist/lib/fragments/reminders/{once.d.ts → src/predicates/once.d.ts} +2 -2
  37. package/dist/lib/fragments/reminders/src/predicates/once.d.ts.map +1 -0
  38. package/dist/lib/fragments/reminders/src/predicates/tool.d.ts +41 -0
  39. package/dist/lib/fragments/reminders/src/predicates/tool.d.ts.map +1 -0
  40. package/dist/lib/fragments/reminders/{turn-predicates.d.ts → src/predicates/turn.d.ts} +2 -2
  41. package/dist/lib/fragments/reminders/src/predicates/turn.d.ts.map +1 -0
  42. package/dist/lib/fragments/reminders/src/predicates/usage.d.ts +3 -0
  43. package/dist/lib/fragments/reminders/src/predicates/usage.d.ts.map +1 -0
  44. package/dist/lib/fragments/reminders/src/reminders.d.ts +94 -0
  45. package/dist/lib/fragments/reminders/src/reminders.d.ts.map +1 -0
  46. package/dist/lib/fragments/reminders/src/types.d.ts +138 -0
  47. package/dist/lib/fragments/reminders/src/types.d.ts.map +1 -0
  48. package/dist/lib/fragments/reminders/temporal/elapsed.d.ts +1 -1
  49. package/dist/lib/fragments/reminders/temporal/elapsed.d.ts.map +1 -1
  50. package/dist/lib/fragments/reminders/temporal/predicates.d.ts +1 -1
  51. package/dist/lib/fragments/reminders/temporal/predicates.d.ts.map +1 -1
  52. package/dist/lib/fragments/reminders/temporal/reminder.d.ts.map +1 -1
  53. package/dist/lib/guardrail.d.ts +2 -2
  54. package/dist/lib/guardrail.d.ts.map +1 -1
  55. package/dist/lib/repair.d.ts +2 -2
  56. package/dist/lib/sandbox/agent-os-sandbox.d.ts +1 -1
  57. package/dist/lib/sandbox/agent-os-sandbox.d.ts.map +1 -1
  58. package/dist/lib/sandbox/apple-container-sandbox.d.ts +2 -0
  59. package/dist/lib/sandbox/apple-container-sandbox.d.ts.map +1 -1
  60. package/dist/lib/sandbox/bash-exception.d.ts +1 -1
  61. package/dist/lib/sandbox/bash-exception.d.ts.map +1 -1
  62. package/dist/lib/sandbox/bash-tool.d.ts +7 -42
  63. package/dist/lib/sandbox/bash-tool.d.ts.map +1 -1
  64. package/dist/lib/sandbox/container-sandbox.d.ts +2 -2
  65. package/dist/lib/sandbox/container-sandbox.d.ts.map +1 -1
  66. package/dist/lib/sandbox/daytona-sandbox.d.ts.map +1 -1
  67. package/dist/lib/sandbox/docker-sandbox.d.ts +2 -3
  68. package/dist/lib/sandbox/docker-sandbox.d.ts.map +1 -1
  69. package/dist/lib/sandbox/index.d.ts +0 -3
  70. package/dist/lib/sandbox/index.d.ts.map +1 -1
  71. package/dist/lib/sandbox/installers/installer.d.ts +1 -1
  72. package/dist/lib/sandbox/installers/installer.d.ts.map +1 -1
  73. package/dist/lib/sandbox/microsandbox-sandbox.d.ts.map +1 -1
  74. package/dist/lib/sandbox/strace/file-changes.d.ts +4 -10
  75. package/dist/lib/sandbox/strace/file-changes.d.ts.map +1 -1
  76. package/dist/lib/sandbox/types.d.ts +79 -32
  77. package/dist/lib/sandbox/types.d.ts.map +1 -1
  78. package/dist/lib/skills/fragments.d.ts +11 -10
  79. package/dist/lib/skills/fragments.d.ts.map +1 -1
  80. package/dist/lib/skills/frontmatter.d.ts +16 -0
  81. package/dist/lib/skills/frontmatter.d.ts.map +1 -0
  82. package/dist/lib/skills/index.d.ts +11 -10
  83. package/dist/lib/skills/index.d.ts.map +1 -1
  84. package/dist/lib/skills/skill-reminder.d.ts +3 -3
  85. package/dist/lib/skills/skill-reminder.d.ts.map +1 -1
  86. package/dist/lib/skills/types.d.ts +5 -23
  87. package/dist/lib/skills/types.d.ts.map +1 -1
  88. package/dist/lib/store/postgres.store.d.ts +2 -2
  89. package/dist/lib/store/postgres.store.d.ts.map +1 -1
  90. package/dist/lib/store/sqlite.store.d.ts +2 -2
  91. package/dist/lib/store/sqlite.store.d.ts.map +1 -1
  92. package/dist/lib/store/sqlserver.store.d.ts +2 -2
  93. package/dist/lib/store/sqlserver.store.d.ts.map +1 -1
  94. package/dist/lib/store/store.d.ts +5 -4
  95. package/dist/lib/store/store.d.ts.map +1 -1
  96. package/dist/lib/stream/postgres.stream-store.d.ts +2 -1
  97. package/dist/lib/stream/postgres.stream-store.d.ts.map +1 -1
  98. package/dist/lib/stream/sqlite.stream-store.d.ts +2 -1
  99. package/dist/lib/stream/sqlite.stream-store.d.ts.map +1 -1
  100. package/dist/lib/stream/stream-manager.d.ts +4 -0
  101. package/dist/lib/stream/stream-manager.d.ts.map +1 -1
  102. package/dist/lib/stream/stream-store.d.ts +16 -0
  103. package/dist/lib/stream/stream-store.d.ts.map +1 -1
  104. package/dist/lib/telemetry/console-telemetry.d.ts +8 -0
  105. package/dist/lib/telemetry/console-telemetry.d.ts.map +1 -0
  106. package/dist/lib/telemetry/create-telemetry-integration.d.ts +6 -0
  107. package/dist/lib/telemetry/create-telemetry-integration.d.ts.map +1 -0
  108. package/dist/lib/telemetry/file/file-telemetry.d.ts +9 -0
  109. package/dist/lib/telemetry/file/file-telemetry.d.ts.map +1 -0
  110. package/dist/lib/telemetry/file/index.d.ts +2 -0
  111. package/dist/lib/telemetry/file/index.d.ts.map +1 -0
  112. package/dist/lib/telemetry/file/index.js +307 -0
  113. package/dist/lib/telemetry/file/index.js.map +7 -0
  114. package/dist/lib/telemetry/index.d.ts +3 -0
  115. package/dist/lib/telemetry/index.d.ts.map +1 -0
  116. package/dist/lib/telemetry/index.js +291 -0
  117. package/dist/lib/telemetry/index.js.map +7 -0
  118. package/dist/lib/telemetry/redact-telemetry-event.d.ts +2 -0
  119. package/dist/lib/telemetry/redact-telemetry-event.d.ts.map +1 -0
  120. package/dist/lib/telemetry/safe-serialize.d.ts +8 -0
  121. package/dist/lib/telemetry/safe-serialize.d.ts.map +1 -0
  122. package/dist/lib/title.d.ts.map +1 -1
  123. package/dist/lib/tracing/index.js +47 -113
  124. package/dist/lib/tracing/index.js.map +2 -2
  125. package/dist/lib/tracing/openai-traces-integration.d.ts +2 -2
  126. package/dist/lib/tracing/openai-traces-integration.d.ts.map +1 -1
  127. package/dist/lib/tracing/serialization.d.ts.map +1 -1
  128. package/package.json +20 -9
  129. package/dist/lib/fragments/reminders/classifier.d.ts.map +0 -1
  130. package/dist/lib/fragments/reminders/combinators.d.ts.map +0 -1
  131. package/dist/lib/fragments/reminders/content-predicates.d.ts.map +0 -1
  132. package/dist/lib/fragments/reminders/message-predicates.d.ts.map +0 -1
  133. package/dist/lib/fragments/reminders/once.d.ts.map +0 -1
  134. package/dist/lib/fragments/reminders/tool-predicates.d.ts +0 -17
  135. package/dist/lib/fragments/reminders/tool-predicates.d.ts.map +0 -1
  136. package/dist/lib/fragments/reminders/turn-predicates.d.ts.map +0 -1
  137. package/dist/lib/fragments/reminders/usage-predicates.d.ts +0 -3
  138. package/dist/lib/fragments/reminders/usage-predicates.d.ts.map +0 -1
  139. package/dist/lib/sandbox/abort.d.ts +0 -24
  140. package/dist/lib/sandbox/abort.d.ts.map +0 -1
  141. package/dist/lib/sandbox/bash-meta.d.ts +0 -10
  142. package/dist/lib/sandbox/bash-meta.d.ts.map +0 -1
  143. package/dist/lib/sandbox/upload-skills.d.ts +0 -20
  144. package/dist/lib/sandbox/upload-skills.d.ts.map +0 -1
  145. package/dist/lib/sandbox/walk.d.ts +0 -17
  146. package/dist/lib/sandbox/walk.d.ts.map +0 -1
  147. package/dist/lib/save/reminder-eval.d.ts.map +0 -1
  148. package/dist/lib/skills/loader.d.ts +0 -28
  149. package/dist/lib/skills/loader.d.ts.map +0 -1
  150. /package/dist/lib/fragments/reminders/{classifier.d.ts → src/predicates/classifier.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { DatabaseSync } from 'node:sqlite';
2
- import type { BranchData, BranchInfo, ChatData, ChatInfo, CheckpointData, CheckpointInfo, DeleteChatOptions, GraphData, ListChatsOptions, MessageData, SearchOptions, SearchResult, StoredChatData } from './store.ts';
2
+ import type { BranchData, BranchInfo, ChatData, ChatInfo, ChatUpdater, CheckpointData, CheckpointInfo, DeleteChatOptions, GraphData, ListChatsOptions, MessageData, SearchOptions, SearchResult, StoredChatData } from './store.ts';
3
3
  import { ContextStore } from './store.ts';
4
4
  /**
5
5
  * SQLite-based context store using graph model.
@@ -13,7 +13,7 @@ export declare class SqliteContextStore extends ContextStore {
13
13
  createChat(chat: ChatData): Promise<StoredChatData>;
14
14
  upsertChat(chat: ChatData): Promise<StoredChatData>;
15
15
  getChat(chatId: string): Promise<StoredChatData | undefined>;
16
- updateChat(chatId: string, updates: Partial<Pick<ChatData, 'title' | 'metadata'>>): Promise<StoredChatData>;
16
+ updateChat(chatId: string, update: ChatUpdater): Promise<StoredChatData>;
17
17
  listChats(options?: ListChatsOptions): Promise<ChatInfo[]>;
18
18
  deleteChat(chatId: string, options?: DeleteChatOptions): Promise<boolean>;
19
19
  addMessage(message: MessageData): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/sqlite.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/sqlite.store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ConnectionPool, config } from 'mssql';
2
- import type { BranchData, BranchInfo, ChatData, ChatInfo, CheckpointData, CheckpointInfo, DeleteChatOptions, GraphData, ListChatsOptions, MessageData, SearchOptions, SearchResult, StoredChatData } from './store.ts';
2
+ import type { BranchData, BranchInfo, ChatData, ChatInfo, ChatUpdater, CheckpointData, CheckpointInfo, DeleteChatOptions, GraphData, ListChatsOptions, MessageData, SearchOptions, SearchResult, StoredChatData } from './store.ts';
3
3
  import { ContextStore } from './store.ts';
4
4
  export interface SqlServerStoreOptions {
5
5
  /**
@@ -36,7 +36,7 @@ export declare class SqlServerContextStore extends ContextStore {
36
36
  createChat(chat: ChatData): Promise<StoredChatData>;
37
37
  upsertChat(chat: ChatData): Promise<StoredChatData>;
38
38
  getChat(chatId: string): Promise<StoredChatData | undefined>;
39
- updateChat(chatId: string, updates: Partial<Pick<ChatData, 'title' | 'metadata'>>): Promise<StoredChatData>;
39
+ updateChat(chatId: string, update: ChatUpdater): Promise<StoredChatData>;
40
40
  listChats(options?: ListChatsOptions): Promise<ChatInfo[]>;
41
41
  deleteChat(chatId: string, options?: DeleteChatOptions): Promise<boolean>;
42
42
  addMessage(message: MessageData): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlserver.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/sqlserver.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlserver.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/sqlserver.store.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ export interface StoredChatData extends ChatData {
23
23
  createdAt: number;
24
24
  updatedAt: number;
25
25
  }
26
+ export type ChatUpdate = Partial<Pick<ChatData, 'title' | 'metadata'>>;
27
+ export type ChatUpdater = (chat: StoredChatData) => ChatUpdate | undefined;
26
28
  /**
27
29
  * Information about a chat for listing.
28
30
  */
@@ -199,11 +201,10 @@ export declare abstract class ContextStore {
199
201
  */
200
202
  abstract getChat(chatId: string): Promise<StoredChatData | undefined>;
201
203
  /**
202
- * Update chat metadata.
203
- * Note: updatedAt is automatically managed by database triggers.
204
- * Returns the updated chat data.
204
+ * Atomically read and update a chat while holding the store's write lock.
205
+ * Return `undefined` from the updater to leave the chat unchanged.
205
206
  */
206
- abstract updateChat(chatId: string, updates: Partial<Pick<ChatData, 'title' | 'metadata'>>): Promise<StoredChatData>;
207
+ abstract updateChat(chatId: string, update: ChatUpdater): Promise<StoredChatData>;
207
208
  /**
208
209
  * List chats, sorted by updatedAt descending.
209
210
  * @param options - Optional filters for userId, limit, offset
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Pool, PoolConfig } from 'pg';
2
- import type { ListStreamIdsOptions, StreamChunkData, StreamData, StreamStatus } from './stream-store.ts';
2
+ import type { ListStreamIdsOptions, StreamChunkData, StreamData, StreamStatus, StreamUpdateResult, StreamUpdater } from './stream-store.ts';
3
3
  import { StreamStore } from './stream-store.ts';
4
4
  export interface PostgresStreamStoreOptions {
5
5
  pool: Pool | PoolConfig | string;
@@ -18,6 +18,7 @@ export declare class PostgresStreamStore extends StreamStore {
18
18
  getStream(streamId: string): Promise<StreamData | undefined>;
19
19
  getStreamStatus(streamId: string): Promise<StreamStatus | undefined>;
20
20
  listStreamIds(options?: ListStreamIdsOptions): Promise<string[]>;
21
+ updateStream(streamId: string, update: StreamUpdater): Promise<StreamUpdateResult>;
21
22
  updateStreamStatus(streamId: string, status: StreamStatus, options?: {
22
23
  error?: string;
23
24
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/postgres.stream-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,IAAI,CAAC;AAGvD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmBD,qBAAa,mBAAoB,SAAQ,WAAW;;gBAOtC,OAAO,EAAE,0BAA0B;IAkCzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCtB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,YAAY,CAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAuB9C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAQ5D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAQpE,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAehE,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IA6CV,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCtD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;IAyBvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAyC1D"}
1
+ {"version":3,"file":"postgres.stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/postgres.stream-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,IAAI,CAAC;AAGvD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmBD,qBAAa,mBAAoB,SAAQ,WAAW;;gBAOtC,OAAO,EAAE,0BAA0B;IAkCzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCtB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,YAAY,CAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAuB9C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAQ5D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAQpE,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAehE,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,kBAAkB,CAAC;IA6CxB,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IA6CV,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CtD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;IAyBvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAyC1D"}
@@ -1,5 +1,5 @@
1
1
  import { DatabaseSync } from 'node:sqlite';
2
- import type { ListStreamIdsOptions, StreamChunkData, StreamData, StreamStatus } from './stream-store.ts';
2
+ import type { ListStreamIdsOptions, StreamChunkData, StreamData, StreamStatus, StreamUpdateResult, StreamUpdater } from './stream-store.ts';
3
3
  import { StreamStore } from './stream-store.ts';
4
4
  export declare class SqliteStreamStore extends StreamStore {
5
5
  #private;
@@ -13,6 +13,7 @@ export declare class SqliteStreamStore extends StreamStore {
13
13
  getStream(streamId: string): Promise<StreamData | undefined>;
14
14
  getStreamStatus(streamId: string): Promise<StreamStatus | undefined>;
15
15
  listStreamIds(options?: ListStreamIdsOptions): Promise<string[]>;
16
+ updateStream(streamId: string, update: StreamUpdater): Promise<StreamUpdateResult>;
16
17
  updateStreamStatus(streamId: string, status: StreamStatus, options?: {
17
18
  error?: string;
18
19
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/sqlite.stream-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAG/D,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,iBAAkB,SAAQ,WAAW;;IAchD,KAAK,IAAI,IAAI;gBAOD,QAAQ,EAAE,MAAM,GAAG,YAAY;IAOrC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/C,YAAY,CAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAkD9C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA4B5D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAWpE,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAehE,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IA+BV,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;IA+BvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAsD1D"}
1
+ {"version":3,"file":"sqlite.stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/sqlite.stream-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAG/D,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,iBAAkB,SAAQ,WAAW;;IAchD,KAAK,IAAI,IAAI;gBAOD,QAAQ,EAAE,MAAM,GAAG,YAAY;IAOrC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/C,YAAY,CAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAkD9C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA4B5D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAWpE,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAehE,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAiDxB,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IAmCV,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCtD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;IA+BvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAsD1D"}
@@ -3,6 +3,8 @@ import type { StreamChangeSource } from './change-source.ts';
3
3
  import type { ListStreamIdsOptions, StreamData, StreamStore } from './stream-store.ts';
4
4
  import type { StreamPart } from './types.ts';
5
5
  export interface PersistStreamOptions extends Pick<PersistedWriterOptions, 'strategy' | 'flushSize'> {
6
+ /** @internal The caller already won the queued-to-running transition. */
7
+ preclaimed?: boolean;
6
8
  onCancelDetected?: (info: {
7
9
  streamId: string;
8
10
  latencyMs: number | null;
@@ -41,6 +43,8 @@ export declare class StreamManager {
41
43
  created: boolean;
42
44
  }>;
43
45
  cancel(streamId: string): Promise<void>;
46
+ claim(streamId: string): Promise<boolean>;
47
+ monitorCancellation(streamId: string, onCancelDetected: NonNullable<PersistStreamOptions['onCancelDetected']>): AsyncDisposable;
44
48
  listStreamIds(options?: ListStreamIdsOptions): Promise<string[]>;
45
49
  persist(stream: ReadableStream, streamId: string, options?: PersistStreamOptions): Promise<{
46
50
  streamId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"stream-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/stream-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EAEV,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,sBAAsB,EACtB,UAAU,GAAG,WAAW,CACzB;IACC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,yBAAyB,GACjC;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;CACjD,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IACE,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEN,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,kBAAkB,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAC3D;AAID,qBAAa,aAAa;;gBAMZ,OAAO,EAAE,oBAAoB;IAOzC,IAAI,KAAK,IAAI,WAAW,CAEvB;IAEK,QAAQ,CACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAY9C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhE,OAAO,CACX,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAuGhC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IA4G7C,MAAM,CACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAK9C,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAY/C"}
1
+ {"version":3,"file":"stream-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/stream-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EAEV,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,sBAAsB,EACtB,UAAU,GAAG,WAAW,CACzB;IACC,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,yBAAyB,GACjC;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;CACjD,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IACE,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEN,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,kBAAkB,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAC3D;AAID,qBAAa,aAAa;;gBAUZ,OAAO,EAAE,oBAAoB;IAOzC,IAAI,KAAK,IAAI,WAAW,CAEvB;IAEK,QAAQ,CACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAY9C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBvC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW/C,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,GACtE,eAAe;IAaZ,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhE,OAAO,CACX,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAoIhC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IA4G7C,MAAM,CACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAK9C,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAY/C"}
@@ -13,6 +13,12 @@ export interface StreamData {
13
13
  cancelRequestedAt: number | null;
14
14
  error: string | null;
15
15
  }
16
+ export type StreamUpdate = Partial<Omit<StreamData, 'id' | 'createdAt'>>;
17
+ export type StreamUpdater = (stream: Readonly<StreamData>) => StreamUpdate | undefined;
18
+ export interface StreamUpdateResult {
19
+ stream: StreamData;
20
+ updated: boolean;
21
+ }
16
22
  export interface StreamChunkData {
17
23
  streamId: string;
18
24
  seq: number;
@@ -34,6 +40,16 @@ export declare abstract class StreamStore {
34
40
  abstract getStreamStatus(streamId: string): Promise<StreamStatus | undefined>;
35
41
  abstract listStreamIds(options?: ListStreamIdsOptions): Promise<string[]>;
36
42
  listRunningStreamIds(): Promise<string[]>;
43
+ /**
44
+ * Atomically read and conditionally update a stream while holding the
45
+ * store's write lock for that stream. Concurrent calls for the same stream
46
+ * must observe one another's committed updates.
47
+ *
48
+ * The updater is synchronous and should be free of side effects. Return
49
+ * `undefined` to leave the stream unchanged. `updated` reports whether this
50
+ * caller persisted an update.
51
+ */
52
+ abstract updateStream(streamId: string, update: StreamUpdater): Promise<StreamUpdateResult>;
37
53
  abstract updateStreamStatus(streamId: string, status: StreamStatus, options?: {
38
54
  error?: string;
39
55
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/stream-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EAAE,GACxB,aAAa,EAAE,CASjB;AAED,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAExD,QAAQ,CAAC,YAAY,CACnB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAEpD,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAErE,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAE7E,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEnE,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/C,QAAQ,CAAC,kBAAkB,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IAEhB,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D,QAAQ,CAAC,SAAS,CAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;IAE7B,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtD,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAC7D"}
1
+ {"version":3,"file":"stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/stream-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Telemetry } from 'ai';
2
+ export interface ConsoleTelemetryOptions {
3
+ includeTimestamp?: boolean;
4
+ pretty?: boolean;
5
+ logger?: Pick<Console, 'log' | 'error'>;
6
+ }
7
+ export declare function createConsoleTelemetry(options?: ConsoleTelemetryOptions): Telemetry;
8
+ //# sourceMappingURL=console-telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-telemetry.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/console-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAQpC,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;CACzC;AAED,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,uBAA4B,GACpC,SAAS,CAaX"}
@@ -0,0 +1,6 @@
1
+ import type { Telemetry } from 'ai';
2
+ type TelemetryLogLevel = 'log' | 'error';
3
+ type TelemetryEventWriter = (level: TelemetryLogLevel, event: string, data: unknown) => void | PromiseLike<void>;
4
+ export declare function createTelemetryIntegration(write: TelemetryEventWriter): Telemetry;
5
+ export {};
6
+ //# sourceMappingURL=create-telemetry-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-telemetry-integration.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/create-telemetry-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIpC,KAAK,iBAAiB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEzC,KAAK,oBAAoB,GAAG,CAC1B,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,KACV,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,oBAAoB,GAC1B,SAAS,CAuBX"}
@@ -0,0 +1,9 @@
1
+ import type { Telemetry } from 'ai';
2
+ export interface FileTelemetryOptions {
3
+ path: string;
4
+ includeTimestamp?: boolean;
5
+ append?: boolean;
6
+ onWriteError?: (error: unknown) => void | PromiseLike<void>;
7
+ }
8
+ export declare function createFileTelemetry(options: FileTelemetryOptions): Telemetry;
9
+ //# sourceMappingURL=file-telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-telemetry.d.ts","sourceRoot":"","sources":["../../../../src/lib/telemetry/file/file-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAUpC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,CA+B5E"}
@@ -0,0 +1,2 @@
1
+ export * from './file-telemetry.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/telemetry/file/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,307 @@
1
+ // packages/context/src/lib/telemetry/file/file-telemetry.ts
2
+ import { appendFile, mkdir, writeFile } from "node:fs/promises";
3
+ import { dirname } from "node:path";
4
+
5
+ // packages/context/src/lib/telemetry/redact-telemetry-event.ts
6
+ var REDACTED = "[Redacted]";
7
+ var INPUT_FIELDS = [
8
+ "system",
9
+ "prompt",
10
+ "instructions",
11
+ "messages",
12
+ "tools",
13
+ "toolChoice",
14
+ "activeTools",
15
+ "toolOrder",
16
+ "headers",
17
+ "providerOptions",
18
+ "runtimeContext",
19
+ "toolsContext",
20
+ "toolContext",
21
+ "promptMessages",
22
+ "stepTools",
23
+ "stepToolChoice",
24
+ "request",
25
+ "values",
26
+ "value",
27
+ "query",
28
+ "documents",
29
+ "schema",
30
+ "schemaDescription",
31
+ "schemaName"
32
+ ];
33
+ var OUTPUT_FIELDS = [
34
+ "content",
35
+ "text",
36
+ "reasoning",
37
+ "reasoningText",
38
+ "files",
39
+ "sources",
40
+ "toolCalls",
41
+ "staticToolCalls",
42
+ "dynamicToolCalls",
43
+ "toolResults",
44
+ "staticToolResults",
45
+ "dynamicToolResults",
46
+ "response",
47
+ "responseMessages",
48
+ "providerMetadata",
49
+ "steps",
50
+ "finalStep",
51
+ "object",
52
+ "objectText",
53
+ "embedding",
54
+ "embeddings",
55
+ "ranking",
56
+ "rankings",
57
+ "results",
58
+ "error"
59
+ ];
60
+ var OUTPUT_SPECIFICATION_EVENTS = /* @__PURE__ */ new Set([
61
+ "onStart",
62
+ "onStepStart",
63
+ "onObjectStepStart"
64
+ ]);
65
+ function redactTelemetryEvent(event, data) {
66
+ if (!isRecord(data)) return data;
67
+ const recordInputs = data.recordInputs !== false;
68
+ const recordOutputs = data.recordOutputs !== false;
69
+ if (recordInputs && recordOutputs) return data;
70
+ const redacted = { ...data };
71
+ if (!recordInputs) {
72
+ redactFields(redacted, INPUT_FIELDS);
73
+ if (OUTPUT_SPECIFICATION_EVENTS.has(event) && Object.hasOwn(redacted, "output")) {
74
+ redacted.output = REDACTED;
75
+ }
76
+ if (Object.hasOwn(redacted, "toolCall")) {
77
+ redacted.toolCall = redactToolCallInput(redacted.toolCall);
78
+ }
79
+ if (Object.hasOwn(redacted, "toolOutput")) {
80
+ redacted.toolOutput = redactToolOutput(redacted.toolOutput, true, false);
81
+ }
82
+ if (Object.hasOwn(redacted, "steps")) {
83
+ redacted.steps = redactStepInputs(redacted.steps);
84
+ }
85
+ if (Object.hasOwn(redacted, "finalStep")) {
86
+ redacted.finalStep = redactStepInputs(redacted.finalStep);
87
+ }
88
+ }
89
+ if (!recordOutputs) {
90
+ redactFields(redacted, OUTPUT_FIELDS);
91
+ if (!OUTPUT_SPECIFICATION_EVENTS.has(event) && Object.hasOwn(redacted, "output")) {
92
+ redacted.output = REDACTED;
93
+ }
94
+ if (Object.hasOwn(redacted, "toolOutput")) {
95
+ redacted.toolOutput = redactToolOutput(redacted.toolOutput, false, true);
96
+ }
97
+ }
98
+ return redacted;
99
+ }
100
+ function redactFields(value, fields) {
101
+ for (const field of fields) {
102
+ if (Object.hasOwn(value, field)) value[field] = REDACTED;
103
+ }
104
+ }
105
+ function redactToolCallInput(value) {
106
+ if (!isRecord(value) || !Object.hasOwn(value, "input")) return value;
107
+ return { ...value, input: REDACTED };
108
+ }
109
+ function redactToolOutput(value, redactInput, redactOutput) {
110
+ if (!isRecord(value)) return value;
111
+ const redacted = { ...value };
112
+ if (redactInput && Object.hasOwn(redacted, "input")) {
113
+ redacted.input = REDACTED;
114
+ }
115
+ if (redactOutput) {
116
+ if (Object.hasOwn(redacted, "output")) redacted.output = REDACTED;
117
+ if (Object.hasOwn(redacted, "error")) redacted.error = REDACTED;
118
+ }
119
+ return redacted;
120
+ }
121
+ function redactStepInputs(value) {
122
+ if (Array.isArray(value)) return value.map(redactStepInputs);
123
+ if (!isRecord(value)) return value;
124
+ const redacted = { ...value };
125
+ redactFields(redacted, INPUT_FIELDS);
126
+ return redacted;
127
+ }
128
+ function isRecord(value) {
129
+ return typeof value === "object" && value !== null && !Array.isArray(value);
130
+ }
131
+
132
+ // packages/context/src/lib/telemetry/create-telemetry-integration.ts
133
+ function createTelemetryIntegration(write) {
134
+ const emit = (level, event, data) => write(level, event, redactTelemetryEvent(event, data));
135
+ const log = (event, data) => emit("log", event, data);
136
+ return {
137
+ onStart: (event) => log("onStart", event),
138
+ onStepStart: (event) => log("onStepStart", event),
139
+ onLanguageModelCallStart: (event) => log("onLanguageModelCallStart", event),
140
+ onLanguageModelCallEnd: (event) => log("onLanguageModelCallEnd", event),
141
+ onToolExecutionStart: (event) => log("onToolExecutionStart", event),
142
+ onToolExecutionEnd: (event) => log("onToolExecutionEnd", event),
143
+ onStepEnd: (event) => log("onStepEnd", event),
144
+ onObjectStepStart: (event) => log("onObjectStepStart", event),
145
+ onObjectStepEnd: (event) => log("onObjectStepEnd", event),
146
+ onEmbedStart: (event) => log("onEmbedStart", event),
147
+ onEmbedEnd: (event) => log("onEmbedEnd", event),
148
+ onRerankStart: (event) => log("onRerankStart", event),
149
+ onRerankEnd: (event) => log("onRerankEnd", event),
150
+ onEnd: (event) => log("onEnd", event),
151
+ onAbort: (event) => log("onAbort", event),
152
+ onError: (error) => emit("error", "onError", error)
153
+ };
154
+ }
155
+
156
+ // packages/context/src/lib/telemetry/safe-serialize.ts
157
+ function createTelemetryLogRecord(event, data, includeTimestamp) {
158
+ return {
159
+ ...includeTimestamp ? { timestamp: (/* @__PURE__ */ new Date()).toISOString() } : {},
160
+ event,
161
+ data: normalizeTelemetryValue(data)
162
+ };
163
+ }
164
+ function stringifyTelemetryLogRecord(record, indentation) {
165
+ return JSON.stringify(record, null, indentation);
166
+ }
167
+ function normalizeTelemetryValue(value) {
168
+ return normalize(value, /* @__PURE__ */ new WeakSet());
169
+ }
170
+ function normalize(value, ancestors) {
171
+ if (value === null || typeof value === "string" || typeof value === "boolean") {
172
+ return value;
173
+ }
174
+ if (typeof value === "number") {
175
+ if (Number.isNaN(value)) return "[NaN]";
176
+ if (value === Infinity) return "[Infinity]";
177
+ if (value === -Infinity) return "[-Infinity]";
178
+ if (Object.is(value, -0)) return "[-0]";
179
+ return value;
180
+ }
181
+ if (typeof value === "undefined") return "[Undefined]";
182
+ if (typeof value === "bigint") return `${value}n`;
183
+ if (typeof value === "symbol") return String(value);
184
+ if (typeof value === "function") {
185
+ return `[Function${value.name ? ` ${value.name}` : ""}]`;
186
+ }
187
+ if (ancestors.has(value)) return "[Circular]";
188
+ ancestors.add(value);
189
+ try {
190
+ if (value instanceof Error) return normalizeError(value, ancestors);
191
+ if (value instanceof Date) {
192
+ return Number.isNaN(value.getTime()) ? "[Invalid Date]" : value.toISOString();
193
+ }
194
+ if (value instanceof RegExp) return String(value);
195
+ if (value instanceof URL) return value.href;
196
+ if (value instanceof Map) {
197
+ return {
198
+ $type: "Map",
199
+ entries: [...value.entries()].map(([key, entryValue]) => [
200
+ normalize(key, ancestors),
201
+ normalize(entryValue, ancestors)
202
+ ])
203
+ };
204
+ }
205
+ if (value instanceof Set) {
206
+ return {
207
+ $type: "Set",
208
+ values: [...value].map((entry) => normalize(entry, ancestors))
209
+ };
210
+ }
211
+ if (value instanceof ArrayBuffer) {
212
+ return {
213
+ $type: "ArrayBuffer",
214
+ values: [...new Uint8Array(value)]
215
+ };
216
+ }
217
+ if (ArrayBuffer.isView(value)) {
218
+ const bytes = new Uint8Array(
219
+ value.buffer,
220
+ value.byteOffset,
221
+ value.byteLength
222
+ );
223
+ return {
224
+ $type: value.constructor.name,
225
+ values: [...bytes]
226
+ };
227
+ }
228
+ if (Array.isArray(value)) {
229
+ return value.map((entry) => normalize(entry, ancestors));
230
+ }
231
+ return normalizeObject(value, ancestors);
232
+ } catch (error) {
233
+ return `[Unserializable: ${errorMessage(error)}]`;
234
+ } finally {
235
+ ancestors.delete(value);
236
+ }
237
+ }
238
+ function normalizeError(error, ancestors) {
239
+ const normalized = /* @__PURE__ */ Object.create(null);
240
+ normalized.name = error.name;
241
+ normalized.message = error.message;
242
+ if (error.stack != null) normalized.stack = error.stack;
243
+ if (error.cause !== void 0) {
244
+ normalized.cause = normalize(error.cause, ancestors);
245
+ }
246
+ for (const [key, descriptor] of Object.entries(
247
+ Object.getOwnPropertyDescriptors(error)
248
+ )) {
249
+ if (["name", "message", "stack", "cause"].includes(key)) continue;
250
+ normalized[key] = normalizeDescriptor(descriptor, ancestors);
251
+ }
252
+ return normalized;
253
+ }
254
+ function normalizeObject(value, ancestors) {
255
+ const normalized = /* @__PURE__ */ Object.create(null);
256
+ const prototype = Object.getPrototypeOf(value);
257
+ const typeName = prototype?.constructor?.name;
258
+ if (typeName && typeName !== "Object") normalized.$type = typeName;
259
+ for (const key of Reflect.ownKeys(value)) {
260
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
261
+ if (descriptor == null) continue;
262
+ normalized[typeof key === "symbol" ? String(key) : key] = normalizeDescriptor(descriptor, ancestors);
263
+ }
264
+ return normalized;
265
+ }
266
+ function normalizeDescriptor(descriptor, ancestors) {
267
+ if ("value" in descriptor) return normalize(descriptor.value, ancestors);
268
+ const accessors = [
269
+ descriptor.get == null ? null : "Getter",
270
+ descriptor.set == null ? null : "Setter"
271
+ ].filter(Boolean);
272
+ return `[${accessors.join("/")}]`;
273
+ }
274
+ function errorMessage(error) {
275
+ return error instanceof Error ? error.message : String(error);
276
+ }
277
+
278
+ // packages/context/src/lib/telemetry/file/file-telemetry.ts
279
+ function createFileTelemetry(options) {
280
+ const includeTimestamp = options.includeTimestamp ?? true;
281
+ const reportWriteError = async (error) => {
282
+ try {
283
+ await options.onWriteError?.(error);
284
+ } catch {
285
+ }
286
+ };
287
+ const initialize = mkdir(dirname(options.path), { recursive: true }).then(async () => {
288
+ if (options.append === false) await writeFile(options.path, "");
289
+ }).catch(reportWriteError);
290
+ let queue = initialize;
291
+ const write = (_level, event, data) => {
292
+ const record = createTelemetryLogRecord(event, data, includeTimestamp);
293
+ const line = `${stringifyTelemetryLogRecord(record)}
294
+ `;
295
+ const pendingWrite = queue.then(async () => {
296
+ await appendFile(options.path, line);
297
+ });
298
+ queue = pendingWrite.catch(() => {
299
+ });
300
+ return pendingWrite.catch(reportWriteError);
301
+ };
302
+ return createTelemetryIntegration(write);
303
+ }
304
+ export {
305
+ createFileTelemetry
306
+ };
307
+ //# sourceMappingURL=index.js.map