@skaile/workspaces 4.23.3 → 4.25.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.
Files changed (89) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{asset-feeds-FINEX7SP.js → asset-feeds-72RJOE4E.js} +4 -4
  3. package/dist/{asset-feeds-FINEX7SP.js.map → asset-feeds-72RJOE4E.js.map} +1 -1
  4. package/dist/asset-manager/index.js +1 -1
  5. package/dist/{chunk-C2TJPNP2.js → chunk-253427M3.js} +3 -3
  6. package/dist/{chunk-C2TJPNP2.js.map → chunk-253427M3.js.map} +1 -1
  7. package/dist/{chunk-5CT42FXA.js → chunk-2JGUFDKZ.js} +3 -3
  8. package/dist/{chunk-5CT42FXA.js.map → chunk-2JGUFDKZ.js.map} +1 -1
  9. package/dist/{chunk-D5MX76BA.js → chunk-2N6NQUVB.js} +12 -8
  10. package/dist/chunk-2N6NQUVB.js.map +1 -0
  11. package/dist/{chunk-MC2MF4U5.js → chunk-2OLNNQKT.js} +2 -2
  12. package/dist/chunk-2OLNNQKT.js.map +1 -0
  13. package/dist/{chunk-KES5T25I.js → chunk-EZOFQW3G.js} +773 -240
  14. package/dist/chunk-EZOFQW3G.js.map +1 -0
  15. package/dist/{chunk-SDUVIZPA.js → chunk-H4XNX2FG.js} +2 -2
  16. package/dist/{chunk-SDUVIZPA.js.map → chunk-H4XNX2FG.js.map} +1 -1
  17. package/dist/{chunk-PPMHNT6A.js → chunk-IHFQTKUP.js} +2 -2
  18. package/dist/{chunk-PPMHNT6A.js.map → chunk-IHFQTKUP.js.map} +1 -1
  19. package/dist/{chunk-FYLDR3RQ.js → chunk-OQRSSFTU.js} +3 -3
  20. package/dist/{chunk-FYLDR3RQ.js.map → chunk-OQRSSFTU.js.map} +1 -1
  21. package/dist/{chunk-SY2QGPRX.js → chunk-SB4U7HLP.js} +6 -6
  22. package/dist/{chunk-SY2QGPRX.js.map → chunk-SB4U7HLP.js.map} +1 -1
  23. package/dist/{chunk-EVH2X3QF.js → chunk-SSODNBSC.js} +3 -3
  24. package/dist/{chunk-EVH2X3QF.js.map → chunk-SSODNBSC.js.map} +1 -1
  25. package/dist/{chunk-246NSTR7.js → chunk-XZCRIPWT.js} +3 -3
  26. package/dist/{chunk-246NSTR7.js.map → chunk-XZCRIPWT.js.map} +1 -1
  27. package/dist/{chunk-OCZGKA2Q.js → chunk-YR3CLEQG.js} +6 -6
  28. package/dist/{chunk-OCZGKA2Q.js.map → chunk-YR3CLEQG.js.map} +1 -1
  29. package/dist/cli/index.js +29 -29
  30. package/dist/connectors/config.js +1 -1
  31. package/dist/connectors/index.js +2 -2
  32. package/dist/connectors/src/connector-manager.d.ts +4 -4
  33. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  34. package/dist/connectors/src/connector-prompt.d.ts.map +1 -1
  35. package/dist/connectors/src/connector-types.d.ts +7 -0
  36. package/dist/connectors/src/connector-types.d.ts.map +1 -1
  37. package/dist/{ensure-sources-LJH3SLWG.js → ensure-sources-HEOQJ4CS.js} +4 -4
  38. package/dist/{ensure-sources-LJH3SLWG.js.map → ensure-sources-HEOQJ4CS.js.map} +1 -1
  39. package/dist/factory-assets/connectors/box.js +2 -2
  40. package/dist/factory-assets/connectors/deploy.js +2 -2
  41. package/dist/factory-assets/connectors/devserver.js +2 -2
  42. package/dist/factory-assets/connectors/flow/adapter.js +2 -2
  43. package/dist/factory-assets/connectors/flow/run-flow.js +3 -3
  44. package/dist/factory-assets/connectors/flow.js +2 -2
  45. package/dist/factory-assets/connectors/git/CONNECTOR.md +63 -6
  46. package/dist/factory-assets/connectors/git/driver.d.ts +111 -27
  47. package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -1
  48. package/dist/factory-assets/connectors/git.js +2 -2
  49. package/dist/factory-assets/connectors/gmail.js +2 -2
  50. package/dist/factory-assets/connectors/googledrive.js +2 -2
  51. package/dist/factory-assets/connectors/local.js +2 -2
  52. package/dist/factory-assets/connectors/mattermost.js +2 -2
  53. package/dist/factory-assets/connectors/memory.js +2 -2
  54. package/dist/factory-assets/connectors/minio.js +2 -2
  55. package/dist/factory-assets/connectors/postgres.js +2 -2
  56. package/dist/factory-assets/connectors/s3.js +2 -2
  57. package/dist/factory-assets/connectors/sharepoint.js +2 -2
  58. package/dist/factory-assets/connectors/sqlite.js +2 -2
  59. package/dist/factory-assets/connectors/static-server.js +2 -2
  60. package/dist/factory-assets/connectors/tunnel.js +2 -2
  61. package/dist/factory-assets/connectors/webdav.js +2 -2
  62. package/dist/factory-assets/connectors/xstate-store.js +2 -2
  63. package/dist/factory-assets/connectors/xstate.js +2 -2
  64. package/dist/{helpers-HGDT6O4S.js → helpers-VZJCQSLY.js} +4 -4
  65. package/dist/{helpers-HGDT6O4S.js.map → helpers-VZJCQSLY.js.map} +1 -1
  66. package/dist/{library-publish-B3OVNRMC.js → library-publish-VBLSTO7S.js} +6 -6
  67. package/dist/{library-publish-B3OVNRMC.js.map → library-publish-VBLSTO7S.js.map} +1 -1
  68. package/dist/{open-library-DFK6L43P.js → open-library-SJ54ZBGJ.js} +5 -5
  69. package/dist/{open-library-DFK6L43P.js.map → open-library-SJ54ZBGJ.js.map} +1 -1
  70. package/dist/{project-JTPQ5R7E.js → project-GLZR4SLT.js} +5 -5
  71. package/dist/{project-JTPQ5R7E.js.map → project-GLZR4SLT.js.map} +1 -1
  72. package/dist/runner/index.js +5 -5
  73. package/dist/runner/src/serve.d.ts +4 -1
  74. package/dist/runner/src/serve.d.ts.map +1 -1
  75. package/dist/sdk/asset-manager.js +1 -1
  76. package/dist/sdk/index.js +5 -5
  77. package/dist/sdk/runner.js +5 -5
  78. package/dist/{setup-IVBCYLJ4.js → setup-X73AWRMD.js} +5 -5
  79. package/dist/{setup-IVBCYLJ4.js.map → setup-X73AWRMD.js.map} +1 -1
  80. package/dist/{source-AK3GBWT7.js → source-HYXJO2IE.js} +6 -6
  81. package/dist/{source-AK3GBWT7.js.map → source-HYXJO2IE.js.map} +1 -1
  82. package/dist/{source-manifest-publish-4LPTEJOW.js → source-manifest-publish-V5LCVOYZ.js} +7 -7
  83. package/dist/{source-manifest-publish-4LPTEJOW.js.map → source-manifest-publish-V5LCVOYZ.js.map} +1 -1
  84. package/dist/tui/index.js +5 -5
  85. package/dist/workspace-plugin/index.js +1 -1
  86. package/package.json +1 -1
  87. package/dist/chunk-D5MX76BA.js.map +0 -1
  88. package/dist/chunk-KES5T25I.js.map +0 -1
  89. package/dist/chunk-MC2MF4U5.js.map +0 -1
@@ -1,6 +1,6 @@
1
- export { ClassifierSubpromptRunner, FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, classifierQuestion, createConnector, describeFlowOperations, driveOrchestratorTurn } from '../../chunk-KES5T25I.js';
1
+ export { ClassifierSubpromptRunner, FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, classifierQuestion, createConnector, describeFlowOperations, driveOrchestratorTurn } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -121,9 +121,57 @@ field (default off):
121
121
 
122
122
  | Tier | When | What the agent sees |
123
123
  |---|---|---|
124
- | Tier 1 (default) | `exposeAccessToken: false` | No managed helper. The driver writes the token into `origin`'s URL on every connect and on each rotation, and removes the token (the URL's userinfo) from `origin` on `disconnect` and `onSessionClose`. A container killed without a graceful stop keeps the token in `.git/config` until the next connect replaces it. |
124
+ | Tier 1 (default) | `exposeAccessToken: false` | No credential. The driver writes the token nowhere on disk: `origin` holds the plain URL, and the driver's own git gets the token per command (see below). The agent's `git push` / `git pull` against the remote fail with "could not read Username"; the agent pushes and pulls through the `push` / `pull` / `fetch` ops instead (see Operations). A clone made by an older driver, whose `origin` URL still carries `x-access-token:<token>@`, is rewritten to the plain URL on the next connect. |
125
125
  | Tier 2 (opt-in) | `exposeAccessToken: true` | Short-lived access token written to `<workspace>/.skaile/managed-gitconfig` + `git-credentials`. Agent native git CLI works for the mount's host. |
126
126
 
127
+ **How the driver's own git authenticates (both tiers).** Every clone, fetch, pull, push,
128
+ `ls-remote` and submodule update the driver runs gets the token only in that child process's
129
+ environment: `GIT_CONFIG_COUNT` / `GIT_CONFIG_KEY_n` / `GIT_CONFIG_VALUE_n` set
130
+ `http.<scheme>://<host>/.extraHeader` to `Authorization: Basic <x-access-token:token>`. The
131
+ header is scoped to the declared remote's host (not its path, so a relative submodule on the
132
+ same host authenticates too). Those commands also carry `-c credential.helper=`,
133
+ `-c core.hooksPath=/dev/null`, `-c core.askPass=`, `-c core.fsmonitor=false`,
134
+ `-c core.alternateRefsCommand=`, `-c push.gpgSign=false`, `-c gc.auto=0`,
135
+ `-c maintenance.auto=false`, `GIT_ALLOW_PROTOCOL=https` (so an `insteadOf` rule cannot turn
136
+ origin into an `ext::` command, or a file / ssh URL with its `uploadpack` / `sshCommand`),
137
+ `GIT_TERMINAL_PROMPT=0` and an empty `GIT_ASKPASS`, because `.git/config` is agent-writable
138
+ and each of those would otherwise run an agent-chosen program inside a git child that holds the
139
+ token in its environment. The header's host scope protects the token only while TLS is
140
+ verified, so when a config file outside system scope sets `http.[<url>.]sslVerify`,
141
+ `sslCAInfo` or `sslCAPath`, the driver sends no token at all and logs a warning naming the
142
+ key; the command then fails on a private remote. Submodule git dirs are checked too, since fetch, pull and submodule update recurse into
143
+ them: every git dir under `.git/modules/` and every git dir a submodule's `.git` file points at,
144
+ each read through `git --git-dir=<dir> config --includes` so `includeIf` resolves as it will
145
+ in that submodule. Only a missing path counts as "no submodules"; a listing error, a filesystem
146
+ deadline or an oversized tree withholds the token. The driver's clone, fetch, pull, push and
147
+ submodule update also carry
148
+ `-c submodule.recurse=false -c fetch.recurseSubmodules=false -c push.recurseSubmodules=no`, so
149
+ they never recurse into a gitlink `.gitmodules` does not list (one the scan does not see), even
150
+ when `.git/config` or a submodule's own config turns recursion on (`-c` reaches the fetch git
151
+ runs inside a submodule through `GIT_CONFIG_PARAMETERS`). Submodule content still arrives through the explicit
152
+ `submodule update` the driver runs after every ref-changing operation. Because hooks are off, a driver push does not
153
+ run git-lfs's `pre-push` either (git-lfs is not in the agent image today).
154
+
155
+ **Steps that run repo-controlled programs never hold the token.** A checkout or a merge runs
156
+ the programs the config and `.gitattributes` name (smudge / clean filters, merge drivers), so
157
+ the driver splits them off the network command: a pull is `git fetch origin <branch>` with the
158
+ token, then `git merge --no-edit FETCH_HEAD` without it (a clean divergence is merged, where a
159
+ bare `git pull` without `pull.rebase` would refuse; a conflicting one is aborted, see **sync**);
160
+ the first clone is `--no-checkout`, followed by
161
+ a tokenless `git checkout -f <branch>` and the submodule update. The submodule update is the one
162
+ network command that also checks out: it runs with `--checkout`, which overrides a
163
+ `submodule.<name>.update` (whose `!command` form would otherwise run, nested submodules
164
+ included), and the driver withholds the token from it when a config outside system scope,
165
+ including a submodule's, defines any `filter.<name>.smudge` / `clean` / `process` (git-lfs's
166
+ included: git runs the value through `sh -c`, so a git-lfs-looking value can carry more) or a
167
+ git-lfs transfer agent (`lfs.customtransfer.<name>.path`, `lfs.standalonetransferagent`). With
168
+ a token, `GIT_ALLOW_PROTOCOL=https` also applies to submodules: one declared with an `ssh://`,
169
+ `git@host:`, `http://` or `file://` URL fails with "transport not allowed", which the submodule
170
+ update only logs as a warning, so the checkout comes up without it. A submodule that fails on
171
+ the first clone no longer fails the connect either; it is logged, as on every later sync. Not covered: the environment of a running git child is readable by a process of
172
+ the same uid (`/proc/<pid>/environ`); and the TLS and filter checks read the config just before
173
+ each command, so a change made between that read and the command is not seen.
174
+
127
175
  `auth:` is **required** to use a provider-prefixed grammar:
128
176
 
129
177
  | Syntax | Refresh capability |
@@ -142,20 +190,29 @@ migration error pointing at this doc.
142
190
  - **reused local session branch**: When the local session branch already exists (a warm checkout) and origin has the branch, the driver sets the upstream to `origin/<sessionBranch>` and then:
143
191
  - fast-forwards the local branch (`merge --ff-only`) when it is an ancestor of `origin/<sessionBranch>` (another node pushed newer work);
144
192
  - keeps the local branch and logs a warning when it has commits that origin does not have. The driver never rewrites it. When origin also has commits that the local branch does not have (the branches diverged, for example after an older driver rewrote the branch), the driver merges `origin/<sessionBranch>` in.
145
- When origin does not have the branch, the local branch is used as it is. For Tier-1, the driver refreshes the token in the origin URL before this fetch, so the stale token of an old clone does not fail it. For Tier-2, a failed first fetch is retried after auth is reconciled, and the retry applies the same rules.
193
+ When origin does not have the branch, the local branch is used as it is. For Tier-2, a failed first fetch is retried after origin is aligned with the declared URL, and the retry applies the same rules.
146
194
  - **periodic fetch with `sync.autoRebase`**: The driver keeps the session branch current with `origin/<base>`, but it never rewrites published commits. Each tick fetches the session branch from origin. Only when origin does not have it is the branch rebased onto `origin/<base>`, as before. In all other cases (origin has it, or the fetch failed) the driver merges `origin/<base>` in. A merge can run with uncommitted changes that do not touch the merged files, where a rebase refuses. Merge conflicts are handled as on close: keep "ours" and save "theirs" as `.conflict` files. When a refspec names a branch that origin does not have (other than the base), the tick removes that refspec and its stale tracking ref, then fetches again. Until the branch is pushed, `sync_status` then reports `hasUpstream: false`.
147
195
  - **driver push of a session branch** (hibernate, close, auto-commit): When `origin/<sessionBranch>` holds commits that the local branch does not have, the driver first merges them in. The push is then a fast-forward and never needs a force.
148
- - **unmount**: Stops periodic fetch and auto-commit timers, then tears down the credential: Tier-1 removes the token from `origin` (host and path stay as they are), Tier-2 removes its managed-gitconfig block. A refresh still minting at that point is dropped when it returns; one already rewriting `origin` is waited for, so the strip is the last write.
149
- - **sync**: Pulls from origin on the active branch.
196
+ - **unmount**: Stops periodic fetch, auto-commit and credential-refresh timers. Tier-2 removes its managed-gitconfig block; Tier-1 has nothing on disk to remove. A refresh still minting at that point is dropped when it returns.
197
+ - **sync**: Pulls from origin on the active branch. When both sides have new commits, the driver merges origin in (never a rebase). When that merge conflicts, the driver aborts it and the sync fails with an error that names the conflicting files. The checkout is left as it was before the sync: same `HEAD`, no conflict markers, uncommitted changes kept. The periodic `sync.autoPull` tick and the base-branch pull before `mergeOnClose` behave the same way.
198
+ - **no commit over an unfinished merge or rebase**: Auto-commit, hibernate and close do not commit while the checkout has `MERGE_HEAD`, `CHERRY_PICK_HEAD`, `REVERT_HEAD`, a rebase in progress, or unmerged paths. They log a warning and skip the commit. Their `add -A` would otherwise stage conflict markers as content and conclude the merge. The check fails closed: when the git dir cannot be resolved, or one of those entries cannot be checked for a reason other than "does not exist", it counts as unfinished. The driver's own pulls, merges and rebases (sync, the periodic tick, the merge before a push, the merge on close) do not start in that state either: the sync fails naming the reason, and the others log a warning and skip. So the driver never aborts or resolves a merge the agent started. The agent's own git can leave such a state; the agent (or the user) must finish or abort it. A driver merge or rebase that fails without a conflict is aborted, so it does not block these commits.
150
199
  - **watch**: Uses chokidar with `.git/**` ignored. Resets the auto-commit idle timer on changes.
151
200
  - **onHibernate**: Commits and optionally pushes all changes. With nothing new to commit, it still pushes commits that are only local (the agent committed its own work, or an earlier push failed): "unpushed" means ahead of the upstream, or, with no upstream, ahead of `origin/<base>`, as the platform's hibernate save gate reads `sync_status`.
152
- - **base branch push**: Before the driver pushes the base branch (a main session working on it directly), it fetches `origin/<base>` and merges it in, a fast-forward when the local branch has no commits of its own. A merge, never a rebase. When that merge conflicts, the driver aborts it and the push fails with an error that names the conflicting files; nothing is pushed. The merge is skipped (and the push runs as before) when the checkout is not on the base branch, or when a merge, rebase, cherry-pick or revert is unfinished, so the driver never merges into the agent's other branch or aborts the agent's own merge. Applies to auto-commit, hibernate and close pushes.
201
+ - **base branch push**: Before the driver pushes the base branch (a main session working on it directly), it fetches `origin/<base>` (authenticated per command, like every driver fetch) and merges it in, a fast-forward when the local branch has no commits of its own. A merge, never a rebase. When that merge conflicts, the driver aborts it and the push fails with an error that names the conflicting files; nothing is pushed. The merge is skipped (and the push runs as before) when the checkout is not on the base branch, or when a merge, rebase, cherry-pick or revert is unfinished, so the driver never merges into the agent's other branch or aborts the agent's own merge. Applies to auto-commit, hibernate and close pushes.
153
202
  - **onSessionClose**: Commits, pushes, and optionally merges the session branch into the base branch. Handles merge conflicts by keeping "ours" and saving "theirs" as `.conflict` files. Always tears down the credential afterwards (as on unmount), even when the final push fails.
203
+ - **one job at a time per mount**: sync, the periodic fetch tick, hibernate, the auto-commit tick, session close and the `push` / `pull` / `fetch` ops queue behind each other on a per-mount lock, so no two of them run git against the checkout at once. `sync_status` does not take it (no network, no index write).
154
204
 
155
205
  ### Operations (tool face)
156
206
 
157
207
  | Operation | Access | Description |
158
208
  |---|---|---|
209
+ | `push` | write | Pushes the mount's branch (the session branch on a branching mount) to origin with the mount's credential, per command as for the driver's own push, with an explicit `refs/heads/<b>:refs/heads/<b>` refspec so a `remote.origin.push` entry cannot change the destination or add a `+`. Commits only — the agent commits with its git CLI first. Never forces. The checkout must be on the mount's branch, so the agent cannot push another branch with the mount's credential. Returns `{ op, branch, status, message?, sync }` with `status` `pushed` or `rejected` (non-fast-forward, or a `[remote rejected]` refusal such as a protected branch); auth and network failures throw. |
210
+ | `pull` | read | Fetches origin (and the session branch) and merges `origin/<branch>` into the mount's branch — a merge, never a rebase, like the driver's merge before a session-branch push. `status` is `merged`, `up-to-date`, `no-upstream` (origin lacks the branch), `conflict` (the merge was aborted, the checkout is as before, `conflicts` lists the files, and the fetched commits stay at `origin/<branch>` for a local `git merge`), or `blocked` (the merge did not start, e.g. uncommitted changes it would overwrite, or a merge or rebase already in progress, which the pull leaves untouched). Submodules are not fetched: a submodule fetch reads its URL from the agent-writable config and would carry the host-scoped credential to any repo named there, so pins whose commits are already local are checked out (without the token) and the rest wait for the next driver sync; `message` names them. Until then the driver's own commits (auto-commit, hibernate, close) leave a lagging submodule out, so they never move its pin backwards. Read access: it changes nothing on the remote. |
211
+ | `fetch` | read | Fetches origin (and the session branch) with the mount's credential; updates remote-tracking refs only. `status: fetched`. |
159
212
  | `sync_status` | read | Returns a JSON snapshot of the mount's git sync status: `{ branch, dirty, ahead, behind, hasUpstream, mainAhead, mainBehind, commitSha }`. `ahead`/`behind` are measured against the upstream tracking ref; `mainAhead`/`mainBehind` against `origin/<baseBranch>`. Read-only — performs no network fetch, so counts reflect locally-known remote-tracking refs ("since last sync"). |
160
213
 
161
- This op backs the platform's git sync-status badge for **in-container** sources (Git / SharePoint / Empty), whose host workspace dir is empty even while the container is awake — the platform dispatches `sync_status` to the live agent rather than reading the host filesystem.
214
+ All three refuse when `origin` no longer resolves to the mount's own URL for fetch or push (`git remote get-url [--push] origin`, which applies `pushurl`, `insteadOf` and `pushInsteadOf`): the config is agent-writable. Because the agent can change that config between the check and the command, these three ops also scope the header to the mount's repository URL (`http.<repo-url>.extraHeader`) rather than its host, so a same-host redirect set in that window gets no credential. The driver's own commands keep the host scope, which relative submodules on the same host need.
215
+
216
+ The agent reaches `push`, `pull` and `fetch` as the `git_push`, `git_pull` and `git_fetch` tools of the `skaile-connectors` MCP server (argument `connector_id`), emitted whenever a git mount is registered. `skaile connector run <id> push` does not reach them: that CLI starts its own connector manager from `skaile.yaml`, without the live mount or its credential. They exist for Tier-1 mounts, whose agent CLI has no credential; on Tier-2 they work too. `gh` and pull requests have no op: they need Tier 2.
217
+
218
+ `sync_status` backs the platform's git sync-status badge for **in-container** sources (Git / SharePoint / Empty), whose host workspace dir is empty even while the container is awake — the platform dispatches `sync_status` to the live agent rather than reading the host filesystem.
@@ -70,7 +70,7 @@ export declare const REFRESH_LEAD_MS: number;
70
70
  * {@link REFRESH_LEAD_MS} would otherwise be asked for a new one every second.
71
71
  * A token living under this floor lapses until the next tick: Tier-2 recovers
72
72
  * sooner through the reactive retry-401 path, Tier-1 (no helper) waits for the
73
- * tick to re-bake origin.
73
+ * tick to put a fresh token in state.
74
74
  */
75
75
  export declare const MIN_REFRESH_DELAY_MS = 30000;
76
76
  /**
@@ -79,6 +79,54 @@ export declare const MIN_REFRESH_DELAY_MS = 30000;
79
79
  * runner's AI-credential scheduler uses.
80
80
  */
81
81
  export declare const MAX_REARM_MS: number;
82
+ /**
83
+ * The remote a network git command authenticates against. `GitState` satisfies
84
+ * it, and is passed as-is so a rotated token is read at spawn time.
85
+ */
86
+ interface GitRemoteAuth {
87
+ url: string;
88
+ token?: string;
89
+ /**
90
+ * Scope the header to this repository's URL instead of its host. For the
91
+ * agent's ops: a same-host `pushurl` / `insteadOf` the agent sets after the
92
+ * origin check then gets no header. Off for the driver's own commands, whose
93
+ * relative submodules on the same host need it.
94
+ */
95
+ repoScoped?: boolean;
96
+ }
97
+ /**
98
+ * `auth.url` without userinfo when a token will authenticate it — the URL that
99
+ * goes into `origin`. Without a token the declared URL is used unchanged.
100
+ */
101
+ declare function plainRemoteUrl(auth: GitRemoteAuth): string;
102
+ /**
103
+ * Child environment for a network git command: the token as an
104
+ * `http.<origin>.extraHeader` through `GIT_CONFIG_COUNT`, so it reaches git
105
+ * without touching `.git/config`, a credentials file, or the argv (which
106
+ * `/proc/<pid>/cmdline` and git's own error messages expose).
107
+ *
108
+ * Scoped to scheme, host and port, not the repository path: a relative
109
+ * submodule on the same host needs it too, and git does not send it to a host
110
+ * that `origin` or an `insteadOf` rule was re-pointed at.
111
+ */
112
+ declare function networkGitEnv(auth: GitRemoteAuth | undefined, base?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
113
+ /**
114
+ * Run a git command that talks to a remote, authenticated for this one
115
+ * command only. Every clone, fetch, pull, push, ls-remote and submodule update
116
+ * of this driver goes through here.
117
+ */
118
+ declare function runRemoteGit(args: string[], auth: GitRemoteAuth | undefined, options: {
119
+ cwd?: string;
120
+ safeDir: string;
121
+ timeout: number;
122
+ env?: NodeJS.ProcessEnv;
123
+ }): Promise<string>;
124
+ /**
125
+ * An https remote without userinfo, query or fragment (as `origin` is written
126
+ * on either tier); any other URL unchanged. Used to compare remotes and as the
127
+ * repository scope of a header.
128
+ */
129
+ declare function comparableRemoteUrl(url: string): string;
82
130
  /**
83
131
  * Snapshot returned by the `sync_status` tool op. JSON-serialised over the
84
132
  * transport; the platform overlays `available`/`containerAwake`/`reason`
@@ -106,6 +154,23 @@ export interface GitSyncStatusResult {
106
154
  /** Current HEAD commit SHA, or `null` when unavailable. */
107
155
  commitSha: string | null;
108
156
  }
157
+ /**
158
+ * Result of the agent-facing `push`, `pull` and `fetch` tool ops, JSON-serialised.
159
+ * An expected outcome the agent must act on (a rejected push, a conflicting
160
+ * pull) is a `status`, not a thrown error; auth or network failures throw.
161
+ */
162
+ export interface GitRemoteOpResult {
163
+ op: "push" | "pull" | "fetch";
164
+ /** The mount's branch the op acted on (the session branch on a branching mount). */
165
+ branch: string;
166
+ status: "pushed" | "rejected" | "fetched" | "merged" | "up-to-date" | "no-upstream" | "conflict" | "blocked";
167
+ /** What happened and what to do next, in words the agent can act on. */
168
+ message?: string;
169
+ /** Files that conflicted, for `status: "conflict"` (the merge itself was aborted). */
170
+ conflicts?: string[];
171
+ /** Sync status after the op. */
172
+ sync: GitSyncStatusResult;
173
+ }
109
174
  /**
110
175
  * Read git sync status for an in-container checkout. Pure and never throws —
111
176
  * every git call degrades to a safe default. No network fetch:
@@ -137,6 +202,24 @@ export declare class GitConnector extends AbstractConnector {
137
202
  readonly tools: ToolFace;
138
203
  private _describeOperations;
139
204
  private _executeOp;
205
+ /**
206
+ * Run `fn` after every earlier job on this mount has settled. Network git and
207
+ * index-writing git on one checkout must not overlap: two of them contend for
208
+ * `.git/index.lock`, and a push racing a pull can push a half-merged branch.
209
+ * Not re-entrant — a job must never wait on the lock it runs under.
210
+ */
211
+ private withMountLock;
212
+ /**
213
+ * The agent's network git: the driver runs it with the mount's credential, so
214
+ * an agent on a mount without `exposeAccessToken` can push and pull without
215
+ * ever holding the token. Acts only on the mount's own branch, never forces.
216
+ */
217
+ private agentRemoteOp;
218
+ /** Fetch origin's base branch and, on a branching mount, the session branch. */
219
+ private fetchActiveBranch;
220
+ private agentFetch;
221
+ private agentPush;
222
+ private agentPull;
140
223
  connect(declaration: ConnectorDeclaration, ctx: ConnectContext): Promise<ConnectorHandle>;
141
224
  /**
142
225
  * Bring `targetDir` into a usable checkout state for `connect()`.
@@ -343,7 +426,7 @@ export declare class GitConnector extends AbstractConnector {
343
426
  * The intent is to preserve whatever the agent last had on disk. We
344
427
  * therefore:
345
428
  * - `git init` — creates `.git/`; does not modify any existing file.
346
- * - `git remote add origin <authUrl>` — wires up the remote so the
429
+ * - `git remote add origin <remoteUrl>` — wires up the remote so the
347
430
  * normal lifecycle hooks (`pushOnHibernate`, `pushAfterCommit`)
348
431
  * have a target.
349
432
  *
@@ -355,14 +438,12 @@ export declare class GitConnector extends AbstractConnector {
355
438
  * user's last on-disk state. The agent or autocommit reconciles
356
439
  * with the remote later.
357
440
  *
358
- * Token persistence: the auth URL gets written into `.git/config`
359
- * exactly like the `git clone <authUrl>` path does — token-rotation
360
- * handling is external to this method (managed-gitconfig credential
361
- * helper refresh in Tier-2 connectors).
441
+ * `remoteUrl` carries no credential; network commands authenticate per
442
+ * command (see `runRemoteGit`).
362
443
  */
363
444
  private initInPlace;
364
445
  /**
365
- * Count `refs/heads/*` on `authUrl`, optionally narrowed to one `branch`.
446
+ * Count `refs/heads/*` on the remote, optionally narrowed to one `branch`.
366
447
  *
367
448
  * Returns `null` when the probe itself fails (network, auth, bad URL).
368
449
  * "Cannot tell" must never collapse into "no refs": the empty-remote
@@ -419,11 +500,8 @@ export declare class GitConnector extends AbstractConnector {
419
500
  * `reset --hard`. Files that do not conflict with the remote stay
420
501
  * exactly where they are.
421
502
  *
422
- * Auth-URL handling matches `initInPlace`: a pre-existing `origin`
423
- * remote is replaced with the authed URL so the fetch works even
424
- * after token rotation. This persists the token in `.git/config`
425
- * the same way `git clone <authUrl>` does — token-rotation handling
426
- * is external to this connector method.
503
+ * A pre-existing `origin` is replaced with the declared URL, which also
504
+ * drops a token an older driver wrote into it.
427
505
  */
428
506
  private bootstrapFromOrigin;
429
507
  /**
@@ -442,7 +520,6 @@ export declare class GitConnector extends AbstractConnector {
442
520
  * bootstrap.
443
521
  */
444
522
  private preserveConflictingUntracked;
445
- private authUrl;
446
523
  /**
447
524
  * Align `origin` with the exact sanitized URL used by the Tier-2 helper.
448
525
  * Git does not normalize query/fragment data, path case, or `.git` aliases
@@ -451,19 +528,16 @@ export declare class GitConnector extends AbstractConnector {
451
528
  */
452
529
  private alignRemoteWithCredentialScope;
453
530
  /**
454
- * Tier-1 only: rewrite `origin` so it carries the token freshly minted on
455
- * this connect. The "use as-is" wake path leaves whatever token the first
456
- * connect baked in — long-dead for short-lived (GitHub App) tokens. Without
457
- * a Tier-2 helper this URL token is the sole credential, so it must be
458
- * refreshed here. No-op for anonymous (no token) or non-https remotes.
459
- */
460
- private rebakeRemoteAuth;
461
- /**
462
- * Tier-1: remove the userinfo from `origin`, so the token baked by
463
- * connect/refresh does not stay in `.git/config` after teardown. No-op when
464
- * `origin` carries none, or nothing was baked (no token, non-https remote).
465
- */
466
- private stripRemoteAuth;
531
+ * Point `origin` at the declared URL, without a credential in it.
532
+ *
533
+ * Clones made before the driver authenticated per command hold
534
+ * `https://x-access-token:<token>@…` in `.git/config`, where the agent can
535
+ * read it; this is what removes it, on the first connect after an upgrade.
536
+ * With a token in hand `origin` is set to the declared URL, as the old
537
+ * re-bake did. Without one only a token-bearing origin is rewritten: a URL
538
+ * the user declared with their own userinfo is theirs to keep.
539
+ */
540
+ private reconcileRemoteUrl;
467
541
  private startPeriodicFetch;
468
542
  /** One periodic-fetch tick. Bails out at each resumption point once disconnected. */
469
543
  private runPeriodicFetch;
@@ -482,6 +556,12 @@ export declare class GitConnector extends AbstractConnector {
482
556
  * save "theirs" as `.conflict` files.
483
557
  */
484
558
  private mergeBaseIntoSessionBranch;
559
+ /**
560
+ * True (and logged) when a merge or rebase is already open in the checkout,
561
+ * so a driver merge must not start: its failure path would abort or resolve
562
+ * the agent's own operation.
563
+ */
564
+ private skipOverUnfinishedOperation;
485
565
  /**
486
566
  * Attempt to resolve merge/rebase conflicts by keeping "ours" and copying
487
567
  * "theirs" to a .conflict file. If resolution fails entirely, abort.
@@ -503,9 +583,13 @@ export declare class GitConnector extends AbstractConnector {
503
583
  * @docLink packages/factory-assets/api-reference#git-connector-factory
504
584
  */
505
585
  export declare function createConnector(): GitConnector;
506
- /** Test-only surface — exposes the mode→config resolver for unit assertions. */
586
+ /** Test-only surface for unit assertions. */
507
587
  export declare const __test: {
508
588
  resolveGitConfig: typeof resolveGitConfig;
589
+ networkGitEnv: typeof networkGitEnv;
590
+ plainRemoteUrl: typeof plainRemoteUrl;
591
+ runRemoteGit: typeof runRemoteGit;
592
+ comparableRemoteUrl: typeof comparableRemoteUrl;
509
593
  };
510
594
  export {};
511
595
  //# sourceMappingURL=driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/git/driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EAEf,cAAc,EAMd,QAAQ,EAER,WAAW,EACX,YAAY,EACb,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EACL,iBAAiB,EAelB,MAAM,+BAA+B,CAAC;AAOvC,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,kBAAkB;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB;4EACwE;IACxE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAqLD;;;;;GAKG;AACH,iBAAS,gBAAgB,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG;IAC/F,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,kBAAkB,CAAC;CAC/B,CAcA;AAOD,6EAA6E;AAC7E,eAAO,MAAM,eAAe,QAAgB,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAK3C;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAA2B,CAAC;AA8lBrD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iFAAiF;IACjF,KAAK,EAAE,OAAO,CAAC;IACf,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CA8B9B;AA+DD;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,QAAQ,CAAC,IAAI,SAAS;IAEtB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAIjC;IAEF,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAQtB;IAEF,OAAO,CAAC,mBAAmB;YAeb,UAAU;IAmBlB,OAAO,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAgN/F;;;;;;;;;;;;;;;;;OAiBG;YACW,eAAe;IAwF7B;;;;;;OAMG;YACW,qBAAqB;IA4EnC;;;;;;;;;;OAUG;YACW,kBAAkB;IAuChC;;;;;;OAMG;YACW,wBAAwB;IAatC;;;;;;;;;;;OAWG;YACW,2BAA2B;IAkCzC;;;;;;;OAOG;YACW,4BAA4B;IAmB1C;;;;;;;OAOG;YACW,yBAAyB;IAYvC;;;;;;;;OAQG;YACW,gBAAgB;IAW9B;;;;OAIG;YACW,aAAa;IAiC3B;;;OAGG;YACW,mBAAmB;IA+CjC;;;;;;;;;;;;;;;OAeG;IACG,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCrF,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAyB1C,KAAK;IAsBV,KAAK,CACZ,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC/C,OAAO,CAAC,EAAE,YAAY,GACrB,WAAW;IAiDC,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA4BhF;;;;;;OAMG;YACW,uBAAuB;IAkBtB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAuEnF;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;IAgEjC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,mCAAmC;IAiD3C;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;IAyBxC,OAAO,CAAC,uBAAuB;IAiH/B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,eAAe;YA8BT,wBAAwB;YAoExB,yBAAyB;IAuCvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,WAAW;IAWzB;;;;;;;OAOG;YACW,gBAAgB;IAqB9B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;YACW,oBAAoB;IA4DlC;;;;;;;;OAQG;YACW,qBAAqB;IASnC;;;;;;;;;;;;;;;;;;;OAmBG;YACW,mBAAmB;IAyBjC;;;;;;;;;;;;;;OAcG;YACW,4BAA4B;IAoC1C,OAAO,CAAC,OAAO;IAUf;;;;;OAKG;YACW,8BAA8B;IAgB5C;;;;;;OAMG;YACW,gBAAgB;IAW9B;;;;OAIG;YACW,eAAe;IAyB7B,OAAO,CAAC,kBAAkB;IAkC1B,qFAAqF;YACvE,gBAAgB;IAuC9B;;;;;;OAMG;YACW,WAAW;IAwBzB;;;;;OAKG;YACW,0BAA0B;IAqBxC;;;;OAIG;YACW,uBAAuB;IAkDrC;;OAEG;YACW,mBAAmB;IAgDjC,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,oBAAoB;YAiCd,iBAAiB;YAkBjB,qBAAqB;CAapC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED,gFAAgF;AAChF,eAAO,MAAM,MAAM;;CAAuB,CAAC"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/git/driver.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- export { GitConnector, MAX_REARM_MS, MIN_REFRESH_DELAY_MS, REFRESH_LEAD_MS, __test, createConnector5 as createConnector, readGitSyncStatus } from '../../chunk-KES5T25I.js';
1
+ export { GitConnector, MAX_REARM_MS, MIN_REFRESH_DELAY_MS, REFRESH_LEAD_MS, __test, createConnector5 as createConnector, readGitSyncStatus } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { GmailConnector, createConnector6 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { GmailConnector, createConnector6 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { GoogleDriveConnector, createConnector7 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { GoogleDriveConnector, createConnector7 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { LocalConnector, createConnector8 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { LocalConnector, createConnector8 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { MattermostConnector, createConnector9 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { MattermostConnector, createConnector9 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { MemoryConnector, createConnector10 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { MemoryConnector, createConnector10 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { MinIOConnector, createConnector11 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { MinIOConnector, createConnector11 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { PostgresConnector, createConnector12 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { PostgresConnector, createConnector12 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { S3Connector, S3FetchStoppedError, S3PresignedRequestError, S3_PRESIGN_BATCH, createConnector13 as createConnector, parseListObjectsV2, presignScopePrefix, presignableKey } from '../../chunk-KES5T25I.js';
1
+ export { S3Connector, S3FetchStoppedError, S3PresignedRequestError, S3_PRESIGN_BATCH, createConnector13 as createConnector, parseListObjectsV2, presignScopePrefix, presignableKey } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { SharePointConnector, createConnector14 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { SharePointConnector, createConnector14 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { SQLiteConnector, createConnector15 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { SQLiteConnector, createConnector15 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { StaticServerConnector, createConnector16 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { StaticServerConnector, createConnector16 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { TunnelConnector, createConnector17 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { TunnelConnector, createConnector17 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { WebDAVConnector, createConnector18 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { WebDAVConnector, createConnector18 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { XStateStoreConnector, createConnector20 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { XStateStoreConnector, createConnector20 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,6 +1,6 @@
1
- export { XStateConnector, createConnector19 as createConnector } from '../../chunk-KES5T25I.js';
1
+ export { XStateConnector, createConnector19 as createConnector } from '../../chunk-EZOFQW3G.js';
2
2
  import '../../chunk-KVWSBQNP.js';
3
- import '../../chunk-MC2MF4U5.js';
3
+ import '../../chunk-2OLNNQKT.js';
4
4
  import '../../chunk-IN466NSZ.js';
5
5
  import '../../chunk-6S5KL76M.js';
6
6
  import '../../chunk-LOO5CB5M.js';
@@ -1,5 +1,5 @@
1
- export { KIND_COL_WIDTH, S, bareSoftDepName, colorRef, fitWidth, formatRelativeTime, formatSoftDepAddPreview, formatSoftDepHint, formatSoftDepRemovePreview, formatSoftDepSection, kindColor, kindColorPad, logErr, logInfo, logOk, logWarn } from './chunk-EVH2X3QF.js';
2
- import './chunk-PPMHNT6A.js';
1
+ export { KIND_COL_WIDTH, S, bareSoftDepName, colorRef, fitWidth, formatRelativeTime, formatSoftDepAddPreview, formatSoftDepHint, formatSoftDepRemovePreview, formatSoftDepSection, kindColor, kindColorPad, logErr, logInfo, logOk, logWarn } from './chunk-SSODNBSC.js';
2
+ import './chunk-IHFQTKUP.js';
3
3
  import './chunk-UFWADBG6.js';
4
4
  import './chunk-HGPSZXZP.js';
5
5
  import './chunk-VOEBLPXO.js';
@@ -28,5 +28,5 @@ import './chunk-UQ6LFBPZ.js';
28
28
  import './chunk-DKCFWSVW.js';
29
29
  import './chunk-N7B3LZ7V.js';
30
30
  import './chunk-NSBPE2FW.js';
31
- //# sourceMappingURL=helpers-HGDT6O4S.js.map
32
- //# sourceMappingURL=helpers-HGDT6O4S.js.map
31
+ //# sourceMappingURL=helpers-VZJCQSLY.js.map
32
+ //# sourceMappingURL=helpers-VZJCQSLY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"helpers-HGDT6O4S.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"helpers-VZJCQSLY.js"}
@@ -1,12 +1,12 @@
1
- import { makeHttpPublisherClient, bareName, refFor, formatNamespaceAvailability, preflightNamespace, publishToStore } from './chunk-5CT42FXA.js';
1
+ import { makeHttpPublisherClient, bareName, refFor, formatNamespaceAvailability, preflightNamespace, publishToStore } from './chunk-2JGUFDKZ.js';
2
2
  import { isStoreAuthenticated } from './chunk-IJTEDXWQ.js';
3
- import { openLibraryManager } from './chunk-246NSTR7.js';
4
- import { logErr, logInfo, logOk, S } from './chunk-EVH2X3QF.js';
3
+ import { openLibraryManager } from './chunk-XZCRIPWT.js';
4
+ import { logErr, logInfo, logOk, S } from './chunk-SSODNBSC.js';
5
5
  import './chunk-KTCMBEEB.js';
6
6
  import './chunk-ALLCAFHQ.js';
7
7
  import './chunk-V4RGCKYC.js';
8
8
  import './chunk-DHMBE5J7.js';
9
- import './chunk-PPMHNT6A.js';
9
+ import './chunk-IHFQTKUP.js';
10
10
  import './chunk-UFWADBG6.js';
11
11
  import './chunk-HGPSZXZP.js';
12
12
  import './chunk-VOEBLPXO.js';
@@ -277,5 +277,5 @@ async function runLibraryYank(name, opts, client) {
277
277
  }
278
278
 
279
279
  export { runLibraryPublish, runLibraryRegister, runLibraryYank };
280
- //# sourceMappingURL=library-publish-B3OVNRMC.js.map
281
- //# sourceMappingURL=library-publish-B3OVNRMC.js.map
280
+ //# sourceMappingURL=library-publish-VBLSTO7S.js.map
281
+ //# sourceMappingURL=library-publish-VBLSTO7S.js.map