Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e9953ba
feat: add initial ci.yml workflow
priley86 Dec 12, 2025
a3bc331
fix: check python version, fix ms-agent example dependency issue
priley86 Dec 12, 2025
a1b3dce
feat: ensure public pypi registry usage locally
priley86 Dec 12, 2025
c1771d4
feat: filter for changed projects only
priley86 Dec 12, 2025
dbadb32
fix: ensure build/lint output
priley86 Dec 12, 2025
03b7365
fix: asynchronous-authorization/langchain-fastapi-py build/lint
priley86 Dec 12, 2025
e0b4120
fix: copy .env.example file if it does not exist
priley86 Dec 12, 2025
1b414bb
fix: auth-for-mcp/hono-mcp-js build fixes
priley86 Dec 12, 2025
2bf0572
fix: auth-for-mcp/nextjs-mcp-js build issues
priley86 Dec 12, 2025
c723ee4
fix: xmcp-mcp-tokenvault-js build fix
priley86 Dec 12, 2025
9299c80
fix: authenticate-users/langchain-fastapi-py-starter build and lint f…
priley86 Dec 12, 2025
7c923f4
fix: auth-for-mcp/nextjs-mcp-js fixes
priley86 Dec 12, 2025
6996a60
fix: authenticate-users/langchain-fastapi-py-starter fixes
priley86 Dec 12, 2025
e12c8ca
fix: authorization-for-rag/langchain-fastapi-py build and lint fixes
priley86 Dec 12, 2025
437e8ab
fix: authorization-for-rag/langchain-fastapi-py build and lint fixes
priley86 Dec 12, 2025
7f29354
fix: call-apis-on-users-behalf/others-api/langchain-fastapi-py fixes
priley86 Dec 12, 2025
c6c7ff8
fix: call-apis-on-users-behalf/others-api/langchain-react-spa-js fixes
priley86 Dec 12, 2025
0704301
fix: detect workspaces in sub member packages
priley86 Dec 12, 2025
b410cb7
fix: call-apis-on-users-behalf/your-api/langchain-fastapi-py fixes
priley86 Dec 12, 2025
aa86819
fix: auth-for-mcp/fastmcp-mcp-customtokenexchange-python lint failures
priley86 Dec 12, 2025
bc024b6
fix: call-apis-on-users-behalf/others-api/ms-agent-framework-vault-to…
priley86 Dec 12, 2025
32462f1
fix: authenticate-users/langchain-fastapi-py-starter import malformed
priley86 Dec 12, 2025
8b1f89b
fix: call-apis-on-users-behalf/others-api/langchain-fastapi-py fixes
priley86 Dec 12, 2025
91c2acb
fix: authenticate-users/langchain-fastapi-py-starter fixes
priley86 Dec 12, 2025
5b9bbd2
fix: authorization-for-rag/langchain-fastapi-py import fixes
priley86 Dec 12, 2025
b200e3b
fix: authenticate-users/langchain-fastapi-py build and lint fixes
priley86 Dec 12, 2025
c885f24
fix: call-apis-on-users-behalf/others-api/langchain-fastapi-py malfor…
priley86 Dec 12, 2025
2bbca2d
fix: call-apis-on-users-behalf/your-api/langchain-fastapi-py malforme…
priley86 Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
444 changes: 444 additions & 0 deletions .github/workflows/ci.yml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
index-url = "https://pypi.org/simple/"
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,9 @@ export default tseslint.config([
ecmaVersion: 2020,
globals: globals.browser,
},
rules: {
'@typescript-eslint/no-explicit-any': 'warn',
'react-refresh/only-export-components': 'warn',
},
},
])

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
},
"devDependencies": {
"@eslint/js": "^9.30.1",
"@types/node": "^22.10.0",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.6.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
}) {
return (
<div className="flex flex-col max-w-[768px] mx-auto pb-12 w-full">
{props.messages.map((m, i) => {
{props.messages.map((m) => {
return (
<ChatMessageBubble key={m.id} message={m} aiEmoji={props.aiEmoji} />
);
Expand Down Expand Up @@ -124,7 +124,7 @@
const [threadId, setThreadId] = useQueryState("threadId");
const [input, setInput] = useState("");

const fetchWithCredentials = (url, options = {}) => {
const fetchWithCredentials = (url: string, options: RequestInit = {}) => {
return fetch(url, {
...options,
credentials: "include",
Expand All @@ -139,7 +139,7 @@
fetch: fetchWithCredentials,
},
onThreadId: setThreadId,
onError: (e: any) => {

Check warning on line 142 in asynchronous-authorization/langchain-fastapi-py/frontend/src/components/chat-window.tsx

View workflow job for this annotation

GitHub Actions / node (./asynchronous-authorization/langchain-fastapi-py/frontend)

Unexpected any. Specify a different type
console.error("Error: ", e);
toast.error(`Error while processing your request`, {
description: e.message,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"lib": ["ES2023"],
"module": "ESNext",
"skipLibCheck": true,
"types": ["node"],

/* Bundler mode */
"moduleResolution": "bundler",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import path from "path";
import { fileURLToPath, URL } from "node:url";
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import tailwindcss from "@tailwindcss/vite";
Expand All @@ -8,7 +8,7 @@ export default defineConfig({
plugins: [react(), tailwindcss()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[repositories]
[repositories.pypi]
url = "https://pypi.org/simple/"
default = true
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ async def dispatch(self, request: Request, call_next):
except VerifyAccessTokenError as e:
logger.info(f"Token verification failed: {e}")
return self._error_response("invalid_token", str(e))
except Exception as e:
except Exception:
logger.exception("Unexpected error in middleware")
return self._error_response("server_error", "Internal server error", 500)

Expand Down
4 changes: 4 additions & 0 deletions auth-for-mcp/fastmcp-mcp-python/poetry.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[repositories]
[repositories.pypi]
url = "https://pypi.org/simple/"
default = true
1 change: 1 addition & 0 deletions auth-for-mcp/hono-mcp-js/src/tools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ export const registerTools = (
{
title: "Whoami Tool",
description: "Returns the authenticated user's information",
inputSchema: emptyToolInputSchema,
annotations: { readOnlyHint: false },
},
(args, extra) =>
Expand Down
4 changes: 2 additions & 2 deletions auth-for-mcp/nextjs-mcp-js/.env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
AUTH0_DOMAIN=
AUTH0_AUDIENCE=
AUTH0_DOMAIN=example-tenant.us.auth0.com
AUTH0_AUDIENCE=http://localhost:3000/
MCP_SERVER_URL=http://localhost:3000
2 changes: 0 additions & 2 deletions auth-for-mcp/nextjs-mcp-js/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
"skipLibCheck": true,
"strict": true,
"target": "ES2022",
"outDir": "dist",
"rootDir": "src",
"allowJs": true,
"noEmit": true,
"jsx": "preserve",
Expand Down
9 changes: 5 additions & 4 deletions auth-for-mcp/xmcp-mcp-tokenvault-js/.env.example
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
AUTH0_DOMAIN=
AUTH0_AUDIENCE=
AUTH0_CLIENT_ID=
AUTH0_DOMAIN=your-tenant.us.auth0.com
AUTH0_AUDIENCE=http://localhost:3001/mcp
AUTH0_CLIENT_ID="{yourClientId}"


# One of the ways to authorize your client
AUTH0_CLIENT_SECRET=
AUTH0_CLIENT_SECRET="{yourClientSecret}"

PORT=3001
MCP_SERVER_URL=http://localhost:3001
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
index-url = "https://pypi.org/simple/"
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
import { globalIgnores } from 'eslint/config'
import js from "@eslint/js";
import globals from "globals";
import reactHooks from "eslint-plugin-react-hooks";
import reactRefresh from "eslint-plugin-react-refresh";
import tseslint from "typescript-eslint";
import { globalIgnores } from "eslint/config";

export default tseslint.config([
globalIgnores(['dist']),
globalIgnores(["dist"]),
{
files: ['**/*.{ts,tsx}'],
files: ["**/*.{ts,tsx}"],
extends: [
js.configs.recommended,
tseslint.configs.recommended,
reactHooks.configs['recommended-latest'],
reactHooks.configs["recommended-latest"],
reactRefresh.configs.vite,
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
rules: {
"@typescript-eslint/no-explicit-any": "warn",
"react-refresh/only-export-components": "warn",
},
},
])
]);

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
},
"devDependencies": {
"@eslint/js": "^9.30.1",
"@types/node": "^22.10.0",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.6.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import { ArrowDown, ArrowUpIcon, LoaderCircle } from "lucide-react";
import { useQueryState } from "nuqs";
import { useState } from "react";
import type { FormEvent, ReactNode } from "react";
import { toast } from "sonner";
import { StickToBottom, useStickToBottomContext } from "use-stick-to-bottom";
import { ArrowDown, ArrowUpIcon, LoaderCircle } from "lucide-react";
import { useQueryState } from "nuqs";
import { useStream } from "@langchain/langgraph-sdk/react";
import { type Message } from "@langchain/langgraph-sdk";

import { ChatMessageBubble } from "@/components/chat-message-bubble";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
import { useStream } from "@langchain/langgraph-sdk/react";

import type { Message } from "@langchain/langgraph-sdk";
import type { FormEvent, ReactNode } from "react";
function ChatMessages(props: {
messages: Message[];
emptyStateComponent: ReactNode;
Expand All @@ -19,7 +19,7 @@
}) {
return (
<div className="flex flex-col max-w-[768px] mx-auto pb-12 w-full">
{props.messages.map((m, i) => {
{props.messages.map((m) => {
return (
<ChatMessageBubble key={m.id} message={m} aiEmoji={props.aiEmoji} />
);
Expand Down Expand Up @@ -124,7 +124,7 @@
const [threadId, setThreadId] = useQueryState("threadId");
const [input, setInput] = useState("");

const fetchWithCredentials = (url, options = {}) => {
const fetchWithCredentials = (url: string, options: RequestInit = {}) => {
return fetch(url, {
...options,
credentials: "include",
Expand All @@ -139,7 +139,7 @@
fetch: fetchWithCredentials,
},
onThreadId: setThreadId,
onError: (e: any) => {

Check warning on line 142 in authenticate-users/langchain-fastapi-py-starter/frontend/src/components/chat-window.tsx

View workflow job for this annotation

GitHub Actions / node (./authenticate-users/langchain-fastapi-py-starter/frontend)

Unexpected any. Specify a different type
console.error("Error: ", e);
toast.error(`Error while processing your request`, {
description: e.message,
Expand All @@ -163,7 +163,7 @@
{ type: "human", content: input, id: "temp" },
],
}),
},
}
);
setInput("");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"lib": ["ES2023"],
"module": "ESNext",
"skipLibCheck": true,
"types": ["node"],

/* Bundler mode */
"moduleResolution": "bundler",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import path from "path";
import { fileURLToPath, URL } from "node:url";
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

import tailwindcss from "@tailwindcss/vite";
import react from "@vitejs/plugin-react";

// https://vite.dev/config/
export default defineConfig({
plugins: [react(), tailwindcss()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
});
1 change: 1 addition & 0 deletions authenticate-users/langchain-fastapi-py/backend/uv.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
index-url = "https://pypi.org/simple/"
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,11 @@ export default tseslint.config([
ecmaVersion: 2020,
globals: globals.browser,
},
rules: {
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/no-unused-expressions': 'warn',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'warn',
'react-refresh/only-export-components': 'warn',
},
},
])
18 changes: 18 additions & 0 deletions authenticate-users/langchain-fastapi-py/frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
},
"devDependencies": {
"@eslint/js": "^9.30.1",
"@types/node": "^22.15.32",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.6.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
}) {
return (
<div className="flex flex-col max-w-[768px] mx-auto pb-12 w-full">
{props.messages.map((m, i) => {
{props.messages.map((m) => {
return (
<ChatMessageBubble key={m.id} message={m} aiEmoji={props.aiEmoji} />
);
Expand Down Expand Up @@ -124,7 +124,7 @@
const [threadId, setThreadId] = useQueryState("threadId");
const [input, setInput] = useState("");

const fetchWithCredentials = (url, options = {}) => {
const fetchWithCredentials = (url: string, options: RequestInit = {}) => {
return fetch(url, {
...options,
credentials: "include",
Expand All @@ -139,7 +139,7 @@
fetch: fetchWithCredentials,
},
onThreadId: setThreadId,
onError: (e: any) => {

Check warning on line 142 in authenticate-users/langchain-fastapi-py/frontend/src/components/chat-window.tsx

View workflow job for this annotation

GitHub Actions / node (./authenticate-users/langchain-fastapi-py/frontend)

Unexpected any. Specify a different type
console.error("Error: ", e);
toast.error(`Error while processing your request`, {
description: e.message,
Expand Down
Loading
Loading