@skaile/workspaces 0.52.0 → 1.0.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 +20 -0
- package/dist/{asset-feeds-OEGJ6NOF.js → asset-feeds-677S5NX7.js} +7 -7
- package/dist/{asset-feeds-OEGJ6NOF.js.map → asset-feeds-677S5NX7.js.map} +1 -1
- package/dist/asset-manager/index.js +5 -5
- package/dist/asset-manager/installer.js +4 -4
- package/dist/{chunk-6K4RVXAM.js → chunk-43JDPQJ4.js} +3 -3
- package/dist/{chunk-6K4RVXAM.js.map → chunk-43JDPQJ4.js.map} +1 -1
- package/dist/{chunk-EOINYN5T.js → chunk-DW5MIJK3.js} +3 -3
- package/dist/{chunk-EOINYN5T.js.map → chunk-DW5MIJK3.js.map} +1 -1
- package/dist/{chunk-VE2UIJ7Y.js → chunk-EXNTTJGP.js} +3 -43
- package/dist/chunk-EXNTTJGP.js.map +1 -0
- package/dist/{chunk-7ZWLZ5H3.js → chunk-FLRHP3UC.js} +3 -3
- package/dist/{chunk-7ZWLZ5H3.js.map → chunk-FLRHP3UC.js.map} +1 -1
- package/dist/{chunk-MGB657EG.js → chunk-K5JIAHDV.js} +16 -7
- package/dist/chunk-K5JIAHDV.js.map +1 -0
- package/dist/{chunk-3IHBGDCG.js → chunk-KSISPZV3.js} +2 -2
- package/dist/{chunk-3IHBGDCG.js.map → chunk-KSISPZV3.js.map} +1 -1
- package/dist/{chunk-WD2NRI3T.js → chunk-PLQVAEM2.js} +2 -2
- package/dist/{chunk-WD2NRI3T.js.map → chunk-PLQVAEM2.js.map} +1 -1
- package/dist/{chunk-TCNYSHPM.js → chunk-SFVEHSCI.js} +4 -4
- package/dist/{chunk-TCNYSHPM.js.map → chunk-SFVEHSCI.js.map} +1 -1
- package/dist/{chunk-QLLFCQU5.js → chunk-WSQ5J7CE.js} +403 -1469
- package/dist/chunk-WSQ5J7CE.js.map +1 -0
- package/dist/{chunk-BXC5547R.js → chunk-XD7GYMAU.js} +3 -3
- package/dist/{chunk-BXC5547R.js.map → chunk-XD7GYMAU.js.map} +1 -1
- package/dist/cli/index.js +30 -32
- package/dist/cli/index.js.map +1 -1
- package/dist/connectors/config.js +4 -4
- package/dist/connectors/index.js +5 -7
- package/dist/connectors/src/config.d.ts +1 -74
- package/dist/connectors/src/config.d.ts.map +1 -1
- package/dist/connectors/src/connector-manager.d.ts +13 -137
- package/dist/connectors/src/connector-manager.d.ts.map +1 -1
- package/dist/connectors/src/connector-types.d.ts +3 -25
- package/dist/connectors/src/connector-types.d.ts.map +1 -1
- package/dist/connectors/src/fleet-utils.d.ts +2 -30
- package/dist/connectors/src/fleet-utils.d.ts.map +1 -1
- package/dist/connectors/src/fs-utils.d.ts +1 -2
- package/dist/connectors/src/fs-utils.d.ts.map +1 -1
- package/dist/connectors/src/index.d.ts +2 -12
- package/dist/connectors/src/index.d.ts.map +1 -1
- package/dist/connectors/src/watcher.d.ts +1 -5
- package/dist/connectors/src/watcher.d.ts.map +1 -1
- package/dist/core/index.js +3 -3
- package/dist/deploy/index.js +3 -3
- package/dist/{ensure-sources-GJOXWVWO.js → ensure-sources-OCMHK7LT.js} +5 -5
- package/dist/{ensure-sources-GJOXWVWO.js.map → ensure-sources-OCMHK7LT.js.map} +1 -1
- package/dist/factory-assets/connectors/deploy.js +5 -7
- package/dist/factory-assets/connectors/devserver.js +5 -7
- package/dist/factory-assets/connectors/flow/adapter.js +5 -7
- package/dist/factory-assets/connectors/flow/engine.js +3 -3
- package/dist/factory-assets/connectors/flow/run-flow.js +6 -8
- package/dist/factory-assets/connectors/flow.js +5 -7
- package/dist/factory-assets/connectors/git.js +5 -7
- package/dist/factory-assets/connectors/gmail.js +5 -7
- package/dist/factory-assets/connectors/googledrive/CONNECTOR.md +14 -128
- package/dist/factory-assets/connectors/googledrive/driver.d.ts +6 -13
- package/dist/factory-assets/connectors/googledrive/driver.d.ts.map +1 -1
- package/dist/factory-assets/connectors/googledrive.js +5 -7
- package/dist/factory-assets/connectors/local.js +5 -7
- package/dist/factory-assets/connectors/mattermost.js +5 -7
- package/dist/factory-assets/connectors/memory.js +5 -7
- package/dist/factory-assets/connectors/minio.js +5 -7
- package/dist/factory-assets/connectors/postgres.js +5 -7
- package/dist/factory-assets/connectors/s3.js +5 -7
- package/dist/factory-assets/connectors/sharepoint/CONNECTOR.md +13 -159
- package/dist/factory-assets/connectors/sharepoint/driver.d.ts +6 -12
- package/dist/factory-assets/connectors/sharepoint/driver.d.ts.map +1 -1
- package/dist/factory-assets/connectors/sharepoint.js +5 -7
- package/dist/factory-assets/connectors/sqlite.js +5 -7
- package/dist/factory-assets/connectors/static-server.js +5 -7
- package/dist/factory-assets/connectors/tunnel.js +5 -7
- package/dist/factory-assets/connectors/webdav/CONNECTOR.md +13 -118
- package/dist/factory-assets/connectors/webdav/driver.d.ts +6 -15
- package/dist/factory-assets/connectors/webdav/driver.d.ts.map +1 -1
- package/dist/factory-assets/connectors/webdav.js +5 -7
- package/dist/factory-assets/connectors/xstate-store.js +5 -7
- package/dist/factory-assets/connectors/xstate.js +5 -7
- package/dist/{flows-AGPIE6JM.js → flows-36PZESON.js} +4 -4
- package/dist/{flows-AGPIE6JM.js.map → flows-36PZESON.js.map} +1 -1
- package/dist/library/index.js +4 -4
- package/dist/library/install.js +3 -3
- package/dist/{open-library-ERKRGH4B.js → open-library-WRFYABFP.js} +7 -7
- package/dist/{open-library-ERKRGH4B.js.map → open-library-WRFYABFP.js.map} +1 -1
- package/dist/{paths-D6RUQ522.js → paths-EUNVMONC.js} +5 -5
- package/dist/{paths-D6RUQ522.js.map → paths-EUNVMONC.js.map} +1 -1
- package/dist/{plugin-store-SGNJTBYS.js → plugin-store-35KIMX6W.js} +5 -5
- package/dist/{plugin-store-SGNJTBYS.js.map → plugin-store-35KIMX6W.js.map} +1 -1
- package/dist/runner/index.js +7 -9
- package/dist/runner/src/serve.d.ts +6 -4
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +5 -5
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/flow.js +3 -3
- package/dist/sdk/index.js +7 -9
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runner.js +7 -9
- package/dist/{setup-IV2JFW3T.js → setup-HM6HATAC.js} +5 -5
- package/dist/{setup-IV2JFW3T.js.map → setup-HM6HATAC.js.map} +1 -1
- package/dist/{source-FGOMQMZT.js → source-EZ5Y3CKP.js} +8 -8
- package/dist/{source-FGOMQMZT.js.map → source-EZ5Y3CKP.js.map} +1 -1
- package/dist/{store-client-GJT2XQ5Z.js → store-client-BUUF7BPK.js} +5 -5
- package/dist/{store-client-GJT2XQ5Z.js.map → store-client-BUUF7BPK.js.map} +1 -1
- package/dist/tui/index.js +7 -9
- package/dist/tui/index.js.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +3 -3
- package/dist/workspace-plugin/adapters/omp.js +3 -3
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +1 -13
- package/dist/chunk-MGB657EG.js.map +0 -1
- package/dist/chunk-OVRSNIKJ.js +0 -72
- package/dist/chunk-OVRSNIKJ.js.map +0 -1
- package/dist/chunk-QLLFCQU5.js.map +0 -1
- package/dist/chunk-RAIRWFAN.js +0 -843
- package/dist/chunk-RAIRWFAN.js.map +0 -1
- package/dist/chunk-VE2UIJ7Y.js.map +0 -1
- package/dist/connectors/rclone-config.d.ts +0 -2
- package/dist/connectors/rclone-config.js +0 -4
- package/dist/connectors/rclone-config.js.map +0 -1
- package/dist/connectors/rclone.d.ts +0 -2
- package/dist/connectors/rclone.js +0 -5
- package/dist/connectors/rclone.js.map +0 -1
- package/dist/connectors/src/fleet-health-gate.d.ts +0 -105
- package/dist/connectors/src/fleet-health-gate.d.ts.map +0 -1
- package/dist/connectors/src/mount-placeholder.d.ts +0 -131
- package/dist/connectors/src/mount-placeholder.d.ts.map +0 -1
- package/dist/connectors/src/rclone-config/googledrive.d.ts +0 -59
- package/dist/connectors/src/rclone-config/googledrive.d.ts.map +0 -1
- package/dist/connectors/src/rclone-config/index.d.ts +0 -9
- package/dist/connectors/src/rclone-config/index.d.ts.map +0 -1
- package/dist/connectors/src/rclone-config/onedrive.d.ts +0 -48
- package/dist/connectors/src/rclone-config/onedrive.d.ts.map +0 -1
- package/dist/connectors/src/rclone-config/sanitize.d.ts +0 -9
- package/dist/connectors/src/rclone-config/sanitize.d.ts.map +0 -1
- package/dist/connectors/src/rclone-config/webdav.d.ts +0 -50
- package/dist/connectors/src/rclone-config/webdav.d.ts.map +0 -1
- package/dist/connectors/src/rclone-process-manager.d.ts +0 -316
- package/dist/connectors/src/rclone-process-manager.d.ts.map +0 -1
- package/dist/connectors/src/rclone-token-refresh.d.ts +0 -84
- package/dist/connectors/src/rclone-token-refresh.d.ts.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { LegacyAuthGrammarError,
|
|
1
|
+
export { LegacyAuthGrammarError, createCliSecretProviderChain, createForgeSecretProviderChain, loadConnectorDeclarations, resolveAuthRef, resolveBackendAuthFor } from '../chunk-EXNTTJGP.js';
|
|
2
2
|
import '../chunk-3KPNDTMR.js';
|
|
3
|
-
import '../chunk-ZAP2BDHG.js';
|
|
4
3
|
import '../chunk-W53D5Q52.js';
|
|
4
|
+
import '../chunk-F3HNW354.js';
|
|
5
|
+
import '../chunk-K5GBV4SA.js';
|
|
6
|
+
import '../chunk-ZAP2BDHG.js';
|
|
5
7
|
import '../chunk-NXC6IEL4.js';
|
|
6
8
|
import '../chunk-DZCK7GRW.js';
|
|
7
9
|
import '../chunk-BQCGFPHW.js';
|
|
8
10
|
import '../chunk-GEEW6SY2.js';
|
|
9
|
-
import '../chunk-F3HNW354.js';
|
|
10
11
|
import '../chunk-MENCWIHW.js';
|
|
11
|
-
import '../chunk-K5GBV4SA.js';
|
|
12
12
|
import '../chunk-JB35MVBN.js';
|
|
13
13
|
import '../chunk-NSBPE2FW.js';
|
|
14
14
|
//# sourceMappingURL=config.js.map
|
package/dist/connectors/index.js
CHANGED
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError,
|
|
2
|
-
export {
|
|
3
|
-
export { EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, MountTokenMediatorError, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, deriveSingleMaterializedConnectorDeclaration, fromMaterializedConnectorMd, loadConnectorDeclarations, loadMaterializedConnectorDeclarations, resolveAuthRef, resolveBackendAuthFor, resolveMountCredential, resolveMountCredentialString } from '../chunk-VE2UIJ7Y.js';
|
|
4
|
-
export { PortPool, RcloneProcessManager, createFsWatcher, ensureDirMode, fetchAuthoritativeSize } from '../chunk-RAIRWFAN.js';
|
|
1
|
+
export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, PortPool, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, createFsWatcher, createWorktree, defaultSpawn, ensureDirMode, ensureFleetMounted, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, removeMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock } from '../chunk-WSQ5J7CE.js';
|
|
2
|
+
export { EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, deriveSingleMaterializedConnectorDeclaration, fromMaterializedConnectorMd, loadConnectorDeclarations, loadMaterializedConnectorDeclarations, resolveAuthRef, resolveBackendAuthFor } from '../chunk-EXNTTJGP.js';
|
|
5
3
|
import '../chunk-6E6PKKAD.js';
|
|
6
4
|
import '../chunk-SKADPHAM.js';
|
|
7
5
|
import '../chunk-DEYYRFQU.js';
|
|
8
6
|
import '../chunk-IFGTRL2I.js';
|
|
9
7
|
import '../chunk-3KPNDTMR.js';
|
|
10
|
-
import '../chunk-ZAP2BDHG.js';
|
|
11
8
|
import '../chunk-W53D5Q52.js';
|
|
9
|
+
import '../chunk-F3HNW354.js';
|
|
10
|
+
import '../chunk-K5GBV4SA.js';
|
|
11
|
+
import '../chunk-ZAP2BDHG.js';
|
|
12
12
|
import '../chunk-NXC6IEL4.js';
|
|
13
13
|
import '../chunk-DZCK7GRW.js';
|
|
14
14
|
import '../chunk-BQCGFPHW.js';
|
|
15
15
|
import '../chunk-GEEW6SY2.js';
|
|
16
|
-
import '../chunk-F3HNW354.js';
|
|
17
16
|
import '../chunk-MENCWIHW.js';
|
|
18
|
-
import '../chunk-K5GBV4SA.js';
|
|
19
17
|
import '../chunk-JB35MVBN.js';
|
|
20
18
|
import '../chunk-NSBPE2FW.js';
|
|
21
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Filesystem-projected backends must be declared under `connectors:` with a
|
|
6
6
|
* `mount:` sub-block. See `docs/migration-mounts-to-connectors.md`.
|
|
7
7
|
*/
|
|
8
|
-
import type { ConnectorDeclaration
|
|
8
|
+
import type { ConnectorDeclaration } from "./connector-types.js";
|
|
9
9
|
/**
|
|
10
10
|
* Read `skaile.yaml` in `projectDir` and return all declared connectors as `ConnectorDeclaration[]`.
|
|
11
11
|
*
|
|
@@ -114,77 +114,4 @@ export declare function resolveBackendAuthFor(kind: "mount" | "connector", id: s
|
|
|
114
114
|
* @docLink packages/connectors/api-reference#resolve-auth-ref
|
|
115
115
|
*/
|
|
116
116
|
export declare function resolveAuthRef(auth: string | undefined, mountId?: string): MountAuthRef | undefined;
|
|
117
|
-
/**
|
|
118
|
-
* Thrown when the backend credential mediator refuses or cannot deliver a
|
|
119
|
-
* mount credential for an `auth: backend` rclone connector. Carries the
|
|
120
|
-
* wire-format error code so callers can branch on it. Mirrors the git driver's
|
|
121
|
-
* `TokenMediatorError`, but lives here so all three rclone drivers share it.
|
|
122
|
-
*
|
|
123
|
-
* @docLink packages/connectors/api-reference#mount-token-mediator-error
|
|
124
|
-
*/
|
|
125
|
-
export declare class MountTokenMediatorError extends Error {
|
|
126
|
-
readonly code: Extract<TokenMediatorResult, {
|
|
127
|
-
ok: false;
|
|
128
|
-
}>["code"];
|
|
129
|
-
readonly connectorId: string;
|
|
130
|
-
constructor(message: string, code: Extract<TokenMediatorResult, {
|
|
131
|
-
ok: false;
|
|
132
|
-
}>["code"], connectorId: string);
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Resolve the credential *string* an rclone mount driver feeds into its
|
|
136
|
-
* `parseAuthBlob` / `parseAuth` helper.
|
|
137
|
-
*
|
|
138
|
-
* Two cases, branched on `declaration.auth`:
|
|
139
|
-
* - `backend` → the credential is minted by the platform mediator. Calls
|
|
140
|
-
* `tokenMediator({connectorId, reason: 'initial'})` and returns
|
|
141
|
-
* the result's `token` string verbatim (already a JSON blob for
|
|
142
|
-
* sharepoint/googledrive, or a `user:pass`/bearer string for
|
|
143
|
-
* webdav). Throws `MountTokenMediatorError` when the mediator
|
|
144
|
-
* refuses, or a plain `Error` when no mediator is wired (the
|
|
145
|
-
* standalone CLI has none — `env:`/inline auth is the path there).
|
|
146
|
-
* - anything else (`env:NAME`, inline, undefined) → resolves through the
|
|
147
|
-
* secrets chain (or a direct `env:`/literal lookup when no chain
|
|
148
|
-
* is wired) and NEVER touches the mediator.
|
|
149
|
-
*
|
|
150
|
-
* For `auth: backend` the mediator also surfaces the access token's expiry,
|
|
151
|
-
* which the rclone drivers use to arm a proactive refresh tick (the
|
|
152
|
-
* client_secret is stripped from Skaile-managed Entra blobs, so rclone cannot
|
|
153
|
-
* self-refresh) — see {@link resolveMountCredential}.
|
|
154
|
-
*
|
|
155
|
-
* @param declaration - The connector declaration (supplies `auth` + `id`).
|
|
156
|
-
* @param secrets - Secrets chain for the legacy `env:`/inline path.
|
|
157
|
-
* @param tokenMediator - Backend mediator, present only for platform sessions.
|
|
158
|
-
* @returns The credential string, or `undefined` when no auth is declared.
|
|
159
|
-
* @throws {MountTokenMediatorError} when the mediator refuses an `auth: backend` mint.
|
|
160
|
-
* @docLink packages/connectors/api-reference#resolve-mount-credential-string
|
|
161
|
-
*/
|
|
162
|
-
export declare function resolveMountCredentialString(declaration: ConnectorDeclaration, secrets: import("./secrets.js").SecretProvider | undefined, tokenMediator: TokenMediator | undefined): Promise<string | undefined>;
|
|
163
|
-
/**
|
|
164
|
-
* The credential string an rclone mount driver feeds into `parseAuthBlob` /
|
|
165
|
-
* `parseAuth`, paired with the access token's ISO expiry (`null` for static
|
|
166
|
-
* credentials / the legacy env path).
|
|
167
|
-
*/
|
|
168
|
-
export interface ResolvedMountCredential {
|
|
169
|
-
/** The credential string, or `undefined` when no auth is declared. */
|
|
170
|
-
token: string | undefined;
|
|
171
|
-
/** ISO-8601 expiry of the access token, or `null` if unknown / static. */
|
|
172
|
-
expiresAt: string | null;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Resolve a mount credential together with its expiry. The richer companion of
|
|
176
|
-
* {@link resolveMountCredentialString}: rclone drivers use the returned
|
|
177
|
-
* `expiresAt` to arm a proactive token-refresh tick, and re-call this with
|
|
178
|
-
* `reason: 'refresh'` (or `'retry-401'` on the reactive path) to re-mint.
|
|
179
|
-
*
|
|
180
|
-
* Branches on `declaration.auth` exactly like `resolveMountCredentialString`:
|
|
181
|
-
* `backend` mints through the mediator (and fails closed on refusal / empty
|
|
182
|
-
* token); everything else resolves through the secrets chain (or a direct
|
|
183
|
-
* `env:`/literal lookup when no chain is wired) with a `null` expiry and never
|
|
184
|
-
* touches the mediator.
|
|
185
|
-
*
|
|
186
|
-
* @throws {MountTokenMediatorError} when the mediator refuses an `auth: backend` mint.
|
|
187
|
-
* @docLink packages/connectors/api-reference#resolve-mount-credential
|
|
188
|
-
*/
|
|
189
|
-
export declare function resolveMountCredential(declaration: ConnectorDeclaration, secrets: import("./secrets.js").SecretProvider | undefined, tokenMediator: TokenMediator | undefined, reason?: "initial" | "refresh" | "retry-401"): Promise<ResolvedMountCredential>;
|
|
190
117
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../connectors/src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../connectors/src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKjE;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,EAAE,CA8BpF;AA4BD,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAA6C,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE9F;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,mBAAmB,EAClC,cAAc,GAAE,cAAc,EAAO,GACpC,mBAAmB,CAErB;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACxC,mBAAmB,CAMrB;AAID;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAY3C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,GAAG,WAAW,EAC3B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,cAAc,EAAE,cAAc,GAAG,SAAS,GACvD,MAAM,GAAG,SAAS,CAGpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,YAAY,GAAG,SAAS,CAa1B"}
|
|
@@ -10,9 +10,7 @@ import type { CatalogEntry } from "@skaile/workspaces/core";
|
|
|
10
10
|
import type { TelemetryProvider, Trace } from "@skaile/workspaces/telemetry";
|
|
11
11
|
import type { ConnectorStatusEvent } from "@skaile/workspaces/types";
|
|
12
12
|
import type { Connector, ConnectorChangeEvent, ConnectorDeclaration, ConnectorHandle, ConnectorStartupReport, RuntimeSkillDescriptor, TokenMediator } from "./connector-types.js";
|
|
13
|
-
import {
|
|
14
|
-
import { type FleetHealthVerdict } from "./fleet-utils.js";
|
|
15
|
-
import { type MountPlaceholderBarrier } from "./mount-placeholder.js";
|
|
13
|
+
import type { FleetHealthVerdict } from "./fleet-utils.js";
|
|
16
14
|
import type { PreMintedSecretProvider, SecretProvider, SecretProviderChain } from "./secrets.js";
|
|
17
15
|
import type { ConnectorContent, ConnectorEntry, ListOptions, OperationDescriptor, SearchOptions, SearchResult, SyncOptions, SyncResult, WatchHandle, WatchOptions } from "./shared-types.js";
|
|
18
16
|
/**
|
|
@@ -23,20 +21,6 @@ interface ActiveConnector {
|
|
|
23
21
|
handle: ConnectorHandle;
|
|
24
22
|
declaration: ConnectorDeclaration;
|
|
25
23
|
watchHandle?: WatchHandle;
|
|
26
|
-
/**
|
|
27
|
-
* Set for a deferred remote mount that has a read-only placeholder barrier at
|
|
28
|
-
* this path. The barrier is removed (after the rclone mount above it is gone)
|
|
29
|
-
* when the connector is disconnected.
|
|
30
|
-
*/
|
|
31
|
-
placeholderTarget?: string;
|
|
32
|
-
/**
|
|
33
|
-
* Set for a fleet-managed deferred mount. Unlike `placeholderTarget` (a static
|
|
34
|
-
* boot-time barrier), this gate dynamically establishes/removes the barrier as
|
|
35
|
-
* the fleet mount's health flips — closing the window where a wedged fleet
|
|
36
|
-
* mount stays writable. Removed on teardown after the connector is gone.
|
|
37
|
-
*/
|
|
38
|
-
fleetHealthTarget?: string;
|
|
39
|
-
fleetHealthGate?: FleetHealthGate;
|
|
40
24
|
}
|
|
41
25
|
interface LifecycleResult {
|
|
42
26
|
id: string;
|
|
@@ -49,14 +33,6 @@ export interface SyncConnectorResult {
|
|
|
49
33
|
ok: boolean;
|
|
50
34
|
error?: string;
|
|
51
35
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Resolve the local fleet-health probe interval from `SKAILE_FLEET_HEALTH_POLL_MS`.
|
|
54
|
-
* A finite non-negative number is honoured (`0` disables the probe). Anything
|
|
55
|
-
* unparseable (`Number("disabled") → NaN`) or negative falls back to the default,
|
|
56
|
-
* so an invalid value never produces a `NaN` interval — `setInterval(fn, NaN)` is
|
|
57
|
-
* treated as `setInterval(fn, 0)` and would saturate the event loop.
|
|
58
|
-
*/
|
|
59
|
-
export declare function parseFleetHealthPollMs(raw?: string | undefined): number;
|
|
60
36
|
/**
|
|
61
37
|
* Options for the unified `ConnectorManager`. Pass as the second argument to the constructor.
|
|
62
38
|
*
|
|
@@ -96,25 +72,11 @@ export interface ConnectorManagerOptions {
|
|
|
96
72
|
telemetry?: TelemetryProvider;
|
|
97
73
|
/** Optional active trace to attach connector spans to. */
|
|
98
74
|
trace?: Trace;
|
|
99
|
-
/**
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
* tests inject a hermetic implementation. See `mount-placeholder.ts`.
|
|
103
|
-
*/
|
|
104
|
-
placeholderBarrier?: MountPlaceholderBarrier;
|
|
105
|
-
/**
|
|
106
|
-
* Local fleet-health poll interval (ms) for the read-only health gate on
|
|
107
|
-
* fleet-managed mounts. `0` disables the local probe (health is then driven
|
|
108
|
-
* solely by `reportFleetHealth` / the platform signal). Defaults to the
|
|
109
|
-
* `SKAILE_FLEET_HEALTH_POLL_MS` env var, else 5000. Tests pass a small value
|
|
110
|
-
* (or 0 + manual `reportFleetHealth`) to stay hermetic.
|
|
111
|
-
*/
|
|
75
|
+
/** Deprecated no-op option kept so older callers can pass it during migration. */
|
|
76
|
+
placeholderBarrier?: unknown;
|
|
77
|
+
/** Deprecated no-op option kept so older callers can pass it during migration. */
|
|
112
78
|
fleetHealthPollMs?: number;
|
|
113
|
-
/**
|
|
114
|
-
* Detects host-mount RECOVERY under an opaque placeholder so the local poll can
|
|
115
|
-
* lift the gate edge-triggered. Defaults to the `/proc/self/mounts` reader;
|
|
116
|
-
* tests inject a hermetic stub (the real reader can't be faked in a sandbox).
|
|
117
|
-
*/
|
|
79
|
+
/** Deprecated no-op option kept so older callers can pass it during migration. */
|
|
118
80
|
fleetMountRecoveryProbe?: (target: string) => Promise<boolean>;
|
|
119
81
|
}
|
|
120
82
|
/**
|
|
@@ -137,20 +99,9 @@ export declare class ConnectorManager {
|
|
|
137
99
|
private readonly catalogEntries;
|
|
138
100
|
private readonly tokenMediator?;
|
|
139
101
|
private readonly preMintedSecrets?;
|
|
140
|
-
private readonly placeholderBarrier;
|
|
141
102
|
private readonly mgrLog;
|
|
142
|
-
/** Set once `disconnectAll()` starts, so in-flight deferred mounts bail. */
|
|
143
|
-
private disposed;
|
|
144
103
|
/** Aborted on dispose; threaded into every `connect()` via `ctx.abortSignal`. */
|
|
145
104
|
private readonly disposeController;
|
|
146
|
-
/** Tracks the background task driving deferred (rclone-backed) mounts. */
|
|
147
|
-
private deferredConnect?;
|
|
148
|
-
/** Periodic local fleet-health probe; runs only while a fleet gate is active. */
|
|
149
|
-
private fleetHealthTimer?;
|
|
150
|
-
/** Local fleet-health poll interval (ms). 0 disables the local probe. */
|
|
151
|
-
private readonly fleetHealthPollMs;
|
|
152
|
-
/** Host-mount recovery detector under an opaque placeholder (injectable for tests). */
|
|
153
|
-
private readonly fleetMountRecoveryProbe;
|
|
154
105
|
/**
|
|
155
106
|
* @param workspaceDir - Absolute (or relative) working directory. Filesystem-face
|
|
156
107
|
* connectors mount into `<workspaceDir>/.mounts/<id>/` by default.
|
|
@@ -211,21 +162,13 @@ export declare class ConnectorManager {
|
|
|
211
162
|
* connector with a `mount` config failed → throws `ConnectorStartupError`
|
|
212
163
|
* (fail-fast lifecycle semantics for mountable connectors).
|
|
213
164
|
*
|
|
214
|
-
* When `options.deferMounts` is set, connectors whose filesystem face is
|
|
215
|
-
* marked `deferMount` (rclone-backed FUSE mounts) are NOT awaited here:
|
|
216
|
-
* their target is pre-registered (so the mount path renders in the system
|
|
217
|
-
* prompt immediately) and the actual mount is driven on a background task.
|
|
218
|
-
* The returned report therefore covers only the eagerly-connected set, so a
|
|
219
|
-
* slow remote can never gate whatever the caller does next (e.g. emitting
|
|
220
|
-
* `session_init_ack`). Deferred connectors surface their progress through
|
|
221
|
-
* `onStatusChange` (connecting → connected | error).
|
|
222
|
-
*
|
|
223
165
|
* @param declarations - Connector declarations from `skaile.yaml`.
|
|
224
166
|
* @param options.failOnReadWriteError - Throw `ConnectorStartupError` if any
|
|
225
167
|
* read-write connector fails. Read-only failures are always tolerated.
|
|
226
168
|
* Only the eager set is considered — deferred mounts never throw.
|
|
227
|
-
* @param options.deferMounts -
|
|
228
|
-
*
|
|
169
|
+
* @param options.deferMounts - Deprecated compatibility option. Cloud
|
|
170
|
+
* connectors now require already-live host fleet bind mounts and connect
|
|
171
|
+
* synchronously.
|
|
229
172
|
*/
|
|
230
173
|
connectAll(declarations: ConnectorDeclaration[], options?: {
|
|
231
174
|
failOnReadWriteError?: boolean;
|
|
@@ -234,79 +177,16 @@ export declare class ConnectorManager {
|
|
|
234
177
|
/**
|
|
235
178
|
* Connect a single declaration, emitting `connecting` → `connected | error`.
|
|
236
179
|
* Never throws — failures are recorded in the returned result so `connectAll`
|
|
237
|
-
* can keep going.
|
|
180
|
+
* can keep going.
|
|
238
181
|
*/
|
|
239
182
|
private attemptConnect;
|
|
240
183
|
/**
|
|
241
|
-
*
|
|
242
|
-
*
|
|
243
|
-
* prompt before the background mount completes.
|
|
244
|
-
*
|
|
245
|
-
* Before exposing the target, a read-only barrier is established so the agent
|
|
246
|
-
* cannot write a phantom workspace into a not-yet-mounted remote.
|
|
247
|
-
*
|
|
248
|
-
* Fleet-managed mounts skip the *static* boot-time barrier (the host already
|
|
249
|
-
* bound the live share at the target — a static barrier would shadow real
|
|
250
|
-
* content) but instead get a *dynamic* health gate: while the host fleet rclone
|
|
251
|
-
* is healthy the target stays writable exactly as before; when it wedges, the
|
|
252
|
-
* gate establishes the same read-only barrier until the mount recovers.
|
|
253
|
-
*/
|
|
254
|
-
private preRegisterDeferred;
|
|
255
|
-
/**
|
|
256
|
-
* Start the periodic local fleet-health probe if it is not already running and
|
|
257
|
-
* the poll interval is enabled. Each tick probes every fleet target and feeds
|
|
258
|
-
* the verdict to its gate (hysteresis lives in the gate). The probe catches both
|
|
259
|
-
* directly-detectable failures (EIO / dead bind) AND host-mount recovery while a
|
|
260
|
-
* placeholder is up; silent degradation is covered by the platform signal via
|
|
261
|
-
* `reportFleetHealth`.
|
|
184
|
+
* Compatibility no-op for the removed in-container fleet health gate. Host
|
|
185
|
+
* fleet-managed cloud mounts are verified at connect time by their drivers.
|
|
262
186
|
*/
|
|
263
|
-
|
|
264
|
-
private runFleetHealthProbe;
|
|
187
|
+
reportFleetHealth(_connectorId: string, _verdict: FleetHealthVerdict): Promise<void>;
|
|
265
188
|
/**
|
|
266
|
-
*
|
|
267
|
-
* edge-triggered (no restart). Over an opaque mask a stat/readdir reads the 0555
|
|
268
|
-
* mask and falsely reads healthy, so recovery is detected via the mount table;
|
|
269
|
-
* non-opaque surfaces hold their current surface until the platform signal lifts.
|
|
270
|
-
* Rationale: `_devlog/notes/2026-06-17-fleet-gate-edge-triggered-recovery.md`.
|
|
271
|
-
*/
|
|
272
|
-
private probeGatedRecovery;
|
|
273
|
-
/**
|
|
274
|
-
* Feed an externally-derived fleet-health verdict for a connector into its gate.
|
|
275
|
-
*
|
|
276
|
-
* This is the consume side of the platform fleet-health signal: the host fleet
|
|
277
|
-
* health poll knows `core/stats.errors` and can detect a *silently-empty-but-
|
|
278
|
-
* writable* degraded mount that the local probe cannot. The runner watches the
|
|
279
|
-
* `<workspace>/.skaile/fleet-health/<connectorId>` flag and forwards its verdict
|
|
280
|
-
* here. Unknown / non-fleet ids are ignored.
|
|
281
|
-
*
|
|
282
|
-
* The verdict drives the gate across three surfaces (writable / read-only-
|
|
283
|
-
* readable / masked): `healthy` lifts any barrier, `degraded` downgrades to a
|
|
284
|
-
* read-only surface that keeps the live content visible, `error` keeps the
|
|
285
|
-
* opaque mask.
|
|
286
|
-
*
|
|
287
|
-
* A deferred remote mount may have been brought up with the *static* boot-time
|
|
288
|
-
* barrier (it was not fleet-managed at connect — e.g. the host bind landed
|
|
289
|
-
* late, after `connectAll` placed the not-ready barrier). When a fleet verdict
|
|
290
|
-
* later arrives for such a connector, a gate is created lazily over that same
|
|
291
|
-
* barrier (seeded `masked`, matching the static barrier already in place) so the
|
|
292
|
-
* authoritative platform signal can lift or downgrade it — otherwise a late-
|
|
293
|
-
* arriving live mount stays masked forever even after it goes healthy.
|
|
294
|
-
*/
|
|
295
|
-
reportFleetHealth(connectorId: string, verdict: FleetHealthVerdict): Promise<void>;
|
|
296
|
-
/** Drive all deferred mounts concurrently; resolves when every one settles. */
|
|
297
|
-
private connectDeferred;
|
|
298
|
-
/**
|
|
299
|
-
* Background-connect one deferred mount. On success `attemptConnect` swaps the
|
|
300
|
-
* provisional entry for the real handle; on failure the provisional entry is
|
|
301
|
-
* marked `error` so the mount path keeps rendering as "still syncing". If the
|
|
302
|
-
* manager was disposed mid-flight, the connector that came up is torn down
|
|
303
|
-
* immediately so no rclone process leaks.
|
|
304
|
-
*/
|
|
305
|
-
private connectDeferredOne;
|
|
306
|
-
/**
|
|
307
|
-
* Resolve once every background (deferred) mount started by `connectAll` has
|
|
308
|
-
* settled. Resolves immediately when none are in flight. Useful for tests and
|
|
309
|
-
* for callers that want to await full readiness.
|
|
189
|
+
* Compatibility no-op for the removed deferred rclone mount path.
|
|
310
190
|
*/
|
|
311
191
|
whenDeferredMountsSettled(): Promise<void>;
|
|
312
192
|
/** Disconnect all connectors and stop all watchers. Best-effort — ignores disconnect errors. */
|
|
@@ -315,10 +195,6 @@ export declare class ConnectorManager {
|
|
|
315
195
|
* Connect a single connector (hot-plug). Resolves fields and allocates
|
|
316
196
|
* mount target if the connector has a filesystem face.
|
|
317
197
|
*
|
|
318
|
-
* This path connects immediately and does NOT establish the read-only
|
|
319
|
-
* deferred-mount barrier — bring `deferMount` (rclone-backed) connectors up
|
|
320
|
-
* through `connectAll({ deferMounts: true })` so the not-ready guarantee holds.
|
|
321
|
-
*
|
|
322
198
|
* @returns The `ConnectorHandle` for subsequent operations.
|
|
323
199
|
*/
|
|
324
200
|
connect(declaration: ConnectorDeclaration): Promise<ConnectorHandle>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector-manager.d.ts","sourceRoot":"","sources":["../../../connectors/src/connector-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAU,MAAM,0BAA0B,CAAC;AAG7E,OAAO,KAAK,EAEV,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EAEpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,
|
|
1
|
+
{"version":3,"file":"connector-manager.d.ts","sourceRoot":"","sources":["../../../connectors/src/connector-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,22 +86,9 @@ export interface ConnectorHandle {
|
|
|
86
86
|
/** Adapter-specific state (connection pool, client, etc.). Opaque to callers. */
|
|
87
87
|
state: unknown;
|
|
88
88
|
}
|
|
89
|
-
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* against the authoritative remote byte size.
|
|
93
|
-
*
|
|
94
|
-
* rclone's VFS can serve a non-truncated cache item after a remote file is
|
|
95
|
-
* replaced by a *shorter* version — the read returns `[new bytes][leftover
|
|
96
|
-
* tail of the older, longer version]` and `statSync` reports the inflated size,
|
|
97
|
-
* so the on-disk length is not a signal the read path can trust. An
|
|
98
|
-
* implementation returns the true remote size for a mount-relative path by
|
|
99
|
-
* querying the backend directly (bypassing the VFS cache), or `null` when it
|
|
100
|
-
* can't be determined — in which case the read falls back to the on-disk bytes.
|
|
101
|
-
*
|
|
102
|
-
* The read path duck-types `handle.state` for this method; a connector opts in
|
|
103
|
-
* by attaching it. rclone-backed mounts (sharepoint / webdav / googledrive)
|
|
104
|
-
* wire it to `RcloneProcessManager.statSize`.
|
|
89
|
+
/** Optional capability a filesystem-face connector attaches to its handle state
|
|
90
|
+
* when reads need an authoritative remote byte size rather than trusting local
|
|
91
|
+
* filesystem metadata.
|
|
105
92
|
*/
|
|
106
93
|
export interface AuthoritativeSizeProvider {
|
|
107
94
|
authoritativeSize(relPath: string): Promise<number | null>;
|
|
@@ -307,15 +294,6 @@ export interface ConnectContext {
|
|
|
307
294
|
export interface FilesystemFace {
|
|
308
295
|
/** Pull latest remote state into the mounted directory. */
|
|
309
296
|
sync(handle: ConnectorHandle, options?: SyncOptions): Promise<SyncResult>;
|
|
310
|
-
/**
|
|
311
|
-
* Marks a slow filesystem mount that `ConnectorManager` brings up in the
|
|
312
|
-
* background instead of awaiting during `connectAll({ deferMounts: true })`.
|
|
313
|
-
* Set by rclone-backed FUSE connectors (sharepoint, webdav, googledrive)
|
|
314
|
-
* whose mount can take longer than the platform's session-init ack budget.
|
|
315
|
-
* Deferring keeps a slow or wedged remote from blocking session bootstrap —
|
|
316
|
-
* it degrades to "workspace still syncing" rather than a restart loop.
|
|
317
|
-
*/
|
|
318
|
-
readonly deferMount?: boolean;
|
|
319
297
|
}
|
|
320
298
|
/**
|
|
321
299
|
* Tool face — present ⇒ the connector exposes agent tools.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector-types.d.ts","sourceRoot":"","sources":["../../../connectors/src/connector-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC;IACnC,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,KAAK,CAAC,EAAE;QACN,6DAA6D;QAC7D,MAAM,EAAE,MAAM,CAAC;QACf,kEAAkE;QAClE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,8DAA8D;QAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,oEAAoE;QACpE,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,oDAAoD;QACpD,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAID;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC;IAC5C,kDAAkD;IAClD,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,cAAc,CAAC;IAC9D,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,KAAK,EAAE,OAAO,CAAC;CAChB;AAED
|
|
1
|
+
{"version":3,"file":"connector-types.d.ts","sourceRoot":"","sources":["../../../connectors/src/connector-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,36 +32,8 @@ export declare function ensureFleetMounted(dir: string, log: {
|
|
|
32
32
|
/**
|
|
33
33
|
* Health verdict for a fleet mount target.
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* errors, `core/stats.errors>0`). Read and write availability are independent,
|
|
38
|
-
* so the content stays visible read-only, not masked. Only the platform signal
|
|
39
|
-
* can detect this; the local probe never returns it.
|
|
40
|
-
* - `error` — not live / unreadable (EIO, dead bind) → opaque read-only mask.
|
|
35
|
+
* Kept so existing callers can keep typing `ConnectorManager.reportFleetHealth`
|
|
36
|
+
* while the method is a no-op in the package-side bind-consumer.
|
|
41
37
|
*/
|
|
42
38
|
export type FleetHealthVerdict = "healthy" | "degraded" | "error";
|
|
43
|
-
/**
|
|
44
|
-
* Locally probe a fleet mount target's health without any host signal.
|
|
45
|
-
*
|
|
46
|
-
* `stat` + `readdir` directly surface a wedged FUSE bind: `EIO`, `ENOTCONN`
|
|
47
|
-
* ("transport endpoint not connected" — the host rclone died after bind), or a
|
|
48
|
-
* non-directory target all read as `"error"`. This catches the directly-
|
|
49
|
-
* detectable degradation (the Getec / EIO case) entirely in-container.
|
|
50
|
-
*
|
|
51
|
-
* It does NOT catch a *silently-empty-but-writable* degraded mount — an empty
|
|
52
|
-
* `readdir` is indistinguishable from a legitimately empty workspace, so that
|
|
53
|
-
* case is left to the platform health signal (`reportFleetHealth`). A `"healthy"`
|
|
54
|
-
* verdict here therefore means only "readable", not "has content".
|
|
55
|
-
*/
|
|
56
|
-
export declare function probeFleetHealth(dir: string): Promise<FleetHealthVerdict>;
|
|
57
|
-
/**
|
|
58
|
-
* Detect a live underlying fleet mount at `dir` from the mount table — spots
|
|
59
|
-
* host-mount RECOVERY while an opaque read-only placeholder still masks the target.
|
|
60
|
-
* A stat/readdir reads the 0555 mask and falsely reads healthy, so the recovery
|
|
61
|
-
* edge is a non-tmpfs mount stacked at the mountpoint. `true` = recovered bind
|
|
62
|
-
* present; `false` = only the placeholder tmpfs/nothing, or an unreadable mount
|
|
63
|
-
* table (fail-closed: stay gated).
|
|
64
|
-
* Rationale: `_devlog/notes/2026-06-17-fleet-gate-edge-triggered-recovery.md`.
|
|
65
|
-
*/
|
|
66
|
-
export declare function probeFleetMountTablePresent(dir: string): Promise<boolean>;
|
|
67
39
|
//# sourceMappingURL=fleet-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-utils.d.ts","sourceRoot":"","sources":["../../../connectors/src/fleet-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"fleet-utils.d.ts","sourceRoot":"","sources":["../../../connectors/src/fleet-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAQ3D;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,EACnD,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC"}
|
|
@@ -8,8 +8,7 @@ import type { Logger } from "@skaile/workspaces/types";
|
|
|
8
8
|
* mkdir(recursive) + chmod 0o770 in one call. The post-mkdir `chmod` is the
|
|
9
9
|
* load-bearing piece: `mkdir(mode:)` is ANDed with the process umask
|
|
10
10
|
* (typically 022 → effective mode 0o750), which strips the group-write bit
|
|
11
|
-
*
|
|
12
|
-
* its vfs cache directory. Explicit `chmod` is umask-immune.
|
|
11
|
+
* expected by shared workspace mounts. Explicit `chmod` is umask-immune.
|
|
13
12
|
*
|
|
14
13
|
* EPERM on `chmod` is swallowed: when a foreign uid pre-created the
|
|
15
14
|
* directory (a stray uid-1000 process inside the container or a host-side
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../../../connectors/src/fs-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD
|
|
1
|
+
{"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../../../connectors/src/fs-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5E"}
|
|
@@ -16,8 +16,7 @@ export { AbstractConnector } from "./connector-base.js";
|
|
|
16
16
|
export type { FlowAdapterConnectOptions, FlowAdapterState, FlowAdapterStimulusBus, } from "@skaile/workspaces/factory-assets/connectors/flow";
|
|
17
17
|
export { FlowAdapter } from "@skaile/workspaces/factory-assets/connectors/flow";
|
|
18
18
|
export type { MountAuthKind, MountAuthRef } from "./config.js";
|
|
19
|
-
export { createCliSecretProviderChain, createForgeSecretProviderChain, LegacyAuthGrammarError, loadConnectorDeclarations,
|
|
20
|
-
export type { ResolvedMountCredential } from "./config.js";
|
|
19
|
+
export { createCliSecretProviderChain, createForgeSecretProviderChain, LegacyAuthGrammarError, loadConnectorDeclarations, resolveAuthRef, resolveBackendAuthFor, } from "./config.js";
|
|
21
20
|
export type { ConnectorManagerOptions, SyncConnectorResult } from "./connector-manager.js";
|
|
22
21
|
export { ConnectorManager } from "./connector-manager.js";
|
|
23
22
|
export type { ConnectorPromptOptions, ConnectorToolOptions } from "./connector-prompt.js";
|
|
@@ -27,24 +26,15 @@ export type { AuthoritativeSizeProvider, ConnectContext, Connector, ConnectorCha
|
|
|
27
26
|
export { ConnectorFieldMissingError, ConnectorStartupError } from "./connector-types.js";
|
|
28
27
|
export type { RenderHelperOpts } from "./credential-helper-script.js";
|
|
29
28
|
export { renderCredentialHelperScript } from "./credential-helper-script.js";
|
|
30
|
-
export type { FleetGateSurface, FleetHealthGateOptions } from "./fleet-health-gate.js";
|
|
31
|
-
export { FleetHealthGate } from "./fleet-health-gate.js";
|
|
32
29
|
export type { FleetHealthVerdict } from "./fleet-utils.js";
|
|
33
|
-
export { ensureFleetMounted, isFleetManaged
|
|
30
|
+
export { ensureFleetMounted, isFleetManaged } from "./fleet-utils.js";
|
|
34
31
|
export { ensureDirMode } from "./fs-utils.js";
|
|
35
32
|
export { LogBuffer } from "./log-buffer.js";
|
|
36
33
|
export type { AtomicReplaceCredentialOptions, RemoveMountBlockOptions, WriteMountBlockOptions, } from "./managed-gitconfig.js";
|
|
37
34
|
export { atomicReplaceCredential, ManagedGitconfigCollisionError, removeMountBlock, writeHelperScript, writeMountBlock, } from "./managed-gitconfig.js";
|
|
38
|
-
export type { CommandRunner, MountPlaceholderBarrier } from "./mount-placeholder.js";
|
|
39
|
-
export { defaultMountPlaceholderBarrier, NOT_READY_SENTINEL, RoMountPlaceholderBarrier, } from "./mount-placeholder.js";
|
|
40
35
|
export type { InstallOptions, InstallResult, SpawnFn, SpawnResult } from "./npm-installer.js";
|
|
41
36
|
export { defaultSpawn, findMissingPackages, installNpmPackages, isPackageResolvable, } from "./npm-installer.js";
|
|
42
37
|
export { PortPool } from "./port-pool.js";
|
|
43
|
-
export { type GoogleDriveScope, type RenderGoogleDriveConfigOptions, type RenderOneDriveConfigOptions, type RenderWebDAVConfigOptions, renderGoogleDriveConfig, renderOneDriveConfig, renderWebDAVConfig, type WebDAVVendor, } from "./rclone-config/index.js";
|
|
44
|
-
export type { RcloneHandle, RcloneLogRouteContext, RcloneSpawnConfig, } from "./rclone-process-manager.js";
|
|
45
|
-
export { fetchAuthoritativeSize, RcloneProcessManager } from "./rclone-process-manager.js";
|
|
46
|
-
export type { RcloneReconfigurable, RcloneTokenRefreshController, RcloneTokenRefreshDeps, } from "./rclone-token-refresh.js";
|
|
47
|
-
export { createRcloneTokenRefresh, DEFAULT_REACTIVE_COOLDOWN_MS, PROACTIVE_RCLONE_REFRESH_MARGIN_MS, } from "./rclone-token-refresh.js";
|
|
48
38
|
export type { OAuthFlowRequest, OAuthSecretProvider, OAuthTokenBundle, PreMintedCredential, ProvisionableSecretProvider, SecretProvider, } from "./secrets.js";
|
|
49
39
|
export { EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, } from "./secrets.js";
|
|
50
40
|
export type { ArgumentDescriptor, ConnectorContent, ConnectorEntry, ListOptions, SearchOptions, SearchResult, SyncOptions, SyncResult, SyncStatusPayload, WatchHandle, WatchOptions, WatchStrategy, } from "./shared-types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../connectors/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mDAAmD,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,sBAAsB,EACtB,yBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../connectors/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { ConnectorChangeEvent } from "./connector-types.js";
|
|
12
12
|
import type { WatchHandle, WatchOptions } from "./shared-types.js";
|
|
13
|
-
/**
|
|
14
|
-
* Default chokidar `awaitWriteFinish` stability threshold (ms). Exported so the
|
|
15
|
-
* rclone process manager can reuse the same write-stabilization concept when
|
|
16
|
-
* gating a flush on a quiescent mount.
|
|
17
|
-
*/
|
|
13
|
+
/** Default chokidar `awaitWriteFinish` stability threshold (ms). */
|
|
18
14
|
export declare const DEFAULT_DEBOUNCE_MS = 150;
|
|
19
15
|
/**
|
|
20
16
|
* Create a cross-platform filesystem watcher on `rootDir` using chokidar.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../connectors/src/watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAoEnE
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../connectors/src/watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAoEnE,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAyDvC;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC/C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC,CA0CtB"}
|