@clinebot/core 0.0.33 → 0.0.34
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/dist/auth/client.d.ts +19 -0
- package/dist/auth/client.d.ts.map +1 -1
- package/dist/auth/cline.d.ts.map +1 -1
- package/dist/auth/oca.d.ts.map +1 -1
- package/dist/auth/server.d.ts +32 -0
- package/dist/auth/server.d.ts.map +1 -1
- package/dist/auth/types.d.ts +29 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/extensions/index.d.ts +2 -1
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-config-loader.d.ts +2 -1
- package/dist/extensions/plugin/plugin-config-loader.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-load-report.d.ts +19 -0
- package/dist/extensions/plugin/plugin-load-report.d.ts.map +1 -0
- package/dist/extensions/plugin/plugin-loader.d.ts +6 -0
- package/dist/extensions/plugin/plugin-loader.d.ts.map +1 -1
- package/dist/extensions/plugin/plugin-sandbox.d.ts +2 -1
- package/dist/extensions/plugin/plugin-sandbox.d.ts.map +1 -1
- package/dist/extensions/plugin-sandbox-bootstrap.js +148 -148
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +207 -207
- package/dist/runtime/runtime-builder.d.ts +1 -1
- package/dist/runtime/runtime-builder.d.ts.map +1 -1
- package/dist/runtime/subprocess-sandbox.d.ts +2 -0
- package/dist/runtime/subprocess-sandbox.d.ts.map +1 -1
- package/dist/runtime/tool-approval.d.ts.map +1 -1
- package/dist/session/default-session-manager.d.ts.map +1 -1
- package/dist/session/persistence-service.d.ts.map +1 -1
- package/dist/session/session-artifacts.d.ts +2 -0
- package/dist/session/session-artifacts.d.ts.map +1 -1
- package/dist/session/session-config-builder.d.ts.map +1 -1
- package/dist/team/team-tools.d.ts.map +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/auth/client.test.ts +29 -0
- package/src/auth/client.ts +21 -0
- package/src/auth/cline.ts +2 -0
- package/src/auth/oca.ts +2 -0
- package/src/auth/server.test.ts +287 -0
- package/src/auth/server.ts +50 -1
- package/src/auth/types.ts +29 -0
- package/src/extensions/index.ts +6 -0
- package/src/extensions/plugin/plugin-config-loader.test.ts +37 -0
- package/src/extensions/plugin/plugin-config-loader.ts +18 -10
- package/src/extensions/plugin/plugin-load-report.ts +20 -0
- package/src/extensions/plugin/plugin-loader.test.ts +45 -0
- package/src/extensions/plugin/plugin-loader.ts +57 -3
- package/src/extensions/plugin/plugin-sandbox-bootstrap.ts +158 -86
- package/src/extensions/plugin/plugin-sandbox.test.ts +70 -0
- package/src/extensions/plugin/plugin-sandbox.ts +17 -6
- package/src/index.ts +11 -0
- package/src/runtime/hook-file-hooks.test.ts +42 -7
- package/src/runtime/runtime-builder.test.ts +98 -0
- package/src/runtime/runtime-builder.ts +112 -65
- package/src/runtime/subprocess-sandbox.ts +26 -23
- package/src/runtime/tool-approval.ts +13 -15
- package/src/session/default-session-manager.ts +1 -3
- package/src/session/persistence-service.test.ts +38 -0
- package/src/session/persistence-service.ts +16 -1
- package/src/session/session-artifacts.ts +16 -0
- package/src/session/session-config-builder.ts +46 -0
- package/src/team/team-tools.test.ts +104 -0
- package/src/team/team-tools.ts +35 -16
- package/src/types/config.ts +1 -0
- package/dist/runtime/team-runtime-registry.d.ts +0 -13
- package/dist/runtime/team-runtime-registry.d.ts.map +0 -1
- package/src/runtime/team-runtime-registry.ts +0 -43
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RuntimeBuilder, RuntimeBuilderInput, BuiltRuntime as RuntimeEnvironment } from "./session-runtime";
|
|
2
2
|
export declare function createTeamName(): string;
|
|
3
3
|
export declare class DefaultRuntimeBuilder implements RuntimeBuilder {
|
|
4
|
-
private readonly
|
|
4
|
+
private readonly teamRuntimeEntries;
|
|
5
5
|
build(input: RuntimeBuilderInput): Promise<RuntimeEnvironment>;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=runtime-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-builder.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime-builder.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EACX,cAAc,EACd,mBAAmB,EACnB,YAAY,IAAI,kBAAkB,EAClC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-builder.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime-builder.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EACX,cAAc,EACd,mBAAmB,EACnB,YAAY,IAAI,kBAAkB,EAClC,MAAM,mBAAmB,CAAC;AAoC3B,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AA+XD,qBAAa,qBAAsB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAQ/B;IAEE,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAqRpE"}
|
|
@@ -18,6 +18,8 @@ export declare class SubprocessSandbox {
|
|
|
18
18
|
private requestCounter;
|
|
19
19
|
private readonly pending;
|
|
20
20
|
constructor(options: SubprocessSandboxOptions);
|
|
21
|
+
private get processLabel();
|
|
22
|
+
private clearPendingRequest;
|
|
21
23
|
start(): void;
|
|
22
24
|
call<TResult = unknown>(method: string, args: unknown, options?: SandboxCallOptions): Promise<TResult>;
|
|
23
25
|
shutdown(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subprocess-sandbox.d.ts","sourceRoot":"","sources":["../../src/runtime/subprocess-sandbox.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,wBAAwB;IACxC,6FAA6F;IAC7F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+GAA+G;IAC/G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,kBAAkB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAeD,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;gBAEjD,OAAO,EAAE,wBAAwB;IAI7C,KAAK,IAAI,IAAI;IAkDP,IAAI,CAAC,OAAO,GAAG,OAAO,EAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,kBAAuB,GAC9B,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"subprocess-sandbox.d.ts","sourceRoot":"","sources":["../../src/runtime/subprocess-sandbox.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,wBAAwB;IACxC,6FAA6F;IAC7F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+GAA+G;IAC/G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,kBAAkB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAeD,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;gBAEjD,OAAO,EAAE,wBAAwB;IAI7C,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,mBAAmB;IAY3B,KAAK,IAAI,IAAI;IAkDP,IAAI,CAAC,OAAO,GAAG,OAAO,EAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,kBAAuB,GAC9B,OAAO,CAAC,OAAO,CAAC;IAmDb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B/B,OAAO,CAAC,SAAS;IA+BjB,OAAO,CAAC,WAAW;CASnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-approval.d.ts","sourceRoot":"","sources":["../../src/runtime/tool-approval.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,MAAM,0BAA0B,GAAG;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-approval.d.ts","sourceRoot":"","sources":["../../src/runtime/tool-approval.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,MAAM,0BAA0B,GAAG;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB,CAAC;AAkBF,wBAAsB,0BAA0B,CAC/C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,0BAA+B,GACtC,OAAO,CAAC,kBAAkB,CAAC,CAsE7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-session-manager.d.ts","sourceRoot":"","sources":["../../src/session/default-session-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"default-session-manager.d.ts","sourceRoot":"","sources":["../../src/session/default-session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence-service.d.ts","sourceRoot":"","sources":["../../src/session/persistence-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"persistence-service.d.ts","sourceRoot":"","sources":["../../src/session/persistence-service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,aAAa,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAU,gBAAgB,EAAkB,MAAM,qBAAqB,CAAC;AAM/E,OAAO,EACN,KAAK,eAAe,EAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACX,mCAAmC,EACnC,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,KAAK,EACX,2BAA2B,EAC3B,yBAAyB,EAEzB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,CAAC;AAYvE,qBAAa,gCAAgC;IAYhC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA+B;IACvE,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAA6B;IAC5E,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAG9C;IACJ,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAkC;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAU;gBAEnC,OAAO,EAAE,yBAAyB;IAI/D,iBAAiB,IAAI,MAAM;IAI3B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IAWzB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI3E,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAInE,OAAO,CAAC,gBAAgB;YAoBV,mBAAmB;IAcjC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,uBAAuB;IAYzB,8BAA8B,CACnC,KAAK,EAAE,mCAAmC,GACxC,OAAO,CAAC,oBAAoB,CAAC;IAyE1B,mBAAmB,CACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAyB5C,aAAa,CAAC,KAAK,EAAE;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAsE3B,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/D,OAAO,CAAC,kBAAkB;IA+CpB,qBAAqB,CAC1B,KAAK,EAAE,mBAAmB,GACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA+DxB,6BAA6B,CAClC,KAAK,EAAE,gBAAgB,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAqBxB,uBAAuB,CAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC;IAaV,4BAA4B,CACjC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;IAUV,sBAAsB,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,EACjC,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAoBV,mBAAmB,CACxB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC;IAOV,8BAA8B,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC;IAeV,iCAAiC,CACtC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC;IAcV,eAAe,CACpB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IA+BV,aAAa,CAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC;IA2BV,kBAAkB,CACvB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,CAAA;KAAE,GACpD,OAAO,CAAC,IAAI,CAAC;IAkCV,mBAAmB,CACxB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAgBV,iBAAiB,CACtB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,kBAAkB,GACzB,OAAO,CAAC,IAAI,CAAC;IA4BhB,OAAO,CAAC,UAAU;YAeJ,2BAA2B;IA2EnC,YAAY,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAqBhD,qBAAqB,CAAC,KAAK,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAapD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CA+CrE"}
|
|
@@ -15,6 +15,8 @@ export declare class SessionArtifacts {
|
|
|
15
15
|
sessionMessagesPath(sessionId: string): string;
|
|
16
16
|
sessionManifestPath(sessionId: string, ensureDir?: boolean): string;
|
|
17
17
|
removeSessionDirIfEmpty(sessionId: string): void;
|
|
18
|
+
removeSessionDir(sessionId: string): void;
|
|
19
|
+
removeDir(dir: string): void;
|
|
18
20
|
subagentArtifactPaths(sessionId: string, subAgentId: string, activeTeamTaskSessionId?: string): SessionArtifactPaths;
|
|
19
21
|
}
|
|
20
22
|
//# sourceMappingURL=session-artifacts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-artifacts.d.ts","sourceRoot":"","sources":["../../src/session/session-artifacts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-artifacts.d.ts","sourceRoot":"","sources":["../../src/session/session-artifacts.ts"],"names":[],"mappings":"AAWA,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CASpE;AAED,MAAM,WAAW,oBAAoB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACrB;AA4BD,qBAAa,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,MAAM,MAAM;IAErD,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI9C,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQpD,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIhD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAO1C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAO9C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,MAAM;IAOhE,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAqBhD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAW5B,qBAAqB,CAC3B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,uBAAuB,CAAC,EAAE,MAAM,GAC9B,oBAAoB;CAWvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-config-builder.d.ts","sourceRoot":"","sources":["../../src/session/session-config-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-config-builder.d.ts","sourceRoot":"","sources":["../../src/session/session-config-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAW1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,gBAAgB,EAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAwC3D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEtE;AAED,wBAAsB,oBAAoB,CACzC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,iBAAiB,GAAG,SAAS,EAC/C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAK,IAAI,GAClE,OAAO,CAAC;IACV,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C,CAAC,CA0DD;AAED,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,iBAAiB,EACzB,uBAAuB,EAAE,uBAAuB,EAChD,kBAAkB,EAAE,CACnB,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,gBAAgB,CAAC,WAAW,CAAC,KAC1C,gBAAgB,CAAC,WAAW,CAAC,GAChC,cAAc,CAmBhB;AAED,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAC5C,gBAAgB,CAAC,WAAW,CAAC,CAS/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-tools.d.ts","sourceRoot":"","sources":["../../src/team/team-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAoCN,KAAK,gBAAgB,EAYrB,KAAK,gBAAgB,EACrB,KAAK,IAAI,EAGT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEN,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAwDvD,MAAM,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAEpE,MAAM,WAAW,4BAA4B;IAC5C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,4BAA4B,CAAC;IACrD,eAAe,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA0B;IAC1C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,sBAAsB,EAAE,4BAA4B,CAAC;IACrD,eAAe,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACzC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAmCD,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,0BAA0B,GACjC,yBAAyB,CAmC3B;AAED,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,4BAA4B,GACnC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"team-tools.d.ts","sourceRoot":"","sources":["../../src/team/team-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAoCN,KAAK,gBAAgB,EAYrB,KAAK,gBAAgB,EACrB,KAAK,IAAI,EAGT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEN,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAwDvD,MAAM,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAEpE,MAAM,WAAW,4BAA4B;IAC5C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,4BAA4B,CAAC;IACrD,eAAe,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA0B;IAC1C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,sBAAsB,EAAE,4BAA4B,CAAC;IACrD,eAAe,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACzC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAmCD,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,0BAA0B,GACjC,yBAAyB,CAmC3B;AAED,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,4BAA4B,GACnC,IAAI,EAAE,CA0hBR;AAED,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,gBAAgB,GACrB,gBAAgB,CAyClB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrD"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,aAAa,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,8BAA8B,EAC9B,+BAA+B,EAC/B,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,IAAI,EACJ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACtD;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,mBAAmB;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,KAAK,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,8BAA8B;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACtD,cAAc,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,8BAA8B,CAAC;IAC5C,OAAO,CAAC,EAAE,CACT,OAAO,EAAE,qBAAqB,KAE5B,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,GACzC,oBAAoB,GACpB,SAAS,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAC/C,OAAO,CACL;QACA,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;KACzB,GACD,SAAS,CACV,GACD;QACA,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;KACzB,GACD,SAAS,CAAC;CACb;AAED,MAAM,WAAW,iBAChB,SAAQ,eAAe,EACtB,mBAAmB,EACnB,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,EAC7C,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,EACzC,IAAI,CACH,sBAAsB,EACpB,aAAa,GACb,UAAU,GACV,yBAAyB,GACzB,sBAAsB,GACtB,wBAAwB,CAC1B;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,gCAAgC,CAAC,EAAE,CAClC,OAAO,EAAE,8BAA8B,KAErC,OAAO,CAAC,+BAA+B,CAAC,GACxC,+BAA+B,CAAC;IACnC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clinebot/core",
|
|
3
3
|
"description": "Cline Core SDK for Node Runtime",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.34",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"test:watch": "vitest --config vitest.config.ts"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@clinebot/agents": "0.0.
|
|
40
|
-
"@clinebot/llms": "0.0.
|
|
39
|
+
"@clinebot/agents": "0.0.34",
|
|
40
|
+
"@clinebot/llms": "0.0.34",
|
|
41
41
|
"@opentelemetry/api": "^1.9.0",
|
|
42
42
|
"@opentelemetry/api-logs": "^0.214.0",
|
|
43
43
|
"@opentelemetry/exporter-logs-otlp-http": "^0.214.0",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@clinebot/rpc": "0.0.28",
|
|
61
|
-
"@clinebot/shared": "0.0.
|
|
61
|
+
"@clinebot/shared": "0.0.34"
|
|
62
62
|
},
|
|
63
63
|
"engines": {
|
|
64
64
|
"node": ">=22"
|
package/src/auth/client.test.ts
CHANGED
|
@@ -37,4 +37,33 @@ describe("auth/client createOAuthClientCallbacks", () => {
|
|
|
37
37
|
url: "https://example.com/auth",
|
|
38
38
|
});
|
|
39
39
|
});
|
|
40
|
+
|
|
41
|
+
it("forwards onServerListening to the returned callbacks", () => {
|
|
42
|
+
const onServerListening = vi.fn();
|
|
43
|
+
const callbacks = createOAuthClientCallbacks({
|
|
44
|
+
onPrompt: vi.fn().mockResolvedValue(""),
|
|
45
|
+
onServerListening,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
expect(callbacks.onServerListening).toBe(onServerListening);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it("forwards onServerClose to the returned callbacks", () => {
|
|
52
|
+
const onServerClose = vi.fn();
|
|
53
|
+
const callbacks = createOAuthClientCallbacks({
|
|
54
|
+
onPrompt: vi.fn().mockResolvedValue(""),
|
|
55
|
+
onServerClose,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
expect(callbacks.onServerClose).toBe(onServerClose);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("leaves onServerListening and onServerClose undefined when not provided", () => {
|
|
62
|
+
const callbacks = createOAuthClientCallbacks({
|
|
63
|
+
onPrompt: vi.fn().mockResolvedValue(""),
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
expect(callbacks.onServerListening).toBeUndefined();
|
|
67
|
+
expect(callbacks.onServerClose).toBeUndefined();
|
|
68
|
+
});
|
|
40
69
|
});
|
package/src/auth/client.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { OAuthServerCloseInfo, OAuthServerListeningInfo } from "./server";
|
|
1
2
|
import type { OAuthLoginCallbacks, OAuthPrompt } from "./types";
|
|
2
3
|
|
|
3
4
|
export interface OAuthClientCallbacksOptions {
|
|
@@ -5,6 +6,24 @@ export interface OAuthClientCallbacksOptions {
|
|
|
5
6
|
onOutput?: (message: string) => void;
|
|
6
7
|
openUrl?: (url: string) => void | Promise<void>;
|
|
7
8
|
onOpenUrlError?: (context: { url: string; error: unknown }) => void;
|
|
9
|
+
/**
|
|
10
|
+
* Called when the local OAuth redirect server successfully binds to a port
|
|
11
|
+
* and is ready to receive the browser callback.
|
|
12
|
+
*
|
|
13
|
+
* Forwarded directly from `OAuthLoginCallbacks.onServerListening`.
|
|
14
|
+
* Use this to show a "waiting for OAuth callback on :::1 port N" status
|
|
15
|
+
* message or, in remote-development environments (e.g. JetBrains Gateway),
|
|
16
|
+
* to set up a port-forward from the remote machine to the local one.
|
|
17
|
+
*/
|
|
18
|
+
onServerListening?: (info: OAuthServerListeningInfo) => void | Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Called when the local OAuth redirect server closes.
|
|
21
|
+
*
|
|
22
|
+
* Forwarded directly from `OAuthLoginCallbacks.onServerClose`.
|
|
23
|
+
* Use this to tear down port-forwards and clear any status UI set up in
|
|
24
|
+
* `onServerListening`.
|
|
25
|
+
*/
|
|
26
|
+
onServerClose?: (info: OAuthServerCloseInfo) => void | Promise<void>;
|
|
8
27
|
}
|
|
9
28
|
|
|
10
29
|
export function createOAuthClientCallbacks(
|
|
@@ -21,5 +40,7 @@ export function createOAuthClientCallbacks(
|
|
|
21
40
|
options.onOutput?.(url);
|
|
22
41
|
},
|
|
23
42
|
onPrompt: options.onPrompt,
|
|
43
|
+
onServerListening: options.onServerListening,
|
|
44
|
+
onServerClose: options.onServerClose,
|
|
24
45
|
};
|
|
25
46
|
}
|
package/src/auth/cline.ts
CHANGED
|
@@ -457,6 +457,8 @@ export async function loginClineOAuth(
|
|
|
457
457
|
: await startLocalOAuthServer({
|
|
458
458
|
ports: callbackPorts,
|
|
459
459
|
callbackPath,
|
|
460
|
+
onListening: options.callbacks.onServerListening,
|
|
461
|
+
onClose: options.callbacks.onServerClose,
|
|
460
462
|
});
|
|
461
463
|
const callbackUrl =
|
|
462
464
|
localServer?.callbackUrl ||
|
package/src/auth/oca.ts
CHANGED
|
@@ -363,6 +363,8 @@ export async function loginOcaOAuth(
|
|
|
363
363
|
const localServer = await startLocalOAuthServer({
|
|
364
364
|
ports: callbackPorts,
|
|
365
365
|
callbackPath,
|
|
366
|
+
onListening: options.callbacks.onServerListening,
|
|
367
|
+
onClose: options.callbacks.onServerClose,
|
|
366
368
|
});
|
|
367
369
|
const callbackUrl = localServer.callbackUrl;
|
|
368
370
|
if (!callbackUrl) {
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import http from "node:http";
|
|
2
|
+
import net from "node:net";
|
|
3
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
4
|
+
import { startLocalOAuthServer } from "./server";
|
|
5
|
+
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Helpers
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
/** Bind to port 0 to let the OS pick a free port, then release it. */
|
|
11
|
+
function getFreePort(): Promise<number> {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
const srv = net.createServer();
|
|
14
|
+
srv.listen(0, "127.0.0.1", () => {
|
|
15
|
+
const addr = srv.address() as net.AddressInfo;
|
|
16
|
+
srv.close(() => resolve(addr.port));
|
|
17
|
+
});
|
|
18
|
+
srv.on("error", reject);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Occupy a port so the OAuth server cannot bind to it. */
|
|
23
|
+
function occupyPort(port: number): Promise<http.Server> {
|
|
24
|
+
return new Promise((resolve, reject) => {
|
|
25
|
+
const srv = http.createServer();
|
|
26
|
+
srv.listen(port, "127.0.0.1", () => resolve(srv));
|
|
27
|
+
srv.on("error", reject);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Close an http.Server, resolving when the socket is gone. */
|
|
32
|
+
function closeServer(srv: http.Server): Promise<void> {
|
|
33
|
+
return new Promise((resolve, reject) =>
|
|
34
|
+
srv.close((err) => (err ? reject(err) : resolve())),
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Make a GET request and return status + body. */
|
|
39
|
+
function get(url: string): Promise<{ status: number; body: string }> {
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
http
|
|
42
|
+
.get(url, (res) => {
|
|
43
|
+
let body = "";
|
|
44
|
+
res.on("data", (chunk: Buffer) => {
|
|
45
|
+
body += chunk.toString();
|
|
46
|
+
});
|
|
47
|
+
res.on("end", () => resolve({ status: res.statusCode ?? 0, body }));
|
|
48
|
+
})
|
|
49
|
+
.on("error", reject);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Flush microtasks + a short macro-task delay for fire-and-forget promises. */
|
|
54
|
+
function flushAsync(): Promise<void> {
|
|
55
|
+
return new Promise((resolve) => setTimeout(resolve, 20));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
// onListening
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
|
|
62
|
+
describe("auth/server startLocalOAuthServer — onListening", () => {
|
|
63
|
+
it("is called with host, port, and callbackUrl when the server binds", async () => {
|
|
64
|
+
const port = await getFreePort();
|
|
65
|
+
const onListening = vi.fn();
|
|
66
|
+
|
|
67
|
+
const server = await startLocalOAuthServer({
|
|
68
|
+
ports: [port],
|
|
69
|
+
callbackPath: "/callback",
|
|
70
|
+
onListening,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
expect(onListening).toHaveBeenCalledOnce();
|
|
74
|
+
expect(onListening).toHaveBeenCalledWith({
|
|
75
|
+
host: "127.0.0.1",
|
|
76
|
+
port,
|
|
77
|
+
callbackUrl: `http://127.0.0.1:${port}/callback`,
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
server.close();
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it("is not called when no port can be bound", async () => {
|
|
84
|
+
const port = await getFreePort();
|
|
85
|
+
const blocker = await occupyPort(port);
|
|
86
|
+
const onListening = vi.fn();
|
|
87
|
+
|
|
88
|
+
await startLocalOAuthServer({
|
|
89
|
+
ports: [port],
|
|
90
|
+
callbackPath: "/callback",
|
|
91
|
+
onListening,
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
expect(onListening).not.toHaveBeenCalled();
|
|
95
|
+
|
|
96
|
+
await closeServer(blocker);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it("fires for the first available port and skips occupied ones", async () => {
|
|
100
|
+
const [port1, port2] = await Promise.all([getFreePort(), getFreePort()]);
|
|
101
|
+
const blocker = await occupyPort(port1);
|
|
102
|
+
const onListening = vi.fn();
|
|
103
|
+
|
|
104
|
+
const server = await startLocalOAuthServer({
|
|
105
|
+
ports: [port1, port2],
|
|
106
|
+
callbackPath: "/cb",
|
|
107
|
+
onListening,
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
expect(onListening).toHaveBeenCalledOnce();
|
|
111
|
+
expect(onListening).toHaveBeenCalledWith(
|
|
112
|
+
expect.objectContaining({ port: port2 }),
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
server.close();
|
|
116
|
+
await closeServer(blocker);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
it("swallows errors thrown by the onListening callback", async () => {
|
|
120
|
+
const port = await getFreePort();
|
|
121
|
+
const onListening = vi
|
|
122
|
+
.fn()
|
|
123
|
+
.mockReturnValue(Promise.reject(new Error("listening boom")));
|
|
124
|
+
|
|
125
|
+
const server = await startLocalOAuthServer({
|
|
126
|
+
ports: [port],
|
|
127
|
+
callbackPath: "/callback",
|
|
128
|
+
onListening,
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
await flushAsync();
|
|
132
|
+
expect(onListening).toHaveBeenCalledOnce();
|
|
133
|
+
|
|
134
|
+
server.close();
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
// onClose
|
|
140
|
+
// ---------------------------------------------------------------------------
|
|
141
|
+
|
|
142
|
+
describe("auth/server startLocalOAuthServer — onClose", () => {
|
|
143
|
+
it("is called with host and port when close() is invoked", async () => {
|
|
144
|
+
const port = await getFreePort();
|
|
145
|
+
const onClose = vi.fn();
|
|
146
|
+
|
|
147
|
+
const server = await startLocalOAuthServer({
|
|
148
|
+
ports: [port],
|
|
149
|
+
callbackPath: "/callback",
|
|
150
|
+
onClose,
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
server.close();
|
|
154
|
+
|
|
155
|
+
expect(onClose).toHaveBeenCalledOnce();
|
|
156
|
+
expect(onClose).toHaveBeenCalledWith({ host: "127.0.0.1", port });
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
it("is called with host and port when cancelWait() is invoked", async () => {
|
|
160
|
+
const port = await getFreePort();
|
|
161
|
+
const onClose = vi.fn();
|
|
162
|
+
|
|
163
|
+
const server = await startLocalOAuthServer({
|
|
164
|
+
ports: [port],
|
|
165
|
+
callbackPath: "/callback",
|
|
166
|
+
onClose,
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
server.cancelWait();
|
|
170
|
+
|
|
171
|
+
expect(onClose).toHaveBeenCalledOnce();
|
|
172
|
+
expect(onClose).toHaveBeenCalledWith({ host: "127.0.0.1", port });
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
it("is called after a successful OAuth callback request", async () => {
|
|
176
|
+
const port = await getFreePort();
|
|
177
|
+
const onClose = vi.fn();
|
|
178
|
+
|
|
179
|
+
const server = await startLocalOAuthServer({
|
|
180
|
+
ports: [port],
|
|
181
|
+
callbackPath: "/callback",
|
|
182
|
+
onClose,
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
const waitPromise = server.waitForCallback();
|
|
186
|
+
const { status } = await get(
|
|
187
|
+
`http://127.0.0.1:${port}/callback?code=tok123`,
|
|
188
|
+
);
|
|
189
|
+
expect(status).toBe(200);
|
|
190
|
+
|
|
191
|
+
await waitPromise;
|
|
192
|
+
|
|
193
|
+
expect(onClose).toHaveBeenCalledOnce();
|
|
194
|
+
expect(onClose).toHaveBeenCalledWith({ host: "127.0.0.1", port });
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
it("is not called when no port was bound", async () => {
|
|
198
|
+
const port = await getFreePort();
|
|
199
|
+
const blocker = await occupyPort(port);
|
|
200
|
+
const onClose = vi.fn();
|
|
201
|
+
|
|
202
|
+
const server = await startLocalOAuthServer({
|
|
203
|
+
ports: [port],
|
|
204
|
+
callbackPath: "/callback",
|
|
205
|
+
onClose,
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
server.close();
|
|
209
|
+
expect(onClose).not.toHaveBeenCalled();
|
|
210
|
+
|
|
211
|
+
await closeServer(blocker);
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
it("swallows errors thrown by the onClose callback", async () => {
|
|
215
|
+
const port = await getFreePort();
|
|
216
|
+
const onClose = vi
|
|
217
|
+
.fn()
|
|
218
|
+
.mockReturnValue(Promise.reject(new Error("teardown failed")));
|
|
219
|
+
|
|
220
|
+
const server = await startLocalOAuthServer({
|
|
221
|
+
ports: [port],
|
|
222
|
+
callbackPath: "/callback",
|
|
223
|
+
onClose,
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
server.close();
|
|
227
|
+
await flushAsync();
|
|
228
|
+
|
|
229
|
+
expect(onClose).toHaveBeenCalledOnce();
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
// ---------------------------------------------------------------------------
|
|
234
|
+
// onListening + onClose ordering
|
|
235
|
+
// ---------------------------------------------------------------------------
|
|
236
|
+
|
|
237
|
+
describe("auth/server startLocalOAuthServer — onListening + onClose together", () => {
|
|
238
|
+
afterEach(() => {
|
|
239
|
+
vi.restoreAllMocks();
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
it("fires onListening on bind then onClose after a successful callback", async () => {
|
|
243
|
+
const port = await getFreePort();
|
|
244
|
+
const order: string[] = [];
|
|
245
|
+
|
|
246
|
+
const server = await startLocalOAuthServer({
|
|
247
|
+
ports: [port],
|
|
248
|
+
callbackPath: "/cb",
|
|
249
|
+
onListening: vi.fn(() => {
|
|
250
|
+
order.push("listening");
|
|
251
|
+
}),
|
|
252
|
+
onClose: vi.fn(() => {
|
|
253
|
+
order.push("close");
|
|
254
|
+
}),
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
expect(order).toEqual(["listening"]);
|
|
258
|
+
|
|
259
|
+
const waitPromise = server.waitForCallback();
|
|
260
|
+
await get(`http://127.0.0.1:${port}/cb?code=mycode`);
|
|
261
|
+
const payload = await waitPromise;
|
|
262
|
+
|
|
263
|
+
expect(payload?.code).toBe("mycode");
|
|
264
|
+
expect(order).toEqual(["listening", "close"]);
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
it("fires onListening on bind then onClose after cancelWait()", async () => {
|
|
268
|
+
const port = await getFreePort();
|
|
269
|
+
const order: string[] = [];
|
|
270
|
+
|
|
271
|
+
const server = await startLocalOAuthServer({
|
|
272
|
+
ports: [port],
|
|
273
|
+
callbackPath: "/cb",
|
|
274
|
+
onListening: vi.fn(() => {
|
|
275
|
+
order.push("listening");
|
|
276
|
+
}),
|
|
277
|
+
onClose: vi.fn(() => {
|
|
278
|
+
order.push("close");
|
|
279
|
+
}),
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
expect(order).toEqual(["listening"]);
|
|
283
|
+
|
|
284
|
+
server.cancelWait();
|
|
285
|
+
expect(order).toEqual(["listening", "close"]);
|
|
286
|
+
});
|
|
287
|
+
});
|
package/src/auth/server.ts
CHANGED
|
@@ -19,6 +19,17 @@ function createDeferred<T>(): Deferred<T> {
|
|
|
19
19
|
return { promise, resolve };
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
export interface OAuthServerListeningInfo {
|
|
23
|
+
host: string;
|
|
24
|
+
port: number;
|
|
25
|
+
callbackUrl: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface OAuthServerCloseInfo {
|
|
29
|
+
host: string;
|
|
30
|
+
port: number;
|
|
31
|
+
}
|
|
32
|
+
|
|
22
33
|
export interface LocalOAuthServerOptions {
|
|
23
34
|
host?: string;
|
|
24
35
|
ports: number[];
|
|
@@ -26,6 +37,29 @@ export interface LocalOAuthServerOptions {
|
|
|
26
37
|
timeoutMs?: number;
|
|
27
38
|
expectedState?: string;
|
|
28
39
|
successHtml?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Called when the local redirect server successfully binds to a port and is
|
|
42
|
+
* ready to receive the OAuth callback. Hosts can use this to display a
|
|
43
|
+
* "waiting for callback" status indicator or — in remote-development
|
|
44
|
+
* environments like JetBrains Gateway — to forward the port from the remote
|
|
45
|
+
* machine to the local machine where the user's browser is running.
|
|
46
|
+
*
|
|
47
|
+
* May be async; `startLocalOAuthServer` will **await** this callback before
|
|
48
|
+
* returning so that any setup it performs (e.g. port-forwarding) is
|
|
49
|
+
* guaranteed to complete before the caller opens the auth URL. Errors
|
|
50
|
+
* thrown by this callback are swallowed — they do not prevent the OAuth
|
|
51
|
+
* flow from proceeding.
|
|
52
|
+
*/
|
|
53
|
+
onListening?: (info: OAuthServerListeningInfo) => void | Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Called when the local redirect server closes, either because the OAuth
|
|
56
|
+
* callback was received, the flow was cancelled, or the timeout elapsed.
|
|
57
|
+
* Hosts should use this to tear down any port-forward set up in
|
|
58
|
+
* `onListening` and clear any "waiting for callback" status UI.
|
|
59
|
+
*
|
|
60
|
+
* May be async; fired after the underlying server socket is closed.
|
|
61
|
+
*/
|
|
62
|
+
onClose?: (info: OAuthServerCloseInfo) => void | Promise<void>;
|
|
29
63
|
}
|
|
30
64
|
|
|
31
65
|
export interface LocalOAuthServer {
|
|
@@ -48,6 +82,7 @@ export async function startLocalOAuthServer(
|
|
|
48
82
|
let settled = false;
|
|
49
83
|
let timeout: ReturnType<typeof setTimeout> | null = null;
|
|
50
84
|
let activeServer: import("node:http").Server | null = null;
|
|
85
|
+
let boundPort: number | null = null;
|
|
51
86
|
|
|
52
87
|
const settle = (value: OAuthCallbackPayload | null) => {
|
|
53
88
|
if (settled) return;
|
|
@@ -60,10 +95,17 @@ export async function startLocalOAuthServer(
|
|
|
60
95
|
clearTimeout(timeout);
|
|
61
96
|
timeout = null;
|
|
62
97
|
}
|
|
98
|
+
const closingPort = boundPort;
|
|
99
|
+
boundPort = null;
|
|
63
100
|
if (activeServer) {
|
|
64
101
|
activeServer.close();
|
|
65
102
|
activeServer = null;
|
|
66
103
|
}
|
|
104
|
+
if (closingPort !== null && options.onClose) {
|
|
105
|
+
void Promise.resolve(options.onClose({ host, port: closingPort })).catch(
|
|
106
|
+
() => {},
|
|
107
|
+
);
|
|
108
|
+
}
|
|
67
109
|
};
|
|
68
110
|
|
|
69
111
|
const waitForCallback = async () => {
|
|
@@ -149,8 +191,15 @@ export async function startLocalOAuthServer(
|
|
|
149
191
|
}
|
|
150
192
|
|
|
151
193
|
if (bindResult.bound) {
|
|
194
|
+
boundPort = port;
|
|
195
|
+
const callbackUrl = `http://${host}:${port}${options.callbackPath}`;
|
|
196
|
+
if (options.onListening) {
|
|
197
|
+
await Promise.resolve(
|
|
198
|
+
options.onListening({ host, port, callbackUrl }),
|
|
199
|
+
).catch(() => {});
|
|
200
|
+
}
|
|
152
201
|
return {
|
|
153
|
-
callbackUrl
|
|
202
|
+
callbackUrl,
|
|
154
203
|
waitForCallback,
|
|
155
204
|
cancelWait: () => {
|
|
156
205
|
close();
|