codeden 0.6.2 → 0.6.3

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 (36) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/drizzle/20261112140714_turn_fork_point/migration.sql +1 -0
  3. package/dist/drizzle/20261112140714_turn_fork_point/snapshot.json +3524 -0
  4. package/dist/{main-hdQfX9V6.js → main-Bx58CdV4.js} +1375 -559
  5. package/dist/main-Bx58CdV4.js.map +1 -0
  6. package/dist/{main-DZBmzxSH.js → main-CMt4z1Z9.js} +2 -2
  7. package/dist/{main-DZBmzxSH.js.map → main-CMt4z1Z9.js.map} +1 -1
  8. package/dist/{mediaType-nJs-4z5U.js → mediaType-BCz-hbZl.js} +2 -2
  9. package/dist/{mediaType-nJs-4z5U.js.map → mediaType-BCz-hbZl.js.map} +1 -1
  10. package/dist/{runner-DYf8dV43.js → runner-CiaiUWOE.js} +636 -71
  11. package/dist/runner-CiaiUWOE.js.map +1 -0
  12. package/dist/runner.js +1 -1
  13. package/dist/{server-test-COAiKxTV.js → server-test-b0hHPqXb.js} +3 -3
  14. package/dist/{server-test-COAiKxTV.js.map → server-test-b0hHPqXb.js.map} +1 -1
  15. package/dist/{tree-CF7Q8tXK.js → tree-31WAOm5k.js} +184 -23
  16. package/dist/tree-31WAOm5k.js.map +1 -0
  17. package/dist/web/assets/{core-Rhf-hNq6.js → core-FqX7NQzW.js} +1 -1
  18. package/dist/web/assets/engine-oniguruma-C5UP18m1.js +1 -0
  19. package/dist/web/assets/{highlighted-body-JLMTFACH-DcKwRTm5.js → highlighted-body-JLMTFACH-BMKFJRL-.js} +1 -1
  20. package/dist/web/assets/{highlights-DCtMC0YR.js → highlights-9yuGk1pg.js} +1 -1
  21. package/dist/web/assets/{index-BLggvVMT.js → index-C3QkKvUn.js} +233 -233
  22. package/dist/web/assets/index-CmllrYFx.css +1 -0
  23. package/dist/web/assets/langs-DfCgj44a.js +1 -0
  24. package/dist/web/assets/mermaid-WFAXDIZX-zTA5f8lD.js +1 -0
  25. package/dist/web/assets/{shiki-B3-ws3OK.js → shiki-Qa-y3xHo.js} +2 -2
  26. package/dist/web/assets/{stream-tokenizer-hKFrMxml.js → stream-tokenizer-VL43-ily.js} +1 -1
  27. package/dist/web/assets/{themes-Cvhh4Ovr.js → themes-Di4DO5zr.js} +2 -2
  28. package/dist/web/index.html +2 -2
  29. package/package.json +1 -1
  30. package/dist/main-hdQfX9V6.js.map +0 -1
  31. package/dist/runner-DYf8dV43.js.map +0 -1
  32. package/dist/tree-CF7Q8tXK.js.map +0 -1
  33. package/dist/web/assets/engine-oniguruma-BbpT993F.js +0 -1
  34. package/dist/web/assets/index-JjF9o00P.css +0 -1
  35. package/dist/web/assets/langs-B2ZGl3f_.js +0 -1
  36. package/dist/web/assets/mermaid-WFAXDIZX-C2_MUy_a.js +0 -1
@@ -6105,8 +6105,14 @@ const AgentConfigProvider = _enum(["claude", "codex"]);
6105
6105
  * tabs and choices to offer, and never branches on a provider id (Principle 5).
6106
6106
  */
6107
6107
  const agentConfigFeatures = {
6108
- claude: { hooks: true },
6109
- codex: { hooks: false }
6108
+ claude: {
6109
+ hooks: true,
6110
+ skillSwitches: true
6111
+ },
6112
+ codex: {
6113
+ hooks: false,
6114
+ skillSwitches: true
6115
+ }
6110
6116
  };
6111
6117
  /** The providers that have a given agent-config feature. */
6112
6118
  const providersWith = (feature) => AgentConfigProvider.options.filter((p) => agentConfigFeatures[p][feature]);
@@ -6199,7 +6205,8 @@ object({
6199
6205
  deleted: boolean(),
6200
6206
  backupPath: string().nullable()
6201
6207
  });
6202
- object({
6208
+ /** A unified diff preview of a proposed change. */
6209
+ const AgentConfigDiff = object({
6203
6210
  absolutePath: string(),
6204
6211
  exists: boolean(),
6205
6212
  patch: string(),
@@ -6446,20 +6453,71 @@ object({
6446
6453
  /** The hooks after the change, for the request's `listProjectId`. */
6447
6454
  hooks: HookListResponse
6448
6455
  });
6449
- // ../../packages/contracts/src/agent-config-loaded.ts
6456
+ // ../../packages/contracts/src/agent-config-skills.ts
6450
6457
  /**
6451
- * What's loaded (§12.4): for one session, the memory files, skills, subagents, MCP servers and
6452
- * hooks its provider takes from its working directory. Computed from each provider's discovery
6453
- * rules (not reported by the provider).
6458
+ * Skills (§12.4) and the switch that turns one off, written to each provider's own setting:
6459
+ * - Claude Code: `skillOverrides` in its settings files (`~/.claude/settings.json`,
6460
+ * `.claude/settings.json`, `.claude/settings.local.json`) maps a skill name to `"on"`,
6461
+ * `"name-only"`, `"user-invocable-only"` or `"off"`; a name no file sets is `"on"`. The most
6462
+ * specific file that sets a name wins (local, then project, then user).
6463
+ * - Codex: `[[skills.config]]` entries in `~/.codex/config.toml`, each with a `path` (the
6464
+ * skill's `SKILL.md`) or a `name`, and `enabled`. Entries apply in order; the last one that
6465
+ * selects a skill decides it.
6466
+ *
6467
+ * A switch edits the file that already decides the skill, or else the provider's user-level
6468
+ * file, so it reaches every session (worktrees included). Codex user skills are selected by
6469
+ * path, project skills by name (their path differs in every worktree).
6470
+ *
6471
+ * Routes: `GET /api/agent-config/skills?projectId=`, `POST /api/agent-config/skills/diff`
6472
+ * (-> `SkillSwitchDiff`) and `POST /api/agent-config/skills` (-> `SkillSwitchResponse`), both
6473
+ * taking a `SkillSwitchRequest`.
6454
6474
  */
6455
- /** A skill folder (its `SKILL.md`). */
6475
+ /** Claude Code's partial states: the skill is on, but Claude sees less of it. */
6476
+ const SkillVisibility = _enum(["name-only", "user-invocable-only"]);
6477
+ /** A skill folder (its `SKILL.md`) and whether its provider's native setting switches it off. */
6456
6478
  const AgentSkill = object({
6457
6479
  provider: AgentConfigProvider,
6458
6480
  scope: AgentConfigScope,
6459
6481
  name: string(),
6460
6482
  description: string().optional(),
6461
- file: AgentConfigFile
6483
+ file: AgentConfigFile,
6484
+ /** False when the provider's native setting turns the skill off where it is listed. */
6485
+ enabled: boolean(),
6486
+ /**
6487
+ * Claude Code only: `"name-only"` (Claude sees the name without the description) or
6488
+ * `"user-invocable-only"` (Claude doesn't see it; you can still type `/name`).
6489
+ */
6490
+ visibility: SkillVisibility.optional(),
6491
+ /** The native file whose entry decides the state; null when no entry names the skill. */
6492
+ setIn: string().nullable()
6462
6493
  });
6494
+ object({ skills: array(AgentSkill) });
6495
+ /**
6496
+ * Switch one listed skill on or off. The skill is addressed by its `SKILL.md` locator, as
6497
+ * listed for `listProjectId` (the page's project, whose settings files apply; user only when
6498
+ * absent). A skill that isn't in that list is refused with 404 `skill_not_found`.
6499
+ */
6500
+ const SkillSwitchRequest = AgentConfigLocator.extend({
6501
+ provider: AgentConfigProvider,
6502
+ enabled: boolean(),
6503
+ listProjectId: Id.optional()
6504
+ });
6505
+ AgentConfigDiff.extend({
6506
+ /** `user`: applies in every project; `project`: shared with the repository; `local`: you, here. */
6507
+ scope: AgentConfigScope });
6508
+ object({
6509
+ file: string().nullable(),
6510
+ /** The copy of the file taken before writing; null for a new file or no change. */
6511
+ backupPath: string().nullable(),
6512
+ /** The skills after the change, for the request's `listProjectId`. */
6513
+ skills: array(AgentSkill)
6514
+ });
6515
+ // ../../packages/contracts/src/agent-config-loaded.ts
6516
+ /**
6517
+ * What's loaded (§12.4): for one session, the memory files, skills, subagents, MCP servers and
6518
+ * hooks its provider takes from its working directory. Computed from each provider's discovery
6519
+ * rules (not reported by the provider).
6520
+ */
6463
6521
  /**
6464
6522
  * The hooks that apply to a session's working folder. For Claude Code: `~/.claude/settings.json`,
6465
6523
  * the working folder's own `.claude/settings.json` (no parent fallback), and
@@ -6483,6 +6541,7 @@ object({
6483
6541
  cwd: string(),
6484
6542
  /** Memory, rule and auto-memory files that exist, broadest scope first. */
6485
6543
  memory: array(AgentConfigFile),
6544
+ /** Skills found from the working directory, switched-off ones included (`enabled: false`). */
6486
6545
  skills: array(AgentSkill),
6487
6546
  subagents: array(AgentConfigFile),
6488
6547
  /** Enabled MCP servers, including CodeDen's own. */
@@ -6862,6 +6921,11 @@ const ApprovalRequestItem = object({
6862
6921
  toolInput: JsonValue.optional(),
6863
6922
  /** The tool call item this approval gates, if any. */
6864
6923
  toolCallItemId: Id.optional(),
6924
+ /**
6925
+ * A link the request asks the user to open (an MCP server's URL elicitation, e.g. to sign
6926
+ * in). The card shows it; nothing opens it on the user's behalf. Web links only.
6927
+ */
6928
+ url: url({ protocol: /^https?$/ }).optional(),
6865
6929
  options: array(ApprovalDecision).default([
6866
6930
  "allow_once",
6867
6931
  "allow_session",
@@ -6900,7 +6964,13 @@ const UserQuestionItem = object({
6900
6964
  * Asked through CodeDen's `ask_user` tool rather than the provider: stays open after its
6901
6965
  * turn ends, and an answer that arrives after the tool returned is sent as a new message.
6902
6966
  */
6903
- deferred: boolean().optional()
6967
+ deferred: boolean().optional(),
6968
+ /**
6969
+ * The MCP server asking, when the questions are its form (an MCP elicitation) rather than the
6970
+ * agent's own: the answers go to that server as data. Unattended sessions withdraw such a form
6971
+ * instead of answering it (§10.1).
6972
+ */
6973
+ mcpServer: string().min(1).optional()
6904
6974
  });
6905
6975
  /**
6906
6976
  * What a finished subagent used, as its provider reports it (§7.3). Each figure is optional:
@@ -6989,6 +7059,10 @@ const ItemDelta = discriminatedUnion("type", [
6989
7059
  partialJson: string()
6990
7060
  })
6991
7061
  ]);
7062
+ /** The text a delta appends (`partialJson` for tool input). */
7063
+ function itemDeltaText(delta) {
7064
+ return delta.type === "tool_input" ? delta.partialJson : delta.text;
7065
+ }
6992
7066
  /** The first line of `text`, cut to `max` characters (with an ellipsis when cut). */
6993
7067
  function oneLineDescription(text, max = 200) {
6994
7068
  const line = text.trim().split(/\r?\n/, 1)[0]?.trim() ?? "";
@@ -7033,6 +7107,14 @@ object({
7033
7107
  /** Hint for the arguments it takes, e.g. `[issue-number]`. */
7034
7108
  argumentHint: string().optional()
7035
7109
  });
7110
+ /**
7111
+ * `GET /api/projects/:id/commands?provider=`: the `/` menu of a session that does not exist yet
7112
+ * (the New session draft), from the skills and custom command files that `provider` would load
7113
+ * in the project folder. Nothing is reported by a provider until the session runs.
7114
+ */
7115
+ const ProjectCommandsQuery = object({
7116
+ /** The provider the draft would start with. */
7117
+ provider: ProviderId });
7036
7118
  // ../../packages/contracts/src/agent-events.ts
7037
7119
  /**
7038
7120
  * Token/cost/rate-limit usage. Providers fill in what they report; everything is optional.
@@ -7100,16 +7182,25 @@ const TurnStartedEvent = object({
7100
7182
  type: literal("turn.started"),
7101
7183
  ...turnScoped
7102
7184
  });
7185
+ /**
7186
+ * Where the provider's conversation stands at the end of a root turn, as an opaque position:
7187
+ * `forkConversation(token, { upTo })` copies the conversation through this turn and no
7188
+ * further (§9). Reported only by adapters whose `forkConversation` accepts it, and only when
7189
+ * the adapter knows the position. Absent: the conversation can't be forked at this turn.
7190
+ */
7191
+ const forkPoint = { forkPoint: string().min(1).optional() };
7103
7192
  const TurnCompletedEvent = object({
7104
7193
  type: literal("turn.completed"),
7105
7194
  ...turnScoped,
7106
7195
  /** Provider stop reason, e.g. `end_turn`, `max_tokens`. */
7107
- stopReason: string().optional()
7196
+ stopReason: string().optional(),
7197
+ ...forkPoint
7108
7198
  });
7109
7199
  const TurnFailedEvent = object({
7110
7200
  type: literal("turn.failed"),
7111
7201
  ...turnScoped,
7112
- error: ErrorInfo
7202
+ error: ErrorInfo,
7203
+ ...forkPoint
7113
7204
  });
7114
7205
  const TurnInterruptedEvent = object({
7115
7206
  type: literal("turn.interrupted"),
@@ -7119,7 +7210,8 @@ const TurnInterruptedEvent = object({
7119
7210
  "user",
7120
7211
  "runner_restart",
7121
7212
  "provider"
7122
- ])
7213
+ ]),
7214
+ ...forkPoint
7123
7215
  });
7124
7216
  /** A new item appeared in a turn (possibly still in progress). */
7125
7217
  const ItemStartedEvent = object({
@@ -7170,6 +7262,33 @@ const AgentEvent = discriminatedUnion("type", [
7170
7262
  UsageUpdatedEvent
7171
7263
  ]);
7172
7264
  AgentEvent.options.map((o) => o.shape.type.value);
7265
+ /**
7266
+ * Merge two consecutive `item.delta` events into one that appends both texts, when they
7267
+ * extend the same item the same way: same thread, turn and item, same delta type and, for
7268
+ * tool output, the same stream. Applying the result equals applying `a` then `b`. Returns
7269
+ * `undefined` when they can't be merged.
7270
+ */
7271
+ function mergeItemDeltas(a, b) {
7272
+ if (a.itemId !== b.itemId || a.turnId !== b.turnId || a.threadId !== b.threadId) return;
7273
+ const x = a.delta;
7274
+ const y = b.delta;
7275
+ if (x.type === "tool_input" && y.type === "tool_input") return {
7276
+ ...b,
7277
+ delta: {
7278
+ ...y,
7279
+ partialJson: x.partialJson + y.partialJson
7280
+ }
7281
+ };
7282
+ if (x.type === "tool_output" && y.type === "tool_output" && x.stream !== y.stream) return;
7283
+ if (x.type !== y.type || x.type === "tool_input" || y.type === "tool_input") return;
7284
+ return {
7285
+ ...b,
7286
+ delta: {
7287
+ ...y,
7288
+ text: x.text + y.text
7289
+ }
7290
+ };
7291
+ }
7173
7292
  // ../../packages/contracts/src/entities/inbox.ts
7174
7293
  /** What an inbox item asks of the user (§11.1). */
7175
7294
  const InboxItemKind = _enum([
@@ -8161,7 +8280,12 @@ const RunnerCommand = discriminatedUnion("name", [
8161
8280
  /** The resume token of the conversation to copy. */
8162
8281
  resumeToken: string().min(1),
8163
8282
  /** An existing folder of the project, for providers that run a process to fork. */
8164
- cwd: string().min(1)
8283
+ cwd: string().min(1),
8284
+ /**
8285
+ * Copy only through the turn that reported this fork point (`forkPoint` on a turn's end
8286
+ * event); later turns are left out. Omitted: the whole conversation.
8287
+ */
8288
+ upTo: string().min(1).optional()
8165
8289
  }),
8166
8290
  object({
8167
8291
  name: literal("workspace.prepare"),
@@ -8706,7 +8830,19 @@ const SessionStatus = _enum([
8706
8830
  */
8707
8831
  const ForkOrigin = object({
8708
8832
  sessionId: Id,
8709
- checkpoint: int().nonnegative().nullable()
8833
+ checkpoint: int().nonnegative().nullable(),
8834
+ /**
8835
+ * The source's turn the fork was taken at ("Fork from here"): its conversation ends with
8836
+ * that turn and its code is that turn's checkpoint. Absent or null: the source's latest
8837
+ * moment.
8838
+ */
8839
+ turnId: Id.nullable().optional(),
8840
+ /**
8841
+ * That turn's number among the source's own turns (1 is its first), counted when it was
8842
+ * forked. Checkpoint numbers can differ from it (a checkpoint that failed to write takes no
8843
+ * number), so this is what to show as "turn N". Absent when unknown.
8844
+ */
8845
+ turnNumber: int().positive().nullable().optional()
8710
8846
  });
8711
8847
  /** An agent session of any role (§8.1). */
8712
8848
  const Session = object({
@@ -8783,7 +8919,13 @@ const Turn = object({
8783
8919
  ]),
8784
8920
  startedAt: Timestamp,
8785
8921
  completedAt: Timestamp.nullable(),
8786
- error: ErrorInfo.nullable()
8922
+ error: ErrorInfo.nullable(),
8923
+ /**
8924
+ * The provider's position at the end of this turn (`forkPoint` on its end event): the
8925
+ * conversation can be forked through this turn. Absent or null when it can't, e.g. a turn
8926
+ * recorded before CodeDen kept these, or a provider that doesn't report them.
8927
+ */
8928
+ forkPoint: string().nullable().optional()
8787
8929
  });
8788
8930
  /** Item projection (§6 `items`): the latest state of an item plus its location. */
8789
8931
  const ItemRecord = object({
@@ -9544,6 +9686,10 @@ const FactoryLoop = object({
9544
9686
  /** Main-branch commits whose failed checks already became items. */
9545
9687
  seenFailedShas: array(string()).default([]),
9546
9688
  tuning: FactoryTuning.prefault({}),
9689
+ /**
9690
+ * The last tick that changed the loop. A tick that changes nothing else saves nothing, so
9691
+ * this can be older than the last tick (`FactoryStatus.lastTickAt` has that).
9692
+ */
9547
9693
  lastTickAt: Timestamp.nullable(),
9548
9694
  updatedAt: Timestamp
9549
9695
  });
@@ -9729,6 +9875,10 @@ object({
9729
9875
  scout: ScoutStatus.nullable().default(null),
9730
9876
  visionExists: boolean(),
9731
9877
  lastDigest: FactoryDigest.nullable(),
9878
+ /**
9879
+ * When the loop last ticked (the panel's "last check"), changed or not. After a server
9880
+ * restart, the last tick that changed the loop until the first tick runs.
9881
+ */
9732
9882
  lastTickAt: Timestamp.nullable()
9733
9883
  });
9734
9884
  object({ item: FactoryItem });
@@ -11306,9 +11456,15 @@ const StartSessionResponse = discriminatedUnion("status", [
11306
11456
  * `POST /api/sessions/:id/fork`: a new agent session that continues this one's conversation
11307
11457
  * (the provider's native fork) in a new worktree started from its latest checkpoint.
11308
11458
  */
11309
- const ForkSessionRequest = object({
11310
- /** Defaults to the source's title followed by "(fork)". */
11311
- title: string().trim().min(1).max(200).optional() });
11459
+ const ForkSessionRequest = object({
11460
+ /** Defaults to the source's title followed by "(fork)". */
11461
+ title: string().trim().min(1).max(200).optional(),
11462
+ /**
11463
+ * Fork from this finished turn of the source's root thread ("Fork from here"): the
11464
+ * conversation ends with it and the code is its checkpoint. Omitted: the latest moment.
11465
+ */
11466
+ turnId: Id.optional()
11467
+ });
11312
11468
  object({ sessionId: Id });
11313
11469
  /** Recorded with a session about how it was started (forced starts keep their reason). */
11314
11470
  const SessionStartMeta = object({
@@ -11379,7 +11535,12 @@ object({
11379
11535
  object({
11380
11536
  itemId: Id,
11381
11537
  text: string(),
11382
- totalBytes: int().nonnegative()
11538
+ /** UTF-8 size of `text`. */
11539
+ totalBytes: int().nonnegative(),
11540
+ /** The stored copy is cut: part of the output was never kept, so `text` isn't all of it. */
11541
+ truncated: boolean(),
11542
+ /** UTF-8 size of the tool's whole output when the request was answered (≥ `totalBytes`). */
11543
+ outputBytes: int().nonnegative()
11383
11544
  });
11384
11545
  /** `GET /api/inbox` query. Defaults to open items. */
11385
11546
  const ListInboxQuery = object({
@@ -13164,7 +13325,7 @@ object({
13164
13325
  * rest of the bundle, so the package version is the single source of truth at runtime;
13165
13326
  * everywhere else (workspace, tests) it is `SOURCE_VERSION`.
13166
13327
  */
13167
- const CODEDEN_VERSION = packageVersion() ?? "0.6.2";
13328
+ const CODEDEN_VERSION = packageVersion() ?? "0.6.3";
13168
13329
  function packageVersion() {
13169
13330
  const value = globalThis.__CODEDEN_PACKAGE_VERSION__;
13170
13331
  return typeof value === "string" && value.length > 0 ? value : void 0;
@@ -13315,6 +13476,6 @@ async function listDescendants(rootPid) {
13315
13476
  }
13316
13477
  return out;
13317
13478
  }
13318
- export { StarterSetRequest as $, InboxItemKind as $n, NEVER as $r, FactoryAllowLargeChangeRequest as $t, BrowserHostClientMessage as A, EditQueuedMessageRequest as An, _null as Ar, LOCAL_STT_SAMPLE_RATE as At, AUTOMATION_IMPORT_LIMITS as B, BROWSER_RELAY_SECRET_HEADER as Bn, number$1 as Br, NOTICE_BATCH_CODE as Bt, RemoteAccessFile as C, AutomationGuards as Cn, providersWith as Cr, UpdateProjectRequest as Ct, SignInRequest as D, Session as Dn, number as Dr, READ_ALOUD_FULL_MAX_CHARS as Dt, SetNetworkPasswordResponse as E, TriagePolicy as En, ReasoningEffort as Er, agentEventToNewEvent as Et, BrowserNavigateRequest as F, SpeechSummaryRequest as Fn, discriminatedUnion as Fr, UpdateInstallRequest as Ft, AutomationFileFrontmatter as G, ConflictDecision as Gn, string as Gr, GithubIssue as Gt, DuplicateAutomationRequest as H, RuntimeResponse as Hn, optional as Hr, CreateGithubIssueRequest as Ht, BrowserNewTabRequest as I, TerminalClientMessage as In, int as Ir, UpdateStatus as It, CreateAutomationRequest as J, Project as Jn, url as Jr, GithubPr as Jt, AutomationGuardsPatch as K, StartedBy as Kn, union as Kr, GithubLabelRequest as Kt, BrowserOpenRequest as L, TerminalQuery as Ln, intersection as Lr, compareVersions as Lt, BrowserClientMessage as M, GitPushRequest as Mn, array as Mr, SttQuery as Mt, BrowserDevServerRequest as N, RestoreFilesRequest as Nn, boolean as Nr, TtsRequest as Nt, passwordProblem as O, SessionStatus as On, datetime as Or, Settings as Ot, BrowserHistoryRequest as P, SessionResult as Pn, custom as Pr, AppPointer as Pt, SetAutomationEnabledRequest as Q, InboxItem as Qn, prettifyError as Qr, parseGithubPrId as Qt, BrowserViewportRequest as R, RunnerCommandResults as Rn, literal as Rr, isNewerVersion as Rt, PASSWORD_RULE_TEXT as S, AutomationAction as Sn, agentConfigFeatures as Sr, UiClientMessage as St, SetNetworkPasswordRequest as T, AutomationTrigger as Tn, ProviderId as Tr, AGENT_EVENT_PREFIX as Tt, ExportAutomationsQuery as U, SessionOptions as Un, preprocess as Ur, GithubAuthorAssociation as Ut, AutomationImportSource as V, ProviderCapabilities as Vn, object as Vr, NoticeBatchData as Vt, ImportAutomationsRequest as W, ProjectConfigFile as Wn, record as Wr, GithubCommentRequest as Wt, ListAutomationsQuery as X, DEFAULT_VISION_PATH as Xn, toJSONSchema as Xr, TriageIssueRequest as Xt, ListAutomationRunsQuery as Y, sortProjects as Yn, ZodError as Yr, MergePrRequest as Yt, RunAutomationRequest as Z, FactoryLimits as Zn, safeParse$1 as Zr, githubPrId as Zt, ListNoticesQuery as _, FactorySetTypeRequest as _n, AgentConfigProvider as _r, SessionStartMeta as _t, childEnv as a, REVIEW_SUMMARY_MAX as an, messageFrom as ar, CreateProjectRequest as at, UpdateSessionRequest as b, Artifact as bn, McpServerTarget as br, SteerRequest as bt, UsageSettings as c, SetAutonomyModeRequest as cn, MCP_TEST_STDERR_LIMIT as cr, ForkSessionRequest as ct, RunnerLock as d, FactoryAdmitRequest as dn, HookHandler as dr, LoginToolId as dt, FactoryDecisionRequest as en, AgentEvent as er, TriageDecisionRequest as et, RunnerToServerMessage as f, FactoryAnalysisReport as fn, ShelvedHook as fr, ReorderProjectsRequest as ft, ListConflictsQuery as g, FactoryReproductionReport as gn, AgentConfigLocator as gr, SendMessageRequest as gt, ArchiveSessionRequest as h, FactoryPlanRoundRequest as hn, AgentConfigListQuery as hr, SecretKey as ht, listDescendants as i, PutVisionRequest as in, UserInput as ir, UpdateAutomationRequest as it, summarizeActivity as j, GitCommitRequest as jn, any as jr, LocalSttModelParams as jt, ImageTestRequest as k, DiffScope as kn, _enum as kr, speechExcerpt as kt, SessionFileQuery as l, isFactoryMode as ln, McpServerTestRequest as lr, ListInboxQuery as lt, ServerToRunnerMessage as m, FactoryFinding as mn, AgentConfigDiffRequest as mr, RespondRequest as mt, killTree as n, KillSwitchRequest as nn, oneLineDescription as nr, UpcomingRunsQuery as nt, CODEDEN_VERSION as o, ReviewVerdictSubmission as on, MCP_TEST_DEFAULT_TIMEOUT_MS as or, FileReadQuery as ot, ServerLock as p, FactoryFileIssueRequest as pn, AgentConfigDeleteQuery as pr, ResolveInboxRequest as pt, AutomationProjectRequest as q, WorkKey as qn, unknown as qr, GithubListQuery as qt, killTreeAndOrphans as r, LEGACY_SIZE_LIMITS as rn, winningCommands as rr, UpdateAutomationProjectSettingsRequest as rt, UsageQuery as s, SCOUT_UNAVAILABLE as sn, MCP_TEST_ERROR_LIMIT as sr, FileWriteRequest as st, isAlive as t, FactoryTuning as tn, SessionUpdatedEvent as tr, TriageReport as tt, RunnerEventMessage as u, truncateReviewSummary as un, HookChangeRequest as ur, ListSessionsQuery as ut, ResolveConflictRequest as v, ScoutState as vn, AgentConfigWriteRequest as vr, SetSecretRequest as vt, SetNetworkAccessRequest as w, AutomationRun as wn, AutonomyLevel as wr, HealthResponse as wt, NetworkStatus as x, Automation as xn, McpServerUpsertRequest as xr, ThreadItemsQuery as xt, RoleMessageRequest as y, pipelineStep as yn, McpServerDiffRequest as yr, StartSessionRequest as yt, BrowserWsQuery as z, SETUP_TAIL_LIMIT as zn, looseObject as zr, ConflictRecord as zt };
13479
+ export { StarterSetRequest as $, InboxItemKind as $n, ZodError as $r, FactoryAllowLargeChangeRequest as $t, BrowserHostClientMessage as A, EditQueuedMessageRequest as An, ReasoningEffort as Ar, LOCAL_STT_SAMPLE_RATE as At, AUTOMATION_IMPORT_LIMITS as B, BROWSER_RELAY_SECRET_HEADER as Bn, int as Br, NOTICE_BATCH_CODE as Bt, RemoteAccessFile as C, AutomationGuards as Cn, McpServerDiffRequest as Cr, UpdateProjectRequest as Ct, SignInRequest as D, Session as Dn, providersWith as Dr, READ_ALOUD_FULL_MAX_CHARS as Dt, SetNetworkPasswordResponse as E, TriagePolicy as En, agentConfigFeatures as Er, agentEventToNewEvent as Et, BrowserNavigateRequest as F, SpeechSummaryRequest as Fn, any as Fr, UpdateInstallRequest as Ft, AutomationFileFrontmatter as G, ConflictDecision as Gn, object as Gr, GithubIssue as Gt, DuplicateAutomationRequest as H, RuntimeResponse as Hn, literal as Hr, CreateGithubIssueRequest as Ht, BrowserNewTabRequest as I, TerminalClientMessage as In, array as Ir, UpdateStatus as It, CreateAutomationRequest as J, Project as Jn, record as Jr, GithubPr as Jt, AutomationGuardsPatch as K, StartedBy as Kn, optional as Kr, GithubLabelRequest as Kt, BrowserOpenRequest as L, TerminalQuery as Ln, boolean as Lr, compareVersions as Lt, BrowserClientMessage as M, GitPushRequest as Mn, datetime as Mr, SttQuery as Mt, BrowserDevServerRequest as N, RestoreFilesRequest as Nn, _enum as Nr, TtsRequest as Nt, passwordProblem as O, SessionStatus as On, AutonomyLevel as Or, Settings as Ot, BrowserHistoryRequest as P, SessionResult as Pn, _null as Pr, AppPointer as Pt, SetAutomationEnabledRequest as Q, InboxItem as Qn, url as Qr, parseGithubPrId as Qt, BrowserViewportRequest as R, RunnerCommandResults as Rn, custom as Rr, isNewerVersion as Rt, PASSWORD_RULE_TEXT as S, AutomationAction as Sn, AgentConfigWriteRequest as Sr, UiClientMessage as St, SetNetworkPasswordRequest as T, AutomationTrigger as Tn, McpServerUpsertRequest as Tr, AGENT_EVENT_PREFIX as Tt, ExportAutomationsQuery as U, SessionOptions as Un, looseObject as Ur, GithubAuthorAssociation as Ut, AutomationImportSource as V, ProviderCapabilities as Vn, intersection as Vr, NoticeBatchData as Vt, ImportAutomationsRequest as W, ProjectConfigFile as Wn, number$1 as Wr, GithubCommentRequest as Wt, ListAutomationsQuery as X, DEFAULT_VISION_PATH as Xn, union as Xr, TriageIssueRequest as Xt, ListAutomationRunsQuery as Y, sortProjects as Yn, string as Yr, MergePrRequest as Yt, RunAutomationRequest as Z, FactoryLimits as Zn, unknown as Zr, githubPrId as Zt, ListNoticesQuery as _, FactorySetTypeRequest as _n, AgentConfigDeleteQuery as _r, SessionStartMeta as _t, childEnv as a, REVIEW_SUMMARY_MAX as an, winningCommands as ar, CreateProjectRequest as at, UpdateSessionRequest as b, Artifact as bn, AgentConfigLocator as br, SteerRequest as bt, UsageSettings as c, SetAutonomyModeRequest as cn, messageFrom as cr, ForkSessionRequest as ct, RunnerLock as d, FactoryAdmitRequest as dn, MCP_TEST_STDERR_LIMIT as dr, LoginToolId as dt, toJSONSchema as ei, FactoryDecisionRequest as en, AgentEvent as er, TriageDecisionRequest as et, RunnerToServerMessage as f, FactoryAnalysisReport as fn, McpServerTestRequest as fr, ReorderProjectsRequest as ft, ListConflictsQuery as g, FactoryReproductionReport as gn, ShelvedHook as gr, SendMessageRequest as gt, ArchiveSessionRequest as h, FactoryPlanRoundRequest as hn, HookHandler as hr, SecretKey as ht, listDescendants as i, PutVisionRequest as in, oneLineDescription as ir, UpdateAutomationRequest as it, summarizeActivity as j, GitCommitRequest as jn, number as jr, LocalSttModelParams as jt, ImageTestRequest as k, DiffScope as kn, ProviderId as kr, speechExcerpt as kt, SessionFileQuery as l, isFactoryMode as ln, MCP_TEST_DEFAULT_TIMEOUT_MS as lr, ListInboxQuery as lt, ServerToRunnerMessage as m, FactoryFinding as mn, HookChangeRequest as mr, RespondRequest as mt, killTree as n, prettifyError as ni, KillSwitchRequest as nn, mergeItemDeltas as nr, UpcomingRunsQuery as nt, CODEDEN_VERSION as o, ReviewVerdictSubmission as on, itemDeltaText as or, FileReadQuery as ot, ServerLock as p, FactoryFileIssueRequest as pn, SkillSwitchRequest as pr, ResolveInboxRequest as pt, AutomationProjectRequest as q, WorkKey as qn, preprocess as qr, GithubListQuery as qt, killTreeAndOrphans as r, NEVER as ri, LEGACY_SIZE_LIMITS as rn, ProjectCommandsQuery as rr, UpdateAutomationProjectSettingsRequest as rt, UsageQuery as s, SCOUT_UNAVAILABLE as sn, UserInput as sr, FileWriteRequest as st, isAlive as t, safeParse$1 as ti, FactoryTuning as tn, SessionUpdatedEvent as tr, TriageReport as tt, RunnerEventMessage as u, truncateReviewSummary as un, MCP_TEST_ERROR_LIMIT as ur, ListSessionsQuery as ut, ResolveConflictRequest as v, ScoutState as vn, AgentConfigDiffRequest as vr, SetSecretRequest as vt, SetNetworkAccessRequest as w, AutomationRun as wn, McpServerTarget as wr, HealthResponse as wt, NetworkStatus as x, Automation as xn, AgentConfigProvider as xr, ThreadItemsQuery as xt, RoleMessageRequest as y, pipelineStep as yn, AgentConfigListQuery as yr, StartSessionRequest as yt, BrowserWsQuery as z, SETUP_TAIL_LIMIT as zn, discriminatedUnion as zr, ConflictRecord as zt };
13319
13480
 
13320
- //# sourceMappingURL=tree-CF7Q8tXK.js.map
13481
+ //# sourceMappingURL=tree-31WAOm5k.js.map