@sentry/junior 0.145.0 → 0.147.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 (171) hide show
  1. package/dist/{agent-hooks-L7D2BDVV.js → agent-hooks-HS6VGUPM.js} +10 -10
  2. package/dist/api/conversations/detail.d.ts +1 -0
  3. package/dist/api/conversations/event-list.d.ts +1 -0
  4. package/dist/api/schema/conversation.d.ts +4 -0
  5. package/dist/api/schema.js +1 -1
  6. package/dist/api.js +26 -22
  7. package/dist/app.js +285 -290
  8. package/dist/{catalog-runtime-QLAC4Q3W.js → catalog-runtime-M6ZTPYRV.js} +5 -5
  9. package/dist/chat/agent/prompt.d.ts +0 -2
  10. package/dist/chat/agent/request.d.ts +2 -5
  11. package/dist/chat/agent/resume.d.ts +0 -3
  12. package/dist/chat/agent/sandbox.d.ts +2 -2
  13. package/dist/chat/agent/skills.d.ts +0 -1
  14. package/dist/chat/agent/tools.d.ts +0 -3
  15. package/dist/chat/agent-dispatch/types.d.ts +2 -2
  16. package/dist/chat/capabilities/jr-rpc-command.d.ts +2 -2
  17. package/dist/chat/configuration/service.d.ts +5 -2
  18. package/dist/chat/configuration/sql.d.ts +9 -0
  19. package/dist/chat/configuration/types.d.ts +17 -13
  20. package/dist/chat/conversations/history.d.ts +3 -0
  21. package/dist/chat/conversations/message-search.d.ts +32 -0
  22. package/dist/chat/conversations/projection.d.ts +10 -0
  23. package/dist/chat/conversations/sql/message-search.d.ts +4 -0
  24. package/dist/chat/conversations/tool-source.d.ts +5 -0
  25. package/dist/chat/credentials/unlink-provider.d.ts +2 -1
  26. package/dist/chat/credentials/user-token-store.d.ts +2 -0
  27. package/dist/chat/db.d.ts +2 -2
  28. package/dist/chat/event-tasks/tool-support.d.ts +2 -0
  29. package/dist/chat/identities/sql.d.ts +8 -0
  30. package/dist/chat/logging.d.ts +2 -0
  31. package/dist/chat/mcp/auth-store.d.ts +0 -2
  32. package/dist/chat/mcp/oauth.d.ts +0 -2
  33. package/dist/chat/oauth-flow.d.ts +3 -1
  34. package/dist/chat/pi/client.d.ts +2 -0
  35. package/dist/chat/plugins/credential-hooks.d.ts +2 -0
  36. package/dist/chat/prompt.d.ts +0 -2
  37. package/dist/chat/resource-events/notification.d.ts +2 -1
  38. package/dist/chat/runtime/delivered-turn-state.d.ts +1 -4
  39. package/dist/chat/runtime/thread-state.d.ts +8 -11
  40. package/dist/chat/runtime/turn-input.d.ts +4 -2
  41. package/dist/chat/runtime/turn-preparation.d.ts +2 -4
  42. package/dist/chat/sandbox/command-result.d.ts +2 -0
  43. package/dist/chat/sandbox/egress/schemas.d.ts +6 -0
  44. package/dist/chat/scheduled-tasks/tool-support.d.ts +2 -0
  45. package/dist/chat/scheduled-tasks/tools/create.d.ts +2 -0
  46. package/dist/chat/scheduled-tasks/tools/delete.d.ts +2 -0
  47. package/dist/chat/scheduled-tasks/tools/list.d.ts +2 -0
  48. package/dist/chat/scheduled-tasks/tools/run-now.d.ts +2 -0
  49. package/dist/chat/scheduled-tasks/tools/update.d.ts +2 -0
  50. package/dist/chat/services/mcp-auth-orchestration.d.ts +0 -3
  51. package/dist/chat/services/plugin-auth-orchestration.d.ts +2 -1
  52. package/dist/chat/services/provider-default-config.d.ts +2 -2
  53. package/dist/chat/services/subscribed-decision.d.ts +3 -0
  54. package/dist/chat/services/subscribed-reply-policy.d.ts +1 -0
  55. package/dist/chat/services/turn-result.d.ts +0 -3
  56. package/dist/chat/services/turn-router.d.ts +3 -0
  57. package/dist/chat/slack/assistant-thread/lifecycle.d.ts +0 -1
  58. package/dist/chat/slack/assistant-thread/title.d.ts +0 -3
  59. package/dist/chat/slack/dispatch-turn.d.ts +1 -1
  60. package/dist/chat/slack/message/attachments.d.ts +2 -0
  61. package/dist/chat/slack/message/blocks.d.ts +2 -0
  62. package/dist/chat/slack/message/content.d.ts +18 -0
  63. package/dist/chat/slack/message/identity.d.ts +7 -0
  64. package/dist/chat/slack/tools/canvas/context.d.ts +0 -10
  65. package/dist/chat/slack/tools/canvas/create.d.ts +2 -0
  66. package/dist/chat/slack/tools/canvas/edit.d.ts +2 -0
  67. package/dist/chat/slack/tools/canvas/read.d.ts +2 -0
  68. package/dist/chat/slack/tools/canvas/write.d.ts +2 -0
  69. package/dist/chat/slack/tools/channel-list-messages.d.ts +2 -0
  70. package/dist/chat/slack/tools/{conversation-search.d.ts → conversation-message-search.d.ts} +23 -14
  71. package/dist/chat/slack/tools/list/add-items.d.ts +4 -1
  72. package/dist/chat/slack/tools/list/api.d.ts +8 -1
  73. package/dist/chat/slack/tools/list/create.d.ts +2 -0
  74. package/dist/chat/slack/tools/list/get-items.d.ts +5 -3
  75. package/dist/chat/slack/tools/list/update-item.d.ts +5 -1
  76. package/dist/chat/slack/tools/message-add-reaction.d.ts +2 -0
  77. package/dist/chat/slack/tools/public-search.d.ts +2 -0
  78. package/dist/chat/slack/tools/send-files.d.ts +2 -0
  79. package/dist/chat/slack/tools/thread-read.d.ts +2 -0
  80. package/dist/chat/slack/vision-cache.d.ts +5 -0
  81. package/dist/chat/state/conversation.d.ts +4 -5
  82. package/dist/chat/task-execution/checkpoint.d.ts +1 -3
  83. package/dist/chat/task-execution/turn-cursor.d.ts +0 -9
  84. package/dist/chat/tool-support/structured-result.d.ts +1 -0
  85. package/dist/chat/tool-support/timed-out-tool-result.d.ts +11 -0
  86. package/dist/chat/tools/create-event-task.d.ts +2 -0
  87. package/dist/chat/tools/delete-event-task.d.ts +2 -0
  88. package/dist/chat/tools/handoff/tool.d.ts +2 -0
  89. package/dist/chat/tools/list-event-tasks.d.ts +2 -0
  90. package/dist/chat/tools/list-resource-event-subscriptions.d.ts +2 -0
  91. package/dist/chat/tools/runtime/report-progress.d.ts +2 -0
  92. package/dist/chat/tools/runtime/spawn-agent.d.ts +2 -0
  93. package/dist/chat/tools/{query-conversation-events.d.ts → search-conversation-events.d.ts} +5 -3
  94. package/dist/chat/tools/search-resource-event-types.d.ts +2 -0
  95. package/dist/chat/tools/search-tools.d.ts +2 -0
  96. package/dist/chat/tools/skill/load-skill.d.ts +2 -0
  97. package/dist/chat/tools/skill/search-mcp-tools.d.ts +2 -0
  98. package/dist/chat/tools/stop-watching-resources.d.ts +2 -0
  99. package/dist/chat/tools/system-time.d.ts +2 -0
  100. package/dist/chat/tools/types.d.ts +0 -6
  101. package/dist/chat/tools/update-event-task.d.ts +2 -0
  102. package/dist/chat/tools/user-lookup.d.ts +29 -0
  103. package/dist/chat/tools/watch-resource-events.d.ts +2 -0
  104. package/dist/chat/tools/web/fetch-tool.d.ts +2 -0
  105. package/dist/chat/tools/web/image-generate.d.ts +2 -0
  106. package/dist/chat/tools/web/search.d.ts +2 -0
  107. package/dist/{chunk-PJ4NMVQB.js → chunk-34GS7B6L.js} +2 -2
  108. package/dist/{chunk-2LWPFSB4.js → chunk-4LJO56OJ.js} +9 -1
  109. package/dist/{chunk-QJBDABQA.js → chunk-6H5SZR24.js} +16 -20
  110. package/dist/{chunk-LVVSIMBB.js → chunk-745QJ3ZA.js} +1 -1
  111. package/dist/{chunk-64SBYW2O.js → chunk-7A4M7PCV.js} +613 -561
  112. package/dist/{chunk-XFKIRN3Q.js → chunk-7NVJVJID.js} +4 -3
  113. package/dist/{chunk-FUBRJA5F.js → chunk-7UQIVT6G.js} +13 -6
  114. package/dist/{chunk-ZIAMN2UW.js → chunk-AIOK6LAG.js} +40 -513
  115. package/dist/{chunk-EIX2LQ6L.js → chunk-AVOCH2Z5.js} +3 -3
  116. package/dist/{chunk-GUWLDMGF.js → chunk-AVZDSUFB.js} +4 -4
  117. package/dist/{chunk-2XET6PKP.js → chunk-AYU72WO7.js} +102 -73
  118. package/dist/chunk-AZ7EAOBE.js +566 -0
  119. package/dist/{chunk-DXEQAIUV.js → chunk-CSZINQJ2.js} +1 -1
  120. package/dist/{chunk-HLOUZC5C.js → chunk-CWP5RHVX.js} +4 -4
  121. package/dist/{chunk-DS3J6WGY.js → chunk-DLDRQHG5.js} +1 -1
  122. package/dist/{chunk-27TEJTZO.js → chunk-DU74WPIC.js} +55 -37
  123. package/dist/{chunk-YD54Q45G.js → chunk-EFLJ2WJH.js} +6 -4
  124. package/dist/{chunk-CD2XFGYQ.js → chunk-GGB4WL5A.js} +1 -1
  125. package/dist/{chunk-GDV5LXRA.js → chunk-IIOOO4FQ.js} +1 -1
  126. package/dist/{chunk-SIN3MXH6.js → chunk-JUUKWRBE.js} +1 -1
  127. package/dist/{chunk-VTDMB7XX.js → chunk-K4SZAP3K.js} +1 -1
  128. package/dist/{chunk-QUG4JSZK.js → chunk-ORO3PWKQ.js} +1 -1
  129. package/dist/{chunk-RUSS62EN.js → chunk-PVNG6UMU.js} +3 -3
  130. package/dist/{chunk-I47UGQPJ.js → chunk-Q4R73I43.js} +365 -206
  131. package/dist/{chunk-JTGS3ZZE.js → chunk-RXBVB2JM.js} +1 -1
  132. package/dist/{chunk-TZRXYWRE.js → chunk-SGZO7UWH.js} +2 -2
  133. package/dist/{chunk-JLMVCNXL.js → chunk-SVHUEHUL.js} +1 -0
  134. package/dist/{chunk-B46ZMVOV.js → chunk-X5UY34KT.js} +6 -5
  135. package/dist/{chunk-5PNPQYTO.js → chunk-YBVXBNSV.js} +2 -2
  136. package/dist/{chunk-HISR3DTV.js → chunk-YEO3VX72.js} +10 -25
  137. package/dist/{chunk-ZIMRGFYL.js → chunk-YHDERDRO.js} +7 -6
  138. package/dist/{chunk-WF5HVH3M.js → chunk-YNTTROJT.js} +1 -1
  139. package/dist/{chunk-2UH3JI64.js → chunk-YSB2N563.js} +87 -34
  140. package/dist/{chunk-ZYAJMESY.js → chunk-Z4YU7Z4L.js} +3 -2
  141. package/dist/cli/chat.js +32 -32
  142. package/dist/cli/check.js +6 -6
  143. package/dist/cli/plugins.js +13 -13
  144. package/dist/cli/snapshot-create.js +9 -9
  145. package/dist/cli/upgrade.js +7 -7
  146. package/dist/db/schema/location-configurations.d.ts +127 -0
  147. package/dist/db/schema.d.ts +128 -1
  148. package/dist/{db-62PW6LM3.js → db-CSEW4RII.js} +9 -9
  149. package/dist/instrumentation.js +4 -4
  150. package/dist/nitro.js +2 -2
  151. package/dist/{oauth-callback-server-6NZNHJAM.js → oauth-callback-server-FUEV5HNG.js} +24 -24
  152. package/dist/{runner-GCRPG3GQ.js → runner-U3XHSKSH.js} +21 -41
  153. package/dist/{skills-2S3MDFIQ.js → skills-AKE6W3WI.js} +6 -6
  154. package/dist/spawn-B6GDTWJ4.js +39 -0
  155. package/dist/{validation-HAOLCJ5A.js → validation-WDTAULUF.js} +6 -6
  156. package/dist/version.js +1 -1
  157. package/dist/{work-R4XYKMUW.js → work-C3HAO2BG.js} +17 -17
  158. package/dist/{worker-U2UCVR7M.js → worker-LNP4YKBM.js} +10 -10
  159. package/migrations/0024_misty_typhoid_mary.sql +12 -0
  160. package/migrations/meta/0024_snapshot.json +2275 -0
  161. package/migrations/meta/_journal.json +7 -0
  162. package/package.json +4 -4
  163. package/dist/chat/conversations/search.d.ts +0 -24
  164. package/dist/chat/conversations/sql/search.d.ts +0 -4
  165. package/dist/chat/slack/legacy-attachments.d.ts +0 -4
  166. package/dist/chat/slack/message.d.ts +0 -12
  167. package/dist/chat/slack/tools/user-lookup.d.ts +0 -26
  168. package/dist/chat/state/artifacts.d.ts +0 -30
  169. package/dist/chat/tool-support/turn-deadline-result.d.ts +0 -3
  170. package/dist/chunk-Q6QZTTLS.js +0 -55
  171. package/dist/spawn-7WK37BTD.js +0 -39
@@ -57,6 +57,8 @@ export declare const sandboxEgressCredentialContextSchema: z.ZodObject<{
57
57
  }, z.core.$strict>;
58
58
  export declare const sandboxEgressCredentialLeaseSchema: z.ZodObject<{
59
59
  account: z.ZodOptional<z.ZodObject<{
60
+ displayName: z.ZodOptional<z.ZodString>;
61
+ handle: z.ZodOptional<z.ZodString>;
60
62
  id: z.ZodString;
61
63
  label: z.ZodOptional<z.ZodString>;
62
64
  url: z.ZodOptional<z.ZodString>;
@@ -103,6 +105,8 @@ export declare const sandboxEgressAuthRequiredSignalSchema: z.ZodObject<{
103
105
  }, z.core.$strict>;
104
106
  export declare const sandboxEgressPermissionDeniedSignalSchema: z.ZodObject<{
105
107
  account: z.ZodOptional<z.ZodObject<{
108
+ displayName: z.ZodOptional<z.ZodString>;
109
+ handle: z.ZodOptional<z.ZodString>;
106
110
  id: z.ZodString;
107
111
  label: z.ZodOptional<z.ZodString>;
108
112
  url: z.ZodOptional<z.ZodString>;
@@ -148,6 +152,8 @@ export declare const sandboxEgressSignalsResponseSchema: z.ZodObject<{
148
152
  }, z.core.$strict>>;
149
153
  permission_denied: z.ZodOptional<z.ZodObject<{
150
154
  account: z.ZodOptional<z.ZodObject<{
155
+ displayName: z.ZodOptional<z.ZodString>;
156
+ handle: z.ZodOptional<z.ZodString>;
151
157
  id: z.ZodString;
152
158
  label: z.ZodOptional<z.ZodString>;
153
159
  url: z.ZodOptional<z.ZodString>;
@@ -55,6 +55,7 @@ declare const compactTaskResultSchema: z.ZodObject<{
55
55
  }, z.core.$strict>;
56
56
  export declare const scheduleTaskToolResultSchema: z.ZodObject<{
57
57
  truncated: z.ZodOptional<z.ZodBoolean>;
58
+ timed_out: z.ZodOptional<z.ZodBoolean>;
58
59
  continuation: z.ZodOptional<z.ZodObject<{
59
60
  arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
60
61
  reason: z.ZodOptional<z.ZodString>;
@@ -99,6 +100,7 @@ export declare const scheduleTaskToolResultSchema: z.ZodObject<{
99
100
  }, z.core.$strict>;
100
101
  }, z.core.$strict>;
101
102
  export declare const scheduleListToolResultSchema: z.ZodObject<{
103
+ timed_out: z.ZodOptional<z.ZodBoolean>;
102
104
  continuation: z.ZodOptional<z.ZodObject<{
103
105
  arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
104
106
  reason: z.ZodOptional<z.ZodString>;
@@ -56,6 +56,7 @@ export declare function createSlackScheduleCreateTaskTool(context: SchedulerTool
56
56
  run_now_at: string | null;
57
57
  };
58
58
  truncated?: boolean | undefined;
59
+ timed_out?: boolean | undefined;
59
60
  continuation?: {
60
61
  arguments: Record<string, unknown>;
61
62
  reason?: string | undefined;
@@ -85,6 +86,7 @@ export declare function createSlackScheduleCreateTaskTool(context: SchedulerTool
85
86
  run_now_at: string | null;
86
87
  };
87
88
  truncated?: boolean | undefined;
89
+ timed_out?: boolean | undefined;
88
90
  continuation?: {
89
91
  arguments: Record<string, unknown>;
90
92
  reason?: string | undefined;
@@ -31,6 +31,7 @@ export declare function createSlackScheduleDeleteTaskTool(context: SchedulerTool
31
31
  run_now_at: string | null;
32
32
  };
33
33
  truncated?: boolean | undefined;
34
+ timed_out?: boolean | undefined;
34
35
  continuation?: {
35
36
  arguments: Record<string, unknown>;
36
37
  reason?: string | undefined;
@@ -60,6 +61,7 @@ export declare function createSlackScheduleDeleteTaskTool(context: SchedulerTool
60
61
  run_now_at: string | null;
61
62
  };
62
63
  truncated?: boolean | undefined;
64
+ timed_out?: boolean | undefined;
63
65
  continuation?: {
64
66
  arguments: Record<string, unknown>;
65
67
  reason?: string | undefined;
@@ -32,6 +32,7 @@ export declare function createSlackScheduleListTasksTool(context: SchedulerToolC
32
32
  run_now_at: string | null;
33
33
  }[];
34
34
  truncated: boolean;
35
+ timed_out?: boolean | undefined;
35
36
  continuation?: {
36
37
  arguments: Record<string, unknown>;
37
38
  reason?: string | undefined;
@@ -61,6 +62,7 @@ export declare function createSlackScheduleListTasksTool(context: SchedulerToolC
61
62
  run_now_at: string | null;
62
63
  }[];
63
64
  truncated: boolean;
65
+ timed_out?: boolean | undefined;
64
66
  continuation?: {
65
67
  arguments: Record<string, unknown>;
66
68
  reason?: string | undefined;
@@ -31,6 +31,7 @@ export declare function createSlackScheduleRunTaskNowTool(context: SchedulerTool
31
31
  run_now_at: string | null;
32
32
  };
33
33
  truncated?: boolean | undefined;
34
+ timed_out?: boolean | undefined;
34
35
  continuation?: {
35
36
  arguments: Record<string, unknown>;
36
37
  reason?: string | undefined;
@@ -60,6 +61,7 @@ export declare function createSlackScheduleRunTaskNowTool(context: SchedulerTool
60
61
  run_now_at: string | null;
61
62
  };
62
63
  truncated?: boolean | undefined;
64
+ timed_out?: boolean | undefined;
63
65
  continuation?: {
64
66
  arguments: Record<string, unknown>;
65
67
  reason?: string | undefined;
@@ -58,6 +58,7 @@ export declare function createSlackScheduleUpdateTaskTool(context: SchedulerTool
58
58
  run_now_at: string | null;
59
59
  };
60
60
  truncated?: boolean | undefined;
61
+ timed_out?: boolean | undefined;
61
62
  continuation?: {
62
63
  arguments: Record<string, unknown>;
63
64
  reason?: string | undefined;
@@ -87,6 +88,7 @@ export declare function createSlackScheduleUpdateTaskTool(context: SchedulerTool
87
88
  run_now_at: string | null;
88
89
  };
89
90
  truncated?: boolean | undefined;
91
+ timed_out?: boolean | undefined;
90
92
  continuation?: {
91
93
  arguments: Record<string, unknown>;
92
94
  reason?: string | undefined;
@@ -10,7 +10,6 @@ import type { OAuthClientProvider } from "@modelcontextprotocol/sdk/client/auth.
10
10
  import type { Destination, Source } from "@sentry/junior-plugin-api";
11
11
  import { type OAuthAuthorization } from "@/chat/oauth-authorization";
12
12
  import { AuthorizationPauseError } from "@/chat/services/auth-pause";
13
- import type { ThreadArtifactsState } from "@/chat/state/artifacts";
14
13
  import type { ConversationPendingAuthState } from "@/chat/state/conversation";
15
14
  import type { PluginDefinition } from "@/chat/plugins/types";
16
15
  export declare class McpAuthorizationPauseError extends AuthorizationPauseError {
@@ -29,8 +28,6 @@ export interface McpAuthOrchestrationInput {
29
28
  userMessage: string;
30
29
  pendingAuth?: ConversationPendingAuthState;
31
30
  getConfiguration: () => Record<string, unknown>;
32
- getArtifactState: () => ThreadArtifactsState | undefined;
33
- getMergedArtifactState: () => ThreadArtifactsState;
34
31
  recordPendingAuth?: (pendingAuth: ConversationPendingAuthState | undefined) => void | Promise<void>;
35
32
  /** When false, required auth hard-fails instead of pausing for an OAuth link. */
36
33
  interactiveAuthEnabled?: boolean;
@@ -10,7 +10,7 @@
10
10
  * signal emitted by the egress proxy — never inferred from bash command text,
11
11
  * stdout patterns, or exit codes.
12
12
  */
13
- import type { Destination, Source } from "@sentry/junior-plugin-api";
13
+ import type { Actor, Destination, Source } from "@sentry/junior-plugin-api";
14
14
  import type { UserTokenStore } from "@/chat/credentials/user-token-store";
15
15
  import { AuthorizationPauseError } from "@/chat/services/auth-pause";
16
16
  import type { ConversationPendingAuthState } from "@/chat/state/conversation";
@@ -27,6 +27,7 @@ export interface PluginAuthOrchestrationInput {
27
27
  conversationId?: string;
28
28
  sessionId?: string;
29
29
  actorId?: string;
30
+ actor?: Actor;
30
31
  channelId?: string;
31
32
  destination?: Destination;
32
33
  source?: Source;
@@ -1,7 +1,7 @@
1
- import type { ChannelConfigurationService } from "@/chat/configuration/types";
1
+ import type { LocationConfigurationService } from "@/chat/configuration/types";
2
2
  /** Apply explicit provider-default config requests that do not need agent reasoning. */
3
3
  export declare function maybeApplyProviderDefaultConfigRequest(args: {
4
- channelConfiguration?: ChannelConfigurationService;
4
+ locationConfiguration?: LocationConfigurationService;
5
5
  actorId?: string;
6
6
  text: string;
7
7
  }): Promise<{
@@ -24,6 +24,7 @@ export interface SubscribedDecisionInput {
24
24
  };
25
25
  }
26
26
  export interface SubscribedDecisionResult {
27
+ costUsd?: number;
27
28
  shouldReply: boolean;
28
29
  shouldUnsubscribe?: boolean;
29
30
  reason: SubscribedReplyReason;
@@ -55,7 +56,9 @@ export declare function decideSubscribedThreadReply(args: {
55
56
  system: string;
56
57
  prompt: string;
57
58
  metadata: Record<string, string>;
59
+ promptName?: string;
58
60
  }) => Promise<{
61
+ costUsd?: number;
59
62
  object: unknown;
60
63
  }>;
61
64
  logClassifierFailure: (error: unknown, input: SubscribedDecisionInput) => void;
@@ -4,6 +4,7 @@ export interface SubscribedReplyPolicyDeps {
4
4
  completeObject: typeof completeObject;
5
5
  }
6
6
  export interface SubscribedReplyDecision {
7
+ costUsd?: number;
7
8
  reason: string;
8
9
  shouldReply: boolean;
9
10
  shouldUnsubscribe?: boolean;
@@ -1,7 +1,6 @@
1
1
  import type { PiMessage } from "@/chat/pi/messages";
2
2
  import type { TurnRoute } from "@/chat/services/turn-router";
3
3
  import type { AgentTurnUsage } from "@/chat/usage";
4
- import type { ThreadArtifactsState } from "@/chat/state/artifacts";
5
4
  import type { SandboxRef } from "@/chat/sandbox/ref";
6
5
  export interface AgentTurnDiagnostics {
7
6
  assistantMessageCount: number;
@@ -21,7 +20,6 @@ export interface AgentTurnDiagnostics {
21
20
  export interface AgentRunResult {
22
21
  /** Sanitized terminal text for diagnostics and failure fallback, not success delivery. */
23
22
  text: string;
24
- artifactStatePatch?: Partial<ThreadArtifactsState>;
25
23
  sandboxRef?: SandboxRef;
26
24
  piMessages?: PiMessage[];
27
25
  diagnostics: AgentTurnDiagnostics;
@@ -29,7 +27,6 @@ export interface AgentRunResult {
29
27
  export interface TurnResultInput {
30
28
  newMessages: unknown[];
31
29
  userInput: string;
32
- artifactStatePatch: Partial<ThreadArtifactsState>;
33
30
  toolCalls: string[];
34
31
  sandboxRef?: SandboxRef;
35
32
  piMessages?: PiMessage[];
@@ -17,6 +17,7 @@ declare function createTurnRouteSchema(profiles: Readonly<Record<string, Executi
17
17
  }, z.core.$strip>;
18
18
  export interface TurnRoute {
19
19
  confidence?: number;
20
+ costUsd?: number;
20
21
  profile: ModelProfile;
21
22
  reasoningLevel: TurnReasoningLevel;
22
23
  reason: string;
@@ -35,7 +36,9 @@ export declare function selectTurnRoute(args: {
35
36
  thinkingLevel?: ProviderThinkingLevel;
36
37
  system: string;
37
38
  temperature: number;
39
+ promptName?: string;
38
40
  }) => Promise<{
41
+ costUsd?: number;
39
42
  object: unknown;
40
43
  }>;
41
44
  conversationContext?: string;
@@ -4,7 +4,6 @@ interface AssistantThreadLifecycleEvent {
4
4
  threadTs: string;
5
5
  sourceChannelId?: string;
6
6
  getSlackAdapter: () => SlackAdapter;
7
- onContextChannelResolved: (sourceChannelId: string) => Promise<void>;
8
7
  }
9
8
  /** Initialize a newly started Slack assistant thread. */
10
9
  export declare function initializeAssistantThread(event: AssistantThreadLifecycleEvent): Promise<void>;
@@ -1,6 +1,5 @@
1
1
  import type { SlackAdapter } from "@chat-adapter/slack";
2
2
  import { type ConversationMemoryService } from "@/chat/services/conversation-memory";
3
- import type { ThreadArtifactsState } from "@/chat/state/artifacts";
4
3
  import type { ThreadConversationState } from "@/chat/state/conversation";
5
4
  /**
6
5
  * Best-effort conversation title generation for all Slack conversations.
@@ -21,7 +20,6 @@ export declare function maybeUpdateAssistantTitle(args: {
21
20
  threadTs: string;
22
21
  };
23
22
  assistantUserName: string;
24
- artifacts: ThreadArtifactsState;
25
23
  channelId?: string;
26
24
  conversation: ThreadConversationState;
27
25
  generateThreadTitle: ConversationMemoryService["generateThreadTitle"];
@@ -31,6 +29,5 @@ export declare function maybeUpdateAssistantTitle(args: {
31
29
  runId?: string;
32
30
  threadId?: string;
33
31
  }): Promise<{
34
- sourceMessageId: string;
35
32
  title?: string;
36
33
  } | undefined>;
@@ -16,7 +16,7 @@ interface DispatchReplyToThread {
16
16
  }
17
17
  /** Build the Slack provider adapter for agent-dispatched conversation turns. */
18
18
  export declare function createSlackDispatchTurnRunner(options: {
19
- getChannelConfiguration: (channelId: string) => DispatchTurnContext["channelConfiguration"];
19
+ getLocationConfiguration: (destination: DispatchRecord["destination"]) => DispatchTurnContext["locationConfiguration"];
20
20
  getSlackAdapter: () => SlackAdapter;
21
21
  replyToThread: DispatchReplyToThread;
22
22
  }): (dispatch: DispatchRecord, hooks: {
@@ -0,0 +1,2 @@
1
+ /** Render legacy attachment fields so attachment-only messages still carry context. */
2
+ export declare function renderAttachmentText(input: unknown): string;
@@ -0,0 +1,2 @@
1
+ /** Render visible block text without exposing hidden interaction data. */
2
+ export declare function renderBlockText(value: unknown): string;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Slack message content projection.
3
+ *
4
+ * This module is the typed entry point for agent-visible Slack text. Raw block
5
+ * and attachment details stay behind this boundary.
6
+ */
7
+ import { type Message } from "chat";
8
+ /** Agent-visible content projected from a Slack message. */
9
+ export interface MessageContent {
10
+ attachmentText: string;
11
+ hasAttachments: boolean;
12
+ text: string;
13
+ topLevelText: string;
14
+ }
15
+ /** Replace top-level text while preserving the parsed attachment projection. */
16
+ export declare function replaceTopLevelText(content: Pick<MessageContent, "attachmentText">, text: string): string;
17
+ /** Parse the agent-visible content and attachment state of a Slack message. */
18
+ export declare function parseContent(message: Pick<Message, "attachments" | "formatted" | "raw" | "text">): MessageContent;
@@ -0,0 +1,7 @@
1
+ import type { Message } from "chat";
2
+ import { type SlackMessageTs } from "@/chat/slack/timestamp";
3
+ /**
4
+ * Preserve the native Slack message timestamp when a synthetic message ID is
5
+ * used for routing or deduplication.
6
+ */
7
+ export declare function getMessageTimestamp(message: Pick<Message, "id" | "raw">): SlackMessageTs | undefined;
@@ -1,11 +1,3 @@
1
- import type { CanvasArtifactSummary } from "@/chat/state/artifacts";
2
- import type { ToolState } from "@/chat/tools/types";
3
- /** Merge a created canvas into artifact state without growing context forever. */
4
- export declare function mergeRecentCanvases(existing: CanvasArtifactSummary[] | undefined, created: {
5
- id: string;
6
- title: string;
7
- url?: string;
8
- }): CanvasArtifactSummary[];
9
1
  /** Resolve model-provided canvas references before Slack API calls. */
10
2
  export declare function resolveCanvasTarget(canvas: string): {
11
3
  ok: true;
@@ -14,5 +6,3 @@ export declare function resolveCanvasTarget(canvas: string): {
14
6
  ok: false;
15
7
  error: string;
16
8
  };
17
- /** Preserve known canvas permalinks when tools only receive an ID. */
18
- export declare function storedCanvasUrl(state: ToolState, canvasId: string): string | undefined;
@@ -12,6 +12,7 @@ export declare function createSlackCanvasCreateTool(context: SlackToolContext, s
12
12
  [x: string]: unknown;
13
13
  target?: string | undefined;
14
14
  truncated?: boolean | undefined;
15
+ timed_out?: boolean | undefined;
15
16
  continuation?: {
16
17
  arguments: Record<string, unknown>;
17
18
  reason?: string | undefined;
@@ -20,6 +21,7 @@ export declare function createSlackCanvasCreateTool(context: SlackToolContext, s
20
21
  [x: string]: unknown;
21
22
  target?: string | undefined;
22
23
  truncated?: boolean | undefined;
24
+ timed_out?: boolean | undefined;
23
25
  continuation?: {
24
26
  arguments: Record<string, unknown>;
25
27
  reason?: string | undefined;
@@ -13,6 +13,7 @@ export declare function createSlackCanvasEditTool(state: ToolState): Omit<import
13
13
  execute?: ((input: unknown, options: import("../../../tools/definition").ToolExecuteOptions) => {
14
14
  target?: string | undefined;
15
15
  truncated?: boolean | undefined;
16
+ timed_out?: boolean | undefined;
16
17
  continuation?: {
17
18
  arguments: Record<string, unknown>;
18
19
  reason?: string | undefined;
@@ -29,6 +30,7 @@ export declare function createSlackCanvasEditTool(state: ToolState): Omit<import
29
30
  } | Promise<{
30
31
  target?: string | undefined;
31
32
  truncated?: boolean | undefined;
33
+ timed_out?: boolean | undefined;
32
34
  continuation?: {
33
35
  arguments: Record<string, unknown>;
34
36
  reason?: string | undefined;
@@ -14,6 +14,7 @@ export declare function createSlackCanvasReadTool(): Omit<import("../../../tools
14
14
  execute?: ((input: unknown, options: import("../../../tools/definition").ToolExecuteOptions) => {
15
15
  target?: string | undefined;
16
16
  truncated?: boolean | undefined;
17
+ timed_out?: boolean | undefined;
17
18
  continuation?: {
18
19
  arguments: Record<string, unknown>;
19
20
  reason?: string | undefined;
@@ -31,6 +32,7 @@ export declare function createSlackCanvasReadTool(): Omit<import("../../../tools
31
32
  } | Promise<{
32
33
  target?: string | undefined;
33
34
  truncated?: boolean | undefined;
35
+ timed_out?: boolean | undefined;
34
36
  continuation?: {
35
37
  arguments: Record<string, unknown>;
36
38
  reason?: string | undefined;
@@ -11,6 +11,7 @@ export declare function createSlackCanvasWriteTool(state: ToolState): Omit<impor
11
11
  [x: string]: unknown;
12
12
  target?: string | undefined;
13
13
  truncated?: boolean | undefined;
14
+ timed_out?: boolean | undefined;
14
15
  continuation?: {
15
16
  arguments: Record<string, unknown>;
16
17
  reason?: string | undefined;
@@ -19,6 +20,7 @@ export declare function createSlackCanvasWriteTool(state: ToolState): Omit<impor
19
20
  [x: string]: unknown;
20
21
  target?: string | undefined;
21
22
  truncated?: boolean | undefined;
23
+ timed_out?: boolean | undefined;
22
24
  continuation?: {
23
25
  arguments: Record<string, unknown>;
24
26
  reason?: string | undefined;
@@ -15,6 +15,7 @@ export declare function createSlackChannelListMessagesTool(context: SlackToolCon
15
15
  [x: string]: unknown;
16
16
  target?: string | undefined;
17
17
  truncated?: boolean | undefined;
18
+ timed_out?: boolean | undefined;
18
19
  continuation?: {
19
20
  arguments: Record<string, unknown>;
20
21
  reason?: string | undefined;
@@ -23,6 +24,7 @@ export declare function createSlackChannelListMessagesTool(context: SlackToolCon
23
24
  [x: string]: unknown;
24
25
  target?: string | undefined;
25
26
  truncated?: boolean | undefined;
27
+ timed_out?: boolean | undefined;
26
28
  continuation?: {
27
29
  arguments: Record<string, unknown>;
28
30
  reason?: string | undefined;
@@ -1,55 +1,64 @@
1
- import type { ConversationSearchScope, ConversationSearchStore } from "@/chat/conversations/search";
1
+ import type { ConversationMessageSearchScope, ConversationMessageSearchStore } from "@/chat/conversations/message-search";
2
2
  import { getSlackMessagePermalink } from "@/chat/slack/outbound";
3
- interface ConversationSearchToolDeps {
3
+ interface ConversationMessageSearchToolDeps {
4
4
  getPermalink?: typeof getSlackMessagePermalink;
5
- store?: ConversationSearchStore;
5
+ store?: ConversationMessageSearchStore;
6
6
  }
7
- /** Create a tool that searches retained public Junior threads across an authorized Slack workspace. */
8
- export declare function createSlackConversationSearchTool(scope: ConversationSearchScope, currentConversationId: string, deps?: ConversationSearchToolDeps): Omit<import("../../tools/definition").AnyToolDefinition, "inputSchema" | "outputSchema" | "prepareArguments" | "execute"> & {
7
+ /** Create a tool that searches retained public messages in an authorized Slack workspace. */
8
+ export declare function createSlackConversationMessageSearchTool(scope: ConversationMessageSearchScope, currentConversationId: string, deps?: ConversationMessageSearchToolDeps): Omit<import("../../tools/definition").AnyToolDefinition, "inputSchema" | "outputSchema" | "prepareArguments" | "execute"> & {
9
9
  inputSchema: import("../../tools/definition").JsonSchemaObject;
10
10
  outputSchema: import("../../tools/definition").JsonSchemaObject;
11
11
  prepareArguments(args: unknown): {
12
- query: string;
12
+ channel_id?: string | null | undefined;
13
+ query?: string | null | undefined;
13
14
  limit?: number | null | undefined;
14
15
  };
15
16
  execute?: ((input: unknown, options: import("../../tools/definition").ToolExecuteOptions) => {
16
17
  [x: string]: unknown;
17
- query: string;
18
18
  count: number;
19
- threads: {
19
+ matches: {
20
+ channel_id: string;
20
21
  conversation_id: string;
21
- thread_ts: string;
22
+ excerpt: string;
22
23
  message_id: string;
23
24
  message_role: "user" | "assistant";
24
25
  message_timestamp: string;
25
- excerpt: string;
26
+ thread_ts: string;
27
+ channel_name?: string | undefined;
26
28
  permalink?: string | undefined;
27
29
  }[];
28
30
  target?: string | undefined;
29
31
  truncated?: boolean | undefined;
32
+ timed_out?: boolean | undefined;
30
33
  continuation?: {
31
34
  arguments: Record<string, unknown>;
32
35
  reason?: string | undefined;
33
36
  } | undefined;
37
+ channel_id?: string | undefined;
38
+ query?: string | undefined;
34
39
  } | Promise<{
35
40
  [x: string]: unknown;
36
- query: string;
37
41
  count: number;
38
- threads: {
42
+ matches: {
43
+ channel_id: string;
39
44
  conversation_id: string;
40
- thread_ts: string;
45
+ excerpt: string;
41
46
  message_id: string;
42
47
  message_role: "user" | "assistant";
43
48
  message_timestamp: string;
44
- excerpt: string;
49
+ thread_ts: string;
50
+ channel_name?: string | undefined;
45
51
  permalink?: string | undefined;
46
52
  }[];
47
53
  target?: string | undefined;
48
54
  truncated?: boolean | undefined;
55
+ timed_out?: boolean | undefined;
49
56
  continuation?: {
50
57
  arguments: Record<string, unknown>;
51
58
  reason?: string | undefined;
52
59
  } | undefined;
60
+ channel_id?: string | undefined;
61
+ query?: string | undefined;
53
62
  }>) | undefined;
54
63
  };
55
64
  export {};
@@ -1,9 +1,10 @@
1
1
  import type { ToolState } from "@/chat/tools/types";
2
- /** Create a tool that appends items to the active Slack list. */
2
+ /** Create a tool that appends items to an explicit Slack list. */
3
3
  export declare function createSlackListAddItemsTool(state: ToolState): Omit<import("../../../tools/definition").AnyToolDefinition, "inputSchema" | "outputSchema" | "prepareArguments" | "execute"> & {
4
4
  inputSchema: import("../../../tools/definition").JsonSchemaObject;
5
5
  outputSchema: import("../../../tools/definition").JsonSchemaObject;
6
6
  prepareArguments(args: unknown): {
7
+ list_id: string;
7
8
  items: string[];
8
9
  assignee_user_id?: string | undefined;
9
10
  due_date?: string | undefined;
@@ -12,6 +13,7 @@ export declare function createSlackListAddItemsTool(state: ToolState): Omit<impo
12
13
  [x: string]: unknown;
13
14
  target?: string | undefined;
14
15
  truncated?: boolean | undefined;
16
+ timed_out?: boolean | undefined;
15
17
  continuation?: {
16
18
  arguments: Record<string, unknown>;
17
19
  reason?: string | undefined;
@@ -20,6 +22,7 @@ export declare function createSlackListAddItemsTool(state: ToolState): Omit<impo
20
22
  [x: string]: unknown;
21
23
  target?: string | undefined;
22
24
  truncated?: boolean | undefined;
25
+ timed_out?: boolean | undefined;
23
26
  continuation?: {
24
27
  arguments: Record<string, unknown>;
25
28
  reason?: string | undefined;
@@ -1,5 +1,10 @@
1
1
  import type { SlackUserId } from "@/chat/slack/ids";
2
- import type { ListColumnMap } from "@/chat/state/artifacts";
2
+ export interface ListColumnMap {
3
+ titleColumnId?: string;
4
+ completedColumnId?: string;
5
+ assigneeColumnId?: string;
6
+ dueDateColumnId?: string;
7
+ }
3
8
  interface SlackListsSchemaColumnResponse {
4
9
  id: string;
5
10
  key: string;
@@ -19,6 +24,8 @@ export declare function createTodoList(name: string): Promise<{
19
24
  listColumnMap: ListColumnMap;
20
25
  permalink?: string;
21
26
  }>;
27
+ /** Read a Slack list schema and map its standard columns. */
28
+ export declare function getListColumnMap(listId: string): Promise<ListColumnMap>;
22
29
  /** Add one or more items to an existing Slack list. */
23
30
  export declare function addListItems(input: {
24
31
  listId: string;
@@ -10,6 +10,7 @@ export declare function createSlackListCreateTool(state: ToolState): Omit<import
10
10
  [x: string]: unknown;
11
11
  target?: string | undefined;
12
12
  truncated?: boolean | undefined;
13
+ timed_out?: boolean | undefined;
13
14
  continuation?: {
14
15
  arguments: Record<string, unknown>;
15
16
  reason?: string | undefined;
@@ -18,6 +19,7 @@ export declare function createSlackListCreateTool(state: ToolState): Omit<import
18
19
  [x: string]: unknown;
19
20
  target?: string | undefined;
20
21
  truncated?: boolean | undefined;
22
+ timed_out?: boolean | undefined;
21
23
  continuation?: {
22
24
  arguments: Record<string, unknown>;
23
25
  reason?: string | undefined;
@@ -1,15 +1,16 @@
1
- import type { ToolState } from "@/chat/tools/types";
2
- /** Create a tool that reads items from the active Slack list. */
3
- export declare function createSlackListGetItemsTool(state: ToolState): Omit<import("../../../tools/definition").AnyToolDefinition, "inputSchema" | "outputSchema" | "prepareArguments" | "execute"> & {
1
+ /** Create a tool that reads items from an explicit Slack list. */
2
+ export declare function createSlackListGetItemsTool(): Omit<import("../../../tools/definition").AnyToolDefinition, "inputSchema" | "outputSchema" | "prepareArguments" | "execute"> & {
4
3
  inputSchema: import("../../../tools/definition").JsonSchemaObject;
5
4
  outputSchema: import("../../../tools/definition").JsonSchemaObject;
6
5
  prepareArguments(args: unknown): {
6
+ list_id: string;
7
7
  limit?: number | undefined;
8
8
  };
9
9
  execute?: ((input: unknown, options: import("../../../tools/definition").ToolExecuteOptions) => {
10
10
  [x: string]: unknown;
11
11
  target?: string | undefined;
12
12
  truncated?: boolean | undefined;
13
+ timed_out?: boolean | undefined;
13
14
  continuation?: {
14
15
  arguments: Record<string, unknown>;
15
16
  reason?: string | undefined;
@@ -18,6 +19,7 @@ export declare function createSlackListGetItemsTool(state: ToolState): Omit<impo
18
19
  [x: string]: unknown;
19
20
  target?: string | undefined;
20
21
  truncated?: boolean | undefined;
22
+ timed_out?: boolean | undefined;
21
23
  continuation?: {
22
24
  arguments: Record<string, unknown>;
23
25
  reason?: string | undefined;
@@ -1,13 +1,15 @@
1
1
  import type { ToolState } from "@/chat/tools/types";
2
- /** Create a tool that updates an item in the active Slack list. */
2
+ /** Create a tool that updates an item in an explicit Slack list. */
3
3
  export declare function createSlackListUpdateItemTool(state: ToolState): Omit<import("../../../tools/definition").AnyToolDefinition, "inputSchema" | "outputSchema" | "prepareArguments" | "execute"> & {
4
4
  inputSchema: import("../../../tools/definition").JsonSchemaObject;
5
5
  outputSchema: import("../../../tools/definition").JsonSchemaObject;
6
6
  prepareArguments(args: unknown): {
7
+ list_id: string;
7
8
  item_id: string;
8
9
  completed: boolean;
9
10
  title?: string | undefined;
10
11
  } | {
12
+ list_id: string;
11
13
  item_id: string;
12
14
  title: string;
13
15
  completed?: boolean | undefined;
@@ -16,6 +18,7 @@ export declare function createSlackListUpdateItemTool(state: ToolState): Omit<im
16
18
  [x: string]: unknown;
17
19
  target?: string | undefined;
18
20
  truncated?: boolean | undefined;
21
+ timed_out?: boolean | undefined;
19
22
  continuation?: {
20
23
  arguments: Record<string, unknown>;
21
24
  reason?: string | undefined;
@@ -24,6 +27,7 @@ export declare function createSlackListUpdateItemTool(state: ToolState): Omit<im
24
27
  [x: string]: unknown;
25
28
  target?: string | undefined;
26
29
  truncated?: boolean | undefined;
30
+ timed_out?: boolean | undefined;
27
31
  continuation?: {
28
32
  arguments: Record<string, unknown>;
29
33
  reason?: string | undefined;