-
Notifications
You must be signed in to change notification settings - Fork 555
feat: add @thirdweb-dev/nebula package. #7389
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🦋 Changeset detectedLatest commit: 9667c74 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR 💥 An error occurred when fetching the changed packages and changesets in this PR
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Merge activity
|
WalkthroughA new TypeScript SDK package, Changes
Sequence Diagram(s)sequenceDiagram
participant App
participant NebulaClient
participant NebulaAPI
App->>NebulaClient: configure(options)
App->>NebulaClient: getNebulaClient(baseUrl, options)
App->>NebulaClient: API call (e.g., getModels, getAgents)
NebulaClient->>NebulaAPI: HTTP request with auth headers
NebulaAPI-->>NebulaClient: API response
NebulaClient-->>App: Typed result
Suggested reviewers
Warning Review ran into problems🔥 ProblemsErrors were encountered while retrieving linked issues. Errors (1)
✨ Finishing Touches
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #7389 +/- ##
=======================================
Coverage 52.06% 52.06%
=======================================
Files 945 945
Lines 63565 63565
Branches 4208 4208
=======================================
Hits 33098 33098
Misses 30361 30361
Partials 106 106
🚀 New features to boost your workflow:
|
size-limit report 📦
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (5)
packages/nebula/CHANGELOG.md (1)
1-1
: Add initial version entry to changelog.Currently the changelog only has a top‐level header. It’s best practice to include an initial release section (e.g.,
## [0.1.0] - YYYY-MM-DD
) describing the first release.packages/nebula/tsconfig.base.json (1)
1-2
: Add$schema
for editor support.Include the official TSConfig schema at the top to enable IDE autocompletion and validation:
+{ + "$schema": "https://json.schemastore.org/tsconfig", // This tsconfig file contains the shared config for the build...packages/nebula/tsconfig.build.json (1)
11-15
: Consider specifyingoutDir
and declaration options
The build config currently omitsoutDir
anddeclaration
settings. Confirm these are inherited from the base config or explicitly add them to ensure compiled.js
and.d.ts
outputs land in the intended directory.packages/nebula/README.md (1)
34-34
: Correct abbreviation and framework spelling
Use “e.g.” with periods and the official “Next.js” casing for accuracy.@@ -34 -You can also use this package on a client application (eg. NextJS) by retrieving the Nebula API client first. +You can also use this package on a client application (e.g., Next.js) by retrieving the Nebula API client first.packages/nebula/src/client/sdk.gen.ts (1)
152-172
: Consider deprecation strategy for legacy session APIs.Multiple deprecated session functions are included in the SDK. Consider adding deprecation warnings or documentation about migration paths to newer APIs.
Add JSDoc
@deprecated
tags with migration guidance:/** * Get Session List + * @deprecated Use the new conversation APIs instead */ export const deprecatedGetSessions = <ThrowOnError extends boolean = false>(
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yaml
is excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (14)
package.json
(1 hunks)packages/nebula/CHANGELOG.md
(1 hunks)packages/nebula/README.md
(1 hunks)packages/nebula/biome.json
(1 hunks)packages/nebula/openapi-ts.config.ts
(1 hunks)packages/nebula/package.json
(1 hunks)packages/nebula/src/client/client.gen.ts
(1 hunks)packages/nebula/src/client/index.ts
(1 hunks)packages/nebula/src/client/sdk.gen.ts
(1 hunks)packages/nebula/src/configure.ts
(1 hunks)packages/nebula/src/exports/thirdweb.ts
(1 hunks)packages/nebula/tsconfig.base.json
(1 hunks)packages/nebula/tsconfig.build.json
(1 hunks)packages/nebula/tsconfig.json
(1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
packages/nebula/src/client/client.gen.ts (2)
packages/nebula/src/exports/thirdweb.ts (1)
CreateClientConfig
(2-2)packages/nebula/src/client/types.gen.ts (1)
ClientOptions
(4236-4238)
packages/nebula/src/client/sdk.gen.ts (1)
packages/nebula/src/client/types.gen.ts (124)
ClientOptions
(4236-4238)DeprecatedGetSessionsData
(2944-2949)DeprecatedGetSessionsResponses
(2951-2956)DeprecatedDeleteSessionData
(2961-2971)DeprecatedDeleteSessionResponses
(2983-2988)DeprecatedDeleteSessionErrors
(2973-2978)DeprecatedGetSessionData
(2993-3003)DeprecatedGetSessionResponses
(3015-3020)DeprecatedGetSessionErrors
(3005-3010)DeprecatedUpdateSessionData
(3025-3035)DeprecatedUpdateSessionResponses
(3047-3052)DeprecatedUpdateSessionErrors
(3037-3042)DeprecatedCreateSessionData
(3057-3062)DeprecatedCreateSessionResponses
(3074-3079)DeprecatedCreateSessionErrors
(3064-3069)DeprecatedClearSessionData
(3084-3094)DeprecatedClearSessionResponses
(3106-3111)DeprecatedClearSessionErrors
(3096-3101)DeprecatedChatData
(3116-3124)DeprecatedChatResponses
(3136-3141)DeprecatedChatErrors
(3126-3131)DeprecatedChatCompletionsData
(3146-3151)DeprecatedChatCompletionsResponses
(3163-3168)DeprecatedChatCompletionsErrors
(3153-3158)DeprecatedExecuteData
(3173-3181)DeprecatedExecuteResponses
(3193-3198)DeprecatedExecuteErrors
(3183-3188)FeedbackData
(3203-3208)FeedbackResponses
(3219-3224)FeedbackErrors
(3210-3215)GetModelsData
(3228-3233)GetModelsResponses
(3235-3240)GetAuthDelegatePayloadData
(3244-3249)GetAuthDelegatePayloadResponses
(3261-3266)GetAuthDelegatePayloadErrors
(3251-3256)AuthDelegateLoginData
(3271-3276)AuthDelegateLoginResponses
(3288-3293)AuthDelegateLoginErrors
(3278-3283)VerifyAuthData
(3298-3303)VerifyAuthResponses
(3305-3310)GetUserData
(3314-3319)GetUserResponses
(3321-3326)GetUserWalletsData
(3330-3335)GetUserWalletsResponses
(3337-3342)DeleteUserWalletData
(3347-3357)DeleteUserWalletResponses
(3369-3374)DeleteUserWalletErrors
(3359-3364)GetUserWalletData
(3376-3386)GetUserWalletResponses
(3397-3402)GetUserWalletErrors
(3388-3393)UpdateUserWalletData
(3407-3417)UpdateUserWalletResponses
(3429-3434)UpdateUserWalletErrors
(3419-3424)CreateUserWalletData
(3436-3441)CreateUserWalletResponses
(3453-3458)CreateUserWalletErrors
(3443-3448)GetAgentsData
(3460-3465)GetAgentsResponses
(3467-3472)DeleteAgentData
(3476-3486)DeleteAgentResponses
(3497-3502)DeleteAgentErrors
(3488-3493)GetAgentData
(3507-3517)GetAgentResponses
(3528-3533)GetAgentErrors
(3519-3524)UpdateAgentData
(3537-3547)UpdateAgentResponses
(3558-3563)UpdateAgentErrors
(3549-3554)CreateAgentData
(3568-3573)CreateAgentResponses
(3584-3589)CreateAgentErrors
(3575-3580)DeleteAgentTriggerData
(3594-3608)DeleteAgentTriggerResponses
(3620-3625)DeleteAgentTriggerErrors
(3610-3615)GetAgentTriggerData
(3630-3644)GetAgentTriggerResponses
(3656-3661)GetAgentTriggerErrors
(3646-3651)UpdateAgentTriggerData
(3666-3680)UpdateAgentTriggerResponses
(3692-3697)UpdateAgentTriggerErrors
(3682-3687)CreateAgentTriggerData
(3702-3712)CreateAgentTriggerResponses
(3724-3729)CreateAgentTriggerErrors
(3714-3719)DeleteAgentToolData
(3734-3748)DeleteAgentToolResponses
(3760-3765)DeleteAgentToolErrors
(3750-3755)GetAgentToolData
(3770-3784)GetAgentToolResponses
(3795-3800)GetAgentToolErrors
(3786-3791)UpdateAgentToolData
(3805-3819)UpdateAgentToolResponses
(3831-3836)UpdateAgentToolErrors
(3821-3826)CreateAgentToolData
(3841-3851)CreateAgentToolResponses
(3863-3868)CreateAgentToolErrors
(3853-3858)GetAgentWalletsData
(3873-3883)GetAgentWalletsResponses
(3895-3900)GetAgentWalletsErrors
(3885-3890)GetAgentWalletData
(3905-3919)GetAgentWalletResponses
(3931-3936)GetAgentWalletErrors
(3921-3926)GetConversationsData
(3941-3951)GetConversationsResponses
(3963-3968)GetConversationsErrors
(3953-3958)DeleteConversationData
(3973-3983)DeleteConversationResponses
(3995-4000)DeleteConversationErrors
(3985-3990)GetConversationData
(4005-4015)GetConversationResponses
(4027-4032)GetConversationErrors
(4017-4022)UpdateConversationData
(4037-4047)UpdateConversationResponses
(4059-4064)UpdateConversationErrors
(4049-4054)CreateConversationData
(4069-4074)CreateConversationResponses
(4086-4091)CreateConversationErrors
(4076-4081)CreateConversationMessageData
(4096-4106)CreateConversationMessageResponses
(4118-4123)CreateConversationMessageErrors
(4108-4113)UpdateConversationMessageData
(4128-4142)UpdateConversationMessageResponses
(4154-4159)UpdateConversationMessageErrors
(4144-4149)GetRegistryAgentsData
(4164-4214)GetRegistryAgentsResponses
(4226-4231)GetRegistryAgentsErrors
(4216-4221)
🪛 LanguageTool
packages/nebula/README.md
[uncategorized] ~34-~34: The abbreviation “e.g.” (= for example) requires two periods.
Context: ...e this package on a client application (eg. NextJS) by retrieving the Nebula API cl...
(E_G)
[uncategorized] ~34-~34: The official spelling of this programming framework is “Next.js”.
Context: ...is package on a client application (eg. NextJS) by retrieving the Nebula API client fi...
(NODE_JS)
🪛 Biome (1.9.4)
packages/nebula/tsconfig.base.json
[error] 2-2: Expected a property but instead found '// This tsconfig file contains the shared config for the build (tsconfig.build.json) and type checking (tsconfig.json) config.'.
Expected a property here.
(parse)
[error] 3-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 5-5: Expected a property but instead found '// Incremental builds'.
Expected a property here.
(parse)
[error] 4-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 5-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-9: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 12-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 12-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 12-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 12-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 13-13: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 13-13: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 13-13: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 13-13: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 14-14: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 14-14: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 14-14: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 14-14: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 15-15: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 15-15: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 15-15: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 15-15: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 16-16: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 16-16: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 16-16: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 16-16: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 17-17: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 17-17: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 17-17: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 17-17: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 18-18: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 18-18: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 18-18: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 18-18: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-32: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-37: Expected an array, an object, or a literal but instead found '// By using ES2022 we get access to the .cause
property on Error
instances.'.
Expected an array, an object, or a literal here.
(parse)
[error] 38-38: expected ,
but instead found "DOM"
Remove "DOM"
(parse)
[error] 38-38: expected ,
but instead found // We are adding
DOMhere to get the
fetch, etc. types. This should be removed once these types are available via DefinitelyTyped.
Remove // We are adding DOM
here to get the fetch
, etc. types. This should be removed once these types are available via DefinitelyTyped.
(parse)
[error] 36-39: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 39-41: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 42-42: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 42-42: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 42-42: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 42-44: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 45-45: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 45-45: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 45-45: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 46-47: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
⏰ Context from checks skipped due to timeout of 90000ms (7)
- GitHub Check: E2E Tests (pnpm, webpack)
- GitHub Check: E2E Tests (pnpm, esbuild)
- GitHub Check: E2E Tests (pnpm, vite)
- GitHub Check: Size
- GitHub Check: Build Packages
- GitHub Check: Unit Tests
- GitHub Check: Analyze (javascript)
🔇 Additional comments (12)
packages/nebula/src/client/index.ts (1)
1-3
: This file is auto-generated by the OpenAPI TypeScript generator. Manual edits are discouraged; test coverage should validate its correctness.packages/nebula/openapi-ts.config.ts (1)
4-6
: ```shell
#!/bin/bash
python3 - << 'EOF'
import json, urllib.request
try:
with urllib.request.urlopen("https://nebula-api.thirdweb-dev.com/openapi.json") as resp:
data = json.loads(resp.read().decode())
print(data.get("openapi", "openapi field not found"))
except Exception as e:
print("Error fetching or parsing JSON:", e)
EOF</details> <details> <summary>packages/nebula/tsconfig.build.json (1)</summary> `1-11`: **Build config structure looks correct** Extending from `tsconfig.base.json` and scoping `include`/`exclude` to `src` and test/benchmark patterns aligns with package conventions. </details> <details> <summary>packages/nebula/tsconfig.json (1)</summary> `3-5`: **Verify test inclusion paths** The alias `~test/*` is mapped to `./test/src/*`, but your `include` covers `test` directly. Confirm that test files live under `test/src/` or adjust the paths to match the actual directory structure. </details> <details> <summary>packages/nebula/src/exports/thirdweb.ts (2)</summary> `1-8`: **Re-exports look correct** This module centralizes and re-exports the generated client and configuration utilities as intended. --- `1-1`: **Verify file extensions in runtime output** The imports reference `.js` extensions—ensure that your build pipeline emits `.js` files (not `.cjs` or without extensions) so these paths resolve correctly at runtime. </details> <details> <summary>packages/nebula/src/client/client.gen.ts (1)</summary> `24-28`: **LGTM! Verify client configuration flexibility.** The auto-generated client implementation looks correct. However, ensure that the hard-coded base URL can be overridden when needed (e.g., for testing or different environments). ```shell #!/bin/bash # Verify that client configuration can be overridden rg -A 5 "createClient|setConfig" packages/nebula/src/
packages/nebula/package.json (1)
27-34
: Verify dependency versions for security vulnerabilities.The package configuration looks well-structured with proper dual package support. Please verify that the specified dependency versions are secure and up-to-date.
Are there any known security vulnerabilities in @hey-api/client-fetch version 0.10.0 or @hey-api/openapi-ts version 0.72.1?
packages/nebula/src/configure.ts (2)
60-76
: Excellent bigint serialization handling.The custom stringify function properly handles bigint serialization, which is essential for blockchain-related data. The implementation correctly preserves the original replacer function behavior while adding bigint support.
42-58
: Well-designed client configuration integration.The
configureWithClient
function provides excellent integration with existing ThirdwebClient instances, allowing seamless credential sharing while supporting additional Nebula-specific options.packages/nebula/src/client/sdk.gen.ts (2)
135-150
: Well-designed Options type with flexible client support.The generic Options type properly extends the base ClientOptions while allowing custom client instances and metadata. This provides good flexibility for different usage scenarios.
163-171
: Consistent security implementation across all endpoints.All API functions properly implement the x-secret-key authentication scheme, ensuring consistent security across the entire SDK.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please address comments, also you should run pnpm changeset
at the root to add a changeset for the new package
1895da8
to
acac9ff
Compare
<!-- ## title your PR with this format: "[SDK/Dashboard/Portal] Feature/Fix: Concise title for the changes" If you did not copy the branch name from Linear, paste the issue tag here (format is TEAM-0000): ## Notes for the reviewer Anything important to call out? Be sure to also clarify these in your comments. ## How to test Unit tests, playground, etc. --> This PR adds the new `@thirdweb-dev/nebula` package. It's an OpenAPI Typescript Wrapper for the new Nebula APIs. <!-- start pr-codex --> --- ## PR-Codex overview This PR introduces the initial release of the `@thirdweb-dev/nebula` TypeScript SDK, providing a wrapper for the Nebula API with configuration options and client functionalities. ### Detailed summary - Added `@thirdweb-dev/nebula` package with initial release. - Created configuration functions: `configure`, `configureWithClient`, and `getNebulaClient`. - Generated client and types using `@hey-api/openapi-ts`. - Included comprehensive README with usage examples. - Established TypeScript configuration files. > The following files were skipped due to too many changes: `packages/nebula/src/client/types.gen.ts` > ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}` <!-- end pr-codex --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced the Nebula TypeScript SDK as a new package, providing a client for interacting with the Nebula OpenAPI AI agent service. - Added configuration utilities for flexible authentication and integration with existing clients. - Exposed a comprehensive set of API methods for managing agents, conversations, models, and user data. - Extended build scripts to include the Nebula package in relevant workspace commands. - **Documentation** - Added detailed README with setup instructions and usage examples for the Nebula SDK. - **Chores** - Added configuration and build files to support development and compilation of the new package. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
acac9ff
to
9667c74
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
packages/nebula/biome.json (1)
1-4
: Enable JSONC parsing for tsconfig files.Add an override section so that files like
tsconfig.*.json
are parsed correctly:{ "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json", "extends": "//", + "overrides": [ + { + "files": ["tsconfig.*.json"], + "parser": "jsonc" + } + ] }
🧹 Nitpick comments (1)
packages/nebula/README.md (1)
34-34
: Fix abbreviation and framework spelling.Replace
(eg. NextJS)
with(e.g. Next.js)
for proper style:-You can also use this package on a client application (eg. NextJS) by retrieving the Nebula API client first. +You can also use this package on a client application (e.g., Next.js) by retrieving the Nebula API client first.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yaml
is excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (14)
.changeset/vast-tires-tickle.md
(1 hunks)package.json
(2 hunks)packages/nebula/README.md
(1 hunks)packages/nebula/biome.json
(1 hunks)packages/nebula/openapi-ts.config.ts
(1 hunks)packages/nebula/package.json
(1 hunks)packages/nebula/src/client/client.gen.ts
(1 hunks)packages/nebula/src/client/index.ts
(1 hunks)packages/nebula/src/client/sdk.gen.ts
(1 hunks)packages/nebula/src/configure.ts
(1 hunks)packages/nebula/src/exports/thirdweb.ts
(1 hunks)packages/nebula/tsconfig.base.json
(1 hunks)packages/nebula/tsconfig.build.json
(1 hunks)packages/nebula/tsconfig.json
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- packages/nebula/src/client/index.ts
🚧 Files skipped from review as they are similar to previous changes (11)
- .changeset/vast-tires-tickle.md
- packages/nebula/openapi-ts.config.ts
- packages/nebula/tsconfig.json
- packages/nebula/tsconfig.build.json
- package.json
- packages/nebula/src/exports/thirdweb.ts
- packages/nebula/tsconfig.base.json
- packages/nebula/src/client/client.gen.ts
- packages/nebula/package.json
- packages/nebula/src/configure.ts
- packages/nebula/src/client/sdk.gen.ts
🧰 Additional context used
🪛 LanguageTool
packages/nebula/README.md
[uncategorized] ~34-~34: The abbreviation “e.g.” (= for example) requires two periods.
Context: ...e this package on a client application (eg. NextJS) by retrieving the Nebula API cl...
(E_G)
[uncategorized] ~34-~34: The official spelling of this programming framework is “Next.js”.
Context: ...is package on a client application (eg. NextJS) by retrieving the Nebula API client fi...
(NODE_JS)
⏰ Context from checks skipped due to timeout of 90000ms (8)
- GitHub Check: E2E Tests (pnpm, esbuild)
- GitHub Check: E2E Tests (pnpm, webpack)
- GitHub Check: Size
- GitHub Check: E2E Tests (pnpm, vite)
- GitHub Check: Unit Tests
- GitHub Check: Build Packages
- GitHub Check: Lint Packages
- GitHub Check: Analyze (javascript)
This PR adds the new
@thirdweb-dev/nebula
package. It's an OpenAPI Typescript Wrapper for the new Nebula APIs.PR-Codex overview
This PR introduces the initial release of the
Nebula
TypeScript SDK, providing a wrapper for the Nebula AI agent service. It includes configuration options, client creation, and various API methods for interacting with agents and conversations.Detailed summary
Nebula
TypeScript SDK.configure
,configureWithClient
.getNebulaClient
.@hey-api/openapi-ts
.README.md
with usage examples and configuration details.tsconfig.json
,tsconfig.build.json
,tsconfig.base.json
).Summary by CodeRabbit
New Features
Documentation
Chores