arcane-os 0.73.0 → 0.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.75.0
4
+
5
+ - Advertise whole-image `img2img` alongside `txt2img` for the built-in
6
+ `sdxl-base-1.0` selection. Use the existing public `images.edit()` operation
7
+ with the original PNG, complete prompt and explicit strength.
8
+ - Reuse the complete SDXL Base checkpoint, embedded VAE and existing retained
9
+ native context. Preserve 1024-by-1024 defaults, caller-selected canvas,
10
+ progress, cancellation and complete separate PNG results. No additional
11
+ model resource, runtime, adapter or dependency is introduced.
12
+ - Document the pinned engine's encoding/sampling path and whole-image editing
13
+ semantics. Masked/reference editing and pixel or output-quality guarantees
14
+ remain outside this selection; source review is not native execution proof.
15
+
16
+ ## 0.74.0
17
+
18
+ - Add optional `longPaths` to `createRepositoryWorkspace()` for newly cloned
19
+ Windows repositories. Explicit true or false selects clone-local
20
+ `core.longpaths` before the first checkout and persists it in the new target.
21
+ - Preserve inherited and template configuration when the option is omitted,
22
+ existing repositories, non-Windows commands, and the ordinary single-clone
23
+ identity, progress, cancellation and hook lifecycle. No global setting,
24
+ repository migration, filename transformation or dependency change is added.
25
+
3
26
  ## 0.73.0
4
27
 
5
28
  - Add public `resolvePwaRetirementResponse({workspaceRoot, appId})` for existing
package/README.md CHANGED
@@ -20,7 +20,7 @@ selected SDK projection or an explicit live SDK source mount. Both profiles
20
20
  share the theme, packaging, event, cancellation,
21
21
  and browser run contracts while retaining their selected application layout.
22
22
 
23
- This checkout defines the `0.73.0` SDK contract. Development applications declare
23
+ This checkout defines the `0.75.0` SDK contract. Development applications declare
24
24
  `arcane-os` as `latest` and retain their lockfile. Exact SDK pins begin when Roshi
25
25
  designates a production build. Follow [Consumer updates](docs/consumer-updates.md)
26
26
  to refresh and compare the installed SDK and lockfile with the published channel;
@@ -44,6 +44,7 @@ alone does not make bare module names resolve in a browser.
44
44
  | Install an app and cache selected resources offline | [Progressive web applications](pwa.md) |
45
45
  | Disable source PWA generation or explicitly retire confirmed generated output | [Source PWA retirement](pwa.md#disable-source-pwa-generation-and-retire-generated-output) |
46
46
  | Retire the prior worker after explicitly disabling standalone source PWA | [Disabled-worker browser lifecycle](pwa.md#disabled-worker-retirement-on-the-source-server) |
47
+ | Retire a disabled worker through an existing custom source host | [Public PWA retirement response](pwa.md#retirement-through-an-existing-custom-host) |
47
48
  | Generate named browser imports or inspect the selected physical runtime | [`arcane import-map`](cli.md#arcane-import-map) and [browser runtime delivery](protocols.md#browser-runtime-delivery) |
48
49
  | Connect an application through the shared WebSocket transport | [Shared WebSocket clients](websocket-client.md) |
49
50
  | Choose browser, native, cloud, or cross-host behavior | [Availability and normalization](availability-and-normalization.md) |
@@ -71,7 +72,7 @@ alone does not make bare module names resolve in a browser.
71
72
  | Run application-selected llama.cpp, Ollama or ONNX through Core | [Local AI through Core](local-ai.md) |
72
73
  | Generate complete local PNG images with a retained native model | [Local image generation](local-image-generation.md) |
73
74
  | Select FLUX.2 Klein 4B and its three complementary model resources | [FLUX.2 Klein 4B through Core](local-image-flux.md) |
74
- | Select the complete SDXL Base 1.0 checkpoint for text-to-image generation | [SDXL Base 1.0 through Core](local-image-sdxl.md) |
75
+ | Select the complete SDXL Base 1.0 checkpoint for generation and whole-image editing | [SDXL Base 1.0 through Core](local-image-sdxl.md) |
75
76
  | Compose independently loaded transcription and synthesis engines | [Native speech service](native-speech.md) |
76
77
  | Keep a native Whisper model loaded across complete recordings | [Native Whisper transcription](local-whisper.md) |
77
78
  | Select the optional Intel NPU encoder with independent CUDA or CPU decoding | [Intel NPU Whisper](../guides/native-whisper-openvino.md) |
@@ -81,7 +82,7 @@ alone does not make bare module names resolve in a browser.
81
82
  | Retain a Nemotron model and diarize caller-fed audio streams | [Native speaker diarization](diarization.md) |
82
83
  | Persist application-selected preferences through Core | [Core preferences service](core-preferences.md) |
83
84
  | Read complete selected Git text without changing a checkout | [Git text snapshots](git-text-snapshot.md) |
84
- | Own a native working checkout under per-user ArcaneData/Repos | [Native repository workspaces](core-repositories.md) |
85
+ | Own a native working checkout under per-user ArcaneData/Repos, with optional Windows long paths for new clones | [Native repository workspaces](core-repositories.md) and [Windows clone configuration](core-repositories.md#windows-long-paths-for-a-new-checkout) |
85
86
  | Read Git identity defaults or select child-only author and credential hints | [Git identity configuration](core-repositories.md#git-identity-configuration) |
86
87
  | Write, commit and push complete selected repository text | [Selected-text repository writing](core-repositories.md#write-commit-and-push-selected-text) |
87
88
  | Observe existing checkout configuration and capture an explicit remote/ref | [Repository configuration and selected targets](core-repositories.md#existing-checkout-configuration-and-selected-targets) |
@@ -47,7 +47,7 @@ const status = await repository.status({signal});
47
47
  await repository.close();
48
48
  ```
49
49
 
50
- `createRepositoryWorkspace({name,directory,dataRoot,remote,branch,gitIdentity,onEvent,run}={})`
50
+ `createRepositoryWorkspace({name,directory,dataRoot,remote,branch,longPaths,gitIdentity,onEvent,run}={})`
51
51
  returns `{directory,open,status,configuration,pull,push,write,close,drain,dispose}`. The `directory`
52
52
  property is the absolute selected working path.
53
53
 
@@ -63,6 +63,11 @@ property is the absolute selected working path.
63
63
  `branch`, when supplied, is passed unchanged to Git's `clone --branch` option;
64
64
  otherwise Git selects the remote's default branch. Existing checkouts keep
65
65
  their own branch, remote, tracked files, untracked files and local changes.
66
+ - Optional `longPaths` is a boolean for newly cloned Windows checkouts. Explicit
67
+ `true` or `false` supplies `clone --config core.longpaths=<value>`, so Git
68
+ writes that choice to the new repository before its first checkout. Omission
69
+ leaves Git's configuration unchanged. The option does not rewrite an existing
70
+ checkout, change a global setting, or alter non-Windows clone commands.
66
71
  - `onEvent` and optional `run` use the existing SDK process owner. The default
67
72
  adapter is `runProcess`; Git must be available on PATH. Credentials and
68
73
  authentication remain with Git and the native host. The SDK adds no download,
@@ -90,6 +95,38 @@ A failed or cancelled clone reports the actual failure; any remaining directory
90
95
  is retained for application-owned inspection. There is no automatic deletion or
91
96
  destructive retry. Filesystem failures and complete Git diagnostics propagate.
92
97
 
98
+ ### Windows long paths for a new checkout
99
+
100
+ Select the option in the application's native repository connection:
101
+
102
+ ```javascript
103
+ const repository = createRepositoryWorkspace({
104
+ name: 'moon-cheese-dispatches',
105
+ remote: applicationConnection.remote,
106
+ longPaths: true
107
+ });
108
+ await repository.open({signal});
109
+ ```
110
+
111
+ This remains one ordinary Git clone, including its branch/tag selection,
112
+ progress, hooks, cancellation and empty-remote behavior. It does not clone
113
+ without checkout and run a second initialization sequence. The boolean is
114
+ captured when the owner is constructed; later edits to the options object
115
+ cannot change an accepted connection.
116
+
117
+ An explicit value intentionally selects the new repository's local
118
+ `core.longpaths` setting. Git's ordinary configuration precedence still applies,
119
+ including higher-priority command-scope settings supplied by the native host.
120
+ Omit the option to retain inherited or template configuration without an SDK
121
+ override. Existing repositories retain their settings even if this option is
122
+ supplied; there is no configuration migration or repair pass.
123
+
124
+ [Git documents clone-local configuration before the initial checkout](https://git-scm.com/docs/git-clone#OPTIONS).
125
+ [Git for Windows describes long-path support](https://gitforwindows.org/git-cannot-create-a-file-or-directory-with-a-long-path.html)
126
+ for its native commands; unrelated editors, scripts and host tools may have
127
+ their own path limitations. This option changes no filenames or payloads and
128
+ does not change the SDK's persistent directory selection.
129
+
93
130
  ## Existing checkout configuration and selected targets
94
131
 
95
132
  `configuration({signal}={})` observes an existing checkout without invoking
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "sdkVersion": "0.72.0",
3
+ "sdkVersion": "0.74.0",
4
4
  "environment": {
5
5
  "runtime": "Node.js for Node entrypoints; browser for browser-only entrypoints",
6
6
  "minimumVersion": "22.23.2 for Node entrypoints",
@@ -199,14 +199,14 @@
199
199
  "name": "createRepositoryWorkspace",
200
200
  "displayName": "createRepositoryWorkspace()",
201
201
  "kind": "function",
202
- "signature": "createRepositoryWorkspace({name,directory,dataRoot,remote,branch,gitIdentity,onEvent,run=runProcess}={})",
202
+ "signature": "createRepositoryWorkspace({name,directory,dataRoot,remote,branch,longPaths,gitIdentity,onEvent,run=runProcess}={})",
203
203
  "entrypoints": ["arcane-os/core/repositories"],
204
204
  "primaryImport": "arcane-os/core/repositories",
205
205
  "group": "Native repository workspaces",
206
206
  "summary": "Owns one selected native working checkout with ArcaneData/Repos defaults and existing Git/process lifecycle.",
207
207
  "availability": "Node with Git on Windows, Linux and macOS; Android requires host process adaptation",
208
208
  "protocol": "Git working repository and SDK process adapter",
209
- "normalization": "Returns directory, open, status, configuration, pull, push, write and identical close/drain/dispose hooks. Only missing or empty destinations clone; existing roots are preserved. configuration observes the existing root, symbolic HEAD, origin URL/pushURL arrays and branch remote/merge/upstream URL arrays without clone/init/fetch, preserving unset, empty and repeated values. Explicit paths remain selected. Same-directory operations serialize within the process; cancellation and shutdown join accepted process work. pull/push/write accept a captured target {remote,ref} for current-branch fast-forward pull or non-force current-HEAD selected-ref push; omission retains ordinary configured behavior. write snapshots exact text and paths, stages/commits only literal owned paths and preserves unrelated staged files and Git filters. Complete outputs and causal failures retain confirmed local/committed/pushed and uncertain outcomes plus the supplied target. Optional gitIdentity captures name/email/username for child Git operations only; omitted fields remain inherited and no config file is written."
209
+ "normalization": "Returns directory, open, status, configuration, pull, push, write and identical close/drain/dispose hooks. Only missing or empty destinations clone; existing roots are preserved. Optional longPaths captures a boolean: explicit Windows true/false supplies clone-local core.longpaths before the first checkout, persisting only in the new repository under ordinary Git configuration precedence. Omission preserves configuration; existing repositories and non-Windows clone commands remain unchanged. No global setting or migration. configuration observes the existing root, symbolic HEAD, origin URL/pushURL arrays and branch remote/merge/upstream URL arrays without clone/init/fetch, preserving unset, empty and repeated values. Explicit paths remain selected. Same-directory operations serialize within the process; cancellation and shutdown join accepted process work. pull/push/write accept a captured target {remote,ref} for current-branch fast-forward pull or non-force current-HEAD selected-ref push; omission retains ordinary configured behavior. write snapshots exact text and paths, stages/commits only literal owned paths and preserves unrelated staged files and Git filters. Complete outputs and causal failures retain confirmed local/committed/pushed and uncertain outcomes plus the supplied target. Optional gitIdentity captures name/email/username for child Git operations only; omitted fields remain inherited and identity selection writes no config file."
210
210
  },
211
211
  {
212
212
  "id": "core-repositories:readGitIdentity",
@@ -1,8 +1,9 @@
1
1
  # Local image editing through Core
2
2
 
3
3
  `createCoreImageRuntime()` exposes whole-image img2img through `edit()`, using
4
- the same retained native context as generation. The selected SD1.4 model
5
- advertises `txt2img` and `img2img`. Applications supply the original PNG, the
4
+ the same retained native context as generation. The built-in SD1.4 and
5
+ [SDXL Base 1.0](local-image-sdxl.md#edit-a-whole-image) models advertise
6
+ `txt2img` and `img2img`. Applications supply the original PNG, the
6
7
  complete prompt and explicit strength, retain the original, and decide whether
7
8
  to save the separate generated result.
8
9
 
@@ -149,6 +150,8 @@ own model-specific contracts and are outside this PNG img2img operation.
149
150
  Ordinary img2img does not require LoRA training. The selected engine documents
150
151
  this directly with its base SD1.4 model in the
151
152
  [tagged img2img example](https://github.com/leejet/stable-diffusion.cpp/blob/master-929-3f8527a/docs/sd.md#img2img-example).
153
+ The complete SDXL Base checkpoint uses its embedded VAE through the same
154
+ image pipeline; see the [SDXL model and operation guide](local-image-sdxl.md).
152
155
 
153
156
  Source dimensions are decoder output, not an implicit request to change the
154
157
  generation dimensions. The engine center-crops and resizes temporary initial
@@ -157,7 +160,7 @@ Caller images remain unchanged;
157
160
  even `mode=none` does not suppress all later model adaptation. See the
158
161
  [native preprocessing contract](https://github.com/leejet/stable-diffusion.cpp/blob/master-929-3f8527a/docs/image_preprocessing.md).
159
162
 
160
- An RGB-only model such as the selected SD1.4 consumes the stored RGB
163
+ An RGB-only model such as the selected SD1.4 or SDXL consumes the stored RGB
161
164
  and does not preserve alpha. The SDK must not silently choose a compositing
162
165
  background or claim that passing RGBA preserves its displayed appearance.
163
166
  Strength zero is also not an exact-copy operation: native img2img still uses
@@ -50,7 +50,8 @@ editing or imply the same input path as SD1.4 img2img.
50
50
  `sdxl-base-1.0` selects the complete SDXL Base checkpoint, including its text
51
51
  encoders and original VAE. Its [family guide](local-image-sdxl.md) covers the
52
52
  single model resource, 1024-by-1024 default canvas and native sampling defaults.
53
- It advertises `txt2img`; selecting it does not enable an editing operation.
53
+ It advertises `txt2img` and whole-image `img2img` through the same public
54
+ `edit()` operation, using the checkpoint's embedded VAE and retained context.
54
55
 
55
56
  The first published distribution path selects CPU on Windows and Linux.
56
57
  On macOS, `auto` selects the same upstream universal runtime's built-in Metal
@@ -1,8 +1,8 @@
1
1
  # SDXL Base 1.0 through Core
2
2
 
3
3
  The `sdxl-base-1.0` model definition selects Stability AI's complete SDXL Base
4
- 1.0 checkpoint for text-to-image generation through the shared
5
- [local image runtime](local-image-generation.md). Applications supply their
4
+ 1.0 checkpoint for text-to-image generation and whole-image img2img through the
5
+ shared [local image runtime](local-image-generation.md). Applications supply their
6
6
  own complete prompts and own the resulting images and saved associations.
7
7
  The model uses the shared retained native context, progress, cancellation
8
8
  and complete PNG result contract.
@@ -40,8 +40,8 @@ selection alone does not establish actual execution on any device.
40
40
  The single `model` resource is the official
41
41
  [`sd_xl_base_1.0.safetensors` checkpoint](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/462165984030d82259a11f4367a4eed129e94a7b/sd_xl_base_1.0.safetensors)
42
42
  at revision `462165984030d82259a11f4367a4eed129e94a7b`. It includes the text
43
- encoders, denoiser and original VAE. Standalone base generation uses this one
44
- resource; a refiner, separate VAE, LoRA or Python converter is unnecessary for
43
+ encoders, denoiser and original VAE. Generation and whole-image editing use this
44
+ one resource; a refiner, separate VAE, LoRA or Python converter is unnecessary for
45
45
  this selection. The upstream model carries the
46
46
  [CreativeML Open RAIL++-M license](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/462165984030d82259a11f4367a4eed129e94a7b/LICENSE.md).
47
47
 
@@ -107,6 +107,39 @@ Repeated generation reuses the loaded context; unload it when the application
107
107
  no longer needs it. Follow the shared lifecycle contract for request
108
108
  cancellation, state subscriptions, unloading and accessor closure.
109
109
 
110
+ ## Edit a whole image
111
+
112
+ After loading the same model, pass an original PNG and an explicit strength to
113
+ the existing public accessor. `originalPNG` is the application's PNG Blob or
114
+ File; the application retains it and decides whether to save the new result.
115
+
116
+ ```javascript
117
+ const edited = await images.edit({
118
+ model: 'sdxl-base-1.0',
119
+ image: originalPNG,
120
+ prompt: 'The octopus librarian now wears a purple knitted diving helmet.',
121
+ strength: 0.6,
122
+ signal
123
+ });
124
+ // Display edited.images using the same complete PNG Blob result contract.
125
+ ```
126
+
127
+ This is whole-image img2img, using the checkpoint's embedded VAE encoder,
128
+ denoiser and decoder. It needs no additional model resource, adapter or engine.
129
+ The operation reuses the same loaded context and progress/cancellation owners
130
+ as generation. The SDK forwards the complete prompt and original PNG; it does
131
+ not add style instructions or save either the request or result.
132
+
133
+ The model still defaults to a 1024-by-1024 canvas. Supply
134
+ `parameters: {width, height}` when choosing another output canvas; input
135
+ dimensions do not silently replace that selection. The native engine adapts
136
+ the initial raster to the selected canvas and denoises the whole image.
137
+ Framing, texture, identity and individual pixels are model results, not
138
+ preservation guarantees. Strength zero is not an exact-copy operation, and
139
+ the RGB model does not preserve alpha. See the shared
140
+ [editing contract](local-image-editing.md) for supported PNG encodings,
141
+ native preprocessing, full-result handling and cancellation.
142
+
110
143
  ## Defaults and operation scope
111
144
 
112
145
  Only canvas dimensions are model-specific defaults here. Sampling parameters
@@ -127,9 +160,9 @@ applies its own text conditioning and prompt-weighting syntax; see the shared
127
160
  guide for native string-boundary limitations. The SDK adds no avatar wording,
128
161
  style instructions or application-specific content.
129
162
 
130
- This definition advertises `txt2img`. Whole-image editing, masked editing and
131
- reference-image editing are separate operations with their own model and
132
- runtime requirements. This base selection does not advertise those operations.
163
+ This definition advertises `txt2img` and `img2img`. Masked and reference-image
164
+ editing are separate operations with their own model and runtime requirements;
165
+ this base selection does not advertise them.
133
166
 
134
167
  The model resource and standalone use follow the
135
168
  [official model card](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/462165984030d82259a11f4367a4eed129e94a7b/README.md).
@@ -137,3 +170,7 @@ Native defaults and embedded-VAE behavior follow the selected engine's
137
170
  [request implementation](https://github.com/leejet/stable-diffusion.cpp/blob/master-929-3f8527a/src/pipeline/request.cpp),
138
171
  [parameter initialization](https://github.com/leejet/stable-diffusion.cpp/blob/master-929-3f8527a/src/stable-diffusion.cpp)
139
172
  and [model construction](https://github.com/leejet/stable-diffusion.cpp/blob/master-929-3f8527a/src/pipeline/model_builders.cpp).
173
+ The pinned [image pipeline](https://github.com/leejet/stable-diffusion.cpp/blob/3f8527a/src/pipeline/image.cpp)
174
+ encodes the initial image, samples its latent and decodes the result. That
175
+ implementation establishes the operation path; source inspection alone does
176
+ not establish execution, output quality or device performance.
@@ -319,6 +319,7 @@ The remaining data-only subpaths are eight JSON Schemas and package metadata.
319
319
  | `repositoryPush()` | function | `arcane-os` | Workspace, doctor, repository, and server | Node; network-assisted Git |
320
320
  | `repositoryStatus()` | function | `arcane-os` | Workspace, doctor, repository, and server | Node |
321
321
  | `resolveNativeBuildOutputRoot()` | function | `arcane-os` | Targets, native plans, and providers | Node; selected browser/native target or provider as documented |
322
+ | `resolvePwaRetirementResponse()` | function | `arcane-os` | Workspace, doctor, repository, and server | Node; browser service-worker lifecycle remains browser-owned |
322
323
  | `resolveWorkspace()` | function | `arcane-os` | Workspace, doctor, repository, and server | Node |
323
324
  | `ROOT_CONFIG_NAME` | constant | `arcane-os/packager` | Packaging and release bundles | Node |
324
325
  | `discoverApps()` | function | `arcane-os` | Workspace, doctor, repository, and server | Node |
@@ -8095,7 +8096,7 @@ explicit existing path. The application owns the remote, branch and Core API.
8095
8096
  ### Signature and result
8096
8097
 
8097
8098
  ```text
8098
- createRepositoryWorkspace({name,directory,dataRoot,remote,branch,gitIdentity,onEvent,run=runProcess}={})
8099
+ createRepositoryWorkspace({name,directory,dataRoot,remote,branch,longPaths,gitIdentity,onEvent,run=runProcess}={})
8099
8100
  ```
8100
8101
 
8101
8102
  Returns `{directory,open,status,configuration,pull,push,write,close,drain,dispose}`. Construction does
@@ -8106,6 +8107,14 @@ work and preserves the checkout. No CLI cwd, launch state, preference, snapshot
8106
8107
  cache or existing user-data location changes. See the [complete inputs, results,
8107
8108
  errors and lifecycle](core-repositories.md#one-connected-working-checkout).
8108
8109
 
8110
+ Optional `longPaths` captures a boolean for new Windows clones. Explicit true
8111
+ or false supplies clone-local `core.longpaths` before the first checkout and
8112
+ persists it only in the new repository. Omission preserves inherited/template
8113
+ configuration. Existing repositories and non-Windows clone commands remain
8114
+ unchanged; no global setting or data migration is performed. Git's ordinary
8115
+ configuration precedence, hooks and single-clone lifecycle remain in effect.
8116
+ See [Windows long paths](core-repositories.md#windows-long-paths-for-a-new-checkout).
8117
+
8109
8118
  Optional `gitIdentity:{name?,email?,username?}` captures explicit non-secret
8110
8119
  settings for child Git operations without writing global/local configuration.
8111
8120
  Selected author fields override inherited child author/committer fields;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arcane-os",
3
- "version": "0.73.0",
3
+ "version": "0.75.0",
4
4
  "description": "Arcane OS JavaScript SDK, project-local CLI, browser runtime, and repository-portable application packager.",
5
5
  "type": "module",
6
6
  "main": "./src/index.mjs",
@@ -45,7 +45,7 @@ export function resolveArcaneDataPaths({dataRoot} = {}) {
45
45
 
46
46
  /** One connected checkout, composed into an application's own Core service. */
47
47
  export function createRepositoryWorkspace(
48
- {name, directory, dataRoot, remote, branch, gitIdentity, onEvent, run = runProcess} = {}
48
+ {name, directory, dataRoot, remote, branch, longPaths, gitIdentity, onEvent, run = runProcess} = {}
49
49
  ) {
50
50
  let selected = directory;
51
51
  if (selected === undefined) {
@@ -58,6 +58,9 @@ export function createRepositoryWorkspace(
58
58
  requireString(selected, 'directory');
59
59
  if (remote !== undefined) requireString(remote, 'remote');
60
60
  if (branch !== undefined) requireString(branch, 'branch');
61
+ if (longPaths !== undefined && !is.boolean(longPaths)) {
62
+ throw new TypeError('longPaths must be a boolean when supplied.');
63
+ }
61
64
  if (!is.function(run)) throw new TypeError('run must implement the SDK process adapter.');
62
65
  const execute = createGitIdentityRunner(run, gitIdentity);
63
66
  const repositoryDirectory = path.resolve(selected);
@@ -100,6 +103,11 @@ export function createRepositoryWorkspace(
100
103
  await mkdir(path.dirname(repositoryDirectory), {recursive: true});
101
104
  throwIfAborted(signal);
102
105
  const arguments_ = ['clone', '--progress'];
106
+ // Clone-local configuration persists before the first checkout. Omission
107
+ // leaves inherited settings alone; existing repositories never reach here.
108
+ if (process.platform === 'win32' && longPaths !== undefined) {
109
+ arguments_.push('--config', `core.longpaths=${longPaths}`);
110
+ }
103
111
  if (branch !== undefined) arguments_.push('--branch', branch);
104
112
  arguments_.push('--', remote, repositoryDirectory);
105
113
  const result = await prepareRun(
@@ -14,5 +14,5 @@ export const SDXL_BASE_1_0_MODEL = {
14
14
  width: 1024,
15
15
  height: 1024
16
16
  },
17
- operations: ['txt2img']
17
+ operations: ['txt2img', 'img2img']
18
18
  };