dexto 1.1.7 → 1.1.8

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.
Files changed (53) hide show
  1. package/dist/agents/agent-registry.json +8 -1
  2. package/dist/agents/github-agent/README.md +58 -0
  3. package/dist/agents/github-agent/github-agent.yml +57 -0
  4. package/dist/api/server.d.ts +2 -2
  5. package/dist/api/server.d.ts.map +1 -1
  6. package/dist/api/server.js +239 -57
  7. package/dist/api/webhook-subscriber.d.ts +4 -0
  8. package/dist/api/webhook-subscriber.d.ts.map +1 -1
  9. package/dist/api/webhook-subscriber.js +15 -0
  10. package/dist/api/websocket-subscriber.d.ts +5 -0
  11. package/dist/api/websocket-subscriber.d.ts.map +1 -1
  12. package/dist/api/websocket-subscriber.js +16 -0
  13. package/dist/cli/cli.js +1 -1
  14. package/dist/index.js +2 -2
  15. package/dist/utils/graceful-shutdown.d.ts +1 -1
  16. package/dist/utils/graceful-shutdown.d.ts.map +1 -1
  17. package/dist/utils/graceful-shutdown.js +9 -6
  18. package/dist/webui/.next/standalone/.next/static/chunks/179-78abc2eacbc41da9.js +1 -0
  19. package/dist/webui/.next/standalone/{packages/webui/.next/static/chunks/app/page-cf95b233c1df6dcd.js → .next/static/chunks/app/page-1a1b5591a5f62ca5.js} +1 -1
  20. package/dist/webui/.next/standalone/.next/static/css/045cc65741e38fbd.css +3 -0
  21. package/dist/webui/.next/standalone/packages/webui/.next/BUILD_ID +1 -1
  22. package/dist/webui/.next/standalone/packages/webui/.next/app-build-manifest.json +3 -3
  23. package/dist/webui/.next/standalone/packages/webui/.next/build-manifest.json +2 -2
  24. package/dist/webui/.next/standalone/packages/webui/.next/prerender-manifest.json +3 -3
  25. package/dist/webui/.next/standalone/packages/webui/.next/required-server-files.json +1 -1
  26. package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  27. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js +2 -2
  28. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page_client-reference-manifest.js +1 -1
  29. package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page_client-reference-manifest.js +1 -1
  30. package/dist/webui/.next/standalone/packages/webui/.next/server/pages/500.html +1 -1
  31. package/dist/webui/.next/standalone/packages/webui/.next/server/server-reference-manifest.json +1 -1
  32. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/179-78abc2eacbc41da9.js +1 -0
  33. package/dist/webui/.next/standalone/{.next/static/chunks/app/page-cf95b233c1df6dcd.js → packages/webui/.next/static/chunks/app/page-1a1b5591a5f62ca5.js} +1 -1
  34. package/dist/webui/.next/standalone/packages/webui/.next/static/css/045cc65741e38fbd.css +3 -0
  35. package/dist/webui/.next/standalone/packages/webui/package.json +1 -1
  36. package/dist/webui/.next/standalone/packages/webui/server.js +1 -1
  37. package/dist/webui/.next/static/chunks/179-78abc2eacbc41da9.js +1 -0
  38. package/dist/webui/.next/static/chunks/app/{page-cf95b233c1df6dcd.js → page-1a1b5591a5f62ca5.js} +1 -1
  39. package/dist/webui/.next/static/css/045cc65741e38fbd.css +3 -0
  40. package/dist/webui/package.json +1 -1
  41. package/package.json +2 -2
  42. package/dist/webui/.next/standalone/.next/static/chunks/762-8cfe2287ad3f2d16.js +0 -1
  43. package/dist/webui/.next/standalone/.next/static/css/9cdfb06589a2f6ce.css +0 -3
  44. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/762-8cfe2287ad3f2d16.js +0 -1
  45. package/dist/webui/.next/standalone/packages/webui/.next/static/css/9cdfb06589a2f6ce.css +0 -3
  46. package/dist/webui/.next/static/chunks/762-8cfe2287ad3f2d16.js +0 -1
  47. package/dist/webui/.next/static/css/9cdfb06589a2f6ce.css +0 -3
  48. /package/dist/webui/.next/standalone/.next/static/{s008aheUrlJbknTlTTTmY → _5RTE-15cb-kjZPtF45Oe}/_buildManifest.js +0 -0
  49. /package/dist/webui/.next/standalone/.next/static/{s008aheUrlJbknTlTTTmY → _5RTE-15cb-kjZPtF45Oe}/_ssgManifest.js +0 -0
  50. /package/dist/webui/.next/standalone/packages/webui/.next/static/{s008aheUrlJbknTlTTTmY → _5RTE-15cb-kjZPtF45Oe}/_buildManifest.js +0 -0
  51. /package/dist/webui/.next/standalone/packages/webui/.next/static/{s008aheUrlJbknTlTTTmY → _5RTE-15cb-kjZPtF45Oe}/_ssgManifest.js +0 -0
  52. /package/dist/webui/.next/static/{s008aheUrlJbknTlTTTmY → _5RTE-15cb-kjZPtF45Oe}/_buildManifest.js +0 -0
  53. /package/dist/webui/.next/static/{s008aheUrlJbknTlTTTmY → _5RTE-15cb-kjZPtF45Oe}/_ssgManifest.js +0 -0
@@ -8,6 +8,13 @@
8
8
  "source": "database-agent/",
9
9
  "main": "database-agent.yml"
10
10
  },
11
+ "github-agent": {
12
+ "description": "GitHub operations agent for analyzing pull requests, issues, repos and more",
13
+ "author": "Truffle AI",
14
+ "tags": ["github", "repositories", "collaboration", "devops", "mcp"],
15
+ "source": "github-agent/",
16
+ "main": "github-agent.yml"
17
+ },
11
18
  "talk2pdf-agent": {
12
19
  "description": "PDF document analysis and conversation",
13
20
  "author": "Truffle AI",
@@ -64,4 +71,4 @@
64
71
  "source": "default-agent.yml"
65
72
  }
66
73
  }
67
- }
74
+ }
@@ -0,0 +1,58 @@
1
+ # GitHub Integration Agent
2
+
3
+ Bring GitHub context into any workspace. This agent starts the `@truffle-ai/github-mcp-server` in `stdio` mode so the assistant can explore repositories, manage pull requests, and automate GitHub project workflows directly from chat.
4
+
5
+ ## What You Get
6
+ - Full coverage of GitHub toolsets (repos, pull requests, issues, actions, discussions, notifications, security, projects, and more)
7
+ - Automatic OAuth device-flow login with cached tokens, no personal access token required for most users
8
+ - Safe-guarded write operations (issues, PRs, workflow runs, comments, etc.) that the agent confirms before executing
9
+ - Optional read-only or scoped toolsets to limit the surface area for sensitive environments
10
+
11
+ ## Requirements
12
+ - Node.js 18+ with access to `npx`
13
+ - A GitHub account with access to the repositories you plan to manage
14
+ - Browser access to complete the one-time device-code OAuth prompt (opened automatically)
15
+ - `OPENAI_API_KEY` (or another configured LLM key) exported in your shell for the agent
16
+
17
+ ## Run the Agent
18
+ ```bash
19
+ npm start -- --agent agents/github-agent/github-agent.yml
20
+ ```
21
+
22
+ The CLI launches `npx -y @truffle-ai/github-mcp-server stdio`. On first run you will see a device code and a browser window prompting you to authorize the "GitHub MCP Server" application. Approving the flow stores an access token at:
23
+
24
+ ```
25
+ ~/.config/truffle/github-mcp/<host>-token.json
26
+ ```
27
+
28
+ Subsequent sessions reuse the cached token unless it expires or you delete the file. Once the server reports it is ready, start chatting with Dexto about repositories, issues, CI failures, releases, or team activity.
29
+
30
+ ## Optional Configuration
31
+ You can tailor the underlying MCP server by exporting environment variables before starting Dexto:
32
+
33
+ - `GITHUB_PERSONAL_ACCESS_TOKEN`: Provide a PAT (with `repo` and `read:user` at minimum) if you need to bypass OAuth or run in headless environments.
34
+ - `GITHUB_OAUTH_SCOPES="repo read:user"`: Override the scopes requested during the OAuth device flow (space or comma separated). Use this to request additional permissions (e.g., `gist`) or limit scopes in tightly controlled environments.
35
+ - `GITHUB_TOOLSETS="repos,issues,pull_requests,actions"`: Restrict which groups of tools the agent loads. Available groups include `repos`, `issues`, `pull_requests`, `actions`, `notifications`, `discussions`, `projects`, `code_security`, `dependabot`, `secret_protection`, `security_advisories`, `users`, `orgs`, `gists`, `context`, and `experiments`.
36
+ - `GITHUB_READ_ONLY=1`: Offer only read-only tools; write operations will be hidden.
37
+ - `GITHUB_DYNAMIC_TOOLSETS=1`: Enable on-demand toolset discovery so the model only activates tools as needed.
38
+ - `GITHUB_HOST=https://github.mycompany.com`: Point the agent at GitHub Enterprise Server or ghe.com tenants.
39
+ - `GITHUB_LOG_FILE=~/github-mcp.log` and `GITHUB_ENABLE_COMMAND_LOGGING=1`: Persist detailed MCP command logs for auditing.
40
+ - `GITHUB_CONTENT_WINDOW_SIZE=7500`: Increase the amount of content retrieved for large diffs or logs.
41
+
42
+ Refer to the upstream [`github-mcp-server`](https://github.com/github/github-mcp-server) documentation for the full flag list (every CLI flag is mirrored as an environment variable using the `GITHUB_` prefix).
43
+
44
+ ## Switching to the Remote GitHub MCP Server (optional)
45
+ If you prefer to connect to the GitHub-hosted remote MCP server instead of running the bundled binary, replace the `mcpServers.github` block in `github-agent.yml` with:
46
+
47
+ ```yaml
48
+ mcpServers:
49
+ github:
50
+ type: http
51
+ url: https://api.githubcopilot.com/mcp/
52
+ connectionMode: strict
53
+ ```
54
+
55
+ You can optionally add `headers` for PAT authentication if your host does not support OAuth. Restart Dexto after saving the change.
56
+
57
+ ## Resetting Authorization
58
+ To force a new OAuth login, delete the cached token file (`rm ~/.config/truffle/github-mcp/*-token.json`) and relaunch the agent. The next startup will trigger a fresh device flow.
@@ -0,0 +1,57 @@
1
+ # GitHub Integration Agent configuration
2
+ # Connects Dexto to GitHub via the bundled GitHub MCP server binary
3
+
4
+ mcpServers:
5
+ github:
6
+ # type: http
7
+ # url: https://api.githubcopilot.com/mcp/
8
+ # # timeout: 45000
9
+ # connectionMode: strict
10
+ type: stdio
11
+ command: npx
12
+ args:
13
+ - -y
14
+ - '@truffle-ai/github-mcp-server'
15
+ - stdio
16
+ # Optional: uncomment to override the default OAuth scopes requested during the device flow
17
+ # env:
18
+ # GITHUB_OAUTH_SCOPES: 'repo read:user'
19
+
20
+ systemPrompt:
21
+ contributors:
22
+ - id: primary
23
+ type: static
24
+ priority: 0
25
+ content: |
26
+ You are the GitHub Integration Agent for Dexto. Collaborate with users on GitHub repositories by leveraging the GitHub tools available in this runtime. Inspect repositories, manage pull requests and issues, coordinate releases, and share actionable guidance while honoring GitHub permissions and organizational policies.
27
+
28
+ ## Core Responsibilities
29
+ - Surface repository structure, history, and code insights that help users understand the current state of their projects
30
+ - Draft, triage, and refine issues, pull requests, project boards, and release notes on request
31
+ - Perform focused code reviews, flag risky changes, and suggest remediation steps or next actions
32
+ - Present step-by-step plans before executing write operations or multi-step procedures
33
+
34
+ ## Interaction Guidelines
35
+ - For queries related to starring repos, do not ask for confirmation, just star the repo
36
+ - Confirm the repository, branch, or resource when a request is ambiguous or spans multiple contexts
37
+ - For read-only requests, respond concisely and include relevant references, links, or identifiers.
38
+ - Before taking any action that modifies GitHub state, summarize the intended change and obtain confirmation
39
+ - If you are blocked (missing scopes, inaccessible repository, conflicting state), say so clearly and offer next steps or alternatives
40
+
41
+ ## Tool Usage
42
+ - Prefer live GitHub data from the provided tools instead of relying on local filesystem copies or stale context
43
+ - Break complex objectives into sequential tool calls, narrating progress so the user can follow along
44
+ - After each tool interaction, decide whether additional context is needed or if you can deliver a confident answer
45
+
46
+ Stay practical, keep responses focused on the user’s goal, and highlight any assumptions or risks you notice.
47
+ - id: dateTime
48
+ type: dynamic
49
+ priority: 10
50
+ source: dateTime
51
+ enabled: true
52
+
53
+ llm:
54
+ provider: openai
55
+ model: gpt-5-mini
56
+ apiKey: $OPENAI_API_KEY
57
+
@@ -5,14 +5,14 @@ import { WebSocketEventSubscriber } from './websocket-subscriber.js';
5
5
  import { WebhookEventSubscriber } from './webhook-subscriber.js';
6
6
  import { type AgentCard } from '@dexto/core';
7
7
  import { DextoAgent } from '@dexto/core';
8
- export declare function initializeApi(agent: DextoAgent, agentCardOverride?: Partial<AgentCard>, listenPort?: number): Promise<{
8
+ export declare function initializeApi(agent: DextoAgent, agentCardOverride?: Partial<AgentCard>, listenPort?: number, agentName?: string): Promise<{
9
9
  app: Express;
10
10
  server: http.Server;
11
11
  wss: WebSocketServer;
12
12
  webSubscriber: WebSocketEventSubscriber;
13
13
  webhookSubscriber: WebhookEventSubscriber;
14
14
  }>;
15
- export declare function startApiServer(agent: DextoAgent, port?: number, agentCardOverride?: Partial<AgentCard>): Promise<{
15
+ export declare function startApiServer(agent: DextoAgent, port?: number, agentCardOverride?: Partial<AgentCard>, agentName?: string): Promise<{
16
16
  server: http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
17
17
  wss: WebSocketServer;
18
18
  webSubscriber: WebSocketEventSubscriber;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ1E,OAAO,EAAmB,UAAU,EAAE,MAAM,aAAa,CAAC;AA+G1D,wBAAsB,aAAa,CAC/B,KAAK,EAAE,UAAU,EACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EACtC,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC;IACP,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;IACrB,aAAa,EAAE,wBAAwB,CAAC;IACxC,iBAAiB,EAAE,sBAAsB,CAAC;CAC7C,CAAC,CAwhCD;AAED,wBAAsB,cAAc,CAChC,KAAK,EAAE,UAAU,EACjB,IAAI,SAAO,EACX,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;;;;;GA4BzC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ1E,OAAO,EAAmB,UAAU,EAAE,MAAM,aAAa,CAAC;AAqH1D,wBAAsB,aAAa,CAC/B,KAAK,EAAE,UAAU,EACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EACtC,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IACP,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;IACrB,aAAa,EAAE,wBAAwB,CAAC;IACxC,iBAAiB,EAAE,sBAAsB,CAAC;CAC7C,CAAC,CAiwCD;AAED,wBAAsB,cAAc,CAChC,KAAK,EAAE,UAAU,EACjB,IAAI,SAAO,EACX,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EACtC,SAAS,CAAC,EAAE,MAAM;;;;;GA6BrB"}