Skip to content
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

[WIP]: Integrations Setup #185

Draft
wants to merge 39 commits into
base: alpha
Choose a base branch
from
Draft

[WIP]: Integrations Setup #185

wants to merge 39 commits into from

Conversation

alashchev17
Copy link
Contributor

Pull Request Title

Description

  • What was the problem?
  • How did you solve it?
  • Any background context or related links?

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactoring (no functional changes, only code improvements)
  • Documentation update

How to Test

  • Step 1:
  • Step 2:
  • ...

Screenshots (if applicable)

Screenshot description

Checklist

  • My code follows the code style of this project.
  • I have performed a self-review of my code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • Any dependent changes have been merged and published in downstream modules.
  • I have updated the documentation where necessary.

Linked Issues

Additional Notes

MarcMcIntosh and others added 6 commits November 6, 2024 13:17
 Conflicts:
	src/app/store.ts

 On branch integrations-api
 Changes to be committed:
	modified:   package-lock.json
	modified:   package.json
	modified:   src/app/middleware.ts
	modified:   src/app/store.ts
	modified:   src/components/Chat/Chat.tsx
	modified:   src/components/ChatContent/ChatContent.tsx
	modified:   src/components/ChatContent/UserInput.tsx
	modified:   src/components/ChatForm/ChatForm.tsx
	modified:   src/components/ChatForm/RetryForm.tsx
	new file:   src/components/Dropzone/Dropzone.tsx
	new file:   src/components/Dropzone/index.tsx
	new file:   src/features/AttachedImages/imagesSlice.ts
	new file:   src/features/AttachedImages/index.ts
	modified:   src/features/Chat/Thread/utils.ts
	modified:   src/features/History/historySlice.ts
	new file:   src/hooks/useAttachedImages.ts
	modified:   src/hooks/useSendChatRequest.ts
	modified:   src/services/refact/chat.ts
	modified:   src/services/refact/types.ts
@alashchev17 alashchev17 self-assigned this Nov 6, 2024
alashchev17 and others added 12 commits November 7, 2024 21:09
 Conflicts:
	src/__fixtures__/index.ts
	src/app/store.ts

 Changes to be committed:
	modified:   .prettierignore
	modified:   .storybook/main.ts
	modified:   .storybook/preview.tsx
	deleted:    TODO.md
	modified:   package-lock.json
	modified:   package.json
	new file:   public/mockServiceWorker.js
	modified:   src/__fixtures__/chat.ts
	modified:   src/__fixtures__/index.ts
	modified:   src/__fixtures__/markdown.ts
	new file:   src/__fixtures__/some_chrome_screenshots.json
	new file:   src/__fixtures__/survey_questions.ts
	new file:   src/__tests__/UserSurvey.test.tsx
	modified:   src/app/middleware.ts
	modified:   src/app/store.ts
	modified:   src/components/Chart/Chart.tsx
	modified:   src/components/Chat/Chat.tsx
	modified:   src/components/ChatContent/ChatContent.stories.tsx
	modified:   src/components/ChatContent/ChatContent.tsx
	modified:   src/components/ChatContent/ToolsContent.tsx
	modified:   src/components/ChatContent/UserInput.tsx
	modified:   src/components/ChatForm/ChatForm.stories.tsx
	modified:   src/components/ChatForm/ChatForm.test.tsx
	modified:   src/components/ChatForm/ChatForm.tsx
	new file:   src/components/ChatForm/ToolConfirmation.module.css
	new file:   src/components/ChatForm/ToolConfirmation.tsx
	modified:   src/components/Command/Command.module.css
	modified:   src/components/Command/Markdown.tsx
	modified:   src/components/Markdown/Markdown.tsx
	modified:   src/components/Reveal/reveal.module.css
	modified:   src/components/Spinner/Spinner.module.css
	modified:   src/components/Spinner/Spinner.stories.tsx
	modified:   src/components/Spinner/Spinner.tsx
	modified:   src/components/StatisticView/StatisticView.tsx
	modified:   src/components/Table/Table.tsx
	modified:   src/components/Toolbar/Toolbar.tsx
	modified:   src/events/index.ts
	modified:   src/features/App.tsx
	modified:   src/features/Chat/Thread/actions.ts
	modified:   src/features/Chat/Thread/utils.ts
	modified:   src/features/TipOfTheDay.tsx
	new file:   src/features/ToolConfirmation/confirmationSlice.ts
	new file:   src/features/UserSurvey/UserSurvey.stories.tsx
	new file:   src/features/UserSurvey/UserSurvey.tsx
	new file:   src/features/UserSurvey/index.ts
	new file:   src/features/UserSurvey/userSurveySlice.ts
	modified:   src/hooks/index.ts
	modified:   src/hooks/useEventBusForIDE.ts
	modified:   src/hooks/useGetToolsQuery.ts
	new file:   src/hooks/useGetUserSurvey.ts
	modified:   src/hooks/usePatchActions.ts
	modified:   src/hooks/useSendChatRequest.ts
	modified:   src/lib/render/index.tsx
	modified:   src/services/refact/chat.ts
	modified:   src/services/refact/consts.ts
	modified:   src/services/refact/path.ts
	modified:   src/services/refact/tools.ts
	modified:   src/services/refact/types.ts
	modified:   src/services/smallcloud/index.ts
	new file:   src/utils/extractFilePathFromPin.ts
	modified:   src/utils/index.ts
	modified:   src/utils/mockServer.ts
	modified:   src/vite-env.d.ts
	modified:   vite.config.ts
@alashchev17 alashchev17 changed the base branch from integrations-api to integrations-api-self-configure November 18, 2024 19:12
MarcMcIntosh and others added 10 commits November 18, 2024 20:47
- [x] Implemented an `IntegrationForm` with reusable fields for each integration field type
- [x] Schema check in `handleSubmit` to transform formData to corresponding field types
- [x] Added `toPascalCase` utility function
Slight refactoring of apply and return buttons, and some other minor changes.
* wip(configuration chat): send first messages.

* wip(configuration chat): tool use in configuration chat.
alashchev17 and others added 11 commits November 22, 2024 12:07
* wip(configuration chat): handle going back.

* fix(integration chat): change tools setting to explore.

* chore(missing deps in hook): `renderField` function was missing deps.

* feat(integration data cache): add slice for integrations cache.

* fix(integration cache): remove item on save.

* fix(config chat): chat being sent multiple times.

* wip(tool confirmation): skip confirming tool use when running a configuration.

* feat: add apply all button to configuration chat.

* feat: reload old configuration chat and go back to the form

* feat(configuration chat): add error message handler.

* fix(configuration chat): use agentic mode and don't set the model.

---------

Co-authored-by: Andrii Lashchov <84778697+alashchev17@users.noreply.github.com>
* wip: docker containers api handlers

* wip: docker actions API & action buttons

* wip: better action handling

* wip: simplification of dockerApi & action buttons improvements

* chore: fixtures update

* chore: removal of unnecessary esling rule bypass

* wip: docker container card & refactoring of integration form

* feat(configuration): adjusted size of inputs based on f_size & DataList instead of raw flexboxes

* wip: form appearance & responsive layout

* wip: updated docker section

* wip(refactoring): smartlink, availability, renderField, handleSmartlinkClick extracted to separate files and scopes

* wip(form): bool f_type support

* wip(refactoring): making docker within integr_schema optional, conditional rendering of docker section within integration form

* wip(docker): error handling

* wip(refactoring): toolscontent usage summary refactoring

* wip(docker containers): collapsible container details & reveal if large

* wip(refactoring): project name handling for macOS & Windows

* wip(refactoring): docker error card & debounced loaded state

* wip(docker containers): better loading state management

* wip: separation & refactoring of UI, making docker containers cards better & making integrationsview setup better

* fix: error types for docker error cards

* fix: unchecked switch values included to formData

* chore: removal no-console

* chore: removal of unexisting prop

* fix: extra fields showup button conditional rendering

* chore: TODO insertion

* fix:  rule bypass removal

* feat: debug logging library usage for integrations logs

* feat: implementing root debug instance, managing debuggable instances launch

* chore: better logging message

* chore: TODO for tags invalidation docker

* fix: replaced <label/> to <Text as='label' />
);
}, [currentThreadIntegration, integrationsMap]);

// TBD: what if they went home then came back to integrations?
Copy link
Collaborator

Choose a reason for hiding this comment

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

good point.

@@ -0,0 +1,29 @@
fieldset {
Copy link
Collaborator

Choose a reason for hiding this comment

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

is this file used anywhere?

Copy link
Collaborator

Choose a reason for hiding this comment

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

also global selector :/

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Those ones should be removed, it's a legacy from the json schema parsing library

const next = createInitialState("agent", action.payload.integration);
next.thread.integration = action.payload.integration;
next.thread.messages = action.payload.messages;

Copy link
Collaborator

Choose a reason for hiding this comment

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

Delete these comments

}

function isDockerLabels(json: unknown): json is DockerLabels {
// Since DockerPorts is defined as NonNullable<unknown>, we don't have specific structure to validate. Just checking, that it's not null | undefined
Copy link
Collaborator

Choose a reason for hiding this comment

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

Are these unknown or likely to change?

import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
import { RootState } from "../../app/store";
import { DOCKER_CONTAINER_ACTION, DOCKER_CONTAINER_LIST } from "./consts";

Copy link
Collaborator

Choose a reason for hiding this comment

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

There might be some cache issues here,

field: IntegrationField<NonNullable<IntegrationPrimitive>>;
f_type: "bool" | "int" | "string";
}) => {
if (values[fieldKey]) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Could be a falsy value 0, null "" ?

if(fieldKey in values)  {

}

or

if(values[fieldKey] !== undefined) {}

Copy link
Collaborator

@MarcMcIntosh MarcMcIntosh left a comment

Choose a reason for hiding this comment

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

Left some comments.

@alashchev17 alashchev17 changed the base branch from integrations-api-self-configure to alpha December 3, 2024 17:43
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