@sentry/junior 0.163.0 → 0.165.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 (71) hide show
  1. package/dist/{agent-hooks-6IX5CV7G.js → agent-hooks-GSNL33UA.js} +9 -9
  2. package/dist/api/schema/workspace.d.ts +51 -0
  3. package/dist/api/schema.d.ts +2 -0
  4. package/dist/api/schema.js +15 -3
  5. package/dist/api/workspaces/routes.d.ts +4 -0
  6. package/dist/api.js +171 -27
  7. package/dist/app.js +36 -34
  8. package/dist/{catalog-runtime-NEPZNTOM.js → catalog-runtime-4ERDVI7V.js} +5 -5
  9. package/dist/chat/repository-instructions.d.ts +12 -1
  10. package/dist/chat/sandbox/sandbox.d.ts +1 -1
  11. package/dist/chat/sandbox/snapshot/resolve.d.ts +12 -0
  12. package/dist/chat/sandbox/snapshot/runtime.d.ts +2 -0
  13. package/dist/chat/workspaces/store.d.ts +27 -0
  14. package/dist/chat/workspaces/types.d.ts +0 -1
  15. package/dist/chat/workspaces/validation.d.ts +20 -0
  16. package/dist/{chunk-TPT6EF7K.js → chunk-32CCG4WP.js} +1 -1
  17. package/dist/{chunk-ICJ3KCA2.js → chunk-3V2EIQLT.js} +1 -1
  18. package/dist/{chunk-ZDKTZG3G.js → chunk-5T6WPPEI.js} +1 -1
  19. package/dist/{chunk-ZF6IC27P.js → chunk-5WDDWMQ7.js} +260 -8
  20. package/dist/{chunk-TPDNZCZU.js → chunk-65B3PDY7.js} +1 -1
  21. package/dist/{chunk-2FBPN2Y4.js → chunk-6OWVPXNO.js} +2 -1
  22. package/dist/{chunk-2HBJQEBE.js → chunk-6RZ6MMEK.js} +1 -1
  23. package/dist/{chunk-IIT23D3M.js → chunk-6YXCG2XL.js} +4 -4
  24. package/dist/{chunk-XY2IVIAY.js → chunk-7J26TW64.js} +5 -5
  25. package/dist/{chunk-RK7KPI6G.js → chunk-7S2JVUWS.js} +1 -1
  26. package/dist/{chunk-NL53P7PS.js → chunk-AEBF6AO2.js} +1 -1
  27. package/dist/{chunk-O5ZZL7IR.js → chunk-AQEBOQUC.js} +9 -9
  28. package/dist/{chunk-SA6BEEAB.js → chunk-BEC542E6.js} +111 -74
  29. package/dist/{chunk-THS4CKN4.js → chunk-BEHPIDVZ.js} +5 -4
  30. package/dist/{chunk-BLZUFHM7.js → chunk-DKO4RRGJ.js} +1 -1
  31. package/dist/{chunk-MXFL7LNZ.js → chunk-EA4UL5H2.js} +73 -14
  32. package/dist/{chunk-YAUQXZVT.js → chunk-FMOFCEAA.js} +2 -2
  33. package/dist/{chunk-SR6WRBJW.js → chunk-FNNQCHOL.js} +4 -4
  34. package/dist/{chunk-3OZNFCPR.js → chunk-FXX4NHOM.js} +6 -6
  35. package/dist/{chunk-GCLHNRMU.js → chunk-G72LBEMZ.js} +1 -1
  36. package/dist/{chunk-IX4XI42N.js → chunk-HPWZ4BJJ.js} +72 -120
  37. package/dist/{chunk-FEIHINKR.js → chunk-HZDLOFO4.js} +9 -5
  38. package/dist/{chunk-ATWHPSMF.js → chunk-IZHR2OES.js} +4 -13
  39. package/dist/{chunk-O4IK4O7C.js → chunk-N2BRRIQZ.js} +1 -1
  40. package/dist/{chunk-MWVQ35U6.js → chunk-NPW6LM2X.js} +12 -12
  41. package/dist/{chunk-JI5EPI3O.js → chunk-RQQTOF3H.js} +3 -3
  42. package/dist/{chunk-WPGYWDJR.js → chunk-SA5FVUWJ.js} +6 -6
  43. package/dist/{chunk-KD3ROG6P.js → chunk-T6BAHCT6.js} +17 -17
  44. package/dist/{chunk-4P2XNVTO.js → chunk-TCWPG5VL.js} +2 -2
  45. package/dist/{chunk-EKGJVUVS.js → chunk-VDNNVTX2.js} +5 -5
  46. package/dist/{chunk-RTPJRLOP.js → chunk-XOINKFDJ.js} +7 -7
  47. package/dist/{chunk-3T7RJVDJ.js → chunk-ZUKU2Y3J.js} +1 -1
  48. package/dist/cli/chat.js +29 -29
  49. package/dist/cli/check.js +6 -6
  50. package/dist/cli/plugins.js +12 -12
  51. package/dist/cli/snapshot-create.js +9 -9
  52. package/dist/cli/upgrade.js +7 -7
  53. package/dist/db/schema/workspaces.d.ts +0 -17
  54. package/dist/db/schema.d.ts +0 -17
  55. package/dist/{db-6VBMHVW2.js → db-5TTEPMTY.js} +7 -7
  56. package/dist/instrumentation.js +4 -4
  57. package/dist/nitro.js +2 -2
  58. package/dist/{oauth-callback-server-5NCCUIM2.js → oauth-callback-server-IVFC5YHY.js} +22 -22
  59. package/dist/{runner-6ONEB6TQ.js → runner-G76TSHWO.js} +31 -33
  60. package/dist/{skills-Y5R36UH4.js → skills-F6PSLVSG.js} +6 -6
  61. package/dist/spawn-WMJPIAZL.js +37 -0
  62. package/dist/{validation-HLHEQDEK.js → validation-56EJI6UQ.js} +6 -6
  63. package/dist/version.js +1 -1
  64. package/dist/{work-VIEFYTFG.js → work-RNRQCP3Y.js} +17 -17
  65. package/dist/worker-FBR2WUI4.js +24 -0
  66. package/migrations/0030_drop_workspace_repo_primary.sql +2 -0
  67. package/migrations/meta/0030_snapshot.json +2799 -0
  68. package/migrations/meta/_journal.json +8 -1
  69. package/package.json +6 -5
  70. package/dist/spawn-RFMBQ6B3.js +0 -37
  71. package/dist/worker-MRSKPKQZ.js +0 -24
package/dist/app.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  processConversationWork
3
- } from "./chunk-SR6WRBJW.js";
3
+ } from "./chunk-FNNQCHOL.js";
4
4
  import {
5
5
  bindSpawnAgent
6
- } from "./chunk-2HBJQEBE.js";
6
+ } from "./chunk-6RZ6MMEK.js";
7
7
  import {
8
8
  createAgentInvocationWorker,
9
9
  enqueueAgentInvocation,
10
10
  listPendingAgentInvocationMailboxAppends,
11
11
  routeAgentInvocationWork
12
- } from "./chunk-WPGYWDJR.js";
12
+ } from "./chunk-SA5FVUWJ.js";
13
13
  import {
14
14
  GET as GET2,
15
15
  GET2 as GET3,
@@ -36,12 +36,12 @@ import {
36
36
  startSlackProcessingReaction,
37
37
  stripLeadingBotMention,
38
38
  wakePausedTurn
39
- } from "./chunk-KD3ROG6P.js";
39
+ } from "./chunk-T6BAHCT6.js";
40
40
  import "./chunk-FA6POGLH.js";
41
41
  import {
42
42
  getTurnRequestDeadline,
43
43
  runWithTurnRequestDeadline
44
- } from "./chunk-BLZUFHM7.js";
44
+ } from "./chunk-DKO4RRGJ.js";
45
45
  import {
46
46
  GET,
47
47
  apiTurnIdForMessage,
@@ -58,8 +58,8 @@ import {
58
58
  resolveSlackConversationContext,
59
59
  routeApiTurnWork,
60
60
  webActorFromEmail
61
- } from "./chunk-MWVQ35U6.js";
62
- import "./chunk-NL53P7PS.js";
61
+ } from "./chunk-NPW6LM2X.js";
62
+ import "./chunk-AEBF6AO2.js";
63
63
  import {
64
64
  CONVERSATION_WORK_STALE_ENQUEUE_MS,
65
65
  appendAndEnqueueInboundMessage,
@@ -70,7 +70,7 @@ import {
70
70
  isInvalidConversationRecordError,
71
71
  listActiveConversationIds,
72
72
  removeActiveConversation
73
- } from "./chunk-IIT23D3M.js";
73
+ } from "./chunk-6YXCG2XL.js";
74
74
  import {
75
75
  buildDeliveredTurnStatePatch,
76
76
  claimDispatchMailboxAppend,
@@ -101,7 +101,7 @@ import {
101
101
  requireTurnFailureEventId,
102
102
  resolveTurnSessionRouting,
103
103
  scheduleSessionCompletedPluginTasks
104
- } from "./chunk-O5ZZL7IR.js";
104
+ } from "./chunk-AQEBOQUC.js";
105
105
  import {
106
106
  ConversationTurnLifecycleService,
107
107
  coerceThreadConversationState,
@@ -111,7 +111,7 @@ import {
111
111
  persistThreadRuntimeState,
112
112
  persistThreadState,
113
113
  persistThreadStateById
114
- } from "./chunk-EKGJVUVS.js";
114
+ } from "./chunk-VDNNVTX2.js";
115
115
  import "./chunk-UTL3MHPC.js";
116
116
  import {
117
117
  getVercelConversationWorkQueue,
@@ -130,7 +130,7 @@ import {
130
130
  import {
131
131
  validatePluginEgressCredentialHooks,
132
132
  validatePluginRegistrations
133
- } from "./chunk-GCLHNRMU.js";
133
+ } from "./chunk-G72LBEMZ.js";
134
134
  import {
135
135
  defineJuniorPlugins,
136
136
  pluginCatalogConfigFromEnv,
@@ -165,11 +165,11 @@ import {
165
165
  shouldEmitDevAgentTrace,
166
166
  shouldPropagateSandboxEgressTrace,
167
167
  unpublishedArtifactHeaders
168
- } from "./chunk-IX4XI42N.js";
168
+ } from "./chunk-HPWZ4BJJ.js";
169
169
  import {
170
170
  AuthorizationFlowDisabledError,
171
171
  PluginCredentialFailureError
172
- } from "./chunk-XY2IVIAY.js";
172
+ } from "./chunk-7J26TW64.js";
173
173
  import "./chunk-DIB4GX3G.js";
174
174
  import {
175
175
  createAgentRunner,
@@ -177,7 +177,7 @@ import {
177
177
  deleteMcpAuthSessionsForUserProvider,
178
178
  deleteMcpServerSessionId,
179
179
  deleteMcpStoredOAuthCredentials
180
- } from "./chunk-RTPJRLOP.js";
180
+ } from "./chunk-XOINKFDJ.js";
181
181
  import {
182
182
  RetryableDeliveryError
183
183
  } from "./chunk-RF6J3DIO.js";
@@ -185,17 +185,13 @@ import {
185
185
  formatProviderLabel,
186
186
  postSlackMessage,
187
187
  startOAuthFlow
188
- } from "./chunk-3OZNFCPR.js";
188
+ } from "./chunk-FXX4NHOM.js";
189
189
  import "./chunk-7MA4HV4W.js";
190
190
  import {
191
191
  getExperimentalFeatures,
192
192
  isExperimentalFeatureEnabled,
193
193
  setExperimentalFeatures
194
194
  } from "./chunk-VRS6WDK5.js";
195
- import {
196
- getSandboxResourceConfig,
197
- setSandboxResourceConfig
198
- } from "./chunk-THS4CKN4.js";
199
195
  import {
200
196
  collectAttachmentGarbage,
201
197
  createSchedulerSqlStore,
@@ -203,10 +199,10 @@ import {
203
199
  logScheduledTaskRunSkipped,
204
200
  requestAttachmentDeletion,
205
201
  scheduledTaskRunAttributes
206
- } from "./chunk-FEIHINKR.js";
202
+ } from "./chunk-HZDLOFO4.js";
207
203
  import {
208
204
  parseSlackThreadId
209
- } from "./chunk-ICJ3KCA2.js";
205
+ } from "./chunk-3V2EIQLT.js";
210
206
  import {
211
207
  ConversationTurnBoundaryError,
212
208
  CooperativeTurnYieldError,
@@ -257,8 +253,12 @@ import {
257
253
  trimTrailingAssistantMessages,
258
254
  turnHasReply,
259
255
  upsertConversationMessage
260
- } from "./chunk-MXFL7LNZ.js";
256
+ } from "./chunk-EA4UL5H2.js";
261
257
  import "./chunk-3Y47VMHV.js";
258
+ import {
259
+ getSandboxResourceConfig,
260
+ setSandboxResourceConfig
261
+ } from "./chunk-BEHPIDVZ.js";
262
262
  import "./chunk-PDO5BLNM.js";
263
263
  import "./chunk-UIE3R5XU.js";
264
264
  import {
@@ -286,7 +286,7 @@ import {
286
286
  verifyEventTaskCredentialSubject,
287
287
  verifyScheduledTaskCredentialSubject,
288
288
  verifySlackDirectCredentialSubject
289
- } from "./chunk-ZF6IC27P.js";
289
+ } from "./chunk-5WDDWMQ7.js";
290
290
  import {
291
291
  contextProvenance,
292
292
  createSlackDestination,
@@ -299,13 +299,13 @@ import {
299
299
  requireSlackDestination,
300
300
  withConversationEventLock,
301
301
  withConversationMutationLock
302
- } from "./chunk-JI5EPI3O.js";
302
+ } from "./chunk-RQQTOF3H.js";
303
303
  import {
304
304
  juniorAgentBindings,
305
305
  juniorAgentInvocations,
306
306
  juniorConversationEvents,
307
307
  juniorConversations
308
- } from "./chunk-ATWHPSMF.js";
308
+ } from "./chunk-IZHR2OES.js";
309
309
  import {
310
310
  sleep
311
311
  } from "./chunk-BVREIWBD.js";
@@ -313,7 +313,7 @@ import {
313
313
  acquireActiveLock,
314
314
  getStateAdapter,
315
315
  withActiveLock
316
- } from "./chunk-TPDNZCZU.js";
316
+ } from "./chunk-65B3PDY7.js";
317
317
  import {
318
318
  STANDARD_MODEL_PROFILE,
319
319
  botConfig,
@@ -331,16 +331,16 @@ import {
331
331
  modelIdForProfile,
332
332
  setSlackReactionConfig,
333
333
  standardModelId
334
- } from "./chunk-YAUQXZVT.js";
334
+ } from "./chunk-FMOFCEAA.js";
335
335
  import {
336
336
  juniorDestinations
337
337
  } from "./chunk-VFUK3X5B.js";
338
- import "./chunk-3T7RJVDJ.js";
339
- import "./chunk-4P2XNVTO.js";
338
+ import "./chunk-ZUKU2Y3J.js";
339
+ import "./chunk-TCWPG5VL.js";
340
340
  import {
341
341
  pluginCatalogRuntime
342
- } from "./chunk-RK7KPI6G.js";
343
- import "./chunk-O4IK4O7C.js";
342
+ } from "./chunk-7S2JVUWS.js";
343
+ import "./chunk-N2BRRIQZ.js";
344
344
  import {
345
345
  credentialContextForActor
346
346
  } from "./chunk-BDUENQD3.js";
@@ -372,7 +372,7 @@ import {
372
372
  withContext,
373
373
  withLogContext,
374
374
  withSpan
375
- } from "./chunk-TPT6EF7K.js";
375
+ } from "./chunk-32CCG4WP.js";
376
376
  import {
377
377
  continueTrace
378
378
  } from "./chunk-6GWA276C.js";
@@ -380,10 +380,10 @@ import "./chunk-OOUNJNMR.js";
380
380
  import "./chunk-H4HBKISO.js";
381
381
  import {
382
382
  JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE
383
- } from "./chunk-ZDKTZG3G.js";
383
+ } from "./chunk-5T6WPPEI.js";
384
384
  import {
385
385
  JUNIOR_VERSION
386
- } from "./chunk-2FBPN2Y4.js";
386
+ } from "./chunk-6OWVPXNO.js";
387
387
  import "./chunk-MLKGABMK.js";
388
388
 
389
389
  // src/app.ts
@@ -9399,6 +9399,8 @@ function dashboardHostRoutePaths(dashboard) {
9399
9399
  "/api/people/*",
9400
9400
  "/api/personal-tokens",
9401
9401
  "/api/personal-tokens/*",
9402
+ "/api/workspaces",
9403
+ "/api/workspaces/*",
9402
9404
  "/api/config",
9403
9405
  "/api/me",
9404
9406
  authPath,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  pluginCatalogRuntime
3
- } from "./chunk-RK7KPI6G.js";
4
- import "./chunk-O4IK4O7C.js";
3
+ } from "./chunk-7S2JVUWS.js";
4
+ import "./chunk-N2BRRIQZ.js";
5
5
  import "./chunk-BDUENQD3.js";
6
6
  import "./chunk-V7YE4WCP.js";
7
- import "./chunk-TPT6EF7K.js";
7
+ import "./chunk-32CCG4WP.js";
8
8
  import "./chunk-6GWA276C.js";
9
9
  import "./chunk-OOUNJNMR.js";
10
10
  import "./chunk-H4HBKISO.js";
11
- import "./chunk-ZDKTZG3G.js";
12
- import "./chunk-2FBPN2Y4.js";
11
+ import "./chunk-5T6WPPEI.js";
12
+ import "./chunk-6OWVPXNO.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
  export {
15
15
  pluginCatalogRuntime
@@ -4,7 +4,8 @@ export declare const AGENTS_REPLACEMENT_NOTICE = "These AGENTS.md instructions r
4
4
  export declare const AGENTS_REMOVAL_NOTICE = "The previously provided AGENTS.md instructions no longer apply.";
5
5
  /** Effective AGENTS.md instructions plus host-only discovery provenance. */
6
6
  export interface RepositoryInstructions {
7
- directory: string;
7
+ /** Selected directory when instructions come from one repository tree. */
8
+ directory?: string;
8
9
  fingerprint: string;
9
10
  sources: Array<{
10
11
  content: string;
@@ -20,12 +21,22 @@ export type VisibleAgentsInstructions = {
20
21
  directory?: string;
21
22
  text: string;
22
23
  };
24
+ /** Return Git worktrees under repos/, sorted for stable instruction capture. */
25
+ export declare function listRepositoryDirectories(fs: SandboxFileSystem): Promise<string[]>;
23
26
  /** Return the only Git worktree under repos/, without guessing when ambiguous. */
24
27
  export declare function findSingleRepositoryDirectory(fs: SandboxFileSystem): Promise<string | undefined>;
25
28
  /** Resolve the effective root-to-cwd AGENTS.md bundle for one selected directory. */
26
29
  export declare function resolveRepositoryInstructions(args: {
27
30
  cwd: string;
28
31
  fs: SandboxFileSystem;
32
+ maxBytes?: number;
33
+ }): Promise<RepositoryInstructions | undefined>;
34
+ /** Combine AGENTS.md bundles from one or more repository directories. */
35
+ export declare function mergeRepositoryInstructions(bundles: RepositoryInstructions[]): RepositoryInstructions | undefined;
36
+ /** Resolve AGENTS.md instructions for each selected repository directory. */
37
+ export declare function resolveRepositoryInstructionsForDirectories(args: {
38
+ directories: string[];
39
+ fs: SandboxFileSystem;
29
40
  }): Promise<RepositoryInstructions | undefined>;
30
41
  /** Render repository instructions with Codex's exact model-visible wrapper. */
31
42
  export declare function renderAgentsInstructions(args: {
@@ -19,7 +19,7 @@ export interface SandboxTools {
19
19
  execute(params: SandboxToolCall): Promise<unknown>;
20
20
  }
21
21
  export interface SandboxAccess {
22
- /** Resolve the AGENTS.md bundle for the selected repository directory. */
22
+ /** Resolve AGENTS.md instructions for each repository directory in the Workspace. */
23
23
  captureRepositoryInstructions(): Promise<RepositoryInstructions | undefined>;
24
24
  readonly tools: SandboxTools;
25
25
  readonly workspace: SandboxWorkspace;
@@ -1,5 +1,14 @@
1
+ import { z } from "zod";
1
2
  import { type SandboxSession } from "@/chat/sandbox/workspace";
2
3
  import type { Workspace } from "@/chat/workspaces/types";
4
+ declare const cachedSnapshotSchema: z.ZodObject<{
5
+ profileHash: z.ZodString;
6
+ snapshotId: z.ZodString;
7
+ runtime: z.ZodString;
8
+ createdAtMs: z.ZodNumber;
9
+ dependencyCount: z.ZodNumber;
10
+ }, z.core.$strict>;
11
+ type CachedSnapshot = z.output<typeof cachedSnapshotSchema>;
3
12
  export type ResolveOutcome = "no_profile" | "cache_hit" | "cache_hit_after_lock_wait" | "rebuilt" | "forced_rebuild";
4
13
  export type RebuildReason = "cache_miss" | "floating_stale" | "force_rebuild" | "snapshot_missing";
5
14
  /** Result of resolving the reusable snapshot for one dependency profile. */
@@ -12,6 +21,8 @@ export interface Snapshot {
12
21
  rebuildReason?: RebuildReason;
13
22
  }
14
23
  export type ProgressPhase = "resolve_start" | "cache_hit" | "waiting_for_lock" | "building_snapshot" | "build_complete";
24
+ /** Read one cached snapshot pointer; only a missing key is a cache miss. */
25
+ export declare function getCachedSnapshot(profileHash: string): Promise<CachedSnapshot | null>;
15
26
  /** Resolve or build the reusable snapshot for the current dependency profile. */
16
27
  export declare function resolve(params: {
17
28
  runtime: string;
@@ -25,3 +36,4 @@ export declare function resolve(params: {
25
36
  }): Promise<Snapshot>;
26
37
  /** Identify provider errors that mean a referenced snapshot no longer exists. */
27
38
  export declare function isMissingError(error: unknown): boolean;
39
+ export {};
@@ -0,0 +1,2 @@
1
+ /** Runtime used to build and start reusable Sandbox snapshots. */
2
+ export declare const SANDBOX_RUNTIME = "node22";
@@ -1,8 +1,35 @@
1
1
  import type { JuniorDatabase } from "@/db/db";
2
2
  import type { Workspace } from "./types";
3
+ import { WorkspaceValidationError } from "./validation";
3
4
  /** List Workspace recipes by stable name. */
4
5
  export declare function listWorkspaces(db: JuniorDatabase): Promise<Workspace[]>;
6
+ /** Find Workspace names that include one provider repository. */
7
+ export declare function listWorkspaceNamesByRepository(db: JuniorDatabase, input: {
8
+ provider: string;
9
+ repo: string;
10
+ }): Promise<string[]>;
5
11
  /** Resolve one Workspace recipe by name. */
6
12
  export declare function getWorkspaceByName(db: JuniorDatabase, name: string): Promise<Workspace | undefined>;
7
13
  /** Resolve one Workspace recipe by id. */
8
14
  export declare function getWorkspace(db: JuniorDatabase, id: string): Promise<Workspace | undefined>;
15
+ /** Create one install-wide Workspace recipe. */
16
+ export declare function createWorkspace(input: {
17
+ name: string;
18
+ setupScript?: string;
19
+ repos: Array<{
20
+ provider: string;
21
+ repo: string;
22
+ }>;
23
+ }): Promise<Workspace>;
24
+ /** Replace one install-wide Workspace recipe. */
25
+ export declare function updateWorkspace(id: string, input: {
26
+ name: string;
27
+ setupScript?: string;
28
+ repos: Array<{
29
+ provider: string;
30
+ repo: string;
31
+ }>;
32
+ }): Promise<Workspace | undefined>;
33
+ /** Delete one install-wide Workspace recipe. */
34
+ export declare function deleteWorkspace(id: string): Promise<boolean>;
35
+ export { WorkspaceValidationError };
@@ -2,7 +2,6 @@
2
2
  export interface WorkspaceRepo {
3
3
  provider: string;
4
4
  repo: string;
5
- isPrimary: boolean;
6
5
  }
7
6
  /** Named recipe used to prepare reusable sandbox contents. */
8
7
  export interface Workspace {
@@ -0,0 +1,20 @@
1
+ import type { WorkspaceRepo } from "./types";
2
+ /** Normalized recipe fields accepted by Workspace write paths. */
3
+ export interface WorkspaceRecipeInput {
4
+ name: string;
5
+ setupScript: string;
6
+ repos: WorkspaceRepo[];
7
+ }
8
+ /** Validation failure for one Workspace recipe write. */
9
+ export declare class WorkspaceValidationError extends Error {
10
+ constructor(message: string);
11
+ }
12
+ /** Normalize and validate one Workspace recipe write payload. */
13
+ export declare function normalizeWorkspaceRecipe(input: {
14
+ name: string;
15
+ setupScript?: string;
16
+ repos: Array<{
17
+ provider: string;
18
+ repo: string;
19
+ }>;
20
+ }): WorkspaceRecipeInput;
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-6GWA276C.js";
10
10
  import {
11
11
  getDeploymentTelemetryAttributes
12
- } from "./chunk-ZDKTZG3G.js";
12
+ } from "./chunk-5T6WPPEI.js";
13
13
 
14
14
  // src/chat/logging.ts
15
15
  import path from "path";
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-V7YE4WCP.js";
6
6
  import {
7
7
  toOptionalString
8
- } from "./chunk-TPT6EF7K.js";
8
+ } from "./chunk-32CCG4WP.js";
9
9
 
10
10
  // src/chat/slack/context.ts
11
11
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  JUNIOR_VERSION
3
- } from "./chunk-2FBPN2Y4.js";
3
+ } from "./chunk-6OWVPXNO.js";
4
4
 
5
5
  // src/deployment.ts
6
6
  var JUNIOR_HEARTBEAT_ROUTE = "/api/internal/heartbeat";