zl-code 0.0.35 → 0.0.37
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 +431 -218
- package/dist/client/assets/{DiffPanel-BqNt6hcz.js → DiffPanel-8Hd4abfD.js} +1 -1
- package/dist/client/assets/{FilePreviewPanel-DrJVoXud.js → FilePreviewPanel-B0v3dGUG.js} +1 -1
- package/dist/client/assets/{PreviewPanel-DNUb9-4V.js → PreviewPanel-CBRrermS.js} +1 -1
- package/dist/client/assets/{angular-html-BmtGAQ01.js → angular-html-w_J7uOTH.js} +1 -1
- package/dist/client/assets/{angular-ts-DsiGqxiq.js → angular-ts-ChuybIZB.js} +1 -1
- package/dist/client/assets/{apl-Cu2FuD0S.js → apl-CHTTccnk.js} +1 -1
- package/dist/client/assets/{astro-Bc4XoX24.js → astro-C_2It4v2.js} +1 -1
- package/dist/client/assets/{blade-DoJ4jnxs.js → blade-Cv3pCAo4.js} +1 -1
- package/dist/client/assets/{c-DzRZBPcH.js → c-3ZJXtsqs.js} +1 -1
- package/dist/client/assets/{cobol-DPQNciHE.js → cobol-DJu6YyKA.js} +1 -1
- package/dist/client/assets/{coffee-lWAIpKll.js → coffee-Dwt-W_DG.js} +1 -1
- package/dist/client/assets/{cpp-B0VuSywE.js → cpp-BFj0kF4u.js} +1 -1
- package/dist/client/assets/{crystal-C_N2McY9.js → crystal-DYaJQXBX.js} +1 -1
- package/dist/client/assets/{css-SmF66bQJ.js → css-vqI_jgjF.js} +1 -1
- package/dist/client/assets/{edge-B-ET1YHr.js → edge-DXikc9C1.js} +1 -1
- package/dist/client/assets/{elixir-CpmiOy4w.js → elixir-CgrjNprH.js} +1 -1
- package/dist/client/assets/{elm-CkD2m37L.js → elm-I1PEhUNn.js} +1 -1
- package/dist/client/assets/{erb-DMlDC06r.js → erb-mpS0FUk6.js} +1 -1
- package/dist/client/assets/{fileCommentAnnotations-C2eAwvy8.js → fileCommentAnnotations-W3EuEy4s.js} +1 -1
- package/dist/client/assets/{git-rebase-DcgyhIr2.js → git-rebase-BDHyHLGp.js} +1 -1
- package/dist/client/assets/{glimmer-js-DBNoFmYI.js → glimmer-js-CLFryDjt.js} +1 -1
- package/dist/client/assets/{glimmer-ts-DW2ILbNo.js → glimmer-ts-XxWFEem7.js} +1 -1
- package/dist/client/assets/{glsl-Dx01UlmW.js → glsl-BS4fzPpz.js} +1 -1
- package/dist/client/assets/{graphql-cWDeUQQG.js → graphql-DNf3Ec1r.js} +1 -1
- package/dist/client/assets/{hack-DKtxvnn8.js → hack-BUK0q_s5.js} +1 -1
- package/dist/client/assets/{haml-OrVzSusi.js → haml-DNRDw7nW.js} +1 -1
- package/dist/client/assets/{handlebars-CaS_YX46.js → handlebars-9Uv6Cm5E.js} +1 -1
- package/dist/client/assets/{html-CKL5e9k5.js → html-40jjOrIF.js} +1 -1
- package/dist/client/assets/{html-derivative-DGs_cUTW.js → html-derivative-CP9E1cYa.js} +1 -1
- package/dist/client/assets/{http-C0RNzxtI.js → http-frkGiTAX.js} +1 -1
- package/dist/client/assets/{hurl-Bo5uJ7BP.js → hurl-CtOvrEmD.js} +1 -1
- package/dist/client/assets/index-UCHAZiPS.js +577 -0
- package/dist/client/assets/{java-ouFgdhyE.js → java-DCLAq1Hc.js} +1 -1
- package/dist/client/assets/{javascript-CobXAilT.js → javascript-DGVNfbca.js} +1 -1
- package/dist/client/assets/{jinja-B0WuYOBR.js → jinja-BCXEU0ks.js} +1 -1
- package/dist/client/assets/{jison-zyMwu47j.js → jison-BpusGSjg.js} +1 -1
- package/dist/client/assets/{json-Ci6WNqm_.js → json-CzAy9SfW.js} +1 -1
- package/dist/client/assets/{jsx-C77Glka0.js → jsx-CNWJHpZl.js} +1 -1
- package/dist/client/assets/{julia-BHg95W3I.js → julia-BQQSPjZM.js} +1 -1
- package/dist/client/assets/{just-Bhjneedw.js → just-BDyIjZhm.js} +1 -1
- package/dist/client/assets/{latex-MAyeCTbg.js → latex-jgmiom2A.js} +1 -1
- package/dist/client/assets/{liquid-CtmuXxCT.js → liquid-D5ZqsH2K.js} +1 -1
- package/dist/client/assets/{lua-BjTJbC5C.js → lua--XSJev50.js} +1 -1
- package/dist/client/assets/{marko-V7TTsmWR.js → marko-j7tPPIxD.js} +1 -1
- package/dist/client/assets/{mdc-D2pfjGLh.js → mdc-Cb3vuotT.js} +1 -1
- package/dist/client/assets/{nginx-CCHOgOr0.js → nginx-BDFekwHE.js} +1 -1
- package/dist/client/assets/{nim-Ca8NB3i6.js → nim-Da43fXYu.js} +1 -1
- package/dist/client/assets/{perl-DQWxYtEg.js → perl-C61bfF7X.js} +1 -1
- package/dist/client/assets/{php-_i3-I7x6.js → php-blkWriJl.js} +1 -1
- package/dist/client/assets/{pug-BnXLSmfu.js → pug-CpfO2SPx.js} +1 -1
- package/dist/client/assets/{qml-BrKF8z4Z.js → qml-CmmsPD81.js} +1 -1
- package/dist/client/assets/{r-EFpA2uQd.js → r-COr5FZ3L.js} +1 -1
- package/dist/client/assets/{razor-DIgYfzFG.js → razor-5Fl2VlUp.js} +1 -1
- package/dist/client/assets/{regexp-BAmYrH3i.js → regexp-C7AJTlnp.js} +1 -1
- package/dist/client/assets/{rst-DcLD-9AD.js → rst-Dey5m7Ic.js} +1 -1
- package/dist/client/assets/{ruby-Dtn3YjXF.js → ruby-Djr8JNs3.js} +1 -1
- package/dist/client/assets/{sas-x195xVp8.js → sas-ByCAsTbG.js} +1 -1
- package/dist/client/assets/{scss-C7_e0JKs.js → scss-045w4eSe.js} +1 -1
- package/dist/client/assets/{shellscript-BY_T2f8A.js → shellscript-JSRLw6nl.js} +1 -1
- package/dist/client/assets/{shellsession-D9jftGru.js → shellsession-D7d7S9NH.js} +1 -1
- package/dist/client/assets/{soy-D_yKQEqE.js → soy-DhUh5bMe.js} +1 -1
- package/dist/client/assets/{sql-Bq7VLbWI.js → sql-cVADQ_Mp.js} +1 -1
- package/dist/client/assets/{stata-B2Uc2s2p.js → stata-D0sFyA0R.js} +1 -1
- package/dist/client/assets/{surrealql-DBfdNRG3.js → surrealql-Do71DcU4.js} +1 -1
- package/dist/client/assets/{svelte-CNQ1hYJ5.js → svelte-DlIcVLzA.js} +1 -1
- package/dist/client/assets/{templ-BYgG_hc-.js → templ-vk4ZuIBo.js} +1 -1
- package/dist/client/assets/{tex-Be6sY6WI.js → tex-DnuFx37Z.js} +1 -1
- package/dist/client/assets/textarea-0pwrMGBs.js +44 -0
- package/dist/client/assets/{ts-tags-X-29ASsJ.js → ts-tags-B9cqu4Zt.js} +1 -1
- package/dist/client/assets/{tsx-HqUv_SmK.js → tsx-5f7myNT6.js} +1 -1
- package/dist/client/assets/{twig-sdPvh98u.js → twig-GVLeNCVB.js} +1 -1
- package/dist/client/assets/{typescript-C-9DSeKA.js → typescript-BeeFJxgQ.js} +1 -1
- package/dist/client/assets/{vue-DdkaeCek.js → vue-7aTgMJNi.js} +1 -1
- package/dist/client/assets/{vue-html-De-2ArH0.js → vue-html-DxlVklCk.js} +1 -1
- package/dist/client/assets/{vue-vine-F58dAXUZ.js → vue-vine-BRkNl7fU.js} +1 -1
- package/dist/client/assets/{xml-D0SmDf_D.js → xml-BX7XB-4l.js} +1 -1
- package/dist/client/assets/{xsl-JGZfNKW_.js → xsl-D8yzJiGQ.js} +1 -1
- package/dist/client/assets/{yaml-B3hZzHcx.js → yaml-Dt3mMaKo.js} +1 -1
- package/dist/client/index.html +3 -3
- package/dist/npm-service-runtime.sh +33 -0
- package/dist/zl-code-server-npm.service +1 -1
- package/package.json +1 -1
- package/dist/client/assets/index-mkFt7-1I.js +0 -577
- package/dist/client/assets/textarea-l_98G8HM.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.37";
|
|
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;
|
|
@@ -33985,9 +34030,13 @@ const make$59 = (options = {}) => Effect.gen(function* () {
|
|
|
33985
34030
|
const loadExisting = yield* provideFsAndPath(readPersistedServerRestartState(config.serverRestartStatePath));
|
|
33986
34031
|
if (Option.isSome(loadExisting)) {
|
|
33987
34032
|
const startupObservedAt = yield* nowIso$9;
|
|
34033
|
+
const recoveredInterruptedDrain = loadExisting.value.drainStartedAt && !loadExisting.value.shutdownCompletedAt;
|
|
33988
34034
|
yield* persistAndSet(withStatePatch(loadExisting.value, {
|
|
33989
34035
|
startupObservedAt,
|
|
33990
|
-
...
|
|
34036
|
+
...recoveredInterruptedDrain ? {
|
|
34037
|
+
shutdownCompletedAt: startupObservedAt,
|
|
34038
|
+
shutdownOutcome: loadExisting.value.systemdServiceResult === "timeout" ? "timeout" : "unclean"
|
|
34039
|
+
} : {}
|
|
33991
34040
|
}));
|
|
33992
34041
|
}
|
|
33993
34042
|
const requestDrain = Effect.gen(function* () {
|
|
@@ -34079,7 +34128,7 @@ const make$59 = (options = {}) => Effect.gen(function* () {
|
|
|
34079
34128
|
authorizeMutation
|
|
34080
34129
|
});
|
|
34081
34130
|
});
|
|
34082
|
-
const layer$
|
|
34131
|
+
const layer$56 = Layer.effect(ServerRestartDrain, make$60());
|
|
34083
34132
|
//#endregion
|
|
34084
34133
|
//#region src/serverSettings.ts
|
|
34085
34134
|
/**
|
|
@@ -34199,7 +34248,7 @@ function stripDefaultServerSettings(current, defaults) {
|
|
|
34199
34248
|
}
|
|
34200
34249
|
return Object.is(current, defaults) ? void 0 : current;
|
|
34201
34250
|
}
|
|
34202
|
-
const make$
|
|
34251
|
+
const make$59 = Effect.gen(function* () {
|
|
34203
34252
|
const { settingsPath } = yield* ServerConfig;
|
|
34204
34253
|
const configFileWatcher = yield* ConfigFileWatcher;
|
|
34205
34254
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -34412,7 +34461,7 @@ const make$58 = Effect.gen(function* () {
|
|
|
34412
34461
|
}
|
|
34413
34462
|
};
|
|
34414
34463
|
});
|
|
34415
|
-
const layer$
|
|
34464
|
+
const layer$55 = Layer.effect(ServerSettingsService, make$59);
|
|
34416
34465
|
//#endregion
|
|
34417
34466
|
//#region src/diagnostics/ProcessDiagnostics.ts
|
|
34418
34467
|
const PROCESS_QUERY_TIMEOUT_MS = 1e3;
|
|
@@ -34707,7 +34756,7 @@ function assertDescendantPid(pid) {
|
|
|
34707
34756
|
}));
|
|
34708
34757
|
}));
|
|
34709
34758
|
}
|
|
34710
|
-
const make$
|
|
34759
|
+
const make$58 = Effect.gen(function* () {
|
|
34711
34760
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
34712
34761
|
const read = Effect.gen(function* () {
|
|
34713
34762
|
const readAt = yield* DateTime.now;
|
|
@@ -34751,7 +34800,7 @@ const make$57 = Effect.gen(function* () {
|
|
|
34751
34800
|
signal
|
|
34752
34801
|
});
|
|
34753
34802
|
});
|
|
34754
|
-
const layer$
|
|
34803
|
+
const layer$54 = Layer.effect(ProcessDiagnostics, make$58);
|
|
34755
34804
|
//#endregion
|
|
34756
34805
|
//#region src/process/AgentProcessPriority.ts
|
|
34757
34806
|
/**
|
|
@@ -35070,7 +35119,7 @@ var AnalyticsService = class AnalyticsService extends Context.Service()("@zl-too
|
|
|
35070
35119
|
resetIdentity: Effect.succeed(true)
|
|
35071
35120
|
}));
|
|
35072
35121
|
};
|
|
35073
|
-
const make$
|
|
35122
|
+
const make$57 = Effect.gen(function* () {
|
|
35074
35123
|
const telemetryConfig = yield* TelemetryEnvConfig;
|
|
35075
35124
|
const httpClient = yield* HttpClient$1.HttpClient;
|
|
35076
35125
|
const serverConfig = yield* ServerConfig;
|
|
@@ -35177,7 +35226,7 @@ const make$56 = Effect.gen(function* () {
|
|
|
35177
35226
|
resetIdentity
|
|
35178
35227
|
});
|
|
35179
35228
|
});
|
|
35180
|
-
const layer$
|
|
35229
|
+
const layer$53 = Layer.effect(AnalyticsService, make$57);
|
|
35181
35230
|
AnalyticsService.layerTest;
|
|
35182
35231
|
//#endregion
|
|
35183
35232
|
//#region src/provider/Services/ProviderSessionReaper.ts
|
|
@@ -35225,11 +35274,11 @@ const makeTextGenerationFromRegistry = (registry) => TextGeneration.of({
|
|
|
35225
35274
|
generateStarterSuggestions: (input) => resolveInstance(registry, "generateStarterSuggestions", input.modelSelection.instanceId).pipe(Effect.flatMap((textGeneration) => textGeneration.generateStarterSuggestions(input))),
|
|
35226
35275
|
generatePromptEnhancement: (input) => resolveInstance(registry, "generatePromptEnhancement", input.modelSelection.instanceId).pipe(Effect.flatMap((textGeneration) => textGeneration.generatePromptEnhancement(input)))
|
|
35227
35276
|
});
|
|
35228
|
-
const make$
|
|
35277
|
+
const make$56 = Effect.gen(function* () {
|
|
35229
35278
|
const registry = yield* ProviderInstanceRegistry;
|
|
35230
35279
|
return makeTextGenerationFromRegistry(registry);
|
|
35231
35280
|
});
|
|
35232
|
-
const layer$
|
|
35281
|
+
const layer$52 = Layer.effect(TextGeneration, make$56);
|
|
35233
35282
|
//#endregion
|
|
35234
35283
|
//#region src/assist/StarterSuggestions.ts
|
|
35235
35284
|
const RECENT_THREAD_LIMIT = 8;
|
|
@@ -35293,7 +35342,7 @@ const sanitizeGeneratedSuggestions = (suggestions) => {
|
|
|
35293
35342
|
return unique;
|
|
35294
35343
|
};
|
|
35295
35344
|
var StarterSuggestions = class extends Context.Service()("@zl-tools/server/assist/StarterSuggestions") {};
|
|
35296
|
-
const make$
|
|
35345
|
+
const make$55 = Effect.gen(function* () {
|
|
35297
35346
|
const sql = yield* SqlClient.SqlClient;
|
|
35298
35347
|
const projections = yield* ProjectionSnapshotQuery;
|
|
35299
35348
|
const serverSettings = yield* ServerSettingsService;
|
|
@@ -35509,12 +35558,12 @@ const make$54 = Effect.gen(function* () {
|
|
|
35509
35558
|
precompute
|
|
35510
35559
|
});
|
|
35511
35560
|
});
|
|
35512
|
-
const layer$
|
|
35561
|
+
const layer$51 = Layer.effect(StarterSuggestions, make$55);
|
|
35513
35562
|
//#endregion
|
|
35514
35563
|
//#region src/assist/StarterSuggestionPrecomputation.ts
|
|
35515
35564
|
const isPrecomputeLifecycleEvent = (event) => event.type === "thread.resolved" || event.type === "thread.archived";
|
|
35516
35565
|
var StarterSuggestionPrecomputation = class extends Context.Service()("@zl-tools/server/assist/StarterSuggestionPrecomputation") {};
|
|
35517
|
-
const make$
|
|
35566
|
+
const make$54 = Effect.gen(function* () {
|
|
35518
35567
|
const orchestrationEngine = yield* OrchestrationEngineService;
|
|
35519
35568
|
const projections = yield* ProjectionSnapshotQuery;
|
|
35520
35569
|
const starterSuggestions = yield* StarterSuggestions;
|
|
@@ -35554,7 +35603,7 @@ const make$53 = Effect.gen(function* () {
|
|
|
35554
35603
|
drain: worker.drain
|
|
35555
35604
|
});
|
|
35556
35605
|
});
|
|
35557
|
-
const layer$
|
|
35606
|
+
const layer$50 = Layer.effect(StarterSuggestionPrecomputation, make$54);
|
|
35558
35607
|
//#endregion
|
|
35559
35608
|
//#region src/serverRuntimeStartup.ts
|
|
35560
35609
|
var ServerRuntimeStartupError = class extends Schema$1.TaggedErrorClass()("ServerRuntimeStartupError", {
|
|
@@ -35695,7 +35744,7 @@ const maybeOpenBrowser = (target) => Effect.gen(function* () {
|
|
|
35695
35744
|
yield* (yield* ExternalLauncher).launchBrowser(target).pipe(Effect.catch(() => Effect.logInfo("browser auto-open unavailable", { hint: `Open ${target} in your browser.` })));
|
|
35696
35745
|
});
|
|
35697
35746
|
const runStartupPhase = (phase, effect) => effect.pipe(Effect.annotateSpans({ "startup.phase": phase }), Effect.withSpan(`server.startup.${phase}`));
|
|
35698
|
-
const make$
|
|
35747
|
+
const make$53 = Effect.gen(function* () {
|
|
35699
35748
|
const serverConfig = yield* ServerConfig;
|
|
35700
35749
|
const keybindings = yield* Keybindings;
|
|
35701
35750
|
const orchestrationReactor = yield* OrchestrationReactor;
|
|
@@ -35836,7 +35885,7 @@ const make$52 = Effect.gen(function* () {
|
|
|
35836
35885
|
enqueueCommand: commandGate.enqueueCommand
|
|
35837
35886
|
};
|
|
35838
35887
|
});
|
|
35839
|
-
const layer$
|
|
35888
|
+
const layer$49 = Layer.effect(ServerRuntimeStartup, make$53);
|
|
35840
35889
|
//#endregion
|
|
35841
35890
|
//#region src/workspace/WorkspacePaths.ts
|
|
35842
35891
|
/**
|
|
@@ -35907,7 +35956,7 @@ function expandHomePath$3(input, path) {
|
|
|
35907
35956
|
if (input.startsWith("~/") || input.startsWith("~\\")) return path.join(NodeOS.homedir(), input.slice(2));
|
|
35908
35957
|
return input;
|
|
35909
35958
|
}
|
|
35910
|
-
const make$
|
|
35959
|
+
const make$52 = Effect.gen(function* () {
|
|
35911
35960
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
35912
35961
|
const path = yield* Path.Path;
|
|
35913
35962
|
const statWorkspaceRoot = Effect.fn("WorkspacePaths.statWorkspaceRoot")(function* (workspaceRoot, normalizedWorkspaceRoot, phase) {
|
|
@@ -35964,7 +36013,7 @@ const make$51 = Effect.gen(function* () {
|
|
|
35964
36013
|
resolveRelativePathWithinRoot
|
|
35965
36014
|
});
|
|
35966
36015
|
});
|
|
35967
|
-
const layer$
|
|
36016
|
+
const layer$48 = Layer.effect(WorkspacePaths, make$52);
|
|
35968
36017
|
//#endregion
|
|
35969
36018
|
//#region src/cli/project.ts
|
|
35970
36019
|
const isEnvironmentHttpCommonError = Schema$1.is(EnvironmentHttpCommonError);
|
|
@@ -36070,7 +36119,7 @@ const projectCommandUuid = Crypto.Crypto.pipe(Effect.flatMap((crypto) => crypto.
|
|
|
36070
36119
|
operation: "generateProjectCommandId",
|
|
36071
36120
|
cause
|
|
36072
36121
|
})));
|
|
36073
|
-
const ProjectCliRuntimeLive = Layer.mergeAll(layer$
|
|
36122
|
+
const ProjectCliRuntimeLive = Layer.mergeAll(layer$48, OrchestrationLayerLive.pipe(Layer.provideMerge(layer$65), Layer.provideMerge(layerConfig)));
|
|
36074
36123
|
const PROJECT_CLI_LIVE_SERVER_TIMEOUT = Duration.seconds(1);
|
|
36075
36124
|
const withProjectCliSessionToken = (environmentAuth, run) => Effect.acquireUseRelease(environmentAuth.issueSession({
|
|
36076
36125
|
scopes: AuthAdministrativeScopes,
|
|
@@ -36161,7 +36210,7 @@ const runProjectMutation = Effect.fn("runProjectMutation")(function* (flags, run
|
|
|
36161
36210
|
});
|
|
36162
36211
|
yield* Console.log(output);
|
|
36163
36212
|
}));
|
|
36164
|
-
const offlineRuntimeLayer = ProjectCliRuntimeLive.pipe(Layer.provide(layer$
|
|
36213
|
+
const offlineRuntimeLayer = ProjectCliRuntimeLive.pipe(Layer.provide(layer$77(config)), Layer.provide(Layer.succeed(References.MinimumLogLevel, minimumLogLevel)));
|
|
36165
36214
|
return yield* Effect.gen(function* () {
|
|
36166
36215
|
const snapshot = yield* getOfflineSnapshot();
|
|
36167
36216
|
const orchestrationEngine = yield* OrchestrationEngineService;
|
|
@@ -36172,7 +36221,7 @@ const runProjectMutation = Effect.fn("runProjectMutation")(function* (flags, run
|
|
|
36172
36221
|
});
|
|
36173
36222
|
yield* Console.log(output);
|
|
36174
36223
|
}).pipe(Effect.provide(offlineRuntimeLayer));
|
|
36175
|
-
}).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)))));
|
|
36176
36225
|
});
|
|
36177
36226
|
const projectAddCommand = Command.make("add", {
|
|
36178
36227
|
...projectLocationFlags,
|
|
@@ -37055,7 +37104,7 @@ function extractIconHref(source) {
|
|
|
37055
37104
|
return null;
|
|
37056
37105
|
}
|
|
37057
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) }));
|
|
37058
|
-
const make$
|
|
37107
|
+
const make$51 = Effect.gen(function* () {
|
|
37059
37108
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
37060
37109
|
const path = yield* Path.Path;
|
|
37061
37110
|
const workspacePaths = yield* WorkspacePaths;
|
|
@@ -37118,7 +37167,7 @@ const make$50 = Effect.gen(function* () {
|
|
|
37118
37167
|
});
|
|
37119
37168
|
return ProjectFaviconResolver.of({ resolvePath });
|
|
37120
37169
|
});
|
|
37121
|
-
const layer$
|
|
37170
|
+
const layer$47 = Layer.effect(ProjectFaviconResolver, make$51);
|
|
37122
37171
|
//#endregion
|
|
37123
37172
|
//#region src/assets/AssetAccess.ts
|
|
37124
37173
|
const ASSET_ROUTE_PREFIX = "/api/assets";
|
|
@@ -37456,10 +37505,10 @@ const resolveAsset = Effect.fn("AssetAccess.resolveAsset")(function* (token, rel
|
|
|
37456
37505
|
//#endregion
|
|
37457
37506
|
//#region src/observability/BrowserTraceCollector.ts
|
|
37458
37507
|
var BrowserTraceCollector = class extends Context.Service()("@zl-tools/server/observability/BrowserTraceCollector") {};
|
|
37459
|
-
const make$
|
|
37508
|
+
const make$50 = (sink) => BrowserTraceCollector.of({ record: (records) => Effect.sync(() => {
|
|
37460
37509
|
for (const record of records) sink.push(record);
|
|
37461
37510
|
}) });
|
|
37462
|
-
const layer$
|
|
37511
|
+
const layer$46 = (sink) => Layer.succeed(BrowserTraceCollector, make$50(sink));
|
|
37463
37512
|
//#endregion
|
|
37464
37513
|
//#region src/providerUsage/ProviderUsageMetrics.ts
|
|
37465
37514
|
const METRIC_PREFIX = "ai_usage_";
|
|
@@ -37569,6 +37618,11 @@ function limitSection(value, maxChars) {
|
|
|
37569
37618
|
if (value.length <= maxChars) return value;
|
|
37570
37619
|
return `${value.slice(0, maxChars)}\n\n[truncated]`;
|
|
37571
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
|
+
}
|
|
37572
37626
|
/** Normalise a raw commit subject to imperative-mood, ≤72 chars, no trailing period. */
|
|
37573
37627
|
function sanitizeCommitSubject(raw) {
|
|
37574
37628
|
const withoutTrailingPeriod = (raw.trim().split(/\r?\n/g)[0]?.trim() ?? "").replace(/[.]+$/g, "").trim();
|
|
@@ -37589,6 +37643,14 @@ function sanitizeThreadTitle(raw) {
|
|
|
37589
37643
|
if (normalized.length <= 50) return normalized;
|
|
37590
37644
|
return `${normalized.slice(0, 47).trimEnd()}...`;
|
|
37591
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
|
+
}
|
|
37592
37654
|
/** CLI name to human-readable label, e.g. "codex" → "Codex CLI (`codex`)" */
|
|
37593
37655
|
function cliLabel(cliName) {
|
|
37594
37656
|
return `${cliName.charAt(0).toUpperCase() + cliName.slice(1)} CLI (\`${cliName}\`)`;
|
|
@@ -37737,6 +37799,20 @@ function buildBranchNamePrompt(input) {
|
|
|
37737
37799
|
};
|
|
37738
37800
|
}
|
|
37739
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
|
+
}
|
|
37740
37816
|
return {
|
|
37741
37817
|
prompt: buildPromptFromMessage({
|
|
37742
37818
|
instruction: "You write concise thread titles for coding conversations.",
|
|
@@ -39374,15 +39450,17 @@ const makeClaudeTextGeneration = Effect.fn("makeClaudeTextGeneration")(function*
|
|
|
39374
39450
|
generateThreadTitle: Effect.fn("ClaudeTextGeneration.generateThreadTitle")(function* (input) {
|
|
39375
39451
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
39376
39452
|
message: input.message,
|
|
39377
|
-
attachments: input.attachments
|
|
39453
|
+
attachments: input.attachments,
|
|
39454
|
+
regeneration: input.regeneration
|
|
39378
39455
|
});
|
|
39379
|
-
|
|
39456
|
+
const generated = yield* runClaudeJson({
|
|
39380
39457
|
operation: "generateThreadTitle",
|
|
39381
39458
|
cwd: input.cwd,
|
|
39382
39459
|
prompt,
|
|
39383
39460
|
outputSchemaJson: outputSchema,
|
|
39384
39461
|
modelSelection: input.modelSelection
|
|
39385
|
-
})
|
|
39462
|
+
});
|
|
39463
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
39386
39464
|
}),
|
|
39387
39465
|
generateStarterSuggestions: Effect.fn("ClaudeTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
39388
39466
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -42815,16 +42893,18 @@ const makeCodexTextGeneration = Effect.fn("makeCodexTextGeneration")(function* (
|
|
|
42815
42893
|
const { imagePaths } = yield* materializeImageAttachments("generateThreadTitle", input.attachments);
|
|
42816
42894
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
42817
42895
|
message: input.message,
|
|
42818
|
-
attachments: input.attachments
|
|
42896
|
+
attachments: input.attachments,
|
|
42897
|
+
regeneration: input.regeneration
|
|
42819
42898
|
});
|
|
42820
|
-
|
|
42899
|
+
const generated = yield* runCodexJson({
|
|
42821
42900
|
operation: "generateThreadTitle",
|
|
42822
42901
|
cwd: input.cwd,
|
|
42823
42902
|
prompt,
|
|
42824
42903
|
outputSchemaJson: outputSchema,
|
|
42825
42904
|
imagePaths,
|
|
42826
42905
|
modelSelection: input.modelSelection
|
|
42827
|
-
})
|
|
42906
|
+
});
|
|
42907
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
42828
42908
|
}),
|
|
42829
42909
|
generateStarterSuggestions: Effect.fn("CodexTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
42830
42910
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -59027,7 +59107,7 @@ const makeTerminationError$1 = (handle) => Effect.match(handle.exitCode, {
|
|
|
59027
59107
|
//#endregion
|
|
59028
59108
|
//#region ../../packages/effect-codex-app-server/src/client.ts
|
|
59029
59109
|
var CodexAppServerClient = class extends Context.Service()("effect-codex-app-server/client/CodexAppServerClient") {};
|
|
59030
|
-
const make$
|
|
59110
|
+
const make$49 = Effect.fn("effect-codex-app-server/CodexAppServerClient.make")(function* (stdio, options = {}, terminationError) {
|
|
59031
59111
|
const requestHandlers = /* @__PURE__ */ new Map();
|
|
59032
59112
|
const notificationHandlers = /* @__PURE__ */ new Map();
|
|
59033
59113
|
let unknownRequestHandler;
|
|
@@ -59094,7 +59174,7 @@ const make$48 = Effect.fn("effect-codex-app-server/CodexAppServerClient.make")(f
|
|
|
59094
59174
|
const layerChildProcess$1 = (handle, options = {}) => Layer.effect(CodexAppServerClient, makeChildProcessClient(handle, options));
|
|
59095
59175
|
const makeChildProcessClient = Effect.fn("effect-codex-app-server/CodexAppServerClient.makeChildProcessClient")(function* (handle, options) {
|
|
59096
59176
|
yield* Stream.runDrain(handle.stderr).pipe(Effect.ignore, Effect.forkScoped);
|
|
59097
|
-
return yield* make$
|
|
59177
|
+
return yield* make$49(makeChildStdio$1(handle), options, makeTerminationError$1(handle));
|
|
59098
59178
|
});
|
|
59099
59179
|
//#endregion
|
|
59100
59180
|
//#region src/provider/Layers/CodexProvider.ts
|
|
@@ -65415,7 +65495,7 @@ const makeTerminationError = (handle) => Effect.match(handle.exitCode, {
|
|
|
65415
65495
|
//#endregion
|
|
65416
65496
|
//#region ../../packages/effect-acp/src/client.ts
|
|
65417
65497
|
var AcpClient = class extends Context.Service()("effect-acp/client/AcpClient") {};
|
|
65418
|
-
const make$
|
|
65498
|
+
const make$48 = Effect.fn("effect-acp/AcpClient.make")(function* (stdio, options = {}, terminationError) {
|
|
65419
65499
|
const coreHandlers = {};
|
|
65420
65500
|
const notificationHandlers = {
|
|
65421
65501
|
sessionUpdate: {
|
|
@@ -65573,7 +65653,7 @@ const make$47 = Effect.fn("effect-acp/AcpClient.make")(function* (stdio, options
|
|
|
65573
65653
|
const layerChildProcess = (handle, options = {}) => {
|
|
65574
65654
|
const stdio = makeChildStdio(handle);
|
|
65575
65655
|
const terminationError = makeTerminationError(handle);
|
|
65576
|
-
return Layer.effect(AcpClient, make$
|
|
65656
|
+
return Layer.effect(AcpClient, make$48(stdio, options, terminationError));
|
|
65577
65657
|
};
|
|
65578
65658
|
//#endregion
|
|
65579
65659
|
//#region ../../packages/shared/src/toolActivity.ts
|
|
@@ -66038,7 +66118,7 @@ function isNonInteractiveAuthMethodUnavailableError(error) {
|
|
|
66038
66118
|
return isAcpRequestError$2(error) && error.errorMessage === "ACP agent does not advertise the required non-interactive authentication method.";
|
|
66039
66119
|
}
|
|
66040
66120
|
var AcpSessionRuntime = class extends Context.Service()("@zl-tools/server/provider/acp/AcpSessionRuntime") {};
|
|
66041
|
-
const make$
|
|
66121
|
+
const make$47 = (options) => Effect.gen(function* () {
|
|
66042
66122
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
66043
66123
|
const runtimeScope = yield* Scope.Scope;
|
|
66044
66124
|
const eventQueue = yield* Queue.unbounded();
|
|
@@ -66351,7 +66431,7 @@ const make$46 = (options) => Effect.gen(function* () {
|
|
|
66351
66431
|
notify: acp.raw.notify
|
|
66352
66432
|
};
|
|
66353
66433
|
});
|
|
66354
|
-
const layer$
|
|
66434
|
+
const layer$45 = (options) => Layer.effect(AcpSessionRuntime, make$47(options));
|
|
66355
66435
|
function sessionConfigOptionsFromSetup(response) {
|
|
66356
66436
|
return response?.configOptions ?? [];
|
|
66357
66437
|
}
|
|
@@ -66719,7 +66799,7 @@ function buildCursorDiscoveredModelsFromAvailableModelsResponse(response) {
|
|
|
66719
66799
|
}
|
|
66720
66800
|
const makeCursorAcpProbeRuntime = (cursorSettings, environment) => Effect.gen(function* () {
|
|
66721
66801
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
66722
|
-
const acpContext = yield* Layer.build(layer$
|
|
66802
|
+
const acpContext = yield* Layer.build(layer$45({
|
|
66723
66803
|
spawn: {
|
|
66724
66804
|
command: cursorSettings.binaryPath,
|
|
66725
66805
|
args: [...cursorSettings.apiEndpoint ? ["-e", cursorSettings.apiEndpoint] : [], "acp"],
|
|
@@ -67168,7 +67248,7 @@ function buildCursorAcpSpawnInput(cursorSettings, cwd, environment) {
|
|
|
67168
67248
|
};
|
|
67169
67249
|
}
|
|
67170
67250
|
const makeCursorAcpRuntime = (input) => Effect.gen(function* () {
|
|
67171
|
-
const acpContext = yield* Layer.build(layer$
|
|
67251
|
+
const acpContext = yield* Layer.build(layer$45({
|
|
67172
67252
|
...input,
|
|
67173
67253
|
spawn: buildCursorAcpSpawnInput(input.cursorSettings, input.cwd, input.environment),
|
|
67174
67254
|
authMethodId: "cursor_login",
|
|
@@ -67320,15 +67400,17 @@ const makeCursorTextGeneration = Effect.fn("makeCursorTextGeneration")(function*
|
|
|
67320
67400
|
generateThreadTitle: Effect.fn("CursorTextGeneration.generateThreadTitle")(function* (input) {
|
|
67321
67401
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
67322
67402
|
message: input.message,
|
|
67323
|
-
attachments: input.attachments
|
|
67403
|
+
attachments: input.attachments,
|
|
67404
|
+
regeneration: input.regeneration
|
|
67324
67405
|
});
|
|
67325
|
-
|
|
67406
|
+
const generated = yield* runCursorJson({
|
|
67326
67407
|
operation: "generateThreadTitle",
|
|
67327
67408
|
cwd: input.cwd,
|
|
67328
67409
|
prompt,
|
|
67329
67410
|
outputSchemaJson: outputSchema,
|
|
67330
67411
|
modelSelection: input.modelSelection
|
|
67331
|
-
})
|
|
67412
|
+
});
|
|
67413
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
67332
67414
|
}),
|
|
67333
67415
|
generateStarterSuggestions: Effect.fn("CursorTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
67334
67416
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -68610,7 +68692,7 @@ function resolveGrokAuthMethodId(environment) {
|
|
|
68610
68692
|
return environment?.[GROK_API_KEY_ENV$1]?.trim() ? GROK_AUTH_METHOD_API_KEY$1 : GROK_AUTH_METHOD_CACHED_TOKEN$1;
|
|
68611
68693
|
}
|
|
68612
68694
|
const makeGrokAcpRuntime = (input) => Effect.gen(function* () {
|
|
68613
|
-
const acpContext = yield* Layer.build(layer$
|
|
68695
|
+
const acpContext = yield* Layer.build(layer$45({
|
|
68614
68696
|
...input,
|
|
68615
68697
|
spawn: buildGrokAcpSpawnInput(input.grokSettings, input.cwd, input.environment),
|
|
68616
68698
|
authMethodId: resolveGrokAuthMethodId(input.environment),
|
|
@@ -68754,15 +68836,17 @@ const makeGrokTextGeneration = Effect.fn("makeGrokTextGeneration")(function* (gr
|
|
|
68754
68836
|
generateThreadTitle: Effect.fn("GrokTextGeneration.generateThreadTitle")(function* (input) {
|
|
68755
68837
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
68756
68838
|
message: input.message,
|
|
68757
|
-
attachments: input.attachments
|
|
68839
|
+
attachments: input.attachments,
|
|
68840
|
+
regeneration: input.regeneration
|
|
68758
68841
|
});
|
|
68759
|
-
|
|
68842
|
+
const generated = yield* runGrokJson({
|
|
68760
68843
|
operation: "generateThreadTitle",
|
|
68761
68844
|
cwd: input.cwd,
|
|
68762
68845
|
prompt,
|
|
68763
68846
|
outputSchemaJson: outputSchema,
|
|
68764
68847
|
modelSelection: input.modelSelection
|
|
68765
|
-
})
|
|
68848
|
+
});
|
|
68849
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
68766
68850
|
}),
|
|
68767
68851
|
generateStarterSuggestions: Effect.fn("GrokTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
68768
68852
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -70444,7 +70528,7 @@ const makeOpenCodeRuntime = Effect.gen(function* () {
|
|
|
70444
70528
|
};
|
|
70445
70529
|
});
|
|
70446
70530
|
var OpenCodeRuntime = class extends Context.Service()("@zl-tools/server/provider/opencodeRuntime") {};
|
|
70447
|
-
const OpenCodeRuntimeLive = Layer.effect(OpenCodeRuntime, makeOpenCodeRuntime).pipe(Layer.provide(layer$
|
|
70531
|
+
const OpenCodeRuntimeLive = Layer.effect(OpenCodeRuntime, makeOpenCodeRuntime).pipe(Layer.provide(layer$78));
|
|
70448
70532
|
//#endregion
|
|
70449
70533
|
//#region src/textGeneration/OpenCodeTextGeneration.ts
|
|
70450
70534
|
const OPENCODE_TEXT_GENERATION_IDLE_TTL = "30 seconds";
|
|
@@ -70771,16 +70855,18 @@ const makeOpenCodeTextGeneration = Effect.fn("makeOpenCodeTextGeneration")(funct
|
|
|
70771
70855
|
generateThreadTitle: Effect.fn("OpenCodeTextGeneration.generateThreadTitle")(function* (input) {
|
|
70772
70856
|
const { prompt, outputSchema } = buildThreadTitlePrompt({
|
|
70773
70857
|
message: input.message,
|
|
70774
|
-
attachments: input.attachments
|
|
70858
|
+
attachments: input.attachments,
|
|
70859
|
+
regeneration: input.regeneration
|
|
70775
70860
|
});
|
|
70776
|
-
|
|
70861
|
+
const generated = yield* runOpenCodeJson({
|
|
70777
70862
|
operation: "generateThreadTitle",
|
|
70778
70863
|
cwd: input.cwd,
|
|
70779
70864
|
prompt,
|
|
70780
70865
|
outputSchemaJson: outputSchema,
|
|
70781
70866
|
modelSelection: input.modelSelection,
|
|
70782
70867
|
attachments: input.attachments
|
|
70783
|
-
})
|
|
70868
|
+
});
|
|
70869
|
+
return { title: input.regeneration ? sanitizeRegeneratedThreadTitle(generated.title, input.regeneration.maxCharacters) : sanitizeThreadTitle(generated.title) };
|
|
70784
70870
|
}),
|
|
70785
70871
|
generateStarterSuggestions: Effect.fn("OpenCodeTextGeneration.generateStarterSuggestions")(function* (input) {
|
|
70786
70872
|
const { prompt, outputSchema } = buildStarterSuggestionsPrompt(input);
|
|
@@ -73352,7 +73438,7 @@ function sourceFromRow(row) {
|
|
|
73352
73438
|
};
|
|
73353
73439
|
}
|
|
73354
73440
|
var ProviderUsageStore = class extends Context.Service()("@zl-tools/server/providerUsage/ProviderUsageStore") {};
|
|
73355
|
-
const make$
|
|
73441
|
+
const make$46 = Effect.gen(function* () {
|
|
73356
73442
|
const sql = yield* SqlClient.SqlClient;
|
|
73357
73443
|
const listSnapshots = Effect.gen(function* () {
|
|
73358
73444
|
const rows = yield* sql`
|
|
@@ -73488,7 +73574,7 @@ const make$45 = Effect.gen(function* () {
|
|
|
73488
73574
|
deleteSource
|
|
73489
73575
|
});
|
|
73490
73576
|
});
|
|
73491
|
-
const layer$
|
|
73577
|
+
const layer$44 = Layer.effect(ProviderUsageStore, make$46);
|
|
73492
73578
|
//#endregion
|
|
73493
73579
|
//#region src/providerUsage/scheduler.ts
|
|
73494
73580
|
const MAX_EXPONENTIAL_BACKOFF_SECONDS = 1800;
|
|
@@ -73609,7 +73695,7 @@ function mergeCanonicalWindows(previous, incoming) {
|
|
|
73609
73695
|
return Array.from(byKey.values());
|
|
73610
73696
|
}
|
|
73611
73697
|
var ProviderUsageService = class extends Context.Service()("@zl-tools/server/providerUsage/ProviderUsageService") {};
|
|
73612
|
-
const make$
|
|
73698
|
+
const make$45 = Effect.gen(function* () {
|
|
73613
73699
|
const store = yield* ProviderUsageStore;
|
|
73614
73700
|
const serverSettings = yield* ServerSettingsService;
|
|
73615
73701
|
const serverConfig = yield* ServerConfig;
|
|
@@ -74373,7 +74459,7 @@ const make$44 = Effect.gen(function* () {
|
|
|
74373
74459
|
streamSnapshots: Stream.fromPubSub(changes)
|
|
74374
74460
|
});
|
|
74375
74461
|
});
|
|
74376
|
-
const layer$
|
|
74462
|
+
const layer$43 = Layer.effect(ProviderUsageService, make$45);
|
|
74377
74463
|
//#endregion
|
|
74378
74464
|
//#region src/cloud/traceRelayRequest.ts
|
|
74379
74465
|
const traceRelayRequest = (effect) => effect.pipe(withRelayClientTracing);
|
|
@@ -74585,7 +74671,7 @@ const layerNode = Layer.effect(HttpResponseCompression, Effect.gen(function* ()
|
|
|
74585
74671
|
}));
|
|
74586
74672
|
const layerBun = Layer.succeed(HttpResponseCompression, { gzip: (body, options) => HttpServerResponse$1.raw(new Response(body).body.pipeThrough(new CompressionStream("gzip")), options) });
|
|
74587
74673
|
/** Selects the runtime implementation the same way the HTTP server layer does. */
|
|
74588
|
-
const layer$
|
|
74674
|
+
const layer$42 = Layer.unwrap(Effect.sync(() => typeof Bun !== "undefined" ? layerBun : layerNode));
|
|
74589
74675
|
//#endregion
|
|
74590
74676
|
//#region src/httpCors.ts
|
|
74591
74677
|
const browserApiCorsAllowedMethods = [
|
|
@@ -76593,7 +76679,7 @@ const classifyNonZeroExit = (command, stderr) => {
|
|
|
76593
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";
|
|
76594
76680
|
return "command-failed";
|
|
76595
76681
|
};
|
|
76596
|
-
const make$
|
|
76682
|
+
const make$44 = Effect.gen(function* () {
|
|
76597
76683
|
const processRunner = yield* ProcessRunner;
|
|
76598
76684
|
const run = Effect.fn("VcsProcess.run")(function* (input) {
|
|
76599
76685
|
const baseError = {
|
|
@@ -76650,7 +76736,7 @@ const make$43 = Effect.gen(function* () {
|
|
|
76650
76736
|
});
|
|
76651
76737
|
return VcsProcess.of({ run });
|
|
76652
76738
|
});
|
|
76653
|
-
const layer$
|
|
76739
|
+
const layer$41 = Layer.effect(VcsProcess, make$44).pipe(Layer.provide(layer$68));
|
|
76654
76740
|
//#endregion
|
|
76655
76741
|
//#region src/vcs/VcsDriver.ts
|
|
76656
76742
|
var VcsDriver = class extends Context.Service()("@zl-tools/server/vcs/VcsDriver") {};
|
|
@@ -77101,12 +77187,12 @@ const makeVcsDriver = Effect.gen(function* () {
|
|
|
77101
77187
|
const driver = yield* makeVcsDriverShape();
|
|
77102
77188
|
return VcsDriver.of(driver);
|
|
77103
77189
|
});
|
|
77104
|
-
const make$
|
|
77190
|
+
const make$43 = Effect.gen(function* () {
|
|
77105
77191
|
const git = yield* makeGitVcsDriverCore();
|
|
77106
77192
|
return GitVcsDriver.of(git);
|
|
77107
77193
|
});
|
|
77108
77194
|
Layer.effect(VcsDriver, makeVcsDriver);
|
|
77109
|
-
const layer$
|
|
77195
|
+
const layer$40 = Layer.effect(GitVcsDriver, make$43);
|
|
77110
77196
|
//#endregion
|
|
77111
77197
|
//#region src/vcs/VcsProjectConfig.ts
|
|
77112
77198
|
const ProjectVcsConfigJson = fromLenientJson(Schema$1.Struct({
|
|
@@ -77138,7 +77224,7 @@ const logVcsProjectConfigError = (error) => Effect.logWarning(error).pipe(Effect
|
|
|
77138
77224
|
configPath: error.configPath,
|
|
77139
77225
|
errorTag: error._tag
|
|
77140
77226
|
}));
|
|
77141
|
-
const make$
|
|
77227
|
+
const make$42 = Effect.gen(function* () {
|
|
77142
77228
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
77143
77229
|
const path = yield* Path.Path;
|
|
77144
77230
|
const findConfigPath = Effect.fn("VcsProjectConfig.findConfigPath")(function* (cwd) {
|
|
@@ -77179,7 +77265,7 @@ const make$41 = Effect.gen(function* () {
|
|
|
77179
77265
|
});
|
|
77180
77266
|
return VcsProjectConfig.of({ resolveKind });
|
|
77181
77267
|
});
|
|
77182
|
-
const layer$
|
|
77268
|
+
const layer$39 = Layer.effect(VcsProjectConfig, make$42);
|
|
77183
77269
|
//#endregion
|
|
77184
77270
|
//#region src/vcs/VcsDriverRegistry.ts
|
|
77185
77271
|
const DETECTION_CACHE_CAPACITY = 2048;
|
|
@@ -77199,7 +77285,7 @@ function parseDetectionCacheKey(key) {
|
|
|
77199
77285
|
cwd: key.slice(separatorIndex + 1)
|
|
77200
77286
|
};
|
|
77201
77287
|
}
|
|
77202
|
-
const make$
|
|
77288
|
+
const make$41 = Effect.gen(function* () {
|
|
77203
77289
|
const projectConfig = yield* VcsProjectConfig;
|
|
77204
77290
|
const git = yield* makeVcsDriver;
|
|
77205
77291
|
const drivers = { git };
|
|
@@ -77256,7 +77342,7 @@ const make$40 = Effect.gen(function* () {
|
|
|
77256
77342
|
resolve
|
|
77257
77343
|
});
|
|
77258
77344
|
});
|
|
77259
|
-
const layer$
|
|
77345
|
+
const layer$38 = Layer.effect(VcsDriverRegistry, make$41).pipe(Layer.provide(layer$39));
|
|
77260
77346
|
//#endregion
|
|
77261
77347
|
//#region src/checkpointing/CheckpointStore.ts
|
|
77262
77348
|
/**
|
|
@@ -77276,7 +77362,7 @@ const layer$37 = Layer.effect(VcsDriverRegistry, make$40).pipe(Layer.provide(lay
|
|
|
77276
77362
|
*/
|
|
77277
77363
|
/** Service tag for checkpoint persistence and restore operations. */
|
|
77278
77364
|
var CheckpointStore = class extends Context.Service()("@zl-tools/server/checkpointing/CheckpointStore") {};
|
|
77279
|
-
const make$
|
|
77365
|
+
const make$40 = Effect.gen(function* () {
|
|
77280
77366
|
const vcsRegistry = yield* VcsDriverRegistry;
|
|
77281
77367
|
const resolveCheckpoints = Effect.fn("CheckpointStore.resolveCheckpoints")(function* (operation, cwd) {
|
|
77282
77368
|
const handle = yield* vcsRegistry.resolve({ cwd });
|
|
@@ -77315,7 +77401,7 @@ const make$39 = Effect.gen(function* () {
|
|
|
77315
77401
|
deleteCheckpointRefs
|
|
77316
77402
|
});
|
|
77317
77403
|
});
|
|
77318
|
-
const layer$
|
|
77404
|
+
const layer$37 = Layer.effect(CheckpointStore, make$40);
|
|
77319
77405
|
//#endregion
|
|
77320
77406
|
//#region src/checkpointing/CheckpointDiffQuery.ts
|
|
77321
77407
|
/**
|
|
@@ -77337,7 +77423,7 @@ function buildTurnDiffResult(input, diff) {
|
|
|
77337
77423
|
diff
|
|
77338
77424
|
};
|
|
77339
77425
|
}
|
|
77340
|
-
const make$
|
|
77426
|
+
const make$39 = Effect.gen(function* () {
|
|
77341
77427
|
const projectionSnapshotQuery = yield* ProjectionSnapshotQuery;
|
|
77342
77428
|
const checkpointStore = yield* CheckpointStore;
|
|
77343
77429
|
const getTurnDiff = Effect.fn("getTurnDiff")(function* (input) {
|
|
@@ -77473,7 +77559,7 @@ const make$38 = Effect.gen(function* () {
|
|
|
77473
77559
|
getFullThreadDiff
|
|
77474
77560
|
});
|
|
77475
77561
|
});
|
|
77476
|
-
const layer$
|
|
77562
|
+
const layer$36 = Layer.effect(CheckpointDiffQuery, make$39);
|
|
77477
77563
|
//#endregion
|
|
77478
77564
|
//#region src/orchestration/Normalizer.ts
|
|
77479
77565
|
const canonicalizeClientCommandTimestamps = (command, receivedAt) => {
|
|
@@ -77789,7 +77875,7 @@ function makeUpdateState(input) {
|
|
|
77789
77875
|
output: input.output ?? null
|
|
77790
77876
|
};
|
|
77791
77877
|
}
|
|
77792
|
-
const make$
|
|
77878
|
+
const make$38 = Effect.fn("ProviderMaintenanceRunner.make")(function* () {
|
|
77793
77879
|
const providerRegistry = yield* ProviderRegistry;
|
|
77794
77880
|
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
|
|
77795
77881
|
const httpClient = yield* HttpClient.HttpClient;
|
|
@@ -77904,7 +77990,7 @@ const make$37 = Effect.fn("ProviderMaintenanceRunner.make")(function* () {
|
|
|
77904
77990
|
});
|
|
77905
77991
|
return ProviderMaintenanceRunner.of({ updateProvider });
|
|
77906
77992
|
});
|
|
77907
|
-
const layer$
|
|
77993
|
+
const layer$35 = Layer.effect(ProviderMaintenanceRunner, make$38());
|
|
77908
77994
|
//#endregion
|
|
77909
77995
|
//#region src/mcp/McpInvocationContext.ts
|
|
77910
77996
|
var McpInvocationContext = class extends Context.Service()("@zl-tools/server/mcp/McpInvocationContext") {};
|
|
@@ -78090,7 +78176,7 @@ const SERVER_OPERATIONS = /* @__PURE__ */ new Set([
|
|
|
78090
78176
|
"waitFor"
|
|
78091
78177
|
]);
|
|
78092
78178
|
var ServerPreviewAutomation = class extends Context.Service()("@zl-tools/server/preview/ServerPreviewAutomation") {};
|
|
78093
|
-
const make$
|
|
78179
|
+
const make$37 = Effect.gen(function* ServerPreviewAutomationMake() {
|
|
78094
78180
|
const manager = yield* PreviewManager;
|
|
78095
78181
|
const browser = yield* BrowserRuntime;
|
|
78096
78182
|
const invoke = Effect.fn("ServerPreviewAutomation.invoke")(function* (request) {
|
|
@@ -78240,7 +78326,7 @@ const make$36 = Effect.gen(function* ServerPreviewAutomationMake() {
|
|
|
78240
78326
|
invoke
|
|
78241
78327
|
});
|
|
78242
78328
|
});
|
|
78243
|
-
const layer$
|
|
78329
|
+
const layer$34 = Layer.effect(ServerPreviewAutomation, make$37);
|
|
78244
78330
|
//#endregion
|
|
78245
78331
|
//#region src/mcp/PreviewAutomationBroker.ts
|
|
78246
78332
|
var PreviewAutomationBroker = class extends Context.Service()("@zl-tools/server/mcp/PreviewAutomationBroker") {};
|
|
@@ -78628,8 +78714,8 @@ const makeWithServerHosted = Effect.fn("PreviewAutomationBroker.make")(function*
|
|
|
78628
78714
|
invoke
|
|
78629
78715
|
});
|
|
78630
78716
|
});
|
|
78631
|
-
const make$
|
|
78632
|
-
const layer$
|
|
78717
|
+
const make$36 = makeWithServerHosted();
|
|
78718
|
+
const layer$33 = Layer.effect(PreviewAutomationBroker, make$36);
|
|
78633
78719
|
const layerServerHosted = Layer.effect(PreviewAutomationBroker, Effect.gen(function* () {
|
|
78634
78720
|
const serverHosted = yield* ServerPreviewAutomation;
|
|
78635
78721
|
return yield* makeWithServerHosted(serverHosted);
|
|
@@ -78781,7 +78867,7 @@ const waitForScan = (cwd, finder, onFailure) => Effect.try({
|
|
|
78781
78867
|
timeout: WORKSPACE_INDEX_SCAN_TIMEOUT
|
|
78782
78868
|
})
|
|
78783
78869
|
}), Effect.withSpan("WorkspaceSearchIndex.waitForScan"));
|
|
78784
|
-
const make$
|
|
78870
|
+
const make$35 = Effect.fn("WorkspaceSearchIndex.make")(function* (cwd) {
|
|
78785
78871
|
const finder = yield* Effect.acquireRelease(createFinder(cwd), (finder) => Effect.try({
|
|
78786
78872
|
try: () => finder.destroy(),
|
|
78787
78873
|
catch: (cause) => new WorkspaceSearchIndexDestroyFailed({
|
|
@@ -78855,9 +78941,9 @@ const make$34 = Effect.fn("WorkspaceSearchIndex.make")(function* (cwd) {
|
|
|
78855
78941
|
* workspace root. WorkspaceSearchIndexMap owns memoization and idle cleanup;
|
|
78856
78942
|
* using a default cwd here would mix resources from different workspaces.
|
|
78857
78943
|
*/
|
|
78858
|
-
const layer$
|
|
78944
|
+
const layer$32 = (cwd) => Layer.effect(WorkspaceSearchIndex, make$35(cwd));
|
|
78859
78945
|
var WorkspaceSearchIndexMap = class extends LayerMap.Service()("@zl-tools/server/workspace/WorkspaceSearchIndexMap", {
|
|
78860
|
-
lookup: layer$
|
|
78946
|
+
lookup: layer$32,
|
|
78861
78947
|
idleTimeToLive: WORKSPACE_INDEX_IDLE_TTL
|
|
78862
78948
|
}) {};
|
|
78863
78949
|
//#endregion
|
|
@@ -78919,7 +79005,7 @@ const resolveBrowseTarget = Effect.fn("WorkspaceEntries.resolveBrowseTarget")(fu
|
|
|
78919
79005
|
if (!input.cwd) return yield* new WorkspaceEntriesCurrentProjectRequiredError({ partialPath: input.partialPath });
|
|
78920
79006
|
return path.resolve(expandHomePath$1(input.cwd, path), input.partialPath);
|
|
78921
79007
|
});
|
|
78922
|
-
const make$
|
|
79008
|
+
const make$34 = Effect.gen(function* () {
|
|
78923
79009
|
const path = yield* Path.Path;
|
|
78924
79010
|
const workspacePaths = yield* WorkspacePaths;
|
|
78925
79011
|
const workspaceSearchIndexes = yield* WorkspaceSearchIndexMap;
|
|
@@ -78993,7 +79079,7 @@ const make$33 = Effect.gen(function* () {
|
|
|
78993
79079
|
search
|
|
78994
79080
|
});
|
|
78995
79081
|
});
|
|
78996
|
-
const layer$
|
|
79082
|
+
const layer$31 = Layer.effect(WorkspaceEntries, make$34).pipe(Layer.provide(WorkspaceSearchIndexMap.layer));
|
|
78997
79083
|
//#endregion
|
|
78998
79084
|
//#region src/workspace/WorkspaceFileSystem.ts
|
|
78999
79085
|
/**
|
|
@@ -79062,7 +79148,7 @@ Schema$1.Union([
|
|
|
79062
79148
|
]);
|
|
79063
79149
|
/** Service tag for workspace file operations. */
|
|
79064
79150
|
var WorkspaceFileSystem = class extends Context.Service()("@zl-tools/server/workspace/WorkspaceFileSystem") {};
|
|
79065
|
-
const make$
|
|
79151
|
+
const make$33 = Effect.gen(function* () {
|
|
79066
79152
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
79067
79153
|
const path = yield* Path.Path;
|
|
79068
79154
|
const workspacePaths = yield* WorkspacePaths;
|
|
@@ -79194,7 +79280,7 @@ const make$32 = Effect.gen(function* () {
|
|
|
79194
79280
|
writeFile
|
|
79195
79281
|
});
|
|
79196
79282
|
});
|
|
79197
|
-
const layer$
|
|
79283
|
+
const layer$30 = Layer.effect(WorkspaceFileSystem, make$33);
|
|
79198
79284
|
//#endregion
|
|
79199
79285
|
//#region ../../packages/shared/src/projectScripts.ts
|
|
79200
79286
|
function projectScriptRuntimeEnv(input) {
|
|
@@ -79239,7 +79325,7 @@ var ProjectSetupScriptProjectNotFoundError = class extends Schema$1.TaggedErrorC
|
|
|
79239
79325
|
};
|
|
79240
79326
|
Schema$1.Union([ProjectSetupScriptOperationError, ProjectSetupScriptProjectNotFoundError]);
|
|
79241
79327
|
var ProjectSetupScriptRunner = class extends Context.Service()("@zl-tools/server/project/ProjectSetupScriptRunner") {};
|
|
79242
|
-
const make$
|
|
79328
|
+
const make$32 = Effect.gen(function* () {
|
|
79243
79329
|
const projectionSnapshotQuery = yield* ProjectionSnapshotQuery;
|
|
79244
79330
|
const terminalManager = yield* TerminalManager;
|
|
79245
79331
|
const runForThread = Effect.fn("ProjectSetupScriptRunner.runForThread")(function* (input) {
|
|
@@ -79297,7 +79383,7 @@ const make$31 = Effect.gen(function* () {
|
|
|
79297
79383
|
});
|
|
79298
79384
|
return ProjectSetupScriptRunner.of({ runForThread });
|
|
79299
79385
|
});
|
|
79300
|
-
const layer$
|
|
79386
|
+
const layer$29 = Layer.effect(ProjectSetupScriptRunner, make$32);
|
|
79301
79387
|
//#endregion
|
|
79302
79388
|
//#region src/sourceControl/SourceControlProvider.ts
|
|
79303
79389
|
const MAX_ERROR_TRANSPORT_VALUE_LENGTH = 256;
|
|
@@ -79600,7 +79686,7 @@ function decodeAzureDevOpsJson(raw, schema, operation, cwd) {
|
|
|
79600
79686
|
cause
|
|
79601
79687
|
})));
|
|
79602
79688
|
}
|
|
79603
|
-
const make$
|
|
79689
|
+
const make$31 = Effect.gen(function* () {
|
|
79604
79690
|
const process = yield* VcsProcess;
|
|
79605
79691
|
const execute = (input) => process.run({
|
|
79606
79692
|
operation: "AzureDevOpsCli.execute",
|
|
@@ -79742,7 +79828,7 @@ const make$30 = Effect.gen(function* () {
|
|
|
79742
79828
|
}).pipe(Effect.asVoid)
|
|
79743
79829
|
});
|
|
79744
79830
|
});
|
|
79745
|
-
const layer$
|
|
79831
|
+
const layer$28 = Layer.effect(AzureDevOpsCli, make$31);
|
|
79746
79832
|
//#endregion
|
|
79747
79833
|
//#region src/sourceControl/SourceControlProviderDiscovery.ts
|
|
79748
79834
|
function firstNonEmptyLine(text) {
|
|
@@ -79945,7 +80031,7 @@ function toChangeRequest$3(summary) {
|
|
|
79945
80031
|
isCrossRepository: false
|
|
79946
80032
|
};
|
|
79947
80033
|
}
|
|
79948
|
-
const make$
|
|
80034
|
+
const make$30 = Effect.gen(function* () {
|
|
79949
80035
|
const azure = yield* AzureDevOpsCli;
|
|
79950
80036
|
return SourceControlProvider.of({
|
|
79951
80037
|
kind: "azure-devops",
|
|
@@ -80037,7 +80123,7 @@ const make$29 = Effect.gen(function* () {
|
|
|
80037
80123
|
})))
|
|
80038
80124
|
});
|
|
80039
80125
|
});
|
|
80040
|
-
Layer.effect(SourceControlProvider, make$
|
|
80126
|
+
Layer.effect(SourceControlProvider, make$30);
|
|
80041
80127
|
//#endregion
|
|
80042
80128
|
//#region src/sourceControl/bitbucketPullRequests.ts
|
|
80043
80129
|
const BitbucketRepositoryRefSchema = Schema$1.Struct({
|
|
@@ -80351,7 +80437,7 @@ function responseError(operation, response) {
|
|
|
80351
80437
|
responseBodyLength: body.length
|
|
80352
80438
|
}))));
|
|
80353
80439
|
}
|
|
80354
|
-
const make$
|
|
80440
|
+
const make$29 = Effect.gen(function* () {
|
|
80355
80441
|
const config = yield* BitbucketApiEnvConfig;
|
|
80356
80442
|
const httpClient = yield* HttpClient.HttpClient;
|
|
80357
80443
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
@@ -80515,7 +80601,7 @@ const make$28 = Effect.gen(function* () {
|
|
|
80515
80601
|
})))
|
|
80516
80602
|
});
|
|
80517
80603
|
});
|
|
80518
|
-
const layer$
|
|
80604
|
+
const layer$26 = Layer.effect(BitbucketApi, make$29);
|
|
80519
80605
|
//#endregion
|
|
80520
80606
|
//#region src/sourceControl/BitbucketSourceControlProvider.ts
|
|
80521
80607
|
function toChangeRequest$2(summary) {
|
|
@@ -80533,7 +80619,7 @@ function toChangeRequest$2(summary) {
|
|
|
80533
80619
|
...summary.headRepositoryOwnerLogin !== void 0 ? { headRepositoryOwnerLogin: summary.headRepositoryOwnerLogin } : {}
|
|
80534
80620
|
};
|
|
80535
80621
|
}
|
|
80536
|
-
const make$
|
|
80622
|
+
const make$28 = Effect.gen(function* () {
|
|
80537
80623
|
const bitbucket = yield* BitbucketApi;
|
|
80538
80624
|
return SourceControlProvider.of({
|
|
80539
80625
|
kind: "bitbucket",
|
|
@@ -80624,7 +80710,7 @@ const make$27 = Effect.gen(function* () {
|
|
|
80624
80710
|
})))
|
|
80625
80711
|
});
|
|
80626
80712
|
});
|
|
80627
|
-
Layer.effect(SourceControlProvider, make$
|
|
80713
|
+
Layer.effect(SourceControlProvider, make$28);
|
|
80628
80714
|
const makeDiscovery = Effect.gen(function* () {
|
|
80629
80715
|
return {
|
|
80630
80716
|
type: "api",
|
|
@@ -80853,7 +80939,7 @@ function deriveRepositoryCloneUrlsFromCreateOutput(stdout, repository) {
|
|
|
80853
80939
|
sshUrl: `git@${fallbackHost}:${repository}.git`
|
|
80854
80940
|
};
|
|
80855
80941
|
}
|
|
80856
|
-
const make$
|
|
80942
|
+
const make$27 = Effect.gen(function* () {
|
|
80857
80943
|
const process = yield* VcsProcess;
|
|
80858
80944
|
const execute = (input) => process.run({
|
|
80859
80945
|
operation: "GitHubCli.execute",
|
|
@@ -80969,7 +81055,7 @@ const make$26 = Effect.gen(function* () {
|
|
|
80969
81055
|
}).pipe(Effect.asVoid)
|
|
80970
81056
|
});
|
|
80971
81057
|
});
|
|
80972
|
-
const layer$
|
|
81058
|
+
const layer$24 = Layer.effect(GitHubCli, make$27);
|
|
80973
81059
|
//#endregion
|
|
80974
81060
|
//#region src/sourceControl/gitHubAuthStatus.ts
|
|
80975
81061
|
const GitHubAuthStatusAccountSchema = Schema$1.Struct({
|
|
@@ -81070,7 +81156,7 @@ const discovery$1 = {
|
|
|
81070
81156
|
parseAuth: parseGitHubAuth,
|
|
81071
81157
|
installHint: "Install the GitHub command-line tool (`gh`) via https://cli.github.com/ or your package manager (for example `brew install gh`)."
|
|
81072
81158
|
};
|
|
81073
|
-
const make$
|
|
81159
|
+
const make$26 = Effect.gen(function* () {
|
|
81074
81160
|
const github = yield* GitHubCli;
|
|
81075
81161
|
const listChangeRequests = (input) => {
|
|
81076
81162
|
if (input.state === "open") return github.listOpenPullRequests({
|
|
@@ -81186,7 +81272,7 @@ const make$25 = Effect.gen(function* () {
|
|
|
81186
81272
|
})))
|
|
81187
81273
|
});
|
|
81188
81274
|
});
|
|
81189
|
-
Layer.effect(SourceControlProvider, make$
|
|
81275
|
+
Layer.effect(SourceControlProvider, make$26);
|
|
81190
81276
|
//#endregion
|
|
81191
81277
|
//#region src/sourceControl/gitLabMergeRequests.ts
|
|
81192
81278
|
const GitLabProjectReferenceSchema = Schema$1.Struct({
|
|
@@ -81497,7 +81583,7 @@ function parseRepositoryPath(repository) {
|
|
|
81497
81583
|
projectPath
|
|
81498
81584
|
};
|
|
81499
81585
|
}
|
|
81500
|
-
const make$
|
|
81586
|
+
const make$25 = Effect.gen(function* () {
|
|
81501
81587
|
const process = yield* VcsProcess;
|
|
81502
81588
|
const run = (input, mapError) => process.run({
|
|
81503
81589
|
operation: "GitLabCli.execute",
|
|
@@ -81646,7 +81732,7 @@ const make$24 = Effect.gen(function* () {
|
|
|
81646
81732
|
}).pipe(Effect.asVoid)
|
|
81647
81733
|
});
|
|
81648
81734
|
});
|
|
81649
|
-
const layer$
|
|
81735
|
+
const layer$22 = Layer.effect(GitLabCli, make$25);
|
|
81650
81736
|
//#endregion
|
|
81651
81737
|
//#region src/sourceControl/gitLabAuthStatus.ts
|
|
81652
81738
|
const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
|
|
@@ -81743,7 +81829,7 @@ const discovery = {
|
|
|
81743
81829
|
refineUnknownRemote: refineUnknownGitLabRemote,
|
|
81744
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`)."
|
|
81745
81831
|
};
|
|
81746
|
-
const make$
|
|
81832
|
+
const make$24 = Effect.gen(function* () {
|
|
81747
81833
|
const gitlab = yield* GitLabCli;
|
|
81748
81834
|
return SourceControlProvider.of({
|
|
81749
81835
|
kind: "gitlab",
|
|
@@ -81831,7 +81917,7 @@ const make$23 = Effect.gen(function* () {
|
|
|
81831
81917
|
})))
|
|
81832
81918
|
});
|
|
81833
81919
|
});
|
|
81834
|
-
Layer.effect(SourceControlProvider, make$
|
|
81920
|
+
Layer.effect(SourceControlProvider, make$24);
|
|
81835
81921
|
//#endregion
|
|
81836
81922
|
//#region src/sourceControl/SourceControlProviderRegistry.ts
|
|
81837
81923
|
const PROVIDER_DETECTION_CACHE_CAPACITY = 2048;
|
|
@@ -81982,12 +82068,12 @@ const makeWithProviders = Effect.fn("makeSourceControlProviderRegistryWithProvid
|
|
|
81982
82068
|
})), { concurrency: "unbounded" })
|
|
81983
82069
|
});
|
|
81984
82070
|
});
|
|
81985
|
-
const make$
|
|
81986
|
-
const github = yield* make$
|
|
81987
|
-
const gitlab = yield* make$
|
|
81988
|
-
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;
|
|
81989
82075
|
const bitbucketDiscovery = yield* makeDiscovery;
|
|
81990
|
-
const azureDevOps = yield* make$
|
|
82076
|
+
const azureDevOps = yield* make$30;
|
|
81991
82077
|
return yield* makeWithProviders([
|
|
81992
82078
|
{
|
|
81993
82079
|
kind: "github",
|
|
@@ -82011,7 +82097,7 @@ const make$22 = Effect.gen(function* () {
|
|
|
82011
82097
|
}
|
|
82012
82098
|
]);
|
|
82013
82099
|
});
|
|
82014
|
-
const layer$
|
|
82100
|
+
const layer$20 = Layer.effect(SourceControlProviderRegistry, make$23);
|
|
82015
82101
|
//#endregion
|
|
82016
82102
|
//#region src/git/GitManager.ts
|
|
82017
82103
|
var GitManager = class extends Context.Service()("@zl-tools/server/git/GitManager") {};
|
|
@@ -82224,7 +82310,7 @@ function toPullRequestHeadRemoteInfo(pr) {
|
|
|
82224
82310
|
...pr.headRepositoryOwnerLogin !== void 0 ? { headRepositoryOwnerLogin: pr.headRepositoryOwnerLogin } : {}
|
|
82225
82311
|
};
|
|
82226
82312
|
}
|
|
82227
|
-
const make$
|
|
82313
|
+
const make$22 = Effect.gen(function* () {
|
|
82228
82314
|
const gitCore = yield* GitVcsDriver;
|
|
82229
82315
|
const sourceControlProviders = yield* SourceControlProviderRegistry;
|
|
82230
82316
|
const textGeneration = yield* TextGeneration;
|
|
@@ -83103,7 +83189,7 @@ const make$21 = Effect.gen(function* () {
|
|
|
83103
83189
|
runStackedAction
|
|
83104
83190
|
});
|
|
83105
83191
|
});
|
|
83106
|
-
const layer$
|
|
83192
|
+
const layer$19 = Layer.effect(GitManager, make$22);
|
|
83107
83193
|
//#endregion
|
|
83108
83194
|
//#region src/git/GitWorkflowService.ts
|
|
83109
83195
|
var GitWorkflowService = class extends Context.Service()("@zl-tools/server/git/GitWorkflowService") {};
|
|
@@ -83149,7 +83235,7 @@ function hasMissingPathCause(value, seen = /* @__PURE__ */ new Set()) {
|
|
|
83149
83235
|
if (record.reason && typeof record.reason === "object" && record.reason._tag === "NotFound") return true;
|
|
83150
83236
|
return hasMissingPathCause(record.cause, seen);
|
|
83151
83237
|
}
|
|
83152
|
-
const make$
|
|
83238
|
+
const make$21 = Effect.gen(function* () {
|
|
83153
83239
|
const registry = yield* VcsDriverRegistry;
|
|
83154
83240
|
const git = yield* GitVcsDriver;
|
|
83155
83241
|
const gitManager = yield* GitManager;
|
|
@@ -83235,7 +83321,7 @@ const make$20 = Effect.gen(function* () {
|
|
|
83235
83321
|
renameBranch: (input) => ensureGit("GitWorkflowService.renameBranch", input.cwd).pipe(Effect.andThen(git.renameBranch(input)))
|
|
83236
83322
|
});
|
|
83237
83323
|
});
|
|
83238
|
-
const layer$
|
|
83324
|
+
const layer$18 = Layer.effect(GitWorkflowService, make$21);
|
|
83239
83325
|
//#endregion
|
|
83240
83326
|
//#region src/vcs/VcsStatusBroadcaster.ts
|
|
83241
83327
|
const DEFAULT_VCS_STATUS_REFRESH_INTERVAL = Duration.seconds(30);
|
|
@@ -83307,7 +83393,7 @@ function fingerprintStatusPart(status) {
|
|
|
83307
83393
|
return JSON.stringify(status);
|
|
83308
83394
|
}
|
|
83309
83395
|
const normalizeCwd = (cwd) => Effect.service(FileSystem.FileSystem).pipe(Effect.flatMap((fs) => fs.realPath(cwd)), Effect.orElseSucceed(() => cwd));
|
|
83310
|
-
const make$
|
|
83396
|
+
const make$20 = Effect.gen(function* () {
|
|
83311
83397
|
const workflow = yield* GitWorkflowService;
|
|
83312
83398
|
const fs = yield* FileSystem.FileSystem;
|
|
83313
83399
|
const changesPubSub = yield* Effect.acquireRelease(PubSub.unbounded(), (pubsub) => PubSub.shutdown(pubsub));
|
|
@@ -83531,7 +83617,7 @@ const make$19 = Effect.gen(function* () {
|
|
|
83531
83617
|
streamStatus
|
|
83532
83618
|
});
|
|
83533
83619
|
});
|
|
83534
|
-
const layer$
|
|
83620
|
+
const layer$17 = Layer.effect(VcsStatusBroadcaster, make$20);
|
|
83535
83621
|
//#endregion
|
|
83536
83622
|
//#region src/vcs/VcsProvisioningService.ts
|
|
83537
83623
|
var VcsProvisioningService = class extends Context.Service()("@zl-tools/server/vcs/VcsProvisioningService") {};
|
|
@@ -83544,7 +83630,7 @@ function resolveRequestedKind(kind) {
|
|
|
83544
83630
|
}));
|
|
83545
83631
|
return Effect.succeed(kind);
|
|
83546
83632
|
}
|
|
83547
|
-
const make$
|
|
83633
|
+
const make$19 = Effect.gen(function* () {
|
|
83548
83634
|
const registry = yield* VcsDriverRegistry;
|
|
83549
83635
|
const initRepository = Effect.fn("VcsProvisioningService.initRepository")(function* (input) {
|
|
83550
83636
|
const kind = yield* resolveRequestedKind(input.kind);
|
|
@@ -83552,11 +83638,11 @@ const make$18 = Effect.gen(function* () {
|
|
|
83552
83638
|
});
|
|
83553
83639
|
return VcsProvisioningService.of({ initRepository });
|
|
83554
83640
|
});
|
|
83555
|
-
const layer$
|
|
83641
|
+
const layer$16 = Layer.effect(VcsProvisioningService, make$19);
|
|
83556
83642
|
//#endregion
|
|
83557
83643
|
//#region src/review/ReviewService.ts
|
|
83558
83644
|
var ReviewService = class extends Context.Service()("@zl-tools/server/review/ReviewService") {};
|
|
83559
|
-
const make$
|
|
83645
|
+
const make$18 = Effect.gen(function* () {
|
|
83560
83646
|
const config = yield* ServerConfig;
|
|
83561
83647
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
83562
83648
|
const path = yield* Path.Path;
|
|
@@ -83612,7 +83698,7 @@ const make$17 = Effect.gen(function* () {
|
|
|
83612
83698
|
});
|
|
83613
83699
|
return ReviewService.of({ getDiffPreview });
|
|
83614
83700
|
});
|
|
83615
|
-
const layer$
|
|
83701
|
+
const layer$15 = Layer.effect(ReviewService, make$18);
|
|
83616
83702
|
//#endregion
|
|
83617
83703
|
//#region src/diagnostics/ProcessResourceMonitor.ts
|
|
83618
83704
|
const SAMPLE_INTERVAL_MS = 5e3;
|
|
@@ -83763,7 +83849,7 @@ function aggregateProcessResourceHistory(input) {
|
|
|
83763
83849
|
}) : Option.none()
|
|
83764
83850
|
};
|
|
83765
83851
|
}
|
|
83766
|
-
const make$
|
|
83852
|
+
const make$17 = Effect.gen(function* () {
|
|
83767
83853
|
const spawner = yield* ChildProcessSpawner$1.ChildProcessSpawner;
|
|
83768
83854
|
const state = yield* Ref.make({
|
|
83769
83855
|
samples: [],
|
|
@@ -83812,7 +83898,7 @@ const make$16 = Effect.gen(function* () {
|
|
|
83812
83898
|
});
|
|
83813
83899
|
return ProcessResourceMonitor.of({ readHistory });
|
|
83814
83900
|
});
|
|
83815
|
-
const layer$
|
|
83901
|
+
const layer$14 = Layer.effect(ProcessResourceMonitor, make$17);
|
|
83816
83902
|
//#endregion
|
|
83817
83903
|
//#region src/diagnostics/TraceDiagnostics.ts
|
|
83818
83904
|
var TraceFileReadError = class extends Schema$1.TaggedErrorClass()("TraceFileReadError", {
|
|
@@ -84083,7 +84169,7 @@ function readTraceFile(fileSystem, path) {
|
|
|
84083
84169
|
cause
|
|
84084
84170
|
})) }));
|
|
84085
84171
|
}
|
|
84086
|
-
const make$
|
|
84172
|
+
const make$16 = Effect.gen(function* () {
|
|
84087
84173
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
84088
84174
|
const read = Effect.fn("TraceDiagnostics.read")(function* (options) {
|
|
84089
84175
|
const readAt = options.readAt ?? (yield* DateTime.now);
|
|
@@ -84127,7 +84213,7 @@ const make$15 = Effect.gen(function* () {
|
|
|
84127
84213
|
});
|
|
84128
84214
|
return TraceDiagnostics.of({ read });
|
|
84129
84215
|
});
|
|
84130
|
-
const layer$
|
|
84216
|
+
const layer$13 = Layer.effect(TraceDiagnostics, make$16);
|
|
84131
84217
|
function readTraceDiagnostics(options) {
|
|
84132
84218
|
return Effect.gen(function* () {
|
|
84133
84219
|
return yield* (yield* TraceDiagnostics).read(options);
|
|
@@ -84519,7 +84605,7 @@ const turnSelect = `
|
|
|
84519
84605
|
reported_cost_provenance AS "reportedCostProvenance", completeness,
|
|
84520
84606
|
completeness_reasons_json AS "completenessReasonsJson"
|
|
84521
84607
|
FROM usage_analytics_turns`;
|
|
84522
|
-
const make$
|
|
84608
|
+
const make$15 = Effect.gen(function* () {
|
|
84523
84609
|
const sql = yield* SqlClient.SqlClient;
|
|
84524
84610
|
const environmentId = yield* (yield* ServerEnvironment).getEnvironmentId;
|
|
84525
84611
|
const getThreadContext = (threadId) => sql`
|
|
@@ -85326,7 +85412,7 @@ const make$14 = Effect.gen(function* () {
|
|
|
85326
85412
|
getActivity
|
|
85327
85413
|
});
|
|
85328
85414
|
});
|
|
85329
|
-
const layer$
|
|
85415
|
+
const layer$12 = Layer.effect(UsageAnalytics, make$15);
|
|
85330
85416
|
//#endregion
|
|
85331
85417
|
//#region src/userState/UserStateService.ts
|
|
85332
85418
|
const isUserStateError = Schema$1.is(UserStateError);
|
|
@@ -85336,7 +85422,7 @@ const persistenceError = (message) => new UserStateError({
|
|
|
85336
85422
|
message
|
|
85337
85423
|
});
|
|
85338
85424
|
var UserStateService = class extends Context.Service()("@zl-tools/server/userState/UserStateService") {};
|
|
85339
|
-
const make$
|
|
85425
|
+
const make$14 = Effect.gen(function* () {
|
|
85340
85426
|
const sql = yield* SqlClient.SqlClient;
|
|
85341
85427
|
const changes = yield* PubSub.unbounded();
|
|
85342
85428
|
const writeSemaphore = yield* Semaphore.make(1);
|
|
@@ -85473,15 +85559,15 @@ const make$13 = Effect.gen(function* () {
|
|
|
85473
85559
|
streamChanges: Stream.fromPubSub(changes)
|
|
85474
85560
|
});
|
|
85475
85561
|
});
|
|
85476
|
-
const layer$
|
|
85562
|
+
const layer$11 = Layer.effect(UserStateService, make$14);
|
|
85477
85563
|
//#endregion
|
|
85478
85564
|
//#region src/assist/PromptEnhancement.ts
|
|
85479
|
-
const RECENT_MESSAGE_LIMIT = 12;
|
|
85565
|
+
const RECENT_MESSAGE_LIMIT$1 = 12;
|
|
85480
85566
|
const GENERATION_TIMEOUT = Duration.seconds(45);
|
|
85481
85567
|
const decodeEnhancedPrompt = Schema$1.decodeUnknownEffect(PromptEnhancementPrompt);
|
|
85482
85568
|
const isPromptEnhancementError = Schema$1.is(PromptEnhancementError);
|
|
85483
85569
|
var PromptEnhancement = class extends Context.Service()("@zl-tools/server/assist/PromptEnhancement") {};
|
|
85484
|
-
const make$
|
|
85570
|
+
const make$13 = Effect.gen(function* () {
|
|
85485
85571
|
const projections = yield* ProjectionSnapshotQuery;
|
|
85486
85572
|
const serverSettings = yield* ServerSettingsService;
|
|
85487
85573
|
const textGeneration = yield* TextGeneration;
|
|
@@ -85522,7 +85608,7 @@ const make$12 = Effect.gen(function* () {
|
|
|
85522
85608
|
requestId: input.requestId,
|
|
85523
85609
|
reason: "Prompt improvement conversation context is unavailable"
|
|
85524
85610
|
});
|
|
85525
|
-
recentMessages = yield* readMessages(input.projectId, input.threadId, RECENT_MESSAGE_LIMIT);
|
|
85611
|
+
recentMessages = yield* readMessages(input.projectId, input.threadId, RECENT_MESSAGE_LIMIT$1);
|
|
85526
85612
|
}
|
|
85527
85613
|
const settings = yield* serverSettings.getSettings;
|
|
85528
85614
|
if (!settings.promptEnhancement.enabled) return yield* new PromptEnhancementError({
|
|
@@ -85576,7 +85662,116 @@ const make$12 = Effect.gen(function* () {
|
|
|
85576
85662
|
cancel
|
|
85577
85663
|
});
|
|
85578
85664
|
});
|
|
85579
|
-
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);
|
|
85580
85775
|
//#endregion
|
|
85581
85776
|
//#region src/serverVersionAdvisory.ts
|
|
85582
85777
|
const SERVER_VERSION_CHECK_INTERVAL = Duration.hours(6);
|
|
@@ -86327,6 +86522,8 @@ const RPC_REQUIRED_SCOPE = /* @__PURE__ */ new Map([
|
|
|
86327
86522
|
[WS_METHODS.starterSuggestionsGet, AuthOrchestrationOperateScope],
|
|
86328
86523
|
[WS_METHODS.promptEnhancementGenerate, AuthOrchestrationOperateScope],
|
|
86329
86524
|
[WS_METHODS.promptEnhancementCancel, AuthOrchestrationOperateScope],
|
|
86525
|
+
[WS_METHODS.threadTitleRegenerationGetQueue, AuthOrchestrationReadScope],
|
|
86526
|
+
[WS_METHODS.threadTitleRegenerationEnqueue, AuthOrchestrationOperateScope],
|
|
86330
86527
|
[WS_METHODS.serverProbe, AuthOrchestrationReadScope],
|
|
86331
86528
|
[WS_METHODS.serverGetConfig, AuthOrchestrationReadScope],
|
|
86332
86529
|
[WS_METHODS.serverResetProductAnalyticsIdentity, AuthAccessWriteScope],
|
|
@@ -86450,6 +86647,7 @@ const makeWsRpcLayer = (currentSession, previewAutomationBroker) => WsRpcGroup.t
|
|
|
86450
86647
|
const usageAnalytics = yield* UsageAnalytics;
|
|
86451
86648
|
const starterSuggestions = yield* StarterSuggestions;
|
|
86452
86649
|
const promptEnhancement = yield* PromptEnhancement;
|
|
86650
|
+
const threadTitleRegeneration = yield* ThreadTitleRegeneration;
|
|
86453
86651
|
const serverVersionAdvisory = yield* ServerVersionAdvisoryService;
|
|
86454
86652
|
const supervisedUpdate = yield* Effect.serviceOption(SupervisedUpdateClient);
|
|
86455
86653
|
const supervisedUpdateStream = Option.match(supervisedUpdate, {
|
|
@@ -86816,6 +87014,8 @@ const makeWsRpcLayer = (currentSession, previewAutomationBroker) => WsRpcGroup.t
|
|
|
86816
87014
|
[WS_METHODS.starterSuggestionsGet]: (input) => observeRpcEffect$1(WS_METHODS.starterSuggestionsGet, starterSuggestions.get(input), { "rpc.aggregate": "assist" }),
|
|
86817
87015
|
[WS_METHODS.promptEnhancementGenerate]: (input) => observeRpcEffect$1(WS_METHODS.promptEnhancementGenerate, promptEnhancement.generate(input), { "rpc.aggregate": "assist" }),
|
|
86818
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" }),
|
|
86819
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({
|
|
86820
87020
|
message: "Failed to dispatch orchestration command",
|
|
86821
87021
|
cause
|
|
@@ -87347,7 +87547,7 @@ const websocketRpcRouteLayer = Layer.unwrap(Effect.gen(function* () {
|
|
|
87347
87547
|
const serverAuth = yield* EnvironmentAuth;
|
|
87348
87548
|
const sessions = yield* SessionStore;
|
|
87349
87549
|
const session = yield* serverAuth.authenticateWebSocketUpgrade(request).pipe(Effect.catchIf(isServerAuthCredentialError, (error) => failEnvironmentAuthInvalid(serverAuthCredentialReason(error))), Effect.catchIf(isServerAuthInternalError, (error) => failEnvironmentInternal("internal_error", error)));
|
|
87350
|
-
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))))));
|
|
87351
87551
|
return yield* Effect.acquireUseRelease(Effect.gen(function* () {
|
|
87352
87552
|
yield* sessions.markConnected(session.sessionId);
|
|
87353
87553
|
const live = yield* Ref.updateAndGet(liveConnections, (count) => count + 1);
|
|
@@ -88602,6 +88802,7 @@ const dependencies$1 = [
|
|
|
88602
88802
|
McpInvocationContext,
|
|
88603
88803
|
ProjectionSnapshotQuery,
|
|
88604
88804
|
OrchestrationEngineService,
|
|
88805
|
+
ThreadTitleRegeneration,
|
|
88605
88806
|
Crypto.Crypto
|
|
88606
88807
|
];
|
|
88607
88808
|
const ThreadSetTitleTool = Tool.make("thread_set_title", {
|
|
@@ -88625,7 +88826,14 @@ const ThreadRequestResolveTool = Tool.make("thread_request_resolve", {
|
|
|
88625
88826
|
failure: ThreadControlError,
|
|
88626
88827
|
dependencies: dependencies$1
|
|
88627
88828
|
}).annotate(Tool.Title, "Request resolve for this thread").annotate(Tool.Destructive, false).annotate(Tool.Idempotent, true);
|
|
88628
|
-
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);
|
|
88629
88837
|
//#endregion
|
|
88630
88838
|
//#region src/mcp/toolkits/thread/handlers.ts
|
|
88631
88839
|
const failureMessage$1 = (cause) => cause instanceof Error ? cause.message : String(cause);
|
|
@@ -88677,7 +88885,11 @@ const ThreadToolkitHandlersLive = ThreadToolkit.toLayer({
|
|
|
88677
88885
|
status: "pending",
|
|
88678
88886
|
appliesAfterCurrentTurn: thread.latestTurn?.state === "running" || thread.session?.status === "running"
|
|
88679
88887
|
};
|
|
88680
|
-
}).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")))
|
|
88681
88893
|
});
|
|
88682
88894
|
//#endregion
|
|
88683
88895
|
//#region src/mcp/toolkits/workspace/tools.ts
|
|
@@ -92870,7 +93082,7 @@ const ObservabilityLive = Layer.unwrap(Effect.gen(function* () {
|
|
|
92870
93082
|
sink,
|
|
92871
93083
|
...delegate ? { delegate } : {}
|
|
92872
93084
|
});
|
|
92873
|
-
return Layer.mergeAll(Layer.succeed(Tracer.Tracer, tracer), layer$
|
|
93085
|
+
return Layer.mergeAll(Layer.succeed(Tracer.Tracer, tracer), layer$46(sink));
|
|
92874
93086
|
})).pipe(Layer.provideMerge(otlpSerializationLayer));
|
|
92875
93087
|
const metricsLayer = config.otlpMetricsUrl === void 0 ? Layer.empty : OtlpMetrics.layer({
|
|
92876
93088
|
url: config.otlpMetricsUrl,
|
|
@@ -93575,46 +93787,47 @@ const PlatformServicesLive = Layer.unwrap(Effect.gen(function* () {
|
|
|
93575
93787
|
return layer;
|
|
93576
93788
|
}
|
|
93577
93789
|
}));
|
|
93578
|
-
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));
|
|
93579
93791
|
const ProviderSessionDirectoryLayerLive = ProviderSessionDirectoryLive.pipe(Layer.provide(layer$4));
|
|
93580
93792
|
const ProviderLayerLive = ProviderServiceLive.pipe(Layer.provide(ProviderAdapterRegistryLive), Layer.provideMerge(ProviderSessionDirectoryLayerLive));
|
|
93581
93793
|
const PersistenceLayerLive = Layer.empty.pipe(Layer.provideMerge(layerConfig));
|
|
93582
|
-
const UsageAnalyticsLayerLive = layer$
|
|
93583
|
-
const VcsDriverRegistryLayerLive = layer$
|
|
93584
|
-
const SourceControlProviderRegistryLayerLive = layer$
|
|
93585
|
-
const GitManagerLayerLive = layer$
|
|
93586
|
-
const GitLayerLive = Layer.empty.pipe(Layer.provideMerge(GitManagerLayerLive), Layer.provideMerge(layer$
|
|
93587
|
-
const GitWorkflowLayerLive = layer$
|
|
93588
|
-
const SourceControlRepositoryServiceLayerLive = layer$6.pipe(Layer.provideMerge(layer$
|
|
93589
|
-
const ReviewLayerLive = layer$
|
|
93590
|
-
const VcsLayerLive = Layer.empty.pipe(Layer.provideMerge(layer$
|
|
93591
|
-
const CheckpointingLayerLive = Layer.empty.pipe(Layer.provideMerge(layer$
|
|
93592
|
-
const PortScannerLayerLive = layer$
|
|
93593
|
-
const TerminalLayerLive = layer$
|
|
93594
|
-
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;
|
|
93595
93807
|
const PreviewManagerLayerLive = layerServerHosted$1.pipe(Layer.provide(BrowserRuntimeLayerLive));
|
|
93596
|
-
const ServerPreviewAutomationLayerLive = layer$
|
|
93808
|
+
const ServerPreviewAutomationLayerLive = layer$34.pipe(Layer.provide(PreviewManagerLayerLive), Layer.provide(BrowserRuntimeLayerLive));
|
|
93597
93809
|
const PreviewLayerLive = Layer.mergeAll(BrowserRuntimeLayerLive, PreviewManagerLayerLive, ServerPreviewAutomationLayerLive, PortScannerLayerLive);
|
|
93598
|
-
const WorkspaceEntriesLayerLive = layer$
|
|
93599
|
-
const WorkspaceFileSystemLayerLive = layer$
|
|
93600
|
-
const WorkspaceLayerLive = Layer.mergeAll(layer$
|
|
93601
|
-
const ProjectFaviconResolverLayerLive = layer$
|
|
93602
|
-
const AuthLayerLive = layer$
|
|
93603
|
-
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)));
|
|
93604
93816
|
const ProviderRuntimeLayerLive = ProviderSessionReaperLive.pipe(Layer.provideMerge(ProviderLayerLive), Layer.provideMerge(OrchestrationLayerLive));
|
|
93605
|
-
const ProviderUsageLayerLive = layer$
|
|
93606
|
-
const KeybindingsLayerLive = layer$
|
|
93607
|
-
const ServerSettingsLayerLive = layer$
|
|
93608
|
-
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$
|
|
93609
|
-
const StarterSuggestionsLayerLive = layer$
|
|
93610
|
-
const StarterSuggestionPrecomputationLayerLive = layer$
|
|
93611
|
-
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));
|
|
93612
93825
|
const ServerVersionAdvisoryLayerLive = layer$8.pipe(Layer.provide(RuntimeCoreDependenciesLive), Layer.provide(FetchHttpClient.layer));
|
|
93613
|
-
const ServerRestartDrainLayerLive = layer$
|
|
93614
|
-
const RuntimeDependenciesLive = RuntimeCoreDependenciesLive.pipe(Layer.provideMerge(StarterSuggestionPrecomputationLayerLive), Layer.provideMerge(PromptEnhancementLayerLive), Layer.provideMerge(ServerRestartDrainLayerLive), Layer.provideMerge(ServerVersionAdvisoryLayerLive), Layer.provideMerge(layer$
|
|
93615
|
-
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));
|
|
93616
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));
|
|
93617
|
-
routesLayer.pipe(Layer.provide(layer$
|
|
93830
|
+
routesLayer.pipe(Layer.provide(layer$33));
|
|
93618
93831
|
const serverHostedRoutesLayer = routesLayer.pipe(Layer.provide(layerServerHosted));
|
|
93619
93832
|
const makeServerLayer = Layer.unwrap(Effect.gen(function* () {
|
|
93620
93833
|
const config = yield* ServerConfig;
|
|
@@ -93666,7 +93879,7 @@ const makeServerLayer = Layer.unwrap(Effect.gen(function* () {
|
|
|
93666
93879
|
if (typeof address === "string" || !("port" in address)) return;
|
|
93667
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 }))));
|
|
93668
93881
|
}));
|
|
93669
|
-
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));
|
|
93670
93883
|
}));
|
|
93671
93884
|
const runServer = Layer.launch(makeServerLayer);
|
|
93672
93885
|
//#endregion
|
|
@@ -94029,7 +94242,7 @@ const runUpdateSupervisor = Effect.acquireRelease(Effect.tryPromise({
|
|
|
94029
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));
|
|
94030
94243
|
//#endregion
|
|
94031
94244
|
//#region src/bin.ts
|
|
94032
|
-
const CliRuntimeLayer = Layer.mergeAll(NodeServices.layer, layer$
|
|
94245
|
+
const CliRuntimeLayer = Layer.mergeAll(NodeServices.layer, layer$78);
|
|
94033
94246
|
const cloudPublicConfigMissingMessage = "ZL Cloud commands are unavailable: this build is missing ZL Cloud public configuration.";
|
|
94034
94247
|
var CloudPublicConfigMissingError = class extends CliError$1.UserError {
|
|
94035
94248
|
get message() {
|