@sentry/junior 0.147.0 → 0.148.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 (155) hide show
  1. package/dist/{agent-hooks-HS6VGUPM.js → agent-hooks-VAUYT6PD.js} +10 -10
  2. package/dist/api/conversations/access.d.ts +2 -1
  3. package/dist/api/conversations/archive.d.ts +3 -5
  4. package/dist/api/conversations/create.d.ts +6 -0
  5. package/dist/api/conversations/detail.d.ts +2 -296
  6. package/dist/api/conversations/event-list.d.ts +2 -193
  7. package/dist/api/conversations/list.d.ts +4 -66
  8. package/dist/api/conversations/routes.d.ts +1 -1
  9. package/dist/api/conversations/stats.d.ts +0 -54
  10. package/dist/api/http.d.ts +2 -6
  11. package/dist/api/locations/detail.d.ts +3 -111
  12. package/dist/api/locations/list.d.ts +0 -45
  13. package/dist/api/locations/query.d.ts +2 -1
  14. package/dist/api/locations/routes.d.ts +1 -1
  15. package/dist/api/people/list.d.ts +0 -29
  16. package/dist/api/people/profile.d.ts +2 -106
  17. package/dist/api/people/profile.query.d.ts +2 -1
  18. package/dist/api/people/routes.d.ts +1 -1
  19. package/dist/api/people/shared.d.ts +1 -1
  20. package/dist/api/people/spend.d.ts +3 -4
  21. package/dist/api/personal-tokens/routes.d.ts +2 -2
  22. package/dist/api/route.d.ts +8 -14
  23. package/dist/api/schema/conversation.d.ts +60 -29
  24. package/dist/api/schema/location.d.ts +4 -0
  25. package/dist/api/schema/person.d.ts +7 -3
  26. package/dist/api/schema.d.ts +2 -2
  27. package/dist/api/schema.js +7 -1
  28. package/dist/api/stats.d.ts +0 -13
  29. package/dist/api/validation.d.ts +7 -0
  30. package/dist/api/viewer.d.ts +3 -0
  31. package/dist/api.d.ts +2 -1
  32. package/dist/api.js +624 -562
  33. package/dist/app.js +183 -105
  34. package/dist/{catalog-runtime-M6ZTPYRV.js → catalog-runtime-WADOZVTB.js} +5 -5
  35. package/dist/chat/actor.d.ts +4 -1
  36. package/dist/chat/agent/request.d.ts +2 -0
  37. package/dist/chat/agent/resume.d.ts +1 -0
  38. package/dist/chat/agent-dispatch/context.d.ts +2 -2
  39. package/dist/chat/agent-invocations/types.d.ts +52 -0
  40. package/dist/chat/api-turns/work.d.ts +103 -0
  41. package/dist/chat/conversations/history.d.ts +60 -0
  42. package/dist/chat/conversations/provenance.d.ts +6 -0
  43. package/dist/chat/conversations/sql/actor-identity.d.ts +19 -0
  44. package/dist/chat/conversations/store.d.ts +1 -1
  45. package/dist/chat/resource-events/store.d.ts +1 -1
  46. package/dist/chat/runtime/reply-executor.d.ts +1 -1
  47. package/dist/chat/runtime/slack-runtime.d.ts +2 -1
  48. package/dist/chat/runtime/turn-preparation.d.ts +9 -0
  49. package/dist/chat/scheduled-tasks/tool-support.d.ts +5 -5
  50. package/dist/chat/scheduled-tasks/tools/create.d.ts +2 -2
  51. package/dist/chat/scheduled-tasks/tools/delete.d.ts +2 -2
  52. package/dist/chat/scheduled-tasks/tools/list.d.ts +2 -2
  53. package/dist/chat/scheduled-tasks/tools/run-now.d.ts +2 -2
  54. package/dist/chat/scheduled-tasks/tools/update.d.ts +2 -2
  55. package/dist/chat/slack/channel.d.ts +26 -0
  56. package/dist/chat/slack/dispatch-turn.d.ts +1 -0
  57. package/dist/chat/slack/timestamp-param.d.ts +0 -2
  58. package/dist/chat/slack/{tools → tool-support}/canvas/api.d.ts +1 -1
  59. package/dist/chat/slack/{tools → tool-support}/canvas/context.d.ts +3 -0
  60. package/dist/chat/slack/tool-support/channel-access.d.ts +42 -0
  61. package/dist/chat/slack/tool-support/channel-target.d.ts +27 -0
  62. package/dist/chat/slack/tool-support/list/params.d.ts +5 -0
  63. package/dist/chat/slack/tools/canvas/create.d.ts +1 -1
  64. package/dist/chat/slack/tools/channel-join.d.ts +28 -0
  65. package/dist/chat/slack/tools/channel-list-messages.d.ts +3 -2
  66. package/dist/chat/slack/tools/conversation-message-search.d.ts +2 -8
  67. package/dist/chat/slack/tools/message-add-reaction.d.ts +1 -1
  68. package/dist/chat/slack/tools/public-search.d.ts +63 -2
  69. package/dist/chat/slack/tools/send-files.d.ts +1 -1
  70. package/dist/chat/slack/tools/thread-read.d.ts +2 -5
  71. package/dist/chat/source.d.ts +2 -0
  72. package/dist/chat/task-execution/checkpoint.d.ts +1 -0
  73. package/dist/chat/task-execution/state.d.ts +9 -4
  74. package/dist/chat/task-execution/store.d.ts +3 -2
  75. package/dist/chat/task-execution/turn-cursor.d.ts +2 -0
  76. package/dist/chat/task-execution/worker.d.ts +2 -0
  77. package/dist/chat/tasks/read.d.ts +1 -1
  78. package/dist/chat/tools/search-conversation-events.d.ts +1 -1
  79. package/dist/chat/tools/types.d.ts +11 -4
  80. package/dist/chat/tools/watch-resource-events.d.ts +2 -2
  81. package/dist/{chunk-ORO3PWKQ.js → chunk-2B3PT3V2.js} +1 -1
  82. package/dist/{chunk-SVHUEHUL.js → chunk-45LOR4PU.js} +21 -4
  83. package/dist/{chunk-YBVXBNSV.js → chunk-4AQZYNHM.js} +2 -2
  84. package/dist/{chunk-Z4YU7Z4L.js → chunk-4EA2SFK2.js} +65 -4
  85. package/dist/{chunk-7NVJVJID.js → chunk-4GXJUYJV.js} +2 -2
  86. package/dist/{chunk-IIOOO4FQ.js → chunk-55F4QU2V.js} +2 -1
  87. package/dist/{chunk-745QJ3ZA.js → chunk-7OEIXFC3.js} +2 -2
  88. package/dist/{chunk-DU74WPIC.js → chunk-D3WPMGEX.js} +1 -1
  89. package/dist/{chunk-PVNG6UMU.js → chunk-D6YX4NNN.js} +22 -10
  90. package/dist/chunk-DUY5CDAM.js +36 -0
  91. package/dist/{chunk-4LJO56OJ.js → chunk-EAI67NTM.js} +1 -1
  92. package/dist/{chunk-X5UY34KT.js → chunk-EINWQFXI.js} +8 -8
  93. package/dist/chunk-GDFF3BQG.js +136 -0
  94. package/dist/{chunk-EFLJ2WJH.js → chunk-GXYDVZKM.js} +5 -5
  95. package/dist/{chunk-CWP5RHVX.js → chunk-HLPLT3NY.js} +8 -5
  96. package/dist/{chunk-JUUKWRBE.js → chunk-HWQGBIH7.js} +1 -1
  97. package/dist/{chunk-AZ7EAOBE.js → chunk-IL4EDBMV.js} +5 -5
  98. package/dist/{chunk-DLDRQHG5.js → chunk-LAZGHEYU.js} +1 -1
  99. package/dist/{chunk-RXBVB2JM.js → chunk-LE5H7LMT.js} +1 -1
  100. package/dist/chunk-LNVEIJ2L.js +48 -0
  101. package/dist/{chunk-YEO3VX72.js → chunk-OJCP3C3J.js} +8 -6
  102. package/dist/{chunk-GGB4WL5A.js → chunk-POSZWRGL.js} +1 -1
  103. package/dist/{chunk-YNTTROJT.js → chunk-QOWHHM3F.js} +1 -1
  104. package/dist/{chunk-6H5SZR24.js → chunk-RRJV5UR5.js} +302 -59
  105. package/dist/{chunk-AYU72WO7.js → chunk-ULAU5ZGU.js} +41 -64
  106. package/dist/{chunk-SGZO7UWH.js → chunk-V2FXMOEA.js} +2 -2
  107. package/dist/{chunk-AIOK6LAG.js → chunk-VCYSOXON.js} +272 -41
  108. package/dist/{chunk-7A4M7PCV.js → chunk-VMNRXKAH.js} +1166 -540
  109. package/dist/{chunk-YSB2N563.js → chunk-VRHTNBA6.js} +121 -87
  110. package/dist/{chunk-AVZDSUFB.js → chunk-VY6W3T43.js} +4 -4
  111. package/dist/{chunk-7UQIVT6G.js → chunk-WCN4YSH7.js} +6 -6
  112. package/dist/{chunk-CSZINQJ2.js → chunk-WOONT5ZP.js} +1 -1
  113. package/dist/{chunk-Q4R73I43.js → chunk-XJ42NBP5.js} +58 -28
  114. package/dist/{chunk-YHDERDRO.js → chunk-ZCHIC2GM.js} +91 -75
  115. package/dist/chunk-ZPL2RR7F.js +798 -0
  116. package/dist/cli/chat.js +33 -35
  117. package/dist/cli/check.js +6 -6
  118. package/dist/cli/plugins.js +13 -13
  119. package/dist/cli/snapshot-create.js +9 -9
  120. package/dist/cli/upgrade.js +7 -7
  121. package/dist/db/schema/agent-invocations.d.ts +20 -0
  122. package/dist/db/schema/conversation-annotations.d.ts +2 -2
  123. package/dist/db/schema.d.ts +22 -2
  124. package/dist/{db-CSEW4RII.js → db-XUKZRFFK.js} +7 -7
  125. package/dist/instrumentation.js +4 -4
  126. package/dist/nitro.js +2 -2
  127. package/dist/{oauth-callback-server-FUEV5HNG.js → oauth-callback-server-LPZMMGFI.js} +25 -26
  128. package/dist/{runner-U3XHSKSH.js → runner-DGKUTMPX.js} +17 -18
  129. package/dist/{skills-AKE6W3WI.js → skills-P7YUFSXM.js} +6 -6
  130. package/dist/spawn-DSK3ZEVD.js +38 -0
  131. package/dist/{validation-WDTAULUF.js → validation-S7U5M5NR.js} +6 -6
  132. package/dist/version.js +1 -1
  133. package/dist/{work-C3HAO2BG.js → work-GAA7TVAD.js} +18 -19
  134. package/dist/{worker-LNP4YKBM.js → worker-JXPJH3QB.js} +11 -10
  135. package/package.json +5 -4
  136. package/dist/api/health.d.ts +0 -7
  137. package/dist/api/personal-tokens/create.d.ts +0 -11
  138. package/dist/api/personal-tokens/list.d.ts +0 -12
  139. package/dist/api/personal-tokens/revoke.d.ts +0 -5
  140. package/dist/api/plugin-reports.d.ts +0 -63
  141. package/dist/api/plugins.d.ts +0 -8
  142. package/dist/api/runtime.d.ts +0 -24
  143. package/dist/api/skills.d.ts +0 -6
  144. package/dist/chat/slack/tools/channel-access.d.ts +0 -30
  145. package/dist/chunk-34GS7B6L.js +0 -115
  146. package/dist/chunk-AVOCH2Z5.js +0 -285
  147. package/dist/chunk-HLXXQI5Q.js +0 -238
  148. package/dist/chunk-K4SZAP3K.js +0 -67
  149. package/dist/chunk-R776HKPK.js +0 -81
  150. package/dist/spawn-B6GDTWJ4.js +0 -39
  151. /package/dist/chat/slack/{tools → tool-support}/canvas/markdown.d.ts +0 -0
  152. /package/dist/chat/slack/{tools → tool-support}/channel-capabilities.d.ts +0 -0
  153. /package/dist/chat/slack/{tools → tool-support}/context.d.ts +0 -0
  154. /package/dist/chat/slack/{tools → tool-support}/list/api.d.ts +0 -0
  155. /package/dist/chat/slack/{tools → tool-support}/slack-message-url.d.ts +0 -0
@@ -0,0 +1,38 @@
1
+ import {
2
+ bindSpawnAgent
3
+ } from "./chunk-7OEIXFC3.js";
4
+ import "./chunk-OJCP3C3J.js";
5
+ import "./chunk-HLPLT3NY.js";
6
+ import "./chunk-IL4EDBMV.js";
7
+ import "./chunk-JAL3CH4G.js";
8
+ import "./chunk-EINWQFXI.js";
9
+ import "./chunk-DIB4GX3G.js";
10
+ import "./chunk-GDFF3BQG.js";
11
+ import "./chunk-WCN4YSH7.js";
12
+ import "./chunk-HUO3UTAQ.js";
13
+ import "./chunk-VCYSOXON.js";
14
+ import "./chunk-3Y47VMHV.js";
15
+ import "./chunk-PDO5BLNM.js";
16
+ import "./chunk-V2FXMOEA.js";
17
+ import "./chunk-VRHTNBA6.js";
18
+ import "./chunk-D3WPMGEX.js";
19
+ import "./chunk-EM225ITJ.js";
20
+ import "./chunk-2B3PT3V2.js";
21
+ import "./chunk-4GXJUYJV.js";
22
+ import "./chunk-VFUK3X5B.js";
23
+ import "./chunk-LE5H7LMT.js";
24
+ import "./chunk-HWQGBIH7.js";
25
+ import "./chunk-POSZWRGL.js";
26
+ import "./chunk-RUIXF3YQ.js";
27
+ import "./chunk-HZF5P5UN.js";
28
+ import "./chunk-F3B2YJ76.js";
29
+ import "./chunk-EAI67NTM.js";
30
+ import "./chunk-6GWA276C.js";
31
+ import "./chunk-OOUNJNMR.js";
32
+ import "./chunk-H4HBKISO.js";
33
+ import "./chunk-LAZGHEYU.js";
34
+ import "./chunk-55F4QU2V.js";
35
+ import "./chunk-MLKGABMK.js";
36
+ export {
37
+ bindSpawnAgent
38
+ };
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  validatePluginEgressCredentialHooks,
3
3
  validatePluginRegistrations
4
- } from "./chunk-YNTTROJT.js";
5
- import "./chunk-JUUKWRBE.js";
6
- import "./chunk-GGB4WL5A.js";
4
+ } from "./chunk-QOWHHM3F.js";
5
+ import "./chunk-HWQGBIH7.js";
6
+ import "./chunk-POSZWRGL.js";
7
7
  import "./chunk-RUIXF3YQ.js";
8
8
  import "./chunk-HZF5P5UN.js";
9
9
  import "./chunk-F3B2YJ76.js";
10
- import "./chunk-4LJO56OJ.js";
10
+ import "./chunk-EAI67NTM.js";
11
11
  import "./chunk-6GWA276C.js";
12
12
  import "./chunk-OOUNJNMR.js";
13
13
  import "./chunk-H4HBKISO.js";
14
- import "./chunk-DLDRQHG5.js";
15
- import "./chunk-IIOOO4FQ.js";
14
+ import "./chunk-LAZGHEYU.js";
15
+ import "./chunk-55F4QU2V.js";
16
16
  import "./chunk-MLKGABMK.js";
17
17
  export {
18
18
  validatePluginEgressCredentialHooks,
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  JUNIOR_VERSION
3
- } from "./chunk-IIOOO4FQ.js";
3
+ } from "./chunk-55F4QU2V.js";
4
4
  import "./chunk-MLKGABMK.js";
5
5
  export {
6
6
  JUNIOR_VERSION
@@ -5,37 +5,36 @@ import {
5
5
  enqueueAgentInvocation,
6
6
  resolveAgentInvocationId,
7
7
  routeAgentInvocationWork
8
- } from "./chunk-YEO3VX72.js";
9
- import "./chunk-CWP5RHVX.js";
10
- import "./chunk-AZ7EAOBE.js";
8
+ } from "./chunk-OJCP3C3J.js";
9
+ import "./chunk-HLPLT3NY.js";
10
+ import "./chunk-IL4EDBMV.js";
11
11
  import "./chunk-JAL3CH4G.js";
12
- import "./chunk-X5UY34KT.js";
12
+ import "./chunk-EINWQFXI.js";
13
13
  import "./chunk-DIB4GX3G.js";
14
- import "./chunk-7UQIVT6G.js";
15
- import "./chunk-AIOK6LAG.js";
16
- import "./chunk-3Y47VMHV.js";
14
+ import "./chunk-WCN4YSH7.js";
17
15
  import "./chunk-HUO3UTAQ.js";
18
- import "./chunk-HLXXQI5Q.js";
16
+ import "./chunk-VCYSOXON.js";
17
+ import "./chunk-3Y47VMHV.js";
19
18
  import "./chunk-PDO5BLNM.js";
20
- import "./chunk-SGZO7UWH.js";
21
- import "./chunk-YSB2N563.js";
22
- import "./chunk-DU74WPIC.js";
19
+ import "./chunk-V2FXMOEA.js";
20
+ import "./chunk-VRHTNBA6.js";
21
+ import "./chunk-D3WPMGEX.js";
23
22
  import "./chunk-EM225ITJ.js";
24
- import "./chunk-ORO3PWKQ.js";
25
- import "./chunk-7NVJVJID.js";
23
+ import "./chunk-2B3PT3V2.js";
24
+ import "./chunk-4GXJUYJV.js";
26
25
  import "./chunk-VFUK3X5B.js";
27
- import "./chunk-RXBVB2JM.js";
28
- import "./chunk-JUUKWRBE.js";
29
- import "./chunk-GGB4WL5A.js";
26
+ import "./chunk-LE5H7LMT.js";
27
+ import "./chunk-HWQGBIH7.js";
28
+ import "./chunk-POSZWRGL.js";
30
29
  import "./chunk-RUIXF3YQ.js";
31
30
  import "./chunk-HZF5P5UN.js";
32
31
  import "./chunk-F3B2YJ76.js";
33
- import "./chunk-4LJO56OJ.js";
32
+ import "./chunk-EAI67NTM.js";
34
33
  import "./chunk-6GWA276C.js";
35
34
  import "./chunk-OOUNJNMR.js";
36
35
  import "./chunk-H4HBKISO.js";
37
- import "./chunk-DLDRQHG5.js";
38
- import "./chunk-IIOOO4FQ.js";
36
+ import "./chunk-LAZGHEYU.js";
37
+ import "./chunk-55F4QU2V.js";
39
38
  import "./chunk-MLKGABMK.js";
40
39
  export {
41
40
  buildAgentInvocationInboundMessage,
@@ -1,22 +1,23 @@
1
1
  import {
2
2
  CONVERSATION_WORK_DEFER_DELAY_MS,
3
3
  processConversationWork
4
- } from "./chunk-PVNG6UMU.js";
5
- import "./chunk-CWP5RHVX.js";
4
+ } from "./chunk-D6YX4NNN.js";
5
+ import "./chunk-DUY5CDAM.js";
6
+ import "./chunk-HLPLT3NY.js";
6
7
  import "./chunk-JAL3CH4G.js";
7
8
  import "./chunk-3Y47VMHV.js";
8
- import "./chunk-YSB2N563.js";
9
- import "./chunk-DU74WPIC.js";
10
- import "./chunk-ORO3PWKQ.js";
11
- import "./chunk-7NVJVJID.js";
9
+ import "./chunk-VRHTNBA6.js";
10
+ import "./chunk-D3WPMGEX.js";
11
+ import "./chunk-2B3PT3V2.js";
12
+ import "./chunk-4GXJUYJV.js";
12
13
  import "./chunk-VFUK3X5B.js";
13
- import "./chunk-RXBVB2JM.js";
14
+ import "./chunk-LE5H7LMT.js";
14
15
  import "./chunk-HZF5P5UN.js";
15
16
  import "./chunk-F3B2YJ76.js";
16
- import "./chunk-4LJO56OJ.js";
17
+ import "./chunk-EAI67NTM.js";
17
18
  import "./chunk-6GWA276C.js";
18
- import "./chunk-DLDRQHG5.js";
19
- import "./chunk-IIOOO4FQ.js";
19
+ import "./chunk-LAZGHEYU.js";
20
+ import "./chunk-55F4QU2V.js";
20
21
  import "./chunk-MLKGABMK.js";
21
22
  export {
22
23
  CONVERSATION_WORK_DEFER_DELAY_MS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/junior",
3
- "version": "0.147.0",
3
+ "version": "0.148.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -58,6 +58,7 @@
58
58
  "@chat-adapter/state-redis": "4.29.0",
59
59
  "@earendil-works/pi-agent-core": "0.82.1",
60
60
  "@earendil-works/pi-ai": "0.82.1",
61
+ "@hono/zod-validator": "^0.9.0",
61
62
  "@logtape/logtape": "^2.1.1",
62
63
  "@modelcontextprotocol/sdk": "1.29.0",
63
64
  "@neondatabase/serverless": "^1.1.0",
@@ -80,7 +81,7 @@
80
81
  "pg": "^8.16.3",
81
82
  "yaml": "^2.9.0",
82
83
  "zod": "^4.4.3",
83
- "@sentry/junior-plugin-api": "0.147.0"
84
+ "@sentry/junior-plugin-api": "0.148.0"
84
85
  },
85
86
  "devDependencies": {
86
87
  "@emnapi/core": "^1.10.0",
@@ -97,9 +98,9 @@
97
98
  "typescript": "^6.0.3",
98
99
  "vercel": "^54.4.0",
99
100
  "vitest": "^4.1.7",
101
+ "@sentry/junior-github": "0.148.0",
100
102
  "@sentry/junior-testing": "0.0.0",
101
- "@sentry/junior-memory": "0.147.0",
102
- "@sentry/junior-github": "0.147.0"
103
+ "@sentry/junior-memory": "0.148.0"
103
104
  },
104
105
  "scripts": {
105
106
  "build": "tsup && tsc -p tsconfig.build.json --emitDeclarationOnly",
@@ -1,7 +0,0 @@
1
- /** Serve Junior's authenticated health report. */
2
- declare const _default: import("./route").ApiRoute<import("zod").ZodObject<{
3
- status: import("zod").ZodLiteral<"ok">;
4
- service: import("zod").ZodString;
5
- timestamp: import("zod").ZodString;
6
- }, import("zod/v4/core").$strict>>;
7
- export default _default;
@@ -1,11 +0,0 @@
1
- /** Create a personal API token for the authenticated viewer. */
2
- declare const _default: import("../route").ApiRoute<import("zod").ZodObject<{
3
- id: import("zod").ZodString;
4
- name: import("zod").ZodString;
5
- tokenSuffix: import("zod").ZodString;
6
- createdAt: import("zod").ZodString;
7
- expiresAt: import("zod").ZodString;
8
- lastUsedAt: import("zod").ZodNullable<import("zod").ZodString>;
9
- token: import("zod").ZodString;
10
- }, import("zod/v4/core").$strict>>;
11
- export default _default;
@@ -1,12 +0,0 @@
1
- /** List active personal API tokens owned by the authenticated viewer. */
2
- declare const _default: import("../route").ApiRoute<import("zod").ZodObject<{
3
- tokens: import("zod").ZodArray<import("zod").ZodObject<{
4
- id: import("zod").ZodString;
5
- name: import("zod").ZodString;
6
- tokenSuffix: import("zod").ZodString;
7
- createdAt: import("zod").ZodString;
8
- expiresAt: import("zod").ZodString;
9
- lastUsedAt: import("zod").ZodNullable<import("zod").ZodString>;
10
- }, import("zod/v4/core").$strict>>;
11
- }, import("zod/v4/core").$strict>>;
12
- export default _default;
@@ -1,5 +0,0 @@
1
- /** Revoke a personal API token owned by the authenticated viewer. */
2
- declare const _default: import("../route").ApiRoute<import("zod").ZodObject<{
3
- revoked: import("zod").ZodLiteral<true>;
4
- }, import("zod/v4/core").$strict>>;
5
- export default _default;
@@ -1,63 +0,0 @@
1
- /** Serve operational reports contributed by loaded plugins. */
2
- declare const _default: import("./route").ApiRoute<import("zod").ZodObject<{
3
- generatedAt: import("zod").ZodString;
4
- reports: import("zod").ZodArray<import("zod").ZodObject<{
5
- generatedAt: import("zod").ZodOptional<import("zod").ZodString>;
6
- metrics: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
7
- label: import("zod").ZodString;
8
- tone: import("zod").ZodOptional<import("zod").ZodEnum<{
9
- warning: "warning";
10
- danger: "danger";
11
- good: "good";
12
- neutral: "neutral";
13
- }>>;
14
- value: import("zod").ZodString;
15
- }, import("zod/v4/core").$strict>>>;
16
- recordSets: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
17
- fields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
18
- key: import("zod").ZodString;
19
- label: import("zod").ZodString;
20
- }, import("zod/v4/core").$strict>>>;
21
- emptyText: import("zod").ZodOptional<import("zod").ZodString>;
22
- records: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
23
- id: import("zod").ZodString;
24
- tone: import("zod").ZodOptional<import("zod").ZodEnum<{
25
- warning: "warning";
26
- danger: "danger";
27
- good: "good";
28
- neutral: "neutral";
29
- }>>;
30
- values: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
31
- }, import("zod/v4/core").$strict>>>;
32
- title: import("zod").ZodString;
33
- }, import("zod/v4/core").$strict>>>;
34
- title: import("zod").ZodOptional<import("zod").ZodString>;
35
- pluginName: import("zod").ZodString;
36
- widgets: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
37
- categories: import("zod").ZodArray<import("zod").ZodObject<{
38
- id: import("zod").ZodString;
39
- label: import("zod").ZodString;
40
- values: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodNumber>;
41
- }, import("zod/v4/core").$strict>>;
42
- description: import("zod").ZodOptional<import("zod").ZodString>;
43
- emptyText: import("zod").ZodOptional<import("zod").ZodString>;
44
- id: import("zod").ZodString;
45
- series: import("zod").ZodArray<import("zod").ZodObject<{
46
- format: import("zod").ZodOptional<import("zod").ZodLiteral<"usd">>;
47
- key: import("zod").ZodString;
48
- label: import("zod").ZodString;
49
- tone: import("zod").ZodOptional<import("zod").ZodEnum<{
50
- warning: "warning";
51
- danger: "danger";
52
- good: "good";
53
- neutral: "neutral";
54
- }>>;
55
- }, import("zod/v4/core").$strict>>;
56
- timeRangeDays: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodLiteral<7>, import("zod").ZodLiteral<30>, import("zod").ZodLiteral<90>]>>>;
57
- title: import("zod").ZodString;
58
- type: import("zod").ZodLiteral<"bar_chart">;
59
- }, import("zod/v4/core").$strict>>>;
60
- }, import("zod/v4/core").$strict>>;
61
- source: import("zod").ZodLiteral<"plugins">;
62
- }, import("zod/v4/core").$strict>>;
63
- export default _default;
@@ -1,8 +0,0 @@
1
- /** Serve safe manifest metadata for loaded plugins. */
2
- declare const _default: import("./route").ApiRoute<import("zod").ZodArray<import("zod").ZodObject<{
3
- configKeys: import("zod").ZodArray<import("zod").ZodString>;
4
- description: import("zod").ZodString;
5
- displayName: import("zod").ZodString;
6
- name: import("zod").ZodString;
7
- }, import("zod/v4/core").$strict>>>;
8
- export default _default;
@@ -1,24 +0,0 @@
1
- /** Serve Junior runtime build and environment metadata. */
2
- declare const _default: import("./route").ApiRoute<import("zod").ZodObject<{
3
- cwd: import("zod").ZodString;
4
- homeDir: import("zod").ZodString;
5
- descriptionText: import("zod").ZodOptional<import("zod").ZodString>;
6
- providers: import("zod").ZodArray<import("zod").ZodString>;
7
- skills: import("zod").ZodArray<import("zod").ZodObject<{
8
- name: import("zod").ZodString;
9
- pluginProvider: import("zod").ZodOptional<import("zod").ZodString>;
10
- }, import("zod/v4/core").$strict>>;
11
- packagedContent: import("zod").ZodObject<{
12
- packageNames: import("zod").ZodArray<import("zod").ZodString>;
13
- packages: import("zod").ZodArray<import("zod").ZodObject<{
14
- dir: import("zod").ZodString;
15
- hasMigrationsDir: import("zod").ZodBoolean;
16
- hasSkillsDir: import("zod").ZodBoolean;
17
- packageName: import("zod").ZodString;
18
- }, import("zod/v4/core").$strict>>;
19
- manifestRoots: import("zod").ZodArray<import("zod").ZodString>;
20
- skillRoots: import("zod").ZodArray<import("zod").ZodString>;
21
- tracingIncludes: import("zod").ZodArray<import("zod").ZodString>;
22
- }, import("zod/v4/core").$strict>;
23
- }, import("zod/v4/core").$strict>>;
24
- export default _default;
@@ -1,6 +0,0 @@
1
- /** Serve the skills discovered for the current Junior runtime. */
2
- declare const _default: import("./route").ApiRoute<import("zod").ZodArray<import("zod").ZodObject<{
3
- name: import("zod").ZodString;
4
- pluginProvider: import("zod").ZodOptional<import("zod").ZodString>;
5
- }, import("zod/v4/core").$strict>>>;
6
- export default _default;
@@ -1,30 +0,0 @@
1
- import type { ConversationPrivacy } from "@/chat/conversation-privacy";
2
- import type { SlackChannelId, SlackTeamId } from "@/chat/slack/ids";
3
- /** Minimal persisted-visibility port for cross-conversation read gates. */
4
- export interface DestinationVisibilityReader {
5
- getDestinationVisibility(args: {
6
- provider: string;
7
- providerDestinationId: string;
8
- providerTenantId?: string;
9
- }): Promise<ConversationPrivacy | undefined>;
10
- }
11
- export type SlackChannelReadAccess = {
12
- allowed: true;
13
- } | {
14
- allowed: false;
15
- error: string;
16
- };
17
- /**
18
- * Decide whether the model may read Slack content from a target channel.
19
- *
20
- * The current conversation is always readable. Any other channel requires
21
- * persisted `public` visibility in the same workspace: channel-id prefixes
22
- * cannot prove a channel public (modern Slack private channels also use `C`
23
- * ids), so missing or private destinations fail closed.
24
- */
25
- export declare function checkSlackChannelReadAccess(args: {
26
- currentChannelIds: Array<SlackChannelId | undefined>;
27
- store?: DestinationVisibilityReader;
28
- targetChannelId: SlackChannelId;
29
- teamId: SlackTeamId;
30
- }): Promise<SlackChannelReadAccess>;
@@ -1,115 +0,0 @@
1
- import {
2
- healthReportSchema
3
- } from "./chunk-UTL3MHPC.js";
4
- import {
5
- parseSlackThreadId
6
- } from "./chunk-CSZINQJ2.js";
7
- import {
8
- normalizeSlackConversationId
9
- } from "./chunk-SGZO7UWH.js";
10
-
11
- // src/handlers/health.ts
12
- function readHealthReport() {
13
- return healthReportSchema.parse({
14
- status: "ok",
15
- service: "junior",
16
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
17
- });
18
- }
19
- function GET() {
20
- return Response.json(readHealthReport());
21
- }
22
-
23
- // src/chat/slack/conversation-context.ts
24
- function normalizeConversationName(type, channelName) {
25
- const trimmed = channelName?.trim();
26
- if (!trimmed) return void 0;
27
- if (type === "public_channel" || type === "private_channel" || type === "private_channel_or_group_dm") {
28
- return trimmed.startsWith("#") ? trimmed : `#${trimmed}`;
29
- }
30
- return trimmed;
31
- }
32
- function typeFromSlackChannelType(channelType) {
33
- if (channelType === "channel") return "public_channel";
34
- if (channelType === "group") return "private_channel";
35
- if (channelType === "mpim") return "group_dm";
36
- if (channelType === "im") return "direct_message";
37
- return void 0;
38
- }
39
- function typeFromChannelId(channelId, channelName) {
40
- const normalized = normalizeSlackConversationId(channelId);
41
- if (!normalized) return void 0;
42
- if (normalized.startsWith("C")) return "public_channel";
43
- if (normalized.startsWith("D")) return "direct_message";
44
- if (normalized.startsWith("G")) {
45
- return channelName?.trim().startsWith("mpdm-") ? "group_dm" : "private_channel_or_group_dm";
46
- }
47
- return void 0;
48
- }
49
- function toSlackEventChannelType(channelType) {
50
- if (channelType === "channel" || channelType === "group" || channelType === "mpim" || channelType === "im") {
51
- return channelType;
52
- }
53
- return void 0;
54
- }
55
- function conversationVisibilityFromSlackChannelType(channelType) {
56
- if (!channelType) return void 0;
57
- return channelType === "channel" ? "public" : "private";
58
- }
59
- function resolveSlackChannelTypeFromMessage(message) {
60
- const raw = message.raw;
61
- if (!raw || typeof raw !== "object") {
62
- return void 0;
63
- }
64
- const channelType = raw.channel_type;
65
- return typeof channelType === "string" ? toSlackEventChannelType(channelType.trim()) : void 0;
66
- }
67
- function resolveSlackConversationContext(input) {
68
- const type = typeFromSlackChannelType(input.channelType) ?? typeFromChannelId(input.channelId, input.channelName);
69
- if (!type) return void 0;
70
- const name = normalizeConversationName(type, input.channelName);
71
- const visibility = conversationVisibilityFromSlackChannelType(
72
- input.channelType
73
- );
74
- return {
75
- type,
76
- ...name ? { name } : {},
77
- ...visibility ? { visibility } : {}
78
- };
79
- }
80
- function resolveSlackConversationContextFromThreadId(input) {
81
- const slackThread = parseSlackThreadId(input.threadId);
82
- const context = resolveSlackConversationContext({
83
- channelId: slackThread?.channelId,
84
- channelName: input.channelName
85
- });
86
- if (!context || !input.visibility) {
87
- return context;
88
- }
89
- return {
90
- ...context,
91
- type: input.visibility === "private" && context.type === "public_channel" ? "private_channel" : context.type,
92
- visibility: input.visibility
93
- };
94
- }
95
- function formatSlackConversationTypeLabel(type) {
96
- if (type === "public_channel") return "Public Channel";
97
- if (type === "private_channel") return "Private Channel";
98
- if (type === "group_dm") return "Group DM";
99
- if (type === "direct_message") return "Direct Message";
100
- return "Private Channel or Group DM";
101
- }
102
- function formatSlackConversationRedactedLabel(context) {
103
- if (!context) return void 0;
104
- return formatSlackConversationTypeLabel(context.type);
105
- }
106
-
107
- export {
108
- readHealthReport,
109
- GET,
110
- conversationVisibilityFromSlackChannelType,
111
- resolveSlackChannelTypeFromMessage,
112
- resolveSlackConversationContext,
113
- resolveSlackConversationContextFromThreadId,
114
- formatSlackConversationRedactedLabel
115
- };