@cmmd-center/forge 0.9.5 → 0.9.6

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 (37) hide show
  1. package/dist/{BunHttpServer-BgNCpQzV.mjs → BunHttpServer-C_855q3m.mjs} +6 -6
  2. package/dist/{BunHttpServer-DOAuw4Iq.cjs → BunHttpServer-Dxx0kzQc.cjs} +6 -6
  3. package/dist/{BunPTY-D-Klry5N.mjs → BunPTY-B7ThejfA.mjs} +3 -3
  4. package/dist/{BunPTY-2icf7sRj.cjs → BunPTY-BjHFZATJ.cjs} +3 -3
  5. package/dist/{BunServices-ChM4mYH9.mjs → BunServices-BFygTrvx.mjs} +3 -3
  6. package/dist/{BunServices-CiNXNzHD.cjs → BunServices-U1VBnEJS.cjs} +3 -3
  7. package/dist/{Cache-XSj5g7uG.cjs → Cache-BRhFH80U.cjs} +3 -3
  8. package/dist/{Cache-Cm78WiyU.mjs → Cache-CHvh_vWI.mjs} +3 -3
  9. package/dist/{Config-DMA9WqtC.cjs → Config-BHRBB8XM.cjs} +2 -2
  10. package/dist/{Config-DrOyN3WS.mjs → Config-To1VEqlB.mjs} +2 -2
  11. package/dist/{HttpServer-aJkhz6yu.cjs → HttpServer-BTcgkY38.cjs} +123 -4
  12. package/dist/{HttpServer-ByyNdEXm.mjs → HttpServer-DV-x5DVo.mjs} +118 -4
  13. package/dist/{NodeHttpServer-D_ismXpd.cjs → NodeHttpServer-D6YVHsL8.cjs} +7 -7
  14. package/dist/{NodeHttpServer-C_wePPV0.mjs → NodeHttpServer-DgD75IAg.mjs} +7 -7
  15. package/dist/{NodePTY-cb7HIasY.cjs → NodePTY-Bd9mvI6U.cjs} +4 -4
  16. package/dist/{NodePTY-BMUFdM93.mjs → NodePTY-RnitYPTs.mjs} +4 -4
  17. package/dist/{NodeServices-BAl07hlH.cjs → NodeServices-BcQL_53W.cjs} +1 -1
  18. package/dist/{NodeServices-BISZRY3e.cjs → NodeServices-BjmXNhpe.cjs} +3 -3
  19. package/dist/{NodeServices-Bqqy4DuH.mjs → NodeServices-Da5rUDDE.mjs} +3 -3
  20. package/dist/{NodeSqliteClient-SsUCk9mA.cjs → NodeSqliteClient-CG_mPdVp.cjs} +6 -6
  21. package/dist/{NodeSqliteClient-OdI1TawL.mjs → NodeSqliteClient-CcLD4Zvr.mjs} +6 -6
  22. package/dist/{NodeTerminal-B9u7fFYa.cjs → NodeTerminal-D86oor5_.cjs} +3 -3
  23. package/dist/{NodeTerminal-_XekCzf-.mjs → NodeTerminal-Ke6chk0A.mjs} +3 -3
  24. package/dist/{PTY-U3JQnLXS.cjs → PTY-BB84iC10.cjs} +2 -2
  25. package/dist/{PTY-CBkE5akF.mjs → PTY-X-4Tv31s.mjs} +2 -2
  26. package/dist/{Path-Bwl3ltR5.mjs → Path-DJTwK58E.mjs} +2 -2
  27. package/dist/{Path-CsbBuCFB.cjs → Path-qpublmG3.cjs} +2 -2
  28. package/dist/{Schema-CTXk8IgN.mjs → Schema-CKuz8TX8.mjs} +61 -6
  29. package/dist/{Schema-Bij_WAra.cjs → Schema-DaFukK_y.cjs} +72 -5
  30. package/dist/{SqlError-C2mi8_tp.cjs → SqlError-CsWFS-OU.cjs} +3 -3
  31. package/dist/{SqlError-1c-3v7GY.mjs → SqlError-DhK0hV8S.mjs} +3 -3
  32. package/dist/{SqliteClient-CdAhI4lb.cjs → SqliteClient-BpjZWL6O.cjs} +5 -5
  33. package/dist/{SqliteClient-aoOb51gB.mjs → SqliteClient-CA7vjiUj.mjs} +5 -5
  34. package/dist/bin.cjs +261 -56
  35. package/dist/bin.mjs +284 -80
  36. package/dist/{open-FIgTDosf.mjs → open-D8mGyWmt.mjs} +3 -3
  37. package/package.json +1 -1
package/dist/bin.mjs CHANGED
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "./chunk-C5ckVeoz.mjs";
4
- import { $ as encodeSync, $a as interrupt$3, $c as none$4, $i as isDoneCause, $r as scope$1, $s as allocate, Aa as closeUnsafe, Ac as Service$1, An as catchCause, Ao as CurrentLoggers$1, Ar as never$1, As as ParentSpan, At as withDecodingDefault, B as brand, Ba as _await, Bi as update$3, Bn as currentSpan, Br as provideContext, Bs as fromInputUnsafe, Bt as isEmpty$2, C as Record, Ca as succeedContext, Ci as uninterruptibleMask$1, Cn as annotateLogs, Cs as uninterruptibleMask, Ct as suspend$2, D as TaggedStruct, Da as addFinalizer$1, Dn as asVoid, Do as squash, Dr as matchCauseEffect, Dt as toJsonSchemaDocument, E as TaggedErrorClass, Ea as Scope$1, Ec as isSuccess$1, Ei as void_$1, En as asSome, Eo as prettyErrors, Er as match$1, Et as toCodecStringTree, F as UndefinedOr, Fa as CurrentLogAnnotations, Fi as zipWith, Fl as isNotUndefined, Fn as catchTag, Fo as as$2, Fr as option, Ft as assign, G as decodeSync, Gc as fromUndefinedOr, Gi as forever$2, Gl as constUndefined, Gn as exit, Gr as result, Gs as millis, Ha as fail$3, Hc as flatMap$2, Hi as addDelay, Hl as compose, Hn as die$1, Hr as race, Ht as toArray, I as Union, Ia as CurrentLogSpans, Ic as getUnsafe$1, Ii as counter, Il as isNullish, In as catchTags, Ir as orDie, It as append$1, J as decodeUnknownExit, Jc as getOrUndefined, Ji as recurs, Jl as dual, Jo as fiberInterrupt, Jr as runForkWith, Js as seconds, K as decodeTo, Kc as getOrElse, Kl as constVoid, Kn as fail, Kr as retry, Ks as min, L as Unknown, La as MinimumLogLevel, Lc as make$33, Li as gauge, Ll as isObject$1, Ln as catch_, Lr as orElseSucceed, Ls as days, Lt as drop$1, M as URLFromString, Ma as make$35, Mc as empty$1, Mi as withSpan, Ml as hasProperty, Mn as catchFilter, Mr as onExit, Ms as externalSpan, Na as makeUnsafe$4, Nc as get$3, Ni as withTracerEnabled, Nl as isNotNull, Nn as catchIf, No as addFinalizer, Ns as make$40, O as TemplateLiteral, Oa as addFinalizerExit, Oc as succeed$1, Oi as whileLoop, On as cached$3, Os as MinimumTraceLevel, Ot as toType, P as Undefined, Pa as provide$2, Pi as yieldNow, Pl as isNotNullish, Pn as catchReason, Po as andThen$1, Pr as onInterrupt, Q as encodeEffect, Qa as failCause$2, Qc as match, Ql as pipeArguments, Qn as flatMap, Qs as zero, Qt as stringifyJson, R as UnknownFromJsonString$1, Rc as makeUnsafe$3, Ri as snapshotUnsafe, Rl as isTagged, Rn as context, Rr as promise, Rs as format$1, Rt as empty$2, S as Option, Sa as succeed$2, Sc as fail$1, Si as uninterruptible, Sn as annotateCurrentSpan, Sr as map$3, Ss as tracerLogger$1, St as optionalKey, T as Struct, Ta as unwrap, Tc as isFailure$1, Ti as useSpan, Tl as equals, Tn as as$3, To as pretty, Ts as void_$2, Tt as toCodecJson, U as decodeEffect, Ua as failCause$3, Uc as flatten$1, Ui as both, Ur as raceFirst, V as declare, Vc as firstSomeOf, Vi as withAttributes, Vl as cast, Vr as provideService, Vt as size$2, W as decodeExit, Wc as fromNullishOr, Wi as exponential, Wl as constTrue, Wn as ensuring, Wr as repeat, Ws as max, Wt as Transformation, X as decodeUnknownSync, Xa as die$2, Xc as isSome, Xi as catchDone, Xl as identity, Xn as filterMapOrFail, Xs as toMillis, Xt as parseJson$1, Y as decodeUnknownOption, Ya as succeed$3, Yc as isNone, Yi as spaced, Yn as filter$1, Yr as runPromise, Ys as times, Yt as onSome, Z as encode$4, Za as fail$2, Zc as map$5, Zl as pipe$1, Zn as filterOrFail, Zr as runPromiseWith, Zs as toSeconds, _ as NonEmptyArray, _a as launch$1, _i as tryPromise, _n as acquireRelease, _o as hasInterrupts, _r as logError, a as DateTimeUtc, aa as currentTimeMillis, ac as isArrayNonEmpty, ai as succeed, ar as forkChild, at as isFinite$1, b as NullOr, ba as provide$1, bi as txRetry, bl as toJson, bn as all, bo as interruptors, br as logWarning$1, bs as suspend, bt as mutable, c as Defect, ca as TaggedError, ci as suspend$1, cl as YieldableProto, cn as formatIso, cr as forkScoped, ct as isInt, d as Exit, da as buildWithMemoMap, di as tapCause, dn as makeUnsafe$5, do as done, dr as ignoreCause, dt as isMaxProperties, ec as empty$3, ei as scoped, el as some, en as InvalidValue$1, eo as isFailure, er as flatten$2, et as encodeUnknownEffect, fa as effect, fc as reverse, fi as tapError, fn as now, fo as fail$4, fr as interrupt$1, ft as isMinLength, g as Never, gi as timeoutOrElse, gl as withFiber, gn as Transaction$1, go as hasDies, gr as logDebug, gs as sleep$3, gt as isSchemaError, h as Literals, ha as empty$4, hi as timeoutOption, hl as isEffect$1, hn as toUtc, hr as log$4, hs as scopeAddFinalizerExit, ht as isSchema, i as Class, ia as Clock, ic as fromIterable, ii as sleep$4, in as value, io as void_$3, ir as forever$1, is as forkDetach, it as isBetween, ja as forkUnsafe, jc as add$2, ji as withParentSpan, jl as compose$1, jn as catchDefect, jr as onError$1, js as Tracer, k as Trim, ka as close, kc as Reference$1, ki as withFiber$1, kn as callback, ko as ConsoleRef, kr as matchEffect, ks as NativeSpan, kt as withConstructorDefault, l as Duration, la as CurrentMemoMap, li as sync$1, ln as isGreaterThanOrEqualTo$1, lr as gen, lt as isLessThanOrEqualTo, m as Literal, ma as effectDiscard, mi as timeout, mn as toEpochMillis, mr as isEffect, ms as scope, mt as isPattern, n as ArraySchema, na as clamp, nc as filter, ni as service, nl as make$39, nn as makeFormatterDefault, no as match$2, nr as fnUntraced, ns as fnUntraced$1, nt as fromJsonString, o as DateTimeUtcFromString, oa as Class$1, oc as isReadonlyArrayNonEmpty, oi as succeedNone, on as encodeBase64Url$2, oo as NoSuchElementError, or as forkDetach$1, ot as isGreaterThan, p as Int$1, pa as effectContext, pc as sort, pi as tapErrorTag, pn as toDate, pr as interruptible, ps as reportCauseUnsafe, pt as isNonEmpty, q as decodeUnknownEffect, qa as make$37, qc as getOrNull, qi as passthrough$1, ql as constant, qn as failCause$1, qr as runFork, qs as minutes, qt as transformOrFail, r as Boolean$1, ra as parse$6, rc as flatMapNullishOr, ri as serviceOption, rn as make$38, rr as forEach, rs as forever, rt as is$1, si as succeedSome, sl as PipeInspectableProto, sn as add$3, so as StackTrace, sr as forkIn, ss as loggerMake, st as isGreaterThanOrEqualTo, t as Any, ta as Random$1, tc as ensure, tl as Number$2, to as isSuccess, tr as fn$1, ts as flatMap$1, tt as encodeUnknownExit, u as ErrorClass, ua as build, uc as map$4, ui as tap, un as make$36, ur as ignore, ut as isMaxLength, v as NonEmptyString, va as merge$3, vi as try_, vn as acquireUseRelease, vo as hasInterruptsOnly, vr as logFatal, vt as make$34, w as String$1, wa as sync$2, wn as annotateSpans, wo as map$6, wr as mapError, wt as tag, x as Number$1, xa as provideMerge, xi as undefined_, xl as format, xn as andThen, xr as makeSpanScoped, xs as sync, xt as optional$4, y as Null, ya as mergeAll, yi as tx$1, yl as NodeInspectSymbol, yn as addFinalizer$2, yo as interrupt$2, yr as logInfo, yt as makeFilter, z as Void, za as TracerTimingEnabled, zc as merge$2, zi as timer, zn as contextWith, zo as consolePretty$1, zr as provide, zs as fromInput, zt as head } from "./Schema-CTXk8IgN.mjs";
5
- import { $ as toAsyncIterable, A as isStream, At as offerUnsafe, C as fromChannel, Ct as end, D as fromQueue, Dt as make$42, E as fromPubSub, F as merge$4, Ft as unbounded$2, G as runFold, Gt as interrupt$4, H as run$2, Ht as makeUnsafe$7, It as publish, K as runForEach, Lt as shutdown$2, M as map$7, Mt as sliding, N as mapEffect$1, Nt as take$1, Ot as offer$1, Pt as takeAll, Q as tick, R as onExit$1, Rt as subscribe$1, S as fromAsyncIterable, St as bounded, T as fromIterable$1, Tt as failCause$4, U as runCollect, Ut as await_, V as provideContext$1, W as runDrain, Wt as getCurrent, Y as succeed$4, Z as takeWhile, _ as ensuring$1, _t as fromTransform, at as make$44, b as filter$2, bt as make$41, d as concat$2, dt as drain, f as debounce$1, ft as forEach$1, g as encodeText, h as empty$5, ht as mapInput, i as FileSystem, it as get$4, j as make$43, jt as shutdown$1, k as fromSubscription, kt as offerAll, l as callback$1, p as decodeText$1, q as runForEachArray, qt as runIn, rt as unwrap$1, t as Path$2, u as catchCause$1, w as fromEffect, x as flatMap$3, xt as makeUnsafe$6, y as failCause$5, zt as unbounded$1 } from "./Path-Bwl3ltR5.mjs";
6
- import { _ as ChildProcessSpawner, a as Stdio, g as make$45, o as make$46, r as isQuitError } from "./NodeTerminal-_XekCzf-.mjs";
7
- import { n as layer$7 } from "./NodeServices-Bqqy4DuH.mjs";
8
- import { $ as raw, Dt as merge$5, Et as fromRecordUnsafe, F as HttpServerError, Ft as makeUnsafe$8, G as retryTransient, H as layer$8, It as modify$3, J as symbol$1, Lt as set$2, Mt as getAndSet, Nt as getUnsafe$2, Pt as make$47, Q as jsonUnsafe, R as RouteNotFound, Rt as update$4, St as jsonUnsafe$1, Tt as fromInput$1, U as HttpClient, W as filterStatusOk$1, X as file, Y as empty$6, Z as isHttpServerResponse, _ as schemaHeaders, _t as get$6, a as withLogAddress, at as stream, bt as HttpClientErrorSchema, ct as filterStatusOk, d as logger$1, et as redirect, f as withLoggerDisabled, g as schemaBodyJson, gt as bodyJson, ht as bearerToken, i as serve$1, it as setHeader, jt as get$5, k as SocketErrorReason, lt as matchStatus, m as ParsedSearchParams, mt as acceptJson, nt as setCookie, ot as text$1, p as HttpServerRequest, pt as schemaBodyJson$1, rt as setCookies, st as uint8Array, t as HttpServer, tt as schemaJson, u as cors, v as toURL, vt as post, wt as empty$7, xt as isHttpClientError, yt as setBody, zt as updateAndGet } from "./HttpServer-ByyNdEXm.mjs";
9
- import { _ as withDefault$3, a as all$1, c as logLevel, d as option$1, f as port, g as url$2, i as TrueValues, l as map$8, m as string$7, n as FalseValues, o as boolean$5, p as schema$2, r as Record$1, s as int$3, t as Boolean$2, u as number$2 } from "./Config-DrOyN3WS.mjs";
10
- import { a as make$48, i as keys, n as getOption, o as makeWith$1, r as invalidate, s as set$3, t as get$7 } from "./Cache-Cm78WiyU.mjs";
11
- import { S as layer$9, _ as defaultEscape, a as DeadlockError, b as makeCompiler$1, c as SqlError, d as UnknownError, g as custom, h as make$49, i as ConstraintError, l as SqlSyntaxError, m as SqlClient, n as AuthorizationError, o as LockTimeoutError, r as ConnectionError, s as SerializationError, t as AuthenticationError, u as StatementTimeoutError, v as defaultTransforms, y as fragment } from "./SqlError-1c-3v7GY.mjs";
4
+ import { $ as encodeEffect, $a as fail$2, $c as map$5, $l as pipe$1, $n as filterOrFail, $r as runPromiseWith, $s as toSeconds, $t as stringifyJson, Aa as addFinalizerExit, Ac as succeed$1, Ai as whileLoop, An as cached$3, As as MinimumTraceLevel, At as withConstructorDefault, Bc as makeUnsafe$3, Bi as snapshotUnsafe, Bl as isTagged, Bn as context, Br as promise, Bs as format$1, Bt as head, C as Record, Ca as provideMerge, Ci as undefined_, Cl as format, Cn as andThen, Cr as makeSpanScoped, Cs as sync, Ct as optionalKey, D as TaggedStruct, Da as unwrap, Dc as isFailure$1, Di as useSpan, Dl as equals, Dn as as$3, Do as pretty, Ds as void_$2, Dt as toCodecStringTree, E as TaggedErrorClass, Ea as sync$2, En as annotateSpans, Eo as map$6, Er as mapError, Et as toCodecJson, F as UndefinedOr, Fa as makeUnsafe$4, Fc as get$3, Fi as withTracerEnabled, Fl as isNotNull, Fn as catchIf, Fo as addFinalizer, Fs as make$40, G as decodeExit, Ga as failCause$3, Gc as flatten$1, Gi as both, Gr as raceFirst, Gt as Transformation, H as declare, Ha as _await, Hi as update$3, Hn as currentSpan, Hr as provideContext, Hs as fromInputUnsafe, Ht as size$2, I as Union, Ia as provide$2, Ii as yieldNow, Il as isNotNullish, In as catchReason, Io as andThen$1, Ir as onInterrupt, It as assign, J as decodeUnknownEffect, Jc as getOrElse, Jl as constVoid, Jn as fail, Jr as retry, Js as min, Jt as transformOrFail, K as decodeSync, Kc as fromNullishOr, Ki as exponential, Kl as constTrue, Kn as ensuring, Kr as repeat, Ks as max, L as Unknown, La as CurrentLogAnnotations, Li as zipWith, Ll as isNotUndefined, Ln as catchTag, Lo as as$2, Lr as option, Lt as append$1, M as URLFromString, Ma as closeUnsafe, Mc as Service$1, Mn as catchCause, Mo as CurrentLoggers$1, Mr as never$1, Ms as ParentSpan, Na as forkUnsafe, Nc as add$2, Ni as withParentSpan, Nl as compose$1, Nn as catchDefect, Nr as onError$1, Ns as Tracer, O as TemplateLiteral, Oa as Scope$1, Oc as isSuccess$1, Oi as void_$1, On as asSome, Oo as prettyErrors, Or as match$1, Ot as toJsonSchemaDocument, P as Undefined, Pa as make$35, Pc as empty$1, Pi as withSpan, Pl as hasProperty, Pn as catchFilter, Pr as onExit, Ps as externalSpan, Q as encode$4, Qa as die$2, Qc as isSome, Qi as catchDone, Ql as identity, Qn as filterMapOrFail, Qs as toMillis, R as UnknownFromJsonString$1, Ra as CurrentLogSpans, Rc as getUnsafe$1, Ri as counter, Rl as isNullish, Rn as catchTags, Rr as orDie, Rt as drop$1, S as Option, Sa as provide$1, Si as txRetry, Sl as toJson, Sn as all, So as interruptors, Sr as logWarning$1, Ss as suspend, St as optional$4, T as Struct, Ta as succeedContext, Ti as uninterruptibleMask$1, Tn as annotateLogs, Ts as uninterruptibleMask, Tt as tag, Uc as firstSomeOf, Ui as withAttributes, Ul as cast, Ur as provideService, Ut as toArray, V as brand, Va as TracerTimingEnabled, Vc as merge$2, Vi as timer, Vn as contextWith, Vo as consolePretty$1, Vr as provide, Vs as fromInput, Vt as isEmpty$2, W as decodeEffect, Wa as fail$3, Wc as flatMap$2, Wi as addDelay, Wl as compose, Wn as die$1, Wr as race, X as decodeUnknownOption, Xc as getOrUndefined, Xi as recurs, Xl as dual, Xo as fiberInterrupt, Xr as runForkWith, Xs as seconds, Xt as onSome, Y as decodeUnknownExit, Ya as make$37, Yc as getOrNull, Yi as passthrough$1, Yl as constant, Yn as failCause$1, Yr as runFork, Ys as minutes, Z as decodeUnknownSync, Za as succeed$3, Zc as isNone, Zi as spaced, Zn as filter$1, Zr as runPromise, Zs as times, Zt as parseJson$1, _ as NonEmptyArray, _a as empty$4, _i as timeoutOption, _l as isEffect$1, _n as toUtc, _r as log$4, _s as scopeAddFinalizerExit, _t as isSchemaError, a as DateTimeUtc, aa as parse$6, ac as flatMapNullishOr, ai as serviceOption, an as value, ar as forEach, as as forever, at as isBetween, b as NullOr, ba as merge$3, bi as try_, bn as acquireUseRelease, bo as hasInterruptsOnly, br as logFatal, bt as makeFilter, c as Defect, ca as Class$1, cc as isReadonlyArrayNonEmpty, ci as succeedNone, cn as add$3, co as NoSuchElementError, cr as forkDetach$1, ct as isGreaterThanOrEqualTo, d as Exit, da as CurrentMemoMap, di as sync$1, dn as isGreaterThanOrEqualTo$1, dr as gen, dt as isMaxLength, ec as zero, el as match, eo as failCause$2, er as flatMap, et as encodeSync, eu as pipeArguments, fa as build, fc as map$4, fi as tap, fn as make$36, fr as ignore, ft as isMaxProperties, g as Never, ga as effectDiscard, gi as timeout, gn as toEpochMillis, gr as isEffect, gs as scope, gt as isSchema, h as Literals, ha as effectContext, hc as sort, hi as tapErrorTag, hn as toDate, hr as interruptible, hs as reportCauseUnsafe, ht as isPattern, i as Class, ia as clamp, ic as filter, ii as service, il as make$39, in as make$38, io as match$2, ir as fnUntraced, is as fnUntraced$1, it as is$1, ja as close, jc as Reference$1, ji as withFiber$1, jn as callback, jo as ConsoleRef, jr as matchEffect, js as NativeSpan, jt as withDecodingDefault, k as Trim, ka as addFinalizer$1, kn as asVoid, ko as squash, kr as matchCauseEffect, kt as toType, l as Duration, li as succeedSome, ll as PipeInspectableProto, ln as distance, lo as StackTrace, lr as forkIn, ls as loggerMake, lt as isInt, m as Literal, ma as effect, mc as reverse, mi as tapError, mn as now, mo as fail$4, mr as interrupt$1, mt as isNonEmpty, n as ArraySchema, nc as empty$3, ni as scoped, nl as some, no as isFailure, nr as flatten$2, nt as encodeUnknownExit, o as DateTimeUtcFromString, oa as Clock, oc as fromIterable, oi as sleep$4, oo as void_$3, or as forever$1, os as forkDetach, ot as isFinite$1, p as Int$1, pa as buildWithMemoMap, pi as tapCause, pn as makeUnsafe$5, po as done, pr as ignoreCause, pt as isMinLength, q as decodeTo, qc as fromUndefinedOr, qi as forever$2, ql as constUndefined, qn as exit, qr as result, qs as millis, r as Boolean$1, ra as Random$1, rc as ensure, rl as Number$2, rn as makeFormatterDefault, ro as isSuccess, rr as fn$1, rs as flatMap$1, rt as fromJsonString, sa as currentTimeMillis, sc as isArrayNonEmpty, si as succeed, sn as encodeBase64Url$2, sr as forkChild, st as isGreaterThan, t as Any, ta as isDoneCause, tc as allocate, ti as scope$1, tl as none$4, tn as InvalidValue$1, to as interrupt$3, tt as encodeUnknownEffect, u as ErrorClass, ua as TaggedError, ui as suspend$1, ul as YieldableProto, un as formatIso, ur as forkScoped, ut as isLessThanOrEqualTo, v as NonEmptyString, vi as timeoutOrElse, vl as withFiber, vn as Transaction$1, vo as hasDies, vr as logDebug, vs as sleep$3, w as String$1, wa as succeed$2, wc as fail$1, wi as uninterruptible, wn as annotateCurrentSpan, wr as map$3, ws as tracerLogger$1, wt as suspend$2, x as Number$1, xa as mergeAll, xi as tx$1, xl as NodeInspectSymbol, xn as addFinalizer$2, xo as interrupt$2, xr as logInfo, xt as mutable, y as Null, ya as launch$1, yi as tryPromise, yn as acquireRelease, yo as hasInterrupts, yr as logError, yt as make$34, z as Void, za as MinimumLogLevel, zc as make$33, zi as gauge, zl as isObject$1, zn as catch_, zr as orElseSucceed, zs as days, zt as empty$2 } from "./Schema-CKuz8TX8.mjs";
5
+ import { $ as toAsyncIterable, A as isStream, At as offerUnsafe, C as fromChannel, Ct as end, D as fromQueue, Dt as make$42, E as fromPubSub, F as merge$4, Ft as unbounded$2, G as runFold, Gt as interrupt$4, H as run$2, Ht as makeUnsafe$7, It as publish, K as runForEach, Lt as shutdown$2, M as map$7, Mt as sliding, N as mapEffect$1, Nt as take$1, Ot as offer$1, Pt as takeAll, Q as tick, R as onExit$1, Rt as subscribe$1, S as fromAsyncIterable, St as bounded, T as fromIterable$1, Tt as failCause$4, U as runCollect, Ut as await_, V as provideContext$1, W as runDrain, Wt as getCurrent, Y as succeed$4, Z as takeWhile, _ as ensuring$1, _t as fromTransform, at as make$44, b as filter$2, bt as make$41, d as concat$2, dt as drain, f as debounce$1, ft as forEach$1, g as encodeText, h as empty$5, ht as mapInput, i as FileSystem, it as get$4, j as make$43, jt as shutdown$1, k as fromSubscription, kt as offerAll, l as callback$1, p as decodeText$1, q as runForEachArray, qt as runIn, rt as unwrap$1, t as Path$2, u as catchCause$1, w as fromEffect, x as flatMap$3, xt as makeUnsafe$6, y as failCause$5, zt as unbounded$1 } from "./Path-DJTwK58E.mjs";
6
+ import { _ as ChildProcessSpawner, a as Stdio, g as make$45, o as make$46, r as isQuitError } from "./NodeTerminal-Ke6chk0A.mjs";
7
+ import { n as layer$7 } from "./NodeServices-Da5rUDDE.mjs";
8
+ import { $ as jsonUnsafe, A as SocketErrorReason, Bt as updateAndGet, Ct as jsonUnsafe$1, Dt as fromRecordUnsafe, Et as fromInput$1, Ft as make$47, G as filterStatusOk$1, I as HttpServerError, It as makeUnsafe$8, K as retryTransient, Lt as modify$3, Mt as get$5, Nt as getAndSet, Ot as merge$5, Pt as getUnsafe$2, Q as isHttpServerResponse, Rt as set$2, St as isHttpClientError, Tt as empty$7, U as layer$8, W as HttpClient, X as empty$6, Y as symbol$1, Z as file, _ as schemaBodyUrlParams, _t as bodyJson, a as withLogAddress, at as setHeader, bt as setBody, ct as uint8Array, d as logger$1, et as raw, f as withLoggerDisabled, g as schemaBodyJson, gt as bearerToken, ht as acceptJson, i as serve$1, it as setCookies, lt as filterStatusOk, m as ParsedSearchParams, mt as schemaBodyJson$1, nt as schemaJson, ot as stream, p as HttpServerRequest, rt as setCookie, st as text$1, t as HttpServer, tt as redirect, u as cors, ut as matchStatus, v as schemaHeaders, vt as get$6, xt as HttpClientErrorSchema, y as toURL, yt as post, z as RouteNotFound, zt as update$4 } from "./HttpServer-DV-x5DVo.mjs";
9
+ import { _ as withDefault$3, a as all$1, c as logLevel, d as option$1, f as port, g as url$2, i as TrueValues, l as map$8, m as string$7, n as FalseValues, o as boolean$5, p as schema$2, r as Record$1, s as int$3, t as Boolean$2, u as number$2 } from "./Config-To1VEqlB.mjs";
10
+ import { a as make$48, i as keys, n as getOption, o as makeWith$1, r as invalidate, s as set$3, t as get$7 } from "./Cache-CHvh_vWI.mjs";
11
+ import { S as layer$9, _ as defaultEscape, a as DeadlockError, b as makeCompiler$1, c as SqlError, d as UnknownError, g as custom, h as make$49, i as ConstraintError, l as SqlSyntaxError, m as SqlClient, n as AuthorizationError, o as LockTimeoutError, r as ConnectionError, s as SerializationError, t as AuthenticationError, u as StatementTimeoutError, v as defaultTransforms, y as fragment } from "./SqlError-DhK0hV8S.mjs";
12
12
  import { a as diag, c as SpanKind$1, d as TraceFlags, f as ROOT_CONTEXT, i as propagation, l as isSpanContextValid, m as DiagLogLevel, n as init_esm$1, o as context$1, p as createContextKey, r as trace, s as SpanStatusCode, t as esm_exports$1 } from "./esm-Ce1GqbVk.mjs";
13
13
  import { t as Mime_default } from "./Mime-BITO-E1U.mjs";
14
14
  import { a as verifyCmmdAuthRuntimeTicket, c as verifyCmmdRuntimeTicketRefreshProof, d as createReadOnceFileTokenAccessor, i as sendRuntimeControlHeartbeat, l as runtimeGrantToken, n as bootstrapRuntimeControlAuthorityFromNarrowGrant, o as verifyCmmdClaudeReadinessTicket, r as readRuntimeControlAuthority, s as verifyCmmdRuntimeTicket, t as bootstrapRuntimeControlAuthority, u as setRuntimeGrantToken } from "./runtimeControlAuthority-L85w5RTn.mjs";
15
- import { n as PtySpawnError, t as PtyAdapter } from "./PTY-CBkE5akF.mjs";
15
+ import { n as PtySpawnError, t as PtyAdapter } from "./PTY-X-4Tv31s.mjs";
16
16
  import { createRequire } from "node:module";
17
17
  import * as HE from "node:child_process";
18
18
  import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
@@ -22,7 +22,7 @@ import { createCipheriv, createDecipheriv, createHash, createHmac, createPublicK
22
22
  import * as FS$1 from "node:fs";
23
23
  import fs, { accessSync, chmodSync, constants, createReadStream, existsSync, mkdirSync, mkdtempSync, promises, readFile, readFileSync, readdir, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
24
24
  import * as NodeOS from "node:os";
25
- import os, { homedir, networkInterfaces, tmpdir } from "node:os";
25
+ import $U, { homedir, networkInterfaces, tmpdir } from "node:os";
26
26
  import * as Path$1 from "node:path";
27
27
  import path, { basename, delimiter, dirname, extname, isAbsolute, join, posix, relative, resolve, sep } from "node:path";
28
28
  import { pathToFileURL } from "node:url";
@@ -17588,6 +17588,7 @@ const ExecutionEnvironmentCapabilities = Struct({
17588
17588
  pullRequests: optionalKey(Boolean$1),
17589
17589
  threadPullRequestLinking: optionalKey(Boolean$1),
17590
17590
  cloudMode: Boolean$1.pipe(withDecodingDefault(succeed(false))),
17591
+ threadSettlement: optionalKey(Boolean$1),
17591
17592
  posthogPublicKey: NullOr(String$1).pipe(withDecodingDefault(succeed(null))),
17592
17593
  posthogHost: NullOr(String$1).pipe(withDecodingDefault(succeed(null))),
17593
17594
  runtime: optionalKey(ExecutionEnvironmentRuntimeCapabilities),
@@ -52182,7 +52183,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
52182
52183
  const min = forceColor || 0;
52183
52184
  if (env.TERM === "dumb") return min;
52184
52185
  if (process$1.platform === "win32") {
52185
- const osRelease = os.release().split(".");
52186
+ const osRelease = $U.release().split(".");
52186
52187
  if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
52187
52188
  return 1;
52188
52189
  }
@@ -54625,7 +54626,7 @@ var require_ProcessDetector = /* @__PURE__ */ __commonJSMin(((exports) => {
54625
54626
  exports.processDetector = void 0;
54626
54627
  const api_1 = (init_esm$1(), __toCommonJS(esm_exports$1));
54627
54628
  const semconv_1 = require_semconv$1();
54628
- const os$4 = __require("os");
54629
+ const os$3 = __require("os");
54629
54630
  /**
54630
54631
  * ProcessDetector will be used to detect the resources related current process running
54631
54632
  * and being instrumented from the NodeJS Process module.
@@ -54647,7 +54648,7 @@ var require_ProcessDetector = /* @__PURE__ */ __commonJSMin(((exports) => {
54647
54648
  };
54648
54649
  if (process.argv.length > 1) attributes[semconv_1.ATTR_PROCESS_COMMAND] = process.argv[1];
54649
54650
  try {
54650
- const userInfo = os$4.userInfo();
54651
+ const userInfo = os$3.userInfo();
54651
54652
  attributes[semconv_1.ATTR_PROCESS_OWNER] = userInfo.username;
54652
54653
  } catch (e) {
54653
54654
  api_1.diag.debug(`error obtaining process owner: ${e}`);
@@ -67972,6 +67973,30 @@ const respondToAuthError = (error) => gen(function* () {
67972
67973
  }));
67973
67974
  return response;
67974
67975
  });
67976
+ const OAUTH_ACCESS_TOKEN_TYPE = "urn:ietf:params:oauth:token-type:access_token";
67977
+ /**
67978
+ * The one exchange this endpoint performs, or the reason it will not.
67979
+ *
67980
+ * Returns a message rather than a boolean so the route can say which field was
67981
+ * wrong: an operator debugging a pairing failure otherwise cannot tell an
67982
+ * unsupported grant from an unsupported token type.
67983
+ */
67984
+ function rejectUnsupportedTokenExchange(input) {
67985
+ if (input.grant_type !== "urn:ietf:params:oauth:grant-type:token-exchange") return "Unsupported grant_type.";
67986
+ if (input.subject_token_type !== "urn:t3:params:oauth:token-type:environment-bootstrap") return "Unsupported subject_token_type.";
67987
+ if (input.requested_token_type !== "urn:ietf:params:oauth:token-type:access_token") return "Unsupported requested_token_type.";
67988
+ return null;
67989
+ }
67990
+ /**
67991
+ * `expires_in` is a duration in seconds; a session carries an absolute instant.
67992
+ *
67993
+ * Clamped at zero so a session that expired between issuance and this call is
67994
+ * reported as already expired rather than as a negative lifetime, which a client
67995
+ * could read as a very large unsigned value.
67996
+ */
67997
+ function accessTokenExpiresInSeconds(remainingMillis) {
67998
+ return Math.max(0, Math.floor(remainingMillis / 1e3));
67999
+ }
67975
68000
  //#endregion
67976
68001
  //#region ../../packages/shared/src/cmmdIdentity.ts
67977
68002
  const MAX_CMMD_AVATAR_URL_LENGTH = 256 * 1024;
@@ -69171,6 +69196,16 @@ const CommandOAuthDeviceInput = Struct({
69171
69196
  return_url: optionalKey(String$1),
69172
69197
  scope: optionalKey(String$1)
69173
69198
  });
69199
+ const OAuthTokenExchangeInput = Struct({
69200
+ grant_type: String$1,
69201
+ subject_token: String$1,
69202
+ subject_token_type: String$1,
69203
+ requested_token_type: String$1,
69204
+ scope: optional$4(String$1),
69205
+ client_label: optional$4(String$1),
69206
+ client_device_type: optional$4(String$1),
69207
+ client_os: optional$4(String$1)
69208
+ });
69174
69209
  const CommandOAuthTokenInput = Struct({
69175
69210
  grant_type: String$1,
69176
69211
  device_code: String$1,
@@ -70012,6 +70047,50 @@ const authBearerBootstrapRouteLayer = add$1("POST", "/api/auth/bootstrap/bearer"
70012
70047
  })));
70013
70048
  return jsonUnsafe(yield* serverAuth.exchangeBootstrapCredentialForBearerSession(payload.credential, deriveAuthClientMetadata({ request })), { status: 200 });
70014
70049
  }).pipe(catchTag("AuthError", (error) => respondToAuthError(error))));
70050
+ /**
70051
+ * FORGE COMPAT. `POST /oauth/token` — the RFC 8693 token exchange the vendored
70052
+ * t3code client uses to turn a pairing credential into a bearer token.
70053
+ *
70054
+ * Forge's own clients call `/api/auth/bootstrap/bearer` with JSON. The mobile app
70055
+ * cannot: the endpoint is baked into the vendored contract
70056
+ * (packages/t3-contracts/src/environmentHttp.ts) as a form-urlencoded OAuth
70057
+ * exchange, and without it every attempt to add an environment fails with a 404 —
70058
+ * which leaves the whole app unusable, since no screen works before an
70059
+ * environment exists.
70060
+ *
70061
+ * This is a shape adapter, not a second way to authenticate. It performs no
70062
+ * validation of its own and mints nothing: it forwards the subject token to the
70063
+ * same `exchangeBootstrapCredentialForBearerSession` the JSON route uses, so the
70064
+ * credential rules, expiry and session issuance stay in one place. The only work
70065
+ * here is vocabulary — form encoding in, OAuth field names out.
70066
+ *
70067
+ * Same pattern as the vcs.* handlers in ws.ts: the Forge server speaks upstream's
70068
+ * dialect over Forge's own services, rather than the vendored client being patched
70069
+ * to speak Forge's.
70070
+ */
70071
+ const authOAuthTokenExchangeRouteLayer = add$1("POST", "/oauth/token", gen(function* () {
70072
+ const request = yield* HttpServerRequest;
70073
+ const serverAuth = yield* ServerAuth;
70074
+ const payload = yield* schemaBodyUrlParams(OAuthTokenExchangeInput).pipe(mapError((cause) => new AuthError({
70075
+ message: "Invalid token exchange payload.",
70076
+ status: 400,
70077
+ cause
70078
+ })));
70079
+ const refusal = rejectUnsupportedTokenExchange(payload);
70080
+ if (refusal !== null) return yield* new AuthError({
70081
+ message: refusal,
70082
+ status: 400
70083
+ });
70084
+ const session = yield* serverAuth.exchangeBootstrapCredentialForBearerSession(payload.subject_token, deriveAuthClientMetadata({ request }));
70085
+ const expiresInSeconds = accessTokenExpiresInSeconds(toMillis(distance(yield* now, session.expiresAt)));
70086
+ return jsonUnsafe({
70087
+ access_token: session.sessionToken,
70088
+ issued_token_type: OAUTH_ACCESS_TOKEN_TYPE,
70089
+ token_type: "Bearer",
70090
+ expires_in: expiresInSeconds,
70091
+ scope: payload.scope ?? session.role
70092
+ }, { status: 200 });
70093
+ }).pipe(catchTag("AuthError", (error) => respondToAuthError(error))));
70015
70094
  const authWebSocketTokenRouteLayer = add$1("POST", "/api/auth/ws-token", gen(function* () {
70016
70095
  const request = yield* HttpServerRequest;
70017
70096
  const serverAuth = yield* ServerAuth;
@@ -76071,7 +76150,7 @@ var require_node_gyp_build = /* @__PURE__ */ __commonJSMin(((exports, module) =>
76071
76150
  var fs$6 = __require("fs");
76072
76151
  var path$5 = __require("path");
76073
76152
  var url$1 = __require("url");
76074
- var os$3 = __require("os");
76153
+ var os$2 = __require("os");
76075
76154
  var runtimeRequire = typeof __webpack_require__ === "function" ? __non_webpack_require__ : __require;
76076
76155
  var vars = process.config && process.config.variables || {};
76077
76156
  var prebuildsOnly = !!process.env.PREBUILDS_ONLY;
@@ -76079,8 +76158,8 @@ var require_node_gyp_build = /* @__PURE__ */ __commonJSMin(((exports, module) =>
76079
76158
  var abi = versions.modules;
76080
76159
  if (versions.deno || process.isBun) abi = "unsupported";
76081
76160
  var runtime = isElectron() ? "electron" : isNwjs() ? "node-webkit" : "node";
76082
- var arch = process.env.npm_config_arch || os$3.arch();
76083
- var platform = process.env.npm_config_platform || os$3.platform();
76161
+ var arch = process.env.npm_config_arch || os$2.arch();
76162
+ var platform = process.env.npm_config_platform || os$2.platform();
76084
76163
  var libc = process.env.LIBC || (isMusl(platform) ? "musl" : "glibc");
76085
76164
  var armv = process.env.ARM_VERSION || (arch === "arm64" ? "8" : vars.arm_version) || "";
76086
76165
  var uv = (versions.uv || "").split(".")[0];
@@ -93715,7 +93794,7 @@ const launchDetached = (launch) => gen(function* () {
93715
93794
  });
93716
93795
  const OpenLive = effect(Open, gen(function* () {
93717
93796
  const open = yield* tryPromise({
93718
- try: () => import("./open-FIgTDosf.mjs"),
93797
+ try: () => import("./open-D8mGyWmt.mjs"),
93719
93798
  catch: (cause) => new OpenError$1({
93720
93799
  message: "failed to load browser opener",
93721
93800
  cause
@@ -113371,8 +113450,8 @@ effectDiscard(runMigrations());
113371
113450
  //#endregion
113372
113451
  //#region src/persistence/Layers/Sqlite.ts
113373
113452
  const defaultSqliteClientLoaders = {
113374
- bun: () => import("./SqliteClient-aoOb51gB.mjs"),
113375
- node: () => import("./NodeSqliteClient-OdI1TawL.mjs")
113453
+ bun: () => import("./SqliteClient-CA7vjiUj.mjs"),
113454
+ node: () => import("./NodeSqliteClient-CcLD4Zvr.mjs")
113376
113455
  };
113377
113456
  const makeRuntimeSqliteLayer = fn$1("makeRuntimeSqliteLayer")(function* (config) {
113378
113457
  const loader = defaultSqliteClientLoaders[process.versions.bun !== void 0 ? "bun" : "node"];
@@ -146712,22 +146791,58 @@ function runtimeAuthoritySessionId(input) {
146712
146791
  if (input.authSessionId) return input.authSessionId;
146713
146792
  return input.threadId ? readThreadSessionId(input.threadId) : null;
146714
146793
  }
146794
+ /**
146795
+ * Pure mapping from the three preconditions to an outcome.
146796
+ *
146797
+ * Split out so the reason can be tested without an Effect runtime, env vars or
146798
+ * module mocking — the decision is the thing worth pinning, not the plumbing
146799
+ * around it.
146800
+ */
146801
+ function resolveBrokerTicketOutcome(input) {
146802
+ if (input.identityMode === "legacy") return {
146803
+ kind: "ticket",
146804
+ token: input.legacyGrantToken
146805
+ };
146806
+ if (input.identityMode === "invalid") return {
146807
+ kind: "unavailable",
146808
+ reason: "runtime identity is incomplete or invalid"
146809
+ };
146810
+ if (!input.sessionId) return {
146811
+ kind: "unavailable",
146812
+ reason: "no owner session is bound to this request"
146813
+ };
146814
+ return input.brokerAuthority ? {
146815
+ kind: "ticket",
146816
+ token: input.brokerAuthority
146817
+ } : {
146818
+ kind: "unavailable",
146819
+ reason: "no live broker authority for this session"
146820
+ };
146821
+ }
146715
146822
  function runtimeProviderBrokerToken(input) {
146716
146823
  const identity = classifyRuntimeBrokerIdentity({
146717
146824
  machineId: configuredRuntimeMachineId() ?? void 0,
146718
146825
  credentialEpoch: configuredRuntimeCredentialEpoch(),
146719
146826
  brokerAuthorityMode: process.env.FORGE_CMMD_RUNTIME_BROKER_AUTHORITY_MODE
146720
146827
  });
146721
- if (identity.mode === "legacy") return runtimeGrantToken();
146722
- if (identity.mode === "invalid") return null;
146828
+ if (identity.mode !== "exact") return resolveBrokerTicketOutcome({
146829
+ identityMode: identity.mode,
146830
+ legacyGrantToken: identity.mode === "legacy" ? runtimeGrantToken() : null,
146831
+ sessionId: null,
146832
+ brokerAuthority: null
146833
+ });
146723
146834
  const sessionId = runtimeAuthoritySessionId(input);
146724
- if (!sessionId) return null;
146725
- return readRuntimeBrokerAuthority({
146835
+ return resolveBrokerTicketOutcome({
146836
+ identityMode: "exact",
146837
+ legacyGrantToken: null,
146726
146838
  sessionId,
146727
- runtimeId: process.env.FORGE_CMMD_RUNTIME_ID,
146728
- machineId: identity.machineId,
146729
- credentialEpoch: identity.credentialEpoch,
146730
- requiredScope: "provider"
146839
+ brokerAuthority: sessionId ? readRuntimeBrokerAuthority({
146840
+ sessionId,
146841
+ runtimeId: process.env.FORGE_CMMD_RUNTIME_ID,
146842
+ machineId: identity.machineId,
146843
+ credentialEpoch: identity.credentialEpoch,
146844
+ requiredScope: "provider"
146845
+ }) : null
146731
146846
  });
146732
146847
  }
146733
146848
  async function fetchRuntimeProviderGrant(input) {
@@ -146772,8 +146887,9 @@ const issueProviderEgressCredential = (input) => tryPromise({
146772
146887
  async function issueCmmdRuntimeProviderEgressCredential(input) {
146773
146888
  const controlPlaneUrl = process.env.FORGE_COMMAND_APP_URL.replace(/\/+$/, "");
146774
146889
  const runtimeId = encodeURIComponent(process.env.FORGE_CMMD_RUNTIME_ID);
146775
- const runtimeGrantToken = runtimeProviderBrokerToken(input);
146776
- if (!runtimeGrantToken) throw new Error("Provider token issuance requires a live exact-machine broker authority for this runtime epoch.");
146890
+ const brokerTicket = runtimeProviderBrokerToken(input);
146891
+ if (brokerTicket.kind === "unavailable") throw new Error(`Provider token issuance requires a live exact-machine broker authority for this runtime epoch (${brokerTicket.reason}).`);
146892
+ const runtimeGrantToken = brokerTicket.token;
146777
146893
  const response = await fetchRuntimeProviderGrant({
146778
146894
  url: `${controlPlaneUrl}/api/forge/runtimes/${runtimeId}/provider/token`,
146779
146895
  token: runtimeGrantToken,
@@ -186060,7 +186176,7 @@ var Vce = {
186060
186176
  function Ve() {
186061
186177
  return Vce;
186062
186178
  }
186063
- var Us = os.homedir(), lk = os.tmpdir(), { env: Vc } = process$1, Yce = (e) => {
186179
+ var Us = $U.homedir(), lk = $U.tmpdir(), { env: Vc } = process$1, Yce = (e) => {
186064
186180
  let t = path.join(Us, "Library");
186065
186181
  return {
186066
186182
  data: path.join(t, "Application Support", e),
@@ -196260,12 +196376,12 @@ function qZ(e, t) {
196260
196376
  }
196261
196377
  return n;
196262
196378
  }
196263
- var os$2 = "https://code.claude.com/docs/en", kKe = [
196379
+ var os$1 = "https://code.claude.com/docs/en", kKe = [
196264
196380
  {
196265
196381
  matches: (e) => e.path === "permissions.defaultMode" && e.code === "invalid_value",
196266
196382
  tip: {
196267
196383
  suggestion: "Valid modes: \"acceptEdits\" (ask before file changes), \"plan\" (analysis only), \"bypassPermissions\" (auto-accept all), or \"default\" (standard behavior)",
196268
- docLink: `${os$2}/iam#permission-modes`
196384
+ docLink: `${os$1}/iam#permission-modes`
196269
196385
  }
196270
196386
  },
196271
196387
  {
@@ -196280,7 +196396,7 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
196280
196396
  matches: (e) => e.path.startsWith("env.") && e.code === "invalid_type",
196281
196397
  tip: {
196282
196398
  suggestion: "Environment variables must be strings. Wrap numbers and booleans in quotes. Example: \"DEBUG\": \"true\", \"PORT\": \"3000\"",
196283
- docLink: `${os$2}/settings#environment-variables`
196399
+ docLink: `${os$1}/settings#environment-variables`
196284
196400
  }
196285
196401
  },
196286
196402
  {
@@ -196291,14 +196407,14 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
196291
196407
  matches: (e) => e.path.startsWith("hooks.") && e.code === "invalid_key",
196292
196408
  tip: {
196293
196409
  suggestion: "Not a recognized hook event. Common events: PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, SessionEnd, Stop. Check spelling and capitalization.",
196294
- docLink: `${os$2}/hooks`
196410
+ docLink: `${os$1}/hooks`
196295
196411
  }
196296
196412
  },
196297
196413
  {
196298
196414
  matches: (e) => /\.hooks\.\d+\.command$/.test(e.path) && e.code === "invalid_type" && e.received === "undefined",
196299
196415
  tip: {
196300
196416
  suggestion: "Command hooks require `command`. For exec form (no shell), set `command` to the executable and `args` to its arguments: {\"type\": \"command\", \"command\": \"echo\", \"args\": [\"hi\"]}. For shell form, set `command` to the full shell string: {\"type\": \"command\", \"command\": \"echo hi\"}.",
196301
- docLink: `${os$2}/hooks#exec-form-and-shell-form`
196417
+ docLink: `${os$1}/hooks#exec-form-and-shell-form`
196302
196418
  }
196303
196419
  },
196304
196420
  {
@@ -196313,7 +196429,7 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
196313
196429
  matches: (e) => e.code === "unrecognized_keys",
196314
196430
  tip: {
196315
196431
  suggestion: "Check for typos or refer to the documentation for valid fields",
196316
- docLink: `${os$2}/settings`
196432
+ docLink: `${os$1}/settings`
196317
196433
  }
196318
196434
  },
196319
196435
  {
@@ -196328,13 +196444,13 @@ var os$2 = "https://code.claude.com/docs/en", kKe = [
196328
196444
  matches: (e) => e.path === "permissions.additionalDirectories" && e.code === "invalid_type",
196329
196445
  tip: {
196330
196446
  suggestion: "Must be an array of directory paths. Example: [\"~/projects\", \"/tmp/workspace\"]. You can also use --add-dir flag or /add-dir command",
196331
- docLink: `${os$2}/iam#working-directories`
196447
+ docLink: `${os$1}/iam#working-directories`
196332
196448
  }
196333
196449
  }
196334
196450
  ], AKe = {
196335
- permissions: `${os$2}/iam#configuring-permissions`,
196336
- env: `${os$2}/settings#environment-variables`,
196337
- hooks: `${os$2}/hooks`
196451
+ permissions: `${os$1}/iam#configuring-permissions`,
196452
+ env: `${os$1}/settings#environment-variables`,
196453
+ hooks: `${os$1}/hooks`
196338
196454
  };
196339
196455
  function GZ(e) {
196340
196456
  let t = kKe.find((r) => r.matches(e));
@@ -205021,6 +205137,48 @@ function applyPluginSkillPermissionsToDynamicTools(tools, settings) {
205021
205137
  });
205022
205138
  }
205023
205139
  //#endregion
205140
+ //#region src/github/forgeGitHubToolHandler.ts
205141
+ /**
205142
+ * Shared wiring for Forge's brokered GitHub tools.
205143
+ *
205144
+ * Both provider surfaces run the same handler: Codex exposes the tools
205145
+ * natively, Claude reaches them over in-process MCP (`GitHubMcpServer.ts`).
205146
+ * The auth binding, the write confirmation gate and the audit trail live here
205147
+ * so a new surface cannot accidentally omit one — the handler's own defaults
205148
+ * are deliberately inert (no audit, never confirmed), which is safe for tests
205149
+ * but wrong for a real turn.
205150
+ */
205151
+ function createForgeGitHubToolHandlerOptions(deps) {
205152
+ const { runWithRuntimeContext } = deps;
205153
+ return {
205154
+ broker: new GitHubBroker({
205155
+ resolveJwt: (auth) => runWithRuntimeContext(resolveCmmdJwtForSession({
205156
+ sessionId: auth.sessionId,
205157
+ logPrefix: deps.logPrefix,
205158
+ ...auth.subject !== void 0 ? { subject: auth.subject } : {},
205159
+ ...auth.forceRefresh !== void 0 ? { forceRefresh: auth.forceRefresh } : {}
205160
+ })),
205161
+ githubWriteIdentity: deps.githubWriteIdentity
205162
+ }),
205163
+ resolveAuth: async (threadId) => {
205164
+ const binding = await runWithRuntimeContext(readThreadAuthSession(threadId));
205165
+ return binding ? {
205166
+ sessionId: binding.sessionId,
205167
+ ...binding.subject ? { subject: binding.subject } : {}
205168
+ } : null;
205169
+ },
205170
+ recordAudit: (auditEvent) => runWithRuntimeContext(recordGitHubToolAuditEvent(auditEvent).pipe(asVoid)),
205171
+ createConfirmation: (confirmation) => runWithRuntimeContext(createGitHubToolConfirmation(confirmation)),
205172
+ isConfirmed: (confirmation) => runWithRuntimeContext(consumeApprovedOrLatestGitHubToolConfirmation({
205173
+ confirmationId: confirmation.confirmationId,
205174
+ threadId: confirmation.threadId,
205175
+ toolName: confirmation.toolName,
205176
+ request: confirmation.request
205177
+ })),
205178
+ bypassWriteConfirmation: deps.bypassWriteConfirmation
205179
+ };
205180
+ }
205181
+ //#endregion
205024
205182
  //#region src/provider/shellSafety.ts
205025
205183
  const SHELL_SAFE_COMMAND_PATH_PATTERN = /^[A-Za-z0-9_.\-/\\:]+$/;
205026
205184
  function isShellSafeCommandPath(command) {
@@ -206309,33 +206467,12 @@ const makeCodexAdapter = fn$1("makeCodexAdapter")(function* (options) {
206309
206467
  }));
206310
206468
  const browserToolEnvironmentId = yield* resolveBrowserToolEnvironmentId$1();
206311
206469
  const computerManager = resolveComputerManager(serverConfig);
206312
- const githubDynamicToolHandler = createCodexGitHubDynamicToolHandler({
206313
- broker: new GitHubBroker({
206314
- resolveJwt: (auth) => runWithRuntimeContext(resolveCmmdJwtForSession({
206315
- sessionId: auth.sessionId,
206316
- logPrefix: "codex-github",
206317
- ...auth.subject !== void 0 ? { subject: auth.subject } : {},
206318
- ...auth.forceRefresh !== void 0 ? { forceRefresh: auth.forceRefresh } : {}
206319
- })),
206320
- githubWriteIdentity: settings.githubWriteIdentity
206321
- }),
206322
- resolveAuth: async (threadId) => {
206323
- const binding = await runWithRuntimeContext(readThreadAuthSession(threadId));
206324
- return binding ? {
206325
- sessionId: binding.sessionId,
206326
- ...binding.subject ? { subject: binding.subject } : {}
206327
- } : null;
206328
- },
206329
- recordAudit: (auditEvent) => runWithRuntimeContext(recordGitHubToolAuditEvent(auditEvent).pipe(asVoid)),
206330
- createConfirmation: (confirmation) => runWithRuntimeContext(createGitHubToolConfirmation(confirmation)),
206331
- isConfirmed: (confirmation) => runWithRuntimeContext(consumeApprovedOrLatestGitHubToolConfirmation({
206332
- confirmationId: confirmation.confirmationId,
206333
- threadId: confirmation.threadId,
206334
- toolName: confirmation.toolName,
206335
- request: confirmation.request
206336
- })),
206470
+ const githubDynamicToolHandler = createCodexGitHubDynamicToolHandler(createForgeGitHubToolHandlerOptions({
206471
+ runWithRuntimeContext,
206472
+ githubWriteIdentity: settings.githubWriteIdentity,
206473
+ logPrefix: "codex-github",
206337
206474
  bypassWriteConfirmation: input.runtimeMode === "full-access"
206338
- });
206475
+ }));
206339
206476
  const cmmdConnectorDynamicToolHandler = createCodexCmmdConnectorDynamicToolHandler({ resolveAuth: async (threadId) => {
206340
206477
  const binding = await runWithRuntimeContext(readThreadAuthSession(threadId));
206341
206478
  if (!binding) return null;
@@ -207879,6 +208016,62 @@ function createDevServerMcpServer(deps, threadId) {
207879
208016
  });
207880
208017
  }
207881
208018
  //#endregion
208019
+ //#region src/github/GitHubMcpServer.ts
208020
+ /**
208021
+ * Brokered Forge GitHub tools, exposed to the Claude surface (in-process MCP).
208022
+ *
208023
+ * The Codex app-server consumes these tools as native dynamic tools; Claude
208024
+ * reaches them through MCP instead. Both surfaces dispatch the SAME handler
208025
+ * (`createCodexGitHubDynamicToolHandler`), so auth resolution, the write
208026
+ * confirmation gate and the audit trail are shared rather than reimplemented
208027
+ * per provider — this module only adapts descriptor + result shapes.
208028
+ *
208029
+ * Without it a Claude agent has no brokered push path at all and falls back to
208030
+ * raw `git`, which the runtime deliberately blocks via `GIT_ASKPASS=/bin/false`.
208031
+ *
208032
+ * Result envelopes are relayed verbatim as tool content: the web approval card
208033
+ * is built by scanning tool results for `userActionRequired`, so summarising or
208034
+ * reshaping the payload here would silently strip the user's ability to approve
208035
+ * a write.
208036
+ */
208037
+ const GITHUB_MCP_SERVER_NAME = "forge-github";
208038
+ /** Joins the brokered result's content items back into a single text payload. */
208039
+ function readResultText(contentItems) {
208040
+ return contentItems.map((item) => item.text).filter((text) => typeof text === "string").join("\n");
208041
+ }
208042
+ /**
208043
+ * Factored out of `createGitHubMcpServer` (mirroring the Sidekick tools server)
208044
+ * so dispatch and envelope handling are testable without the SDK's `tool()` /
208045
+ * `createSdkMcpServer` machinery.
208046
+ */
208047
+ function buildGitHubToolHandlers(runBrokeredTool, threadId) {
208048
+ return createCodexGitHubDynamicTools().map((descriptor) => ({
208049
+ name: descriptor.name,
208050
+ description: descriptor.description,
208051
+ inputSchema: jsonSchemaToZodShape(descriptor.inputSchema),
208052
+ handler: async (args) => {
208053
+ const result = await runBrokeredTool({
208054
+ threadId,
208055
+ tool: descriptor.name,
208056
+ arguments: args
208057
+ });
208058
+ return {
208059
+ content: [{
208060
+ type: "text",
208061
+ text: readResultText(result.contentItems)
208062
+ }],
208063
+ ...result.success ? {} : { isError: true }
208064
+ };
208065
+ }
208066
+ }));
208067
+ }
208068
+ function createGitHubMcpServer(runBrokeredTool, threadId) {
208069
+ return z1e({
208070
+ name: GITHUB_MCP_SERVER_NAME,
208071
+ tools: buildGitHubToolHandlers(runBrokeredTool, threadId).map((entry) => U1e(entry.name, entry.description, entry.inputSchema, entry.handler))
208072
+ });
208073
+ }
208074
+ //#endregion
207882
208075
  //#region src/provider/providerAuthFailureCopy.ts
207883
208076
  /**
207884
208077
  * Rewrite provider auth failures into an action the user can actually take.
@@ -208183,6 +208376,7 @@ function buildClaudeMcpServers(input) {
208183
208376
  "forge-browser": createBrowserMcpServer(input.browserManager, input.threadId, browserToolScope(input.browserToolEnvironmentId)),
208184
208377
  "forge-dev-server": createDevServerMcpServer(input.devServerToolDeps, input.threadId),
208185
208378
  "cmmd-context": createCmmdContextMcpServer(input.threadId, input.resolveCmmdPat),
208379
+ [GITHUB_MCP_SERVER_NAME]: createGitHubMcpServer(input.runBrokeredGitHubTool, input.threadId),
208186
208380
  ...input.computerManager ? { [COMPUTER_MCP_SERVER_NAME]: createComputerMcpServer(input.computerManager, input.threadId) } : {},
208187
208381
  ...input.cmmdSidekickTools ? { "cmmd-sidekick-tools": createCmmdSidekickToolsMcpServer(input.cmmdSidekickTools.session, input.cmmdSidekickTools.tools) } : {}
208188
208382
  };
@@ -210192,6 +210386,12 @@ const makeClaudeAdapter = fn$1("makeClaudeAdapter")(function* (options) {
210192
210386
  const permissionMode = permissionModeForRuntimeMode(input.runtimeMode);
210193
210387
  const settings = claudeQuerySettings(modelConfig.thinking, modelConfig.fastMode);
210194
210388
  const systemPrompt = buildClaudeSystemPrompt(modelConfig.endpointProfile, serverSettings.coauthorIncludeForge);
210389
+ const runBrokeredGitHubTool = createCodexGitHubDynamicToolHandler(createForgeGitHubToolHandlerOptions({
210390
+ runWithRuntimeContext: runWithSqlRuntimeContext,
210391
+ githubWriteIdentity: serverSettings.githubWriteIdentity,
210392
+ logPrefix: "claude-github",
210393
+ bypassWriteConfirmation: input.runtimeMode === "full-access"
210394
+ }));
210195
210395
  const queryRuntime = yield* createClaudeQueryRuntime(prompt, buildClaudeQueryOptions({
210196
210396
  cwd: input.cwd,
210197
210397
  effectiveApiModelId: modelConfig.effectiveApiModelId,
@@ -210211,7 +210411,8 @@ const makeClaudeAdapter = fn$1("makeClaudeAdapter")(function* (options) {
210211
210411
  computerManager,
210212
210412
  resolveCmmdPat,
210213
210413
  devServerToolDeps,
210214
- cmmdSidekickTools
210414
+ cmmdSidekickTools,
210415
+ runBrokeredGitHubTool
210215
210416
  }), threadId);
210216
210417
  const session = buildClaudeProviderSession({
210217
210418
  threadId,
@@ -260394,7 +260595,7 @@ var import_multicast_dns = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
260394
260595
  var dgram = __require("dgram");
260395
260596
  var thunky = require_thunky();
260396
260597
  var events = __require("events");
260397
- var os$1 = __require("os");
260598
+ var os = __require("os");
260398
260599
  var noop = function() {};
260399
260600
  module.exports = function(opts) {
260400
260601
  if (!opts) opts = {};
@@ -260525,14 +260726,14 @@ var import_multicast_dns = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
260525
260726
  return that;
260526
260727
  };
260527
260728
  function defaultInterface() {
260528
- var networks = os$1.networkInterfaces();
260729
+ var networks = os.networkInterfaces();
260529
260730
  var names = Object.keys(networks);
260530
260731
  for (var i = 0; i < names.length; i++) {
260531
260732
  var net = networks[names[i]];
260532
260733
  for (var j = 0; j < net.length; j++) {
260533
260734
  var iface = net[j];
260534
260735
  if (isIPv4(iface.family) && !iface.internal) {
260535
- if (os$1.platform() === "darwin" && names[i] === "en0") return iface.address;
260736
+ if (os.platform() === "darwin" && names[i] === "en0") return iface.address;
260536
260737
  return "0.0.0.0";
260537
260738
  }
260538
260739
  }
@@ -260540,7 +260741,7 @@ var import_multicast_dns = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
260540
260741
  return "127.0.0.1";
260541
260742
  }
260542
260743
  function allInterfaces() {
260543
- var networks = os$1.networkInterfaces();
260744
+ var networks = os.networkInterfaces();
260544
260745
  var names = Object.keys(networks);
260545
260746
  var res = [];
260546
260747
  for (var i = 0; i < names.length; i++) {
@@ -283125,7 +283326,9 @@ const ProviderCommandReactorLive = effect(ProviderCommandReactor, gen(function*
283125
283326
  projects: readModel.projects
283126
283327
  });
283127
283328
  if (!cwd) return "Forge could not resolve the project folder for this thread.";
283128
- if (serverConfig.forgeCmmdRuntimeMode === true && !isPathInsideAnyRoot(cwd, [serverConfig.cloudProjectsRoot, serverConfig.worktreesDir])) return "Forge blocked this agent turn because the project folder is outside the managed runtime workspace.";
283329
+ const isCloudExecutionRuntime = serverConfig.forgeCmmdRuntimeMode === true;
283330
+ const managedRoots = [serverConfig.cloudProjectsRoot, serverConfig.worktreesDir];
283331
+ if (isCloudExecutionRuntime && !isPathInsideAnyRoot(cwd, managedRoots)) return `Forge blocked this agent turn because the project folder is outside the managed runtime workspace. Folder: ${cwd}. Managed roots: ${managedRoots.join(", ")}.`;
283129
283332
  if (thread.anchorKind === "task" && project?.repositoryIdentity == null && !isGitWorkspace(cwd)) return "Forge created this task thread, but the project folder is not a Git repository yet. Import or link the repository before starting an agent turn.";
283130
283333
  return null;
283131
283334
  });
@@ -288483,6 +288686,7 @@ function executionEnvironmentCapabilities(serverConfig) {
288483
288686
  repositoryIdentity: true,
288484
288687
  pullRequests: isExecutionPlane,
288485
288688
  threadPullRequestLinking: isExecutionPlane,
288689
+ threadSettlement: isExecutionPlane,
288486
288690
  cloudMode: serverConfig.forgeCmmdRuntimeMode === true || isCloudShell,
288487
288691
  runtime: {
288488
288692
  topology: runtimeTopology(serverConfig),
@@ -310312,16 +310516,16 @@ const gitUrlCloneRouteLayer = add$1("POST", "/api/cloud/git/clone-url", gen(func
310312
310516
  //#endregion
310313
310517
  //#region src/server.ts
310314
310518
  const PtyAdapterLive = unwrap(gen(function* () {
310315
- if (typeof Bun !== "undefined") return (yield* promise(() => import("./BunPTY-D-Klry5N.mjs"))).layer;
310316
- else return (yield* promise(() => import("./NodePTY-BMUFdM93.mjs"))).layer;
310519
+ if (typeof Bun !== "undefined") return (yield* promise(() => import("./BunPTY-B7ThejfA.mjs"))).layer;
310520
+ else return (yield* promise(() => import("./NodePTY-RnitYPTs.mjs"))).layer;
310317
310521
  }));
310318
310522
  const HttpServerLive = unwrap(gen(function* () {
310319
310523
  const config = yield* ServerConfig;
310320
- if (typeof Bun !== "undefined") return (yield* promise(() => import("./BunHttpServer-BgNCpQzV.mjs"))).layer({
310524
+ if (typeof Bun !== "undefined") return (yield* promise(() => import("./BunHttpServer-C_855q3m.mjs"))).layer({
310321
310525
  port: config.port,
310322
310526
  ...config.host ? { hostname: config.host } : {}
310323
310527
  });
310324
- const [NodeHttpServer, NodeHttp] = yield* all([promise(() => import("./NodeHttpServer-C_wePPV0.mjs")), promise(() => import("node:http"))]);
310528
+ const [NodeHttpServer, NodeHttp] = yield* all([promise(() => import("./NodeHttpServer-DgD75IAg.mjs")), promise(() => import("node:http"))]);
310325
310529
  return NodeHttpServer.layer(NodeHttp.createServer, {
310326
310530
  host: config.host,
310327
310531
  port: config.port
@@ -310329,10 +310533,10 @@ const HttpServerLive = unwrap(gen(function* () {
310329
310533
  }));
310330
310534
  const PlatformServicesLive = unwrap(gen(function* () {
310331
310535
  if (typeof Bun !== "undefined") {
310332
- const { layer } = yield* promise(() => import("./BunServices-ChM4mYH9.mjs"));
310536
+ const { layer } = yield* promise(() => import("./BunServices-BFygTrvx.mjs"));
310333
310537
  return layer;
310334
310538
  } else {
310335
- const { layer } = yield* promise(() => import("./NodeServices-Bqqy4DuH.mjs").then((n) => n.t));
310539
+ const { layer } = yield* promise(() => import("./NodeServices-Da5rUDDE.mjs").then((n) => n.t));
310336
310540
  return layer;
310337
310541
  }
310338
310542
  }));
@@ -310398,7 +310602,7 @@ const MiscRuntimeLayerLive = mergeAll(AnalyticsServiceLayerLive, OpenLive, Serve
310398
310602
  const RuntimeDependenciesWithoutPullRequestsLive = ReactorLayerLive.pipe(provideMerge(CheckpointingLayerLive), provideMerge(GitLayerLive), provideMerge(OrchestrationLayerLive), provideMerge(ProviderLayerLive), provideMerge(TerminalLayerLive), provideMerge(AgentBrowserManagerLive), provideMerge(mergeAll(ThreadDevRuntimeLive, DevTunnelLive.pipe(provide$1(ThreadDevRuntimeLive)))), provideMerge(PersistenceLayerLive), provideMerge(KeybindingsLive), provideMerge(ProviderRegistryLive), provideMerge(mergeAll(ServerSettingsLive, UsageServiceLive.pipe(provide$1(ServerSettingsLive)))), provideMerge(WorkspaceLayerLive), provideMerge(WorkspaceReadinessStateLive), provideMerge(ProjectFaviconResolverLive), provideMerge(RepositoryIdentityResolverLive), provideMerge(ServerEnvironmentLive), provideMerge(AuthLayerLive), provideMerge(ServerSecretStoreLayerLive), provideMerge(mergeAll(CloudRedisCoordinationLive, CloudStateSyncLive.pipe(provide$1(PersistenceLayerLive)))), provideMerge(MiscRuntimeLayerLive));
310399
310603
  const RuntimeDependenciesLive = pullRequestServiceFactoryLayer.pipe(provideMerge(RuntimeDependenciesWithoutPullRequestsLive), provideMerge(cmmdProjectIdentityResolverLive.pipe(provide$1(RuntimeDependenciesWithoutPullRequestsLive))), provideMerge(pullRequestProviderRuntimeLive));
310400
310604
  const RuntimeServicesLive = ServerRuntimeStartupLive.pipe(provideMerge(RuntimeDependenciesLive));
310401
- const makeRoutesLayer = mergeAll(authBearerBootstrapRouteLayer, authBootstrapRouteLayer, authCommandBearerBootstrapRouteLayer, authCommandBootstrapRouteLayer, authCmmdOAuthDeviceRouteLayer, authCmmdOAuthTokenRouteLayer, authCmmdPasswordTokenRouteLayer, authClientsRevokeOthersRouteLayer, authClientsRevokeRouteLayer, authClientsRouteLayer, authLogoutRouteLayer, authPairingLinksRevokeRouteLayer, authPairingLinksRouteLayer, authPairingCredentialRouteLayer, authSessionRouteLayer, authWebSocketTokenRouteLayer, authWebLoginRouteLayer, authWebCallbackRouteLayer, desktopLocalWebBridgePublishRouteLayer, desktopLocalWebBridgeBootstrapRouteLayer, desktopRelayControlPlaneRouteLayer, apiDocsHtmlRouteLayer, apiDocsOpenApiRouteLayer, pulseSignalStateListRouteLayer, pulseSignalStateUpsertRouteLayer, cmmdProfileRouteLayer, cmmdCreateBrainDocRouteLayer, cmmdUpdateTaskRouteLayer, cmmdUpsertTaskPullRequestRouteLayer, ...cmmdPullRequestRouteLayers, cmmdAddTaskCommentRouteLayer, cmmdWorkIntakeRouteLayer, cmmdWsTokenRouteLayer, cmmdSearchTasksRouteLayer, cmmdGetTaskCommentsRouteLayer, cmmdGetProjectCommentsRouteLayer, cmmdAddProjectCommentRouteLayer, cmmdUpdateProjectRouteLayer, cmmdGetOrgMembersRouteLayer, cmmdSimHostsRouteLayer, cmmdSimLeaseReadRouteLayer, cmmdSimLeaseClaimRouteLayer, cmmdSimLeaseReleaseRouteLayer, cmmdSimLeaseRenewRouteLayer, cmmdUploadTaskAttachmentRouteLayer, cmmdGetTaskAttachmentsRouteLayer, cmmdUpdateTaskCommentRouteLayer, cmmdDeleteTaskCommentRouteLayer, cmmdGetProjectRepositoryRouteLayer, cmmdListProjectRepositoriesRouteLayer, cmmdArchiveTaskRouteLayer, cmmdUnarchiveTaskRouteLayer, cmmdListTasksRouteLayer, cmmdCreateTaskRouteLayer, cmmdListCampaignsRouteLayer, cmmdGetCampaignRouteLayer, cmmdCreateCampaignRouteLayer, cmmdUpdateCampaignRouteLayer, cmmdDeleteCampaignRouteLayer, cmmdListSavedViewsRouteLayer, cmmdCreateSavedViewRouteLayer, cmmdImportSavedViewRouteLayer, cmmdUpdateSavedViewRouteLayer, cmmdDeleteSavedViewRouteLayer, cmmdListProjectsRouteLayer, cmmdGetProjectRouteLayer, cmmdCreateProjectRouteLayer, cmmdDeleteProjectRouteLayer, cmmdMoveProjectRouteLayer, cmmdGetProjectMembersRouteLayer, cmmdListWorkspaceMembersRouteLayer, cmmdAddProjectMemberRouteLayer, cmmdGetProjectMilestonesRouteLayer, cmmdCreateProjectMilestoneRouteLayer, cmmdUpdateProjectMilestoneRouteLayer, cmmdDeleteProjectMilestoneRouteLayer, cmmdGetProjectUpdatesRouteLayer, cmmdCreateProjectUpdateRouteLayer, cmmdUpdateProjectUpdateRouteLayer, cmmdDeleteProjectUpdateRouteLayer, cmmdImproveProjectContentRouteLayer, cmmdCreateProjectTaskDraftRouteLayer, cmmdGetProjectTaskDraftRouteLayer, cmmdUpdateProjectTaskDraftRouteLayer, cmmdPreviewProjectTaskDraftRouteLayer, cmmdCommitProjectTaskDraftRouteLayer, cmmdDiscardProjectTaskDraftRouteLayer, cmmdGetProjectLeadPlanRouteLayer, cmmdActivateProjectLeadAuthorityRouteLayer, cmmdGetProjectLeadReadinessRouteLayer, cmmdGetProjectLeadCapabilitiesRouteLayer, cmmdGetProjectLeadSummaryRouteLayer, cmmdGetProjectLeadDetailRouteLayer, cmmdGetProjectLeadBriefingRouteLayer, cmmdListProjectLeadEventsRouteLayer, cmmdExplainProjectLeadRouteLayer, cmmdPauseProjectLeadRouteLayer, cmmdResumeProjectLeadRouteLayer, cmmdReserveProjectLeadTaskRouteLayer, cmmdReleaseProjectLeadReservationRouteLayer, cmmdReconcileProjectLeadRouteLayer, cmmdResolveProjectLeadAttentionRouteLayer, cmmdClaimProjectLeadControllerRouteLayer, cmmdRenewProjectLeadControllerClaimRouteLayer, cmmdYieldProjectLeadControllerClaimRouteLayer, cmmdAcknowledgeProjectLeadControllerEventRouteLayer, cmmdRecordProjectLeadControllerDecisionRouteLayer, cmmdListForgeAutomationPresetsRouteLayer, cmmdListUserForgeAutomationRulesRouteLayer, cmmdCreateUserForgeAutomationRuleRouteLayer, cmmdUpdateUserForgeAutomationRuleRouteLayer, cmmdListUserForgeAutomationRunsRouteLayer, cmmdStartUserForgeAutomationRunRouteLayer, cmmdListForgeAutomationRulesRouteLayer, cmmdCreateForgeAutomationRuleRouteLayer, cmmdUpdateForgeAutomationRuleRouteLayer, cmmdListForgeAutomationRunsRouteLayer, cmmdStartForgeAutomationRunRouteLayer, cmmdGetForgeAutomationRunRouteLayer, cmmdRetryForgeAutomationRunRouteLayer, cmmdCancelForgeAutomationRunRouteLayer, cmmdApproveForgeAutomationEscalationRouteLayer, cmmdRejectForgeAutomationEscalationRouteLayer, cmmdListProjectAgentMembersRouteLayer, cmmdCreateProjectAgentMemberRouteLayer, cmmdGetProjectAgentMemberRouteLayer, cmmdRenameProjectAgentMemberRouteLayer, cmmdRetireProjectAgentMemberRouteLayer, cmmdUpdateProjectAgentMemberAvatarRouteLayer, cmmdListProjectAgentMemberInstancesRouteLayer, cmmdPreviewProjectAgentMemberConsolidationRouteLayer, cmmdApplyProjectAgentMemberConsolidationRouteLayer, cmmdPutProjectTaskAssignmentRouteLayer, cmmdListProjectBoardRouteLayer, cmmdGetProjectTaskWorkflowRouteLayer, cmmdUpdateProjectTaskWorkflowRouteLayer, cmmdCreateProjectBoardTaskRouteLayer, cmmdUpdateProjectBoardTaskRouteLayer, cmmdUpdateProjectBoardTaskStatusRouteLayer, cmmdListTaskExecutionOptionsRouteLayer, cmmdCreateTaskWorkSessionRouteLayer, cmmdListProjectWorkSessionsRouteLayer, cmmdGetWorkSessionRouteLayer, cmmdUpdateWorkSessionRouteLayer, cmmdAttachWorkSessionThreadRouteLayer, cmmdListTaskConversationsRouteLayer, cmmdLinkTaskConversationRouteLayer, cmmdGetTaskHistoryRouteLayer, cmmdGetTaskConversationRouteLayer, cmmdSpawnForgeThreadFromBoardTaskRouteLayer, cmmdListCenterBoardRouteLayer, cmmdCreateCenterBoardTaskRouteLayer, cmmdCreateFeedbackRouteLayer, cmmdUpdateCenterBoardTaskRouteLayer, cmmdMoveCenterBoardTaskRouteLayer, cmmdMoveProjectBoardTaskRouteLayer, cmmdArchiveProjectBoardTaskRouteLayer, cmmdUnarchiveProjectBoardTaskRouteLayer, cmmdArchiveCenterBoardTaskRouteLayer, cmmdUnarchiveCenterBoardTaskRouteLayer, cmmdBootstrapRouteLayer, cmmdGetAccountPreferencesRouteLayer, cmmdUpdateAccountPreferencesRouteLayer, cmmdGetOrgProviderPolicyRouteLayer, cmmdListChatsRouteLayer, cmmdGetChatRouteLayer, cmmdListDevicesRouteLayer, runtimeReplicationStatusRouteLayer, cmmdRegisterDeviceRouteLayer, cmmdHeartbeatRuntimeRouteLayer, cmmdGrantRuntimeAccessRouteLayer, cmmdRevokeRuntimeAccessRouteLayer, cmmdCreateRelayControlRouteLayer, cmmdCreateRelayActionGrantRouteLayer, cmmdReplaceRuntimeInventoryRouteLayer, cmmdListRuntimeInventoryRouteLayer, cmmdGetRuntimeDiagnosticsRouteLayer, cmmdProvisionAuthRuntimeRouteLayer, cmmdGetAuthRuntimeRouteLayer, cmmdDestroyAuthRuntimeRouteLayer, cmmdConnectAuthRuntimeRouteLayer, cmmdGetProviderAccountsRouteLayer, cmmdDeleteProviderAccountRouteLayer, cmmdSetProviderAccountDefaultRouteLayer, cmmdGetProviderUsageRouteLayer, cmmdRefreshProviderUsageRouteLayer, cmmdGetUserCodexCredentialRouteLayer, cmmdDeleteUserCodexCredentialRouteLayer, cmmdGetUserClaudeCredentialRouteLayer, cmmdDeleteUserClaudeCredentialRouteLayer, cmmdGetClaudeRuntimeReadinessRouteLayer, cmmdAppendRuntimeThreadEventsRouteLayer, cmmdGetRuntimeThreadReplicaRouteLayer, cmmdRenameDeviceRouteLayer, cmmdRevokeDeviceRouteLayer, cmmdInstallConnectorRouteLayer, cmmdListConnectorsRouteLayer, cmmdForgeCloudProjectsListRouteLayer, cmmdForgeCloudProjectsEventsRouteLayer, cmmdForgeCloudProjectRegisterRouteLayer, cmmdForgeCloudProjectUnregisterRouteLayer, cmmdForgeCloudProjectLifecyclePreflightRouteLayer, cmmdForgeCloudProjectRemovalRouteLayer, cmmdForgeCloudProjectRemovalReceiptRouteLayer, cmmdForgeRuntimesEnsureRouteLayer, cmmdForgeRuntimesConnectRouteLayer, ownerRuntimeCodexReadinessRouteLayer, cmmdForgeRuntimesStatusRouteLayer, cmmdForgeRuntimesStartRouteLayer, cmmdForgeRuntimesStopRouteLayer, cmmdForgeRuntimesRecycleRouteLayer, cmmdForgeRuntimesUpdateCommitRouteLayer, cmmdForgeRuntimesDestroyRouteLayer, cmmdGetTaskRouteLayer, commandUpdateTaskRouteLayer, mobileProviderCatalogRouteLayer, cmmdUsageSummaryRouteLayer, cmmdBillingRouteLayer, cmmdBillingSeriesRouteLayer, attachmentsRouteLayer, orchestrationDispatchRouteLayer, orchestrationCmmdWorkRunEventRouteLayer, orchestrationAutomationStartThreadRouteLayer, orchestrationAutomationRebindRouteLayer, orchestrationAutomationTerminalReconcileRouteLayer, mobileGitRunStackedActionRouteLayer, pullRequestDiffRouteLayer, orchestrationSnapshotRouteLayer, localAutomationListRouteLayer, localAutomationCreateRouteLayer, localAutomationUpdateRouteLayer, localAutomationDeleteRouteLayer, localAutomationRunRouteLayer, otlpTracesProxyRouteLayer, devTunnelProxyRouteLayer, devTunnelLocalPortProxyRouteLayer, projectFaviconRouteLayer, serverEnvironmentRouteLayer, browserWebRtcReadinessRouteLayer, staticAndDevRouteLayer, githubStatusRouteLayer, githubAuthorizeUrlRouteLayer, githubDisconnectRouteLayer, githubReposRouteLayer, githubCloneRouteLayer, githubCloneJobStartRouteLayer, githubCloneJobStatusRouteLayer, githubRefreshCredentialsRouteLayer, githubToolConfirmationApproveRouteLayer, projectLinkGetRouteLayer, projectLinkListRouteLayer, projectLinkSetRouteLayer, projectLinkDeleteRouteLayer, cmmdWorkspacesRouteLayer, cmmdCampaignsRouteLayer, cmmdProjectLinksRouteLayer, cmmdEnsureGitHubProjectContextRouteLayer, cmmdProjectRepositoryEnsureRouteLayer, cmmdProjectsGetRouteLayer, cmmdProjectsCreateRouteLayer, workspaceReadinessRouteLayer, runtimeLivenessRouteLayer, claudeNativeGenerationProofRouteLayer, codexRuntimeProviderReadinessRouteLayer, runtimeDiagnosticsRouteLayer, cloudFoldersRouteLayer, cloudProjectCreateRouteLayer, gitUrlCloneRouteLayer, websocketRpcRouteLayer).pipe(provide$1(browserApiCorsLayer));
310605
+ const makeRoutesLayer = mergeAll(authBearerBootstrapRouteLayer, authBootstrapRouteLayer, authCommandBearerBootstrapRouteLayer, authCommandBootstrapRouteLayer, authOAuthTokenExchangeRouteLayer, authCmmdOAuthDeviceRouteLayer, authCmmdOAuthTokenRouteLayer, authCmmdPasswordTokenRouteLayer, authClientsRevokeOthersRouteLayer, authClientsRevokeRouteLayer, authClientsRouteLayer, authLogoutRouteLayer, authPairingLinksRevokeRouteLayer, authPairingLinksRouteLayer, authPairingCredentialRouteLayer, authSessionRouteLayer, authWebSocketTokenRouteLayer, authWebLoginRouteLayer, authWebCallbackRouteLayer, desktopLocalWebBridgePublishRouteLayer, desktopLocalWebBridgeBootstrapRouteLayer, desktopRelayControlPlaneRouteLayer, apiDocsHtmlRouteLayer, apiDocsOpenApiRouteLayer, pulseSignalStateListRouteLayer, pulseSignalStateUpsertRouteLayer, cmmdProfileRouteLayer, cmmdCreateBrainDocRouteLayer, cmmdUpdateTaskRouteLayer, cmmdUpsertTaskPullRequestRouteLayer, ...cmmdPullRequestRouteLayers, cmmdAddTaskCommentRouteLayer, cmmdWorkIntakeRouteLayer, cmmdWsTokenRouteLayer, cmmdSearchTasksRouteLayer, cmmdGetTaskCommentsRouteLayer, cmmdGetProjectCommentsRouteLayer, cmmdAddProjectCommentRouteLayer, cmmdUpdateProjectRouteLayer, cmmdGetOrgMembersRouteLayer, cmmdSimHostsRouteLayer, cmmdSimLeaseReadRouteLayer, cmmdSimLeaseClaimRouteLayer, cmmdSimLeaseReleaseRouteLayer, cmmdSimLeaseRenewRouteLayer, cmmdUploadTaskAttachmentRouteLayer, cmmdGetTaskAttachmentsRouteLayer, cmmdUpdateTaskCommentRouteLayer, cmmdDeleteTaskCommentRouteLayer, cmmdGetProjectRepositoryRouteLayer, cmmdListProjectRepositoriesRouteLayer, cmmdArchiveTaskRouteLayer, cmmdUnarchiveTaskRouteLayer, cmmdListTasksRouteLayer, cmmdCreateTaskRouteLayer, cmmdListCampaignsRouteLayer, cmmdGetCampaignRouteLayer, cmmdCreateCampaignRouteLayer, cmmdUpdateCampaignRouteLayer, cmmdDeleteCampaignRouteLayer, cmmdListSavedViewsRouteLayer, cmmdCreateSavedViewRouteLayer, cmmdImportSavedViewRouteLayer, cmmdUpdateSavedViewRouteLayer, cmmdDeleteSavedViewRouteLayer, cmmdListProjectsRouteLayer, cmmdGetProjectRouteLayer, cmmdCreateProjectRouteLayer, cmmdDeleteProjectRouteLayer, cmmdMoveProjectRouteLayer, cmmdGetProjectMembersRouteLayer, cmmdListWorkspaceMembersRouteLayer, cmmdAddProjectMemberRouteLayer, cmmdGetProjectMilestonesRouteLayer, cmmdCreateProjectMilestoneRouteLayer, cmmdUpdateProjectMilestoneRouteLayer, cmmdDeleteProjectMilestoneRouteLayer, cmmdGetProjectUpdatesRouteLayer, cmmdCreateProjectUpdateRouteLayer, cmmdUpdateProjectUpdateRouteLayer, cmmdDeleteProjectUpdateRouteLayer, cmmdImproveProjectContentRouteLayer, cmmdCreateProjectTaskDraftRouteLayer, cmmdGetProjectTaskDraftRouteLayer, cmmdUpdateProjectTaskDraftRouteLayer, cmmdPreviewProjectTaskDraftRouteLayer, cmmdCommitProjectTaskDraftRouteLayer, cmmdDiscardProjectTaskDraftRouteLayer, cmmdGetProjectLeadPlanRouteLayer, cmmdActivateProjectLeadAuthorityRouteLayer, cmmdGetProjectLeadReadinessRouteLayer, cmmdGetProjectLeadCapabilitiesRouteLayer, cmmdGetProjectLeadSummaryRouteLayer, cmmdGetProjectLeadDetailRouteLayer, cmmdGetProjectLeadBriefingRouteLayer, cmmdListProjectLeadEventsRouteLayer, cmmdExplainProjectLeadRouteLayer, cmmdPauseProjectLeadRouteLayer, cmmdResumeProjectLeadRouteLayer, cmmdReserveProjectLeadTaskRouteLayer, cmmdReleaseProjectLeadReservationRouteLayer, cmmdReconcileProjectLeadRouteLayer, cmmdResolveProjectLeadAttentionRouteLayer, cmmdClaimProjectLeadControllerRouteLayer, cmmdRenewProjectLeadControllerClaimRouteLayer, cmmdYieldProjectLeadControllerClaimRouteLayer, cmmdAcknowledgeProjectLeadControllerEventRouteLayer, cmmdRecordProjectLeadControllerDecisionRouteLayer, cmmdListForgeAutomationPresetsRouteLayer, cmmdListUserForgeAutomationRulesRouteLayer, cmmdCreateUserForgeAutomationRuleRouteLayer, cmmdUpdateUserForgeAutomationRuleRouteLayer, cmmdListUserForgeAutomationRunsRouteLayer, cmmdStartUserForgeAutomationRunRouteLayer, cmmdListForgeAutomationRulesRouteLayer, cmmdCreateForgeAutomationRuleRouteLayer, cmmdUpdateForgeAutomationRuleRouteLayer, cmmdListForgeAutomationRunsRouteLayer, cmmdStartForgeAutomationRunRouteLayer, cmmdGetForgeAutomationRunRouteLayer, cmmdRetryForgeAutomationRunRouteLayer, cmmdCancelForgeAutomationRunRouteLayer, cmmdApproveForgeAutomationEscalationRouteLayer, cmmdRejectForgeAutomationEscalationRouteLayer, cmmdListProjectAgentMembersRouteLayer, cmmdCreateProjectAgentMemberRouteLayer, cmmdGetProjectAgentMemberRouteLayer, cmmdRenameProjectAgentMemberRouteLayer, cmmdRetireProjectAgentMemberRouteLayer, cmmdUpdateProjectAgentMemberAvatarRouteLayer, cmmdListProjectAgentMemberInstancesRouteLayer, cmmdPreviewProjectAgentMemberConsolidationRouteLayer, cmmdApplyProjectAgentMemberConsolidationRouteLayer, cmmdPutProjectTaskAssignmentRouteLayer, cmmdListProjectBoardRouteLayer, cmmdGetProjectTaskWorkflowRouteLayer, cmmdUpdateProjectTaskWorkflowRouteLayer, cmmdCreateProjectBoardTaskRouteLayer, cmmdUpdateProjectBoardTaskRouteLayer, cmmdUpdateProjectBoardTaskStatusRouteLayer, cmmdListTaskExecutionOptionsRouteLayer, cmmdCreateTaskWorkSessionRouteLayer, cmmdListProjectWorkSessionsRouteLayer, cmmdGetWorkSessionRouteLayer, cmmdUpdateWorkSessionRouteLayer, cmmdAttachWorkSessionThreadRouteLayer, cmmdListTaskConversationsRouteLayer, cmmdLinkTaskConversationRouteLayer, cmmdGetTaskHistoryRouteLayer, cmmdGetTaskConversationRouteLayer, cmmdSpawnForgeThreadFromBoardTaskRouteLayer, cmmdListCenterBoardRouteLayer, cmmdCreateCenterBoardTaskRouteLayer, cmmdCreateFeedbackRouteLayer, cmmdUpdateCenterBoardTaskRouteLayer, cmmdMoveCenterBoardTaskRouteLayer, cmmdMoveProjectBoardTaskRouteLayer, cmmdArchiveProjectBoardTaskRouteLayer, cmmdUnarchiveProjectBoardTaskRouteLayer, cmmdArchiveCenterBoardTaskRouteLayer, cmmdUnarchiveCenterBoardTaskRouteLayer, cmmdBootstrapRouteLayer, cmmdGetAccountPreferencesRouteLayer, cmmdUpdateAccountPreferencesRouteLayer, cmmdGetOrgProviderPolicyRouteLayer, cmmdListChatsRouteLayer, cmmdGetChatRouteLayer, cmmdListDevicesRouteLayer, runtimeReplicationStatusRouteLayer, cmmdRegisterDeviceRouteLayer, cmmdHeartbeatRuntimeRouteLayer, cmmdGrantRuntimeAccessRouteLayer, cmmdRevokeRuntimeAccessRouteLayer, cmmdCreateRelayControlRouteLayer, cmmdCreateRelayActionGrantRouteLayer, cmmdReplaceRuntimeInventoryRouteLayer, cmmdListRuntimeInventoryRouteLayer, cmmdGetRuntimeDiagnosticsRouteLayer, cmmdProvisionAuthRuntimeRouteLayer, cmmdGetAuthRuntimeRouteLayer, cmmdDestroyAuthRuntimeRouteLayer, cmmdConnectAuthRuntimeRouteLayer, cmmdGetProviderAccountsRouteLayer, cmmdDeleteProviderAccountRouteLayer, cmmdSetProviderAccountDefaultRouteLayer, cmmdGetProviderUsageRouteLayer, cmmdRefreshProviderUsageRouteLayer, cmmdGetUserCodexCredentialRouteLayer, cmmdDeleteUserCodexCredentialRouteLayer, cmmdGetUserClaudeCredentialRouteLayer, cmmdDeleteUserClaudeCredentialRouteLayer, cmmdGetClaudeRuntimeReadinessRouteLayer, cmmdAppendRuntimeThreadEventsRouteLayer, cmmdGetRuntimeThreadReplicaRouteLayer, cmmdRenameDeviceRouteLayer, cmmdRevokeDeviceRouteLayer, cmmdInstallConnectorRouteLayer, cmmdListConnectorsRouteLayer, cmmdForgeCloudProjectsListRouteLayer, cmmdForgeCloudProjectsEventsRouteLayer, cmmdForgeCloudProjectRegisterRouteLayer, cmmdForgeCloudProjectUnregisterRouteLayer, cmmdForgeCloudProjectLifecyclePreflightRouteLayer, cmmdForgeCloudProjectRemovalRouteLayer, cmmdForgeCloudProjectRemovalReceiptRouteLayer, cmmdForgeRuntimesEnsureRouteLayer, cmmdForgeRuntimesConnectRouteLayer, ownerRuntimeCodexReadinessRouteLayer, cmmdForgeRuntimesStatusRouteLayer, cmmdForgeRuntimesStartRouteLayer, cmmdForgeRuntimesStopRouteLayer, cmmdForgeRuntimesRecycleRouteLayer, cmmdForgeRuntimesUpdateCommitRouteLayer, cmmdForgeRuntimesDestroyRouteLayer, cmmdGetTaskRouteLayer, commandUpdateTaskRouteLayer, mobileProviderCatalogRouteLayer, cmmdUsageSummaryRouteLayer, cmmdBillingRouteLayer, cmmdBillingSeriesRouteLayer, attachmentsRouteLayer, orchestrationDispatchRouteLayer, orchestrationCmmdWorkRunEventRouteLayer, orchestrationAutomationStartThreadRouteLayer, orchestrationAutomationRebindRouteLayer, orchestrationAutomationTerminalReconcileRouteLayer, mobileGitRunStackedActionRouteLayer, pullRequestDiffRouteLayer, orchestrationSnapshotRouteLayer, localAutomationListRouteLayer, localAutomationCreateRouteLayer, localAutomationUpdateRouteLayer, localAutomationDeleteRouteLayer, localAutomationRunRouteLayer, otlpTracesProxyRouteLayer, devTunnelProxyRouteLayer, devTunnelLocalPortProxyRouteLayer, projectFaviconRouteLayer, serverEnvironmentRouteLayer, browserWebRtcReadinessRouteLayer, staticAndDevRouteLayer, githubStatusRouteLayer, githubAuthorizeUrlRouteLayer, githubDisconnectRouteLayer, githubReposRouteLayer, githubCloneRouteLayer, githubCloneJobStartRouteLayer, githubCloneJobStatusRouteLayer, githubRefreshCredentialsRouteLayer, githubToolConfirmationApproveRouteLayer, projectLinkGetRouteLayer, projectLinkListRouteLayer, projectLinkSetRouteLayer, projectLinkDeleteRouteLayer, cmmdWorkspacesRouteLayer, cmmdCampaignsRouteLayer, cmmdProjectLinksRouteLayer, cmmdEnsureGitHubProjectContextRouteLayer, cmmdProjectRepositoryEnsureRouteLayer, cmmdProjectsGetRouteLayer, cmmdProjectsCreateRouteLayer, workspaceReadinessRouteLayer, runtimeLivenessRouteLayer, claudeNativeGenerationProofRouteLayer, codexRuntimeProviderReadinessRouteLayer, runtimeDiagnosticsRouteLayer, cloudFoldersRouteLayer, cloudProjectCreateRouteLayer, gitUrlCloneRouteLayer, websocketRpcRouteLayer).pipe(provide$1(browserApiCorsLayer));
310402
310606
  const runServer = launch$1(unwrap(gen(function* () {
310403
310607
  const config = yield* ServerConfig;
310404
310608
  fixPath();
@@ -311328,7 +311532,7 @@ const connectLoginCommand = make$32("login", {
311328
311532
  })).json();
311329
311533
  },
311330
311534
  openBrowser: async (url) => {
311331
- const open = (await import("./open-FIgTDosf.mjs")).default;
311535
+ const open = (await import("./open-D8mGyWmt.mjs")).default;
311332
311536
  await open(url);
311333
311537
  return true;
311334
311538
  },