@skaile/workspaces 0.31.0 → 0.33.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 +75 -0
- package/dist/{asset-feeds-6HZDZEIT.js → asset-feeds-DX5JPM76.js} +7 -7
- package/dist/{asset-feeds-6HZDZEIT.js.map → asset-feeds-DX5JPM76.js.map} +1 -1
- package/dist/asset-manager/index.js +5 -5
- package/dist/asset-manager/installer.js +4 -4
- package/dist/bridge/drivers/claude-sdk.js +8 -1
- package/dist/bridge/drivers/claude-sdk.js.map +1 -1
- package/dist/bridge/drivers/codex.js +1 -1
- package/dist/bridge/drivers/continue.js +2 -2
- package/dist/bridge/drivers/echo.js +1 -1
- package/dist/bridge/drivers/gemini.js +3 -3
- package/dist/bridge/drivers/goose.js +2 -2
- package/dist/bridge/drivers/omp.js +1 -1
- package/dist/bridge/drivers/opencode.js +2 -2
- package/dist/bridge/drivers/qwen.js +3 -3
- package/dist/bridge/index.js +2 -2
- package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
- package/dist/{chunk-QF6LBS2C.js → chunk-362QBS57.js} +277 -61
- package/dist/chunk-362QBS57.js.map +1 -0
- package/dist/{chunk-ZM7UOJR2.js → chunk-4ZVS6KV4.js} +2 -2
- package/dist/{chunk-ZM7UOJR2.js.map → chunk-4ZVS6KV4.js.map} +1 -1
- package/dist/{chunk-NGE6PALH.js → chunk-67AXL4OK.js} +3 -3
- package/dist/{chunk-NGE6PALH.js.map → chunk-67AXL4OK.js.map} +1 -1
- package/dist/{chunk-DKAV43NI.js → chunk-AZODLVKH.js} +9 -16
- package/dist/chunk-AZODLVKH.js.map +1 -0
- package/dist/{chunk-MWAEOCU7.js → chunk-BUMDC3R2.js} +5 -5
- package/dist/{chunk-MWAEOCU7.js.map → chunk-BUMDC3R2.js.map} +1 -1
- package/dist/{chunk-OEXA7BBK.js → chunk-CIFTUSBV.js} +2 -2
- package/dist/{chunk-OEXA7BBK.js.map → chunk-CIFTUSBV.js.map} +1 -1
- package/dist/{chunk-BRBOC53X.js → chunk-EJZFQCQG.js} +2 -2
- package/dist/{chunk-BRBOC53X.js.map → chunk-EJZFQCQG.js.map} +1 -1
- package/dist/{chunk-7KOBITAP.js → chunk-KKERAIPQ.js} +3 -3
- package/dist/{chunk-7KOBITAP.js.map → chunk-KKERAIPQ.js.map} +1 -1
- package/dist/{chunk-VO7QQ76S.js → chunk-LRFZNLB2.js} +10 -7
- package/dist/chunk-LRFZNLB2.js.map +1 -0
- package/dist/{chunk-WDMH4UMD.js → chunk-N74UQJPN.js} +45 -3
- package/dist/chunk-N74UQJPN.js.map +1 -0
- package/dist/{chunk-7FLLPKX3.js → chunk-NSVAJWWQ.js} +3 -3
- package/dist/{chunk-7FLLPKX3.js.map → chunk-NSVAJWWQ.js.map} +1 -1
- package/dist/{chunk-G247J4MC.js → chunk-PKPUVQJP.js} +3 -3
- package/dist/{chunk-G247J4MC.js.map → chunk-PKPUVQJP.js.map} +1 -1
- package/dist/{chunk-4CRKROS5.js → chunk-PTDVTMQL.js} +4 -4
- package/dist/{chunk-4CRKROS5.js.map → chunk-PTDVTMQL.js.map} +1 -1
- package/dist/{chunk-LA2YSXEE.js → chunk-PWXN2KHV.js} +3 -3
- package/dist/{chunk-LA2YSXEE.js.map → chunk-PWXN2KHV.js.map} +1 -1
- package/dist/{chunk-NQC7ZUXE.js → chunk-QUWXW2N3.js} +3 -3
- package/dist/{chunk-NQC7ZUXE.js.map → chunk-QUWXW2N3.js.map} +1 -1
- package/dist/{chunk-IENYMRZ6.js → chunk-R2I7RHT7.js} +49 -19
- package/dist/chunk-R2I7RHT7.js.map +1 -0
- package/dist/{chunk-CBIPUBUS.js → chunk-RQG5TXIR.js} +3 -3
- package/dist/{chunk-CBIPUBUS.js.map → chunk-RQG5TXIR.js.map} +1 -1
- package/dist/{chunk-P72K36PU.js → chunk-TV2OU2EZ.js} +4 -4
- package/dist/{chunk-P72K36PU.js.map → chunk-TV2OU2EZ.js.map} +1 -1
- package/dist/{chunk-HH62ECJ7.js → chunk-VXW2K4YH.js} +3 -3
- package/dist/{chunk-HH62ECJ7.js.map → chunk-VXW2K4YH.js.map} +1 -1
- package/dist/{chunk-45RKEHPX.js → chunk-XQRAXAL5.js} +6 -6
- package/dist/{chunk-45RKEHPX.js.map → chunk-XQRAXAL5.js.map} +1 -1
- package/dist/{chunk-74UKG2LA.js → chunk-XT6AZWK3.js} +40 -5
- package/dist/chunk-XT6AZWK3.js.map +1 -0
- package/dist/cli/index.js +33 -33
- package/dist/connectors/config.js +4 -4
- package/dist/connectors/index.js +6 -6
- package/dist/connectors/rclone.js +1 -1
- package/dist/connectors/src/config.d.ts +30 -3
- package/dist/connectors/src/config.d.ts.map +1 -1
- package/dist/connectors/src/connector-types.d.ts +8 -0
- package/dist/connectors/src/connector-types.d.ts.map +1 -1
- package/dist/connectors/src/index.d.ts +5 -2
- package/dist/connectors/src/index.d.ts.map +1 -1
- package/dist/connectors/src/rclone-process-manager.d.ts +24 -0
- package/dist/connectors/src/rclone-process-manager.d.ts.map +1 -1
- package/dist/connectors/src/rclone-token-refresh.d.ts +84 -0
- package/dist/connectors/src/rclone-token-refresh.d.ts.map +1 -0
- package/dist/core/index.js +3 -3
- package/dist/core/runtime-assets.js +2 -2
- package/dist/core/src/workspace-config.d.ts +15 -6
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/workspace-config.js +1 -1
- package/dist/deploy/index.js +3 -3
- package/dist/{ensure-sources-JWBUVDW6.js → ensure-sources-O6RMWP6C.js} +7 -7
- package/dist/{ensure-sources-JWBUVDW6.js.map → ensure-sources-O6RMWP6C.js.map} +1 -1
- package/dist/factory-assets/connectors/deploy.js +6 -6
- package/dist/factory-assets/connectors/devserver.js +6 -6
- package/dist/factory-assets/connectors/flow/adapter.js +6 -6
- package/dist/factory-assets/connectors/flow/engine.js +3 -3
- package/dist/factory-assets/connectors/flow/run-flow.js +7 -7
- package/dist/factory-assets/connectors/flow.js +6 -6
- package/dist/factory-assets/connectors/git/driver.d.ts +54 -0
- package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -1
- package/dist/factory-assets/connectors/git.js +6 -6
- package/dist/factory-assets/connectors/gmail.js +6 -6
- package/dist/factory-assets/connectors/googledrive.js +6 -6
- package/dist/factory-assets/connectors/local.js +6 -6
- package/dist/factory-assets/connectors/mattermost.js +6 -6
- package/dist/factory-assets/connectors/memory.js +6 -6
- package/dist/factory-assets/connectors/minio.js +6 -6
- package/dist/factory-assets/connectors/postgres.js +6 -6
- package/dist/factory-assets/connectors/s3.js +6 -6
- package/dist/factory-assets/connectors/sharepoint/driver.d.ts.map +1 -1
- package/dist/factory-assets/connectors/sharepoint.js +6 -6
- package/dist/factory-assets/connectors/sqlite.js +6 -6
- package/dist/factory-assets/connectors/static-server.js +6 -6
- package/dist/factory-assets/connectors/tunnel.js +6 -6
- package/dist/factory-assets/connectors/webdav/driver.d.ts.map +1 -1
- package/dist/factory-assets/connectors/webdav.js +6 -6
- package/dist/factory-assets/connectors/xstate-store.js +6 -6
- package/dist/factory-assets/connectors/xstate.js +6 -6
- package/dist/{flows-T6RCRKCX.js → flows-QWYIUDA2.js} +3 -3
- package/dist/{flows-T6RCRKCX.js.map → flows-QWYIUDA2.js.map} +1 -1
- package/dist/library/index.js +5 -5
- package/dist/library/install.js +4 -4
- package/dist/library/src/install/index.d.ts +1 -1
- package/dist/library/src/install/index.d.ts.map +1 -1
- package/dist/library/src/install/install-from-manifest.d.ts +25 -1
- package/dist/library/src/install/install-from-manifest.d.ts.map +1 -1
- package/dist/{open-library-ZXTSUPBJ.js → open-library-B7BLYXYK.js} +8 -8
- package/dist/{open-library-ZXTSUPBJ.js.map → open-library-B7BLYXYK.js.map} +1 -1
- package/dist/{paths-F7RHQUFL.js → paths-5IUR235S.js} +6 -6
- package/dist/{paths-F7RHQUFL.js.map → paths-5IUR235S.js.map} +1 -1
- package/dist/{plugin-store-BC3I36HA.js → plugin-store-WWOJXWG7.js} +5 -5
- package/dist/{plugin-store-BC3I36HA.js.map → plugin-store-WWOJXWG7.js.map} +1 -1
- package/dist/runner/index.js +10 -10
- package/dist/runner/src/lifecycle-handler.d.ts +17 -0
- package/dist/runner/src/lifecycle-handler.d.ts.map +1 -0
- package/dist/runner/src/runner-capabilities.d.ts +1 -1
- package/dist/runner/src/runner-capabilities.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +5 -5
- package/dist/sdk/bridge.js +2 -2
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/flow.js +3 -3
- package/dist/sdk/index.js +10 -10
- package/dist/sdk/runner.js +10 -10
- package/dist/{setup-FQ3DE6J6.js → setup-2RD6EDBZ.js} +7 -7
- package/dist/{setup-FQ3DE6J6.js.map → setup-2RD6EDBZ.js.map} +1 -1
- package/dist/{store-client-27YYEWMM.js → store-client-XQQRHYDW.js} +6 -6
- package/dist/{store-client-27YYEWMM.js.map → store-client-XQQRHYDW.js.map} +1 -1
- package/dist/tui/index.js +10 -10
- package/dist/workspace-plugin/adapters/mcp.js +1 -1
- package/dist/workspace-plugin/adapters/omp.js +3 -3
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-74UKG2LA.js.map +0 -1
- package/dist/chunk-DKAV43NI.js.map +0 -1
- package/dist/chunk-IENYMRZ6.js.map +0 -1
- package/dist/chunk-QF6LBS2C.js.map +0 -1
- package/dist/chunk-VO7QQ76S.js.map +0 -1
- package/dist/chunk-WDMH4UMD.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { dispatchCapability } from '../../chunk-RRVQAE5D.js';
|
|
2
|
-
import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-
|
|
2
|
+
import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-CIFTUSBV.js';
|
|
3
3
|
import '../../chunk-6E6PKKAD.js';
|
|
4
4
|
import '../../chunk-JB35MVBN.js';
|
|
5
5
|
import '../../chunk-NSBPE2FW.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { GeminiDriver, GeminiFamilyDriver, geminiDriverTarget } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
1
|
+
export { GeminiDriver, GeminiFamilyDriver, geminiDriverTarget } from '../../chunk-TV2OU2EZ.js';
|
|
2
|
+
import '../../chunk-67AXL4OK.js';
|
|
3
3
|
import '../../chunk-BMQKMOQY.js';
|
|
4
4
|
import '../../chunk-NGJ6E344.js';
|
|
5
|
-
import '../../chunk-
|
|
5
|
+
import '../../chunk-CIFTUSBV.js';
|
|
6
6
|
import '../../chunk-6E6PKKAD.js';
|
|
7
7
|
import '../../chunk-JB35MVBN.js';
|
|
8
8
|
import '../../chunk-NSBPE2FW.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-
|
|
1
|
+
import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-67AXL4OK.js';
|
|
2
2
|
import '../../chunk-NGJ6E344.js';
|
|
3
|
-
import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-
|
|
3
|
+
import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-CIFTUSBV.js';
|
|
4
4
|
import '../../chunk-6E6PKKAD.js';
|
|
5
5
|
import '../../chunk-JB35MVBN.js';
|
|
6
6
|
import '../../chunk-NSBPE2FW.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { classifyGenericErrorMessage } from '../../chunk-NGJ6E344.js';
|
|
2
|
-
import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-
|
|
2
|
+
import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-CIFTUSBV.js';
|
|
3
3
|
import '../../chunk-6E6PKKAD.js';
|
|
4
4
|
import '../../chunk-JB35MVBN.js';
|
|
5
5
|
import '../../chunk-NSBPE2FW.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-
|
|
1
|
+
import { SubprocessCliDriver, mapApiKeysToEnv, extractText, extractCost, extractTokens } from '../../chunk-67AXL4OK.js';
|
|
2
2
|
import '../../chunk-NGJ6E344.js';
|
|
3
|
-
import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-
|
|
3
|
+
import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-CIFTUSBV.js';
|
|
4
4
|
import '../../chunk-6E6PKKAD.js';
|
|
5
5
|
import '../../chunk-JB35MVBN.js';
|
|
6
6
|
import '../../chunk-NSBPE2FW.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { GeminiFamilyDriver } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
1
|
+
import { GeminiFamilyDriver } from '../../chunk-TV2OU2EZ.js';
|
|
2
|
+
import '../../chunk-67AXL4OK.js';
|
|
3
3
|
import { fetchProviderModels } from '../../chunk-BMQKMOQY.js';
|
|
4
4
|
import '../../chunk-NGJ6E344.js';
|
|
5
|
-
import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-
|
|
5
|
+
import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from '../../chunk-CIFTUSBV.js';
|
|
6
6
|
import '../../chunk-6E6PKKAD.js';
|
|
7
7
|
import '../../chunk-JB35MVBN.js';
|
|
8
8
|
import '../../chunk-NSBPE2FW.js';
|
package/dist/bridge/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { BridgeRuntime, EventNormalizer, createRuntime, detectFileChange, detectFileChanges, summarizeToolCall, summarizeToolResult, validateApiKey } from '../chunk-
|
|
1
|
+
export { BridgeRuntime, EventNormalizer, createRuntime, detectFileChange, detectFileChanges, summarizeToolCall, summarizeToolResult, validateApiKey } from '../chunk-NSVAJWWQ.js';
|
|
2
2
|
export { dispatchCapability, filterRenderCapabilities, renderFallback } from '../chunk-RRVQAE5D.js';
|
|
3
3
|
export { STATIC_MODELS, fetchProviderModels, getModels, getStaticModels } from '../chunk-BMQKMOQY.js';
|
|
4
4
|
export { AuthError, classifyClaudeSdkError } from '../chunk-NGJ6E344.js';
|
|
5
|
-
export { AgentDriver, BUILTIN_DRIVER_CATALOG, DRIVER_CATALOG, createDriver, getBridgeLogger, listDrivers, listModelsForDriver, registerBuiltinDrivers } from '../chunk-
|
|
5
|
+
export { AgentDriver, BUILTIN_DRIVER_CATALOG, DRIVER_CATALOG, createDriver, getBridgeLogger, listDrivers, listModelsForDriver, registerBuiltinDrivers } from '../chunk-CIFTUSBV.js';
|
|
6
6
|
import '../chunk-6E6PKKAD.js';
|
|
7
7
|
import '../chunk-JB35MVBN.js';
|
|
8
8
|
import '../chunk-NSBPE2FW.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-sdk.d.ts","sourceRoot":"","sources":["../../../../bridge/src/drivers/claude-sdk.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAUnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIvE,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EACL,KAAK,WAAW,EAChB,WAAW,EAIX,KAAK,UAAU,EACf,KAAK,gBAAgB,EAEtB,MAAM,aAAa,CAAC;AAiErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;GAOG;AACH,UAAU,WAAW;IACnB,qEAAqE;IACrE,WAAW,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,8DAA8D;IAC9D,IAAI,EAAE,OAAO,CAAC;CACf;AAaD,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAK7B;IAEF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyC;IAC7D,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAA6C;IACxD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAM;IACtB,oGAAoG;IACpG,OAAO,CAAC,qBAAqB,CAAS;IAEtC,wEAAwE;IACxE,OAAO,CAAC,KAAK,CAAyB;IACtC,gDAAgD;IAChD,OAAO,CAAC,WAAW,CAA6B;IAChD,4CAA4C;IAC5C,OAAO,CAAC,UAAU,CAAuC;IACzD,6DAA6D;IAC7D,OAAO,CAAC,aAAa,CAAS;IAC9B;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB,CAAS;IACjC,sEAAsE;IACtE,OAAO,CAAC,UAAU,CAAS;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,SAAS,CAAM;IACvB,qDAAqD;IACrD,OAAO,CAAC,cAAc,CAA0B;IAChD,uDAAuD;IACvD,OAAO,CAAC,WAAW,CAA2B;IAC9C,oEAAoE;IACpE,OAAO,CAAC,cAAc,CAAuB;IAC7C;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB,CAAS;IAErC;;;;;;;;;;OAUG;gBACS,MAAM,EAAE,WAAW;IAK/B,IAAa,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAElD;IAEQ,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI;IAMrF,QAAQ,IAAI,MAAM,GAAG,SAAS;IAIvC;;;;;OAKG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC;;;;;;;;;;;;;;OAcG;IACU,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+I9F;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IA4B/B;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAgD/B;;;;;;;OAOG;YACW,mBAAmB;IA0DjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAQ9B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,2BAA2B;YA6BrB,UAAU;
|
|
1
|
+
{"version":3,"file":"claude-sdk.d.ts","sourceRoot":"","sources":["../../../../bridge/src/drivers/claude-sdk.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAUnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIvE,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EACL,KAAK,WAAW,EAChB,WAAW,EAIX,KAAK,UAAU,EACf,KAAK,gBAAgB,EAEtB,MAAM,aAAa,CAAC;AAiErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;GAOG;AACH,UAAU,WAAW;IACnB,qEAAqE;IACrE,WAAW,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,8DAA8D;IAC9D,IAAI,EAAE,OAAO,CAAC;CACf;AAaD,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAK7B;IAEF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyC;IAC7D,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAA6C;IACxD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAM;IACtB,oGAAoG;IACpG,OAAO,CAAC,qBAAqB,CAAS;IAEtC,wEAAwE;IACxE,OAAO,CAAC,KAAK,CAAyB;IACtC,gDAAgD;IAChD,OAAO,CAAC,WAAW,CAA6B;IAChD,4CAA4C;IAC5C,OAAO,CAAC,UAAU,CAAuC;IACzD,6DAA6D;IAC7D,OAAO,CAAC,aAAa,CAAS;IAC9B;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB,CAAS;IACjC,sEAAsE;IACtE,OAAO,CAAC,UAAU,CAAS;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,SAAS,CAAM;IACvB,qDAAqD;IACrD,OAAO,CAAC,cAAc,CAA0B;IAChD,uDAAuD;IACvD,OAAO,CAAC,WAAW,CAA2B;IAC9C,oEAAoE;IACpE,OAAO,CAAC,cAAc,CAAuB;IAC7C;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB,CAAS;IAErC;;;;;;;;;;OAUG;gBACS,MAAM,EAAE,WAAW;IAK/B,IAAa,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAElD;IAEQ,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI;IAMrF,QAAQ,IAAI,MAAM,GAAG,SAAS;IAIvC;;;;;OAKG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC;;;;;;;;;;;;;;OAcG;IACU,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+I9F;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IA4B/B;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAgD/B;;;;;;;OAOG;YACW,mBAAmB;IA0DjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAQ9B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,2BAA2B;YA6BrB,UAAU;IAoHf,gBAAgB,IAAI,gBAAgB,EAAE;IAI/C;;;;;;;;OAQG;YACW,wBAAwB;IAiBtC;;;;;;;OAOG;YACW,wBAAwB;IAwDtC,yDAAyD;YAC3C,kBAAkB;IAmBhC;;;;OAIG;YACW,eAAe;IAuC7B,gFAAgF;IAChF,OAAO,CAAC,gBAAgB;IAWxB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAiBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,CAAC,QAAQ;IAqChB,OAAO,CAAC,gBAAgB;IAoBxB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,mBAAmB;IA4B3B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA4B1B,6EAA6E;IAC7E,OAAO,CAAC,mBAAmB;IAmB3B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAyChC,+CAA+C;IAC/C,OAAO,CAAC,gBAAgB;IAYxB,gEAAgE;YACjD,kBAAkB;IAIjC,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,cAAc;IAqBtB;;;;;;OAMG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAanC,+DAA+D;IAC/D,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;OAKG;IACI,IAAI,IAAI,IAAI;IAeJ,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAUzC,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIpC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBnC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gBAAgB;CAezB;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAAY,CAAC,WAAW,CAU3D,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { renderGoogleDriveConfig, renderOneDriveConfig, renderWebDAVConfig } from './chunk-OVRSNIKJ.js';
|
|
2
|
-
import { resolveAuthRef, resolveAuth, resolveMountCredentialString } from './chunk-
|
|
3
|
-
import { PortPool, createFsWatcher, RcloneProcessManager, ensureDirMode } from './chunk-
|
|
2
|
+
import { resolveAuthRef, resolveAuth, resolveMountCredentialString, resolveMountCredential } from './chunk-LRFZNLB2.js';
|
|
3
|
+
import { PortPool, createFsWatcher, RcloneProcessManager, ensureDirMode } from './chunk-XT6AZWK3.js';
|
|
4
4
|
import { pluginRegistry } from './chunk-6E6PKKAD.js';
|
|
5
5
|
import { computeFlowStateFromSnapshots } from './chunk-X46FY45B.js';
|
|
6
6
|
import { renderStimulusPrompt } from './chunk-DEYYRFQU.js';
|
|
7
7
|
import { computeStimulus } from './chunk-IFGTRL2I.js';
|
|
8
|
-
import { portableSpawn } from './chunk-
|
|
8
|
+
import { portableSpawn } from './chunk-PKPUVQJP.js';
|
|
9
9
|
import { createLogger } from './chunk-JB35MVBN.js';
|
|
10
10
|
import { existsSync, mkdirSync, renameSync, writeFileSync, readFileSync, cpSync, statSync, createReadStream, readdirSync, openSync, writeSync, closeSync, chmodSync } from 'fs';
|
|
11
11
|
import path, { join, dirname, resolve, sep } from 'path';
|
|
@@ -713,35 +713,83 @@ function instanceToStatus(inst) {
|
|
|
713
713
|
function createConnector3() {
|
|
714
714
|
return new DevServerConnector();
|
|
715
715
|
}
|
|
716
|
-
|
|
716
|
+
var LEGACY_DEFAULTS = {
|
|
717
|
+
session: { enabled: false },
|
|
718
|
+
sync: { fetchIntervalSec: 0, autoRebase: false, autoPull: false },
|
|
719
|
+
lifecycle: {
|
|
720
|
+
commitOnHibernate: true,
|
|
721
|
+
pushOnHibernate: true,
|
|
722
|
+
mergeOnClose: true,
|
|
723
|
+
pushOnClose: true,
|
|
724
|
+
autoCommitIdleMs: 3e4,
|
|
725
|
+
pushAfterCommit: false
|
|
726
|
+
}
|
|
727
|
+
};
|
|
728
|
+
var MODE_DEFAULTS = {
|
|
729
|
+
agent: {
|
|
730
|
+
session: { enabled: true },
|
|
731
|
+
sync: { fetchIntervalSec: 0, autoRebase: false, autoPull: false },
|
|
732
|
+
lifecycle: {
|
|
733
|
+
...LEGACY_DEFAULTS.lifecycle,
|
|
734
|
+
// Agent owns its own merge — connector must not auto-merge the session branch.
|
|
735
|
+
mergeOnClose: false,
|
|
736
|
+
autoCommitIdleMs: 0,
|
|
737
|
+
pushAfterCommit: false
|
|
738
|
+
}
|
|
739
|
+
},
|
|
740
|
+
sync: {
|
|
741
|
+
session: { enabled: false },
|
|
742
|
+
sync: { fetchIntervalSec: 30, autoRebase: true, autoPull: true },
|
|
743
|
+
lifecycle: {
|
|
744
|
+
...LEGACY_DEFAULTS.lifecycle,
|
|
745
|
+
autoCommitIdleMs: 3e4,
|
|
746
|
+
pushAfterCommit: true
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
};
|
|
750
|
+
function parseSessionConfig(opts, defaults) {
|
|
717
751
|
const raw = opts?.session ?? {};
|
|
718
752
|
return {
|
|
719
|
-
enabled: Boolean(raw.enabled ??
|
|
753
|
+
enabled: Boolean(raw.enabled ?? defaults.enabled),
|
|
720
754
|
slug: raw.slug != null ? String(raw.slug) : void 0,
|
|
721
755
|
isMain: Boolean(raw.isMain ?? true),
|
|
722
756
|
branchPrefix: String(raw.branchPrefix ?? "session/"),
|
|
723
757
|
fromRef: raw.fromRef != null ? String(raw.fromRef) : void 0
|
|
724
758
|
};
|
|
725
759
|
}
|
|
726
|
-
function parseSyncConfig(opts) {
|
|
760
|
+
function parseSyncConfig(opts, defaults) {
|
|
727
761
|
const raw = opts?.sync ?? {};
|
|
728
762
|
return {
|
|
729
|
-
fetchIntervalSec: Number(raw.fetchIntervalSec ??
|
|
730
|
-
autoRebase: Boolean(raw.autoRebase ??
|
|
731
|
-
autoPull: Boolean(raw.autoPull ??
|
|
763
|
+
fetchIntervalSec: Number(raw.fetchIntervalSec ?? defaults.fetchIntervalSec),
|
|
764
|
+
autoRebase: Boolean(raw.autoRebase ?? defaults.autoRebase),
|
|
765
|
+
autoPull: Boolean(raw.autoPull ?? defaults.autoPull)
|
|
732
766
|
};
|
|
733
767
|
}
|
|
734
|
-
function parseLifecycleConfig(opts) {
|
|
768
|
+
function parseLifecycleConfig(opts, defaults) {
|
|
735
769
|
const raw = opts?.lifecycle ?? {};
|
|
736
770
|
return {
|
|
737
|
-
commitOnHibernate: Boolean(raw.commitOnHibernate ??
|
|
738
|
-
pushOnHibernate: Boolean(raw.pushOnHibernate ??
|
|
739
|
-
mergeOnClose: Boolean(raw.mergeOnClose ??
|
|
740
|
-
pushOnClose: Boolean(raw.pushOnClose ??
|
|
741
|
-
autoCommitIdleMs: Number(raw.autoCommitIdleMs ??
|
|
742
|
-
pushAfterCommit: Boolean(raw.pushAfterCommit ??
|
|
771
|
+
commitOnHibernate: Boolean(raw.commitOnHibernate ?? defaults.commitOnHibernate),
|
|
772
|
+
pushOnHibernate: Boolean(raw.pushOnHibernate ?? defaults.pushOnHibernate),
|
|
773
|
+
mergeOnClose: Boolean(raw.mergeOnClose ?? defaults.mergeOnClose),
|
|
774
|
+
pushOnClose: Boolean(raw.pushOnClose ?? defaults.pushOnClose),
|
|
775
|
+
autoCommitIdleMs: Number(raw.autoCommitIdleMs ?? defaults.autoCommitIdleMs),
|
|
776
|
+
pushAfterCommit: Boolean(raw.pushAfterCommit ?? defaults.pushAfterCommit)
|
|
743
777
|
};
|
|
744
778
|
}
|
|
779
|
+
function resolveGitConfig(args) {
|
|
780
|
+
let mode = args.mode;
|
|
781
|
+
if (mode && !(mode in MODE_DEFAULTS)) {
|
|
782
|
+
modeLog.warn("unknown git mode \u2014 falling back to legacy defaults", { mode });
|
|
783
|
+
mode = void 0;
|
|
784
|
+
}
|
|
785
|
+
const defaults = mode ? MODE_DEFAULTS[mode] : LEGACY_DEFAULTS;
|
|
786
|
+
return {
|
|
787
|
+
session: parseSessionConfig(args.options, defaults.session),
|
|
788
|
+
sync: parseSyncConfig(args.options, defaults.sync),
|
|
789
|
+
lifecycle: parseLifecycleConfig(args.options, defaults.lifecycle)
|
|
790
|
+
};
|
|
791
|
+
}
|
|
792
|
+
var modeLog = createLogger({ kind: "connector", subkind: "git" });
|
|
745
793
|
function git(cmd, cwd, timeout = 3e4) {
|
|
746
794
|
return execSync(`git ${cmd}`, { cwd, encoding: "utf-8", timeout, stdio: "pipe" }).trim();
|
|
747
795
|
}
|
|
@@ -822,9 +870,10 @@ var GitConnector = class extends AbstractConnector {
|
|
|
822
870
|
}
|
|
823
871
|
this.log.info("mount start", { url, branch, targetDir });
|
|
824
872
|
const initial = await this.acquireInitialToken(declaration, secrets, tokenMediator);
|
|
825
|
-
const session =
|
|
826
|
-
|
|
827
|
-
|
|
873
|
+
const { session, sync, lifecycle } = resolveGitConfig({
|
|
874
|
+
mode: declaration.mode,
|
|
875
|
+
options: opts
|
|
876
|
+
});
|
|
828
877
|
const state = {
|
|
829
878
|
url,
|
|
830
879
|
branch,
|
|
@@ -988,13 +1037,17 @@ var GitConnector = class extends AbstractConnector {
|
|
|
988
1037
|
activeBranch = git("rev-parse --abbrev-ref HEAD", targetDir, 5e3);
|
|
989
1038
|
} catch {
|
|
990
1039
|
}
|
|
1040
|
+
const fleetConfig = resolveGitConfig({
|
|
1041
|
+
mode: declaration.mode,
|
|
1042
|
+
options: declaration.options
|
|
1043
|
+
});
|
|
991
1044
|
const state = {
|
|
992
1045
|
url: String(declaration.mount?.source ?? ""),
|
|
993
1046
|
branch: activeBranch,
|
|
994
1047
|
activeBranch,
|
|
995
|
-
session:
|
|
996
|
-
sync:
|
|
997
|
-
lifecycle:
|
|
1048
|
+
session: fleetConfig.session,
|
|
1049
|
+
sync: fleetConfig.sync,
|
|
1050
|
+
lifecycle: fleetConfig.lifecycle,
|
|
998
1051
|
fleetManaged: true
|
|
999
1052
|
};
|
|
1000
1053
|
const dispatch = (event) => {
|
|
@@ -1706,6 +1759,7 @@ var GitConnector = class extends AbstractConnector {
|
|
|
1706
1759
|
function createConnector4() {
|
|
1707
1760
|
return new GitConnector();
|
|
1708
1761
|
}
|
|
1762
|
+
var __test = { resolveGitConfig };
|
|
1709
1763
|
|
|
1710
1764
|
// factory-assets/connectors/gmail/adapter.ts
|
|
1711
1765
|
var GmailConnector = class extends AbstractConnector {
|
|
@@ -3405,7 +3459,7 @@ var SharePointConnector = class extends AbstractConnector {
|
|
|
3405
3459
|
});
|
|
3406
3460
|
await ensureFleetMounted(targetDir, this.log);
|
|
3407
3461
|
const fleetState = {
|
|
3408
|
-
|
|
3462
|
+
handleRef: { current: null },
|
|
3409
3463
|
fleetManaged: true
|
|
3410
3464
|
};
|
|
3411
3465
|
return this.makeHandle(declaration, fleetState, targetDir);
|
|
@@ -3421,10 +3475,8 @@ var SharePointConnector = class extends AbstractConnector {
|
|
|
3421
3475
|
);
|
|
3422
3476
|
}
|
|
3423
3477
|
const basePath = String(opts?.basePath ?? "").replace(/^\/+|\/+$/g, "");
|
|
3424
|
-
const
|
|
3425
|
-
|
|
3426
|
-
this.log
|
|
3427
|
-
);
|
|
3478
|
+
const cred = await resolveMountCredential(declaration, secrets, tokenMediator, "initial");
|
|
3479
|
+
const auth = parseAuthBlob2(cred.token, this.log);
|
|
3428
3480
|
if (!auth.accessToken) {
|
|
3429
3481
|
throw new Error(
|
|
3430
3482
|
"SharePoint connector: no access token resolved. Use 'auth: backend' (platform) or 'auth: env:SHAREPOINT_TOKEN' (standalone)."
|
|
@@ -3443,16 +3495,29 @@ var SharePointConnector = class extends AbstractConnector {
|
|
|
3443
3495
|
vfsCacheMode,
|
|
3444
3496
|
hasRefresh: auth.refreshToken !== null
|
|
3445
3497
|
});
|
|
3446
|
-
const
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3498
|
+
const renderConfig = (rawToken) => {
|
|
3499
|
+
const a = parseAuthBlob2(rawToken, this.log);
|
|
3500
|
+
return renderOneDriveConfig({
|
|
3501
|
+
remoteName,
|
|
3502
|
+
accessToken: a.accessToken,
|
|
3503
|
+
refreshToken: a.refreshToken,
|
|
3504
|
+
expiresAtMs: a.expiresAtMs,
|
|
3505
|
+
tenantId: a.tenantId,
|
|
3506
|
+
clientId: a.clientId,
|
|
3507
|
+
clientSecret: a.clientSecret,
|
|
3508
|
+
driveId
|
|
3509
|
+
});
|
|
3510
|
+
};
|
|
3511
|
+
const handleRef = { current: null };
|
|
3512
|
+
const refresh = declaration.auth === "backend" && tokenMediator ? createRcloneTokenRefresh({
|
|
3513
|
+
connectorId: declaration.id,
|
|
3514
|
+
tokenMediator,
|
|
3515
|
+
renderConfig,
|
|
3516
|
+
rclone: this.rclone,
|
|
3517
|
+
handleRef,
|
|
3518
|
+
log: (line) => this.log.info(line)
|
|
3519
|
+
}) : void 0;
|
|
3520
|
+
const rcloneConfig = renderConfig(cred.token ?? "");
|
|
3456
3521
|
await ensureDirMode(base, this.log);
|
|
3457
3522
|
await ensureDirMode(cacheDir, this.log);
|
|
3458
3523
|
await ensureDirMode(targetDir, this.log);
|
|
@@ -3478,20 +3543,24 @@ var SharePointConnector = class extends AbstractConnector {
|
|
|
3478
3543
|
...cacheMaxAge !== void 0 ? { cacheMaxAge } : {},
|
|
3479
3544
|
...vfsWriteBack !== void 0 ? { vfsWriteBack } : {},
|
|
3480
3545
|
...ignoreSizeCheck ? { ignoreSizeCheck: true } : {},
|
|
3546
|
+
...refresh ? { onAuthError: () => refresh.onAuthError() } : {},
|
|
3481
3547
|
log: this.log
|
|
3482
3548
|
});
|
|
3483
3549
|
this.log.info("mount ready", { pid: rcloneHandle.pid });
|
|
3484
|
-
|
|
3550
|
+
handleRef.current = rcloneHandle;
|
|
3551
|
+
refresh?.schedule(cred.expiresAt);
|
|
3552
|
+
const state = { handleRef, refresh };
|
|
3485
3553
|
return this.makeHandle(declaration, state, targetDir);
|
|
3486
3554
|
}
|
|
3487
3555
|
async disconnect(handle) {
|
|
3488
3556
|
const s = handle.state;
|
|
3489
|
-
|
|
3490
|
-
|
|
3557
|
+
s.refresh?.cancel();
|
|
3558
|
+
if (s.fleetManaged || !s.handleRef.current) return;
|
|
3559
|
+
await this.rclone.stop(s.handleRef.current, { graceMs: 3e4 });
|
|
3491
3560
|
}
|
|
3492
3561
|
async _sync(handle, options) {
|
|
3493
3562
|
const s = handle.state;
|
|
3494
|
-
if (s.fleetManaged || !s.
|
|
3563
|
+
if (s.fleetManaged || !s.handleRef.current) {
|
|
3495
3564
|
options?.onSyncStatus?.({
|
|
3496
3565
|
phase: "initial_sync_complete",
|
|
3497
3566
|
totalFiles: 0,
|
|
@@ -3501,7 +3570,7 @@ var SharePointConnector = class extends AbstractConnector {
|
|
|
3501
3570
|
});
|
|
3502
3571
|
return { filesWritten: 0, filesDeleted: 0, bytesTransferred: 0 };
|
|
3503
3572
|
}
|
|
3504
|
-
await this.rclone.flush(s.
|
|
3573
|
+
await this.rclone.flush(s.handleRef.current);
|
|
3505
3574
|
options?.onSyncStatus?.({
|
|
3506
3575
|
phase: "initial_sync_complete",
|
|
3507
3576
|
totalFiles: 0,
|
|
@@ -4351,7 +4420,7 @@ var WebDAVConnector = class extends AbstractConnector {
|
|
|
4351
4420
|
});
|
|
4352
4421
|
await ensureFleetMounted(targetDir, this.log);
|
|
4353
4422
|
const fleetState = {
|
|
4354
|
-
|
|
4423
|
+
handleRef: { current: null },
|
|
4355
4424
|
fleetManaged: true
|
|
4356
4425
|
};
|
|
4357
4426
|
return this.makeHandle(declaration, fleetState, targetDir);
|
|
@@ -4369,8 +4438,8 @@ var WebDAVConnector = class extends AbstractConnector {
|
|
|
4369
4438
|
const vendor = vendorRaw;
|
|
4370
4439
|
const basePath = String(opts?.basePath ?? "").replace(/^\/+|\/+$/g, "");
|
|
4371
4440
|
const remotePath = basePath.length > 0 ? `/${basePath}` : "/";
|
|
4372
|
-
const
|
|
4373
|
-
const
|
|
4441
|
+
const cred = await resolveMountCredential(declaration, secrets, tokenMediator, "initial");
|
|
4442
|
+
const auth = parseAuth(cred.token);
|
|
4374
4443
|
const remoteName = `skaile-${declaration.id}`;
|
|
4375
4444
|
const remote = `${remoteName}:${remotePath}`;
|
|
4376
4445
|
const base = cacheBase3();
|
|
@@ -4384,14 +4453,28 @@ var WebDAVConnector = class extends AbstractConnector {
|
|
|
4384
4453
|
vfsCacheMode,
|
|
4385
4454
|
authKind: auth.bearerToken ? "bearer" : auth.username ? "basic" : "anonymous"
|
|
4386
4455
|
});
|
|
4387
|
-
const
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4456
|
+
const renderConfig = async (rawToken) => {
|
|
4457
|
+
const a = parseAuth(rawToken);
|
|
4458
|
+
const obscured = a.password ? await this.obscure(a.password) : null;
|
|
4459
|
+
return renderWebDAVConfig({
|
|
4460
|
+
remoteName,
|
|
4461
|
+
url,
|
|
4462
|
+
vendor,
|
|
4463
|
+
username: a.username,
|
|
4464
|
+
obscuredPassword: obscured,
|
|
4465
|
+
bearerToken: a.bearerToken
|
|
4466
|
+
});
|
|
4467
|
+
};
|
|
4468
|
+
const handleRef = { current: null };
|
|
4469
|
+
const refresh = declaration.auth === "backend" && tokenMediator ? createRcloneTokenRefresh({
|
|
4470
|
+
connectorId: declaration.id,
|
|
4471
|
+
tokenMediator,
|
|
4472
|
+
renderConfig,
|
|
4473
|
+
rclone: this.rclone,
|
|
4474
|
+
handleRef,
|
|
4475
|
+
log: (line) => this.log.info(line)
|
|
4476
|
+
}) : void 0;
|
|
4477
|
+
const rcloneConfig = await renderConfig(cred.token ?? "");
|
|
4395
4478
|
await ensureDirMode(base, this.log);
|
|
4396
4479
|
await ensureDirMode(cacheDir, this.log);
|
|
4397
4480
|
await ensureDirMode(targetDir, this.log);
|
|
@@ -4409,20 +4492,24 @@ var WebDAVConnector = class extends AbstractConnector {
|
|
|
4409
4492
|
...cacheMaxSize !== void 0 ? { cacheMaxSize } : {},
|
|
4410
4493
|
...cacheMaxAge !== void 0 ? { cacheMaxAge } : {},
|
|
4411
4494
|
...vfsWriteBack !== void 0 ? { vfsWriteBack } : {},
|
|
4495
|
+
...refresh ? { onAuthError: () => refresh.onAuthError() } : {},
|
|
4412
4496
|
log: this.log
|
|
4413
4497
|
});
|
|
4414
4498
|
this.log.info("mount ready", { pid: rcloneHandle.pid });
|
|
4415
|
-
|
|
4499
|
+
handleRef.current = rcloneHandle;
|
|
4500
|
+
refresh?.schedule(cred.expiresAt);
|
|
4501
|
+
const state = { handleRef, refresh };
|
|
4416
4502
|
return this.makeHandle(declaration, state, targetDir);
|
|
4417
4503
|
}
|
|
4418
4504
|
async disconnect(handle) {
|
|
4419
4505
|
const s = handle.state;
|
|
4420
|
-
|
|
4421
|
-
|
|
4506
|
+
s.refresh?.cancel();
|
|
4507
|
+
if (s.fleetManaged || !s.handleRef.current) return;
|
|
4508
|
+
await this.rclone.stop(s.handleRef.current, { graceMs: 3e4 });
|
|
4422
4509
|
}
|
|
4423
4510
|
async _sync(handle, options) {
|
|
4424
4511
|
const s = handle.state;
|
|
4425
|
-
if (s.fleetManaged || !s.
|
|
4512
|
+
if (s.fleetManaged || !s.handleRef.current) {
|
|
4426
4513
|
options?.onSyncStatus?.({
|
|
4427
4514
|
phase: "initial_sync_complete",
|
|
4428
4515
|
totalFiles: 0,
|
|
@@ -4432,7 +4519,7 @@ var WebDAVConnector = class extends AbstractConnector {
|
|
|
4432
4519
|
});
|
|
4433
4520
|
return { filesWritten: 0, filesDeleted: 0, bytesTransferred: 0 };
|
|
4434
4521
|
}
|
|
4435
|
-
await this.rclone.flush(s.
|
|
4522
|
+
await this.rclone.flush(s.handleRef.current);
|
|
4436
4523
|
options?.onSyncStatus?.({
|
|
4437
4524
|
phase: "initial_sync_complete",
|
|
4438
4525
|
totalFiles: 0,
|
|
@@ -6928,6 +7015,135 @@ function isPackageResolvable(pkg, projectDir) {
|
|
|
6928
7015
|
function findMissingPackages(packages, projectDir) {
|
|
6929
7016
|
return packages.filter((p) => !isPackageResolvable(p, projectDir));
|
|
6930
7017
|
}
|
|
7018
|
+
|
|
7019
|
+
// connectors/src/rclone-token-refresh.ts
|
|
7020
|
+
var PROACTIVE_RCLONE_REFRESH_MARGIN_MS = 5 * 60 * 1e3;
|
|
7021
|
+
var DEFAULT_REACTIVE_COOLDOWN_MS = 30 * 1e3;
|
|
7022
|
+
var MAX_TIMER_MS = 2147483647;
|
|
7023
|
+
function createRcloneTokenRefresh(deps) {
|
|
7024
|
+
const now2 = deps.now ?? (() => Date.now());
|
|
7025
|
+
const setTimeoutImpl = deps.setTimeoutImpl ?? ((handler, ms) => setTimeout(handler, ms));
|
|
7026
|
+
const clearTimeoutImpl = deps.clearTimeoutImpl ?? ((handle) => {
|
|
7027
|
+
clearTimeout(handle);
|
|
7028
|
+
});
|
|
7029
|
+
const marginMs = deps.marginMs ?? PROACTIVE_RCLONE_REFRESH_MARGIN_MS;
|
|
7030
|
+
const reactiveCooldownMs = deps.reactiveCooldownMs ?? DEFAULT_REACTIVE_COOLDOWN_MS;
|
|
7031
|
+
let timer = null;
|
|
7032
|
+
let refreshing = false;
|
|
7033
|
+
let disposed = false;
|
|
7034
|
+
let lastRefreshAt = Number.NEGATIVE_INFINITY;
|
|
7035
|
+
function clearTimer() {
|
|
7036
|
+
if (timer !== null) {
|
|
7037
|
+
clearTimeoutImpl(timer);
|
|
7038
|
+
timer = null;
|
|
7039
|
+
}
|
|
7040
|
+
}
|
|
7041
|
+
function cancel() {
|
|
7042
|
+
disposed = true;
|
|
7043
|
+
clearTimer();
|
|
7044
|
+
}
|
|
7045
|
+
async function fire(reason) {
|
|
7046
|
+
if (refreshing || disposed) return;
|
|
7047
|
+
refreshing = true;
|
|
7048
|
+
try {
|
|
7049
|
+
let result;
|
|
7050
|
+
try {
|
|
7051
|
+
result = await deps.tokenMediator({ connectorId: deps.connectorId, reason });
|
|
7052
|
+
} catch (err) {
|
|
7053
|
+
deps.log(
|
|
7054
|
+
`[rclone-token-refresh] mediator threw: ${err instanceof Error ? err.message : String(err)}; reactive auth-error path remains as safety net`
|
|
7055
|
+
);
|
|
7056
|
+
return;
|
|
7057
|
+
}
|
|
7058
|
+
if (disposed) return;
|
|
7059
|
+
if (!result.ok) {
|
|
7060
|
+
deps.log(
|
|
7061
|
+
`[rclone-token-refresh] mediator refused (${result.code}: ${result.message}); reactive auth-error path remains as safety net`
|
|
7062
|
+
);
|
|
7063
|
+
return;
|
|
7064
|
+
}
|
|
7065
|
+
if (!result.token) {
|
|
7066
|
+
deps.log(
|
|
7067
|
+
"[rclone-token-refresh] mediator returned an empty token; reactive auth-error path remains as safety net"
|
|
7068
|
+
);
|
|
7069
|
+
return;
|
|
7070
|
+
}
|
|
7071
|
+
const handle = deps.handleRef.current;
|
|
7072
|
+
if (!handle) {
|
|
7073
|
+
deps.log("[rclone-token-refresh] no live rclone handle to recycle; skipping refresh");
|
|
7074
|
+
return;
|
|
7075
|
+
}
|
|
7076
|
+
const rcloneConfig = await deps.renderConfig(result.token);
|
|
7077
|
+
if (disposed) return;
|
|
7078
|
+
let next;
|
|
7079
|
+
try {
|
|
7080
|
+
next = await deps.rclone.reconfigure(handle, rcloneConfig);
|
|
7081
|
+
} catch (err) {
|
|
7082
|
+
deps.log(
|
|
7083
|
+
`[rclone-token-refresh] reconfigure failed: ${err instanceof Error ? err.message : String(err)}; reactive auth-error path remains as safety net`
|
|
7084
|
+
);
|
|
7085
|
+
return;
|
|
7086
|
+
}
|
|
7087
|
+
if (disposed) {
|
|
7088
|
+
deps.log("[rclone-token-refresh] disposed mid-recycle; stopping freshly-spawned process");
|
|
7089
|
+
try {
|
|
7090
|
+
await deps.rclone.stop(next);
|
|
7091
|
+
} catch {
|
|
7092
|
+
}
|
|
7093
|
+
return;
|
|
7094
|
+
}
|
|
7095
|
+
deps.handleRef.current = next;
|
|
7096
|
+
lastRefreshAt = now2();
|
|
7097
|
+
deps.log(
|
|
7098
|
+
`[rclone-token-refresh] recycled mount with refreshed token (reason=${reason}, expiresAt=${result.expiresAt ?? "none"})`
|
|
7099
|
+
);
|
|
7100
|
+
schedule(result.expiresAt);
|
|
7101
|
+
} finally {
|
|
7102
|
+
refreshing = false;
|
|
7103
|
+
}
|
|
7104
|
+
}
|
|
7105
|
+
function armTimer(fireAtMs) {
|
|
7106
|
+
const delayMs = Math.min(Math.max(0, fireAtMs - now2()), MAX_TIMER_MS);
|
|
7107
|
+
timer = setTimeoutImpl(() => {
|
|
7108
|
+
timer = null;
|
|
7109
|
+
if (now2() < fireAtMs) armTimer(fireAtMs);
|
|
7110
|
+
else void fire("refresh");
|
|
7111
|
+
}, delayMs);
|
|
7112
|
+
timer.unref?.();
|
|
7113
|
+
}
|
|
7114
|
+
function schedule(expiresAtIso) {
|
|
7115
|
+
clearTimer();
|
|
7116
|
+
if (disposed || !expiresAtIso) return;
|
|
7117
|
+
const expiresAtMs = Date.parse(expiresAtIso);
|
|
7118
|
+
if (!Number.isFinite(expiresAtMs)) return;
|
|
7119
|
+
const fireAtMs = expiresAtMs - marginMs;
|
|
7120
|
+
if (fireAtMs - now2() <= 0) {
|
|
7121
|
+
deps.log(`[rclone-token-refresh] token within ${marginMs / 1e3}s of expiry; refreshing now`);
|
|
7122
|
+
} else {
|
|
7123
|
+
deps.log(
|
|
7124
|
+
`[rclone-token-refresh] scheduled in ${Math.round((fireAtMs - now2()) / 1e3)}s (expiresAt=${expiresAtIso})`
|
|
7125
|
+
);
|
|
7126
|
+
}
|
|
7127
|
+
armTimer(fireAtMs);
|
|
7128
|
+
}
|
|
7129
|
+
function onAuthError() {
|
|
7130
|
+
if (refreshing || disposed) return;
|
|
7131
|
+
if (now2() - lastRefreshAt < reactiveCooldownMs) {
|
|
7132
|
+
deps.log(
|
|
7133
|
+
"[rclone-token-refresh] auth-error within refresh cooldown; suppressing reactive refresh"
|
|
7134
|
+
);
|
|
7135
|
+
return;
|
|
7136
|
+
}
|
|
7137
|
+
clearTimer();
|
|
7138
|
+
void fire("retry-401");
|
|
7139
|
+
}
|
|
7140
|
+
return {
|
|
7141
|
+
schedule,
|
|
7142
|
+
onAuthError,
|
|
7143
|
+
cancel,
|
|
7144
|
+
isPending: () => timer !== null
|
|
7145
|
+
};
|
|
7146
|
+
}
|
|
6931
7147
|
var WorktreeRegistryImpl = class {
|
|
6932
7148
|
entries = /* @__PURE__ */ new Map();
|
|
6933
7149
|
register(path2, owner) {
|
|
@@ -7948,6 +8164,6 @@ function createConnector() {
|
|
|
7948
8164
|
return new FlowAdapter();
|
|
7949
8165
|
}
|
|
7950
8166
|
|
|
7951
|
-
export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, DeployConnector, DevServerConnector, FlowAdapter, GitConnector, GmailConnector, GoogleDriveConnector, LocalConnector, LogBuffer, ManagedGitconfigCollisionError, MattermostConnector, MemoryConnector, MinIOConnector, NOT_READY_SENTINEL, PostgresConnector, RoMountPlaceholderBarrier, S3Connector, SQLiteConnector, SharePointConnector, StaticServerConnector, TunnelConnector, WebDAVConnector, XStateConnector, XStateStoreConnector, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, createConnector, createConnector10, createConnector11, createConnector12, createConnector13, createConnector14, createConnector15, createConnector16, createConnector17, createConnector18, createConnector19, createConnector2, createConnector3, createConnector4, createConnector5, createConnector6, createConnector7, createConnector8, createConnector9, createWorktree, defaultMountPlaceholderBarrier, defaultSpawn, ensureFleetMounted, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, removeMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock };
|
|
7952
|
-
//# sourceMappingURL=chunk-
|
|
7953
|
-
//# sourceMappingURL=chunk-
|
|
8167
|
+
export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, DEFAULT_REACTIVE_COOLDOWN_MS, DeployConnector, DevServerConnector, FlowAdapter, GitConnector, GmailConnector, GoogleDriveConnector, LocalConnector, LogBuffer, ManagedGitconfigCollisionError, MattermostConnector, MemoryConnector, MinIOConnector, NOT_READY_SENTINEL, PROACTIVE_RCLONE_REFRESH_MARGIN_MS, PostgresConnector, RoMountPlaceholderBarrier, S3Connector, SQLiteConnector, SharePointConnector, StaticServerConnector, TunnelConnector, WebDAVConnector, XStateConnector, XStateStoreConnector, __test, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, createConnector, createConnector10, createConnector11, createConnector12, createConnector13, createConnector14, createConnector15, createConnector16, createConnector17, createConnector18, createConnector19, createConnector2, createConnector3, createConnector4, createConnector5, createConnector6, createConnector7, createConnector8, createConnector9, createRcloneTokenRefresh, createWorktree, defaultMountPlaceholderBarrier, defaultSpawn, ensureFleetMounted, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, removeMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock };
|
|
8168
|
+
//# sourceMappingURL=chunk-362QBS57.js.map
|
|
8169
|
+
//# sourceMappingURL=chunk-362QBS57.js.map
|