Skip to content

feat: OASF plugin#311

Draft
kevzzsk wants to merge 7 commits into
mainfrom
kevin/oasf-plugin
Draft

feat: OASF plugin#311
kevzzsk wants to merge 7 commits into
mainfrom
kevin/oasf-plugin

Conversation

@kevzzsk
Copy link
Copy Markdown
Contributor

@kevzzsk kevzzsk commented Mar 23, 2026

Changes:

  1. Add OASF plugin
  2. Add optional services?: { type: string; url: string }[] to aixyz.config.ts
  3. Serve /_aixyz/oasf.json

closes XYZ-98

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Mar 23, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
examples-boilerplate Ready Ready Preview, Comment Mar 23, 2026 7:11am
examples-chainlink Ready Ready Preview, Comment Mar 23, 2026 7:11am
examples-flight-search Ready Ready Preview, Comment Mar 23, 2026 7:11am
examples-with-custom-server Ready Ready Preview, Comment Mar 23, 2026 7:11am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
ai-xyz.dev Ignored Ignored Mar 23, 2026 7:11am

Request Review

Comment on lines +74 to +75
// TODO(kevin): read dynamically from a2a plugin exports instead of duplicating the same info here
card_data: getAgentCard(),
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll fix this a2a plugin integration in another PR. This one needs some changes to aixyzApp architecture for a proper fix

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an OASF “identity” endpoint to the Aixyz runtime, extends aixyz.config.ts to describe OASF-related metadata, and wires the generated server to always expose the OASF record.

Changes:

  • Introduces OASFPlugin and getOasfRecord() to serve GET /_aixyz/oasf.json.
  • Extends @aixyz/config schema/runtime types to include domains, services, and per-skill optional oasf catalog info.
  • Refactors ERC8004Plugin to detect A2A/MCP/OASF dynamically at initialize-time; updates CLI server generator to always register OASF.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
packages/aixyz/app/plugins/oasf.ts New plugin + record builder for OASF JSON endpoint.
packages/aixyz/app/plugins/oasf.test.ts Unit tests for required fields + locator/module auto-detection.
packages/aixyz/app/plugins/erc-8004.ts Adds OASF as an advertised service + shifts detection to plugin/route introspection.
packages/aixyz/app/plugins/erc-8004.test.ts Updates tests for new dynamic detection + adds OASF expectations.
packages/aixyz-config/index.ts Adds domains, services, and skill-level oasf fields to config schema + runtime.
packages/aixyz-cli/build/AixyzServerPlugin.ts Generated server always registers OASFPlugin; simplifies ERC-8004 registration.
Comments suppressed due to low confidence (1)

packages/aixyz/app/plugins/erc-8004.test.ts:354

  • Test name says "POST to well-known" but the request is sent to /_aixyz/erc-8004.json. Rename the test (or change the request path) so the test description matches what it's actually verifying.
    const app = await createApp({});

    const res = await app.fetch(new Request("http://localhost/_aixyz/erc-8004.json", { method: "POST", body: "{}" }));
    expect(res.status).toBe(404);
  });

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/aixyz/app/plugins/oasf.ts
Comment thread packages/aixyz/app/plugins/erc-8004.ts
Comment thread packages/aixyz/app/plugins/erc-8004.ts
Comment thread packages/aixyz/app/plugins/erc-8004.test.ts
Comment thread packages/aixyz/app/plugins/erc-8004.test.ts
Comment thread packages/aixyz/app/plugins/oasf.test.ts Outdated
Comment thread packages/aixyz-config/index.ts
Comment thread packages/aixyz-config/index.ts
@linear
Copy link
Copy Markdown

linear Bot commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/aixyz/app/plugins/oasf.ts
Comment thread packages/aixyz/app/plugins/oasf.ts
Comment thread packages/aixyz/app/plugins/erc-8004.ts
Comment thread packages/aixyz/app/plugins/erc-8004.ts
Comment thread docs/protocols/oasf.mdx
Comment thread packages/aixyz/app/plugins/erc-8004.test.ts
Comment thread packages/aixyz/app/plugins/erc-8004.test.ts
Comment on lines +343 to +351
// Unregistered routes
// ---------------------------------------------------------------------------

test("POST to well-known returns 404", async () => {
const app = await createApp();

const res = await app.fetch(new Request("http://localhost/_aixyz/oasf.json", { method: "POST", body: "{}" }));
expect(res.status).toBe(404);
});
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test description mentions "POST to well-known", but the endpoint under test is /_aixyz/oasf.json (not a /.well-known/* path). Consider renaming the test for clarity.

Copilot uses AI. Check for mistakes.
@kevzzsk kevzzsk marked this pull request as draft March 23, 2026 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants