@kelpie/ui 0.1.0
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.
- package/LICENSE +661 -0
- package/README.md +44 -0
- package/dist/ServiceStatus.d.ts +6 -0
- package/dist/ServiceStatus.d.ts.map +1 -0
- package/dist/ServiceStatus.js +35 -0
- package/dist/ServiceStatus.js.map +1 -0
- package/dist/api/ApiProvider.d.ts +19 -0
- package/dist/api/ApiProvider.d.ts.map +1 -0
- package/dist/api/ApiProvider.js +18 -0
- package/dist/api/ApiProvider.js.map +1 -0
- package/dist/api/client.d.ts +83 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +162 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/context.d.ts +14 -0
- package/dist/api/context.d.ts.map +1 -0
- package/dist/api/context.js +20 -0
- package/dist/api/context.js.map +1 -0
- package/dist/api/errors.d.ts +9 -0
- package/dist/api/errors.d.ts.map +1 -0
- package/dist/api/errors.js +14 -0
- package/dist/api/errors.js.map +1 -0
- package/dist/api/health.d.ts +15 -0
- package/dist/api/health.d.ts.map +1 -0
- package/dist/api/health.js +22 -0
- package/dist/api/health.js.map +1 -0
- package/dist/api/json.d.ts +3 -0
- package/dist/api/json.d.ts.map +1 -0
- package/dist/api/json.js +5 -0
- package/dist/api/json.js.map +1 -0
- package/dist/api/queryClient.d.ts +17 -0
- package/dist/api/queryClient.d.ts.map +1 -0
- package/dist/api/queryClient.js +33 -0
- package/dist/api/queryClient.js.map +1 -0
- package/dist/api/resource.d.ts +110 -0
- package/dist/api/resource.d.ts.map +1 -0
- package/dist/api/resource.js +238 -0
- package/dist/api/resource.js.map +1 -0
- package/dist/api/resources/account.d.ts +49 -0
- package/dist/api/resources/account.d.ts.map +1 -0
- package/dist/api/resources/account.js +146 -0
- package/dist/api/resources/account.js.map +1 -0
- package/dist/api/resources/activities.d.ts +8 -0
- package/dist/api/resources/activities.d.ts.map +1 -0
- package/dist/api/resources/activities.js +21 -0
- package/dist/api/resources/activities.js.map +1 -0
- package/dist/api/resources/agentTasks.d.ts +31 -0
- package/dist/api/resources/agentTasks.d.ts.map +1 -0
- package/dist/api/resources/agentTasks.js +103 -0
- package/dist/api/resources/agentTasks.js.map +1 -0
- package/dist/api/resources/candidates.d.ts +17 -0
- package/dist/api/resources/candidates.d.ts.map +1 -0
- package/dist/api/resources/candidates.js +40 -0
- package/dist/api/resources/candidates.js.map +1 -0
- package/dist/api/resources/companies.d.ts +22 -0
- package/dist/api/resources/companies.d.ts.map +1 -0
- package/dist/api/resources/companies.js +36 -0
- package/dist/api/resources/companies.js.map +1 -0
- package/dist/api/resources/dashboard.d.ts +8 -0
- package/dist/api/resources/dashboard.d.ts.map +1 -0
- package/dist/api/resources/dashboard.js +27 -0
- package/dist/api/resources/dashboard.js.map +1 -0
- package/dist/api/resources/deals.d.ts +30 -0
- package/dist/api/resources/deals.d.ts.map +1 -0
- package/dist/api/resources/deals.js +38 -0
- package/dist/api/resources/deals.js.map +1 -0
- package/dist/api/resources/decisions.d.ts +13 -0
- package/dist/api/resources/decisions.d.ts.map +1 -0
- package/dist/api/resources/decisions.js +38 -0
- package/dist/api/resources/decisions.js.map +1 -0
- package/dist/api/resources/forms.d.ts +82 -0
- package/dist/api/resources/forms.d.ts.map +1 -0
- package/dist/api/resources/forms.js +129 -0
- package/dist/api/resources/forms.js.map +1 -0
- package/dist/api/resources/handbookPages.d.ts +33 -0
- package/dist/api/resources/handbookPages.d.ts.map +1 -0
- package/dist/api/resources/handbookPages.js +49 -0
- package/dist/api/resources/handbookPages.js.map +1 -0
- package/dist/api/resources/importJobs.d.ts +72 -0
- package/dist/api/resources/importJobs.d.ts.map +1 -0
- package/dist/api/resources/importJobs.js +145 -0
- package/dist/api/resources/importJobs.js.map +1 -0
- package/dist/api/resources/invites.d.ts +19 -0
- package/dist/api/resources/invites.d.ts.map +1 -0
- package/dist/api/resources/invites.js +78 -0
- package/dist/api/resources/invites.js.map +1 -0
- package/dist/api/resources/mcpTools.d.ts +8 -0
- package/dist/api/resources/mcpTools.d.ts.map +1 -0
- package/dist/api/resources/mcpTools.js +23 -0
- package/dist/api/resources/mcpTools.js.map +1 -0
- package/dist/api/resources/members.d.ts +40 -0
- package/dist/api/resources/members.d.ts.map +1 -0
- package/dist/api/resources/members.js +67 -0
- package/dist/api/resources/members.js.map +1 -0
- package/dist/api/resources/moduleSettings.d.ts +14 -0
- package/dist/api/resources/moduleSettings.d.ts.map +1 -0
- package/dist/api/resources/moduleSettings.js +43 -0
- package/dist/api/resources/moduleSettings.js.map +1 -0
- package/dist/api/resources/mutation.d.ts +18 -0
- package/dist/api/resources/mutation.d.ts.map +1 -0
- package/dist/api/resources/mutation.js +12 -0
- package/dist/api/resources/mutation.js.map +1 -0
- package/dist/api/resources/notes.d.ts +14 -0
- package/dist/api/resources/notes.d.ts.map +1 -0
- package/dist/api/resources/notes.js +39 -0
- package/dist/api/resources/notes.js.map +1 -0
- package/dist/api/resources/opportunities.d.ts +29 -0
- package/dist/api/resources/opportunities.d.ts.map +1 -0
- package/dist/api/resources/opportunities.js +38 -0
- package/dist/api/resources/opportunities.js.map +1 -0
- package/dist/api/resources/partnerships.d.ts +33 -0
- package/dist/api/resources/partnerships.d.ts.map +1 -0
- package/dist/api/resources/partnerships.js +39 -0
- package/dist/api/resources/partnerships.js.map +1 -0
- package/dist/api/resources/people.d.ts +22 -0
- package/dist/api/resources/people.d.ts.map +1 -0
- package/dist/api/resources/people.js +36 -0
- package/dist/api/resources/people.js.map +1 -0
- package/dist/api/resources/pipelineStages.d.ts +22 -0
- package/dist/api/resources/pipelineStages.d.ts.map +1 -0
- package/dist/api/resources/pipelineStages.js +61 -0
- package/dist/api/resources/pipelineStages.js.map +1 -0
- package/dist/api/resources/planItems.d.ts +31 -0
- package/dist/api/resources/planItems.d.ts.map +1 -0
- package/dist/api/resources/planItems.js +60 -0
- package/dist/api/resources/planItems.js.map +1 -0
- package/dist/api/resources/positions.d.ts +23 -0
- package/dist/api/resources/positions.d.ts.map +1 -0
- package/dist/api/resources/positions.js +31 -0
- package/dist/api/resources/positions.js.map +1 -0
- package/dist/api/resources/raises.d.ts +30 -0
- package/dist/api/resources/raises.d.ts.map +1 -0
- package/dist/api/resources/raises.js +38 -0
- package/dist/api/resources/raises.js.map +1 -0
- package/dist/api/resources/roles.d.ts +20 -0
- package/dist/api/resources/roles.d.ts.map +1 -0
- package/dist/api/resources/roles.js +31 -0
- package/dist/api/resources/roles.js.map +1 -0
- package/dist/api/resources/search.d.ts +12 -0
- package/dist/api/resources/search.d.ts.map +1 -0
- package/dist/api/resources/search.js +37 -0
- package/dist/api/resources/search.js.map +1 -0
- package/dist/api/resources/session.d.ts +58 -0
- package/dist/api/resources/session.d.ts.map +1 -0
- package/dist/api/resources/session.js +157 -0
- package/dist/api/resources/session.js.map +1 -0
- package/dist/api/resources/webhooks.d.ts +45 -0
- package/dist/api/resources/webhooks.d.ts.map +1 -0
- package/dist/api/resources/webhooks.js +106 -0
- package/dist/api/resources/webhooks.js.map +1 -0
- package/dist/api/resources/workspace.d.ts +20 -0
- package/dist/api/resources/workspace.d.ts.map +1 -0
- package/dist/api/resources/workspace.js +63 -0
- package/dist/api/resources/workspace.js.map +1 -0
- package/dist/app/KelpieApp.d.ts +18 -0
- package/dist/app/KelpieApp.d.ts.map +1 -0
- package/dist/app/KelpieApp.js +59 -0
- package/dist/app/KelpieApp.js.map +1 -0
- package/dist/app/SessionGate.d.ts +14 -0
- package/dist/app/SessionGate.d.ts.map +1 -0
- package/dist/app/SessionGate.js +33 -0
- package/dist/app/SessionGate.js.map +1 -0
- package/dist/components/ActivitiesPanel.d.ts +28 -0
- package/dist/components/ActivitiesPanel.d.ts.map +1 -0
- package/dist/components/ActivitiesPanel.js +75 -0
- package/dist/components/ActivitiesPanel.js.map +1 -0
- package/dist/components/AgentTasks.d.ts +16 -0
- package/dist/components/AgentTasks.d.ts.map +1 -0
- package/dist/components/AgentTasks.js +166 -0
- package/dist/components/AgentTasks.js.map +1 -0
- package/dist/components/Chip.d.ts +10 -0
- package/dist/components/Chip.d.ts.map +1 -0
- package/dist/components/Chip.js +21 -0
- package/dist/components/Chip.js.map +1 -0
- package/dist/components/CopyButton.d.ts +7 -0
- package/dist/components/CopyButton.d.ts.map +1 -0
- package/dist/components/CopyButton.js +30 -0
- package/dist/components/CopyButton.js.map +1 -0
- package/dist/components/DataTable.d.ts +36 -0
- package/dist/components/DataTable.d.ts.map +1 -0
- package/dist/components/DataTable.js +43 -0
- package/dist/components/DataTable.js.map +1 -0
- package/dist/components/DecisionsPanel.d.ts +14 -0
- package/dist/components/DecisionsPanel.d.ts.map +1 -0
- package/dist/components/DecisionsPanel.js +73 -0
- package/dist/components/DecisionsPanel.js.map +1 -0
- package/dist/components/DeleteRecord.d.ts +19 -0
- package/dist/components/DeleteRecord.d.ts.map +1 -0
- package/dist/components/DeleteRecord.js +22 -0
- package/dist/components/DeleteRecord.js.map +1 -0
- package/dist/components/EntitySearch.d.ts +33 -0
- package/dist/components/EntitySearch.d.ts.map +1 -0
- package/dist/components/EntitySearch.js +111 -0
- package/dist/components/EntitySearch.js.map +1 -0
- package/dist/components/ErrorBoundary.d.ts +21 -0
- package/dist/components/ErrorBoundary.d.ts.map +1 -0
- package/dist/components/ErrorBoundary.js +26 -0
- package/dist/components/ErrorBoundary.js.map +1 -0
- package/dist/components/InlineEdit.d.ts +37 -0
- package/dist/components/InlineEdit.d.ts.map +1 -0
- package/dist/components/InlineEdit.js +77 -0
- package/dist/components/InlineEdit.js.map +1 -0
- package/dist/components/KanbanBoard.d.ts +24 -0
- package/dist/components/KanbanBoard.d.ts.map +1 -0
- package/dist/components/KanbanBoard.js +92 -0
- package/dist/components/KanbanBoard.js.map +1 -0
- package/dist/components/MarkdownView.d.ts +4 -0
- package/dist/components/MarkdownView.d.ts.map +1 -0
- package/dist/components/MarkdownView.js +45 -0
- package/dist/components/MarkdownView.js.map +1 -0
- package/dist/components/NotesPanel.d.ts +17 -0
- package/dist/components/NotesPanel.d.ts.map +1 -0
- package/dist/components/NotesPanel.js +53 -0
- package/dist/components/NotesPanel.js.map +1 -0
- package/dist/components/PageHeader.d.ts +20 -0
- package/dist/components/PageHeader.d.ts.map +1 -0
- package/dist/components/PageHeader.js +15 -0
- package/dist/components/PageHeader.js.map +1 -0
- package/dist/components/PhonesField.d.ts +7 -0
- package/dist/components/PhonesField.d.ts.map +1 -0
- package/dist/components/PhonesField.js +92 -0
- package/dist/components/PhonesField.js.map +1 -0
- package/dist/components/PlanAttention.d.ts +40 -0
- package/dist/components/PlanAttention.d.ts.map +1 -0
- package/dist/components/PlanAttention.js +86 -0
- package/dist/components/PlanAttention.js.map +1 -0
- package/dist/components/PlanPanel.d.ts +18 -0
- package/dist/components/PlanPanel.d.ts.map +1 -0
- package/dist/components/PlanPanel.js +102 -0
- package/dist/components/PlanPanel.js.map +1 -0
- package/dist/components/QueryState.d.ts +24 -0
- package/dist/components/QueryState.d.ts.map +1 -0
- package/dist/components/QueryState.js +34 -0
- package/dist/components/QueryState.js.map +1 -0
- package/dist/components/RecordTabs.d.ts +16 -0
- package/dist/components/RecordTabs.d.ts.map +1 -0
- package/dist/components/RecordTabs.js +15 -0
- package/dist/components/RecordTabs.js.map +1 -0
- package/dist/components/SectionHeader.d.ts +15 -0
- package/dist/components/SectionHeader.d.ts.map +1 -0
- package/dist/components/SectionHeader.js +14 -0
- package/dist/components/SectionHeader.js.map +1 -0
- package/dist/components/SegmentedControl.d.ts +13 -0
- package/dist/components/SegmentedControl.d.ts.map +1 -0
- package/dist/components/SegmentedControl.js +14 -0
- package/dist/components/SegmentedControl.js.map +1 -0
- package/dist/components/Shell.d.ts +2 -0
- package/dist/components/Shell.d.ts.map +1 -0
- package/dist/components/Shell.js +143 -0
- package/dist/components/Shell.js.map +1 -0
- package/dist/components/SidebarField.d.ts +8 -0
- package/dist/components/SidebarField.d.ts.map +1 -0
- package/dist/components/SidebarField.js +6 -0
- package/dist/components/SidebarField.js.map +1 -0
- package/dist/components/SocialProfilesField.d.ts +8 -0
- package/dist/components/SocialProfilesField.d.ts.map +1 -0
- package/dist/components/SocialProfilesField.js +176 -0
- package/dist/components/SocialProfilesField.js.map +1 -0
- package/dist/components/StageSettings.d.ts +16 -0
- package/dist/components/StageSettings.d.ts.map +1 -0
- package/dist/components/StageSettings.js +107 -0
- package/dist/components/StageSettings.js.map +1 -0
- package/dist/components/SummaryBlock.d.ts +12 -0
- package/dist/components/SummaryBlock.d.ts.map +1 -0
- package/dist/components/SummaryBlock.js +12 -0
- package/dist/components/SummaryBlock.js.map +1 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/dates.d.ts +26 -0
- package/dist/lib/dates.d.ts.map +1 -0
- package/dist/lib/dates.js +71 -0
- package/dist/lib/dates.js.map +1 -0
- package/dist/lib/money.d.ts +7 -0
- package/dist/lib/money.d.ts.map +1 -0
- package/dist/lib/money.js +13 -0
- package/dist/lib/money.js.map +1 -0
- package/dist/lib/names.d.ts +9 -0
- package/dist/lib/names.d.ts.map +1 -0
- package/dist/lib/names.js +13 -0
- package/dist/lib/names.js.map +1 -0
- package/dist/lib/plan.d.ts +67 -0
- package/dist/lib/plan.d.ts.map +1 -0
- package/dist/lib/plan.js +96 -0
- package/dist/lib/plan.js.map +1 -0
- package/dist/lib/theme.d.ts +19 -0
- package/dist/lib/theme.d.ts.map +1 -0
- package/dist/lib/theme.js +30 -0
- package/dist/lib/theme.js.map +1 -0
- package/dist/pages/CompaniesPage.d.ts +2 -0
- package/dist/pages/CompaniesPage.d.ts.map +1 -0
- package/dist/pages/CompaniesPage.js +77 -0
- package/dist/pages/CompaniesPage.js.map +1 -0
- package/dist/pages/CompanyDetail.d.ts +2 -0
- package/dist/pages/CompanyDetail.d.ts.map +1 -0
- package/dist/pages/CompanyDetail.js +177 -0
- package/dist/pages/CompanyDetail.js.map +1 -0
- package/dist/pages/DealDetail.d.ts +2 -0
- package/dist/pages/DealDetail.d.ts.map +1 -0
- package/dist/pages/DealDetail.js +192 -0
- package/dist/pages/DealDetail.js.map +1 -0
- package/dist/pages/DealStageSettingsPage.d.ts +7 -0
- package/dist/pages/DealStageSettingsPage.d.ts.map +1 -0
- package/dist/pages/DealStageSettingsPage.js +38 -0
- package/dist/pages/DealStageSettingsPage.js.map +1 -0
- package/dist/pages/DealsPage.d.ts +2 -0
- package/dist/pages/DealsPage.d.ts.map +1 -0
- package/dist/pages/DealsPage.js +177 -0
- package/dist/pages/DealsPage.js.map +1 -0
- package/dist/pages/DecisionsPage.d.ts +2 -0
- package/dist/pages/DecisionsPage.d.ts.map +1 -0
- package/dist/pages/DecisionsPage.js +121 -0
- package/dist/pages/DecisionsPage.js.map +1 -0
- package/dist/pages/FormDetail.d.ts +2 -0
- package/dist/pages/FormDetail.d.ts.map +1 -0
- package/dist/pages/FormDetail.js +56 -0
- package/dist/pages/FormDetail.js.map +1 -0
- package/dist/pages/FormsPage.d.ts +2 -0
- package/dist/pages/FormsPage.d.ts.map +1 -0
- package/dist/pages/FormsPage.js +67 -0
- package/dist/pages/FormsPage.js.map +1 -0
- package/dist/pages/FundraisingPage.d.ts +2 -0
- package/dist/pages/FundraisingPage.d.ts.map +1 -0
- package/dist/pages/FundraisingPage.js +187 -0
- package/dist/pages/FundraisingPage.js.map +1 -0
- package/dist/pages/HiringPage.d.ts +9 -0
- package/dist/pages/HiringPage.d.ts.map +1 -0
- package/dist/pages/HiringPage.js +73 -0
- package/dist/pages/HiringPage.js.map +1 -0
- package/dist/pages/NotFoundPage.d.ts +10 -0
- package/dist/pages/NotFoundPage.d.ts.map +1 -0
- package/dist/pages/NotFoundPage.js +14 -0
- package/dist/pages/NotFoundPage.js.map +1 -0
- package/dist/pages/OpportunitiesPage.d.ts +2 -0
- package/dist/pages/OpportunitiesPage.d.ts.map +1 -0
- package/dist/pages/OpportunitiesPage.js +184 -0
- package/dist/pages/OpportunitiesPage.js.map +1 -0
- package/dist/pages/OpportunityDetail.d.ts +2 -0
- package/dist/pages/OpportunityDetail.d.ts.map +1 -0
- package/dist/pages/OpportunityDetail.js +132 -0
- package/dist/pages/OpportunityDetail.js.map +1 -0
- package/dist/pages/OpportunityStageSettingsPage.d.ts +3 -0
- package/dist/pages/OpportunityStageSettingsPage.d.ts.map +1 -0
- package/dist/pages/OpportunityStageSettingsPage.js +34 -0
- package/dist/pages/OpportunityStageSettingsPage.js.map +1 -0
- package/dist/pages/PartnershipDetail.d.ts +2 -0
- package/dist/pages/PartnershipDetail.d.ts.map +1 -0
- package/dist/pages/PartnershipDetail.js +179 -0
- package/dist/pages/PartnershipDetail.js.map +1 -0
- package/dist/pages/PartnershipStageSettingsPage.d.ts +3 -0
- package/dist/pages/PartnershipStageSettingsPage.d.ts.map +1 -0
- package/dist/pages/PartnershipStageSettingsPage.js +34 -0
- package/dist/pages/PartnershipStageSettingsPage.js.map +1 -0
- package/dist/pages/PartnershipsPage.d.ts +2 -0
- package/dist/pages/PartnershipsPage.d.ts.map +1 -0
- package/dist/pages/PartnershipsPage.js +182 -0
- package/dist/pages/PartnershipsPage.js.map +1 -0
- package/dist/pages/PeoplePage.d.ts +10 -0
- package/dist/pages/PeoplePage.d.ts.map +1 -0
- package/dist/pages/PeoplePage.js +71 -0
- package/dist/pages/PeoplePage.js.map +1 -0
- package/dist/pages/PersonDetail.d.ts +2 -0
- package/dist/pages/PersonDetail.d.ts.map +1 -0
- package/dist/pages/PersonDetail.js +193 -0
- package/dist/pages/PersonDetail.js.map +1 -0
- package/dist/pages/PlanningPage.d.ts +2 -0
- package/dist/pages/PlanningPage.d.ts.map +1 -0
- package/dist/pages/PlanningPage.js +112 -0
- package/dist/pages/PlanningPage.js.map +1 -0
- package/dist/pages/RaiseDetail.d.ts +2 -0
- package/dist/pages/RaiseDetail.d.ts.map +1 -0
- package/dist/pages/RaiseDetail.js +198 -0
- package/dist/pages/RaiseDetail.js.map +1 -0
- package/dist/pages/RaiseStageSettingsPage.d.ts +3 -0
- package/dist/pages/RaiseStageSettingsPage.d.ts.map +1 -0
- package/dist/pages/RaiseStageSettingsPage.js +34 -0
- package/dist/pages/RaiseStageSettingsPage.js.map +1 -0
- package/dist/pages/RoleDetail.d.ts +2 -0
- package/dist/pages/RoleDetail.d.ts.map +1 -0
- package/dist/pages/RoleDetail.js +177 -0
- package/dist/pages/RoleDetail.js.map +1 -0
- package/dist/pages/SearchPage.d.ts +2 -0
- package/dist/pages/SearchPage.d.ts.map +1 -0
- package/dist/pages/SearchPage.js +51 -0
- package/dist/pages/SearchPage.js.map +1 -0
- package/dist/pages/account/AccountLayout.d.ts +2 -0
- package/dist/pages/account/AccountLayout.d.ts.map +1 -0
- package/dist/pages/account/AccountLayout.js +25 -0
- package/dist/pages/account/AccountLayout.js.map +1 -0
- package/dist/pages/account/Field.d.ts +8 -0
- package/dist/pages/account/Field.d.ts.map +1 -0
- package/dist/pages/account/Field.js +6 -0
- package/dist/pages/account/Field.js.map +1 -0
- package/dist/pages/account/PreferencesPage.d.ts +2 -0
- package/dist/pages/account/PreferencesPage.d.ts.map +1 -0
- package/dist/pages/account/PreferencesPage.js +92 -0
- package/dist/pages/account/PreferencesPage.js.map +1 -0
- package/dist/pages/account/ProfilePage.d.ts +14 -0
- package/dist/pages/account/ProfilePage.d.ts.map +1 -0
- package/dist/pages/account/ProfilePage.js +71 -0
- package/dist/pages/account/ProfilePage.js.map +1 -0
- package/dist/pages/account/SecurityPage.d.ts +11 -0
- package/dist/pages/account/SecurityPage.d.ts.map +1 -0
- package/dist/pages/account/SecurityPage.js +78 -0
- package/dist/pages/account/SecurityPage.js.map +1 -0
- package/dist/pages/admin/DataPage.d.ts +3 -0
- package/dist/pages/admin/DataPage.d.ts.map +1 -0
- package/dist/pages/admin/DataPage.js +210 -0
- package/dist/pages/admin/DataPage.js.map +1 -0
- package/dist/pages/admin/McpPage.d.ts +2 -0
- package/dist/pages/admin/McpPage.d.ts.map +1 -0
- package/dist/pages/admin/McpPage.js +128 -0
- package/dist/pages/admin/McpPage.js.map +1 -0
- package/dist/pages/admin/ModulesPage.d.ts +2 -0
- package/dist/pages/admin/ModulesPage.d.ts.map +1 -0
- package/dist/pages/admin/ModulesPage.js +53 -0
- package/dist/pages/admin/ModulesPage.js.map +1 -0
- package/dist/pages/admin/TeamPage.d.ts +2 -0
- package/dist/pages/admin/TeamPage.d.ts.map +1 -0
- package/dist/pages/admin/TeamPage.js +99 -0
- package/dist/pages/admin/TeamPage.js.map +1 -0
- package/dist/pages/admin/WebhookDeliveries.d.ts +4 -0
- package/dist/pages/admin/WebhookDeliveries.d.ts.map +1 -0
- package/dist/pages/admin/WebhookDeliveries.js +88 -0
- package/dist/pages/admin/WebhookDeliveries.js.map +1 -0
- package/dist/pages/admin/WebhooksPage.d.ts +2 -0
- package/dist/pages/admin/WebhooksPage.d.ts.map +1 -0
- package/dist/pages/admin/WebhooksPage.js +152 -0
- package/dist/pages/admin/WebhooksPage.js.map +1 -0
- package/dist/pages/admin/WorkspaceSettingsPage.d.ts +2 -0
- package/dist/pages/admin/WorkspaceSettingsPage.d.ts.map +1 -0
- package/dist/pages/admin/WorkspaceSettingsPage.js +117 -0
- package/dist/pages/admin/WorkspaceSettingsPage.js.map +1 -0
- package/dist/pages/auth/AuthForm.d.ts +46 -0
- package/dist/pages/auth/AuthForm.d.ts.map +1 -0
- package/dist/pages/auth/AuthForm.js +32 -0
- package/dist/pages/auth/AuthForm.js.map +1 -0
- package/dist/pages/auth/AuthLayout.d.ts +24 -0
- package/dist/pages/auth/AuthLayout.d.ts.map +1 -0
- package/dist/pages/auth/AuthLayout.js +19 -0
- package/dist/pages/auth/AuthLayout.js.map +1 -0
- package/dist/pages/auth/ForgotPasswordPage.d.ts +13 -0
- package/dist/pages/auth/ForgotPasswordPage.d.ts.map +1 -0
- package/dist/pages/auth/ForgotPasswordPage.js +39 -0
- package/dist/pages/auth/ForgotPasswordPage.js.map +1 -0
- package/dist/pages/auth/JoinPage.d.ts +12 -0
- package/dist/pages/auth/JoinPage.d.ts.map +1 -0
- package/dist/pages/auth/JoinPage.js +43 -0
- package/dist/pages/auth/JoinPage.js.map +1 -0
- package/dist/pages/auth/ResetPasswordPage.d.ts +13 -0
- package/dist/pages/auth/ResetPasswordPage.d.ts.map +1 -0
- package/dist/pages/auth/ResetPasswordPage.js +58 -0
- package/dist/pages/auth/ResetPasswordPage.js.map +1 -0
- package/dist/pages/auth/SignInPage.d.ts +2 -0
- package/dist/pages/auth/SignInPage.d.ts.map +1 -0
- package/dist/pages/auth/SignInPage.js +38 -0
- package/dist/pages/auth/SignInPage.js.map +1 -0
- package/dist/pages/auth/SignUpPage.d.ts +13 -0
- package/dist/pages/auth/SignUpPage.d.ts.map +1 -0
- package/dist/pages/auth/SignUpPage.js +43 -0
- package/dist/pages/auth/SignUpPage.js.map +1 -0
- package/dist/pages/candidateFields.d.ts +22 -0
- package/dist/pages/candidateFields.d.ts.map +1 -0
- package/dist/pages/candidateFields.js +82 -0
- package/dist/pages/candidateFields.js.map +1 -0
- package/dist/pages/dashboard/DashboardPage.d.ts +2 -0
- package/dist/pages/dashboard/DashboardPage.d.ts.map +1 -0
- package/dist/pages/dashboard/DashboardPage.js +40 -0
- package/dist/pages/dashboard/DashboardPage.js.map +1 -0
- package/dist/pages/dashboard/attention.d.ts +41 -0
- package/dist/pages/dashboard/attention.d.ts.map +1 -0
- package/dist/pages/dashboard/attention.js +146 -0
- package/dist/pages/dashboard/attention.js.map +1 -0
- package/dist/pages/dashboard/sections.d.ts +20 -0
- package/dist/pages/dashboard/sections.d.ts.map +1 -0
- package/dist/pages/dashboard/sections.js +60 -0
- package/dist/pages/dashboard/sections.js.map +1 -0
- package/dist/pages/fields.d.ts +11 -0
- package/dist/pages/fields.d.ts.map +1 -0
- package/dist/pages/fields.js +17 -0
- package/dist/pages/fields.js.map +1 -0
- package/dist/pages/forms/EmbedPanel.d.ts +14 -0
- package/dist/pages/forms/EmbedPanel.d.ts.map +1 -0
- package/dist/pages/forms/EmbedPanel.js +19 -0
- package/dist/pages/forms/EmbedPanel.js.map +1 -0
- package/dist/pages/forms/FieldsEditor.d.ts +6 -0
- package/dist/pages/forms/FieldsEditor.d.ts.map +1 -0
- package/dist/pages/forms/FieldsEditor.js +115 -0
- package/dist/pages/forms/FieldsEditor.js.map +1 -0
- package/dist/pages/forms/FormSettings.d.ts +6 -0
- package/dist/pages/forms/FormSettings.d.ts.map +1 -0
- package/dist/pages/forms/FormSettings.js +47 -0
- package/dist/pages/forms/FormSettings.js.map +1 -0
- package/dist/pages/forms/SubmissionsTable.d.ts +8 -0
- package/dist/pages/forms/SubmissionsTable.d.ts.map +1 -0
- package/dist/pages/forms/SubmissionsTable.js +91 -0
- package/dist/pages/forms/SubmissionsTable.js.map +1 -0
- package/dist/pages/forms/fieldList.d.ts +70 -0
- package/dist/pages/forms/fieldList.d.ts.map +1 -0
- package/dist/pages/forms/fieldList.js +126 -0
- package/dist/pages/forms/fieldList.js.map +1 -0
- package/dist/pages/forms/template.d.ts +18 -0
- package/dist/pages/forms/template.d.ts.map +1 -0
- package/dist/pages/forms/template.js +34 -0
- package/dist/pages/forms/template.js.map +1 -0
- package/dist/pages/handbook/HandbookPage.d.ts +2 -0
- package/dist/pages/handbook/HandbookPage.d.ts.map +1 -0
- package/dist/pages/handbook/HandbookPage.js +197 -0
- package/dist/pages/handbook/HandbookPage.js.map +1 -0
- package/dist/pages/handbook/tree.d.ts +62 -0
- package/dist/pages/handbook/tree.d.ts.map +1 -0
- package/dist/pages/handbook/tree.js +222 -0
- package/dist/pages/handbook/tree.js.map +1 -0
- package/dist/pages/hiringDirectory.d.ts +60 -0
- package/dist/pages/hiringDirectory.d.ts.map +1 -0
- package/dist/pages/hiringDirectory.js +81 -0
- package/dist/pages/hiringDirectory.js.map +1 -0
- package/dist/pages/onboarding/HandbookStepPage.d.ts +14 -0
- package/dist/pages/onboarding/HandbookStepPage.d.ts.map +1 -0
- package/dist/pages/onboarding/HandbookStepPage.js +29 -0
- package/dist/pages/onboarding/HandbookStepPage.js.map +1 -0
- package/dist/pages/onboarding/InvitesStepPage.d.ts +2 -0
- package/dist/pages/onboarding/InvitesStepPage.d.ts.map +1 -0
- package/dist/pages/onboarding/InvitesStepPage.js +77 -0
- package/dist/pages/onboarding/InvitesStepPage.js.map +1 -0
- package/dist/pages/onboarding/WorkspaceStepPage.d.ts +2 -0
- package/dist/pages/onboarding/WorkspaceStepPage.d.ts.map +1 -0
- package/dist/pages/onboarding/WorkspaceStepPage.js +72 -0
- package/dist/pages/onboarding/WorkspaceStepPage.js.map +1 -0
- package/dist/pages/positionDirectory.d.ts +20 -0
- package/dist/pages/positionDirectory.d.ts.map +1 -0
- package/dist/pages/positionDirectory.js +58 -0
- package/dist/pages/positionDirectory.js.map +1 -0
- package/dist/registry/UiExtensionProvider.d.ts +12 -0
- package/dist/registry/UiExtensionProvider.d.ts.map +1 -0
- package/dist/registry/UiExtensionProvider.js +10 -0
- package/dist/registry/UiExtensionProvider.js.map +1 -0
- package/dist/registry/context.d.ts +31 -0
- package/dist/registry/context.d.ts.map +1 -0
- package/dist/registry/context.js +45 -0
- package/dist/registry/context.js.map +1 -0
- package/dist/registry/contributions.d.ts +71 -0
- package/dist/registry/contributions.d.ts.map +1 -0
- package/dist/registry/contributions.js +25 -0
- package/dist/registry/contributions.js.map +1 -0
- package/dist/registry/overridable.d.ts +27 -0
- package/dist/registry/overridable.d.ts.map +1 -0
- package/dist/registry/overridable.js +29 -0
- package/dist/registry/overridable.js.map +1 -0
- package/dist/registry/registry.d.ts +68 -0
- package/dist/registry/registry.d.ts.map +1 -0
- package/dist/registry/registry.js +112 -0
- package/dist/registry/registry.js.map +1 -0
- package/dist/testing/inputs.d.ts +13 -0
- package/dist/testing/inputs.d.ts.map +1 -0
- package/dist/testing/inputs.js +16 -0
- package/dist/testing/inputs.js.map +1 -0
- package/dist/testing/stubClient.d.ts +42 -0
- package/dist/testing/stubClient.d.ts.map +1 -0
- package/dist/testing/stubClient.js +29 -0
- package/dist/testing/stubClient.js.map +1 -0
- package/package.json +73 -0
- package/src/ServiceStatus.tsx +61 -0
- package/src/api/ApiProvider.tsx +40 -0
- package/src/api/client.ts +267 -0
- package/src/api/context.ts +25 -0
- package/src/api/errors.ts +14 -0
- package/src/api/health.ts +38 -0
- package/src/api/json.ts +4 -0
- package/src/api/queryClient.ts +35 -0
- package/src/api/resource.ts +412 -0
- package/src/api/resources/account.ts +220 -0
- package/src/api/resources/activities.ts +31 -0
- package/src/api/resources/agentTasks.ts +172 -0
- package/src/api/resources/candidates.ts +69 -0
- package/src/api/resources/companies.ts +72 -0
- package/src/api/resources/dashboard.ts +39 -0
- package/src/api/resources/deals.ts +82 -0
- package/src/api/resources/decisions.ts +60 -0
- package/src/api/resources/forms.ts +218 -0
- package/src/api/resources/handbookPages.ts +77 -0
- package/src/api/resources/importJobs.ts +229 -0
- package/src/api/resources/invites.ts +112 -0
- package/src/api/resources/mcpTools.ts +28 -0
- package/src/api/resources/members.ts +105 -0
- package/src/api/resources/moduleSettings.ts +67 -0
- package/src/api/resources/mutation.ts +31 -0
- package/src/api/resources/notes.ts +62 -0
- package/src/api/resources/opportunities.ts +84 -0
- package/src/api/resources/partnerships.ts +89 -0
- package/src/api/resources/people.ts +72 -0
- package/src/api/resources/pipelineStages.ts +93 -0
- package/src/api/resources/planItems.ts +103 -0
- package/src/api/resources/positions.ts +70 -0
- package/src/api/resources/raises.ts +82 -0
- package/src/api/resources/roles.ts +65 -0
- package/src/api/resources/search.ts +49 -0
- package/src/api/resources/session.ts +220 -0
- package/src/api/resources/webhooks.ts +157 -0
- package/src/api/resources/workspace.ts +81 -0
- package/src/app/KelpieApp.tsx +162 -0
- package/src/app/SessionGate.tsx +42 -0
- package/src/components/ActivitiesPanel.tsx +235 -0
- package/src/components/AgentTasks.tsx +473 -0
- package/src/components/Chip.tsx +36 -0
- package/src/components/CopyButton.tsx +48 -0
- package/src/components/DataTable.tsx +209 -0
- package/src/components/DecisionsPanel.tsx +233 -0
- package/src/components/DeleteRecord.tsx +73 -0
- package/src/components/EntitySearch.tsx +268 -0
- package/src/components/ErrorBoundary.tsx +58 -0
- package/src/components/InlineEdit.tsx +179 -0
- package/src/components/KanbanBoard.tsx +234 -0
- package/src/components/MarkdownView.tsx +73 -0
- package/src/components/NotesPanel.tsx +169 -0
- package/src/components/PageHeader.tsx +61 -0
- package/src/components/PhonesField.tsx +204 -0
- package/src/components/PlanAttention.tsx +249 -0
- package/src/components/PlanPanel.tsx +317 -0
- package/src/components/QueryState.tsx +83 -0
- package/src/components/RecordTabs.tsx +69 -0
- package/src/components/SectionHeader.tsx +63 -0
- package/src/components/SegmentedControl.tsx +48 -0
- package/src/components/Shell.tsx +300 -0
- package/src/components/SidebarField.tsx +18 -0
- package/src/components/SocialProfilesField.tsx +356 -0
- package/src/components/StageSettings.tsx +319 -0
- package/src/components/SummaryBlock.tsx +27 -0
- package/src/index.ts +190 -0
- package/src/lib/dates.ts +90 -0
- package/src/lib/money.ts +12 -0
- package/src/lib/names.ts +13 -0
- package/src/lib/plan.ts +147 -0
- package/src/lib/theme.ts +53 -0
- package/src/pages/CompaniesPage.tsx +143 -0
- package/src/pages/CompanyDetail.tsx +502 -0
- package/src/pages/DealDetail.tsx +512 -0
- package/src/pages/DealStageSettingsPage.tsx +67 -0
- package/src/pages/DealsPage.tsx +342 -0
- package/src/pages/DecisionsPage.tsx +211 -0
- package/src/pages/FormDetail.tsx +130 -0
- package/src/pages/FormsPage.tsx +151 -0
- package/src/pages/FundraisingPage.tsx +354 -0
- package/src/pages/HiringPage.tsx +169 -0
- package/src/pages/NotFoundPage.tsx +27 -0
- package/src/pages/OpportunitiesPage.tsx +349 -0
- package/src/pages/OpportunityDetail.tsx +337 -0
- package/src/pages/OpportunityStageSettingsPage.tsx +63 -0
- package/src/pages/PartnershipDetail.tsx +490 -0
- package/src/pages/PartnershipStageSettingsPage.tsx +63 -0
- package/src/pages/PartnershipsPage.tsx +353 -0
- package/src/pages/PeoplePage.tsx +145 -0
- package/src/pages/PersonDetail.tsx +526 -0
- package/src/pages/PlanningPage.tsx +318 -0
- package/src/pages/RaiseDetail.tsx +498 -0
- package/src/pages/RaiseStageSettingsPage.tsx +63 -0
- package/src/pages/RoleDetail.tsx +455 -0
- package/src/pages/SearchPage.tsx +135 -0
- package/src/pages/account/AccountLayout.tsx +38 -0
- package/src/pages/account/Field.tsx +20 -0
- package/src/pages/account/PreferencesPage.tsx +224 -0
- package/src/pages/account/ProfilePage.tsx +147 -0
- package/src/pages/account/SecurityPage.tsx +237 -0
- package/src/pages/admin/DataPage.tsx +772 -0
- package/src/pages/admin/McpPage.tsx +404 -0
- package/src/pages/admin/ModulesPage.tsx +113 -0
- package/src/pages/admin/TeamPage.tsx +386 -0
- package/src/pages/admin/WebhookDeliveries.tsx +184 -0
- package/src/pages/admin/WebhooksPage.tsx +443 -0
- package/src/pages/admin/WorkspaceSettingsPage.tsx +274 -0
- package/src/pages/auth/AuthForm.tsx +118 -0
- package/src/pages/auth/AuthLayout.tsx +74 -0
- package/src/pages/auth/ForgotPasswordPage.tsx +80 -0
- package/src/pages/auth/JoinPage.tsx +85 -0
- package/src/pages/auth/ResetPasswordPage.tsx +124 -0
- package/src/pages/auth/SignInPage.tsx +83 -0
- package/src/pages/auth/SignUpPage.tsx +93 -0
- package/src/pages/candidateFields.tsx +175 -0
- package/src/pages/dashboard/DashboardPage.tsx +108 -0
- package/src/pages/dashboard/attention.ts +206 -0
- package/src/pages/dashboard/sections.tsx +269 -0
- package/src/pages/fields.ts +21 -0
- package/src/pages/forms/EmbedPanel.tsx +95 -0
- package/src/pages/forms/FieldsEditor.tsx +412 -0
- package/src/pages/forms/FormSettings.tsx +159 -0
- package/src/pages/forms/SubmissionsTable.tsx +171 -0
- package/src/pages/forms/fieldList.ts +209 -0
- package/src/pages/forms/template.ts +37 -0
- package/src/pages/handbook/HandbookPage.tsx +500 -0
- package/src/pages/handbook/tree.ts +327 -0
- package/src/pages/hiringDirectory.ts +146 -0
- package/src/pages/onboarding/HandbookStepPage.tsx +75 -0
- package/src/pages/onboarding/InvitesStepPage.tsx +180 -0
- package/src/pages/onboarding/WorkspaceStepPage.tsx +122 -0
- package/src/pages/positionDirectory.ts +98 -0
- package/src/registry/UiExtensionProvider.tsx +20 -0
- package/src/registry/context.ts +67 -0
- package/src/registry/contributions.ts +89 -0
- package/src/registry/overridable.ts +62 -0
- package/src/registry/registry.ts +204 -0
- package/src/styles.css +175 -0
- package/src/testing/inputs.ts +18 -0
- package/src/testing/stubClient.ts +78 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import {
|
|
2
|
+
agentRunSchema,
|
|
3
|
+
agentTaskDefinitionSchema,
|
|
4
|
+
createRegisteredAgentBody,
|
|
5
|
+
registeredAgentBody,
|
|
6
|
+
registeredAgentSchema,
|
|
7
|
+
resolveAgentTaskBody,
|
|
8
|
+
resolvedAgentTaskSchema,
|
|
9
|
+
runAgentTaskBody,
|
|
10
|
+
} from '@kelpie/schemas'
|
|
11
|
+
import type {
|
|
12
|
+
AgentRun,
|
|
13
|
+
AgentRunStatus,
|
|
14
|
+
AgentTaskDefinition,
|
|
15
|
+
AgentTaskTargetType,
|
|
16
|
+
CreateRegisteredAgentInput,
|
|
17
|
+
RegisteredAgent,
|
|
18
|
+
RegisteredAgentInput,
|
|
19
|
+
ResolveAgentTaskInput,
|
|
20
|
+
ResolvedAgentTask,
|
|
21
|
+
RunAgentTaskInput,
|
|
22
|
+
} from '@kelpie/schemas'
|
|
23
|
+
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
|
24
|
+
|
|
25
|
+
import { ApiError } from '../client.ts'
|
|
26
|
+
import { useApiClient } from '../context.ts'
|
|
27
|
+
import { toError } from '../errors.ts'
|
|
28
|
+
import { createReadOnlyResourceHooks, createResourceHooks } from '../resource.ts'
|
|
29
|
+
import type {
|
|
30
|
+
ListOptions,
|
|
31
|
+
MutationResult,
|
|
32
|
+
RecordListResult,
|
|
33
|
+
RecordResult,
|
|
34
|
+
UpdateArguments,
|
|
35
|
+
} from '../resource.ts'
|
|
36
|
+
import { asMutationResult } from './mutation.ts'
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* `/v1/agent-tasks`, `/v1/agent-runs` and `/v1/agents`: prompt recipes, their
|
|
40
|
+
* dispatch log, and the bring-your-own agents they dispatch to.
|
|
41
|
+
*
|
|
42
|
+
* Resolve and run are POSTs with a task id in the path, so both are written out
|
|
43
|
+
* the way `useCreateWebhook` is. A run settles on the server after the response
|
|
44
|
+
* returns, which is what `useAgentRun`'s polling is for.
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
const tasks = createReadOnlyResourceHooks<AgentTaskDefinition>({
|
|
48
|
+
name: 'agent_tasks',
|
|
49
|
+
path: '/agent-tasks',
|
|
50
|
+
decode: agentTaskDefinitionSchema.parse,
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
/** The catalog for one target type. Code on the server, so never stale enough to refetch. */
|
|
54
|
+
export function useAgentTasks(targetType: AgentTaskTargetType): RecordListResult<AgentTaskDefinition> {
|
|
55
|
+
return tasks.useList({ target_type: targetType })
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** The whole catalog, for labelling run-log rows by task id. */
|
|
59
|
+
export function useAllAgentTasks(): RecordListResult<AgentTaskDefinition> {
|
|
60
|
+
return tasks.useList()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface ResolveAgentTaskArguments extends ResolveAgentTaskInput {
|
|
64
|
+
readonly taskId: string
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** A POST in verb only: it assembles a prompt and writes nothing, so no cache moves. */
|
|
68
|
+
export function useResolveAgentTask(): MutationResult<ResolveAgentTaskArguments, ResolvedAgentTask> {
|
|
69
|
+
const client = useApiClient()
|
|
70
|
+
const mutation = useMutation({
|
|
71
|
+
mutationFn: ({ taskId, ...input }: ResolveAgentTaskArguments) =>
|
|
72
|
+
client.post(
|
|
73
|
+
`/agent-tasks/${taskId}/resolve`,
|
|
74
|
+
resolveAgentTaskBody(input),
|
|
75
|
+
resolvedAgentTaskSchema.parse,
|
|
76
|
+
),
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
return asMutationResult(mutation)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface RunAgentTaskArguments extends RunAgentTaskInput {
|
|
83
|
+
readonly taskId: string
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function useRunAgentTask(): MutationResult<RunAgentTaskArguments, AgentRun> {
|
|
87
|
+
const client = useApiClient()
|
|
88
|
+
const queryClient = useQueryClient()
|
|
89
|
+
const mutation = useMutation({
|
|
90
|
+
mutationFn: ({ taskId, ...input }: RunAgentTaskArguments) =>
|
|
91
|
+
client.post(`/agent-tasks/${taskId}/run`, runAgentTaskBody(input), agentRunSchema.parse),
|
|
92
|
+
onSettled: () => {
|
|
93
|
+
// The run log gained a row, and the agent's `last_run_at` moved with it.
|
|
94
|
+
void queryClient.invalidateQueries({ queryKey: ['agent_runs'] })
|
|
95
|
+
void queryClient.invalidateQueries({ queryKey: ['agents', 'list'] })
|
|
96
|
+
},
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
return asMutationResult(mutation)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const runs = createReadOnlyResourceHooks<AgentRun>({
|
|
103
|
+
name: 'agent_runs',
|
|
104
|
+
path: '/agent-runs',
|
|
105
|
+
decode: agentRunSchema.parse,
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
export interface AgentRunFilters {
|
|
109
|
+
readonly agentId?: string
|
|
110
|
+
readonly status?: AgentRunStatus
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export function useAgentRuns(
|
|
114
|
+
filters: AgentRunFilters = {},
|
|
115
|
+
options: ListOptions = {},
|
|
116
|
+
): RecordListResult<AgentRun> {
|
|
117
|
+
return runs.useList({ agent_id: filters.agentId, status: filters.status }, options)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const POLL_INTERVAL_MS = 750
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* One run, polled while the dispatch is still moving. The server settles the
|
|
124
|
+
* run after the create response returns, so `queued` and `running` are moments
|
|
125
|
+
* the page would otherwise be stuck displaying forever.
|
|
126
|
+
*/
|
|
127
|
+
export function useAgentRun(id: string | undefined): RecordResult<AgentRun> {
|
|
128
|
+
const client = useApiClient()
|
|
129
|
+
const result = useQuery({
|
|
130
|
+
// The same key `runs.useRecord` would use, so the two never hold different
|
|
131
|
+
// copies of one run.
|
|
132
|
+
queryKey: ['agent_runs', 'detail', id ?? ''],
|
|
133
|
+
queryFn: () => client.get(`/agent-runs/${id ?? ''}`, agentRunSchema.parse),
|
|
134
|
+
enabled: id !== undefined,
|
|
135
|
+
refetchInterval: (query) => {
|
|
136
|
+
const status = query.state.data?.status
|
|
137
|
+
|
|
138
|
+
return status === 'queued' || status === 'running' ? POLL_INTERVAL_MS : false
|
|
139
|
+
},
|
|
140
|
+
})
|
|
141
|
+
|
|
142
|
+
return {
|
|
143
|
+
record: result.data,
|
|
144
|
+
isLoading: result.isPending && id !== undefined,
|
|
145
|
+
error: toError(result.error),
|
|
146
|
+
isNotFound: result.error instanceof ApiError && result.error.status === 404,
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const agents = createResourceHooks<RegisteredAgent, CreateRegisteredAgentInput, RegisteredAgentInput>({
|
|
151
|
+
name: 'agents',
|
|
152
|
+
path: '/agents',
|
|
153
|
+
decode: registeredAgentSchema.parse,
|
|
154
|
+
createBody: createRegisteredAgentBody,
|
|
155
|
+
updateBody: registeredAgentBody,
|
|
156
|
+
})
|
|
157
|
+
|
|
158
|
+
export function useAgents(options: ListOptions = {}): RecordListResult<RegisteredAgent> {
|
|
159
|
+
return agents.useList({}, options)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export function useCreateAgent(): MutationResult<CreateRegisteredAgentInput, RegisteredAgent> {
|
|
163
|
+
return agents.useCreate()
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export function useUpdateAgent(): MutationResult<UpdateArguments<RegisteredAgentInput>, RegisteredAgent> {
|
|
167
|
+
return agents.useUpdate()
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export function useDeleteAgent(): MutationResult<string, void> {
|
|
171
|
+
return agents.useRemove()
|
|
172
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { candidateBody, candidateSchema, createCandidateBody } from '@kelpie/schemas'
|
|
2
|
+
import type { Candidate, CandidateInput, CandidateStatus, CreateCandidateInput } from '@kelpie/schemas'
|
|
3
|
+
|
|
4
|
+
import type { QueryParameters } from '../client.ts'
|
|
5
|
+
import { createResourceHooks } from '../resource.ts'
|
|
6
|
+
import type {
|
|
7
|
+
ListOptions,
|
|
8
|
+
MutationResult,
|
|
9
|
+
RecordListResult,
|
|
10
|
+
UpdateArguments,
|
|
11
|
+
} from '../resource.ts'
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* `/v1/candidates`, the Person↔Role link.
|
|
15
|
+
*
|
|
16
|
+
* There is no single-candidate hook. Every page that shows a candidacy already
|
|
17
|
+
* has the list it came from — a role's pipeline or a person's roles — so a
|
|
18
|
+
* detail fetch would be a second request for a record already on screen.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
const candidates = createResourceHooks<Candidate, CreateCandidateInput, CandidateInput>({
|
|
22
|
+
name: 'candidates',
|
|
23
|
+
path: '/candidates',
|
|
24
|
+
decode: candidateSchema.parse,
|
|
25
|
+
createBody: createCandidateBody,
|
|
26
|
+
updateBody: candidateBody,
|
|
27
|
+
// Every write files an activity on the candidate's person, and a delete takes
|
|
28
|
+
// the interview notes with it.
|
|
29
|
+
alsoInvalidates: ['activities', 'notes'],
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
/** The documented filters on `GET /v1/candidates`. */
|
|
33
|
+
export interface CandidateFilters {
|
|
34
|
+
/** Candidacies on any of these roles. Repeats on the wire. */
|
|
35
|
+
readonly roleIds?: readonly string[]
|
|
36
|
+
/** Candidacies held by any of these people. Repeats on the wire. */
|
|
37
|
+
readonly personIds?: readonly string[]
|
|
38
|
+
/** Candidacies in any of these pipeline states. Repeats on the wire. */
|
|
39
|
+
readonly statuses?: readonly CandidateStatus[]
|
|
40
|
+
readonly limit?: number
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function candidateQuery(filters: CandidateFilters): QueryParameters {
|
|
44
|
+
return {
|
|
45
|
+
role_id: filters.roleIds,
|
|
46
|
+
person_id: filters.personIds,
|
|
47
|
+
status: filters.statuses,
|
|
48
|
+
limit: filters.limit,
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function useCandidates(
|
|
53
|
+
filters: CandidateFilters = {},
|
|
54
|
+
options: ListOptions = {},
|
|
55
|
+
): RecordListResult<Candidate> {
|
|
56
|
+
return candidates.useList(candidateQuery(filters), options)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function useCreateCandidate(): MutationResult<CreateCandidateInput, Candidate> {
|
|
60
|
+
return candidates.useCreate()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function useUpdateCandidate(): MutationResult<UpdateArguments<CandidateInput>, Candidate> {
|
|
64
|
+
return candidates.useUpdate()
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function useDeleteCandidate(): MutationResult<string, void> {
|
|
68
|
+
return candidates.useRemove()
|
|
69
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { companyBody, companySchema } from '@kelpie/schemas'
|
|
2
|
+
import type { Company, CompanyInput } from '@kelpie/schemas'
|
|
3
|
+
|
|
4
|
+
import type { QueryParameters } from '../client.ts'
|
|
5
|
+
import { createResourceHooks } from '../resource.ts'
|
|
6
|
+
import type {
|
|
7
|
+
ListOptions,
|
|
8
|
+
MutationResult,
|
|
9
|
+
RecordListResult,
|
|
10
|
+
RecordResult,
|
|
11
|
+
UpdateArguments,
|
|
12
|
+
} from '../resource.ts'
|
|
13
|
+
|
|
14
|
+
/** `/v1/companies`. Create needs a name; the API defaults every other field. */
|
|
15
|
+
|
|
16
|
+
export interface CreateCompanyInput extends CompanyInput {
|
|
17
|
+
readonly name: string
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const companies = createResourceHooks<Company, CreateCompanyInput, CompanyInput>({
|
|
21
|
+
name: 'companies',
|
|
22
|
+
path: '/companies',
|
|
23
|
+
decode: companySchema.parse,
|
|
24
|
+
createBody: companyBody,
|
|
25
|
+
updateBody: companyBody,
|
|
26
|
+
// Every write here emits an activity server-side, in the same transaction, so
|
|
27
|
+
// a timeline rendered on this record is stale the moment the write lands.
|
|
28
|
+
alsoInvalidates: ['activities'],
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
/** The documented filters on `GET /v1/companies`. */
|
|
32
|
+
export interface CompanyFilters {
|
|
33
|
+
/** Matches name, domain, industry, summary, account type, and tags. */
|
|
34
|
+
readonly term?: string
|
|
35
|
+
/** Companies where any of these people holds a position. Repeats on the wire. */
|
|
36
|
+
readonly personIds?: readonly string[]
|
|
37
|
+
readonly limit?: number
|
|
38
|
+
/** `field` ascending, `-field` descending. Only `name`, `created_at`, `updated_at` are sortable. */
|
|
39
|
+
readonly sort?: string
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function companyQuery(filters: CompanyFilters): QueryParameters {
|
|
43
|
+
return {
|
|
44
|
+
q: filters.term,
|
|
45
|
+
person_id: filters.personIds,
|
|
46
|
+
limit: filters.limit,
|
|
47
|
+
sort: filters.sort,
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function useCompanies(
|
|
52
|
+
filters: CompanyFilters = {},
|
|
53
|
+
options: ListOptions = {},
|
|
54
|
+
): RecordListResult<Company> {
|
|
55
|
+
return companies.useList(companyQuery(filters), options)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function useCompany(id: string | undefined): RecordResult<Company> {
|
|
59
|
+
return companies.useRecord(id)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function useCreateCompany(): MutationResult<CreateCompanyInput, Company> {
|
|
63
|
+
return companies.useCreate()
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function useUpdateCompany(): MutationResult<UpdateArguments<CompanyInput>, Company> {
|
|
67
|
+
return companies.useUpdate()
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function useDeleteCompany(): MutationResult<string, void> {
|
|
71
|
+
return companies.useRemove()
|
|
72
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { dashboardSchema } from '@kelpie/schemas'
|
|
2
|
+
import type { Dashboard } from '@kelpie/schemas'
|
|
3
|
+
import { useQuery } from '@tanstack/react-query'
|
|
4
|
+
|
|
5
|
+
import { useApiClient } from '../context.ts'
|
|
6
|
+
import { toError } from '../errors.ts'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* `/v1/dashboard`, read-only: the workspace home in one request.
|
|
10
|
+
*
|
|
11
|
+
* Not a `createResourceHooks` resource. There is no collection, no id in a path,
|
|
12
|
+
* and no write, so the five verbs those hooks build would all be dead.
|
|
13
|
+
*
|
|
14
|
+
* Nothing invalidates this key from elsewhere. Every signal is derived from
|
|
15
|
+
* records other pages own, so listing the writes that could move a number here
|
|
16
|
+
* would mean naming most of the API. React Query refetches it on mount and on
|
|
17
|
+
* window focus, which is when a workspace home is looked at.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
const DASHBOARD_KEY = ['dashboard'] as const
|
|
21
|
+
|
|
22
|
+
/** How many rows each embedded list carries. The totals beside them are exact regardless. */
|
|
23
|
+
const SIGNAL_LIMIT = 5
|
|
24
|
+
|
|
25
|
+
export interface DashboardState {
|
|
26
|
+
readonly dashboard: Dashboard | undefined
|
|
27
|
+
readonly isLoading: boolean
|
|
28
|
+
readonly error: Error | null
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function useDashboard(): DashboardState {
|
|
32
|
+
const client = useApiClient()
|
|
33
|
+
const result = useQuery({
|
|
34
|
+
queryKey: DASHBOARD_KEY,
|
|
35
|
+
queryFn: () => client.get('/dashboard', dashboardSchema.parse, { limit: SIGNAL_LIMIT }),
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
return { dashboard: result.data, isLoading: result.isPending, error: toError(result.error) }
|
|
39
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { dealBody, dealSchema } from '@kelpie/schemas'
|
|
2
|
+
import type { Deal, DealInput } from '@kelpie/schemas'
|
|
3
|
+
|
|
4
|
+
import type { QueryParameters } from '../client.ts'
|
|
5
|
+
import { createResourceHooks } from '../resource.ts'
|
|
6
|
+
import type {
|
|
7
|
+
ListOptions,
|
|
8
|
+
MutationResult,
|
|
9
|
+
RecordListResult,
|
|
10
|
+
RecordResult,
|
|
11
|
+
UpdateArguments,
|
|
12
|
+
} from '../resource.ts'
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* `/v1/deals`. Create needs a name and a company; the API lands the deal in the
|
|
16
|
+
* pipeline's first open stage and hands it to the caller as owner.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export interface CreateDealInput extends DealInput {
|
|
20
|
+
readonly name: string
|
|
21
|
+
readonly companyId: string
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const deals = createResourceHooks<Deal, CreateDealInput, DealInput>({
|
|
25
|
+
name: 'deals',
|
|
26
|
+
path: '/deals',
|
|
27
|
+
decode: dealSchema.parse,
|
|
28
|
+
createBody: dealBody,
|
|
29
|
+
updateBody: dealBody,
|
|
30
|
+
// Every write here emits an activity server-side, in the same transaction, so
|
|
31
|
+
// a timeline rendered on this record is stale the moment the write lands.
|
|
32
|
+
alsoInvalidates: ['activities'],
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
/** The documented filters on `GET /v1/deals`. */
|
|
36
|
+
export interface DealFilters {
|
|
37
|
+
/** Matches the deal's name, summary, tags, competitors, and its company's name. */
|
|
38
|
+
readonly term?: string
|
|
39
|
+
/** Deals at any of these companies. Repeats on the wire. */
|
|
40
|
+
readonly companyIds?: readonly string[]
|
|
41
|
+
/** Deals sitting in any of these stages. Repeats on the wire. */
|
|
42
|
+
readonly stageIds?: readonly string[]
|
|
43
|
+
/** Deals any of these people are on. Repeats on the wire. */
|
|
44
|
+
readonly personIds?: readonly string[]
|
|
45
|
+
readonly limit?: number
|
|
46
|
+
/** `field` ascending, `-field` descending. Only `name`, `created_at`, `updated_at` are sortable. */
|
|
47
|
+
readonly sort?: string
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function dealQuery(filters: DealFilters): QueryParameters {
|
|
51
|
+
return {
|
|
52
|
+
q: filters.term,
|
|
53
|
+
company_id: filters.companyIds,
|
|
54
|
+
stage_id: filters.stageIds,
|
|
55
|
+
person_id: filters.personIds,
|
|
56
|
+
limit: filters.limit,
|
|
57
|
+
sort: filters.sort,
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function useDeals(
|
|
62
|
+
filters: DealFilters = {},
|
|
63
|
+
options: ListOptions = {},
|
|
64
|
+
): RecordListResult<Deal> {
|
|
65
|
+
return deals.useList(dealQuery(filters), options)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function useDeal(id: string | undefined): RecordResult<Deal> {
|
|
69
|
+
return deals.useRecord(id)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export function useCreateDeal(): MutationResult<CreateDealInput, Deal> {
|
|
73
|
+
return deals.useCreate()
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function useUpdateDeal(): MutationResult<UpdateArguments<DealInput>, Deal> {
|
|
77
|
+
return deals.useUpdate()
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function useDeleteDeal(): MutationResult<string, void> {
|
|
81
|
+
return deals.useRemove()
|
|
82
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createDecisionBody, decisionBody, decisionSchema } from '@kelpie/schemas'
|
|
2
|
+
import type {
|
|
3
|
+
CreateDecisionInput,
|
|
4
|
+
Decision,
|
|
5
|
+
DecisionInput,
|
|
6
|
+
RecordTargetType,
|
|
7
|
+
} from '@kelpie/schemas'
|
|
8
|
+
|
|
9
|
+
import type { QueryParameters } from '../client.ts'
|
|
10
|
+
import { createResourceHooks } from '../resource.ts'
|
|
11
|
+
import type { MutationResult, RecordListResult, UpdateArguments } from '../resource.ts'
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* `/v1/decisions`, attachable to any CRM record.
|
|
15
|
+
*
|
|
16
|
+
* Unlike notes, the API answers a workspace-wide list too: `/decisions` is a
|
|
17
|
+
* page of its own, so the filters here are all optional.
|
|
18
|
+
*
|
|
19
|
+
* No `alsoInvalidates`: a decision write files no activity row and touches no
|
|
20
|
+
* other resource.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
const decisions = createResourceHooks<Decision, CreateDecisionInput, DecisionInput>({
|
|
24
|
+
name: 'decisions',
|
|
25
|
+
path: '/decisions',
|
|
26
|
+
decode: decisionSchema.parse,
|
|
27
|
+
createBody: createDecisionBody,
|
|
28
|
+
updateBody: decisionBody,
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
export interface DecisionFilters {
|
|
32
|
+
readonly targetType?: RecordTargetType
|
|
33
|
+
readonly targetId?: string
|
|
34
|
+
/** Matches the body, the rationale, the target type, and the target's name. */
|
|
35
|
+
readonly term?: string
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function decisionQuery(filters: DecisionFilters): QueryParameters {
|
|
39
|
+
return {
|
|
40
|
+
target_type: filters.targetType,
|
|
41
|
+
target_id: filters.targetId,
|
|
42
|
+
q: filters.term,
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function useDecisions(filters: DecisionFilters = {}): RecordListResult<Decision> {
|
|
47
|
+
return decisions.useList(decisionQuery(filters))
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function useCreateDecision(): MutationResult<CreateDecisionInput, Decision> {
|
|
51
|
+
return decisions.useCreate()
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function useUpdateDecision(): MutationResult<UpdateArguments<DecisionInput>, Decision> {
|
|
55
|
+
return decisions.useUpdate()
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function useDeleteDecision(): MutationResult<string, void> {
|
|
59
|
+
return decisions.useRemove()
|
|
60
|
+
}
|