divi 0.0.1.dev13__tar.gz → 0.0.1.dev14__tar.gz
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.
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/.github/dependabot.yml +1 -1
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/PKG-INFO +1 -1
- divi-0.0.1.dev14/README.md +14 -0
- divi-0.0.1.dev14/apps/docs/README.md +32 -0
- divi-0.0.1.dev14/apps/docs/concepts/session.mdx +4 -0
- divi-0.0.1.dev14/apps/docs/development/roadmap.mdx +4 -0
- divi-0.0.1.dev14/apps/docs/docs.json +68 -0
- divi-0.0.1.dev14/apps/docs/favicon.ico +0 -0
- divi-0.0.1.dev14/apps/docs/images/researcher-angel.png +0 -0
- divi-0.0.1.dev14/apps/docs/images/scholar-angel.png +0 -0
- divi-0.0.1.dev14/apps/docs/introduction.mdx +15 -0
- divi-0.0.1.dev14/apps/docs/package.json +11 -0
- divi-0.0.1.dev14/apps/docs/quickstart/trace.mdx +4 -0
- divi-0.0.1.dev14/apps/docs/snippets/snippet-intro.mdx +4 -0
- divi-0.0.1.dev14/apps/docs/tutorials/openai.mdx +4 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/package.json +9 -9
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/src/datasources/auth-api.ts +20 -9
- divi-0.0.1.dev14/apps/graphql/src/datasources/datapark-api.ts +32 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/src/index.ts +2 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/src/resolvers.ts +27 -3
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/src/schema.graphql +58 -3
- divi-0.0.1.dev14/apps/graphql/src/types/context.d.ts +9 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/src/types/types.d.ts +157 -7
- divi-0.0.1.dev14/apps/web/app/dashboard/@modal/(.)trace/[id]/page.tsx +19 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/@modal/default.tsx +3 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/actions.ts +130 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/components/columns.tsx +72 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/components/create-dialog.tsx +134 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/components/data-table-cell-viewer.tsx +105 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/components/data-table-toolbar.tsx +50 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/components/data-table.tsx +132 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/components/delete-dialog.tsx +70 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/data/data.tsx +10 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/data/schema.ts +11 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/layout.tsx +26 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/api-keys/page.tsx +15 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/layout.tsx +57 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/page.tsx +15 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/settings/account/page.tsx +63 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/settings/appearance/page.tsx +18 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/settings/layout.tsx +49 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/settings/page.tsx +23 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/trace/[id]/page.tsx +19 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/trace/components/columns.tsx +96 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/trace/components/data-table-row-action.tsx +46 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/trace/components/data-table-toolbar.tsx +51 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/trace/components/data-table.tsx +132 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/trace/data/data.tsx +19 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/trace/data/schema.ts +12 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/trace/layout.tsx +23 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/trace/page.tsx +36 -0
- divi-0.0.1.dev14/apps/web/app/dashboard/usage/page.tsx +15 -0
- divi-0.0.1.dev14/apps/web/app/home/components/home-header.tsx +52 -0
- divi-0.0.1.dev14/apps/web/app/home/components/home-hero.tsx +41 -0
- divi-0.0.1.dev14/apps/web/app/home/page.tsx +11 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/app/layout.tsx +14 -2
- divi-0.0.1.dev14/apps/web/app/login/page.tsx +44 -0
- divi-0.0.1.dev14/apps/web/app/page.tsx +5 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/app/signup/page.tsx +25 -24
- divi-0.0.1.dev14/apps/web/components/Modal.tsx +69 -0
- divi-0.0.1.dev14/apps/web/components/account-form.tsx +86 -0
- divi-0.0.1.dev14/apps/web/components/app-sidebar.tsx +102 -0
- divi-0.0.1.dev14/apps/web/components/appearance-form.tsx +47 -0
- divi-0.0.1.dev14/apps/web/components/chart-area-interactive.tsx +292 -0
- divi-0.0.1.dev14/apps/web/components/data-table-column-header.tsx +102 -0
- divi-0.0.1.dev14/apps/web/components/data-table-faceted-filter.tsx +153 -0
- divi-0.0.1.dev14/apps/web/components/data-table-pagination.tsx +92 -0
- divi-0.0.1.dev14/apps/web/components/data-table-row.tsx +63 -0
- divi-0.0.1.dev14/apps/web/components/data-table-view-options.tsx +56 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/components/login-form.tsx +1 -1
- divi-0.0.1.dev14/apps/web/components/nav-main.tsx +38 -0
- divi-0.0.1.dev14/apps/web/components/nav-secondary.tsx +41 -0
- divi-0.0.1.dev14/apps/web/components/nav-user.tsx +104 -0
- divi-0.0.1.dev14/apps/web/components/profile-form.tsx +96 -0
- divi-0.0.1.dev14/apps/web/components/section-cards.tsx +102 -0
- divi-0.0.1.dev14/apps/web/components/sidebar-nav.tsx +45 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/components/signup-form.tsx +1 -0
- divi-0.0.1.dev14/apps/web/components/site-header.tsx +22 -0
- divi-0.0.1.dev14/apps/web/components/theme-provider.tsx +11 -0
- divi-0.0.1.dev14/apps/web/components/trace-chart.tsx +84 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/components.json +3 -3
- divi-0.0.1.dev14/apps/web/hooks/actionState.ts +29 -0
- divi-0.0.1.dev14/apps/web/lib/callback/toast-callback.ts +25 -0
- divi-0.0.1.dev14/apps/web/lib/callback/with-callback.ts +29 -0
- divi-0.0.1.dev14/apps/web/lib/server/README.md +3 -0
- divi-0.0.1.dev14/apps/web/lib/server/auth.ts +23 -0
- divi-0.0.1.dev14/apps/web/lib/server/cookies.ts +32 -0
- divi-0.0.1.dev14/apps/web/lib/server/span.ts +106 -0
- divi-0.0.1.dev14/apps/web/lib/types/state.d.ts +8 -0
- divi-0.0.1.dev14/apps/web/lib/utils.ts +20 -0
- divi-0.0.1.dev14/apps/web/middleware.ts +75 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/package.json +17 -3
- divi-0.0.1.dev14/apps/web/vercel.json +12 -0
- divi-0.0.1.dev14/compose-dev.yml +34 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/__init__.py +3 -3
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/decorators/obs_openai.py +1 -1
- divi-0.0.1.dev14/divi/decorators/observable.py +137 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/common/v1/common.proto +1 -15
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/common/v1/common_pb2.py +2 -4
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/common/v1/common_pb2.pyi +0 -12
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/core/health/v1/health_service.proto +1 -1
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/core/health/v1/health_service_pb2.py +2 -2
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/metric/v1/metric.proto +1 -4
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/metric/v1/metric_pb2.py +5 -5
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/metric/v1/metric_pb2.pyi +2 -4
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/trace/v1/trace.proto +1 -4
- divi-0.0.1.dev14/divi/proto/trace/v1/trace_pb2.py +44 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/trace/v1/trace_pb2.pyi +14 -4
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/core/init.py +1 -1
- divi-0.0.1.dev14/divi/services/datapark/datapark.py +63 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/init.py +3 -2
- divi-0.0.1.dev14/divi/session/__init__.py +3 -0
- divi-0.0.1.dev14/divi/session/session.py +40 -0
- divi-0.0.1.dev14/divi/session/setup.py +62 -0
- {divi-0.0.1.dev13/divi/run → divi-0.0.1.dev14/divi/session}/teardown.py +1 -1
- divi-0.0.1.dev14/divi/signals/trace/trace.py +151 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/docker-compose.yml +29 -2
- divi-0.0.1.dev14/docs/images/favicon.ico +0 -0
- divi-0.0.1.dev14/docs/images/og-image.png +0 -0
- divi-0.0.1.dev14/go.work.sum +106 -0
- divi-0.0.1.dev14/hatch.toml +10 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/package.json +3 -2
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/pnpm-lock.yaml +2356 -679
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/pnpm-workspace.yaml +2 -1
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/scripts/proto_build.py +0 -1
- divi-0.0.1.dev14/services/go.mod +75 -0
- divi-0.0.1.dev14/services/go.sum +253 -0
- divi-0.0.1.dev14/services/internal/app/auth/handler/api_key.go +128 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/services/internal/app/auth/handler/user.go +36 -18
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/services/internal/app/auth/router/router.go +5 -3
- divi-0.0.1.dev14/services/internal/app/datapark/handler/api.go +15 -0
- divi-0.0.1.dev14/services/internal/app/datapark/handler/metric.go +7 -0
- divi-0.0.1.dev14/services/internal/app/datapark/handler/openai.go +75 -0
- divi-0.0.1.dev14/services/internal/app/datapark/handler/session.go +43 -0
- divi-0.0.1.dev14/services/internal/app/datapark/handler/trace.go +264 -0
- divi-0.0.1.dev14/services/internal/app/datapark/router/router.go +42 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/services/internal/pkg/auth/auth.go +5 -0
- divi-0.0.1.dev13/services/internal/app/auth/middleware/auth.go → divi-0.0.1.dev14/services/internal/pkg/auth/middleware.go +2 -3
- divi-0.0.1.dev14/services/internal/pkg/database/connect.go +73 -0
- divi-0.0.1.dev14/services/internal/pkg/database/database.go +16 -0
- divi-0.0.1.dev14/services/internal/pkg/model/api_key.go +27 -0
- divi-0.0.1.dev14/services/internal/pkg/model/session.go +17 -0
- divi-0.0.1.dev14/services/internal/pkg/model/trace.go +48 -0
- divi-0.0.1.dev14/services/internal/pkg/model/user.go +25 -0
- {divi-0.0.1.dev13/services/proto → divi-0.0.1.dev14/services/pb}/common.pb.go +11 -98
- {divi-0.0.1.dev13/services/proto → divi-0.0.1.dev14/services/pb}/health_service.pb.go +3 -3
- {divi-0.0.1.dev13/services/proto → divi-0.0.1.dev14/services/pb}/health_service_grpc.pb.go +1 -1
- {divi-0.0.1.dev13/services/proto → divi-0.0.1.dev14/services/pb}/metric.pb.go +28 -43
- {divi-0.0.1.dev13/services/proto → divi-0.0.1.dev14/services/pb}/trace.pb.go +129 -58
- divi-0.0.1.dev14/tests/unit_tests/decorators/test_obs_openai.py +146 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/tests/unit_tests/decorators/test_observable.py +8 -7
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/turbo.json +3 -0
- divi-0.0.1.dev13/README.md +0 -16
- divi-0.0.1.dev13/apps/graphql/src/types/api-key.d.ts +0 -4
- divi-0.0.1.dev13/apps/graphql/src/types/context.d.ts +0 -7
- divi-0.0.1.dev13/apps/graphql/src/types/user.d.ts +0 -9
- divi-0.0.1.dev13/apps/web/app/login/page.tsx +0 -43
- divi-0.0.1.dev13/apps/web/app/page.tsx +0 -10
- divi-0.0.1.dev13/divi/decorators/observable.py +0 -108
- divi-0.0.1.dev13/divi/proto/run/v1/run.proto +0 -38
- divi-0.0.1.dev13/divi/proto/run/v1/run_pb2.py +0 -40
- divi-0.0.1.dev13/divi/proto/run/v1/run_pb2.pyi +0 -34
- divi-0.0.1.dev13/divi/proto/trace/v1/trace_pb2.py +0 -42
- divi-0.0.1.dev13/divi/run/__init__.py +0 -3
- divi-0.0.1.dev13/divi/run/run.py +0 -24
- divi-0.0.1.dev13/divi/run/setup.py +0 -50
- divi-0.0.1.dev13/divi/services/datapark/datapark.py +0 -6
- divi-0.0.1.dev13/divi/signals/trace/trace.py +0 -81
- divi-0.0.1.dev13/go.work.sum +0 -46
- divi-0.0.1.dev13/hatch.toml +0 -9
- divi-0.0.1.dev13/services/go.mod +0 -45
- divi-0.0.1.dev13/services/go.sum +0 -109
- divi-0.0.1.dev13/services/internal/app/auth/handler/api_key.go +0 -78
- divi-0.0.1.dev13/services/internal/app/datapark/.keep +0 -0
- divi-0.0.1.dev13/services/internal/pkg/database/connect.go +0 -39
- divi-0.0.1.dev13/services/internal/pkg/database/database.go +0 -6
- divi-0.0.1.dev13/services/internal/pkg/model/api_key.go +0 -16
- divi-0.0.1.dev13/services/internal/pkg/model/user.go +0 -22
- divi-0.0.1.dev13/services/proto/resource.pb.go +0 -153
- divi-0.0.1.dev13/services/proto/run.pb.go +0 -261
- divi-0.0.1.dev13/tests/unit_tests/decorators/test_obs_openai.py +0 -54
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/.air.toml +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/.dockerignore +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/.gitignore +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/LICENSE +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/README.md +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/Dockerfile +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/README.md +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/codegen.ts +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/src/types/response.d.ts +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/graphql/tsconfig.json +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/.gitignore +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/README.md +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/app/favicon.ico +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/components/ApolloWrapper.tsx +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/hooks/apolloClient.ts +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/next-env.d.ts +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/next.config.ts +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/postcss.config.mjs +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/public/peeking-angel.png +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/public/thinking-angel.png +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/apps/web/tsconfig.json +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/biome.json +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/config/config.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/decorators/__init__.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/core/health/v1/health_service_pb2.pyi +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/proto/core/health/v1/health_service_pb2_grpc.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/__init__.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/auth/__init__.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/auth/auth.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/auth/init.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/auth/tokman.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/core/__init__.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/core/core.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/core/finish.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/datapark/__init__.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/datapark/init.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/finish.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/services/service.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/signals/__init__.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/signals/trace/__init__.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/divi/utils.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/docs/README.md +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/docs/developer_tools.md +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/docs/images/architecture.svg +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/docs/images/storage.svg +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/docs/package_readme.md +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/go.work +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/packages/README.md +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/pyproject.toml +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/scripts/README.md +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/scripts/hatch_build.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/scripts/key_build.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/services/README.md +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/services/internal/app/auth/handler/api.go +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/services/internal/app/auth/handler/auth.go +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/services/internal/app/core/.keep +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/services/internal/pkg/config/config.go +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/tests/__init__.py +0 -0
- {divi-0.0.1.dev13 → divi-0.0.1.dev14}/uv.lock +0 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
# Mintlify Starter Kit
|
2
|
+
|
3
|
+
Click on `Use this template` to copy the Mintlify starter kit. The starter kit contains examples including
|
4
|
+
|
5
|
+
- Guide pages
|
6
|
+
- Navigation
|
7
|
+
- Customizations
|
8
|
+
- API Reference pages
|
9
|
+
- Use of popular components
|
10
|
+
|
11
|
+
### Development
|
12
|
+
|
13
|
+
Install the [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command
|
14
|
+
|
15
|
+
```
|
16
|
+
npm i -g mintlify
|
17
|
+
```
|
18
|
+
|
19
|
+
Run the following command at the root of your documentation (where docs.json is)
|
20
|
+
|
21
|
+
```
|
22
|
+
mintlify dev
|
23
|
+
```
|
24
|
+
|
25
|
+
### Publishing Changes
|
26
|
+
|
27
|
+
Install our Github App to auto propagate changes from your repo to your deployment. Changes will be deployed to production automatically after pushing to the default branch. Find the link to install on your dashboard.
|
28
|
+
|
29
|
+
#### Troubleshooting
|
30
|
+
|
31
|
+
- Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies.
|
32
|
+
- Page loads as a 404 - Make sure you are running in a folder with `docs.json`
|
@@ -0,0 +1,68 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://mintlify.com/docs.json",
|
3
|
+
"theme": "maple",
|
4
|
+
"name": "Divine Agent",
|
5
|
+
"colors": {
|
6
|
+
"primary": "#09090b",
|
7
|
+
"light": "#FAFAFA",
|
8
|
+
"dark": "#09090b"
|
9
|
+
},
|
10
|
+
"favicon": "/favicon.ico",
|
11
|
+
"navigation": {
|
12
|
+
"groups": [
|
13
|
+
{
|
14
|
+
"group": "Get Started",
|
15
|
+
"pages": ["introduction"]
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"group": "Tutorials",
|
19
|
+
"pages": ["tutorials/openai"]
|
20
|
+
},
|
21
|
+
{
|
22
|
+
"group": "Concepts",
|
23
|
+
"pages": ["concepts/session"]
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"group": "Development",
|
27
|
+
"pages": ["development/roadmap"]
|
28
|
+
}
|
29
|
+
],
|
30
|
+
"global": {
|
31
|
+
"anchors": [
|
32
|
+
{
|
33
|
+
"anchor": "Dashboard",
|
34
|
+
"href": "https://divine-agent.com",
|
35
|
+
"icon": "gauge-high"
|
36
|
+
}
|
37
|
+
]
|
38
|
+
}
|
39
|
+
},
|
40
|
+
"logo": {
|
41
|
+
"light": "/images/researcher-angel.png",
|
42
|
+
"dark": "/images/scholar-angel.png"
|
43
|
+
},
|
44
|
+
"navbar": {
|
45
|
+
"links": [
|
46
|
+
{
|
47
|
+
"label": "GitHub",
|
48
|
+
"href": "https://github.com/Kaikaikaifang/divine-agent"
|
49
|
+
}
|
50
|
+
],
|
51
|
+
"primary": {
|
52
|
+
"type": "button",
|
53
|
+
"label": "Divine Agent",
|
54
|
+
"href": "https://divine-agent.com"
|
55
|
+
}
|
56
|
+
},
|
57
|
+
"seo": {
|
58
|
+
"metatags": {
|
59
|
+
"og:image": "https://raw.githubusercontent.com/Kaikaikaifang/divine-agent/refs/heads/main/docs/images/og-image.png?token=GHSAT0AAAAAAC7SUUQIZIJIKDD5UWUKWX2CZ66TXVA"
|
60
|
+
},
|
61
|
+
"indexing": "navigable"
|
62
|
+
},
|
63
|
+
"footer": {
|
64
|
+
"socials": {
|
65
|
+
"github": "https://github.com/Kaikaikaifang/divine-agent"
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
title: Introduction
|
3
|
+
description: "Welcome to the docs of Divine Agent"
|
4
|
+
---
|
5
|
+
|
6
|
+
<img
|
7
|
+
className="block dark:hidden w-20"
|
8
|
+
src="/images/researcher-angel.png"
|
9
|
+
alt="Hero Light"
|
10
|
+
/>
|
11
|
+
<img
|
12
|
+
className="hidden dark:block w-20"
|
13
|
+
src="/images/scholar-angel.png"
|
14
|
+
alt="Hero Dark"
|
15
|
+
/>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
One of the core principles of software development is DRY (Don't Repeat
|
2
|
+
Yourself). This is a principle that apply to documentation as
|
3
|
+
well. If you find yourself repeating the same content in multiple places, you
|
4
|
+
should consider creating a custom snippet to keep your content in sync.
|
@@ -10,19 +10,19 @@
|
|
10
10
|
"postbuild": "cp src/schema.graphql dist/"
|
11
11
|
},
|
12
12
|
"dependencies": {
|
13
|
-
"graphql": "^16.10.0",
|
14
|
-
"graphql-tag": "^2.12.6",
|
15
|
-
"@apollo/server": "^4.11.3",
|
16
13
|
"@apollo/datasource-rest": "^6.4.1",
|
17
|
-
"@apollo/
|
14
|
+
"@apollo/server": "^4.11.3",
|
15
|
+
"@apollo/utils.keyvaluecache": "^3.1.0",
|
16
|
+
"graphql": "^16.10.0",
|
17
|
+
"graphql-tag": "^2.12.6"
|
18
18
|
},
|
19
19
|
"devDependencies": {
|
20
|
-
"
|
20
|
+
"@graphql-codegen/cli": "^4.0.1",
|
21
|
+
"@graphql-codegen/typescript": "^4.1.6",
|
22
|
+
"@graphql-codegen/typescript-resolvers": "^4.5.0",
|
23
|
+
"@workspace/typescript-config": "workspace:*",
|
21
24
|
"nodemon": "^3.1.9",
|
22
25
|
"ts-node-dev": "^2.0.0",
|
23
|
-
"
|
24
|
-
"@graphql-codegen/typescript": "^4.1.5",
|
25
|
-
"@graphql-codegen/typescript-resolvers": "^4.4.4",
|
26
|
-
"@workspace/typescript-config": "workspace:*"
|
26
|
+
"typescript": "catalog:"
|
27
27
|
}
|
28
28
|
}
|
@@ -1,6 +1,5 @@
|
|
1
|
-
import type { APIKeyModel } from '@/types/api-key';
|
2
1
|
import type { FetchResponse } from '@/types/response';
|
3
|
-
import type {
|
2
|
+
import type { ApiKey, User } from '@/types/types';
|
4
3
|
import { type AugmentedRequest, RESTDataSource } from '@apollo/datasource-rest';
|
5
4
|
import type { KeyValueCache } from '@apollo/utils.keyvaluecache';
|
6
5
|
|
@@ -18,17 +17,21 @@ export class AuthAPI extends RESTDataSource {
|
|
18
17
|
}
|
19
18
|
|
20
19
|
async createUser(email: string, password: string, username: string) {
|
21
|
-
return await this.post<FetchResponse<
|
20
|
+
return await this.post<FetchResponse<User>>('/api/user/', {
|
22
21
|
body: { email, password, username },
|
23
22
|
});
|
24
23
|
}
|
25
24
|
|
25
|
+
async getCurrentUser() {
|
26
|
+
return await this.get<FetchResponse<User>>('/api/user/');
|
27
|
+
}
|
28
|
+
|
26
29
|
async getUser(userId: string) {
|
27
|
-
return await this.get<FetchResponse<
|
30
|
+
return await this.get<FetchResponse<User>>(`/api/user/${userId}`);
|
28
31
|
}
|
29
32
|
|
30
|
-
async updateUser(userId: string, name: string) {
|
31
|
-
return await this.patch<FetchResponse<
|
33
|
+
async updateUser(userId: string, name: string | undefined) {
|
34
|
+
return await this.patch<FetchResponse<User>>(`/api/user/${userId}`, {
|
32
35
|
body: { name },
|
33
36
|
});
|
34
37
|
}
|
@@ -40,11 +43,19 @@ export class AuthAPI extends RESTDataSource {
|
|
40
43
|
}
|
41
44
|
|
42
45
|
async getAPIKeys() {
|
43
|
-
return await this.get<FetchResponse<
|
46
|
+
return await this.get<FetchResponse<ApiKey[]>>('/api/api_key/');
|
47
|
+
}
|
48
|
+
|
49
|
+
async createAPIKey(name: string) {
|
50
|
+
return await this.post<FetchResponse<ApiKey>>('/api/api_key/', {
|
51
|
+
body: { name },
|
52
|
+
});
|
44
53
|
}
|
45
54
|
|
46
|
-
async
|
47
|
-
return await this.
|
55
|
+
async updateAPIKey(apiKeyId: string, name: string | undefined) {
|
56
|
+
return await this.patch<FetchResponse<ApiKey>>(`/api/api_key/${apiKeyId}`, {
|
57
|
+
body: { name },
|
58
|
+
});
|
48
59
|
}
|
49
60
|
|
50
61
|
async revokeAPIKey(apiKeyId: string) {
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import type { FetchResponse } from '@/types/response';
|
2
|
+
import type { Span, Trace } from '@/types/types';
|
3
|
+
import { type AugmentedRequest, RESTDataSource } from '@apollo/datasource-rest';
|
4
|
+
import type { KeyValueCache } from '@apollo/utils.keyvaluecache';
|
5
|
+
|
6
|
+
export class DataParkAPI extends RESTDataSource {
|
7
|
+
override baseURL = process.env.AUTH_SERVICE_URL ?? 'http://localhost:3001/';
|
8
|
+
private token: string;
|
9
|
+
|
10
|
+
constructor(options: { token: string; cache: KeyValueCache }) {
|
11
|
+
super(options);
|
12
|
+
this.token = options.token;
|
13
|
+
}
|
14
|
+
|
15
|
+
override willSendRequest(_path: string, request: AugmentedRequest) {
|
16
|
+
request.headers.authorization = this.token;
|
17
|
+
}
|
18
|
+
|
19
|
+
async getTraces(sessionId: string) {
|
20
|
+
return await this.get<FetchResponse<Trace[]>>(
|
21
|
+
`/api/session/${sessionId}/traces`
|
22
|
+
);
|
23
|
+
}
|
24
|
+
|
25
|
+
async getAllTraces() {
|
26
|
+
return await this.get<FetchResponse<Trace[]>>('/api/trace/');
|
27
|
+
}
|
28
|
+
|
29
|
+
async getSpans(traceId: string) {
|
30
|
+
return await this.get<FetchResponse<Span[]>>(`/api/trace/${traceId}/spans`);
|
31
|
+
}
|
32
|
+
}
|
@@ -4,6 +4,7 @@ import { ApolloServer } from '@apollo/server';
|
|
4
4
|
import { startStandaloneServer } from '@apollo/server/standalone';
|
5
5
|
import gql from 'graphql-tag';
|
6
6
|
import { AuthAPI } from './datasources/auth-api';
|
7
|
+
import { DataParkAPI } from './datasources/datapark-api';
|
7
8
|
import { resolvers } from './resolvers';
|
8
9
|
|
9
10
|
const typeDefs = gql(
|
@@ -19,6 +20,7 @@ async function startApolloServer() {
|
|
19
20
|
return Promise.resolve({
|
20
21
|
dataSources: {
|
21
22
|
authAPI: new AuthAPI({ token, cache }),
|
23
|
+
dataparkAPI: new DataParkAPI({ token, cache }),
|
22
24
|
},
|
23
25
|
});
|
24
26
|
},
|
@@ -8,13 +8,35 @@ import type { GraphQLError } from 'graphql';
|
|
8
8
|
|
9
9
|
export const resolvers: Resolvers = {
|
10
10
|
Query: {
|
11
|
+
me: async (_, _args, { dataSources }) => {
|
12
|
+
return (await dataSources.authAPI.getCurrentUser()).data;
|
13
|
+
},
|
11
14
|
user: async (_, { id }, { dataSources }) => {
|
12
15
|
return (await dataSources.authAPI.getUser(id)).data;
|
13
16
|
},
|
17
|
+
api_keys: async (_, _args, { dataSources }) => {
|
18
|
+
return (await dataSources.authAPI.getAPIKeys()).data;
|
19
|
+
},
|
20
|
+
traces: async (_, { session_id }, { dataSources }) => {
|
21
|
+
return (await dataSources.dataparkAPI.getTraces(session_id)).data;
|
22
|
+
},
|
23
|
+
all_traces: async (_, _args, { dataSources }) => {
|
24
|
+
return (await dataSources.dataparkAPI.getAllTraces()).data;
|
25
|
+
},
|
26
|
+
spans: async (_, { trace_id }, { dataSources }) => {
|
27
|
+
return (await dataSources.dataparkAPI.getSpans(trace_id)).data;
|
28
|
+
},
|
14
29
|
},
|
15
30
|
Mutation: {
|
16
|
-
createAPIKey: async (_,
|
17
|
-
return await mutationAdaptor(
|
31
|
+
createAPIKey: async (_, { name }, { dataSources }) => {
|
32
|
+
return await mutationAdaptor(
|
33
|
+
dataSources.authAPI.createAPIKey(name || 'Secret Key')
|
34
|
+
);
|
35
|
+
},
|
36
|
+
updateAPIKey: async (_, { id, name }, { dataSources }) => {
|
37
|
+
return await mutationAdaptor(
|
38
|
+
dataSources.authAPI.updateAPIKey(id, name || undefined)
|
39
|
+
);
|
18
40
|
},
|
19
41
|
revokeAPIKey: async (_, { id }, { dataSources }) => {
|
20
42
|
return await mutationAdaptor(dataSources.authAPI.revokeAPIKey(id));
|
@@ -35,7 +57,9 @@ export const resolvers: Resolvers = {
|
|
35
57
|
);
|
36
58
|
},
|
37
59
|
updateUser: async (_, { id, name }, { dataSources }) => {
|
38
|
-
return await mutationAdaptor(
|
60
|
+
return await mutationAdaptor(
|
61
|
+
dataSources.authAPI.updateUser(id, name ?? undefined)
|
62
|
+
);
|
39
63
|
},
|
40
64
|
createUser: async (_, { email, password, username }, { dataSources }) => {
|
41
65
|
return await mutationAdaptor(
|
@@ -1,7 +1,29 @@
|
|
1
1
|
"Query is a collection of queries that can be made to the API"
|
2
2
|
type Query {
|
3
|
+
"Fetch current user"
|
4
|
+
me: User!
|
3
5
|
"Fetch a specific user by id"
|
4
6
|
user(id: ID!): User!
|
7
|
+
"Fetch current user's API keys"
|
8
|
+
api_keys: [APIKey!]
|
9
|
+
"Fetch traces by session id"
|
10
|
+
traces(session_id: ID!): [Trace!]
|
11
|
+
"Fetch all traces"
|
12
|
+
all_traces: [Trace!]
|
13
|
+
"Fetch all spans by trace id"
|
14
|
+
spans(trace_id: ID!): [Span!]
|
15
|
+
}
|
16
|
+
|
17
|
+
"NullTime is a custom scalar type that represents a time value that can be null"
|
18
|
+
type NullTime {
|
19
|
+
Time: String!
|
20
|
+
Valid: Boolean!
|
21
|
+
}
|
22
|
+
|
23
|
+
"KeyValue is a key-value pair"
|
24
|
+
type KeyValue {
|
25
|
+
key: String!
|
26
|
+
value: String!
|
5
27
|
}
|
6
28
|
|
7
29
|
"User is a registered user of the application"
|
@@ -10,13 +32,37 @@ type User {
|
|
10
32
|
name: String
|
11
33
|
username: String!
|
12
34
|
email: String!
|
13
|
-
api_keys: [APIKey]
|
35
|
+
api_keys: [APIKey!]
|
14
36
|
}
|
15
37
|
|
16
38
|
"APIKey is a key used to authenticate requests to the API"
|
17
39
|
type APIKey {
|
18
40
|
id: ID!
|
19
41
|
api_key: String!
|
42
|
+
name: String
|
43
|
+
created_at: String!
|
44
|
+
}
|
45
|
+
|
46
|
+
"Trace is a record to track the execution of a session"
|
47
|
+
type Trace {
|
48
|
+
id: ID!
|
49
|
+
name: String
|
50
|
+
start_time: String!
|
51
|
+
end_time: NullTime!
|
52
|
+
session_id: ID!
|
53
|
+
}
|
54
|
+
|
55
|
+
"Span is a record of a single unit of work within a trace"
|
56
|
+
type Span {
|
57
|
+
id: ID!
|
58
|
+
parent_id: ID!
|
59
|
+
trace_id: ID!
|
60
|
+
name: String!
|
61
|
+
start_time: String!
|
62
|
+
end_time: String!
|
63
|
+
duration: Int!
|
64
|
+
kind: String!
|
65
|
+
metadata: [KeyValue!]
|
20
66
|
}
|
21
67
|
|
22
68
|
"Mutation is a collection of mutations that can be made to the API"
|
@@ -25,7 +71,8 @@ type Mutation {
|
|
25
71
|
login(identity: String!, password: String!): CreateTokenResponse!
|
26
72
|
loginWithAPIKey(api_key: String!): CreateTokenResponse!
|
27
73
|
"API Key Mutations"
|
28
|
-
createAPIKey: CreateAPIKeyResponse!
|
74
|
+
createAPIKey(name: String): CreateAPIKeyResponse!
|
75
|
+
updateAPIKey(id: ID!, name: String): UpdateAPIKeyResponse!
|
29
76
|
revokeAPIKey(id: ID!): RevokeAPIKeyResponse!
|
30
77
|
"User Mutations"
|
31
78
|
createUser(
|
@@ -33,7 +80,7 @@ type Mutation {
|
|
33
80
|
email: String!
|
34
81
|
password: String!
|
35
82
|
): CreateUserResponse!
|
36
|
-
updateUser(id: ID!, name: String
|
83
|
+
updateUser(id: ID!, name: String): UpdateUserResponse!
|
37
84
|
deleteUser(id: ID!, password: String!): DeleteUserResponse!
|
38
85
|
}
|
39
86
|
|
@@ -52,6 +99,14 @@ type CreateAPIKeyResponse implements MutationResponse {
|
|
52
99
|
data: APIKey
|
53
100
|
}
|
54
101
|
|
102
|
+
"UpdateAPIKeyResponse is a response to the updateAPIKey mutation"
|
103
|
+
type UpdateAPIKeyResponse implements MutationResponse {
|
104
|
+
code: Int!
|
105
|
+
message: String!
|
106
|
+
success: Boolean!
|
107
|
+
data: APIKey
|
108
|
+
}
|
109
|
+
|
55
110
|
"RevokeAPIKeyResponse is a response to the revokeAPIKey mutation"
|
56
111
|
type RevokeAPIKeyResponse implements MutationResponse {
|
57
112
|
code: Int!
|