zl-code 0.0.36 → 0.0.38
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.
- package/dist/bin.mjs +426 -217
- package/dist/client/assets/{DiffPanel-5LyLOFND.js → DiffPanel-CbA0lyMN.js} +1 -1
- package/dist/client/assets/{FilePreviewPanel-sJEFZtPA.js → FilePreviewPanel-WxaLm2x8.js} +1 -1
- package/dist/client/assets/{PreviewPanel-DtFvdFzm.js → PreviewPanel-DrGv_2bj.js} +1 -1
- package/dist/client/assets/{angular-html-D1KZBnnN.js → angular-html--kuq-o35.js} +1 -1
- package/dist/client/assets/{angular-ts-DIPnxMgp.js → angular-ts-DUbIyxZV.js} +1 -1
- package/dist/client/assets/{apl-D7WuE84x.js → apl-DzbLF_cn.js} +1 -1
- package/dist/client/assets/{astro-B6kKguic.js → astro-DrzAM2k-.js} +1 -1
- package/dist/client/assets/{blade-BEpkeL_G.js → blade-D9DGF9jY.js} +1 -1
- package/dist/client/assets/{c-CH0EmX9V.js → c-DtElhf81.js} +1 -1
- package/dist/client/assets/{cobol-CHMuxv_r.js → cobol-BAnKTjoO.js} +1 -1
- package/dist/client/assets/{coffee-DDIp0oKC.js → coffee-CyOIDae4.js} +1 -1
- package/dist/client/assets/{cpp-UOJgRFuy.js → cpp-CR00Ib9Y.js} +1 -1
- package/dist/client/assets/{crystal-BUEhok04.js → crystal-CoF_vNjZ.js} +1 -1
- package/dist/client/assets/{css-B3_uOICV.js → css-DazqE3qB.js} +1 -1
- package/dist/client/assets/{edge--k_WlrcU.js → edge-Bt-EnWL-.js} +1 -1
- package/dist/client/assets/{elixir-BxbH5Tj6.js → elixir-DIKOe5-1.js} +1 -1
- package/dist/client/assets/{elm-BRFrpQvy.js → elm-CkRKcEJM.js} +1 -1
- package/dist/client/assets/{erb-AgxNm2gl.js → erb-D514IKEE.js} +1 -1
- package/dist/client/assets/{fileCommentAnnotations-CoUjMkx7.js → fileCommentAnnotations-C-6SKlA7.js} +1 -1
- package/dist/client/assets/{git-rebase-BN8L7thV.js → git-rebase-Cs9kM3B7.js} +1 -1
- package/dist/client/assets/{glimmer-js-BQqnIYtP.js → glimmer-js-Bl_zZ8X9.js} +1 -1
- package/dist/client/assets/{glimmer-ts-Dk520J05.js → glimmer-ts-_5GggQ4P.js} +1 -1
- package/dist/client/assets/{glsl-CXBvGEvV.js → glsl-DdP2PQ1H.js} +1 -1
- package/dist/client/assets/{graphql-DPTfyPU-.js → graphql-DdF4ifvq.js} +1 -1
- package/dist/client/assets/{hack-D2kvgcM6.js → hack-DwSmrwDZ.js} +1 -1
- package/dist/client/assets/{haml-D3Q8UbZb.js → haml-ZtgHlG5D.js} +1 -1
- package/dist/client/assets/{handlebars-FgxJXviC.js → handlebars-0Lpe5rZk.js} +1 -1
- package/dist/client/assets/{html-DFEF_FEi.js → html-CP8XOrbN.js} +1 -1
- package/dist/client/assets/{html-derivative-Bt1wp6ie.js → html-derivative-aLlGhBf4.js} +1 -1
- package/dist/client/assets/{http-ekKPViga.js → http-B3BQ69pa.js} +1 -1
- package/dist/client/assets/{hurl-BsUGZ_mM.js → hurl-DjaUEaUU.js} +1 -1
- package/dist/client/assets/{index-DUxSKJ9a.js → index-BB28ehNp.js} +175 -175
- package/dist/client/assets/{java-D75ZTRg6.js → java-PXetgjRd.js} +1 -1
- package/dist/client/assets/{javascript-BuxSmzzN.js → javascript-Bhkbc55q.js} +1 -1
- package/dist/client/assets/{jinja-CAlCLQ1X.js → jinja-DFp2is1d.js} +1 -1
- package/dist/client/assets/{jison-BoIMj6B8.js → jison-MAddt6xG.js} +1 -1
- package/dist/client/assets/{json-Drckalib.js → json-DASsYb7V.js} +1 -1
- package/dist/client/assets/{jsx-BVF760C2.js → jsx-CQTouUQ0.js} +1 -1
- package/dist/client/assets/{julia-3VG3a9E4.js → julia-DEggXQFO.js} +1 -1
- package/dist/client/assets/{just-CX2Ny1jW.js → just-CyIgH7GK.js} +1 -1
- package/dist/client/assets/{latex-BNT_2sh5.js → latex-DdY5K55G.js} +1 -1
- package/dist/client/assets/{liquid-CxtqUzyY.js → liquid-DQpFOQB4.js} +1 -1
- package/dist/client/assets/{lua-DGNqbIcQ.js → lua-Dbjg_gkj.js} +1 -1
- package/dist/client/assets/{marko-HNBW4Mse.js → marko-rEmiqy9K.js} +1 -1
- package/dist/client/assets/{mdc-B6akcKLW.js → mdc-igAX2Vzn.js} +1 -1
- package/dist/client/assets/{nginx-CuP3aFdJ.js → nginx-BH5fQobH.js} +1 -1
- package/dist/client/assets/{nim-C6BMxXAP.js → nim-BkclW6ZU.js} +1 -1
- package/dist/client/assets/{perl-CtiHANeY.js → perl-7xcEzAlE.js} +1 -1
- package/dist/client/assets/{php-B4KCsEWH.js → php-FUdj54DG.js} +1 -1
- package/dist/client/assets/{pug-BwgIZ7xE.js → pug-Cp8yxAtr.js} +1 -1
- package/dist/client/assets/{qml-DF5FEBGh.js → qml-CBX5kxc1.js} +1 -1
- package/dist/client/assets/{r-HmRal5qZ.js → r-CVOwi-4K.js} +1 -1
- package/dist/client/assets/{razor-0LTlmqZT.js → razor-BQRDvGH-.js} +1 -1
- package/dist/client/assets/{regexp-FeNrnMU6.js → regexp-DJbgY_K9.js} +1 -1
- package/dist/client/assets/{rst-CG4jcKP2.js → rst-DLmFc6sH.js} +1 -1
- package/dist/client/assets/{ruby-Ctdvczn7.js → ruby-CP0U86cQ.js} +1 -1
- package/dist/client/assets/{sas-CA6_z8ry.js → sas-Cc8RY9VN.js} +1 -1
- package/dist/client/assets/{scss-C6-ZJc1r.js → scss-CO4b1KRX.js} +1 -1
- package/dist/client/assets/{shellscript-DxWs5MoN.js → shellscript-DyTmpLeX.js} +1 -1
- package/dist/client/assets/{shellsession-CtYHskv1.js → shellsession-gpwvxB43.js} +1 -1
- package/dist/client/assets/{soy-BvZWelr_.js → soy-CkEJJ1Q0.js} +1 -1
- package/dist/client/assets/{sql-BEnXuxkV.js → sql-DJWiIAQs.js} +1 -1
- package/dist/client/assets/{stata-D_JBgbHA.js → stata-CKPpU4ZN.js} +1 -1
- package/dist/client/assets/{surrealql-CQ5s0XlW.js → surrealql-en8VJu5c.js} +1 -1
- package/dist/client/assets/{svelte-DuY5Of5i.js → svelte-Bjl-dlZG.js} +1 -1
- package/dist/client/assets/{templ-D2ckgcVx.js → templ-CDc8mKLN.js} +1 -1
- package/dist/client/assets/{tex-CfsUxQ2d.js → tex-CtoFuVjE.js} +1 -1
- package/dist/client/assets/textarea-B6w5I_Sb.js +44 -0
- package/dist/client/assets/{ts-tags-euxxwUKs.js → ts-tags-IQlQNdl1.js} +1 -1
- package/dist/client/assets/{tsx-Tsh6OPxm.js → tsx-DDnPQ-xF.js} +1 -1
- package/dist/client/assets/{twig-1U-_3Mg0.js → twig-DFaAuo8e.js} +1 -1
- package/dist/client/assets/{typescript-OnxEKtXO.js → typescript-BI4vm52r.js} +1 -1
- package/dist/client/assets/{vue-N5PdcfLG.js → vue-7mPt8Le1.js} +1 -1
- package/dist/client/assets/{vue-html-BVnuZOLu.js → vue-html-CH2-iiEN.js} +1 -1
- package/dist/client/assets/{vue-vine-Bzk5QIOP.js → vue-vine-CseOsLcn.js} +1 -1
- package/dist/client/assets/{xml-hT3FPsLc.js → xml-CCkyUORJ.js} +1 -1
- package/dist/client/assets/{xsl-Eyu-GzyE.js → xsl-D3bmv3KI.js} +1 -1
- package/dist/client/assets/{yaml-C0_JxXni.js → yaml-CkMjxmpc.js} +1 -1
- package/dist/client/index.html +3 -3
- package/package.json +1 -1
- package/dist/client/assets/textarea-C0Fui5jj.js +0 -44
package/dist/bin.mjs
CHANGED
|
@@ -134,7 +134,7 @@ const closeServer = (server) => {
|
|
|
134
134
|
* NetService - Service tag for startup networking helpers.
|
|
135
135
|
*/
|
|
136
136
|
var NetService = class extends Context.Service()("@zl-tools/shared/Net/NetService") {};
|
|
137
|
-
const make$
|
|
137
|
+
const make$82 = () => {
|
|
138
138
|
/**
|
|
139
139
|
* Returns true when a TCP server can bind to {host, port}.
|
|
140
140
|
* `EADDRNOTAVAIL` is treated as available so IPv6-absent hosts don't fail
|
|
@@ -243,10 +243,10 @@ const make$81 = () => {
|
|
|
243
243
|
})
|
|
244
244
|
};
|
|
245
245
|
};
|
|
246
|
-
const layer$
|
|
246
|
+
const layer$78 = Layer.sync(NetService, make$82);
|
|
247
247
|
//#endregion
|
|
248
248
|
//#region package.json
|
|
249
|
-
var version = "0.0.
|
|
249
|
+
var version = "0.0.38";
|
|
250
250
|
//#endregion
|
|
251
251
|
//#region ../../packages/contracts/src/baseSchemas.ts
|
|
252
252
|
const TrimmedString = Schema$1.String.pipe(Schema$1.decodeTo(Schema$1.String, SchemaTransformation.transformOrFail({
|
|
@@ -639,6 +639,10 @@ const ExecutionEnvironmentCapabilities = Schema$1.Struct({
|
|
|
639
639
|
request (`assist.promptEnhancement.*`). Absent means the composer does
|
|
640
640
|
not offer prompt improvement. */
|
|
641
641
|
promptEnhancement: Schema$1.optionalKey(Schema$1.Boolean),
|
|
642
|
+
/** Server queues thread-title regeneration through the configured text
|
|
643
|
+
generation model (`assist.threadTitleRegeneration.*`). Absent means the
|
|
644
|
+
sidebar keeps manual rename as its only title action. */
|
|
645
|
+
threadTitleRegeneration: Schema$1.optionalKey(Schema$1.Boolean),
|
|
642
646
|
/** Server publishes its opt-out npm release advisory (`serverVersion.*`).
|
|
643
647
|
Absent means the WebUI must not subscribe or show an update notice. */
|
|
644
648
|
serverVersionAdvisory: Schema$1.optionalKey(Schema$1.Boolean),
|
|
@@ -6618,6 +6622,7 @@ const PromptEnhancementSettings = Schema$1.Struct({
|
|
|
6618
6622
|
model: DEFAULT_GIT_TEXT_GENERATION_MODEL
|
|
6619
6623
|
})))
|
|
6620
6624
|
});
|
|
6625
|
+
const TitleRegenerationCharactersLimit = Schema$1.Int.check(Schema$1.isGreaterThanOrEqualTo(10));
|
|
6621
6626
|
/**
|
|
6622
6627
|
* Agent sessions spawn builds and typechecks that can saturate every core. The
|
|
6623
6628
|
* server shares those cores, and a descheduled event loop is indistinguishable
|
|
@@ -6642,6 +6647,8 @@ const ServerSettings = Schema$1.Struct({
|
|
|
6642
6647
|
instanceId: ProviderInstanceId.make("codex"),
|
|
6643
6648
|
model: DEFAULT_GIT_TEXT_GENERATION_MODEL
|
|
6644
6649
|
}))),
|
|
6650
|
+
titleRegenerationPromptGuidelines: TrimmedString.pipe(Schema$1.withDecodingDefault(Effect.succeed(""))),
|
|
6651
|
+
titleRegenerationCharactersLimit: TitleRegenerationCharactersLimit.pipe(Schema$1.withDecodingDefault(Effect.succeed(40))),
|
|
6645
6652
|
starterSuggestions: StarterSuggestionsSettings.pipe(Schema$1.withDecodingDefault(Effect.succeed({}))),
|
|
6646
6653
|
promptEnhancement: PromptEnhancementSettings.pipe(Schema$1.withDecodingDefault(Effect.succeed({}))),
|
|
6647
6654
|
providers: Schema$1.Struct({
|
|
@@ -6731,6 +6738,8 @@ const ServerSettingsPatch = Schema$1.Struct({
|
|
|
6731
6738
|
newWorktreesStartFromOrigin: Schema$1.optionalKey(Schema$1.Boolean),
|
|
6732
6739
|
addProjectBaseDirectory: Schema$1.optionalKey(TrimmedString),
|
|
6733
6740
|
textGenerationModelSelection: Schema$1.optionalKey(ModelSelectionPatch),
|
|
6741
|
+
titleRegenerationPromptGuidelines: Schema$1.optionalKey(TrimmedString),
|
|
6742
|
+
titleRegenerationCharactersLimit: Schema$1.optionalKey(TitleRegenerationCharactersLimit),
|
|
6734
6743
|
starterSuggestions: Schema$1.optionalKey(Schema$1.Struct({
|
|
6735
6744
|
enabled: Schema$1.optionalKey(Schema$1.Boolean),
|
|
6736
6745
|
modelSelection: Schema$1.optionalKey(ModelSelectionPatch)
|
|
@@ -8666,6 +8675,29 @@ var PromptEnhancementError = class extends Schema$1.TaggedErrorClass()("PromptEn
|
|
|
8666
8675
|
}
|
|
8667
8676
|
};
|
|
8668
8677
|
//#endregion
|
|
8678
|
+
//#region ../../packages/contracts/src/threadTitleRegeneration.ts
|
|
8679
|
+
const ThreadTitleRegenerationQueueStatus = Schema$1.Literals(["queued", "processing"]);
|
|
8680
|
+
const ThreadTitleRegenerationQueueEntry = Schema$1.Struct({
|
|
8681
|
+
threadId: ThreadId,
|
|
8682
|
+
status: ThreadTitleRegenerationQueueStatus
|
|
8683
|
+
});
|
|
8684
|
+
const ThreadTitleRegenerationQueueSnapshot = Schema$1.Struct({ entries: Schema$1.Array(ThreadTitleRegenerationQueueEntry) });
|
|
8685
|
+
const ThreadTitleRegenerationEnqueueInput = Schema$1.Struct({ threadId: ThreadId });
|
|
8686
|
+
const ThreadTitleRegenerationEnqueueResult = Schema$1.Struct({
|
|
8687
|
+
status: Schema$1.Literals(["queued", "already-queued"]),
|
|
8688
|
+
queueStatus: ThreadTitleRegenerationQueueStatus,
|
|
8689
|
+
position: Schema$1.Int.check(Schema$1.isGreaterThanOrEqualTo(1))
|
|
8690
|
+
});
|
|
8691
|
+
var ThreadTitleRegenerationError = class extends Schema$1.TaggedErrorClass()("ThreadTitleRegenerationError", {
|
|
8692
|
+
threadId: ThreadId,
|
|
8693
|
+
reason: Schema$1.String,
|
|
8694
|
+
cause: Schema$1.optional(Schema$1.Defect())
|
|
8695
|
+
}) {
|
|
8696
|
+
get message() {
|
|
8697
|
+
return this.reason;
|
|
8698
|
+
}
|
|
8699
|
+
};
|
|
8700
|
+
//#endregion
|
|
8669
8701
|
//#region ../../packages/contracts/src/review.ts
|
|
8670
8702
|
const ReviewDiffPreviewInput = Schema$1.Struct({
|
|
8671
8703
|
cwd: TrimmedNonEmptyString,
|
|
@@ -8701,6 +8733,8 @@ const WS_METHODS = {
|
|
|
8701
8733
|
starterSuggestionsGet: "assist.starterSuggestions.get",
|
|
8702
8734
|
promptEnhancementGenerate: "assist.promptEnhancement.generate",
|
|
8703
8735
|
promptEnhancementCancel: "assist.promptEnhancement.cancel",
|
|
8736
|
+
threadTitleRegenerationGetQueue: "assist.threadTitleRegeneration.getQueue",
|
|
8737
|
+
threadTitleRegenerationEnqueue: "assist.threadTitleRegeneration.enqueue",
|
|
8704
8738
|
projectsList: "projects.list",
|
|
8705
8739
|
projectsAdd: "projects.add",
|
|
8706
8740
|
projectsRemove: "projects.remove",
|
|
@@ -8828,6 +8862,16 @@ const WsStarterSuggestionsGetRpc = Rpc.make(WS_METHODS.starterSuggestionsGet, {
|
|
|
8828
8862
|
success: StarterSuggestionsGetResult,
|
|
8829
8863
|
error: Schema$1.Union([StarterSuggestionsError, EnvironmentAuthorizationError])
|
|
8830
8864
|
});
|
|
8865
|
+
const WsThreadTitleRegenerationGetQueueRpc = Rpc.make(WS_METHODS.threadTitleRegenerationGetQueue, {
|
|
8866
|
+
payload: Schema$1.Struct({}),
|
|
8867
|
+
success: ThreadTitleRegenerationQueueSnapshot,
|
|
8868
|
+
error: EnvironmentAuthorizationError
|
|
8869
|
+
});
|
|
8870
|
+
const WsThreadTitleRegenerationEnqueueRpc = Rpc.make(WS_METHODS.threadTitleRegenerationEnqueue, {
|
|
8871
|
+
payload: ThreadTitleRegenerationEnqueueInput,
|
|
8872
|
+
success: ThreadTitleRegenerationEnqueueResult,
|
|
8873
|
+
error: Schema$1.Union([ThreadTitleRegenerationError, EnvironmentAuthorizationError])
|
|
8874
|
+
});
|
|
8831
8875
|
const WsPromptEnhancementGenerateRpc = Rpc.make(WS_METHODS.promptEnhancementGenerate, {
|
|
8832
8876
|
payload: PromptEnhancementGenerateInput,
|
|
8833
8877
|
success: PromptEnhancementGenerateResult,
|
|
@@ -9313,7 +9357,7 @@ const WsSubscribeProviderUsageRpc = Rpc.make(WS_METHODS.subscribeProviderUsage,
|
|
|
9313
9357
|
error: Schema$1.Union([ProviderUsageError, EnvironmentAuthorizationError]),
|
|
9314
9358
|
stream: true
|
|
9315
9359
|
});
|
|
9316
|
-
const WsRpcGroup = RpcGroup.make(WsAnalyticsGetTurnRpc, WsAnalyticsGetThreadRpc, WsAnalyticsGetThreadDigestRpc, WsAnalyticsGetThreadTurnBadgesRpc, WsAnalyticsGetOverviewRpc, WsAnalyticsGetActivityRpc, WsStarterSuggestionsGetRpc, WsPromptEnhancementGenerateRpc, WsPromptEnhancementCancelRpc, WsServerProbeRpc, WsServerGetConfigRpc, WsServerResetProductAnalyticsIdentityRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsServerRemoveKeybindingRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsUserStateSetThreadPinnedRpc, WsUserStateMarkThreadReadRpc, WsUserStateMarkThreadUnreadRpc, WsServerDiscoverSourceControlRpc, WsServerGetTraceDiagnosticsRpc, WsServerGetProcessDiagnosticsRpc, WsServerGetProcessResourceHistoryRpc, WsServerSignalProcessRpc, WsProviderUsageGetRpc, WsProviderUsageGetConfigurationRpc, WsProviderUsageUpdateInstanceRpc, WsProviderUsageUpsertSourceRpc, WsProviderUsageDeleteSourceRpc, WsProviderUsageTestSourceRpc, WsProviderUsageRefreshRpc, WsCloudGetRelayClientStatusRpc, WsCloudInstallRelayClientRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsProjectsListEntriesRpc, WsProjectsReadFileRpc, WsProjectsSearchEntriesRpc, WsProjectsWriteFileRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsAssetsCreateUrlRpc, WsAssetsCreateRemoteImageUrlRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsReviewGetDiffPreviewRpc, WsTerminalOpenRpc, WsTerminalAttachRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeTerminalMetadataRpc, WsPreviewOpenRpc, WsPreviewNavigateRpc, WsPreviewResizeRpc, WsPreviewPresentRpc, WsPreviewRefreshRpc, WsPreviewHistoryRpc, WsPreviewHumanInputRpc, WsPreviewCloseRpc, WsPreviewListRpc, WsPreviewReportStatusRpc, WsPreviewAutomationConnectRpc, WsPreviewAutomationRespondRpc, WsPreviewAutomationFocusHostRpc, WsSubscribePreviewEventsRpc, WsSubscribePreviewFramesRpc, WsSubscribeDiscoveredLocalServersRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeServerVersionAdvisoryRpc, WsServerRefreshVersionAdvisoryRpc, WsSubscribeSupervisedServerUpdateRpc, WsServerStartSupervisedUpdateRpc, WsSubscribeAuthAccessRpc, WsSubscribeProviderUsageRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationSearchThreadMessagesRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationGetArchivedShellSnapshotRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc);
|
|
9360
|
+
const WsRpcGroup = RpcGroup.make(WsAnalyticsGetTurnRpc, WsAnalyticsGetThreadRpc, WsAnalyticsGetThreadDigestRpc, WsAnalyticsGetThreadTurnBadgesRpc, WsAnalyticsGetOverviewRpc, WsAnalyticsGetActivityRpc, WsStarterSuggestionsGetRpc, WsPromptEnhancementGenerateRpc, WsPromptEnhancementCancelRpc, WsThreadTitleRegenerationGetQueueRpc, WsThreadTitleRegenerationEnqueueRpc, WsServerProbeRpc, WsServerGetConfigRpc, WsServerResetProductAnalyticsIdentityRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsServerRemoveKeybindingRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsUserStateSetThreadPinnedRpc, WsUserStateMarkThreadReadRpc, WsUserStateMarkThreadUnreadRpc, WsServerDiscoverSourceControlRpc, WsServerGetTraceDiagnosticsRpc, WsServerGetProcessDiagnosticsRpc, WsServerGetProcessResourceHistoryRpc, WsServerSignalProcessRpc, WsProviderUsageGetRpc, WsProviderUsageGetConfigurationRpc, WsProviderUsageUpdateInstanceRpc, WsProviderUsageUpsertSourceRpc, WsProviderUsageDeleteSourceRpc, WsProviderUsageTestSourceRpc, WsProviderUsageRefreshRpc, WsCloudGetRelayClientStatusRpc, WsCloudInstallRelayClientRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsProjectsListEntriesRpc, WsProjectsReadFileRpc, WsProjectsSearchEntriesRpc, WsProjectsWriteFileRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsAssetsCreateUrlRpc, WsAssetsCreateRemoteImageUrlRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsReviewGetDiffPreviewRpc, WsTerminalOpenRpc, WsTerminalAttachRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeTerminalMetadataRpc, WsPreviewOpenRpc, WsPreviewNavigateRpc, WsPreviewResizeRpc, WsPreviewPresentRpc, WsPreviewRefreshRpc, WsPreviewHistoryRpc, WsPreviewHumanInputRpc, WsPreviewCloseRpc, WsPreviewListRpc, WsPreviewReportStatusRpc, WsPreviewAutomationConnectRpc, WsPreviewAutomationRespondRpc, WsPreviewAutomationFocusHostRpc, WsSubscribePreviewEventsRpc, WsSubscribePreviewFramesRpc, WsSubscribeDiscoveredLocalServersRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeServerVersionAdvisoryRpc, WsServerRefreshVersionAdvisoryRpc, WsSubscribeSupervisedServerUpdateRpc, WsServerStartSupervisedUpdateRpc, WsSubscribeAuthAccessRpc, WsSubscribeProviderUsageRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationSearchThreadMessagesRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationGetArchivedShellSnapshotRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc);
|
|
9317
9361
|
//#endregion
|
|
9318
9362
|
//#region ../../packages/shared/src/oauthScope.ts
|
|
9319
9363
|
const OAUTH_SCOPE_TOKEN = /^[\u0021\u0023-\u005b\u005d-\u007e]+$/u;
|
|
@@ -9380,8 +9424,8 @@ var ServerConfig = class extends Context.Service()("@zl-tools/server/config/Serv
|
|
|
9380
9424
|
/** @deprecated Import and use `layerTest` from this module. */
|
|
9381
9425
|
static layerTest = (cwd, baseDirOrPrefix) => layerTest$2(cwd, baseDirOrPrefix);
|
|
9382
9426
|
};
|
|
9383
|
-
const make$
|
|
9384
|
-
const layer$
|
|
9427
|
+
const make$81 = (config) => ServerConfig.of(config);
|
|
9428
|
+
const layer$77 = (config) => Layer.succeed(ServerConfig, make$81(config));
|
|
9385
9429
|
const deriveServerPaths = Effect.fn(function* (baseDir, devUrl) {
|
|
9386
9430
|
const { join } = yield* Path.Path;
|
|
9387
9431
|
const stateDir = join(baseDir, devUrl !== void 0 ? "dev" : "userdata");
|
|
@@ -10519,7 +10563,7 @@ const issueHeadlessServeAccessInfo = Effect.fn("issueHeadlessServeAccessInfo")(f
|
|
|
10519
10563
|
//#endregion
|
|
10520
10564
|
//#region src/auth/EnvironmentAuthPolicy.ts
|
|
10521
10565
|
var EnvironmentAuthPolicy = class extends Context.Service()("@zl-tools/server/auth/EnvironmentAuthPolicy") {};
|
|
10522
|
-
const make$
|
|
10566
|
+
const make$80 = Effect.gen(function* () {
|
|
10523
10567
|
const config = yield* ServerConfig;
|
|
10524
10568
|
const publicUrl = yield* Config.url("ZL_CODE_PUBLIC_URL").pipe(Config.option);
|
|
10525
10569
|
const isRemoteReachable = Option.isSome(publicUrl) || isWildcardHost(config.host) || !isLoopbackHost(config.host);
|
|
@@ -10539,7 +10583,7 @@ const make$79 = Effect.gen(function* () {
|
|
|
10539
10583
|
};
|
|
10540
10584
|
return EnvironmentAuthPolicy.of({ getDescriptor: () => Effect.succeed(descriptor).pipe(Effect.withSpan("EnvironmentAuthPolicy.getDescriptor")) });
|
|
10541
10585
|
});
|
|
10542
|
-
const layer$
|
|
10586
|
+
const layer$76 = Layer.effect(EnvironmentAuthPolicy, make$80);
|
|
10543
10587
|
//#endregion
|
|
10544
10588
|
//#region src/persistence/Errors.ts
|
|
10545
10589
|
function summarizeSchemaIssue(issue) {
|
|
@@ -10669,7 +10713,7 @@ function toPersistenceSqlOrDecodeError$6(sqlOperation, decodeOperation, correlat
|
|
|
10669
10713
|
cause
|
|
10670
10714
|
});
|
|
10671
10715
|
}
|
|
10672
|
-
const make$
|
|
10716
|
+
const make$79 = Effect.gen(function* () {
|
|
10673
10717
|
const sql = yield* SqlClient.SqlClient;
|
|
10674
10718
|
const createPairingLinkRow = SqlSchema.void({
|
|
10675
10719
|
Request: CreateAuthPairingLinkInput,
|
|
@@ -10804,7 +10848,7 @@ const make$78 = Effect.gen(function* () {
|
|
|
10804
10848
|
getByCredential
|
|
10805
10849
|
};
|
|
10806
10850
|
});
|
|
10807
|
-
const layer$
|
|
10851
|
+
const layer$75 = Layer.effect(AuthPairingLinkRepository, make$79);
|
|
10808
10852
|
//#endregion
|
|
10809
10853
|
//#region src/auth/PairingGrantStore.ts
|
|
10810
10854
|
var UnknownBootstrapCredentialError = class extends Schema$1.TaggedErrorClass()("UnknownBootstrapCredentialError", {}) {
|
|
@@ -10898,7 +10942,7 @@ const DESKTOP_BOOTSTRAP_TTL_HOURS = Duration.hours(24);
|
|
|
10898
10942
|
const PAIRING_TOKEN_ALPHABET = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
|
|
10899
10943
|
const PAIRING_TOKEN_LENGTH = 12;
|
|
10900
10944
|
const PAIRING_TOKEN_REJECTION_LIMIT = Math.floor(256 / 32) * 32;
|
|
10901
|
-
const make$
|
|
10945
|
+
const make$78 = Effect.gen(function* () {
|
|
10902
10946
|
const crypto = yield* Crypto.Crypto;
|
|
10903
10947
|
const config = yield* ServerConfig;
|
|
10904
10948
|
const pairingLinks = yield* AuthPairingLinkRepository;
|
|
@@ -11095,7 +11139,7 @@ const make$77 = Effect.gen(function* () {
|
|
|
11095
11139
|
consume
|
|
11096
11140
|
});
|
|
11097
11141
|
});
|
|
11098
|
-
const layer$
|
|
11142
|
+
const layer$74 = Layer.effect(PairingGrantStore, make$78).pipe(Layer.provideMerge(layer$75));
|
|
11099
11143
|
//#endregion
|
|
11100
11144
|
//#region src/auth/ServerSecretStore.ts
|
|
11101
11145
|
const secretStoreErrorContext = {
|
|
@@ -11162,7 +11206,7 @@ const isSecretStoreError = Schema$1.is(SecretStoreError);
|
|
|
11162
11206
|
const isPlatformError = (value) => Predicate.isTagged(value, "PlatformError");
|
|
11163
11207
|
const isSecretAlreadyExistsError = (error) => "cause" in error && isPlatformError(error.cause) && error.cause.reason._tag === "AlreadyExists";
|
|
11164
11208
|
var ServerSecretStore = class extends Context.Service()("@zl-tools/server/auth/ServerSecretStore") {};
|
|
11165
|
-
const make$
|
|
11209
|
+
const make$77 = Effect.gen(function* () {
|
|
11166
11210
|
const crypto = yield* Crypto.Crypto;
|
|
11167
11211
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
11168
11212
|
const path = yield* Path.Path;
|
|
@@ -11232,7 +11276,7 @@ const make$76 = Effect.gen(function* () {
|
|
|
11232
11276
|
remove
|
|
11233
11277
|
});
|
|
11234
11278
|
});
|
|
11235
|
-
const layer$
|
|
11279
|
+
const layer$73 = Layer.effect(ServerSecretStore, make$77);
|
|
11236
11280
|
//#endregion
|
|
11237
11281
|
//#region src/persistence/AuthSessions.ts
|
|
11238
11282
|
const AuthSessionClientMetadataRecord = Schema$1.Struct({
|
|
@@ -11344,7 +11388,7 @@ function toPersistenceSqlOrDecodeError$5(sqlOperation, decodeOperation, correlat
|
|
|
11344
11388
|
cause
|
|
11345
11389
|
});
|
|
11346
11390
|
}
|
|
11347
|
-
const make$
|
|
11391
|
+
const make$76 = Effect.gen(function* () {
|
|
11348
11392
|
const sql = yield* SqlClient.SqlClient;
|
|
11349
11393
|
const createSessionRow = SqlSchema.void({
|
|
11350
11394
|
Request: CreateAuthSessionInput,
|
|
@@ -11478,7 +11522,7 @@ const make$75 = Effect.gen(function* () {
|
|
|
11478
11522
|
setLastConnectedAt
|
|
11479
11523
|
};
|
|
11480
11524
|
});
|
|
11481
|
-
const layer$
|
|
11525
|
+
const layer$72 = Layer.effect(AuthSessionRepository, make$76);
|
|
11482
11526
|
//#endregion
|
|
11483
11527
|
//#region src/auth/SessionStore.ts
|
|
11484
11528
|
var MalformedSessionTokenError = class extends Schema$1.TaggedErrorClass()("MalformedSessionTokenError", {}) {
|
|
@@ -11712,7 +11756,7 @@ function toAuthClientSession(input) {
|
|
|
11712
11756
|
current: false
|
|
11713
11757
|
};
|
|
11714
11758
|
}
|
|
11715
|
-
const make$
|
|
11759
|
+
const make$75 = Effect.gen(function* () {
|
|
11716
11760
|
const crypto = yield* Crypto.Crypto;
|
|
11717
11761
|
const serverConfig = yield* ServerConfig;
|
|
11718
11762
|
const secretStore = yield* ServerSecretStore;
|
|
@@ -12008,7 +12052,7 @@ const make$74 = Effect.gen(function* () {
|
|
|
12008
12052
|
markDisconnected
|
|
12009
12053
|
});
|
|
12010
12054
|
});
|
|
12011
|
-
const layer$
|
|
12055
|
+
const layer$71 = Layer.effect(SessionStore, make$75).pipe(Layer.provideMerge(layer$72));
|
|
12012
12056
|
//#endregion
|
|
12013
12057
|
//#region ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/cryptoNode.js
|
|
12014
12058
|
/**
|
|
@@ -17612,7 +17656,7 @@ function parseDpopToken(request) {
|
|
|
17612
17656
|
const token = header.slice(5).trim();
|
|
17613
17657
|
return token.length > 0 ? token : null;
|
|
17614
17658
|
}
|
|
17615
|
-
const make$
|
|
17659
|
+
const make$74 = Effect.gen(function* () {
|
|
17616
17660
|
const policy = yield* EnvironmentAuthPolicy;
|
|
17617
17661
|
const bootstrapCredentials = yield* PairingGrantStore;
|
|
17618
17662
|
const sessions = yield* SessionStore;
|
|
@@ -17818,9 +17862,9 @@ const make$73 = Effect.gen(function* () {
|
|
|
17818
17862
|
issueStartupPairingUrl
|
|
17819
17863
|
});
|
|
17820
17864
|
});
|
|
17821
|
-
const layer$
|
|
17822
|
-
const storageLayer = Layer.mergeAll(layer$
|
|
17823
|
-
const runtimeLayer = layer$
|
|
17865
|
+
const layer$70 = Layer.effect(EnvironmentAuth, make$74).pipe(Layer.provideMerge(layer$74), Layer.provideMerge(layer$71), Layer.provideMerge(layer$76));
|
|
17866
|
+
const storageLayer = Layer.mergeAll(layer$73, layerConfig);
|
|
17867
|
+
const runtimeLayer = layer$70.pipe(Layer.provideMerge(storageLayer));
|
|
17824
17868
|
//#endregion
|
|
17825
17869
|
//#region src/cliAuthFormat.ts
|
|
17826
17870
|
const newline = "\n";
|
|
@@ -18999,7 +19043,7 @@ const runWithEnvironmentAuth = (flags, run, options) => Effect.gen(function* ()
|
|
|
18999
19043
|
const minimumLogLevel = options?.quietLogs ? "Error" : config.logLevel;
|
|
19000
19044
|
return yield* Effect.gen(function* () {
|
|
19001
19045
|
return yield* run(yield* EnvironmentAuth);
|
|
19002
|
-
}).pipe(Effect.provide(Layer.mergeAll(runtimeLayer).pipe(Layer.provide(layer$
|
|
19046
|
+
}).pipe(Effect.provide(Layer.mergeAll(runtimeLayer).pipe(Layer.provide(layer$77(config)), Layer.provide(Layer.succeed(References.MinimumLogLevel, minimumLogLevel)))));
|
|
19003
19047
|
});
|
|
19004
19048
|
const ttlFlag$1 = Flag.string("ttl").pipe(Flag.withSchema(DurationFromString), Flag.withDescription("TTL, for example `5m`, `1h`, `30d`, or `15 minutes`."), Flag.optional);
|
|
19005
19049
|
const jsonFlag$1 = Flag.boolean("json").pipe(Flag.withDescription("Emit JSON instead of human-readable output."), Flag.withDefault(false));
|
|
@@ -19509,7 +19553,7 @@ const makePairServerConfig = Effect.fn("pair.makePairServerConfig")(function* (i
|
|
|
19509
19553
|
const { baseDir, variant, state } = input.target;
|
|
19510
19554
|
const devUrl = state.devUrl !== void 0 ? new URL(state.devUrl) : void 0;
|
|
19511
19555
|
const derivedPaths = yield* deriveServerPaths(baseDir, variant === "dev" ? DEV_VARIANT_PLACEHOLDER_URL : void 0);
|
|
19512
|
-
return make$
|
|
19556
|
+
return make$81({
|
|
19513
19557
|
logLevel: input.logLevel,
|
|
19514
19558
|
traceMinLevel: "Info",
|
|
19515
19559
|
traceTimingEnabled: false,
|
|
@@ -19591,7 +19635,7 @@ const mintPairingLink = Effect.fn("pair.mintPairingLink")(function* (input) {
|
|
|
19591
19635
|
label: Option.getOrElse(input.label, () => "zl-code pair"),
|
|
19592
19636
|
...Option.isSome(input.ttl) ? { ttl: input.ttl.value } : {}
|
|
19593
19637
|
});
|
|
19594
|
-
}).pipe(Effect.provide(runtimeLayer.pipe(Layer.provide(layer$
|
|
19638
|
+
}).pipe(Effect.provide(runtimeLayer.pipe(Layer.provide(layer$77(input.config)), Layer.provide(Layer.succeed(References.MinimumLogLevel, input.config.logLevel)))));
|
|
19595
19639
|
});
|
|
19596
19640
|
const ttlFlag = Flag.string("ttl").pipe(Flag.withSchema(DurationFromString), Flag.withDescription("Token TTL, for example `5m`, `1h`, or `15 minutes`. Defaults to 5 minutes."), Flag.optional);
|
|
19597
19641
|
const labelFlag = Flag.string("label").pipe(Flag.withDescription("Optional label shown in the server's connections list."), Flag.optional);
|
|
@@ -21627,7 +21671,7 @@ function stringToBytes$3(value) {
|
|
|
21627
21671
|
function bytesToString$4(value) {
|
|
21628
21672
|
return new TextDecoder().decode(value);
|
|
21629
21673
|
}
|
|
21630
|
-
const make$
|
|
21674
|
+
const make$73 = Effect.gen(function* () {
|
|
21631
21675
|
const crypto = yield* Crypto.Crypto;
|
|
21632
21676
|
const httpClient = (yield* HttpClient$1.HttpClient).pipe(HttpClient$1.filterStatusOk);
|
|
21633
21677
|
const secrets = yield* ServerSecretStore;
|
|
@@ -21738,7 +21782,7 @@ const make$72 = Effect.gen(function* () {
|
|
|
21738
21782
|
clear: revokeAndClear
|
|
21739
21783
|
});
|
|
21740
21784
|
});
|
|
21741
|
-
const layer$
|
|
21785
|
+
const layer$69 = Layer.effect(CloudCliTokenManager, make$73);
|
|
21742
21786
|
//#endregion
|
|
21743
21787
|
//#region src/cloud/relayTracing.ts
|
|
21744
21788
|
const relayClientTracingConfig = resolveRelayClientTracingConfig();
|
|
@@ -22014,12 +22058,12 @@ const runProcessCore = Effect.fn("processRunner.runProcessCore")(function* (spaw
|
|
|
22014
22058
|
stderrTruncated: stderr.truncated
|
|
22015
22059
|
};
|
|
22016
22060
|
});
|
|
22017
|
-
const make$
|
|
22061
|
+
const make$72 = Effect.fn("ProcessRunner.make")(function* () {
|
|
22018
22062
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
22019
22063
|
const run = (input) => finalizeRunProcess(runProcessCore(spawner, input), input);
|
|
22020
22064
|
return ProcessRunner.of({ run });
|
|
22021
22065
|
});
|
|
22022
|
-
const layer$
|
|
22066
|
+
const layer$68 = Layer.effect(ProcessRunner, make$72());
|
|
22023
22067
|
//#endregion
|
|
22024
22068
|
//#region src/environment/ServerEnvironmentLabel.ts
|
|
22025
22069
|
const ServerEnvironmentLabelCommandProbe = Schema$1.Literals(["macos-computer-name", "linux-pretty-hostname"]);
|
|
@@ -22253,7 +22297,7 @@ function selectSupervisedUpdateState(current, next) {
|
|
|
22253
22297
|
if (nextUpdatedAt === currentUpdatedAt && current.operationId !== null && next.operationId === null) return current;
|
|
22254
22298
|
return next;
|
|
22255
22299
|
}
|
|
22256
|
-
const make$
|
|
22300
|
+
const make$71 = Effect.gen(function* () {
|
|
22257
22301
|
const initial = yield* Effect.tryPromise({
|
|
22258
22302
|
try: () => requestSupervisor("status"),
|
|
22259
22303
|
catch: () => void 0
|
|
@@ -22274,7 +22318,7 @@ const make$70 = Effect.gen(function* () {
|
|
|
22274
22318
|
start
|
|
22275
22319
|
});
|
|
22276
22320
|
});
|
|
22277
|
-
const layer$
|
|
22321
|
+
const layer$67 = Layer.effect(SupervisedUpdateClient, make$71);
|
|
22278
22322
|
//#endregion
|
|
22279
22323
|
//#region src/environment/ServerEnvironment.ts
|
|
22280
22324
|
var ServerEnvironmentIdPersistenceError = class extends Schema$1.TaggedErrorClass()("ServerEnvironmentIdPersistenceError", {
|
|
@@ -22306,7 +22350,7 @@ function platformArch(architecture) {
|
|
|
22306
22350
|
default: return "other";
|
|
22307
22351
|
}
|
|
22308
22352
|
}
|
|
22309
|
-
const make$
|
|
22353
|
+
const make$70 = Effect.gen(function* () {
|
|
22310
22354
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
22311
22355
|
const path = yield* Path.Path;
|
|
22312
22356
|
const serverConfig = yield* ServerConfig;
|
|
@@ -22362,6 +22406,7 @@ const make$69 = Effect.gen(function* () {
|
|
|
22362
22406
|
userStateProfiles: true,
|
|
22363
22407
|
starterSuggestions: true,
|
|
22364
22408
|
promptEnhancement: true,
|
|
22409
|
+
threadTitleRegeneration: true,
|
|
22365
22410
|
remoteImageProxy: true,
|
|
22366
22411
|
serverVersionAdvisory: true,
|
|
22367
22412
|
serverVersionManualRefresh: true
|
|
@@ -22384,7 +22429,7 @@ const make$69 = Effect.gen(function* () {
|
|
|
22384
22429
|
* state. It intentionally has no fallback Layer.succeed value: callers must
|
|
22385
22430
|
* provide the external platform services and a ServerConfig.
|
|
22386
22431
|
*/
|
|
22387
|
-
const layer$
|
|
22432
|
+
const layer$66 = Layer.effect(ServerEnvironment, make$70).pipe(Layer.provide(layer$68));
|
|
22388
22433
|
//#endregion
|
|
22389
22434
|
//#region src/cli/cloud.ts
|
|
22390
22435
|
const jsonFlag = Flag.boolean("json").pipe(Flag.withDescription("Emit JSON instead of human-readable output."), Flag.withDefault(false));
|
|
@@ -22501,7 +22546,7 @@ const disconnectCloud = Effect.fn("cloud.cli.disconnect")(function* (options) {
|
|
|
22501
22546
|
const runCloudCommand = (flags, run, options) => Effect.gen(function* () {
|
|
22502
22547
|
const config = yield* resolveCliAuthConfig(flags, yield* GlobalFlag.LogLevel);
|
|
22503
22548
|
const minimumLogLevel = options?.quietLogs ? "Error" : config.logLevel;
|
|
22504
|
-
const runtimeLayer$1 = Layer.mergeAll(layer$
|
|
22549
|
+
const runtimeLayer$1 = Layer.mergeAll(layer$73, layer$69.pipe(Layer.provide(layer$73)), layerCloudflared({ baseDir: config.baseDir }), runtimeLayer, layer$66, headlessRelayClientTracingLayer).pipe(Layer.provideMerge(FetchHttpClient.layer), Layer.provideMerge(layer$77(config)), Layer.provide(Layer.succeed(References.MinimumLogLevel, minimumLogLevel)));
|
|
22505
22550
|
return yield* run.pipe(Effect.provide(runtimeLayer$1));
|
|
22506
22551
|
});
|
|
22507
22552
|
const cloudLoginCommand = Command.make("login", { ...projectLocationFlags }).pipe(Command.withDescription("Authorize the ZL Cloud CLI without enabling remote access."), Command.withHandler((flags) => runCloudCommand(flags, Effect.gen(function* () {
|
|
@@ -27591,7 +27636,7 @@ const resolveRepositoryIdentityFromCacheKey = Effect.fn("RepositoryIdentityResol
|
|
|
27591
27636
|
rootPath: cacheKey
|
|
27592
27637
|
}) : null;
|
|
27593
27638
|
});
|
|
27594
|
-
const make$
|
|
27639
|
+
const make$69 = Effect.fn("RepositoryIdentityResolver.make")(function* (options = {}) {
|
|
27595
27640
|
const processRunner = yield* ProcessRunner;
|
|
27596
27641
|
const repositoryIdentityCache = yield* Cache.makeWith((cacheKey) => resolveRepositoryIdentityFromCacheKey(cacheKey).pipe(Effect.provideService(ProcessRunner, processRunner)), {
|
|
27597
27642
|
capacity: options.cacheCapacity ?? DEFAULT_REPOSITORY_IDENTITY_CACHE_CAPACITY,
|
|
@@ -27606,7 +27651,7 @@ const make$68 = Effect.fn("RepositoryIdentityResolver.make")(function* (options
|
|
|
27606
27651
|
});
|
|
27607
27652
|
return RepositoryIdentityResolver.of({ resolve });
|
|
27608
27653
|
});
|
|
27609
|
-
const layer$
|
|
27654
|
+
const layer$65 = Layer.effect(RepositoryIdentityResolver, make$69()).pipe(Layer.provide(layer$68));
|
|
27610
27655
|
//#endregion
|
|
27611
27656
|
//#region src/orchestration/Layers/ProjectionSnapshotQuery.ts
|
|
27612
27657
|
const decodeReadModel = Schema$1.decodeUnknownEffect(OrchestrationReadModel);
|
|
@@ -29223,7 +29268,7 @@ const OrchestrationLayerLive = Layer.mergeAll(OrchestrationInfrastructureLayerLi
|
|
|
29223
29268
|
* @module ConfigFileWatcher
|
|
29224
29269
|
*/
|
|
29225
29270
|
var ConfigFileWatcher = class extends Context.Service()("@zl-tools/server/configFileWatcher") {};
|
|
29226
|
-
const make$
|
|
29271
|
+
const make$68 = Effect.fn("ConfigFileWatcher.make")(function* (watchDirectory) {
|
|
29227
29272
|
const { configDir } = yield* ServerConfig;
|
|
29228
29273
|
const changes = yield* PubSub.unbounded();
|
|
29229
29274
|
const context = yield* Effect.context();
|
|
@@ -29248,8 +29293,8 @@ const make$67 = Effect.fn("ConfigFileWatcher.make")(function* (watchDirectory) {
|
|
|
29248
29293
|
return ConfigFileWatcher.of({ changesFor: (fileName) => Stream.fromPubSub(changes).pipe(Stream.filter((changedPath) => changedPath === fileName), Stream.map(() => void 0)) });
|
|
29249
29294
|
});
|
|
29250
29295
|
const watchConfigDirectory = (path, options, listener) => NodeFS.watch(path, options, listener);
|
|
29251
|
-
const layerWith = (watchDirectory) => Layer.effect(ConfigFileWatcher, make$
|
|
29252
|
-
const layer$
|
|
29296
|
+
const layerWith = (watchDirectory) => Layer.effect(ConfigFileWatcher, make$68(watchDirectory));
|
|
29297
|
+
const layer$64 = layerWith(watchConfigDirectory);
|
|
29253
29298
|
//#endregion
|
|
29254
29299
|
//#region ../../packages/shared/src/keybindings.ts
|
|
29255
29300
|
const DEFAULT_KEYBINDINGS = [
|
|
@@ -29723,7 +29768,7 @@ function mergeWithDefaultKeybindings(custom) {
|
|
|
29723
29768
|
* Keybindings - Service tag for keybinding configuration operations.
|
|
29724
29769
|
*/
|
|
29725
29770
|
var Keybindings = class extends Context.Service()("@zl-tools/server/keybindings") {};
|
|
29726
|
-
const make$
|
|
29771
|
+
const make$67 = Effect.gen(function* () {
|
|
29727
29772
|
const { keybindingsConfigPath } = yield* ServerConfig;
|
|
29728
29773
|
const configFileWatcher = yield* ConfigFileWatcher;
|
|
29729
29774
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -29976,7 +30021,7 @@ const make$66 = Effect.gen(function* () {
|
|
|
29976
30021
|
}))
|
|
29977
30022
|
};
|
|
29978
30023
|
});
|
|
29979
|
-
const layer$
|
|
30024
|
+
const layer$63 = Layer.effect(Keybindings, make$67);
|
|
29980
30025
|
//#endregion
|
|
29981
30026
|
//#region src/observability/EventLoopLag.ts
|
|
29982
30027
|
/**
|
|
@@ -30356,7 +30401,7 @@ const launchEditorProcess = Effect.fn("externalLauncher.launchEditorProcess")(fu
|
|
|
30356
30401
|
cause
|
|
30357
30402
|
}));
|
|
30358
30403
|
});
|
|
30359
|
-
const make$
|
|
30404
|
+
const make$66 = Effect.gen(function* () {
|
|
30360
30405
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
30361
30406
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
30362
30407
|
const path = yield* Path.Path;
|
|
@@ -30367,7 +30412,7 @@ const make$65 = Effect.gen(function* () {
|
|
|
30367
30412
|
launchEditor: (input) => provideCommandResolutionServices(Effect.flatMap(resolveEditorLaunch(input), (launch) => launchEditorProcess(launch).pipe(Effect.provideService(ChildProcessSpawner$1.ChildProcessSpawner, spawner))))
|
|
30368
30413
|
});
|
|
30369
30414
|
});
|
|
30370
|
-
const layer$
|
|
30415
|
+
const layer$62 = Layer.effect(ExternalLauncher, make$66);
|
|
30371
30416
|
//#endregion
|
|
30372
30417
|
//#region src/orchestration/Services/OrchestrationReactor.ts
|
|
30373
30418
|
/**
|
|
@@ -30385,7 +30430,7 @@ var OrchestrationReactor = class extends Context.Service()("@zl-tools/server/orc
|
|
|
30385
30430
|
//#endregion
|
|
30386
30431
|
//#region src/serverLifecycleEvents.ts
|
|
30387
30432
|
var ServerLifecycleEvents = class extends Context.Service()("@zl-tools/server/serverLifecycleEvents") {};
|
|
30388
|
-
const make$
|
|
30433
|
+
const make$65 = Effect.gen(function* () {
|
|
30389
30434
|
const pubsub = yield* PubSub.unbounded();
|
|
30390
30435
|
const state = yield* Ref.make({
|
|
30391
30436
|
sequence: 0,
|
|
@@ -30409,7 +30454,7 @@ const make$64 = Effect.gen(function* () {
|
|
|
30409
30454
|
}
|
|
30410
30455
|
};
|
|
30411
30456
|
});
|
|
30412
|
-
const layer$
|
|
30457
|
+
const layer$61 = Layer.effect(ServerLifecycleEvents, make$65);
|
|
30413
30458
|
//#endregion
|
|
30414
30459
|
//#region ../../packages/shared/src/preview.ts
|
|
30415
30460
|
/**
|
|
@@ -30667,7 +30712,7 @@ const operationError = (operation, cause, threadId, tabId) => new PreviewBrowser
|
|
|
30667
30712
|
...tabId === void 0 ? {} : { tabId },
|
|
30668
30713
|
cause
|
|
30669
30714
|
});
|
|
30670
|
-
const make$
|
|
30715
|
+
const make$64 = Effect.gen(function* BrowserRuntimeMake() {
|
|
30671
30716
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
30672
30717
|
const path = yield* Path.Path;
|
|
30673
30718
|
const config = yield* ServerConfig;
|
|
@@ -31392,7 +31437,7 @@ const make$63 = Effect.gen(function* BrowserRuntimeMake() {
|
|
|
31392
31437
|
events: Stream.fromPubSub(eventsPubSub)
|
|
31393
31438
|
});
|
|
31394
31439
|
}).pipe(Effect.withSpan("BrowserRuntime.make"));
|
|
31395
|
-
const layer$
|
|
31440
|
+
const layer$60 = Layer.effect(BrowserRuntime, make$64);
|
|
31396
31441
|
//#endregion
|
|
31397
31442
|
//#region src/preview/Manager.ts
|
|
31398
31443
|
/**
|
|
@@ -31802,8 +31847,8 @@ const makeWithBrowser = Effect.fn("PreviewManager.make")(function* (browser) {
|
|
|
31802
31847
|
subscribeEvents: PubSub.subscribe(eventsPubSub)
|
|
31803
31848
|
});
|
|
31804
31849
|
});
|
|
31805
|
-
const make$
|
|
31806
|
-
Layer.effect(PreviewManager, make$
|
|
31850
|
+
const make$63 = makeWithBrowser();
|
|
31851
|
+
Layer.effect(PreviewManager, make$63);
|
|
31807
31852
|
const layerServerHosted$1 = Layer.effect(PreviewManager, Effect.gen(function* () {
|
|
31808
31853
|
const browser = yield* BrowserRuntime;
|
|
31809
31854
|
return yield* makeWithBrowser(browser);
|
|
@@ -32140,7 +32185,7 @@ const serversEqual = (left, right) => {
|
|
|
32140
32185
|
}
|
|
32141
32186
|
return true;
|
|
32142
32187
|
};
|
|
32143
|
-
const make$
|
|
32188
|
+
const make$62 = Effect.gen(function* PortDiscoveryMake() {
|
|
32144
32189
|
const net = yield* NetService;
|
|
32145
32190
|
const processRunner = yield* ProcessRunner;
|
|
32146
32191
|
const hostPlatform = yield* HostProcessPlatform;
|
|
@@ -32291,7 +32336,7 @@ const make$61 = Effect.gen(function* PortDiscoveryMake() {
|
|
|
32291
32336
|
unregisterTerminal
|
|
32292
32337
|
});
|
|
32293
32338
|
}).pipe(Effect.withSpan("PortDiscovery.make"));
|
|
32294
|
-
const layer$
|
|
32339
|
+
const layer$58 = Layer.effect(PortDiscovery, make$62);
|
|
32295
32340
|
//#endregion
|
|
32296
32341
|
//#region src/terminal/Manager.ts
|
|
32297
32342
|
/**
|
|
@@ -32969,7 +33014,7 @@ function normalizedRuntimeEnv(env) {
|
|
|
32969
33014
|
if (entries.length === 0) return null;
|
|
32970
33015
|
return Object.fromEntries(entries.toSorted(([left], [right]) => left.localeCompare(right)));
|
|
32971
33016
|
}
|
|
32972
|
-
const make$
|
|
33017
|
+
const make$61 = Effect.fn("TerminalManager.make")(function* () {
|
|
32973
33018
|
const { terminalLogsDir } = yield* ServerConfig;
|
|
32974
33019
|
const ptyAdapter = yield* PtyAdapter;
|
|
32975
33020
|
const portDiscovery = yield* PortDiscovery;
|
|
@@ -33941,7 +33986,7 @@ const makeWithOptions$1 = Effect.fn("TerminalManager.makeWithOptions")(function*
|
|
|
33941
33986
|
listSessionPids
|
|
33942
33987
|
});
|
|
33943
33988
|
});
|
|
33944
|
-
const layer$
|
|
33989
|
+
const layer$57 = Layer.effect(TerminalManager, make$61()).pipe(Layer.provide(layer$68));
|
|
33945
33990
|
//#endregion
|
|
33946
33991
|
//#region src/serverRestartDrain.ts
|
|
33947
33992
|
const RESTART_ADVISORY_WINDOW = Duration.minutes(2);
|
|
@@ -33957,7 +34002,7 @@ function isRecentRestart(state, nowMs) {
|
|
|
33957
34002
|
if (!Number.isFinite(referenceMs)) return false;
|
|
33958
34003
|
return nowMs - referenceMs <= Duration.toMillis(RESTART_ADVISORY_WINDOW);
|
|
33959
34004
|
}
|
|
33960
|
-
const make$
|
|
34005
|
+
const make$60 = (options = {}) => Effect.gen(function* () {
|
|
33961
34006
|
const config = yield* ServerConfig;
|
|
33962
34007
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
33963
34008
|
const path = yield* Path.Path;
|
|
@@ -34083,7 +34128,7 @@ const make$59 = (options = {}) => Effect.gen(function* () {
|
|
|
34083
34128
|
authorizeMutation
|
|
34084
34129
|
});
|
|
34085
34130
|
});
|
|
34086
|
-
const layer$
|
|
34131
|
+
const layer$56 = Layer.effect(ServerRestartDrain, make$60());
|
|
34087
34132
|
//#endregion
|
|
34088
34133
|
//#region src/serverSettings.ts
|
|
34089
34134
|
/**
|
|
@@ -34203,7 +34248,7 @@ function stripDefaultServerSettings(current, defaults) {
|
|
|
34203
34248
|
}
|
|
34204
34249
|
return Object.is(current, defaults) ? void 0 : current;
|
|
34205
34250
|
}
|
|
34206
|
-
const make$
|
|
34251
|
+
const make$59 = Effect.gen(function* () {
|
|
34207
34252
|
const { settingsPath } = yield* ServerConfig;
|
|
34208
34253
|
const configFileWatcher = yield* ConfigFileWatcher;
|
|
34209
34254
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -34416,7 +34461,7 @@ const make$58 = Effect.gen(function* () {
|
|
|
34416
34461
|
}
|
|
34417
34462
|
};
|
|
34418
34463
|
});
|
|
34419
|
-
const layer$
|
|
34464
|
+
const layer$55 = Layer.effect(ServerSettingsService, make$59);
|
|
34420
34465
|
//#endregion
|
|
34421
34466
|
//#region src/diagnostics/ProcessDiagnostics.ts
|
|
34422
34467
|
const PROCESS_QUERY_TIMEOUT_MS = 1e3;
|
|
@@ -34711,7 +34756,7 @@ function assertDescendantPid(pid) {
|
|
|
34711
34756
|
}));
|
|
34712
34757
|
}));
|
|
34713
34758
|
}
|
|
34714
|
-
const make$
|
|
34759
|
+
const make$58 = Effect.gen(function* () {
|
|
34715
34760
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
34716
34761
|
const read = Effect.gen(function* () {
|
|
34717
34762
|
const readAt = yield* DateTime.now;
|
|
@@ -34755,7 +34800,7 @@ const make$57 = Effect.gen(function* () {
|
|
|
34755
34800
|
signal
|
|
34756
34801
|
});
|
|
34757
34802
|
});
|
|
34758
|
-
const layer$
|
|
34803
|
+
const layer$54 = Layer.effect(ProcessDiagnostics, make$58);
|
|
34759
34804
|
//#endregion
|
|
34760
34805
|
//#region src/process/AgentProcessPriority.ts
|
|
34761
34806
|
/**
|
|
@@ -35074,7 +35119,7 @@ var AnalyticsService = class AnalyticsService extends Context.Service()("@zl-too
|
|
|
35074
35119
|
resetIdentity: Effect.succeed(true)
|
|
35075
35120
|
}));
|
|
35076
35121
|
};
|
|
35077
|
-
const make$
|
|
35122
|
+
const make$57 = Effect.gen(function* () {
|
|
35078
35123
|
const telemetryConfig = yield* TelemetryEnvConfig;
|
|
35079
35124
|
const httpClient = yield* HttpClient$1.HttpClient;
|
|
35080
35125
|
const serverConfig = yield* ServerConfig;
|
|
@@ -35181,7 +35226,7 @@ const make$56 = Effect.gen(function* () {
|
|
|
35181
35226
|
resetIdentity
|
|
35182
35227
|
});
|
|
35183
35228
|
});
|
|
35184
|
-
const layer$
|
|
35229
|
+
const layer$53 = Layer.effect(AnalyticsService, make$57);
|
|
35185
35230
|
AnalyticsService.layerTest;
|
|
35186
35231
|
//#endregion
|
|
35187
35232
|
//#region src/provider/Services/ProviderSessionReaper.ts
|
|
@@ -35229,11 +35274,11 @@ const makeTextGenerationFromRegistry = (registry) => TextGeneration.of({
|
|
|
35229
35274
|
generateStarterSuggestions: (input) => resolveInstance(registry, "generateStarterSuggestions", input.modelSelection.instanceId).pipe(Effect.flatMap((textGeneration) => textGeneration.generateStarterSuggestions(input))),
|
|
35230
35275
|
generatePromptEnhancement: (input) => resolveInstance(registry, "generatePromptEnhancement", input.modelSelection.instanceId).pipe(Effect.flatMap((textGeneration) => textGeneration.generatePromptEnhancement(input)))
|
|
35231
35276
|
});
|
|
35232
|
-
const make$
|
|
35277
|
+
const make$56 = Effect.gen(function* () {
|
|
35233
35278
|
const registry = yield* ProviderInstanceRegistry;
|
|
35234
35279
|
return makeTextGenerationFromRegistry(registry);
|
|
35235
35280
|
});
|
|
35236
|
-
const layer$
|
|
35281
|
+
const layer$52 = Layer.effect(TextGeneration, make$56);
|
|
35237
35282
|
//#endregion
|
|
35238
35283
|
//#region src/assist/StarterSuggestions.ts
|
|
35239
35284
|
const RECENT_THREAD_LIMIT = 8;
|
|
@@ -35297,7 +35342,7 @@ const sanitizeGeneratedSuggestions = (suggestions) => {
|
|
|
35297
35342
|
return unique;
|
|
35298
35343
|
};
|
|
35299
35344
|
var StarterSuggestions = class extends Context.Service()("@zl-tools/server/assist/StarterSuggestions") {};
|
|
35300
|
-
const make$
|
|
35345
|
+
const make$55 = Effect.gen(function* () {
|
|
35301
35346
|
const sql = yield* SqlClient.SqlClient;
|
|
35302
35347
|
const projections = yield* ProjectionSnapshotQuery;
|
|
35303
35348
|
const serverSettings = yield* ServerSettingsService;
|
|
@@ -35513,12 +35558,12 @@ const make$54 = Effect.gen(function* () {
|
|
|
35513
35558
|
precompute
|
|
35514
35559
|
});
|
|
35515
35560
|
});
|
|
35516
|
-
const layer$
|
|
35561
|
+
const layer$51 = Layer.effect(StarterSuggestions, make$55);
|
|
35517
35562
|
//#endregion
|
|
35518
35563
|
//#region src/assist/StarterSuggestionPrecomputation.ts
|
|
35519
35564
|
const isPrecomputeLifecycleEvent = (event) => event.type === "thread.resolved" || event.type === "thread.archived";
|
|
35520
35565
|
var StarterSuggestionPrecomputation = class extends Context.Service()("@zl-tools/server/assist/StarterSuggestionPrecomputation") {};
|
|
35521
|
-
const make$
|
|
35566
|
+
const make$54 = Effect.gen(function* () {
|
|
35522
35567
|
const orchestrationEngine = yield* OrchestrationEngineService;
|
|
35523
35568
|
const projections = yield* ProjectionSnapshotQuery;
|
|
35524
35569
|
const starterSuggestions = yield* StarterSuggestions;
|
|
@@ -35558,7 +35603,7 @@ const make$53 = Effect.gen(function* () {
|
|
|
35558
35603
|
drain: worker.drain
|
|
35559
35604
|
});
|
|
35560
35605
|
});
|
|
35561
|
-
const layer$
|
|
35606
|
+
const layer$50 = Layer.effect(StarterSuggestionPrecomputation, make$54);
|
|
35562
35607
|
//#endregion
|
|
35563
35608
|
//#region src/serverRuntimeStartup.ts
|
|
35564
35609
|
var ServerRuntimeStartupError = class extends Schema$1.TaggedErrorClass()("ServerRuntimeStartupError", {
|
|
@@ -35699,7 +35744,7 @@ const maybeOpenBrowser = (target) => Effect.gen(function* () {
|
|
|
35699
35744
|
yield* (yield* ExternalLauncher).launchBrowser(target).pipe(Effect.catch(() => Effect.logInfo("browser auto-open unavailable", { hint: `Open ${target} in your browser.` })));
|
|
35700
35745
|
});
|
|
35701
35746
|
const runStartupPhase = (phase, effect) => effect.pipe(Effect.annotateSpans({ "startup.phase": phase }), Effect.withSpan(`server.startup.${phase}`));
|
|
35702
|
-
const make$
|
|
35747
|
+
const make$53 = Effect.gen(function* () {
|
|
35703
35748
|
const serverConfig = yield* ServerConfig;
|
|
35704
35749
|
const keybindings = yield* Keybindings;
|
|
35705
35750
|
const orchestrationReactor = yield* OrchestrationReactor;
|
|
@@ -35840,7 +35885,7 @@ const make$52 = Effect.gen(function* () {
|
|
|
35840
35885
|
enqueueCommand: commandGate.enqueueCommand
|
|
35841
35886
|
};
|
|
35842
35887
|
});
|
|
35843
|
-
const layer$
|
|
35888
|
+
const layer$49 = Layer.effect(ServerRuntimeStartup, make$53);
|
|
35844
35889
|
//#endregion
|
|
35845
35890
|
//#region src/workspace/WorkspacePaths.ts
|
|
35846
35891
|
/**
|
|
@@ -35911,7 +35956,7 @@ function expandHomePath$3(input, path) {
|
|
|
35911
35956
|
if (input.startsWith("~/") || input.startsWith("~\\")) return path.join(NodeOS.homedir(), input.slice(2));
|
|
35912
35957
|
return input;
|
|
35913
35958
|
}
|
|
35914
|
-
const make$
|
|
35959
|
+
const make$52 = Effect.gen(function* () {
|
|
35915
35960
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
35916
35961
|
const path = yield* Path.Path;
|
|
35917
35962
|
const statWorkspaceRoot = Effect.fn("WorkspacePaths.statWorkspaceRoot")(function* (workspaceRoot, normalizedWorkspaceRoot, phase) {
|
|
@@ -35968,7 +36013,7 @@ const make$51 = Effect.gen(function* () {
|
|
|
35968
36013
|
resolveRelativePathWithinRoot
|
|
35969
36014
|
});
|
|
35970
36015
|
});
|
|
35971
|
-
const layer$
|
|
36016
|
+
const layer$48 = Layer.effect(WorkspacePaths, make$52);
|
|
35972
36017
|
//#endregion
|
|
35973
36018
|
//#region src/cli/project.ts
|
|
35974
36019
|
const isEnvironmentHttpCommonError = Schema$1.is(EnvironmentHttpCommonError);
|
|
@@ -36074,7 +36119,7 @@ const projectCommandUuid = Crypto.Crypto.pipe(Effect.flatMap((crypto) => crypto.
|
|
|
36074
36119
|
operation: "generateProjectCommandId",
|
|
36075
36120
|
cause
|
|
36076
36121
|
})));
|
|
36077
|
-
const ProjectCliRuntimeLive = Layer.mergeAll(layer$
|
|
36122
|
+
const ProjectCliRuntimeLive = Layer.mergeAll(layer$48, OrchestrationLayerLive.pipe(Layer.provideMerge(layer$65), Layer.provideMerge(layerConfig)));
|
|
36078
36123
|
const PROJECT_CLI_LIVE_SERVER_TIMEOUT = Duration.seconds(1);
|
|
36079
36124
|
const withProjectCliSessionToken = (environmentAuth, run) => Effect.acquireUseRelease(environmentAuth.issueSession({
|
|
36080
36125
|
scopes: AuthAdministrativeScopes,
|
|
@@ -36165,7 +36210,7 @@ const runProjectMutation = Effect.fn("runProjectMutation")(function* (flags, run
|
|
|
36165
36210
|
});
|
|
36166
36211
|
yield* Console.log(output);
|
|
36167
36212
|
}));
|
|
36168
|
-
const offlineRuntimeLayer = ProjectCliRuntimeLive.pipe(Layer.provide(layer$
|
|
36213
|
+
const offlineRuntimeLayer = ProjectCliRuntimeLive.pipe(Layer.provide(layer$77(config)), Layer.provide(Layer.succeed(References.MinimumLogLevel, minimumLogLevel)));
|
|
36169
36214
|
return yield* Effect.gen(function* () {
|
|
36170
36215
|
const snapshot = yield* getOfflineSnapshot();
|
|
36171
36216
|
const orchestrationEngine = yield* OrchestrationEngineService;
|
|
@@ -36176,7 +36221,7 @@ const runProjectMutation = Effect.fn("runProjectMutation")(function* (flags, run
|
|
|
36176
36221
|
});
|
|
36177
36222
|
yield* Console.log(output);
|
|
36178
36223
|
}).pipe(Effect.provide(offlineRuntimeLayer));
|
|
36179
|
-
}).pipe(Effect.provide(Layer.mergeAll(runtimeLayer, layer$
|
|
36224
|
+
}).pipe(Effect.provide(Layer.mergeAll(runtimeLayer, layer$48).pipe(Layer.provideMerge(FetchHttpClient.layer), Layer.provide(layer$77(config)), Layer.provide(Layer.succeed(References.MinimumLogLevel, minimumLogLevel)))));
|
|
36180
36225
|
});
|
|
36181
36226
|
const projectAddCommand = Command.make("add", {
|
|
36182
36227
|
...projectLocationFlags,
|
|
@@ -37059,7 +37104,7 @@ function extractIconHref(source) {
|
|
|
37059
37104
|
return null;
|
|
37060
37105
|
}
|
|
37061
37106
|
const optionOnNotFound$1 = (effect) => effect.pipe(Effect.map(Option.some), Effect.catchTags({ PlatformError: (error) => error.reason._tag === "NotFound" ? Effect.succeed(Option.none()) : Effect.fail(error) }));
|
|
37062
|
-
const make$
|
|
37107
|
+
const make$51 = Effect.gen(function* () {
|
|
37063
37108
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
37064
37109
|
const path = yield* Path.Path;
|
|
37065
37110
|
const workspacePaths = yield* WorkspacePaths;
|
|
@@ -37122,7 +37167,7 @@ const make$50 = Effect.gen(function* () {
|
|
|
37122
37167
|
});
|
|
37123
37168
|
return ProjectFaviconResolver.of({ resolvePath });
|
|
37124
37169
|
});
|
|
37125
|
-
const layer$
|
|
37170
|
+
const layer$47 = Layer.effect(ProjectFaviconResolver, make$51);
|
|
37126
37171
|
//#endregion
|
|
37127
37172
|
//#region src/assets/AssetAccess.ts
|
|
37128
37173
|
const ASSET_ROUTE_PREFIX = "/api/assets";
|
|
@@ -37460,10 +37505,10 @@ const resolveAsset = Effect.fn("AssetAccess.resolveAsset")(function* (token, rel
|
|
|
37460
37505
|
//#endregion
|
|
37461
37506
|
//#region src/observability/BrowserTraceCollector.ts
|
|
37462
37507
|
var BrowserTraceCollector = class extends Context.Service()("@zl-tools/server/observability/BrowserTraceCollector") {};
|
|
37463
|
-
const make$
|
|
37508
|
+
const make$50 = (sink) => BrowserTraceCollector.of({ record: (records) => Effect.sync(() => {
|
|
37464
37509
|
for (const record of records) sink.push(record);
|
|
37465
37510
|
}) });
|
|
37466
|
-
const layer$
|
|
37511
|
+
const layer$46 = (sink) => Layer.succeed(BrowserTraceCollector, make$50(sink));
|
|
37467
37512
|
//#endregion
|
|
37468
37513
|
//#region src/providerUsage/ProviderUsageMetrics.ts
|
|
37469
37514
|
const METRIC_PREFIX = "ai_usage_";
|
|
@@ -37573,6 +37618,11 @@ function limitSection(value, maxChars) {
|
|
|
37573
37618
|
if (value.length <= maxChars) return value;
|
|
37574
37619
|
return `${value.slice(0, maxChars)}\n\n[truncated]`;
|
|
37575
37620
|
}
|
|
37621
|
+
/** Keep the newest end of a bounded conversation context. */
|
|
37622
|
+
function limitSectionFromEnd(value, maxChars) {
|
|
37623
|
+
if (value.length <= maxChars) return value;
|
|
37624
|
+
return `[earlier context truncated]\n\n${value.slice(-maxChars)}`;
|
|
37625
|
+
}
|
|
37576
37626
|
/** Normalise a raw commit subject to imperative-mood, ≤72 chars, no trailing period. */
|
|
37577
37627
|
function sanitizeCommitSubject(raw) {
|
|
37578
37628
|
const withoutTrailingPeriod = (raw.trim().split(/\r?\n/g)[0]?.trim() ?? "").replace(/[.]+$/g, "").trim();
|
|
@@ -37593,6 +37643,14 @@ function sanitizeThreadTitle(raw) {
|
|
|
37593
37643
|
if (normalized.length <= 50) return normalized;
|
|
37594
37644
|
return `${normalized.slice(0, 47).trimEnd()}...`;
|
|
37595
37645
|
}
|
|
37646
|
+
/** Normalize a regenerated title and enforce its configured final character limit. */
|
|
37647
|
+
function sanitizeRegeneratedThreadTitle(raw, maxCharacters) {
|
|
37648
|
+
const normalized = raw.trim().split(/\r?\n/g)[0]?.trim().replace(/^['"`]+|['"`]+$/g, "").trim().replace(/\s+/g, " ");
|
|
37649
|
+
const title = normalized && normalized.length > 0 ? normalized : "New thread";
|
|
37650
|
+
const characters = Array.from(title);
|
|
37651
|
+
if (characters.length <= maxCharacters) return title;
|
|
37652
|
+
return `${characters.slice(0, Math.max(1, maxCharacters - 1)).join("").trimEnd()}…`;
|
|
37653
|
+
}
|
|
37596
37654
|
/** CLI name to human-readable label, e.g. "codex" → "Codex CLI (`codex`)" */
|
|
37597
37655
|
function cliLabel(cliName) {
|
|
37598
37656
|
return `${cliName.charAt(0).toUpperCase() + cliName.slice(1)} CLI (\`${cliName}\`)`;
|
|
@@ -37741,6 +37799,20 @@ function buildBranchNamePrompt(input) {
|
|
|
37741
37799
|
};
|
|
37742
37800
|
}
|
|
37743
37801
|
function buildThreadTitlePrompt(input) {
|
|
37802
|
+
if (input.regeneration) {
|
|
37803
|
+
const recentConversation = input.regeneration.recentMessages.slice(-12).map((message) => `${message.role === "user" ? "User" : "Assistant"}: ${limitSection(message.text, 1500)}`).join("\n\n");
|
|
37804
|
+
return {
|
|
37805
|
+
prompt: [
|
|
37806
|
+
`Your task is to generate a title for this zl-code thread id: ${input.regeneration.threadId}. Keep it short, maximum ${input.regeneration.maxCharacters} characters, and respond only with the title in the required output field.`,
|
|
37807
|
+
...input.regeneration.guidelines.length > 0 ? [`Additional guidelines: ${limitSection(input.regeneration.guidelines, 4e3)}`] : [],
|
|
37808
|
+
"Return a JSON object with key: title.",
|
|
37809
|
+
"",
|
|
37810
|
+
"Thread context:",
|
|
37811
|
+
recentConversation.length > 0 ? limitSectionFromEnd(recentConversation, 8e3) : "(none)"
|
|
37812
|
+
].join("\n"),
|
|
37813
|
+
outputSchema: Schema$1.Struct({ title: Schema$1.String })
|
|
37814
|
+
};
|
|
37815
|
+
}
|
|
37744
37816
|
return {
|
|
37745
37817
|
prompt: buildPromptFromMessage({
|
|
37746
37818
|
instruction: "You write concise thread titles for coding conversations.",
|
|
@@ -39378,15 +39450,17 @@ const makeClaudeTextGeneration = Effect.fn("makeClaudeTextGeneration")(function*
|
|
|
39378
39450
|
generateThreadTitle: Effect.fn("ClaudeTextGeneration.generateThreadTitle")(function* (input) {
|
|
39379
39451
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
39380
39452
|
message: input.message,
|
|
39381
|
-
attachments: input.attachments
|
|
39453
|
+
attachments: input.attachments,
|
|
39454
|
+
regeneration: input.regeneration
|
|
39382
39455
|
});
|
|
39383
|
-
|
|
39456
|
+
const generated = yield* runClaudeJson({
|
|
39384
39457
|
operation: "generateThreadTitle",
|
|
39385
39458
|
cwd: input.cwd,
|
|
39386
39459
|
prompt,
|
|
39387
39460
|
outputSchemaJson: outputSchema,
|
|
39388
39461
|
modelSelection: input.modelSelection
|
|
39389
|
-
})
|
|
39462
|
+
});
|
|
39463
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
39390
39464
|
}),
|
|
39391
39465
|
generateStarterSuggestions: Effect.fn("ClaudeTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
39392
39466
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -42819,16 +42893,18 @@ const makeCodexTextGeneration = Effect.fn("makeCodexTextGeneration")(function* (
|
|
|
42819
42893
|
const { imagePaths } = yield* materializeImageAttachments("generateThreadTitle", input.attachments);
|
|
42820
42894
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
42821
42895
|
message: input.message,
|
|
42822
|
-
attachments: input.attachments
|
|
42896
|
+
attachments: input.attachments,
|
|
42897
|
+
regeneration: input.regeneration
|
|
42823
42898
|
});
|
|
42824
|
-
|
|
42899
|
+
const generated = yield* runCodexJson({
|
|
42825
42900
|
operation: "generateThreadTitle",
|
|
42826
42901
|
cwd: input.cwd,
|
|
42827
42902
|
prompt,
|
|
42828
42903
|
outputSchemaJson: outputSchema,
|
|
42829
42904
|
imagePaths,
|
|
42830
42905
|
modelSelection: input.modelSelection
|
|
42831
|
-
})
|
|
42906
|
+
});
|
|
42907
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
42832
42908
|
}),
|
|
42833
42909
|
generateStarterSuggestions: Effect.fn("CodexTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
42834
42910
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -59031,7 +59107,7 @@ const makeTerminationError$1 = (handle) => Effect.match(handle.exitCode, {
|
|
|
59031
59107
|
//#endregion
|
|
59032
59108
|
//#region ../../packages/effect-codex-app-server/src/client.ts
|
|
59033
59109
|
var CodexAppServerClient = class extends Context.Service()("effect-codex-app-server/client/CodexAppServerClient") {};
|
|
59034
|
-
const make$
|
|
59110
|
+
const make$49 = Effect.fn("effect-codex-app-server/CodexAppServerClient.make")(function* (stdio, options = {}, terminationError) {
|
|
59035
59111
|
const requestHandlers = /* @__PURE__ */ new Map();
|
|
59036
59112
|
const notificationHandlers = /* @__PURE__ */ new Map();
|
|
59037
59113
|
let unknownRequestHandler;
|
|
@@ -59098,7 +59174,7 @@ const make$48 = Effect.fn("effect-codex-app-server/CodexAppServerClient.make")(f
|
|
|
59098
59174
|
const layerChildProcess$1 = (handle, options = {}) => Layer.effect(CodexAppServerClient, makeChildProcessClient(handle, options));
|
|
59099
59175
|
const makeChildProcessClient = Effect.fn("effect-codex-app-server/CodexAppServerClient.makeChildProcessClient")(function* (handle, options) {
|
|
59100
59176
|
yield* Stream.runDrain(handle.stderr).pipe(Effect.ignore, Effect.forkScoped);
|
|
59101
|
-
return yield* make$
|
|
59177
|
+
return yield* make$49(makeChildStdio$1(handle), options, makeTerminationError$1(handle));
|
|
59102
59178
|
});
|
|
59103
59179
|
//#endregion
|
|
59104
59180
|
//#region src/provider/Layers/CodexProvider.ts
|
|
@@ -65419,7 +65495,7 @@ const makeTerminationError = (handle) => Effect.match(handle.exitCode, {
|
|
|
65419
65495
|
//#endregion
|
|
65420
65496
|
//#region ../../packages/effect-acp/src/client.ts
|
|
65421
65497
|
var AcpClient = class extends Context.Service()("effect-acp/client/AcpClient") {};
|
|
65422
|
-
const make$
|
|
65498
|
+
const make$48 = Effect.fn("effect-acp/AcpClient.make")(function* (stdio, options = {}, terminationError) {
|
|
65423
65499
|
const coreHandlers = {};
|
|
65424
65500
|
const notificationHandlers = {
|
|
65425
65501
|
sessionUpdate: {
|
|
@@ -65577,7 +65653,7 @@ const make$47 = Effect.fn("effect-acp/AcpClient.make")(function* (stdio, options
|
|
|
65577
65653
|
const layerChildProcess = (handle, options = {}) => {
|
|
65578
65654
|
const stdio = makeChildStdio(handle);
|
|
65579
65655
|
const terminationError = makeTerminationError(handle);
|
|
65580
|
-
return Layer.effect(AcpClient, make$
|
|
65656
|
+
return Layer.effect(AcpClient, make$48(stdio, options, terminationError));
|
|
65581
65657
|
};
|
|
65582
65658
|
//#endregion
|
|
65583
65659
|
//#region ../../packages/shared/src/toolActivity.ts
|
|
@@ -66042,7 +66118,7 @@ function isNonInteractiveAuthMethodUnavailableError(error) {
|
|
|
66042
66118
|
return isAcpRequestError$2(error) && error.errorMessage === "ACP agent does not advertise the required non-interactive authentication method.";
|
|
66043
66119
|
}
|
|
66044
66120
|
var AcpSessionRuntime = class extends Context.Service()("@zl-tools/server/provider/acp/AcpSessionRuntime") {};
|
|
66045
|
-
const make$
|
|
66121
|
+
const make$47 = (options) => Effect.gen(function* () {
|
|
66046
66122
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
66047
66123
|
const runtimeScope = yield* Scope.Scope;
|
|
66048
66124
|
const eventQueue = yield* Queue.unbounded();
|
|
@@ -66355,7 +66431,7 @@ const make$46 = (options) => Effect.gen(function* () {
|
|
|
66355
66431
|
notify: acp.raw.notify
|
|
66356
66432
|
};
|
|
66357
66433
|
});
|
|
66358
|
-
const layer$
|
|
66434
|
+
const layer$45 = (options) => Layer.effect(AcpSessionRuntime, make$47(options));
|
|
66359
66435
|
function sessionConfigOptionsFromSetup(response) {
|
|
66360
66436
|
return response?.configOptions ?? [];
|
|
66361
66437
|
}
|
|
@@ -66723,7 +66799,7 @@ function buildCursorDiscoveredModelsFromAvailableModelsResponse(response) {
|
|
|
66723
66799
|
}
|
|
66724
66800
|
const makeCursorAcpProbeRuntime = (cursorSettings, environment) => Effect.gen(function* () {
|
|
66725
66801
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
66726
|
-
const acpContext = yield* Layer.build(layer$
|
|
66802
|
+
const acpContext = yield* Layer.build(layer$45({
|
|
66727
66803
|
spawn: {
|
|
66728
66804
|
command: cursorSettings.binaryPath,
|
|
66729
66805
|
args: [...cursorSettings.apiEndpoint ? ["-e", cursorSettings.apiEndpoint] : [], "acp"],
|
|
@@ -67172,7 +67248,7 @@ function buildCursorAcpSpawnInput(cursorSettings, cwd, environment) {
|
|
|
67172
67248
|
};
|
|
67173
67249
|
}
|
|
67174
67250
|
const makeCursorAcpRuntime = (input) => Effect.gen(function* () {
|
|
67175
|
-
const acpContext = yield* Layer.build(layer$
|
|
67251
|
+
const acpContext = yield* Layer.build(layer$45({
|
|
67176
67252
|
...input,
|
|
67177
67253
|
spawn: buildCursorAcpSpawnInput(input.cursorSettings, input.cwd, input.environment),
|
|
67178
67254
|
authMethodId: "cursor_login",
|
|
@@ -67324,15 +67400,17 @@ const makeCursorTextGeneration = Effect.fn("makeCursorTextGeneration")(function*
|
|
|
67324
67400
|
generateThreadTitle: Effect.fn("CursorTextGeneration.generateThreadTitle")(function* (input) {
|
|
67325
67401
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
67326
67402
|
message: input.message,
|
|
67327
|
-
attachments: input.attachments
|
|
67403
|
+
attachments: input.attachments,
|
|
67404
|
+
regeneration: input.regeneration
|
|
67328
67405
|
});
|
|
67329
|
-
|
|
67406
|
+
const generated = yield* runCursorJson({
|
|
67330
67407
|
operation: "generateThreadTitle",
|
|
67331
67408
|
cwd: input.cwd,
|
|
67332
67409
|
prompt,
|
|
67333
67410
|
outputSchemaJson: outputSchema,
|
|
67334
67411
|
modelSelection: input.modelSelection
|
|
67335
|
-
})
|
|
67412
|
+
});
|
|
67413
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
67336
67414
|
}),
|
|
67337
67415
|
generateStarterSuggestions: Effect.fn("CursorTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
67338
67416
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -68614,7 +68692,7 @@ function resolveGrokAuthMethodId(environment) {
|
|
|
68614
68692
|
return environment?.[GROK_API_KEY_ENV$1]?.trim() ? GROK_AUTH_METHOD_API_KEY$1 : GROK_AUTH_METHOD_CACHED_TOKEN$1;
|
|
68615
68693
|
}
|
|
68616
68694
|
const makeGrokAcpRuntime = (input) => Effect.gen(function* () {
|
|
68617
|
-
const acpContext = yield* Layer.build(layer$
|
|
68695
|
+
const acpContext = yield* Layer.build(layer$45({
|
|
68618
68696
|
...input,
|
|
68619
68697
|
spawn: buildGrokAcpSpawnInput(input.grokSettings, input.cwd, input.environment),
|
|
68620
68698
|
authMethodId: resolveGrokAuthMethodId(input.environment),
|
|
@@ -68758,15 +68836,17 @@ const makeGrokTextGeneration = Effect.fn("makeGrokTextGeneration")(function* (gr
|
|
|
68758
68836
|
generateThreadTitle: Effect.fn("GrokTextGeneration.generateThreadTitle")(function* (input) {
|
|
68759
68837
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
68760
68838
|
message: input.message,
|
|
68761
|
-
attachments: input.attachments
|
|
68839
|
+
attachments: input.attachments,
|
|
68840
|
+
regeneration: input.regeneration
|
|
68762
68841
|
});
|
|
68763
|
-
|
|
68842
|
+
const generated = yield* runGrokJson({
|
|
68764
68843
|
operation: "generateThreadTitle",
|
|
68765
68844
|
cwd: input.cwd,
|
|
68766
68845
|
prompt,
|
|
68767
68846
|
outputSchemaJson: outputSchema,
|
|
68768
68847
|
modelSelection: input.modelSelection
|
|
68769
|
-
})
|
|
68848
|
+
});
|
|
68849
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
68770
68850
|
}),
|
|
68771
68851
|
generateStarterSuggestions: Effect.fn("GrokTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
68772
68852
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -70448,7 +70528,7 @@ const makeOpenCodeRuntime = Effect.gen(function* () {
|
|
|
70448
70528
|
};
|
|
70449
70529
|
});
|
|
70450
70530
|
var OpenCodeRuntime = class extends Context.Service()("@zl-tools/server/provider/opencodeRuntime") {};
|
|
70451
|
-
const OpenCodeRuntimeLive = Layer.effect(OpenCodeRuntime, makeOpenCodeRuntime).pipe(Layer.provide(layer$
|
|
70531
|
+
const OpenCodeRuntimeLive = Layer.effect(OpenCodeRuntime, makeOpenCodeRuntime).pipe(Layer.provide(layer$78));
|
|
70452
70532
|
//#endregion
|
|
70453
70533
|
//#region src/textGeneration/OpenCodeTextGeneration.ts
|
|
70454
70534
|
const OPENCODE_TEXT_GENERATION_IDLE_TTL = "30 seconds";
|
|
@@ -70775,16 +70855,18 @@ const makeOpenCodeTextGeneration = Effect.fn("makeOpenCodeTextGeneration")(funct
|
|
|
70775
70855
|
generateThreadTitle: Effect.fn("OpenCodeTextGeneration.generateThreadTitle")(function* (input) {
|
|
70776
70856
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
70777
70857
|
message: input.message,
|
|
70778
|
-
attachments: input.attachments
|
|
70858
|
+
attachments: input.attachments,
|
|
70859
|
+
regeneration: input.regeneration
|
|
70779
70860
|
});
|
|
70780
|
-
|
|
70861
|
+
const generated = yield* runOpenCodeJson({
|
|
70781
70862
|
operation: "generateThreadTitle",
|
|
70782
70863
|
cwd: input.cwd,
|
|
70783
70864
|
prompt,
|
|
70784
70865
|
outputSchemaJson: outputSchema,
|
|
70785
70866
|
modelSelection: input.modelSelection,
|
|
70786
70867
|
attachments: input.attachments
|
|
70787
|
-
})
|
|
70868
|
+
});
|
|
70869
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
70788
70870
|
}),
|
|
70789
70871
|
generateStarterSuggestions: Effect.fn("OpenCodeTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
70790
70872
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -73356,7 +73438,7 @@ function sourceFromRow(row) {
|
|
|
73356
73438
|
};
|
|
73357
73439
|
}
|
|
73358
73440
|
var ProviderUsageStore = class extends Context.Service()("@zl-tools/server/providerUsage/ProviderUsageStore") {};
|
|
73359
|
-
const make$
|
|
73441
|
+
const make$46 = Effect.gen(function* () {
|
|
73360
73442
|
const sql = yield* SqlClient.SqlClient;
|
|
73361
73443
|
const listSnapshots = Effect.gen(function* () {
|
|
73362
73444
|
const rows = yield* sql`
|
|
@@ -73492,7 +73574,7 @@ const make$45 = Effect.gen(function* () {
|
|
|
73492
73574
|
deleteSource
|
|
73493
73575
|
});
|
|
73494
73576
|
});
|
|
73495
|
-
const layer$
|
|
73577
|
+
const layer$44 = Layer.effect(ProviderUsageStore, make$46);
|
|
73496
73578
|
//#endregion
|
|
73497
73579
|
//#region src/providerUsage/scheduler.ts
|
|
73498
73580
|
const MAX_EXPONENTIAL_BACKOFF_SECONDS = 1800;
|
|
@@ -73613,7 +73695,7 @@ function mergeCanonicalWindows(previous, incoming) {
|
|
|
73613
73695
|
return Array.from(byKey.values());
|
|
73614
73696
|
}
|
|
73615
73697
|
var ProviderUsageService = class extends Context.Service()("@zl-tools/server/providerUsage/ProviderUsageService") {};
|
|
73616
|
-
const make$
|
|
73698
|
+
const make$45 = Effect.gen(function* () {
|
|
73617
73699
|
const store = yield* ProviderUsageStore;
|
|
73618
73700
|
const serverSettings = yield* ServerSettingsService;
|
|
73619
73701
|
const serverConfig = yield* ServerConfig;
|
|
@@ -74377,7 +74459,7 @@ const make$44 = Effect.gen(function* () {
|
|
|
74377
74459
|
streamSnapshots: Stream.fromPubSub(changes)
|
|
74378
74460
|
});
|
|
74379
74461
|
});
|
|
74380
|
-
const layer$
|
|
74462
|
+
const layer$43 = Layer.effect(ProviderUsageService, make$45);
|
|
74381
74463
|
//#endregion
|
|
74382
74464
|
//#region src/cloud/traceRelayRequest.ts
|
|
74383
74465
|
const traceRelayRequest = (effect) => effect.pipe(withRelayClientTracing);
|
|
@@ -74589,7 +74671,7 @@ const layerNode = Layer.effect(HttpResponseCompression, Effect.gen(function* ()
|
|
|
74589
74671
|
}));
|
|
74590
74672
|
const layerBun = Layer.succeed(HttpResponseCompression, { gzip: (body, options) => HttpServerResponse$1.raw(new Response(body).body.pipeThrough(new CompressionStream("gzip")), options) });
|
|
74591
74673
|
/** Selects the runtime implementation the same way the HTTP server layer does. */
|
|
74592
|
-
const layer$
|
|
74674
|
+
const layer$42 = Layer.unwrap(Effect.sync(() => typeof Bun !== "undefined" ? layerBun : layerNode));
|
|
74593
74675
|
//#endregion
|
|
74594
74676
|
//#region src/httpCors.ts
|
|
74595
74677
|
const browserApiCorsAllowedMethods = [
|
|
@@ -76597,7 +76679,7 @@ const classifyNonZeroExit = (command, stderr) => {
|
|
|
76597
76679
|
if (command === "gh" && (normalized.includes("could not resolve to a pullrequest") || normalized.includes("repository.pullrequest") || normalized.includes("no pull requests found for branch") || normalized.includes("pull request not found")) || command === "glab" && (normalized.includes("merge request not found") || normalized.includes("not found") || normalized.includes("404")) || command === "az" && normalized.includes("pull request") && (normalized.includes("not found") || normalized.includes("does not exist"))) return "not-found";
|
|
76598
76680
|
return "command-failed";
|
|
76599
76681
|
};
|
|
76600
|
-
const make$
|
|
76682
|
+
const make$44 = Effect.gen(function* () {
|
|
76601
76683
|
const processRunner = yield* ProcessRunner;
|
|
76602
76684
|
const run = Effect.fn("VcsProcess.run")(function* (input) {
|
|
76603
76685
|
const baseError = {
|
|
@@ -76654,7 +76736,7 @@ const make$43 = Effect.gen(function* () {
|
|
|
76654
76736
|
});
|
|
76655
76737
|
return VcsProcess.of({ run });
|
|
76656
76738
|
});
|
|
76657
|
-
const layer$
|
|
76739
|
+
const layer$41 = Layer.effect(VcsProcess, make$44).pipe(Layer.provide(layer$68));
|
|
76658
76740
|
//#endregion
|
|
76659
76741
|
//#region src/vcs/VcsDriver.ts
|
|
76660
76742
|
var VcsDriver = class extends Context.Service()("@zl-tools/server/vcs/VcsDriver") {};
|
|
@@ -77105,12 +77187,12 @@ const makeVcsDriver = Effect.gen(function* () {
|
|
|
77105
77187
|
const driver = yield* makeVcsDriverShape();
|
|
77106
77188
|
return VcsDriver.of(driver);
|
|
77107
77189
|
});
|
|
77108
|
-
const make$
|
|
77190
|
+
const make$43 = Effect.gen(function* () {
|
|
77109
77191
|
const git = yield* makeGitVcsDriverCore();
|
|
77110
77192
|
return GitVcsDriver.of(git);
|
|
77111
77193
|
});
|
|
77112
77194
|
Layer.effect(VcsDriver, makeVcsDriver);
|
|
77113
|
-
const layer$
|
|
77195
|
+
const layer$40 = Layer.effect(GitVcsDriver, make$43);
|
|
77114
77196
|
//#endregion
|
|
77115
77197
|
//#region src/vcs/VcsProjectConfig.ts
|
|
77116
77198
|
const ProjectVcsConfigJson = fromLenientJson(Schema$1.Struct({
|
|
@@ -77142,7 +77224,7 @@ const logVcsProjectConfigError = (error) => Effect.logWarning(error).pipe(Effect
|
|
|
77142
77224
|
configPath: error.configPath,
|
|
77143
77225
|
errorTag: error._tag
|
|
77144
77226
|
}));
|
|
77145
|
-
const make$
|
|
77227
|
+
const make$42 = Effect.gen(function* () {
|
|
77146
77228
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
77147
77229
|
const path = yield* Path.Path;
|
|
77148
77230
|
const findConfigPath = Effect.fn("VcsProjectConfig.findConfigPath")(function* (cwd) {
|
|
@@ -77183,7 +77265,7 @@ const make$41 = Effect.gen(function* () {
|
|
|
77183
77265
|
});
|
|
77184
77266
|
return VcsProjectConfig.of({ resolveKind });
|
|
77185
77267
|
});
|
|
77186
|
-
const layer$
|
|
77268
|
+
const layer$39 = Layer.effect(VcsProjectConfig, make$42);
|
|
77187
77269
|
//#endregion
|
|
77188
77270
|
//#region src/vcs/VcsDriverRegistry.ts
|
|
77189
77271
|
const DETECTION_CACHE_CAPACITY = 2048;
|
|
@@ -77203,7 +77285,7 @@ function parseDetectionCacheKey(key) {
|
|
|
77203
77285
|
cwd: key.slice(separatorIndex + 1)
|
|
77204
77286
|
};
|
|
77205
77287
|
}
|
|
77206
|
-
const make$
|
|
77288
|
+
const make$41 = Effect.gen(function* () {
|
|
77207
77289
|
const projectConfig = yield* VcsProjectConfig;
|
|
77208
77290
|
const git = yield* makeVcsDriver;
|
|
77209
77291
|
const drivers = { git };
|
|
@@ -77260,7 +77342,7 @@ const make$40 = Effect.gen(function* () {
|
|
|
77260
77342
|
resolve
|
|
77261
77343
|
});
|
|
77262
77344
|
});
|
|
77263
|
-
const layer$
|
|
77345
|
+
const layer$38 = Layer.effect(VcsDriverRegistry, make$41).pipe(Layer.provide(layer$39));
|
|
77264
77346
|
//#endregion
|
|
77265
77347
|
//#region src/checkpointing/CheckpointStore.ts
|
|
77266
77348
|
/**
|
|
@@ -77280,7 +77362,7 @@ const layer$37 = Layer.effect(VcsDriverRegistry, make$40).pipe(Layer.provide(lay
|
|
|
77280
77362
|
*/
|
|
77281
77363
|
/** Service tag for checkpoint persistence and restore operations. */
|
|
77282
77364
|
var CheckpointStore = class extends Context.Service()("@zl-tools/server/checkpointing/CheckpointStore") {};
|
|
77283
|
-
const make$
|
|
77365
|
+
const make$40 = Effect.gen(function* () {
|
|
77284
77366
|
const vcsRegistry = yield* VcsDriverRegistry;
|
|
77285
77367
|
const resolveCheckpoints = Effect.fn("CheckpointStore.resolveCheckpoints")(function* (operation, cwd) {
|
|
77286
77368
|
const handle = yield* vcsRegistry.resolve({ cwd });
|
|
@@ -77319,7 +77401,7 @@ const make$39 = Effect.gen(function* () {
|
|
|
77319
77401
|
deleteCheckpointRefs
|
|
77320
77402
|
});
|
|
77321
77403
|
});
|
|
77322
|
-
const layer$
|
|
77404
|
+
const layer$37 = Layer.effect(CheckpointStore, make$40);
|
|
77323
77405
|
//#endregion
|
|
77324
77406
|
//#region src/checkpointing/CheckpointDiffQuery.ts
|
|
77325
77407
|
/**
|
|
@@ -77341,7 +77423,7 @@ function buildTurnDiffResult(input, diff) {
|
|
|
77341
77423
|
diff
|
|
77342
77424
|
};
|
|
77343
77425
|
}
|
|
77344
|
-
const make$
|
|
77426
|
+
const make$39 = Effect.gen(function* () {
|
|
77345
77427
|
const projectionSnapshotQuery = yield* ProjectionSnapshotQuery;
|
|
77346
77428
|
const checkpointStore = yield* CheckpointStore;
|
|
77347
77429
|
const getTurnDiff = Effect.fn("getTurnDiff")(function* (input) {
|
|
@@ -77477,7 +77559,7 @@ const make$38 = Effect.gen(function* () {
|
|
|
77477
77559
|
getFullThreadDiff
|
|
77478
77560
|
});
|
|
77479
77561
|
});
|
|
77480
|
-
const layer$
|
|
77562
|
+
const layer$36 = Layer.effect(CheckpointDiffQuery, make$39);
|
|
77481
77563
|
//#endregion
|
|
77482
77564
|
//#region src/orchestration/Normalizer.ts
|
|
77483
77565
|
const canonicalizeClientCommandTimestamps = (command, receivedAt) => {
|
|
@@ -77793,7 +77875,7 @@ function makeUpdateState(input) {
|
|
|
77793
77875
|
output: input.output ?? null
|
|
77794
77876
|
};
|
|
77795
77877
|
}
|
|
77796
|
-
const make$
|
|
77878
|
+
const make$38 = Effect.fn("ProviderMaintenanceRunner.make")(function* () {
|
|
77797
77879
|
const providerRegistry = yield* ProviderRegistry;
|
|
77798
77880
|
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
|
|
77799
77881
|
const httpClient = yield* HttpClient.HttpClient;
|
|
@@ -77908,7 +77990,7 @@ const make$37 = Effect.fn("ProviderMaintenanceRunner.make")(function* () {
|
|
|
77908
77990
|
});
|
|
77909
77991
|
return ProviderMaintenanceRunner.of({ updateProvider });
|
|
77910
77992
|
});
|
|
77911
|
-
const layer$
|
|
77993
|
+
const layer$35 = Layer.effect(ProviderMaintenanceRunner, make$38());
|
|
77912
77994
|
//#endregion
|
|
77913
77995
|
//#region src/mcp/McpInvocationContext.ts
|
|
77914
77996
|
var McpInvocationContext = class extends Context.Service()("@zl-tools/server/mcp/McpInvocationContext") {};
|
|
@@ -78094,7 +78176,7 @@ const SERVER_OPERATIONS = /* @__PURE__ */ new Set([
|
|
|
78094
78176
|
"waitFor"
|
|
78095
78177
|
]);
|
|
78096
78178
|
var ServerPreviewAutomation = class extends Context.Service()("@zl-tools/server/preview/ServerPreviewAutomation") {};
|
|
78097
|
-
const make$
|
|
78179
|
+
const make$37 = Effect.gen(function* ServerPreviewAutomationMake() {
|
|
78098
78180
|
const manager = yield* PreviewManager;
|
|
78099
78181
|
const browser = yield* BrowserRuntime;
|
|
78100
78182
|
const invoke = Effect.fn("ServerPreviewAutomation.invoke")(function* (request) {
|
|
@@ -78244,7 +78326,7 @@ const make$36 = Effect.gen(function* ServerPreviewAutomationMake() {
|
|
|
78244
78326
|
invoke
|
|
78245
78327
|
});
|
|
78246
78328
|
});
|
|
78247
|
-
const layer$
|
|
78329
|
+
const layer$34 = Layer.effect(ServerPreviewAutomation, make$37);
|
|
78248
78330
|
//#endregion
|
|
78249
78331
|
//#region src/mcp/PreviewAutomationBroker.ts
|
|
78250
78332
|
var PreviewAutomationBroker = class extends Context.Service()("@zl-tools/server/mcp/PreviewAutomationBroker") {};
|
|
@@ -78632,8 +78714,8 @@ const makeWithServerHosted = Effect.fn("PreviewAutomationBroker.make")(function*
|
|
|
78632
78714
|
invoke
|
|
78633
78715
|
});
|
|
78634
78716
|
});
|
|
78635
|
-
const make$
|
|
78636
|
-
const layer$
|
|
78717
|
+
const make$36 = makeWithServerHosted();
|
|
78718
|
+
const layer$33 = Layer.effect(PreviewAutomationBroker, make$36);
|
|
78637
78719
|
const layerServerHosted = Layer.effect(PreviewAutomationBroker, Effect.gen(function* () {
|
|
78638
78720
|
const serverHosted = yield* ServerPreviewAutomation;
|
|
78639
78721
|
return yield* makeWithServerHosted(serverHosted);
|
|
@@ -78785,7 +78867,7 @@ const waitForScan = (cwd, finder, onFailure) => Effect.try({
|
|
|
78785
78867
|
timeout: WORKSPACE_INDEX_SCAN_TIMEOUT
|
|
78786
78868
|
})
|
|
78787
78869
|
}), Effect.withSpan("WorkspaceSearchIndex.waitForScan"));
|
|
78788
|
-
const make$
|
|
78870
|
+
const make$35 = Effect.fn("WorkspaceSearchIndex.make")(function* (cwd) {
|
|
78789
78871
|
const finder = yield* Effect.acquireRelease(createFinder(cwd), (finder) => Effect.try({
|
|
78790
78872
|
try: () => finder.destroy(),
|
|
78791
78873
|
catch: (cause) => new WorkspaceSearchIndexDestroyFailed({
|
|
@@ -78859,9 +78941,9 @@ const make$34 = Effect.fn("WorkspaceSearchIndex.make")(function* (cwd) {
|
|
|
78859
78941
|
* workspace root. WorkspaceSearchIndexMap owns memoization and idle cleanup;
|
|
78860
78942
|
* using a default cwd here would mix resources from different workspaces.
|
|
78861
78943
|
*/
|
|
78862
|
-
const layer$
|
|
78944
|
+
const layer$32 = (cwd) => Layer.effect(WorkspaceSearchIndex, make$35(cwd));
|
|
78863
78945
|
var WorkspaceSearchIndexMap = class extends LayerMap.Service()("@zl-tools/server/workspace/WorkspaceSearchIndexMap", {
|
|
78864
|
-
lookup: layer$
|
|
78946
|
+
lookup: layer$32,
|
|
78865
78947
|
idleTimeToLive: WORKSPACE_INDEX_IDLE_TTL
|
|
78866
78948
|
}) {};
|
|
78867
78949
|
//#endregion
|
|
@@ -78923,7 +79005,7 @@ const resolveBrowseTarget = Effect.fn("WorkspaceEntries.resolveBrowseTarget")(fu
|
|
|
78923
79005
|
if (!input.cwd) return yield* new WorkspaceEntriesCurrentProjectRequiredError({ partialPath: input.partialPath });
|
|
78924
79006
|
return path.resolve(expandHomePath$1(input.cwd, path), input.partialPath);
|
|
78925
79007
|
});
|
|
78926
|
-
const make$
|
|
79008
|
+
const make$34 = Effect.gen(function* () {
|
|
78927
79009
|
const path = yield* Path.Path;
|
|
78928
79010
|
const workspacePaths = yield* WorkspacePaths;
|
|
78929
79011
|
const workspaceSearchIndexes = yield* WorkspaceSearchIndexMap;
|
|
@@ -78997,7 +79079,7 @@ const make$33 = Effect.gen(function* () {
|
|
|
78997
79079
|
search
|
|
78998
79080
|
});
|
|
78999
79081
|
});
|
|
79000
|
-
const layer$
|
|
79082
|
+
const layer$31 = Layer.effect(WorkspaceEntries, make$34).pipe(Layer.provide(WorkspaceSearchIndexMap.layer));
|
|
79001
79083
|
//#endregion
|
|
79002
79084
|
//#region src/workspace/WorkspaceFileSystem.ts
|
|
79003
79085
|
/**
|
|
@@ -79066,7 +79148,7 @@ Schema$1.Union([
|
|
|
79066
79148
|
]);
|
|
79067
79149
|
/** Service tag for workspace file operations. */
|
|
79068
79150
|
var WorkspaceFileSystem = class extends Context.Service()("@zl-tools/server/workspace/WorkspaceFileSystem") {};
|
|
79069
|
-
const make$
|
|
79151
|
+
const make$33 = Effect.gen(function* () {
|
|
79070
79152
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
79071
79153
|
const path = yield* Path.Path;
|
|
79072
79154
|
const workspacePaths = yield* WorkspacePaths;
|
|
@@ -79198,7 +79280,7 @@ const make$32 = Effect.gen(function* () {
|
|
|
79198
79280
|
writeFile
|
|
79199
79281
|
});
|
|
79200
79282
|
});
|
|
79201
|
-
const layer$
|
|
79283
|
+
const layer$30 = Layer.effect(WorkspaceFileSystem, make$33);
|
|
79202
79284
|
//#endregion
|
|
79203
79285
|
//#region ../../packages/shared/src/projectScripts.ts
|
|
79204
79286
|
function projectScriptRuntimeEnv(input) {
|
|
@@ -79243,7 +79325,7 @@ var ProjectSetupScriptProjectNotFoundError = class extends Schema$1.TaggedErrorC
|
|
|
79243
79325
|
};
|
|
79244
79326
|
Schema$1.Union([ProjectSetupScriptOperationError, ProjectSetupScriptProjectNotFoundError]);
|
|
79245
79327
|
var ProjectSetupScriptRunner = class extends Context.Service()("@zl-tools/server/project/ProjectSetupScriptRunner") {};
|
|
79246
|
-
const make$
|
|
79328
|
+
const make$32 = Effect.gen(function* () {
|
|
79247
79329
|
const projectionSnapshotQuery = yield* ProjectionSnapshotQuery;
|
|
79248
79330
|
const terminalManager = yield* TerminalManager;
|
|
79249
79331
|
const runForThread = Effect.fn("ProjectSetupScriptRunner.runForThread")(function* (input) {
|
|
@@ -79301,7 +79383,7 @@ const make$31 = Effect.gen(function* () {
|
|
|
79301
79383
|
});
|
|
79302
79384
|
return ProjectSetupScriptRunner.of({ runForThread });
|
|
79303
79385
|
});
|
|
79304
|
-
const layer$
|
|
79386
|
+
const layer$29 = Layer.effect(ProjectSetupScriptRunner, make$32);
|
|
79305
79387
|
//#endregion
|
|
79306
79388
|
//#region src/sourceControl/SourceControlProvider.ts
|
|
79307
79389
|
const MAX_ERROR_TRANSPORT_VALUE_LENGTH = 256;
|
|
@@ -79604,7 +79686,7 @@ function decodeAzureDevOpsJson(raw, schema, operation, cwd) {
|
|
|
79604
79686
|
cause
|
|
79605
79687
|
})));
|
|
79606
79688
|
}
|
|
79607
|
-
const make$
|
|
79689
|
+
const make$31 = Effect.gen(function* () {
|
|
79608
79690
|
const process = yield* VcsProcess;
|
|
79609
79691
|
const execute = (input) => process.run({
|
|
79610
79692
|
operation: "AzureDevOpsCli.execute",
|
|
@@ -79746,7 +79828,7 @@ const make$30 = Effect.gen(function* () {
|
|
|
79746
79828
|
}).pipe(Effect.asVoid)
|
|
79747
79829
|
});
|
|
79748
79830
|
});
|
|
79749
|
-
const layer$
|
|
79831
|
+
const layer$28 = Layer.effect(AzureDevOpsCli, make$31);
|
|
79750
79832
|
//#endregion
|
|
79751
79833
|
//#region src/sourceControl/SourceControlProviderDiscovery.ts
|
|
79752
79834
|
function firstNonEmptyLine(text) {
|
|
@@ -79949,7 +80031,7 @@ function toChangeRequest$3(summary) {
|
|
|
79949
80031
|
isCrossRepository: false
|
|
79950
80032
|
};
|
|
79951
80033
|
}
|
|
79952
|
-
const make$
|
|
80034
|
+
const make$30 = Effect.gen(function* () {
|
|
79953
80035
|
const azure = yield* AzureDevOpsCli;
|
|
79954
80036
|
return SourceControlProvider.of({
|
|
79955
80037
|
kind: "azure-devops",
|
|
@@ -80041,7 +80123,7 @@ const make$29 = Effect.gen(function* () {
|
|
|
80041
80123
|
})))
|
|
80042
80124
|
});
|
|
80043
80125
|
});
|
|
80044
|
-
Layer.effect(SourceControlProvider, make$
|
|
80126
|
+
Layer.effect(SourceControlProvider, make$30);
|
|
80045
80127
|
//#endregion
|
|
80046
80128
|
//#region src/sourceControl/bitbucketPullRequests.ts
|
|
80047
80129
|
const BitbucketRepositoryRefSchema = Schema$1.Struct({
|
|
@@ -80355,7 +80437,7 @@ function responseError(operation, response) {
|
|
|
80355
80437
|
responseBodyLength: body.length
|
|
80356
80438
|
}))));
|
|
80357
80439
|
}
|
|
80358
|
-
const make$
|
|
80440
|
+
const make$29 = Effect.gen(function* () {
|
|
80359
80441
|
const config = yield* BitbucketApiEnvConfig;
|
|
80360
80442
|
const httpClient = yield* HttpClient.HttpClient;
|
|
80361
80443
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
@@ -80519,7 +80601,7 @@ const make$28 = Effect.gen(function* () {
|
|
|
80519
80601
|
})))
|
|
80520
80602
|
});
|
|
80521
80603
|
});
|
|
80522
|
-
const layer$
|
|
80604
|
+
const layer$26 = Layer.effect(BitbucketApi, make$29);
|
|
80523
80605
|
//#endregion
|
|
80524
80606
|
//#region src/sourceControl/BitbucketSourceControlProvider.ts
|
|
80525
80607
|
function toChangeRequest$2(summary) {
|
|
@@ -80537,7 +80619,7 @@ function toChangeRequest$2(summary) {
|
|
|
80537
80619
|
...summary.headRepositoryOwnerLogin !== void 0 ? { headRepositoryOwnerLogin: summary.headRepositoryOwnerLogin } : {}
|
|
80538
80620
|
};
|
|
80539
80621
|
}
|
|
80540
|
-
const make$
|
|
80622
|
+
const make$28 = Effect.gen(function* () {
|
|
80541
80623
|
const bitbucket = yield* BitbucketApi;
|
|
80542
80624
|
return SourceControlProvider.of({
|
|
80543
80625
|
kind: "bitbucket",
|
|
@@ -80628,7 +80710,7 @@ const make$27 = Effect.gen(function* () {
|
|
|
80628
80710
|
})))
|
|
80629
80711
|
});
|
|
80630
80712
|
});
|
|
80631
|
-
Layer.effect(SourceControlProvider, make$
|
|
80713
|
+
Layer.effect(SourceControlProvider, make$28);
|
|
80632
80714
|
const makeDiscovery = Effect.gen(function* () {
|
|
80633
80715
|
return {
|
|
80634
80716
|
type: "api",
|
|
@@ -80857,7 +80939,7 @@ function deriveRepositoryCloneUrlsFromCreateOutput(stdout, repository) {
|
|
|
80857
80939
|
sshUrl: `git@${fallbackHost}:${repository}.git`
|
|
80858
80940
|
};
|
|
80859
80941
|
}
|
|
80860
|
-
const make$
|
|
80942
|
+
const make$27 = Effect.gen(function* () {
|
|
80861
80943
|
const process = yield* VcsProcess;
|
|
80862
80944
|
const execute = (input) => process.run({
|
|
80863
80945
|
operation: "GitHubCli.execute",
|
|
@@ -80973,7 +81055,7 @@ const make$26 = Effect.gen(function* () {
|
|
|
80973
81055
|
}).pipe(Effect.asVoid)
|
|
80974
81056
|
});
|
|
80975
81057
|
});
|
|
80976
|
-
const layer$
|
|
81058
|
+
const layer$24 = Layer.effect(GitHubCli, make$27);
|
|
80977
81059
|
//#endregion
|
|
80978
81060
|
//#region src/sourceControl/gitHubAuthStatus.ts
|
|
80979
81061
|
const GitHubAuthStatusAccountSchema = Schema$1.Struct({
|
|
@@ -81074,7 +81156,7 @@ const discovery$1 = {
|
|
|
81074
81156
|
parseAuth: parseGitHubAuth,
|
|
81075
81157
|
installHint: "Install the GitHub command-line tool (`gh`) via https://cli.github.com/ or your package manager (for example `brew install gh`)."
|
|
81076
81158
|
};
|
|
81077
|
-
const make$
|
|
81159
|
+
const make$26 = Effect.gen(function* () {
|
|
81078
81160
|
const github = yield* GitHubCli;
|
|
81079
81161
|
const listChangeRequests = (input) => {
|
|
81080
81162
|
if (input.state === "open") return github.listOpenPullRequests({
|
|
@@ -81190,7 +81272,7 @@ const make$25 = Effect.gen(function* () {
|
|
|
81190
81272
|
})))
|
|
81191
81273
|
});
|
|
81192
81274
|
});
|
|
81193
|
-
Layer.effect(SourceControlProvider, make$
|
|
81275
|
+
Layer.effect(SourceControlProvider, make$26);
|
|
81194
81276
|
//#endregion
|
|
81195
81277
|
//#region src/sourceControl/gitLabMergeRequests.ts
|
|
81196
81278
|
const GitLabProjectReferenceSchema = Schema$1.Struct({
|
|
@@ -81501,7 +81583,7 @@ function parseRepositoryPath(repository) {
|
|
|
81501
81583
|
projectPath
|
|
81502
81584
|
};
|
|
81503
81585
|
}
|
|
81504
|
-
const make$
|
|
81586
|
+
const make$25 = Effect.gen(function* () {
|
|
81505
81587
|
const process = yield* VcsProcess;
|
|
81506
81588
|
const run = (input, mapError) => process.run({
|
|
81507
81589
|
operation: "GitLabCli.execute",
|
|
@@ -81650,7 +81732,7 @@ const make$24 = Effect.gen(function* () {
|
|
|
81650
81732
|
}).pipe(Effect.asVoid)
|
|
81651
81733
|
});
|
|
81652
81734
|
});
|
|
81653
|
-
const layer$
|
|
81735
|
+
const layer$22 = Layer.effect(GitLabCli, make$25);
|
|
81654
81736
|
//#endregion
|
|
81655
81737
|
//#region src/sourceControl/gitLabAuthStatus.ts
|
|
81656
81738
|
const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
|
|
@@ -81747,7 +81829,7 @@ const discovery = {
|
|
|
81747
81829
|
refineUnknownRemote: refineUnknownGitLabRemote,
|
|
81748
81830
|
installHint: "Install the GitLab command-line tool (`glab`) from https://gitlab.com/gitlab-org/cli or your package manager (for example `brew install glab`)."
|
|
81749
81831
|
};
|
|
81750
|
-
const make$
|
|
81832
|
+
const make$24 = Effect.gen(function* () {
|
|
81751
81833
|
const gitlab = yield* GitLabCli;
|
|
81752
81834
|
return SourceControlProvider.of({
|
|
81753
81835
|
kind: "gitlab",
|
|
@@ -81835,7 +81917,7 @@ const make$23 = Effect.gen(function* () {
|
|
|
81835
81917
|
})))
|
|
81836
81918
|
});
|
|
81837
81919
|
});
|
|
81838
|
-
Layer.effect(SourceControlProvider, make$
|
|
81920
|
+
Layer.effect(SourceControlProvider, make$24);
|
|
81839
81921
|
//#endregion
|
|
81840
81922
|
//#region src/sourceControl/SourceControlProviderRegistry.ts
|
|
81841
81923
|
const PROVIDER_DETECTION_CACHE_CAPACITY = 2048;
|
|
@@ -81986,12 +82068,12 @@ const makeWithProviders = Effect.fn("makeSourceControlProviderRegistryWithProvid
|
|
|
81986
82068
|
})), { concurrency: "unbounded" })
|
|
81987
82069
|
});
|
|
81988
82070
|
});
|
|
81989
|
-
const make$
|
|
81990
|
-
const github = yield* make$
|
|
81991
|
-
const gitlab = yield* make$
|
|
81992
|
-
const bitbucket = yield* make$
|
|
82071
|
+
const make$23 = Effect.gen(function* () {
|
|
82072
|
+
const github = yield* make$26;
|
|
82073
|
+
const gitlab = yield* make$24;
|
|
82074
|
+
const bitbucket = yield* make$28;
|
|
81993
82075
|
const bitbucketDiscovery = yield* makeDiscovery;
|
|
81994
|
-
const azureDevOps = yield* make$
|
|
82076
|
+
const azureDevOps = yield* make$30;
|
|
81995
82077
|
return yield* makeWithProviders([
|
|
81996
82078
|
{
|
|
81997
82079
|
kind: "github",
|
|
@@ -82015,7 +82097,7 @@ const make$22 = Effect.gen(function* () {
|
|
|
82015
82097
|
}
|
|
82016
82098
|
]);
|
|
82017
82099
|
});
|
|
82018
|
-
const layer$
|
|
82100
|
+
const layer$20 = Layer.effect(SourceControlProviderRegistry, make$23);
|
|
82019
82101
|
//#endregion
|
|
82020
82102
|
//#region src/git/GitManager.ts
|
|
82021
82103
|
var GitManager = class extends Context.Service()("@zl-tools/server/git/GitManager") {};
|
|
@@ -82228,7 +82310,7 @@ function toPullRequestHeadRemoteInfo(pr) {
|
|
|
82228
82310
|
...pr.headRepositoryOwnerLogin !== void 0 ? { headRepositoryOwnerLogin: pr.headRepositoryOwnerLogin } : {}
|
|
82229
82311
|
};
|
|
82230
82312
|
}
|
|
82231
|
-
const make$
|
|
82313
|
+
const make$22 = Effect.gen(function* () {
|
|
82232
82314
|
const gitCore = yield* GitVcsDriver;
|
|
82233
82315
|
const sourceControlProviders = yield* SourceControlProviderRegistry;
|
|
82234
82316
|
const textGeneration = yield* TextGeneration;
|
|
@@ -83107,7 +83189,7 @@ const make$21 = Effect.gen(function* () {
|
|
|
83107
83189
|
runStackedAction
|
|
83108
83190
|
});
|
|
83109
83191
|
});
|
|
83110
|
-
const layer$
|
|
83192
|
+
const layer$19 = Layer.effect(GitManager, make$22);
|
|
83111
83193
|
//#endregion
|
|
83112
83194
|
//#region src/git/GitWorkflowService.ts
|
|
83113
83195
|
var GitWorkflowService = class extends Context.Service()("@zl-tools/server/git/GitWorkflowService") {};
|
|
@@ -83153,7 +83235,7 @@ function hasMissingPathCause(value, seen = /* @__PURE__ */ new Set()) {
|
|
|
83153
83235
|
if (record.reason && typeof record.reason === "object" && record.reason._tag === "NotFound") return true;
|
|
83154
83236
|
return hasMissingPathCause(record.cause, seen);
|
|
83155
83237
|
}
|
|
83156
|
-
const make$
|
|
83238
|
+
const make$21 = Effect.gen(function* () {
|
|
83157
83239
|
const registry = yield* VcsDriverRegistry;
|
|
83158
83240
|
const git = yield* GitVcsDriver;
|
|
83159
83241
|
const gitManager = yield* GitManager;
|
|
@@ -83239,7 +83321,7 @@ const make$20 = Effect.gen(function* () {
|
|
|
83239
83321
|
renameBranch: (input) => ensureGit("GitWorkflowService.renameBranch", input.cwd).pipe(Effect.andThen(git.renameBranch(input)))
|
|
83240
83322
|
});
|
|
83241
83323
|
});
|
|
83242
|
-
const layer$
|
|
83324
|
+
const layer$18 = Layer.effect(GitWorkflowService, make$21);
|
|
83243
83325
|
//#endregion
|
|
83244
83326
|
//#region src/vcs/VcsStatusBroadcaster.ts
|
|
83245
83327
|
const DEFAULT_VCS_STATUS_REFRESH_INTERVAL = Duration.seconds(30);
|
|
@@ -83311,7 +83393,7 @@ function fingerprintStatusPart(status) {
|
|
|
83311
83393
|
return JSON.stringify(status);
|
|
83312
83394
|
}
|
|
83313
83395
|
const normalizeCwd = (cwd) => Effect.service(FileSystem.FileSystem).pipe(Effect.flatMap((fs) => fs.realPath(cwd)), Effect.orElseSucceed(() => cwd));
|
|
83314
|
-
const make$
|
|
83396
|
+
const make$20 = Effect.gen(function* () {
|
|
83315
83397
|
const workflow = yield* GitWorkflowService;
|
|
83316
83398
|
const fs = yield* FileSystem.FileSystem;
|
|
83317
83399
|
const changesPubSub = yield* Effect.acquireRelease(PubSub.unbounded(), (pubsub) => PubSub.shutdown(pubsub));
|
|
@@ -83535,7 +83617,7 @@ const make$19 = Effect.gen(function* () {
|
|
|
83535
83617
|
streamStatus
|
|
83536
83618
|
});
|
|
83537
83619
|
});
|
|
83538
|
-
const layer$
|
|
83620
|
+
const layer$17 = Layer.effect(VcsStatusBroadcaster, make$20);
|
|
83539
83621
|
//#endregion
|
|
83540
83622
|
//#region src/vcs/VcsProvisioningService.ts
|
|
83541
83623
|
var VcsProvisioningService = class extends Context.Service()("@zl-tools/server/vcs/VcsProvisioningService") {};
|
|
@@ -83548,7 +83630,7 @@ function resolveRequestedKind(kind) {
|
|
|
83548
83630
|
}));
|
|
83549
83631
|
return Effect.succeed(kind);
|
|
83550
83632
|
}
|
|
83551
|
-
const make$
|
|
83633
|
+
const make$19 = Effect.gen(function* () {
|
|
83552
83634
|
const registry = yield* VcsDriverRegistry;
|
|
83553
83635
|
const initRepository = Effect.fn("VcsProvisioningService.initRepository")(function* (input) {
|
|
83554
83636
|
const kind = yield* resolveRequestedKind(input.kind);
|
|
@@ -83556,11 +83638,11 @@ const make$18 = Effect.gen(function* () {
|
|
|
83556
83638
|
});
|
|
83557
83639
|
return VcsProvisioningService.of({ initRepository });
|
|
83558
83640
|
});
|
|
83559
|
-
const layer$
|
|
83641
|
+
const layer$16 = Layer.effect(VcsProvisioningService, make$19);
|
|
83560
83642
|
//#endregion
|
|
83561
83643
|
//#region src/review/ReviewService.ts
|
|
83562
83644
|
var ReviewService = class extends Context.Service()("@zl-tools/server/review/ReviewService") {};
|
|
83563
|
-
const make$
|
|
83645
|
+
const make$18 = Effect.gen(function* () {
|
|
83564
83646
|
const config = yield* ServerConfig;
|
|
83565
83647
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
83566
83648
|
const path = yield* Path.Path;
|
|
@@ -83616,7 +83698,7 @@ const make$17 = Effect.gen(function* () {
|
|
|
83616
83698
|
});
|
|
83617
83699
|
return ReviewService.of({ getDiffPreview });
|
|
83618
83700
|
});
|
|
83619
|
-
const layer$
|
|
83701
|
+
const layer$15 = Layer.effect(ReviewService, make$18);
|
|
83620
83702
|
//#endregion
|
|
83621
83703
|
//#region src/diagnostics/ProcessResourceMonitor.ts
|
|
83622
83704
|
const SAMPLE_INTERVAL_MS = 5e3;
|
|
@@ -83767,7 +83849,7 @@ function aggregateProcessResourceHistory(input) {
|
|
|
83767
83849
|
}) : Option.none()
|
|
83768
83850
|
};
|
|
83769
83851
|
}
|
|
83770
|
-
const make$
|
|
83852
|
+
const make$17 = Effect.gen(function* () {
|
|
83771
83853
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
83772
83854
|
const state = yield* Ref.make({
|
|
83773
83855
|
samples: [],
|
|
@@ -83816,7 +83898,7 @@ const make$16 = Effect.gen(function* () {
|
|
|
83816
83898
|
});
|
|
83817
83899
|
return ProcessResourceMonitor.of({ readHistory });
|
|
83818
83900
|
});
|
|
83819
|
-
const layer$
|
|
83901
|
+
const layer$14 = Layer.effect(ProcessResourceMonitor, make$17);
|
|
83820
83902
|
//#endregion
|
|
83821
83903
|
//#region src/diagnostics/TraceDiagnostics.ts
|
|
83822
83904
|
var TraceFileReadError = class extends Schema$1.TaggedErrorClass()("TraceFileReadError", {
|
|
@@ -84087,7 +84169,7 @@ function readTraceFile(fileSystem, path) {
|
|
|
84087
84169
|
cause
|
|
84088
84170
|
})) }));
|
|
84089
84171
|
}
|
|
84090
|
-
const make$
|
|
84172
|
+
const make$16 = Effect.gen(function* () {
|
|
84091
84173
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
84092
84174
|
const read = Effect.fn("TraceDiagnostics.read")(function* (options) {
|
|
84093
84175
|
const readAt = options.readAt ?? (yield* DateTime.now);
|
|
@@ -84131,7 +84213,7 @@ const make$15 = Effect.gen(function* () {
|
|
|
84131
84213
|
});
|
|
84132
84214
|
return TraceDiagnostics.of({ read });
|
|
84133
84215
|
});
|
|
84134
|
-
const layer$
|
|
84216
|
+
const layer$13 = Layer.effect(TraceDiagnostics, make$16);
|
|
84135
84217
|
function readTraceDiagnostics(options) {
|
|
84136
84218
|
return Effect.gen(function* () {
|
|
84137
84219
|
return yield* (yield* TraceDiagnostics).read(options);
|
|
@@ -84523,7 +84605,7 @@ const turnSelect = `
|
|
|
84523
84605
|
reported_cost_provenance AS "reportedCostProvenance", completeness,
|
|
84524
84606
|
completeness_reasons_json AS "completenessReasonsJson"
|
|
84525
84607
|
FROM usage_analytics_turns`;
|
|
84526
|
-
const make$
|
|
84608
|
+
const make$15 = Effect.gen(function* () {
|
|
84527
84609
|
const sql = yield* SqlClient.SqlClient;
|
|
84528
84610
|
const environmentId = yield* (yield* ServerEnvironment).getEnvironmentId;
|
|
84529
84611
|
const getThreadContext = (threadId) => sql`
|
|
@@ -85330,7 +85412,7 @@ const make$14 = Effect.gen(function* () {
|
|
|
85330
85412
|
getActivity
|
|
85331
85413
|
});
|
|
85332
85414
|
});
|
|
85333
|
-
const layer$
|
|
85415
|
+
const layer$12 = Layer.effect(UsageAnalytics, make$15);
|
|
85334
85416
|
//#endregion
|
|
85335
85417
|
//#region src/userState/UserStateService.ts
|
|
85336
85418
|
const isUserStateError = Schema$1.is(UserStateError);
|
|
@@ -85340,7 +85422,7 @@ const persistenceError = (message) => new UserStateError({
|
|
|
85340
85422
|
message
|
|
85341
85423
|
});
|
|
85342
85424
|
var UserStateService = class extends Context.Service()("@zl-tools/server/userState/UserStateService") {};
|
|
85343
|
-
const make$
|
|
85425
|
+
const make$14 = Effect.gen(function* () {
|
|
85344
85426
|
const sql = yield* SqlClient.SqlClient;
|
|
85345
85427
|
const changes = yield* PubSub.unbounded();
|
|
85346
85428
|
const writeSemaphore = yield* Semaphore.make(1);
|
|
@@ -85477,15 +85559,15 @@ const make$13 = Effect.gen(function* () {
|
|
|
85477
85559
|
streamChanges: Stream.fromPubSub(changes)
|
|
85478
85560
|
});
|
|
85479
85561
|
});
|
|
85480
|
-
const layer$
|
|
85562
|
+
const layer$11 = Layer.effect(UserStateService, make$14);
|
|
85481
85563
|
//#endregion
|
|
85482
85564
|
//#region src/assist/PromptEnhancement.ts
|
|
85483
|
-
const RECENT_MESSAGE_LIMIT = 12;
|
|
85565
|
+
const RECENT_MESSAGE_LIMIT$1 = 12;
|
|
85484
85566
|
const GENERATION_TIMEOUT = Duration.seconds(45);
|
|
85485
85567
|
const decodeEnhancedPrompt = Schema$1.decodeUnknownEffect(PromptEnhancementPrompt);
|
|
85486
85568
|
const isPromptEnhancementError = Schema$1.is(PromptEnhancementError);
|
|
85487
85569
|
var PromptEnhancement = class extends Context.Service()("@zl-tools/server/assist/PromptEnhancement") {};
|
|
85488
|
-
const make$
|
|
85570
|
+
const make$13 = Effect.gen(function* () {
|
|
85489
85571
|
const projections = yield* ProjectionSnapshotQuery;
|
|
85490
85572
|
const serverSettings = yield* ServerSettingsService;
|
|
85491
85573
|
const textGeneration = yield* TextGeneration;
|
|
@@ -85526,7 +85608,7 @@ const make$12 = Effect.gen(function* () {
|
|
|
85526
85608
|
requestId: input.requestId,
|
|
85527
85609
|
reason: "Prompt improvement conversation context is unavailable"
|
|
85528
85610
|
});
|
|
85529
|
-
recentMessages = yield* readMessages(input.projectId, input.threadId, RECENT_MESSAGE_LIMIT);
|
|
85611
|
+
recentMessages = yield* readMessages(input.projectId, input.threadId, RECENT_MESSAGE_LIMIT$1);
|
|
85530
85612
|
}
|
|
85531
85613
|
const settings = yield* serverSettings.getSettings;
|
|
85532
85614
|
if (!settings.promptEnhancement.enabled) return yield* new PromptEnhancementError({
|
|
@@ -85580,7 +85662,116 @@ const make$12 = Effect.gen(function* () {
|
|
|
85580
85662
|
cancel
|
|
85581
85663
|
});
|
|
85582
85664
|
});
|
|
85583
|
-
const layer$
|
|
85665
|
+
const layer$10 = Layer.effect(PromptEnhancement, make$13);
|
|
85666
|
+
//#endregion
|
|
85667
|
+
//#region src/assist/ThreadTitleRegeneration.ts
|
|
85668
|
+
const RECENT_MESSAGE_LIMIT = 12;
|
|
85669
|
+
const TITLE_REGENERATION_TIMEOUT = Duration.minutes(3);
|
|
85670
|
+
var ThreadTitleRegeneration = class extends Context.Service()("@zl-tools/server/assist/ThreadTitleRegeneration") {};
|
|
85671
|
+
const make$12 = Effect.gen(function* () {
|
|
85672
|
+
const projections = yield* ProjectionSnapshotQuery;
|
|
85673
|
+
const orchestration = yield* OrchestrationEngineService;
|
|
85674
|
+
const settingsService = yield* ServerSettingsService;
|
|
85675
|
+
const textGeneration = yield* TextGeneration;
|
|
85676
|
+
const crypto = yield* Crypto.Crypto;
|
|
85677
|
+
const workQueue = yield* Queue.unbounded();
|
|
85678
|
+
const queueState = yield* SynchronizedRef.make([]);
|
|
85679
|
+
yield* Effect.addFinalizer(() => Queue.shutdown(workQueue));
|
|
85680
|
+
const getQueue = SynchronizedRef.get(queueState).pipe(Effect.map((entries) => ({ entries: entries.map(({ threadId, status }) => ({
|
|
85681
|
+
threadId,
|
|
85682
|
+
status
|
|
85683
|
+
})) })));
|
|
85684
|
+
const removeFromQueueState = (threadId) => SynchronizedRef.update(queueState, (entries) => entries.filter((entry) => entry.threadId !== threadId));
|
|
85685
|
+
const process = Effect.fn("ThreadTitleRegeneration.process")(function* (threadId) {
|
|
85686
|
+
yield* SynchronizedRef.update(queueState, (entries) => entries.map((entry) => entry.threadId === threadId ? {
|
|
85687
|
+
...entry,
|
|
85688
|
+
status: "processing"
|
|
85689
|
+
} : entry));
|
|
85690
|
+
const threadBefore = yield* projections.getThreadShellById(threadId);
|
|
85691
|
+
if (Option.isNone(threadBefore)) return yield* new ThreadTitleRegenerationError({
|
|
85692
|
+
threadId,
|
|
85693
|
+
reason: "Thread was not found while regenerating its title"
|
|
85694
|
+
});
|
|
85695
|
+
const project = yield* projections.getProjectShellById(threadBefore.value.projectId);
|
|
85696
|
+
if (Option.isNone(project)) return yield* new ThreadTitleRegenerationError({
|
|
85697
|
+
threadId,
|
|
85698
|
+
reason: "Thread project was not found while regenerating its title"
|
|
85699
|
+
});
|
|
85700
|
+
const readRecentMessages = projections.getRecentPromptEnhancementMessages;
|
|
85701
|
+
if (!readRecentMessages) return yield* new ThreadTitleRegenerationError({
|
|
85702
|
+
threadId,
|
|
85703
|
+
reason: "Thread conversation context is unavailable"
|
|
85704
|
+
});
|
|
85705
|
+
const recentMessages = yield* readRecentMessages(threadBefore.value.projectId, threadId, RECENT_MESSAGE_LIMIT);
|
|
85706
|
+
const latestUserMessage = [...recentMessages].toReversed().find((message) => message.role === "user")?.text;
|
|
85707
|
+
const settings = yield* settingsService.getSettings;
|
|
85708
|
+
const generated = yield* textGeneration.generateThreadTitle({
|
|
85709
|
+
cwd: threadBefore.value.worktreePath ?? project.value.workspaceRoot,
|
|
85710
|
+
message: latestUserMessage ?? threadBefore.value.title,
|
|
85711
|
+
modelSelection: settings.textGenerationModelSelection,
|
|
85712
|
+
regeneration: {
|
|
85713
|
+
threadId,
|
|
85714
|
+
recentMessages,
|
|
85715
|
+
guidelines: settings.titleRegenerationPromptGuidelines,
|
|
85716
|
+
maxCharacters: settings.titleRegenerationCharactersLimit
|
|
85717
|
+
}
|
|
85718
|
+
}).pipe(Effect.timeout(TITLE_REGENERATION_TIMEOUT));
|
|
85719
|
+
const threadAfter = yield* projections.getThreadShellById(threadId);
|
|
85720
|
+
if (Option.isNone(threadAfter)) return;
|
|
85721
|
+
if (threadAfter.value.title !== threadBefore.value.title) {
|
|
85722
|
+
yield* Effect.logInfo("thread title regeneration skipped after concurrent title change", { threadId });
|
|
85723
|
+
return;
|
|
85724
|
+
}
|
|
85725
|
+
const commandId = CommandId.make(`server:title-regeneration:${yield* crypto.randomUUIDv4}`);
|
|
85726
|
+
yield* orchestration.dispatch({
|
|
85727
|
+
type: "thread.meta.update",
|
|
85728
|
+
commandId,
|
|
85729
|
+
threadId,
|
|
85730
|
+
title: generated.title
|
|
85731
|
+
});
|
|
85732
|
+
});
|
|
85733
|
+
const runEntry = (threadId) => process(threadId).pipe(Effect.catchCause((cause) => Effect.logWarning("thread title regeneration failed", {
|
|
85734
|
+
threadId,
|
|
85735
|
+
cause
|
|
85736
|
+
})), Effect.ensuring(removeFromQueueState(threadId)));
|
|
85737
|
+
yield* Queue.take(workQueue).pipe(Effect.flatMap(runEntry), Effect.forever, Effect.forkScoped);
|
|
85738
|
+
const enqueue = Effect.fn("ThreadTitleRegeneration.enqueue")(function* (input) {
|
|
85739
|
+
const thread = yield* projections.getThreadShellById(input.threadId).pipe(Effect.mapError((cause) => new ThreadTitleRegenerationError({
|
|
85740
|
+
threadId: input.threadId,
|
|
85741
|
+
reason: "Unable to verify the thread before queueing title regeneration",
|
|
85742
|
+
cause
|
|
85743
|
+
})));
|
|
85744
|
+
if (Option.isNone(thread)) return yield* new ThreadTitleRegenerationError({
|
|
85745
|
+
threadId: input.threadId,
|
|
85746
|
+
reason: "Thread was not found"
|
|
85747
|
+
});
|
|
85748
|
+
return yield* SynchronizedRef.modifyEffect(queueState, (entries) => {
|
|
85749
|
+
const existingIndex = entries.findIndex((entry) => entry.threadId === input.threadId);
|
|
85750
|
+
if (existingIndex >= 0) {
|
|
85751
|
+
const existing = entries[existingIndex];
|
|
85752
|
+
return Effect.succeed([{
|
|
85753
|
+
status: "already-queued",
|
|
85754
|
+
queueStatus: existing.status,
|
|
85755
|
+
position: existingIndex + 1
|
|
85756
|
+
}, entries]);
|
|
85757
|
+
}
|
|
85758
|
+
const next = [...entries, {
|
|
85759
|
+
threadId: input.threadId,
|
|
85760
|
+
status: "queued"
|
|
85761
|
+
}];
|
|
85762
|
+
return Queue.offer(workQueue, input.threadId).pipe(Effect.as([{
|
|
85763
|
+
status: "queued",
|
|
85764
|
+
queueStatus: "queued",
|
|
85765
|
+
position: next.length
|
|
85766
|
+
}, next]));
|
|
85767
|
+
});
|
|
85768
|
+
});
|
|
85769
|
+
return ThreadTitleRegeneration.of({
|
|
85770
|
+
getQueue,
|
|
85771
|
+
enqueue
|
|
85772
|
+
});
|
|
85773
|
+
});
|
|
85774
|
+
const layer$9 = Layer.effect(ThreadTitleRegeneration, make$12);
|
|
85584
85775
|
//#endregion
|
|
85585
85776
|
//#region src/serverVersionAdvisory.ts
|
|
85586
85777
|
const SERVER_VERSION_CHECK_INTERVAL = Duration.hours(6);
|
|
@@ -86331,6 +86522,8 @@ const RPC_REQUIRED_SCOPE = /* @__PURE__ */ new Map([
|
|
|
86331
86522
|
[WS_METHODS.starterSuggestionsGet, AuthOrchestrationOperateScope],
|
|
86332
86523
|
[WS_METHODS.promptEnhancementGenerate, AuthOrchestrationOperateScope],
|
|
86333
86524
|
[WS_METHODS.promptEnhancementCancel, AuthOrchestrationOperateScope],
|
|
86525
|
+
[WS_METHODS.threadTitleRegenerationGetQueue, AuthOrchestrationReadScope],
|
|
86526
|
+
[WS_METHODS.threadTitleRegenerationEnqueue, AuthOrchestrationOperateScope],
|
|
86334
86527
|
[WS_METHODS.serverProbe, AuthOrchestrationReadScope],
|
|
86335
86528
|
[WS_METHODS.serverGetConfig, AuthOrchestrationReadScope],
|
|
86336
86529
|
[WS_METHODS.serverResetProductAnalyticsIdentity, AuthAccessWriteScope],
|
|
@@ -86454,6 +86647,7 @@ const makeWsRpcLayer = (currentSession, previewAutomationBroker) => WsRpcGroup.t
|
|
|
86454
86647
|
const usageAnalytics = yield* UsageAnalytics;
|
|
86455
86648
|
const starterSuggestions = yield* StarterSuggestions;
|
|
86456
86649
|
const promptEnhancement = yield* PromptEnhancement;
|
|
86650
|
+
const threadTitleRegeneration = yield* ThreadTitleRegeneration;
|
|
86457
86651
|
const serverVersionAdvisory = yield* ServerVersionAdvisoryService;
|
|
86458
86652
|
const supervisedUpdate = yield* Effect.serviceOption(SupervisedUpdateClient);
|
|
86459
86653
|
const supervisedUpdateStream = Option.match(supervisedUpdate, {
|
|
@@ -86820,6 +87014,8 @@ const makeWsRpcLayer = (currentSession, previewAutomationBroker) => WsRpcGroup.t
|
|
|
86820
87014
|
[WS_METHODS.starterSuggestionsGet]: (input) => observeRpcEffect$1(WS_METHODS.starterSuggestionsGet, starterSuggestions.get(input), { "rpc.aggregate": "assist" }),
|
|
86821
87015
|
[WS_METHODS.promptEnhancementGenerate]: (input) => observeRpcEffect$1(WS_METHODS.promptEnhancementGenerate, promptEnhancement.generate(input), { "rpc.aggregate": "assist" }),
|
|
86822
87016
|
[WS_METHODS.promptEnhancementCancel]: (input) => observeRpcEffect$1(WS_METHODS.promptEnhancementCancel, promptEnhancement.cancel(input), { "rpc.aggregate": "assist" }),
|
|
87017
|
+
[WS_METHODS.threadTitleRegenerationGetQueue]: (_input) => observeRpcEffect$1(WS_METHODS.threadTitleRegenerationGetQueue, threadTitleRegeneration.getQueue, { "rpc.aggregate": "assist" }),
|
|
87018
|
+
[WS_METHODS.threadTitleRegenerationEnqueue]: (input) => observeRpcEffect$1(WS_METHODS.threadTitleRegenerationEnqueue, threadTitleRegeneration.enqueue(input), { "rpc.aggregate": "assist" }),
|
|
86823
87019
|
[ORCHESTRATION_WS_METHODS.dispatchCommand]: (command) => observeRpcEffect$1(ORCHESTRATION_WS_METHODS.dispatchCommand, normalizeDispatchCommand(command).pipe(Effect.flatMap(dispatchNormalizedCommand), Effect.mapError((cause) => isOrchestrationDispatchCommandError(cause) ? cause : new OrchestrationDispatchCommandError({
|
|
86824
87020
|
message: "Failed to dispatch orchestration command",
|
|
86825
87021
|
cause
|
|
@@ -87351,7 +87547,7 @@ const websocketRpcRouteLayer = Layer.unwrap(Effect.gen(function* () {
|
|
|
87351
87547
|
const serverAuth = yield* EnvironmentAuth;
|
|
87352
87548
|
const sessions = yield* SessionStore;
|
|
87353
87549
|
const session = yield* serverAuth.authenticateWebSocketUpgrade(request).pipe(Effect.catchIf(isServerAuthCredentialError, (error) => failEnvironmentAuthInvalid(serverAuthCredentialReason(error))), Effect.catchIf(isServerAuthInternalError, (error) => failEnvironmentInternal("internal_error", error)));
|
|
87354
|
-
const rpcWebSocketHttpEffect = yield* RpcServer.toHttpEffectWebsocket(WsRpcGroup, { disableTracing: true }).pipe(Effect.provide(makeWsRpcLayer(session, previewAutomationBroker).pipe(Layer.provideMerge(RpcSerialization.layerJson), Layer.provide(layer$
|
|
87550
|
+
const rpcWebSocketHttpEffect = yield* RpcServer.toHttpEffectWebsocket(WsRpcGroup, { disableTracing: true }).pipe(Effect.provide(makeWsRpcLayer(session, previewAutomationBroker).pipe(Layer.provideMerge(RpcSerialization.layerJson), Layer.provide(layer$35), Layer.provide(layer$7.pipe(Layer.provide(layer$20.pipe(Layer.provide(Layer.mergeAll(layer$28, layer$26, layer$24, layer$22)), Layer.provideMerge(layer$40), Layer.provide(layer$38.pipe(Layer.provide(layer$39))))), Layer.provide(layer$41))))));
|
|
87355
87551
|
return yield* Effect.acquireUseRelease(Effect.gen(function* () {
|
|
87356
87552
|
yield* sessions.markConnected(session.sessionId);
|
|
87357
87553
|
const live = yield* Ref.updateAndGet(liveConnections, (count) => count + 1);
|
|
@@ -88606,6 +88802,7 @@ const dependencies$1 = [
|
|
|
88606
88802
|
McpInvocationContext,
|
|
88607
88803
|
ProjectionSnapshotQuery,
|
|
88608
88804
|
OrchestrationEngineService,
|
|
88805
|
+
ThreadTitleRegeneration,
|
|
88609
88806
|
Crypto.Crypto
|
|
88610
88807
|
];
|
|
88611
88808
|
const ThreadSetTitleTool = Tool.make("thread_set_title", {
|
|
@@ -88629,7 +88826,14 @@ const ThreadRequestResolveTool = Tool.make("thread_request_resolve", {
|
|
|
88629
88826
|
failure: ThreadControlError,
|
|
88630
88827
|
dependencies: dependencies$1
|
|
88631
88828
|
}).annotate(Tool.Title, "Request resolve for this thread").annotate(Tool.Destructive, false).annotate(Tool.Idempotent, true);
|
|
88632
|
-
const
|
|
88829
|
+
const ThreadRegenerateTitleTool = Tool.make("thread_regenerate_title", {
|
|
88830
|
+
description: "Queue background title regeneration for this Zettai Labs Code thread using the server's configured text-generation model and title-regeneration settings. Applies only to the calling thread; repeated calls while it is queued or processing return the existing queue state.",
|
|
88831
|
+
parameters: Schema$1.Struct({}),
|
|
88832
|
+
success: ThreadTitleRegenerationEnqueueResult,
|
|
88833
|
+
failure: ThreadControlError,
|
|
88834
|
+
dependencies: dependencies$1
|
|
88835
|
+
}).annotate(Tool.Title, "Regenerate this thread's title").annotate(Tool.Destructive, false).annotate(Tool.Idempotent, true);
|
|
88836
|
+
const ThreadToolkit = Toolkit.make(ThreadSetTitleTool, ThreadRequestResolveTool, ThreadRegenerateTitleTool);
|
|
88633
88837
|
//#endregion
|
|
88634
88838
|
//#region src/mcp/toolkits/thread/handlers.ts
|
|
88635
88839
|
const failureMessage$1 = (cause) => cause instanceof Error ? cause.message : String(cause);
|
|
@@ -88681,7 +88885,11 @@ const ThreadToolkitHandlersLive = ThreadToolkit.toLayer({
|
|
|
88681
88885
|
status: "pending",
|
|
88682
88886
|
appliesAfterCurrentTurn: thread.latestTurn?.state === "running" || thread.session?.status === "running"
|
|
88683
88887
|
};
|
|
88684
|
-
}).pipe(Effect.mapError(asThreadError("thread_request_resolve")))
|
|
88888
|
+
}).pipe(Effect.mapError(asThreadError("thread_request_resolve"))),
|
|
88889
|
+
thread_regenerate_title: () => Effect.gen(function* () {
|
|
88890
|
+
const { invocation } = yield* requireCallingThread("thread_regenerate_title");
|
|
88891
|
+
return yield* (yield* ThreadTitleRegeneration).enqueue({ threadId: invocation.threadId });
|
|
88892
|
+
}).pipe(Effect.mapError(asThreadError("thread_regenerate_title")))
|
|
88685
88893
|
});
|
|
88686
88894
|
//#endregion
|
|
88687
88895
|
//#region src/mcp/toolkits/workspace/tools.ts
|
|
@@ -92874,7 +93082,7 @@ const ObservabilityLive = Layer.unwrap(Effect.gen(function* () {
|
|
|
92874
93082
|
sink,
|
|
92875
93083
|
...delegate ? { delegate } : {}
|
|
92876
93084
|
});
|
|
92877
|
-
return Layer.mergeAll(Layer.succeed(Tracer.Tracer, tracer), layer$
|
|
93085
|
+
return Layer.mergeAll(Layer.succeed(Tracer.Tracer, tracer), layer$46(sink));
|
|
92878
93086
|
})).pipe(Layer.provideMerge(otlpSerializationLayer));
|
|
92879
93087
|
const metricsLayer = config.otlpMetricsUrl === void 0 ? Layer.empty : OtlpMetrics.layer({
|
|
92880
93088
|
url: config.otlpMetricsUrl,
|
|
@@ -93579,46 +93787,47 @@ const PlatformServicesLive = Layer.unwrap(Effect.gen(function* () {
|
|
|
93579
93787
|
return layer;
|
|
93580
93788
|
}
|
|
93581
93789
|
}));
|
|
93582
|
-
const ReactorLayerLive = Layer.empty.pipe(Layer.provideMerge(OrchestrationReactorLive), Layer.provideMerge(ProviderRuntimeIngestionLive), Layer.provideMerge(ProviderCommandReactorLive), Layer.provideMerge(CheckpointReactorLive), Layer.provideMerge(ThreadLifecycleReactorLive), Layer.provideMerge(layer$1.pipe(Layer.provide(layer$
|
|
93790
|
+
const ReactorLayerLive = Layer.empty.pipe(Layer.provideMerge(OrchestrationReactorLive), Layer.provideMerge(ProviderRuntimeIngestionLive), Layer.provideMerge(ProviderCommandReactorLive), Layer.provideMerge(CheckpointReactorLive), Layer.provideMerge(ThreadLifecycleReactorLive), Layer.provideMerge(layer$1.pipe(Layer.provide(layer$73))), Layer.provideMerge(RuntimeReceiptBusLive));
|
|
93583
93791
|
const ProviderSessionDirectoryLayerLive = ProviderSessionDirectoryLive.pipe(Layer.provide(layer$4));
|
|
93584
93792
|
const ProviderLayerLive = ProviderServiceLive.pipe(Layer.provide(ProviderAdapterRegistryLive), Layer.provideMerge(ProviderSessionDirectoryLayerLive));
|
|
93585
93793
|
const PersistenceLayerLive = Layer.empty.pipe(Layer.provideMerge(layerConfig));
|
|
93586
|
-
const UsageAnalyticsLayerLive = layer$
|
|
93587
|
-
const VcsDriverRegistryLayerLive = layer$
|
|
93588
|
-
const SourceControlProviderRegistryLayerLive = layer$
|
|
93589
|
-
const GitManagerLayerLive = layer$
|
|
93590
|
-
const GitLayerLive = Layer.empty.pipe(Layer.provideMerge(GitManagerLayerLive), Layer.provideMerge(layer$
|
|
93591
|
-
const GitWorkflowLayerLive = layer$
|
|
93592
|
-
const SourceControlRepositoryServiceLayerLive = layer$6.pipe(Layer.provideMerge(layer$
|
|
93593
|
-
const ReviewLayerLive = layer$
|
|
93594
|
-
const VcsLayerLive = Layer.empty.pipe(Layer.provideMerge(layer$
|
|
93595
|
-
const CheckpointingLayerLive = Layer.empty.pipe(Layer.provideMerge(layer$
|
|
93596
|
-
const PortScannerLayerLive = layer$
|
|
93597
|
-
const TerminalLayerLive = layer$
|
|
93598
|
-
const BrowserRuntimeLayerLive = layer$
|
|
93794
|
+
const UsageAnalyticsLayerLive = layer$12.pipe(Layer.provide(PersistenceLayerLive), Layer.provide(layer$66));
|
|
93795
|
+
const VcsDriverRegistryLayerLive = layer$38.pipe(Layer.provide(layer$39));
|
|
93796
|
+
const SourceControlProviderRegistryLayerLive = layer$20.pipe(Layer.provide(Layer.mergeAll(layer$28, layer$26, layer$24, layer$22)), Layer.provideMerge(layer$40), Layer.provideMerge(VcsDriverRegistryLayerLive));
|
|
93797
|
+
const GitManagerLayerLive = layer$19.pipe(Layer.provideMerge(layer$29), Layer.provideMerge(layer$40), Layer.provideMerge(SourceControlProviderRegistryLayerLive), Layer.provideMerge(layer$52));
|
|
93798
|
+
const GitLayerLive = Layer.empty.pipe(Layer.provideMerge(GitManagerLayerLive), Layer.provideMerge(layer$40));
|
|
93799
|
+
const GitWorkflowLayerLive = layer$18.pipe(Layer.provideMerge(VcsDriverRegistryLayerLive), Layer.provideMerge(GitLayerLive));
|
|
93800
|
+
const SourceControlRepositoryServiceLayerLive = layer$6.pipe(Layer.provideMerge(layer$40), Layer.provideMerge(SourceControlProviderRegistryLayerLive));
|
|
93801
|
+
const ReviewLayerLive = layer$15.pipe(Layer.provideMerge(layer$40), Layer.provideMerge(VcsDriverRegistryLayerLive));
|
|
93802
|
+
const VcsLayerLive = Layer.empty.pipe(Layer.provideMerge(layer$39), Layer.provideMerge(VcsDriverRegistryLayerLive), Layer.provideMerge(layer$16.pipe(Layer.provide(VcsDriverRegistryLayerLive))), Layer.provideMerge(GitWorkflowLayerLive), Layer.provideMerge(ReviewLayerLive), Layer.provideMerge(SourceControlRepositoryServiceLayerLive), Layer.provideMerge(layer$17.pipe(Layer.provide(GitWorkflowLayerLive))));
|
|
93803
|
+
const CheckpointingLayerLive = Layer.empty.pipe(Layer.provideMerge(layer$36), Layer.provideMerge(layer$37.pipe(Layer.provide(VcsDriverRegistryLayerLive))));
|
|
93804
|
+
const PortScannerLayerLive = layer$58.pipe(Layer.provide(layer$68));
|
|
93805
|
+
const TerminalLayerLive = layer$57.pipe(Layer.provide(PtyAdapterLive), Layer.provide(PortScannerLayerLive));
|
|
93806
|
+
const BrowserRuntimeLayerLive = layer$60;
|
|
93599
93807
|
const PreviewManagerLayerLive = layerServerHosted$1.pipe(Layer.provide(BrowserRuntimeLayerLive));
|
|
93600
|
-
const ServerPreviewAutomationLayerLive = layer$
|
|
93808
|
+
const ServerPreviewAutomationLayerLive = layer$34.pipe(Layer.provide(PreviewManagerLayerLive), Layer.provide(BrowserRuntimeLayerLive));
|
|
93601
93809
|
const PreviewLayerLive = Layer.mergeAll(BrowserRuntimeLayerLive, PreviewManagerLayerLive, ServerPreviewAutomationLayerLive, PortScannerLayerLive);
|
|
93602
|
-
const WorkspaceEntriesLayerLive = layer$
|
|
93603
|
-
const WorkspaceFileSystemLayerLive = layer$
|
|
93604
|
-
const WorkspaceLayerLive = Layer.mergeAll(layer$
|
|
93605
|
-
const ProjectFaviconResolverLayerLive = layer$
|
|
93606
|
-
const AuthLayerLive = layer$
|
|
93607
|
-
const CloudManagedEndpointRuntimeLive = Layer.mergeAll(RelayClientLive, layer.pipe(Layer.provide(layer$
|
|
93810
|
+
const WorkspaceEntriesLayerLive = layer$31.pipe(Layer.provide(layer$48));
|
|
93811
|
+
const WorkspaceFileSystemLayerLive = layer$30.pipe(Layer.provide(layer$48), Layer.provide(WorkspaceEntriesLayerLive));
|
|
93812
|
+
const WorkspaceLayerLive = Layer.mergeAll(layer$48, WorkspaceEntriesLayerLive, WorkspaceFileSystemLayerLive);
|
|
93813
|
+
const ProjectFaviconResolverLayerLive = layer$47.pipe(Layer.provide(layer$48));
|
|
93814
|
+
const AuthLayerLive = layer$70.pipe(Layer.provideMerge(PersistenceLayerLive), Layer.provide(layer$73));
|
|
93815
|
+
const CloudManagedEndpointRuntimeLive = Layer.mergeAll(RelayClientLive, layer.pipe(Layer.provide(layer$73), Layer.provide(RelayClientLive)));
|
|
93608
93816
|
const ProviderRuntimeLayerLive = ProviderSessionReaperLive.pipe(Layer.provideMerge(ProviderLayerLive), Layer.provideMerge(OrchestrationLayerLive));
|
|
93609
|
-
const ProviderUsageLayerLive = layer$
|
|
93610
|
-
const KeybindingsLayerLive = layer$
|
|
93611
|
-
const ServerSettingsLayerLive = layer$
|
|
93612
|
-
const RuntimeCoreDependenciesLive = ReactorLayerLive.pipe(Layer.provideMerge(CheckpointingLayerLive), Layer.provideMerge(SourceControlProviderRegistryLayerLive), Layer.provideMerge(GitLayerLive), Layer.provideMerge(VcsLayerLive), Layer.provideMerge(ProviderUsageLayerLive), Layer.provideMerge(Layer.mergeAll(TerminalLayerLive, PreviewLayerLive)), Layer.provideMerge(Layer.mergeAll(PersistenceLayerLive, UsageAnalyticsLayerLive)), Layer.provideMerge(KeybindingsLayerLive), Layer.provideMerge(ProviderRegistryLive), Layer.provideMerge(ProviderInstanceRegistryHydrationLive), Layer.provideMerge(ProviderEventLoggersLive), Layer.provideMerge(OpenCodeRuntimeLive), Layer.provideMerge(Layer.mergeAll(ServerSettingsLayerLive, layer$
|
|
93613
|
-
const StarterSuggestionsLayerLive = layer$
|
|
93614
|
-
const StarterSuggestionPrecomputationLayerLive = layer$
|
|
93615
|
-
const PromptEnhancementLayerLive = layer$
|
|
93817
|
+
const ProviderUsageLayerLive = layer$43.pipe(Layer.provide(layer$44), Layer.provideMerge(ProviderRuntimeLayerLive));
|
|
93818
|
+
const KeybindingsLayerLive = layer$63.pipe(Layer.provide(layer$64));
|
|
93819
|
+
const ServerSettingsLayerLive = layer$55.pipe(Layer.provide(layer$64), Layer.provide(layer$73));
|
|
93820
|
+
const RuntimeCoreDependenciesLive = ReactorLayerLive.pipe(Layer.provideMerge(CheckpointingLayerLive), Layer.provideMerge(SourceControlProviderRegistryLayerLive), Layer.provideMerge(GitLayerLive), Layer.provideMerge(VcsLayerLive), Layer.provideMerge(ProviderUsageLayerLive), Layer.provideMerge(Layer.mergeAll(TerminalLayerLive, PreviewLayerLive)), Layer.provideMerge(Layer.mergeAll(PersistenceLayerLive, UsageAnalyticsLayerLive)), Layer.provideMerge(KeybindingsLayerLive), Layer.provideMerge(ProviderRegistryLive), Layer.provideMerge(ProviderInstanceRegistryHydrationLive), Layer.provideMerge(ProviderEventLoggersLive), Layer.provideMerge(OpenCodeRuntimeLive), Layer.provideMerge(Layer.mergeAll(ServerSettingsLayerLive, layer$11.pipe(Layer.provide(PersistenceLayerLive)))), Layer.provideMerge(WorkspaceLayerLive), Layer.provideMerge(ProjectFaviconResolverLayerLive), Layer.provideMerge(layer$65), Layer.provideMerge(layer$66), Layer.provideMerge(AuthLayerLive), Layer.provideMerge(layer$73), Layer.provideMerge(Layer.mergeAll(layer$69.pipe(Layer.provide(layer$73)), CloudManagedEndpointRuntimeLive)));
|
|
93821
|
+
const StarterSuggestionsLayerLive = layer$51.pipe(Layer.provide(RuntimeCoreDependenciesLive));
|
|
93822
|
+
const StarterSuggestionPrecomputationLayerLive = layer$50.pipe(Layer.provideMerge(StarterSuggestionsLayerLive), Layer.provide(RuntimeCoreDependenciesLive));
|
|
93823
|
+
const PromptEnhancementLayerLive = layer$10.pipe(Layer.provide(RuntimeCoreDependenciesLive));
|
|
93824
|
+
const ThreadTitleRegenerationLayerLive = layer$9.pipe(Layer.provide(RuntimeCoreDependenciesLive));
|
|
93616
93825
|
const ServerVersionAdvisoryLayerLive = layer$8.pipe(Layer.provide(RuntimeCoreDependenciesLive), Layer.provide(FetchHttpClient.layer));
|
|
93617
|
-
const ServerRestartDrainLayerLive = layer$
|
|
93618
|
-
const RuntimeDependenciesLive = RuntimeCoreDependenciesLive.pipe(Layer.provideMerge(StarterSuggestionPrecomputationLayerLive), Layer.provideMerge(PromptEnhancementLayerLive), Layer.provideMerge(ServerRestartDrainLayerLive), Layer.provideMerge(ServerVersionAdvisoryLayerLive), Layer.provideMerge(layer$
|
|
93619
|
-
const RuntimeServicesLive = layer$
|
|
93826
|
+
const ServerRestartDrainLayerLive = layer$56.pipe(Layer.provide(RuntimeCoreDependenciesLive));
|
|
93827
|
+
const RuntimeDependenciesLive = RuntimeCoreDependenciesLive.pipe(Layer.provideMerge(StarterSuggestionPrecomputationLayerLive), Layer.provideMerge(PromptEnhancementLayerLive), Layer.provideMerge(ThreadTitleRegenerationLayerLive), Layer.provideMerge(ServerRestartDrainLayerLive), Layer.provideMerge(ServerVersionAdvisoryLayerLive), Layer.provideMerge(layer$67), Layer.provideMerge(layer$54), Layer.provideMerge(layer$14), Layer.provideMerge(layer$13), Layer.provideMerge(layer$53), Layer.provideMerge(layer$62), Layer.provideMerge(layer$5.pipe(Layer.provide(layer$68))), Layer.provideMerge(layer$61), Layer.provide(layer$78));
|
|
93828
|
+
const RuntimeServicesLive = layer$49.pipe(Layer.provideMerge(RuntimeDependenciesLive));
|
|
93620
93829
|
const routesLayer = Layer.mergeAll(Layer.mergeAll(HttpApiBuilder.layer(EnvironmentHttpApi).pipe(Layer.provide(authHttpApiLayer), Layer.provide(connectHttpApiLayer), Layer.provide(orchestrationHttpApiLayer), Layer.provide(serverEnvironmentHttpApiLayer), Layer.provide(environmentAuthenticatedAuthLayer)), otlpTracesProxyRouteLayer, providerUsageMetricsRouteLayer, assetRouteLayer, staticAndDevRouteLayer, websocketRpcRouteLayer), layer$2.pipe(Layer.provide(layer$3))).pipe(Layer.provide(browserApiCorsLayer), Layer.provide(httpCompressionLayer));
|
|
93621
|
-
routesLayer.pipe(Layer.provide(layer$
|
|
93830
|
+
routesLayer.pipe(Layer.provide(layer$33));
|
|
93622
93831
|
const serverHostedRoutesLayer = routesLayer.pipe(Layer.provide(layerServerHosted));
|
|
93623
93832
|
const makeServerLayer = Layer.unwrap(Effect.gen(function* () {
|
|
93624
93833
|
const config = yield* ServerConfig;
|
|
@@ -93670,7 +93879,7 @@ const makeServerLayer = Layer.unwrap(Effect.gen(function* () {
|
|
|
93670
93879
|
if (typeof address === "string" || !("port" in address)) return;
|
|
93671
93880
|
yield* Effect.forkScoped(Effect.sleep("250 millis").pipe(Effect.andThen(reconcileDesiredCloudLink(`http://127.0.0.1:${address.port}`)), Effect.retry({ times: 4 }), Effect.tap(() => Effect.logInfo("ZL Cloud desired link reconciled on startup")), Effect.catch((cause) => Effect.logWarning("Failed to reconcile ZL Cloud desired link on startup", { cause }))));
|
|
93672
93881
|
}));
|
|
93673
|
-
return Layer.mergeAll(HttpRouter.serve(serverHostedRoutesLayer, { disableLogger: !config.logWebSocketEvents }), httpListeningLayer, runtimeStateLayer, tailscaleServeLayer, cloudDesiredLinkReconcileLayer).pipe(Layer.provideMerge(RuntimeServicesLive), Layer.provideMerge(serverRelayBrokerTracingLayer), Layer.provideMerge(layer$
|
|
93882
|
+
return Layer.mergeAll(HttpRouter.serve(serverHostedRoutesLayer, { disableLogger: !config.logWebSocketEvents }), httpListeningLayer, runtimeStateLayer, tailscaleServeLayer, cloudDesiredLinkReconcileLayer).pipe(Layer.provideMerge(RuntimeServicesLive), Layer.provideMerge(serverRelayBrokerTracingLayer), Layer.provideMerge(layer$42), Layer.provideMerge(HttpServerLive), Layer.provide(ObservabilityLive), Layer.provideMerge(FetchHttpClient.layer), Layer.provideMerge(layer$41), Layer.provideMerge(PlatformServicesLive));
|
|
93674
93883
|
}));
|
|
93675
93884
|
const runServer = Layer.launch(makeServerLayer);
|
|
93676
93885
|
//#endregion
|
|
@@ -94033,7 +94242,7 @@ const runUpdateSupervisor = Effect.acquireRelease(Effect.tryPromise({
|
|
|
94033
94242
|
const updateSupervisorCommand = Command.make("update-supervisor").pipe(Command.withDescription("Run the local npm-service update supervisor. Intended for the dedicated user service."), Command.withHandler(() => runUpdateSupervisor));
|
|
94034
94243
|
//#endregion
|
|
94035
94244
|
//#region src/bin.ts
|
|
94036
|
-
const CliRuntimeLayer = Layer.mergeAll(NodeServices.layer, layer$
|
|
94245
|
+
const CliRuntimeLayer = Layer.mergeAll(NodeServices.layer, layer$78);
|
|
94037
94246
|
const cloudPublicConfigMissingMessage = "ZL Cloud commands are unavailable: this build is missing ZL Cloud public configuration.";
|
|
94038
94247
|
var CloudPublicConfigMissingError = class extends CliError$1.UserError {
|
|
94039
94248
|
get message() {
|