@skaile/workspaces 0.17.1 → 0.18.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 +10 -0
- package/dist/asset-manager/index.js +1 -1
- package/dist/base-assets/connectors/deploy.js +1 -1
- package/dist/base-assets/connectors/devserver.js +1 -1
- package/dist/base-assets/connectors/flow/adapter.js +1 -1
- package/dist/base-assets/connectors/flow/run-flow.js +2 -2
- package/dist/base-assets/connectors/flow.js +1 -1
- package/dist/base-assets/connectors/git/driver.d.ts +6 -2
- package/dist/base-assets/connectors/git/driver.d.ts.map +1 -1
- package/dist/base-assets/connectors/git.js +1 -1
- package/dist/base-assets/connectors/gmail.js +1 -1
- package/dist/base-assets/connectors/googledrive.js +1 -1
- package/dist/base-assets/connectors/local.js +1 -1
- package/dist/base-assets/connectors/mattermost.js +1 -1
- package/dist/base-assets/connectors/memory.js +1 -1
- package/dist/base-assets/connectors/minio.js +1 -1
- package/dist/base-assets/connectors/postgres.js +1 -1
- package/dist/base-assets/connectors/redis.js +1 -1
- package/dist/base-assets/connectors/s3.js +1 -1
- package/dist/base-assets/connectors/sharepoint.js +1 -1
- package/dist/base-assets/connectors/sqlite.js +1 -1
- package/dist/base-assets/connectors/static-server.js +1 -1
- package/dist/base-assets/connectors/tunnel.js +1 -1
- package/dist/base-assets/connectors/webdav.js +1 -1
- package/dist/base-assets/connectors/xstate-store.js +1 -1
- package/dist/base-assets/connectors/xstate.js +1 -1
- package/dist/base-assets/connectors/yjs.js +1 -1
- package/dist/{chunk-D6GE2WA2.js → chunk-63Y7YN33.js} +2 -2
- package/dist/{chunk-D6GE2WA2.js.map → chunk-63Y7YN33.js.map} +1 -1
- package/dist/{chunk-RVPZOFSQ.js → chunk-BCZRPFVQ.js} +4 -4
- package/dist/{chunk-RVPZOFSQ.js.map → chunk-BCZRPFVQ.js.map} +1 -1
- package/dist/{chunk-JMB6VR3I.js → chunk-I7HGX4ZE.js} +71 -4
- package/dist/chunk-I7HGX4ZE.js.map +1 -0
- package/dist/{chunk-G5E44VG7.js → chunk-OIIGCFYM.js} +3 -3
- package/dist/{chunk-G5E44VG7.js.map → chunk-OIIGCFYM.js.map} +1 -1
- package/dist/{chunk-F6RXWVRE.js → chunk-YVX66WNQ.js} +2 -2
- package/dist/{chunk-F6RXWVRE.js.map → chunk-YVX66WNQ.js.map} +1 -1
- package/dist/cli/index.js +5 -5
- package/dist/connectors/index.js +1 -1
- package/dist/connectors/src/fleet-utils.d.ts +6 -9
- package/dist/connectors/src/fleet-utils.d.ts.map +1 -1
- package/dist/runner/index.js +3 -3
- package/dist/sdk/asset-manager.js +1 -1
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/runner.js +3 -3
- package/dist/tui/index.js +3 -3
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-JMB6VR3I.js.map +0 -1
|
@@ -87,7 +87,8 @@ function git(cmd, cwd, timeout = 3e4) {
|
|
|
87
87
|
function isValidGitRefOrSha(ref) {
|
|
88
88
|
if (ref.length === 0 || ref.length > 255) return false;
|
|
89
89
|
if (/[\s\\~^:?*[\x00-\x1f\x7f`$;&|'"<>()]/.test(ref)) return false;
|
|
90
|
-
if (ref.startsWith("-") || ref.endsWith(".lock") || ref.endsWith("/") || ref.endsWith("."))
|
|
90
|
+
if (ref.startsWith("-") || ref.endsWith(".lock") || ref.endsWith("/") || ref.endsWith("."))
|
|
91
|
+
return false;
|
|
91
92
|
if (ref.includes("..") || ref.includes("@{")) return false;
|
|
92
93
|
return true;
|
|
93
94
|
}
|
|
@@ -127,6 +128,9 @@ var GitConnector = class extends AbstractConnector {
|
|
|
127
128
|
if (!targetDir) {
|
|
128
129
|
throw new Error("GitConnector requires ctx.mountTarget to be set by the manager");
|
|
129
130
|
}
|
|
131
|
+
if (isFleetManaged(declaration.id)) {
|
|
132
|
+
return this.connectFleetManaged(declaration, targetDir);
|
|
133
|
+
}
|
|
130
134
|
const secrets = ctx.secrets;
|
|
131
135
|
const tokenMediator = ctx.tokenMediator;
|
|
132
136
|
const started = Date.now();
|
|
@@ -199,7 +203,10 @@ var GitConnector = class extends AbstractConnector {
|
|
|
199
203
|
git(`fetch origin ${session.fromRef}`, targetDir);
|
|
200
204
|
git(`checkout -b ${sessionBranch} FETCH_HEAD`, targetDir);
|
|
201
205
|
anchored = true;
|
|
202
|
-
this.log.info("session branch created from fromRef", {
|
|
206
|
+
this.log.info("session branch created from fromRef", {
|
|
207
|
+
sessionBranch,
|
|
208
|
+
fromRef: session.fromRef
|
|
209
|
+
});
|
|
203
210
|
} catch (err) {
|
|
204
211
|
this.log.warn("fromRef fetch failed, falling back to base branch", {
|
|
205
212
|
sessionBranch,
|
|
@@ -234,6 +241,42 @@ var GitConnector = class extends AbstractConnector {
|
|
|
234
241
|
});
|
|
235
242
|
return this.makeHandle(declaration, state, targetDir);
|
|
236
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Fleet-managed connect: verify the host bind, register an explorer watcher,
|
|
246
|
+
* no-op every git lifecycle hook. Spec: `_devlog/specs/2026-05-28-git-fleet-mode-design.md`.
|
|
247
|
+
*/
|
|
248
|
+
async connectFleetManaged(declaration, targetDir) {
|
|
249
|
+
this.log.info("mount handled by host fleet \u2014 skipping in-container git", {
|
|
250
|
+
connectorId: declaration.id,
|
|
251
|
+
targetDir
|
|
252
|
+
});
|
|
253
|
+
if (declaration.mount?.exposeAccessToken) {
|
|
254
|
+
this.log.warn("fleet-managed: exposeAccessToken ignored \u2014 host fleet owns credentials", {
|
|
255
|
+
connectorId: declaration.id
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
await ensureFleetMounted(targetDir, this.log);
|
|
259
|
+
let activeBranch = "unknown";
|
|
260
|
+
try {
|
|
261
|
+
activeBranch = git("rev-parse --abbrev-ref HEAD", targetDir, 5e3);
|
|
262
|
+
} catch {
|
|
263
|
+
}
|
|
264
|
+
const state = {
|
|
265
|
+
url: String(declaration.mount?.source ?? ""),
|
|
266
|
+
branch: activeBranch,
|
|
267
|
+
activeBranch,
|
|
268
|
+
session: parseSessionConfig(declaration.options),
|
|
269
|
+
sync: parseSyncConfig(declaration.options),
|
|
270
|
+
lifecycle: parseLifecycleConfig(declaration.options),
|
|
271
|
+
fleetManaged: true
|
|
272
|
+
};
|
|
273
|
+
const dispatch = (event) => {
|
|
274
|
+
state.emitChange?.(event);
|
|
275
|
+
};
|
|
276
|
+
state.fleetWatcher = await createFsWatcher(targetDir, dispatch, { ignored: ["**/.git/**"] });
|
|
277
|
+
this.log.info("fleet mount ready", { activeBranch, targetDir });
|
|
278
|
+
return this.makeHandle(declaration, state, targetDir);
|
|
279
|
+
}
|
|
237
280
|
/**
|
|
238
281
|
* Public refresh entry-point used by the runner's wake-mid-401 handler when
|
|
239
282
|
* the credential-helper script touches the workspace refresh-flag. Calls
|
|
@@ -286,6 +329,12 @@ var GitConnector = class extends AbstractConnector {
|
|
|
286
329
|
async disconnect(handle) {
|
|
287
330
|
this.log.info("unmount");
|
|
288
331
|
const s = handle.state;
|
|
332
|
+
if (s.fleetManaged) {
|
|
333
|
+
await s.fleetWatcher?.close();
|
|
334
|
+
s.fleetWatcher = void 0;
|
|
335
|
+
s.emitChange = void 0;
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
289
338
|
if (s.fetchTimer) {
|
|
290
339
|
clearInterval(s.fetchTimer);
|
|
291
340
|
s.fetchTimer = void 0;
|
|
@@ -298,6 +347,10 @@ var GitConnector = class extends AbstractConnector {
|
|
|
298
347
|
}
|
|
299
348
|
async _sync(handle, _options) {
|
|
300
349
|
const s = handle.state;
|
|
350
|
+
if (s.fleetManaged) {
|
|
351
|
+
this.log.debug("sync skipped \u2014 fleet-managed");
|
|
352
|
+
return { filesWritten: 0, filesDeleted: 0, bytesTransferred: 0 };
|
|
353
|
+
}
|
|
301
354
|
this.log.debug("sync (pull) start", { branch: s.activeBranch });
|
|
302
355
|
try {
|
|
303
356
|
git(`pull origin ${s.activeBranch}`, handle.mountPath, 6e4);
|
|
@@ -311,6 +364,14 @@ var GitConnector = class extends AbstractConnector {
|
|
|
311
364
|
// ── Watch ──────────────────────────────────────────────────────────────────
|
|
312
365
|
watch(handle, callback, options) {
|
|
313
366
|
const s = handle.state;
|
|
367
|
+
if (s.fleetManaged) {
|
|
368
|
+
s.emitChange = callback;
|
|
369
|
+
return {
|
|
370
|
+
close: async () => {
|
|
371
|
+
s.emitChange = void 0;
|
|
372
|
+
}
|
|
373
|
+
};
|
|
374
|
+
}
|
|
314
375
|
s.emitChange = (event) => {
|
|
315
376
|
callback(event);
|
|
316
377
|
this.resetAutoCommitTimer(s, handle.mountPath);
|
|
@@ -331,6 +392,9 @@ var GitConnector = class extends AbstractConnector {
|
|
|
331
392
|
async onHibernate(handle) {
|
|
332
393
|
this.log.info("hibernate");
|
|
333
394
|
const s = handle.state;
|
|
395
|
+
if (s.fleetManaged) {
|
|
396
|
+
return "fleet-managed";
|
|
397
|
+
}
|
|
334
398
|
const lc = s.lifecycle;
|
|
335
399
|
if (!lc.commitOnHibernate) return;
|
|
336
400
|
const result = commitAll(handle.mountPath, `skaile: hibernate snapshot`);
|
|
@@ -350,6 +414,9 @@ var GitConnector = class extends AbstractConnector {
|
|
|
350
414
|
async onSessionClose(handle) {
|
|
351
415
|
this.log.info("session closed");
|
|
352
416
|
const s = handle.state;
|
|
417
|
+
if (s.fleetManaged) {
|
|
418
|
+
return "fleet-managed";
|
|
419
|
+
}
|
|
353
420
|
const lc = s.lifecycle;
|
|
354
421
|
const details = [];
|
|
355
422
|
const commitResult = commitAll(handle.mountPath, `skaile: session close`);
|
|
@@ -7914,5 +7981,5 @@ function createConnector() {
|
|
|
7914
7981
|
}
|
|
7915
7982
|
|
|
7916
7983
|
export { AbstractConnector, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, DeployConnector, DevServerConnector, FlowAdapter, GitConnector, GmailConnector, GoogleDriveConnector, LocalConnector, LogBuffer, ManagedGitconfigCollisionError, MattermostConnector, MemoryConnector, MinIOConnector, PostgresConnector, RedisConnector, S3Connector, SQLiteConnector, SharePointConnector, StaticServerConnector, TunnelConnector, WebDAVConnector, XStateConnector, XStateStoreConnector, YjsConnector, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, createConnector, createConnector10, createConnector11, createConnector12, createConnector13, createConnector14, createConnector15, createConnector16, createConnector17, createConnector18, createConnector19, createConnector2, createConnector20, createConnector21, createConnector3, createConnector4, createConnector5, createConnector6, createConnector7, createConnector8, createConnector9, createFsWatcher, createWorktree, defaultSpawn, ensureFleetMounted, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, parseAuthBlob2 as parseAuthBlob, registerBuiltinConnectors, registerConnector, removeMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock };
|
|
7917
|
-
//# sourceMappingURL=chunk-
|
|
7918
|
-
//# sourceMappingURL=chunk-
|
|
7984
|
+
//# sourceMappingURL=chunk-I7HGX4ZE.js.map
|
|
7985
|
+
//# sourceMappingURL=chunk-I7HGX4ZE.js.map
|