@taskforcehq/taskforce 0.3.311 → 0.3.313
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/README.md +40 -2
- package/dist/TaskforceCore.js +1 -1
- package/dist/components/features/InitiativesModule.js +1 -1
- package/dist/components/features/TaskSettings.js +1 -1
- package/dist/components/views/StandaloneLayout.js +3 -6
- package/dist/components/views/standalone/modals/AccountHubModal.d.ts +1 -2
- package/dist/components/views/standalone/modals/AccountHubModal.js +2 -3
- package/dist/components/views/standalone/modals/HelpModal.js +15 -2
- package/dist/hooks/useFilterSort.js +1 -1
- package/dist/hooks/useTaskforce.js +2 -2
- package/dist/hooks/workspace/useTaskforceWorkspaceBootstrap.js +5 -2
- package/dist/ui/assets/{AgentsModule-D8u9P5dZ.js → AgentsModule-BULqIo8e.js} +1 -1
- package/dist/ui/assets/{AnnotatedAttachmentWorkspace-CsUauFA2.js → AnnotatedAttachmentWorkspace-DHr4rHK9.js} +1 -1
- package/dist/ui/assets/{ContextAttachmentManager-DbQvDHFz.js → ContextAttachmentManager-DoMe2OpY.js} +1 -1
- package/dist/ui/assets/{DocumentWorkspace-BmTkN1A8.js → DocumentWorkspace-DumBWhvb.js} +1 -1
- package/dist/ui/assets/{EntityActivityTimeline-BXHTM-Nh.js → EntityActivityTimeline-sHk8Nzbq.js} +1 -1
- package/dist/ui/assets/{InitiativesModule-D33RyXx0.js → InitiativesModule-3X9UNzHh.js} +1 -1
- package/dist/ui/assets/{PlansPage-D0RXlT9_.js → PlansPage-C3A3EYaV.js} +1 -1
- package/dist/ui/assets/{TaskContextUpload-Vsg67lpR.js → TaskContextUpload-C8G7pWkX.js} +1 -1
- package/dist/ui/assets/{TaskSettings-DshLw7_d.js → TaskSettings-DM1o9Wla.js} +2 -2
- package/dist/ui/assets/{WorkflowsModule-CLM-1BnF.js → WorkflowsModule-CW0crzvD.js} +1 -1
- package/dist/ui/assets/documentReferences-BZB3nMRb.js +1 -0
- package/dist/ui/assets/index-BWFQ9mGn.js +5 -0
- package/dist/ui/assets/{index-DOR9PRqt.css → index-DcK_8tuE.css} +1 -1
- package/dist/ui/index.html +2 -2
- package/package.json +12 -4
- package/scripts/postinstall.js +4 -3
- package/dist/TaskforceCore.CategoryFallback.test.d.ts +0 -1
- package/dist/TaskforceCore.CategoryFallback.test.js +0 -101
- package/dist/TaskforceCore.filter-persistence.test.d.ts +0 -1
- package/dist/TaskforceCore.filter-persistence.test.js +0 -402
- package/dist/TaskforceCore.routing.test.d.ts +0 -1
- package/dist/TaskforceCore.routing.test.js +0 -311
- package/dist/TaskforceCore.test.d.ts +0 -1
- package/dist/TaskforceCore.test.js +0 -7910
- package/dist/TaskforceWidget.test.d.ts +0 -1
- package/dist/TaskforceWidget.test.js +0 -92
- package/dist/UnsavedChangesRelaxed.test.d.ts +0 -1
- package/dist/UnsavedChangesRelaxed.test.js +0 -16
- package/dist/__tests__/localizationCatalogs.test.d.ts +0 -1
- package/dist/__tests__/localizationCatalogs.test.js +0 -54
- package/dist/__tests__/workflowSimulation.test.d.ts +0 -1
- package/dist/__tests__/workflowSimulation.test.js +0 -113
- package/dist/annotatedAttachments/AnnotatedAttachmentSessionStore.test.d.ts +0 -1
- package/dist/annotatedAttachments/AnnotatedAttachmentSessionStore.test.js +0 -278
- package/dist/annotatedAttachments/payload.test.d.ts +0 -1
- package/dist/annotatedAttachments/payload.test.js +0 -67
- package/dist/compat/workspaceSyncCompat.test.d.ts +0 -1
- package/dist/compat/workspaceSyncCompat.test.js +0 -124
- package/dist/components/features/AgentsModule.test.d.ts +0 -1
- package/dist/components/features/AgentsModule.test.js +0 -601
- package/dist/components/features/AnnotatedAttachmentWorkspace.test.d.ts +0 -1
- package/dist/components/features/AnnotatedAttachmentWorkspace.test.js +0 -2883
- package/dist/components/features/DocumentWorkspace.test.d.ts +0 -1
- package/dist/components/features/DocumentWorkspace.test.js +0 -1439
- package/dist/components/features/TaskSettings.test.d.ts +0 -1
- package/dist/components/features/TaskSettings.test.js +0 -1674
- package/dist/components/features/settings/TaxonomyLibraryManager.test.d.ts +0 -1
- package/dist/components/features/settings/TaxonomyLibraryManager.test.js +0 -141
- package/dist/components/task/TaskActionHeader.test.d.ts +0 -1
- package/dist/components/task/TaskActionHeader.test.js +0 -91
- package/dist/components/task/TaskCard.test.d.ts +0 -1
- package/dist/components/task/TaskCard.test.js +0 -513
- package/dist/components/task/TaskContextUpload.test.d.ts +0 -1
- package/dist/components/task/TaskContextUpload.test.js +0 -506
- package/dist/components/task/TaskForm.test.d.ts +0 -1
- package/dist/components/task/TaskForm.test.js +0 -946
- package/dist/components/task/TaskKanban.empty-column-drop.test.d.ts +0 -1
- package/dist/components/task/TaskKanban.empty-column-drop.test.js +0 -66
- package/dist/components/task/TaskKanban.planning-drop.test.d.ts +0 -1
- package/dist/components/task/TaskKanban.planning-drop.test.js +0 -93
- package/dist/components/task/TaskKanban.test.d.ts +0 -1
- package/dist/components/task/TaskKanban.test.js +0 -99
- package/dist/components/task/TaskList.test.d.ts +0 -1
- package/dist/components/task/TaskList.test.js +0 -473
- package/dist/components/task/TaskStatusActions.test.d.ts +0 -1
- package/dist/components/task/TaskStatusActions.test.js +0 -54
- package/dist/components/task/taskKanbanDropRules.test.d.ts +0 -1
- package/dist/components/task/taskKanbanDropRules.test.js +0 -114
- package/dist/components/ui/LevelSelector.test.d.ts +0 -1
- package/dist/components/ui/LevelSelector.test.js +0 -55
- package/dist/components/ui/Markdown.test.d.ts +0 -1
- package/dist/components/ui/Markdown.test.js +0 -38
- package/dist/components/ui/MultiSelectFilter.test.d.ts +0 -1
- package/dist/components/ui/MultiSelectFilter.test.js +0 -74
- package/dist/components/ui/TaxonomyDropdown.test.d.ts +0 -1
- package/dist/components/ui/TaxonomyDropdown.test.js +0 -130
- package/dist/components/ui/TopNoticeLayer.test.d.ts +0 -1
- package/dist/components/ui/TopNoticeLayer.test.js +0 -25
- package/dist/components/views/AppShellHeader.test.d.ts +0 -1
- package/dist/components/views/AppShellHeader.test.js +0 -42
- package/dist/components/views/PlanComparisonPage.test.d.ts +0 -1
- package/dist/components/views/PlanComparisonPage.test.js +0 -758
- package/dist/components/views/PlansPage.test.d.ts +0 -1
- package/dist/components/views/PlansPage.test.js +0 -710
- package/dist/components/views/chrome/WorkspaceChromeSections.test.d.ts +0 -1
- package/dist/components/views/chrome/WorkspaceChromeSections.test.js +0 -54
- package/dist/components/views/chrome/workspaceChrome.test.d.ts +0 -1
- package/dist/components/views/chrome/workspaceChrome.test.js +0 -52
- package/dist/components/views/panels/DocumentFilterToolbar.test.d.ts +0 -1
- package/dist/components/views/panels/DocumentFilterToolbar.test.js +0 -19
- package/dist/components/views/panels/FilterToolbar.test.d.ts +0 -1
- package/dist/components/views/panels/FilterToolbar.test.js +0 -47
- package/dist/components/views/panels/PlanningDrawer.test.d.ts +0 -1
- package/dist/components/views/panels/PlanningDrawer.test.js +0 -529
- package/dist/components/views/planningScope.test.d.ts +0 -1
- package/dist/components/views/planningScope.test.js +0 -60
- package/dist/components/views/standalone/modals/AccountHubModal.test.d.ts +0 -1
- package/dist/components/views/standalone/modals/AccountHubModal.test.js +0 -72
- package/dist/components/views/standalone/modals/HelpModal.test.d.ts +0 -1
- package/dist/components/views/standalone/modals/HelpModal.test.js +0 -23
- package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.d.ts +0 -1
- package/dist/components/views/standalone/modals/SyncEnableWarningModal.test.js +0 -24
- package/dist/components/views/teamManagementAccess.test.d.ts +0 -1
- package/dist/components/views/teamManagementAccess.test.js +0 -44
- package/dist/config/deployment.test.d.ts +0 -1
- package/dist/config/deployment.test.js +0 -90
- package/dist/config/envSchema.test.d.ts +0 -1
- package/dist/config/envSchema.test.js +0 -125
- package/dist/core/AiProfileService.test.d.ts +0 -1
- package/dist/core/AiProfileService.test.js +0 -184
- package/dist/core/AiProfiles.test.d.ts +0 -1
- package/dist/core/AiProfiles.test.js +0 -1873
- package/dist/core/AuthTokenService.test.d.ts +0 -1
- package/dist/core/AuthTokenService.test.js +0 -78
- package/dist/core/BulkUpdateFieldsPreview.test.d.ts +0 -1
- package/dist/core/BulkUpdateFieldsPreview.test.js +0 -62
- package/dist/core/CompletedAt.test.d.ts +0 -1
- package/dist/core/CompletedAt.test.js +0 -44
- package/dist/core/CreatedBy.test.d.ts +0 -1
- package/dist/core/CreatedBy.test.js +0 -188
- package/dist/core/DeletedTaskTrash.test.d.ts +0 -1
- package/dist/core/DeletedTaskTrash.test.js +0 -104
- package/dist/core/EntitlementsPolicy.test.d.ts +0 -1
- package/dist/core/EntitlementsPolicy.test.js +0 -280
- package/dist/core/GlobalSettingsService.test.d.ts +0 -1
- package/dist/core/GlobalSettingsService.test.js +0 -45
- package/dist/core/JsonBackupRuntime.test.d.ts +0 -1
- package/dist/core/JsonBackupRuntime.test.js +0 -155
- package/dist/core/PlanFeatureCatalog.test.d.ts +0 -1
- package/dist/core/PlanFeatureCatalog.test.js +0 -139
- package/dist/core/PlanVersionPolicy.test.d.ts +0 -1
- package/dist/core/PlanVersionPolicy.test.js +0 -236
- package/dist/core/PlanningEntities.test.d.ts +0 -1
- package/dist/core/PlanningEntities.test.js +0 -509
- package/dist/core/ScheduleFields.test.d.ts +0 -1
- package/dist/core/ScheduleFields.test.js +0 -193
- package/dist/core/SetupState.test.d.ts +0 -1
- package/dist/core/SetupState.test.js +0 -113
- package/dist/core/SignupMonetizationSettings.test.d.ts +0 -1
- package/dist/core/SignupMonetizationSettings.test.js +0 -515
- package/dist/core/Stats.test.d.ts +0 -1
- package/dist/core/Stats.test.js +0 -36
- package/dist/core/SystemAdmin.test.d.ts +0 -1
- package/dist/core/SystemAdmin.test.js +0 -1106
- package/dist/core/TaskActivitySync.test.d.ts +0 -1
- package/dist/core/TaskActivitySync.test.js +0 -90
- package/dist/core/TaskAttachmentsCanonical.test.d.ts +0 -1
- package/dist/core/TaskAttachmentsCanonical.test.js +0 -356
- package/dist/core/TaskAuditTimeline.test.d.ts +0 -1
- package/dist/core/TaskAuditTimeline.test.js +0 -319
- package/dist/core/TaskTaxonomyValidation.test.d.ts +0 -1
- package/dist/core/TaskTaxonomyValidation.test.js +0 -440
- package/dist/core/Taskforce.ids.test.d.ts +0 -1
- package/dist/core/Taskforce.ids.test.js +0 -611
- package/dist/core/Taskforce.listTasksSlim.test.d.ts +0 -1
- package/dist/core/Taskforce.listTasksSlim.test.js +0 -91
- package/dist/core/Taskforce.mcpAuth.test.d.ts +0 -1
- package/dist/core/Taskforce.mcpAuth.test.js +0 -450
- package/dist/core/Taskforce.realtimeMutation.test.d.ts +0 -1
- package/dist/core/Taskforce.realtimeMutation.test.js +0 -131
- package/dist/core/UserProfileAvatarDrafts.test.d.ts +0 -1
- package/dist/core/UserProfileAvatarDrafts.test.js +0 -138
- package/dist/core/WorkspaceDelete.test.d.ts +0 -1
- package/dist/core/WorkspaceDelete.test.js +0 -159
- package/dist/core/WorkspacePermissions.test.d.ts +0 -1
- package/dist/core/WorkspacePermissions.test.js +0 -270
- package/dist/core/WorkspacePlanMode.test.d.ts +0 -1
- package/dist/core/WorkspacePlanMode.test.js +0 -383
- package/dist/core/WorkspaceSyncSettings.test.d.ts +0 -1
- package/dist/core/WorkspaceSyncSettings.test.js +0 -65
- package/dist/core/__tests__/TaskAttachmentsCanonical.test.d.ts +0 -1
- package/dist/core/__tests__/TaskAttachmentsCanonical.test.js +0 -212
- package/dist/documentReviews/DocumentReviewSessionStore.test.d.ts +0 -1
- package/dist/documentReviews/DocumentReviewSessionStore.test.js +0 -127
- package/dist/hooks/authGuardPolicy.test.d.ts +0 -1
- package/dist/hooks/authGuardPolicy.test.js +0 -76
- package/dist/hooks/bootstrapTimeouts.test.d.ts +0 -1
- package/dist/hooks/bootstrapTimeouts.test.js +0 -12
- package/dist/hooks/sync/controlPlane.test.d.ts +0 -1
- package/dist/hooks/sync/controlPlane.test.js +0 -121
- package/dist/hooks/sync/lifecyclePolicy.test.d.ts +0 -1
- package/dist/hooks/sync/lifecyclePolicy.test.js +0 -124
- package/dist/hooks/sync/orchestratorShared.test.d.ts +0 -1
- package/dist/hooks/sync/orchestratorShared.test.js +0 -98
- package/dist/hooks/sync/pullLifecycle.test.d.ts +0 -1
- package/dist/hooks/sync/pullLifecycle.test.js +0 -80
- package/dist/hooks/sync/recovery.test.d.ts +0 -1
- package/dist/hooks/sync/recovery.test.js +0 -292
- package/dist/hooks/sync/transfers.test.d.ts +0 -1
- package/dist/hooks/sync/transfers.test.js +0 -928
- package/dist/hooks/sync/useRecentSyncEvents.test.d.ts +0 -1
- package/dist/hooks/sync/useRecentSyncEvents.test.js +0 -124
- package/dist/hooks/sync/useSyncStatusActions.test.d.ts +0 -1
- package/dist/hooks/sync/useSyncStatusActions.test.js +0 -133
- package/dist/hooks/sync/useSyncStatusControls.test.d.ts +0 -1
- package/dist/hooks/sync/useSyncStatusControls.test.js +0 -88
- package/dist/hooks/useFilterSort.test.d.ts +0 -1
- package/dist/hooks/useFilterSort.test.js +0 -419
- package/dist/hooks/useRealtimeSync.test.d.ts +0 -1
- package/dist/hooks/useRealtimeSync.test.js +0 -311
- package/dist/hooks/useSyncOrchestrator.aiProfiles.test.d.ts +0 -1
- package/dist/hooks/useSyncOrchestrator.aiProfiles.test.js +0 -54
- package/dist/hooks/useSyncOrchestrator.context-assets.test.d.ts +0 -1
- package/dist/hooks/useSyncOrchestrator.context-assets.test.js +0 -228
- package/dist/hooks/useSyncOrchestrator.retry-closure.test.d.ts +0 -1
- package/dist/hooks/useSyncOrchestrator.retry-closure.test.js +0 -2027
- package/dist/hooks/useTaskData.test.d.ts +0 -1
- package/dist/hooks/useTaskData.test.js +0 -291
- package/dist/hooks/useTaskMutations.test.d.ts +0 -1
- package/dist/hooks/useTaskMutations.test.js +0 -256
- package/dist/hooks/useTaskforce.contract.test.d.ts +0 -1
- package/dist/hooks/useTaskforce.contract.test.js +0 -7
- package/dist/hooks/useTaskforce.priority-filters.test.d.ts +0 -1
- package/dist/hooks/useTaskforce.priority-filters.test.js +0 -28
- package/dist/hooks/useTaskforce.runtime-routing.test.d.ts +0 -1
- package/dist/hooks/useTaskforce.runtime-routing.test.js +0 -246
- package/dist/hooks/useTaskforce.sync-behavior.test.d.ts +0 -1
- package/dist/hooks/useTaskforce.sync-behavior.test.js +0 -3644
- package/dist/hooks/useWorkspaceSyncController.test.d.ts +0 -1
- package/dist/hooks/useWorkspaceSyncController.test.js +0 -192
- package/dist/hooks/workspace/useTaskforceApiRouting.test.d.ts +0 -1
- package/dist/hooks/workspace/useTaskforceApiRouting.test.js +0 -77
- package/dist/hooks/workspace/workspaceLocalState.test.d.ts +0 -1
- package/dist/hooks/workspace/workspaceLocalState.test.js +0 -59
- package/dist/localization/localizationCatalogs.test.d.ts +0 -1
- package/dist/localization/localizationCatalogs.test.js +0 -37
- package/dist/mcp/aiProfileBootstrap.test.d.ts +0 -1
- package/dist/mcp/aiProfileBootstrap.test.js +0 -68
- package/dist/mcp/canonicalAssetHelpers.test.d.ts +0 -1
- package/dist/mcp/canonicalAssetHelpers.test.js +0 -67
- package/dist/mcp/clientIntegrations.test.d.ts +0 -1
- package/dist/mcp/clientIntegrations.test.js +0 -219
- package/dist/mcp/optionResolution.test.d.ts +0 -1
- package/dist/mcp/optionResolution.test.js +0 -43
- package/dist/mcp/runtime.test.d.ts +0 -1
- package/dist/mcp/runtime.test.js +0 -5211
- package/dist/mcp/structuredCommentValidation.test.d.ts +0 -1
- package/dist/mcp/structuredCommentValidation.test.js +0 -31
- package/dist/mcp/structuredDocValidation.test.d.ts +0 -1
- package/dist/mcp/structuredDocValidation.test.js +0 -35
- package/dist/mcp/toolRegistry.test.d.ts +0 -1
- package/dist/mcp/toolRegistry.test.js +0 -34
- package/dist/migrations/billingSchemaParity.test.d.ts +0 -1
- package/dist/migrations/billingSchemaParity.test.js +0 -160
- package/dist/migrations/taskSchemaMigrations.test.d.ts +0 -1
- package/dist/migrations/taskSchemaMigrations.test.js +0 -225
- package/dist/qaOpen.test.d.ts +0 -1
- package/dist/qaOpen.test.js +0 -56
- package/dist/releaseVersion.test.d.ts +0 -1
- package/dist/releaseVersion.test.js +0 -32
- package/dist/runtime/appGates.test.d.ts +0 -1
- package/dist/runtime/appGates.test.js +0 -42
- package/dist/server/aiProfileAvatarAssets.test.d.ts +0 -1
- package/dist/server/aiProfileAvatarAssets.test.js +0 -213
- package/dist/server/annotatedAttachmentsRoutes.test.d.ts +0 -1
- package/dist/server/annotatedAttachmentsRoutes.test.js +0 -532
- package/dist/server/auth.test.d.ts +0 -1
- package/dist/server/auth.test.js +0 -131
- package/dist/server/buildInfo.test.d.ts +0 -1
- package/dist/server/buildInfo.test.js +0 -29
- package/dist/server/cors.test.d.ts +0 -1
- package/dist/server/cors.test.js +0 -77
- package/dist/server/documentReviewRoutes.test.d.ts +0 -1
- package/dist/server/documentReviewRoutes.test.js +0 -190
- package/dist/server/email.test.d.ts +0 -1
- package/dist/server/email.test.js +0 -113
- package/dist/server/index.cookieProxy.test.d.ts +0 -1
- package/dist/server/index.cookieProxy.test.js +0 -67
- package/dist/server/index.rateLimit.test.d.ts +0 -1
- package/dist/server/index.rateLimit.test.js +0 -22
- package/dist/server/index.test.d.ts +0 -1
- package/dist/server/index.test.js +0 -283
- package/dist/server/rateLimit.test.d.ts +0 -1
- package/dist/server/rateLimit.test.js +0 -107
- package/dist/server/realtimeSync.auth.test.d.ts +0 -1
- package/dist/server/realtimeSync.auth.test.js +0 -62
- package/dist/server/realtimeSync.replay.test.d.ts +0 -1
- package/dist/server/realtimeSync.replay.test.js +0 -192
- package/dist/server/realtimeSync.workspaceIsolation.test.d.ts +0 -1
- package/dist/server/realtimeSync.workspaceIsolation.test.js +0 -101
- package/dist/server/routes/billing.test.d.ts +0 -1
- package/dist/server/routes/billing.test.js +0 -3515
- package/dist/server/routes/shared.test.d.ts +0 -1
- package/dist/server/routes/shared.test.js +0 -32
- package/dist/server/routes/sync.integration.test.d.ts +0 -1
- package/dist/server/routes/sync.integration.test.js +0 -2932
- package/dist/server/routes/syncAuxRoutes.test.d.ts +0 -1
- package/dist/server/routes/syncAuxRoutes.test.js +0 -158
- package/dist/server/routes/syncRouteGuards.test.d.ts +0 -1
- package/dist/server/routes/syncRouteGuards.test.js +0 -94
- package/dist/server/routes.test.d.ts +0 -1
- package/dist/server/routes.test.js +0 -15612
- package/dist/server/runtimeMode.test.d.ts +0 -1
- package/dist/server/runtimeMode.test.js +0 -26
- package/dist/server/securityHeaders.test.d.ts +0 -1
- package/dist/server/securityHeaders.test.js +0 -70
- package/dist/services/templateEngine.test.d.ts +0 -1
- package/dist/services/templateEngine.test.js +0 -150
- package/dist/services/templates.test.d.ts +0 -1
- package/dist/services/templates.test.js +0 -45
- package/dist/services/workflowDocumentFixtures.test.d.ts +0 -1
- package/dist/services/workflowDocumentFixtures.test.js +0 -78
- package/dist/services/workflowExportMatrix.test.d.ts +0 -1
- package/dist/services/workflowExportMatrix.test.js +0 -113
- package/dist/services/workflowExportSnapshots.test.d.ts +0 -1
- package/dist/services/workflowExportSnapshots.test.js +0 -30
- package/dist/services/workflowGeneration.test.d.ts +0 -1
- package/dist/services/workflowGeneration.test.js +0 -12
- package/dist/services/workflowSimulation.test.d.ts +0 -1
- package/dist/services/workflowSimulation.test.js +0 -113
- package/dist/services/workflowV2Policy.test.d.ts +0 -1
- package/dist/services/workflowV2Policy.test.js +0 -80
- package/dist/shared/customTaxonomyLibrary.test.d.ts +0 -1
- package/dist/shared/customTaxonomyLibrary.test.js +0 -20
- package/dist/shared/passwordPolicy.test.d.ts +0 -1
- package/dist/shared/passwordPolicy.test.js +0 -34
- package/dist/shared/runtimeContract.test.d.ts +0 -1
- package/dist/shared/runtimeContract.test.js +0 -23
- package/dist/shared/taxonomyLibrary.test.d.ts +0 -1
- package/dist/shared/taxonomyLibrary.test.js +0 -26
- package/dist/shared/taxonomyState.test.d.ts +0 -1
- package/dist/shared/taxonomyState.test.js +0 -71
- package/dist/soak/preflight.cli.d.ts +0 -1
- package/dist/soak/preflight.cli.js +0 -28
- package/dist/soak/preflight.d.ts +0 -26
- package/dist/soak/preflight.js +0 -113
- package/dist/soak/preflight.test.d.ts +0 -1
- package/dist/soak/preflight.test.js +0 -39
- package/dist/storage/objectStorageClient.test.d.ts +0 -1
- package/dist/storage/objectStorageClient.test.js +0 -82
- package/dist/storage/objectStorageConfig.test.d.ts +0 -1
- package/dist/storage/objectStorageConfig.test.js +0 -50
- package/dist/storage/postgresAdapter.test.d.ts +0 -1
- package/dist/storage/postgresAdapter.test.js +0 -29
- package/dist/storage/workspaceAssetStore.test.d.ts +0 -1
- package/dist/storage/workspaceAssetStore.test.js +0 -588
- package/dist/sync/cloudSyncApi.test.d.ts +0 -1
- package/dist/sync/cloudSyncApi.test.js +0 -111
- package/dist/sync/collaborationSyncPayload.test.d.ts +0 -1
- package/dist/sync/collaborationSyncPayload.test.js +0 -125
- package/dist/sync/contentSyncPayload.test.d.ts +0 -1
- package/dist/sync/contentSyncPayload.test.js +0 -143
- package/dist/sync/encryptionService.test.d.ts +0 -1
- package/dist/sync/encryptionService.test.js +0 -52
- package/dist/sync/planningSyncPayload.test.d.ts +0 -1
- package/dist/sync/planningSyncPayload.test.js +0 -92
- package/dist/sync/realtimeFeature.test.d.ts +0 -1
- package/dist/sync/realtimeFeature.test.js +0 -30
- package/dist/sync/realtimeReconcile.test.d.ts +0 -1
- package/dist/sync/realtimeReconcile.test.js +0 -43
- package/dist/sync/syncApplyHandlers.test.d.ts +0 -1
- package/dist/sync/syncApplyHandlers.test.js +0 -626
- package/dist/sync/syncService.test.d.ts +0 -1
- package/dist/sync/syncService.test.js +0 -903
- package/dist/sync/taskSyncPayload.test.d.ts +0 -1
- package/dist/sync/taskSyncPayload.test.js +0 -54
- package/dist/sync/workspacePullFeed.test.d.ts +0 -1
- package/dist/sync/workspacePullFeed.test.js +0 -438
- package/dist/sync/workspaceSyncModel.test.d.ts +0 -1
- package/dist/sync/workspaceSyncModel.test.js +0 -1442
- package/dist/test/setup.d.ts +0 -1
- package/dist/test/setup.js +0 -15
- package/dist/ui/assets/documentReferences-BPWp6ce0.js +0 -1
- package/dist/ui/assets/index-zvbo2Jse.js +0 -5
- package/dist/utils/accountProfileSummaryCache.test.d.ts +0 -1
- package/dist/utils/accountProfileSummaryCache.test.js +0 -63
- package/dist/utils/annotatedAttachments.test.d.ts +0 -1
- package/dist/utils/annotatedAttachments.test.js +0 -108
- package/dist/utils/assignees.test.d.ts +0 -1
- package/dist/utils/assignees.test.js +0 -25
- package/dist/utils/avatarUpload.test.d.ts +0 -1
- package/dist/utils/avatarUpload.test.js +0 -40
- package/dist/utils/canonicalAssetKind.test.d.ts +0 -1
- package/dist/utils/canonicalAssetKind.test.js +0 -24
- package/dist/utils/coalescedRefresh.test.d.ts +0 -1
- package/dist/utils/coalescedRefresh.test.js +0 -30
- package/dist/utils/constants.icons.test.d.ts +0 -1
- package/dist/utils/constants.icons.test.js +0 -41
- package/dist/utils/planParser.test.d.ts +0 -1
- package/dist/utils/planParser.test.js +0 -183
- package/dist/utils/planningReferences.test.d.ts +0 -1
- package/dist/utils/planningReferences.test.js +0 -17
- package/dist/utils/supportContact.test.d.ts +0 -1
- package/dist/utils/supportContact.test.js +0 -19
- package/dist/utils/syncEventDetails.test.d.ts +0 -1
- package/dist/utils/syncEventDetails.test.js +0 -23
- package/dist/utils/syncEventPresentation.test.d.ts +0 -1
- package/dist/utils/syncEventPresentation.test.js +0 -64
- package/dist/utils/syncStatusPresentation.test.d.ts +0 -1
- package/dist/utils/syncStatusPresentation.test.js +0 -164
- package/dist/utils/taskActivity.test.d.ts +0 -1
- package/dist/utils/taskActivity.test.js +0 -218
- package/dist/utils/taskDraftDefaults.test.d.ts +0 -1
- package/dist/utils/taskDraftDefaults.test.js +0 -34
- package/dist/utils/taskDragZones.test.d.ts +0 -1
- package/dist/utils/taskDragZones.test.js +0 -14
- package/dist/utils/taskNormalization.test.d.ts +0 -1
- package/dist/utils/taskNormalization.test.js +0 -158
- package/dist/utils/taskSearch.test.d.ts +0 -1
- package/dist/utils/taskSearch.test.js +0 -69
- package/dist/utils/taskUtils.test.d.ts +0 -1
- package/dist/utils/taskUtils.test.js +0 -19
- package/dist/utils/taskforceApiClient.test.d.ts +0 -1
- package/dist/utils/taskforceApiClient.test.js +0 -44
- package/dist/utils/taxonomyFormDefaults.test.d.ts +0 -1
- package/dist/utils/taxonomyFormDefaults.test.js +0 -63
- package/dist/utils/uiNotice.test.d.ts +0 -1
- package/dist/utils/uiNotice.test.js +0 -18
- package/dist/utils/workspaceIdentity.test.d.ts +0 -1
- package/dist/utils/workspaceIdentity.test.js +0 -61
- package/dist/utils/workspaceLifecycle.test.d.ts +0 -1
- package/dist/utils/workspaceLifecycle.test.js +0 -64
- package/dist/utils/workspaceSyncPresentation.test.d.ts +0 -1
- package/dist/utils/workspaceSyncPresentation.test.js +0 -71
- package/scripts/bootstrap-playwright-auth.mjs +0 -155
- package/scripts/check-cloud-mcp.mjs +0 -83
- package/scripts/check-compat-boundaries.mjs +0 -41
- package/scripts/check-env.ts +0 -31
- package/scripts/check-localization-strings.mjs +0 -49
- package/scripts/check-runtime-boundaries.mjs +0 -44
- package/scripts/debug-global.mjs +0 -34
- package/scripts/debug-login.mjs +0 -32
- package/scripts/debug-server.mjs +0 -36
- package/scripts/deploy-prod.sh +0 -41
- package/scripts/deploy-staging.sh +0 -23
- package/scripts/export-sqlite-to-postgres.mjs +0 -123
- package/scripts/generate-env-example.ts +0 -8
- package/scripts/mcp-stdio-adapter.mjs +0 -160
- package/scripts/migrate-task-data-assets.mjs +0 -408
- package/scripts/playwright-auth.sh +0 -19
- package/scripts/qa-open-lib.mjs +0 -175
- package/scripts/qa-open-lib.mjs.d.ts +0 -49
- package/scripts/qa-open.mjs +0 -352
- package/scripts/release-version-lib.mjs +0 -88
- package/scripts/release-version.mjs +0 -72
- package/scripts/run-billing-performance-smoke.sh +0 -24
- package/scripts/run-dev-proxy.sh +0 -51
- package/scripts/run-e2e-realtime.sh +0 -30
- package/scripts/run-smoke.sh +0 -35
- package/scripts/run-soak.sh +0 -41
- package/scripts/test-global.js +0 -143
- package/scripts/update-homebrew-formula.sh +0 -108
- package/scripts/with-esbuild.sh +0 -11
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { execFileSync } from 'child_process';
|
|
4
|
-
import * as fs from 'fs';
|
|
5
|
-
import * as path from 'path';
|
|
6
|
-
import {
|
|
7
|
-
computeNextVersion,
|
|
8
|
-
readPackageVersion,
|
|
9
|
-
readVersionConfig
|
|
10
|
-
} from './release-version-lib.mjs';
|
|
11
|
-
|
|
12
|
-
function hasArg(name) {
|
|
13
|
-
return process.argv.includes(name);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function readReleaseTags(projectRoot) {
|
|
17
|
-
const output = execFileSync('git', ['tag', '--list', 'v*'], {
|
|
18
|
-
cwd: projectRoot,
|
|
19
|
-
encoding: 'utf8'
|
|
20
|
-
});
|
|
21
|
-
return output
|
|
22
|
-
.split('\n')
|
|
23
|
-
.map(line => line.trim())
|
|
24
|
-
.filter(Boolean);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function writeGithubOutput(key, value) {
|
|
28
|
-
const outputPath = String(process.env.GITHUB_OUTPUT || '').trim();
|
|
29
|
-
if (!outputPath) return;
|
|
30
|
-
fs.appendFileSync(outputPath, `${key}=${value}\n`, 'utf8');
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function main() {
|
|
34
|
-
const projectRoot = process.cwd();
|
|
35
|
-
const dryRun = hasArg('--dry-run');
|
|
36
|
-
const json = hasArg('--json');
|
|
37
|
-
|
|
38
|
-
const { major, minor, path: configPath } = readVersionConfig(projectRoot);
|
|
39
|
-
const currentPackageVersion = readPackageVersion(projectRoot);
|
|
40
|
-
const releaseTags = readReleaseTags(projectRoot);
|
|
41
|
-
const nextVersion = computeNextVersion({
|
|
42
|
-
major,
|
|
43
|
-
minor,
|
|
44
|
-
releaseTags,
|
|
45
|
-
currentPackageVersion
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
writeGithubOutput('version', nextVersion);
|
|
49
|
-
|
|
50
|
-
if (json) {
|
|
51
|
-
console.log(JSON.stringify({
|
|
52
|
-
configPath: path.relative(projectRoot, configPath),
|
|
53
|
-
currentPackageVersion,
|
|
54
|
-
nextVersion,
|
|
55
|
-
dryRun
|
|
56
|
-
}));
|
|
57
|
-
} else {
|
|
58
|
-
console.log(`Next release version: ${nextVersion}`);
|
|
59
|
-
if (dryRun) {
|
|
60
|
-
console.log('Dry run enabled. package.json was not modified.');
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (dryRun) return;
|
|
65
|
-
|
|
66
|
-
execFileSync('npm', ['version', '--no-git-tag-version', nextVersion], {
|
|
67
|
-
cwd: projectRoot,
|
|
68
|
-
stdio: 'inherit'
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
main();
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env sh
|
|
2
|
-
set -eu
|
|
3
|
-
|
|
4
|
-
LOCAL_ENV_FILE="${TASKFORCE_PLAYWRIGHT_ENV_FILE:-$HOME/.codex/taskforce-playwright.env}"
|
|
5
|
-
REPO_E2E_ENV_FILE="${TASKFORCE_PLAYWRIGHT_REPO_E2E_ENV_FILE:-.env.e2e}"
|
|
6
|
-
|
|
7
|
-
if [ -f "$LOCAL_ENV_FILE" ]; then
|
|
8
|
-
set -a
|
|
9
|
-
# shellcheck disable=SC1090
|
|
10
|
-
. "$LOCAL_ENV_FILE"
|
|
11
|
-
set +a
|
|
12
|
-
elif [ -f "$REPO_E2E_ENV_FILE" ]; then
|
|
13
|
-
set -a
|
|
14
|
-
# shellcheck disable=SC1090
|
|
15
|
-
. "$REPO_E2E_ENV_FILE"
|
|
16
|
-
set +a
|
|
17
|
-
fi
|
|
18
|
-
|
|
19
|
-
TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL="${TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL:-https://performance-app.taskforcehq.ai}"
|
|
20
|
-
export TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL
|
|
21
|
-
export TASKFORCE_PLAYWRIGHT_BASE_URL="${TASKFORCE_PLAYWRIGHT_BASE_URL:-$TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL}"
|
|
22
|
-
|
|
23
|
-
node scripts/bootstrap-playwright-auth.mjs
|
|
24
|
-
exec npx playwright test -c playwright.interactive.config.ts tests/e2e/billing-performance.smoke.spec.ts "$@"
|
package/scripts/run-dev-proxy.sh
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env sh
|
|
2
|
-
set -eu
|
|
3
|
-
|
|
4
|
-
target="${1:-}"
|
|
5
|
-
if [ -z "$target" ]; then
|
|
6
|
-
echo "Usage: sh scripts/run-dev-proxy.sh <staging|performance>" >&2
|
|
7
|
-
exit 1
|
|
8
|
-
fi
|
|
9
|
-
|
|
10
|
-
case "$target" in
|
|
11
|
-
staging)
|
|
12
|
-
base_url="https://staging-app.taskforcehq.ai"
|
|
13
|
-
;;
|
|
14
|
-
performance)
|
|
15
|
-
base_url="https://performance-app.taskforcehq.ai"
|
|
16
|
-
;;
|
|
17
|
-
*)
|
|
18
|
-
echo "Invalid target: $target (expected staging or performance)" >&2
|
|
19
|
-
exit 1
|
|
20
|
-
;;
|
|
21
|
-
esac
|
|
22
|
-
|
|
23
|
-
env_file=""
|
|
24
|
-
for candidate in ".env.${target}" ".env.e2e" ".env.local"; do
|
|
25
|
-
if [ -f "$candidate" ]; then
|
|
26
|
-
env_file="$candidate"
|
|
27
|
-
break
|
|
28
|
-
fi
|
|
29
|
-
done
|
|
30
|
-
|
|
31
|
-
if [ -n "$env_file" ]; then
|
|
32
|
-
set -a
|
|
33
|
-
# shellcheck disable=SC1090
|
|
34
|
-
. "$env_file"
|
|
35
|
-
set +a
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
client_id="${TASKFORCE_CF_ACCESS_CLIENT_ID:-${CF_ACCESS_CLIENT_ID:-}}"
|
|
39
|
-
client_secret="${TASKFORCE_CF_ACCESS_CLIENT_SECRET:-${CF_ACCESS_CLIENT_SECRET:-}}"
|
|
40
|
-
if [ -z "${client_id}" ] || [ -z "${client_secret}" ]; then
|
|
41
|
-
echo "Missing Cloudflare Access service token variables." >&2
|
|
42
|
-
echo "Set TASKFORCE_CF_ACCESS_CLIENT_ID/TASKFORCE_CF_ACCESS_CLIENT_SECRET" >&2
|
|
43
|
-
echo "or CF_ACCESS_CLIENT_ID/CF_ACCESS_CLIENT_SECRET in .env.${target}, .env.e2e, or .env.local." >&2
|
|
44
|
-
exit 1
|
|
45
|
-
fi
|
|
46
|
-
|
|
47
|
-
TASKFORCE_RUNTIME_MODE="local" \
|
|
48
|
-
TASKFORCE_CLOUD_ENVIRONMENT="$target" \
|
|
49
|
-
VITE_TASKFORCE_BASE_URL="$base_url" \
|
|
50
|
-
TASKFORCE_CLOUD_PROXY_BASE_URL="$base_url" \
|
|
51
|
-
npm run dev:runtime
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
set -eu
|
|
3
|
-
|
|
4
|
-
LOCAL_ENV_FILE="${TASKFORCE_PLAYWRIGHT_ENV_FILE:-$HOME/.codex/taskforce-playwright.env}"
|
|
5
|
-
REPO_E2E_ENV_FILE="${TASKFORCE_PLAYWRIGHT_REPO_E2E_ENV_FILE:-.env.e2e}"
|
|
6
|
-
|
|
7
|
-
if [ -f "$LOCAL_ENV_FILE" ]; then
|
|
8
|
-
set -a
|
|
9
|
-
# shellcheck disable=SC1090
|
|
10
|
-
. "$LOCAL_ENV_FILE"
|
|
11
|
-
set +a
|
|
12
|
-
elif [ -f "$REPO_E2E_ENV_FILE" ]; then
|
|
13
|
-
set -a
|
|
14
|
-
# shellcheck disable=SC1090
|
|
15
|
-
. "$REPO_E2E_ENV_FILE"
|
|
16
|
-
set +a
|
|
17
|
-
fi
|
|
18
|
-
|
|
19
|
-
# Mirror soak defaults so realtime e2e runs are plug-compatible with existing env setup.
|
|
20
|
-
export SYNC_SOAK_LOCAL_BASE_URL="${SYNC_SOAK_LOCAL_BASE_URL:-http://localhost:5174}"
|
|
21
|
-
export SYNC_SOAK_CLOUD_BASE_URL="${SYNC_SOAK_CLOUD_BASE_URL:-${TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL:-https://performance-app.taskforcehq.ai}}"
|
|
22
|
-
export SYNC_SOAK_WORKSPACE_ID="${SYNC_SOAK_WORKSPACE_ID:-test-smoke}"
|
|
23
|
-
export SYNC_SOAK_EMAIL="${SYNC_SOAK_EMAIL:-${TASKFORCE_E2E_EMAIL:-}}"
|
|
24
|
-
export SYNC_SOAK_PASSWORD="${SYNC_SOAK_PASSWORD:-${TASKFORCE_E2E_PASSWORD:-}}"
|
|
25
|
-
PLAYWRIGHT_AUTH_STORAGE_STATE="${PLAYWRIGHT_AUTH_STORAGE_STATE:-${TASKFORCE_PLAYWRIGHT_STORAGE_STATE:-}}"
|
|
26
|
-
unset TASKFORCE_E2E_EMAIL TASKFORCE_E2E_PASSWORD TASKFORCE_PLAYWRIGHT_STORAGE_STATE TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL
|
|
27
|
-
|
|
28
|
-
node --import tsx scripts/check-env.ts --target=soak --strict=true
|
|
29
|
-
export PLAYWRIGHT_AUTH_STORAGE_STATE
|
|
30
|
-
npx playwright test -c playwright.e2e.config.ts "$@"
|
package/scripts/run-smoke.sh
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
set -eu
|
|
3
|
-
|
|
4
|
-
LOCAL_ENV_FILE="${TASKFORCE_PLAYWRIGHT_ENV_FILE:-$HOME/.codex/taskforce-playwright.env}"
|
|
5
|
-
REPO_E2E_ENV_FILE="${TASKFORCE_PLAYWRIGHT_REPO_E2E_ENV_FILE:-.env.e2e}"
|
|
6
|
-
|
|
7
|
-
if [ -f "$LOCAL_ENV_FILE" ]; then
|
|
8
|
-
set -a
|
|
9
|
-
# shellcheck disable=SC1090
|
|
10
|
-
. "$LOCAL_ENV_FILE"
|
|
11
|
-
set +a
|
|
12
|
-
elif [ -f "$REPO_E2E_ENV_FILE" ]; then
|
|
13
|
-
set -a
|
|
14
|
-
# shellcheck disable=SC1090
|
|
15
|
-
. "$REPO_E2E_ENV_FILE"
|
|
16
|
-
set +a
|
|
17
|
-
fi
|
|
18
|
-
|
|
19
|
-
# Provide safe defaults for non-secret settings; allow caller/.env.e2e overrides.
|
|
20
|
-
export SYNC_SOAK_LOCAL_BASE_URL="${SYNC_SOAK_LOCAL_BASE_URL:-http://localhost:5174}"
|
|
21
|
-
export SYNC_SOAK_CLOUD_BASE_URL="${SYNC_SOAK_CLOUD_BASE_URL:-${TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL:-https://performance-app.taskforcehq.ai}}"
|
|
22
|
-
export SYNC_SOAK_WORKSPACE_ID="${SYNC_SOAK_WORKSPACE_ID:-test-smoke}"
|
|
23
|
-
export SYNC_SOAK_EMAIL="${SYNC_SOAK_EMAIL:-${TASKFORCE_E2E_EMAIL:-}}"
|
|
24
|
-
export SYNC_SOAK_PASSWORD="${SYNC_SOAK_PASSWORD:-${TASKFORCE_E2E_PASSWORD:-}}"
|
|
25
|
-
unset TASKFORCE_E2E_EMAIL TASKFORCE_E2E_PASSWORD TASKFORCE_PLAYWRIGHT_STORAGE_STATE TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL
|
|
26
|
-
|
|
27
|
-
node --import tsx scripts/check-env.ts --target=soak --strict=true
|
|
28
|
-
|
|
29
|
-
# Shared credentials are required and may come from the local Playwright auth env file or repo .env.e2e.
|
|
30
|
-
if [ -z "${SYNC_SOAK_ACCOUNTS_JSON:-}" ] && { [ -z "${SYNC_SOAK_EMAIL:-}" ] || [ -z "${SYNC_SOAK_PASSWORD:-}" ]; }; then
|
|
31
|
-
echo "Missing credentials. Set SYNC_SOAK_ACCOUNTS_JSON or SYNC_SOAK_EMAIL+SYNC_SOAK_PASSWORD in $TASKFORCE_PLAYWRIGHT_ENV_FILE or .env.e2e." >&2
|
|
32
|
-
exit 1
|
|
33
|
-
fi
|
|
34
|
-
|
|
35
|
-
npx playwright test -c playwright.smoke.config.ts "$@"
|
package/scripts/run-soak.sh
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
set -eu
|
|
3
|
-
|
|
4
|
-
LOCAL_ENV_FILE="${TASKFORCE_PLAYWRIGHT_ENV_FILE:-$HOME/.codex/taskforce-playwright.env}"
|
|
5
|
-
REPO_E2E_ENV_FILE="${TASKFORCE_PLAYWRIGHT_REPO_E2E_ENV_FILE:-.env.e2e}"
|
|
6
|
-
|
|
7
|
-
if [ -f "$LOCAL_ENV_FILE" ]; then
|
|
8
|
-
set -a
|
|
9
|
-
# shellcheck disable=SC1090
|
|
10
|
-
. "$LOCAL_ENV_FILE"
|
|
11
|
-
set +a
|
|
12
|
-
elif [ -f "$REPO_E2E_ENV_FILE" ]; then
|
|
13
|
-
set -a
|
|
14
|
-
# shellcheck disable=SC1090
|
|
15
|
-
. "$REPO_E2E_ENV_FILE"
|
|
16
|
-
set +a
|
|
17
|
-
fi
|
|
18
|
-
|
|
19
|
-
# Provide safe defaults for non-secret settings; allow caller/.env.e2e overrides.
|
|
20
|
-
# Soak runs target the dedicated performance cloud by default.
|
|
21
|
-
export SYNC_SOAK_LOCAL_BASE_URL="${SYNC_SOAK_LOCAL_BASE_URL:-http://localhost:5174}"
|
|
22
|
-
export SYNC_SOAK_CLOUD_BASE_URL="${SYNC_SOAK_CLOUD_BASE_URL:-${TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL:-https://performance-app.taskforcehq.ai}}"
|
|
23
|
-
export SYNC_SOAK_WORKSPACE_ID="${SYNC_SOAK_WORKSPACE_ID:-test-smoke}"
|
|
24
|
-
export SYNC_SOAK_EMAIL="${SYNC_SOAK_EMAIL:-${TASKFORCE_E2E_EMAIL:-}}"
|
|
25
|
-
export SYNC_SOAK_PASSWORD="${SYNC_SOAK_PASSWORD:-${TASKFORCE_E2E_PASSWORD:-}}"
|
|
26
|
-
unset TASKFORCE_E2E_EMAIL TASKFORCE_E2E_PASSWORD TASKFORCE_PLAYWRIGHT_STORAGE_STATE TASKFORCE_PLAYWRIGHT_CLOUD_BASE_URL
|
|
27
|
-
|
|
28
|
-
node --import tsx scripts/check-env.ts --target=soak --strict=true
|
|
29
|
-
|
|
30
|
-
# Shared credentials are required and may come from the local Playwright auth env file or repo .env.e2e.
|
|
31
|
-
if [ -z "${SYNC_SOAK_ACCOUNTS_JSON:-}" ] && { [ -z "${SYNC_SOAK_EMAIL:-}" ] || [ -z "${SYNC_SOAK_PASSWORD:-}" ]; }; then
|
|
32
|
-
echo "Missing credentials. Set SYNC_SOAK_ACCOUNTS_JSON or SYNC_SOAK_EMAIL+SYNC_SOAK_PASSWORD in $TASKFORCE_PLAYWRIGHT_ENV_FILE or .env.e2e." >&2
|
|
33
|
-
exit 1
|
|
34
|
-
fi
|
|
35
|
-
|
|
36
|
-
if [ "${SOAK_BUILD_UI:-true}" = "true" ]; then
|
|
37
|
-
echo "[Soak] Rebuilding full dist bundle before soak run (SOAK_BUILD_UI=true)"
|
|
38
|
-
npm run -s build
|
|
39
|
-
fi
|
|
40
|
-
|
|
41
|
-
npx playwright test -c playwright.smoke.config.ts "$@"
|
package/scripts/test-global.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { execSync, spawnSync } from 'child_process';
|
|
2
|
-
import { existsSync, readFileSync, readdirSync, unlinkSync } from 'fs';
|
|
3
|
-
import { join } from 'path';
|
|
4
|
-
|
|
5
|
-
const DEFAULT_COMMAND_TIMEOUT_MS = Number.parseInt(
|
|
6
|
-
String(process.env.TASKFORCE_TEST_GLOBAL_TIMEOUT_MS || ''),
|
|
7
|
-
10
|
|
8
|
-
) || 20 * 60 * 1000;
|
|
9
|
-
|
|
10
|
-
const BUILD_COMMAND_TIMEOUT_MS = Number.parseInt(
|
|
11
|
-
String(process.env.TASKFORCE_TEST_GLOBAL_BUILD_TIMEOUT_MS || ''),
|
|
12
|
-
10
|
|
13
|
-
) || 30 * 60 * 1000;
|
|
14
|
-
|
|
15
|
-
const run = (cmd, options = {}) => {
|
|
16
|
-
const timeoutMs = Number.isFinite(Number(options.timeoutMs))
|
|
17
|
-
? Number(options.timeoutMs)
|
|
18
|
-
: DEFAULT_COMMAND_TIMEOUT_MS;
|
|
19
|
-
const retries = Math.max(0, Number(options.retries) || 0);
|
|
20
|
-
|
|
21
|
-
for (let attempt = 0; attempt <= retries; attempt += 1) {
|
|
22
|
-
const tryLabel = retries > 0 ? ` (attempt ${attempt + 1}/${retries + 1})` : '';
|
|
23
|
-
console.log(`\n🏃 Running: ${cmd}${tryLabel}`);
|
|
24
|
-
try {
|
|
25
|
-
execSync(cmd, {
|
|
26
|
-
stdio: 'inherit',
|
|
27
|
-
timeout: timeoutMs,
|
|
28
|
-
killSignal: 'SIGTERM'
|
|
29
|
-
});
|
|
30
|
-
return;
|
|
31
|
-
} catch (error) {
|
|
32
|
-
const timedOut = error?.signal === 'SIGTERM' && /ETIMEDOUT/i.test(String(error?.message || ''));
|
|
33
|
-
if (timedOut) {
|
|
34
|
-
console.error(`⏱️ Command timed out after ${Math.round(timeoutMs / 1000)}s: ${cmd}`);
|
|
35
|
-
} else {
|
|
36
|
-
console.error(`❌ Command failed: ${cmd}`);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (attempt < retries) {
|
|
40
|
-
console.log('🔁 Retrying...');
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
console.log('🏗️ Building project...');
|
|
50
|
-
run('npm run build', { timeoutMs: BUILD_COMMAND_TIMEOUT_MS, retries: 1 });
|
|
51
|
-
|
|
52
|
-
console.log('📦 Creating tarball...');
|
|
53
|
-
const packageJson = JSON.parse(readFileSync(join(process.cwd(), 'package.json'), 'utf8'));
|
|
54
|
-
const tarballPrefix = `${String(packageJson.name).replace(/^@/, '').replace(/\//g, '-')}-`;
|
|
55
|
-
// Ensure no old tarballs exist
|
|
56
|
-
const files = readdirSync('.');
|
|
57
|
-
const tarballs = files.filter(f => f.startsWith(tarballPrefix) && f.endsWith('.tgz'));
|
|
58
|
-
tarballs.forEach(f => {
|
|
59
|
-
console.log(` Removing old tarball: ${f}`);
|
|
60
|
-
unlinkSync(f);
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
run('npm pack');
|
|
64
|
-
|
|
65
|
-
// Find the generated tarball
|
|
66
|
-
const newFiles = readdirSync('.');
|
|
67
|
-
const tarball = newFiles.find(f => f.startsWith(tarballPrefix) && f.endsWith('.tgz'));
|
|
68
|
-
|
|
69
|
-
if (!tarball) {
|
|
70
|
-
console.error('❌ Error: Tarball not generated.');
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
console.log(`🌍 Installing globally (${tarball})...`);
|
|
75
|
-
|
|
76
|
-
const installGlobal = () => spawnSync('npm', ['install', '-g', `./${tarball}`], { encoding: 'utf8' });
|
|
77
|
-
const printOutput = (result) => {
|
|
78
|
-
if (result.stdout) process.stdout.write(result.stdout);
|
|
79
|
-
if (result.stderr) process.stderr.write(result.stderr);
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
let installResult = installGlobal();
|
|
83
|
-
printOutput(installResult);
|
|
84
|
-
|
|
85
|
-
if (installResult.status !== 0) {
|
|
86
|
-
const combinedOutput = `${installResult.stdout || ''}\n${installResult.stderr || ''}`;
|
|
87
|
-
const isFileExists = /EEXIST/i.test(combinedOutput);
|
|
88
|
-
const isPermissionError = /(EACCES|EPERM|permission denied)/i.test(combinedOutput);
|
|
89
|
-
|
|
90
|
-
if (isFileExists) {
|
|
91
|
-
console.log('⚠️ Existing global binary detected. Cleaning up and retrying...');
|
|
92
|
-
const packageName = String(packageJson.name);
|
|
93
|
-
const uninstallResult = spawnSync('npm', ['uninstall', '-g', packageName], { encoding: 'utf8' });
|
|
94
|
-
printOutput(uninstallResult);
|
|
95
|
-
|
|
96
|
-
const pathMatch = combinedOutput.match(/npm error path (.+)/i);
|
|
97
|
-
if (pathMatch?.[1]) {
|
|
98
|
-
const stalePath = pathMatch[1].trim();
|
|
99
|
-
try {
|
|
100
|
-
if (existsSync(stalePath)) {
|
|
101
|
-
unlinkSync(stalePath);
|
|
102
|
-
console.log(`🧹 Removed stale binary: ${stalePath}`);
|
|
103
|
-
}
|
|
104
|
-
} catch (error) {
|
|
105
|
-
console.log(`⚠️ Could not remove stale binary at ${stalePath}.`);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
try {
|
|
110
|
-
const npmPrefix = execSync('npm config get prefix', { encoding: 'utf8' }).trim();
|
|
111
|
-
const taskforceBin = join(npmPrefix, 'bin', 'taskforce');
|
|
112
|
-
if (existsSync(taskforceBin)) {
|
|
113
|
-
unlinkSync(taskforceBin);
|
|
114
|
-
console.log(`🧹 Removed stale binary: ${taskforceBin}`);
|
|
115
|
-
}
|
|
116
|
-
} catch (error) {
|
|
117
|
-
console.log('⚠️ Could not inspect npm global bin path. Continuing with reinstall...');
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
installResult = installGlobal();
|
|
121
|
-
printOutput(installResult);
|
|
122
|
-
} else if (isPermissionError) {
|
|
123
|
-
console.log('⚠️ Permission denied. Retrying with sudo...');
|
|
124
|
-
try {
|
|
125
|
-
execSync(`sudo npm install -g ./${tarball}`, { stdio: 'inherit' });
|
|
126
|
-
installResult = { status: 0 };
|
|
127
|
-
} catch (sudoError) {
|
|
128
|
-
console.error('❌ Failed to install globally with sudo.');
|
|
129
|
-
process.exit(1);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
if (installResult.status !== 0) {
|
|
135
|
-
console.error('❌ Failed to install globally.');
|
|
136
|
-
process.exit(1);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
console.log('🧹 Cleaning up artifacts...');
|
|
140
|
-
unlinkSync(tarball);
|
|
141
|
-
|
|
142
|
-
console.log('✅ Successfully installed!');
|
|
143
|
-
console.log('🚀 You can now run "taskforce open" from any directory.');
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
if [[ $# -lt 2 || $# -gt 5 ]]; then
|
|
5
|
-
cat <<'EOF'
|
|
6
|
-
Usage:
|
|
7
|
-
scripts/update-homebrew-formula.sh <formula_path> [npm_package] <version> [--sha256 <sha>]
|
|
8
|
-
|
|
9
|
-
Example:
|
|
10
|
-
scripts/update-homebrew-formula.sh packaging/homebrew/Formula/taskforce.rb @taskforcehq/taskforce 0.3.168
|
|
11
|
-
scripts/update-homebrew-formula.sh packaging/homebrew/Formula/taskforce.rb 0.3.168 --sha256 abc123...
|
|
12
|
-
EOF
|
|
13
|
-
exit 1
|
|
14
|
-
fi
|
|
15
|
-
|
|
16
|
-
FORMULA_PATH="$1"
|
|
17
|
-
shift
|
|
18
|
-
|
|
19
|
-
NPM_PACKAGE="@taskforcehq/taskforce"
|
|
20
|
-
if [[ "${1:-}" == @*/* ]]; then
|
|
21
|
-
NPM_PACKAGE="$1"
|
|
22
|
-
shift
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
if [[ $# -lt 1 ]]; then
|
|
26
|
-
echo "Missing required <version> argument." >&2
|
|
27
|
-
exit 1
|
|
28
|
-
fi
|
|
29
|
-
|
|
30
|
-
VERSION="$1"
|
|
31
|
-
shift
|
|
32
|
-
|
|
33
|
-
SHA256="${HOMEBREW_SHA256:-}"
|
|
34
|
-
while [[ $# -gt 0 ]]; do
|
|
35
|
-
case "$1" in
|
|
36
|
-
--sha256)
|
|
37
|
-
if [[ $# -lt 2 ]]; then
|
|
38
|
-
echo "--sha256 requires a value" >&2
|
|
39
|
-
exit 1
|
|
40
|
-
fi
|
|
41
|
-
SHA256="$2"
|
|
42
|
-
shift 2
|
|
43
|
-
;;
|
|
44
|
-
*)
|
|
45
|
-
echo "Unknown argument: $1" >&2
|
|
46
|
-
exit 1
|
|
47
|
-
;;
|
|
48
|
-
esac
|
|
49
|
-
done
|
|
50
|
-
|
|
51
|
-
if [[ ! -f "$FORMULA_PATH" ]]; then
|
|
52
|
-
echo "Formula file not found: $FORMULA_PATH" >&2
|
|
53
|
-
exit 1
|
|
54
|
-
fi
|
|
55
|
-
|
|
56
|
-
if [[ "$NPM_PACKAGE" != @*/* ]]; then
|
|
57
|
-
echo "npm package must be scoped (for example: @taskforcehq/taskforce)." >&2
|
|
58
|
-
exit 1
|
|
59
|
-
fi
|
|
60
|
-
|
|
61
|
-
PACKAGE_SCOPE="${NPM_PACKAGE#@}"
|
|
62
|
-
PACKAGE_SCOPE="${PACKAGE_SCOPE%%/*}"
|
|
63
|
-
PACKAGE_NAME="${NPM_PACKAGE##*/}"
|
|
64
|
-
URL="https://registry.npmjs.org/${NPM_PACKAGE}/-/$(printf '%s-%s.tgz' "${PACKAGE_NAME}" "${VERSION}")"
|
|
65
|
-
|
|
66
|
-
if [[ -z "$SHA256" ]]; then
|
|
67
|
-
TMP_TGZ="$(mktemp "/tmp/${PACKAGE_NAME}-${VERSION}.XXXXXX.tgz")"
|
|
68
|
-
trap 'rm -f "$TMP_TGZ"' EXIT
|
|
69
|
-
echo "Downloading npm tarball: $URL"
|
|
70
|
-
CURL_ARGS=(-fsSL "$URL" -o "$TMP_TGZ")
|
|
71
|
-
AUTH_TOKEN="${NODE_AUTH_TOKEN:-${NPM_TOKEN:-}}"
|
|
72
|
-
if [[ -n "$AUTH_TOKEN" ]]; then
|
|
73
|
-
CURL_ARGS=(-fsSL -H "Authorization: Bearer ${AUTH_TOKEN}" "$URL" -o "$TMP_TGZ")
|
|
74
|
-
fi
|
|
75
|
-
if ! curl "${CURL_ARGS[@]}"; then
|
|
76
|
-
echo "Direct npm tarball download failed (likely private package auth). Falling back to npm pack..."
|
|
77
|
-
rm -f "$TMP_TGZ"
|
|
78
|
-
TMP_DIR="$(mktemp -d "/tmp/${PACKAGE_NAME}-${VERSION}.XXXXXX")"
|
|
79
|
-
trap 'rm -rf "$TMP_DIR"' EXIT
|
|
80
|
-
npm pack "${NPM_PACKAGE}@${VERSION}" --pack-destination "$TMP_DIR" >/dev/null
|
|
81
|
-
PACKED_TGZ="$(ls "$TMP_DIR"/*.tgz | head -n 1)"
|
|
82
|
-
if [[ -z "$PACKED_TGZ" || ! -f "$PACKED_TGZ" ]]; then
|
|
83
|
-
echo "Failed to locate tarball produced by npm pack." >&2
|
|
84
|
-
exit 1
|
|
85
|
-
fi
|
|
86
|
-
TMP_TGZ="$PACKED_TGZ"
|
|
87
|
-
fi
|
|
88
|
-
if command -v shasum >/dev/null 2>&1; then
|
|
89
|
-
SHA256="$(shasum -a 256 "$TMP_TGZ" | awk '{print $1}')"
|
|
90
|
-
else
|
|
91
|
-
SHA256="$(sha256sum "$TMP_TGZ" | awk '{print $1}')"
|
|
92
|
-
fi
|
|
93
|
-
fi
|
|
94
|
-
|
|
95
|
-
sed -i.bak \
|
|
96
|
-
-e "s#homepage \".*\"#homepage \"https://github.com/taskforcehq/taskforce\"#g" \
|
|
97
|
-
-e "s#url \".*\"#url \"${URL}\"#g" \
|
|
98
|
-
-e "s#sha256 \".*\"#sha256 \"${SHA256}\"#g" \
|
|
99
|
-
"$FORMULA_PATH"
|
|
100
|
-
|
|
101
|
-
rm -f "${FORMULA_PATH}.bak"
|
|
102
|
-
echo "Updated ${FORMULA_PATH}"
|
|
103
|
-
echo " npm package: ${NPM_PACKAGE}"
|
|
104
|
-
echo " package scope: ${PACKAGE_SCOPE}"
|
|
105
|
-
echo " package name: ${PACKAGE_NAME}"
|
|
106
|
-
echo " homepage: https://github.com/taskforcehq/taskforce"
|
|
107
|
-
echo " url: ${URL}"
|
|
108
|
-
echo " sha256: ${SHA256}"
|
package/scripts/with-esbuild.sh
DELETED